2011-07-19 10:26:40 +00:00
|
|
|
/* ScummVM - Graphic Adventure Engine
|
|
|
|
*
|
|
|
|
* ScummVM is the legal property of its developers, whose names
|
|
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
|
|
* file distributed with this source distribution.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*
|
|
|
|
*/
|
2011-07-30 20:03:28 +00:00
|
|
|
uint16 allocatemem(uint16 paragraphs);
|
2011-07-27 12:56:02 +00:00
|
|
|
uint8 *workspace();
|
2011-08-03 10:21:46 +00:00
|
|
|
void allocatework();
|
2011-07-30 21:11:48 +00:00
|
|
|
void clearwork();
|
2011-06-26 13:10:18 +00:00
|
|
|
void multidump();
|
2011-07-19 14:45:48 +00:00
|
|
|
void multidump(uint16 x, uint16 y, uint8 width, uint8 height);
|
2011-07-20 19:41:52 +00:00
|
|
|
void frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
|
|
|
|
void frameoutnm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
|
|
|
|
void frameoutbh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
|
|
|
|
void frameoutfx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
|
2011-06-26 13:10:18 +00:00
|
|
|
void worktoscreen();
|
|
|
|
void multiget();
|
2011-08-03 14:44:29 +00:00
|
|
|
void multiget(uint8 *dst, uint16 x, uint16 y, uint8 width, uint8 height);
|
2011-06-26 13:10:18 +00:00
|
|
|
void convertkey();
|
|
|
|
void cls();
|
2011-06-26 13:17:19 +00:00
|
|
|
void printsprites();
|
2011-06-26 13:10:18 +00:00
|
|
|
void quickquit();
|
|
|
|
void readoneblock();
|
|
|
|
void printundermon();
|
|
|
|
void seecommandtail();
|
|
|
|
void randomnumber();
|
|
|
|
void quickquit2();
|
2011-08-11 00:27:41 +00:00
|
|
|
uint8 getnextword(const Frame *charSet, const uint8 *string, uint8 *totalWidth, uint8 *charCount);
|
|
|
|
void printboth(const Frame* charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar);
|
2011-07-18 20:27:06 +00:00
|
|
|
void printchar();
|
2011-08-11 00:27:41 +00:00
|
|
|
void printchar(const Frame* charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar, uint8 *width, uint8 *height);
|
2011-07-18 12:30:07 +00:00
|
|
|
void printdirect();
|
2011-08-10 15:12:26 +00:00
|
|
|
void printdirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered);
|
2011-07-23 17:18:10 +00:00
|
|
|
void usetimedtext();
|
2011-08-11 13:24:06 +00:00
|
|
|
void dumptimedtext();
|
2011-08-11 14:59:20 +00:00
|
|
|
void setuptimedtemp();
|
|
|
|
void setuptimedtemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
|
2011-07-23 17:18:10 +00:00
|
|
|
void getundertimed();
|
|
|
|
void putundertimed();
|
2011-08-11 01:19:51 +00:00
|
|
|
uint8 printslow(const uint8 *string, uint16 x, uint16 y, uint8 maxWidth, bool centered);
|
2011-07-19 10:37:32 +00:00
|
|
|
void printslow();
|
2011-07-21 20:46:16 +00:00
|
|
|
void dumptextline();
|
2011-07-17 14:06:19 +00:00
|
|
|
void getnumber();
|
2011-08-11 00:27:41 +00:00
|
|
|
uint8 getnumber(const Frame *charSet, const uint8 *string, uint16 maxWidth, bool centered, uint16 *offset);
|
2011-07-17 12:38:30 +00:00
|
|
|
void kernchars();
|
|
|
|
uint8 kernchars(uint8 firstChar, uint8 secondChar, uint8 width);
|
2011-07-30 17:54:53 +00:00
|
|
|
void getroomdata();
|
|
|
|
void getroomdata(uint8 roomIndex);
|
2011-07-30 19:56:33 +00:00
|
|
|
void readheader();
|
2011-07-30 20:56:29 +00:00
|
|
|
void fillspace();
|
2011-07-30 19:46:59 +00:00
|
|
|
void startloading();
|
|
|
|
void startloading(const Room *room);
|
2011-07-20 16:21:03 +00:00
|
|
|
Sprite *spritetable();
|
2011-06-26 15:03:17 +00:00
|
|
|
void showframe();
|
2011-08-11 01:30:41 +00:00
|
|
|
void showframe(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height);
|
2011-07-27 15:42:11 +00:00
|
|
|
void printasprite(const Sprite *sprite);
|
2011-06-26 13:10:18 +00:00
|
|
|
void width160();
|
2011-08-03 14:44:29 +00:00
|
|
|
void multiput(const uint8 *src, uint16 x, uint16 y, uint8 width, uint8 height);
|
2011-06-26 13:10:18 +00:00
|
|
|
void multiput();
|
2011-06-26 13:17:19 +00:00
|
|
|
void eraseoldobs();
|
|
|
|
void clearsprites();
|
|
|
|
void makesprite();
|
2011-07-30 13:04:25 +00:00
|
|
|
Sprite *makesprite(uint8 x, uint8 y, uint16 updateCallback, uint16 frameData, uint16 somethingInDi);
|
2011-06-26 13:17:19 +00:00
|
|
|
void spriteupdate();
|
2011-06-28 13:48:07 +00:00
|
|
|
void initman();
|
2011-07-28 23:12:29 +00:00
|
|
|
void mainman(Sprite *sprite);
|
2011-07-26 05:54:25 +00:00
|
|
|
void facerightway();
|
2011-07-25 21:54:54 +00:00
|
|
|
void walking(Sprite *sprite);
|
2011-08-08 20:26:31 +00:00
|
|
|
void autosetwalk();
|
2011-08-09 20:04:06 +00:00
|
|
|
void checkdest(const uint8 *roomsPaths);
|
2011-07-20 16:21:03 +00:00
|
|
|
void aboutturn(Sprite *sprite);
|
|
|
|
void backobject(Sprite *sprite);
|
|
|
|
void constant(Sprite *sprite, ObjData *objData);
|
|
|
|
void steady(Sprite *sprite, ObjData *objData);
|
|
|
|
void random(Sprite *sprite, ObjData *objData);
|
2011-06-28 02:55:10 +00:00
|
|
|
void dodoor();
|
2011-07-20 16:21:03 +00:00
|
|
|
void dodoor(Sprite *sprite, ObjData *objData);
|
|
|
|
void doorway(Sprite *sprite, ObjData *objData);
|
|
|
|
void widedoor(Sprite *sprite, ObjData *objData);
|
2011-07-25 08:50:00 +00:00
|
|
|
void lockeddoorway(Sprite *sprite, ObjData *objData);
|
2011-07-20 16:21:03 +00:00
|
|
|
void liftsprite(Sprite *sprite, ObjData *objData);
|
2011-07-30 13:19:22 +00:00
|
|
|
void findsource();
|
2011-08-11 01:30:41 +00:00
|
|
|
Frame *findsourceCPP();
|
2011-08-11 20:58:06 +00:00
|
|
|
void showgamereel();
|
2011-07-30 13:25:28 +00:00
|
|
|
void showreelframe();
|
2011-07-30 14:01:52 +00:00
|
|
|
void showreelframe(Reel *reel);
|
2011-08-11 21:13:17 +00:00
|
|
|
const Frame *getreelframeax(uint16 frame);
|
2011-06-28 03:10:35 +00:00
|
|
|
void turnpathonCPP(uint8 param);
|
|
|
|
void turnpathoffCPP(uint8 param);
|
2011-07-26 05:54:25 +00:00
|
|
|
void getroomspaths();
|
|
|
|
uint8 *getroomspathsCPP();
|
2011-08-17 05:08:38 +00:00
|
|
|
void makebackob(ObjData *objData);
|
2011-06-26 13:10:18 +00:00
|
|
|
void modifychar();
|
|
|
|
void lockmon();
|
2011-07-20 11:15:30 +00:00
|
|
|
void cancelch0();
|
|
|
|
void cancelch1();
|
2011-07-30 21:37:18 +00:00
|
|
|
void plotreel();
|
2011-08-15 11:49:11 +00:00
|
|
|
Reel *getreelstart();
|
2011-08-11 10:33:33 +00:00
|
|
|
void dealwithspecial(uint8 firstParam, uint8 secondParam);
|
2011-08-03 10:24:06 +00:00
|
|
|
void zoom();
|
2011-08-03 11:54:03 +00:00
|
|
|
void crosshair();
|
2011-08-03 12:16:09 +00:00
|
|
|
void showrain();
|
2011-08-03 14:19:27 +00:00
|
|
|
void deltextline();
|
2011-08-17 22:35:10 +00:00
|
|
|
void commandonly();
|
|
|
|
void commandonly(uint8 command);
|
2011-08-03 16:48:43 +00:00
|
|
|
void doblocks();
|
2011-08-11 21:13:17 +00:00
|
|
|
void checkifperson();
|
|
|
|
bool checkifperson(uint8 x, uint8 y);
|
2011-08-15 12:35:44 +00:00
|
|
|
const uint8 *findobname(uint8 type, uint8 index);
|
|
|
|
void copyname();
|
|
|
|
void copyname(uint8 type, uint8 index, uint8 *dst);
|
2011-08-15 13:42:09 +00:00
|
|
|
void commandwithob();
|
|
|
|
void commandwithob(uint8 command, uint8 type, uint8 index);
|
2011-08-15 15:00:20 +00:00
|
|
|
void showpanel();
|
2011-08-15 15:11:11 +00:00
|
|
|
void updatepeople();
|
2011-08-15 23:25:59 +00:00
|
|
|
void madmantext();
|
2011-08-16 02:01:40 +00:00
|
|
|
void madmode();
|
2011-08-16 23:16:05 +00:00
|
|
|
void movemap(uint8 param);
|
2011-08-18 08:36:57 +00:00
|
|
|
bool addalong(const uint8 *mapFlags);
|
|
|
|
bool addlength(const uint8 *mapFlags);
|
|
|
|
void getdimension();
|
|
|
|
void getdimension(uint8 *mapXstart, uint8 *mapYstart, uint8 *mapXsize, uint8 *mapYsize);
|
2011-08-17 05:08:38 +00:00
|
|
|
void getmapad();
|
2011-08-18 16:36:15 +00:00
|
|
|
void calcmapad();
|
2011-08-17 05:08:38 +00:00
|
|
|
uint8 getmapad(const uint8 *setData);
|
|
|
|
uint8 getxad(const uint8 *setData, uint8 *result);
|
|
|
|
uint8 getyad(const uint8 *setData, uint8 *result);
|
|
|
|
void calcfrframe();
|
|
|
|
void finalframe();
|
|
|
|
void finalframe(uint16 *x, uint16 *y);
|
|
|
|
void showallobs();
|
2011-08-18 20:09:28 +00:00
|
|
|
void blocknametext();
|
|
|
|
void walktotext();
|
|
|
|
void personnametext();
|
2011-08-18 20:22:39 +00:00
|
|
|
void findxyfrompath();
|
2011-08-19 08:35:29 +00:00
|
|
|
void findormake();
|
2011-08-20 10:26:10 +00:00
|
|
|
void findormake(uint8 index, uint8 value, uint8 type);
|
|
|
|
FreeObject *getfreead(uint8 index);
|
|
|
|
ObjData *getsetad(uint8 index);
|
2011-08-19 09:42:13 +00:00
|
|
|
void setallchanges();
|
2011-08-20 10:26:10 +00:00
|
|
|
void dochange();
|
|
|
|
void dochange(uint8 index, uint8 value, uint8 type);
|
2011-08-16 01:15:43 +00:00
|
|
|
bool isCD();
|
2011-07-30 21:21:43 +00:00
|
|
|
|