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-08-31 23:39:12 +00:00
|
|
|
void frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, int16 x, int16 y);
|
2011-07-20 19:41:52 +00:00
|
|
|
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-08-29 09:55:21 +00:00
|
|
|
void printmessage(uint16 x, uint16 y, uint8 index, uint8 maxWidth, bool centered);
|
|
|
|
void printmessage();
|
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
|
|
|
uint8 kernchars(uint8 firstChar, uint8 secondChar, uint8 width);
|
2011-07-30 17:54:53 +00:00
|
|
|
void getroomdata();
|
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-08-21 15:47:10 +00:00
|
|
|
void showframe(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag);
|
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-09-03 13:09:21 +00:00
|
|
|
void checkdest(const RoomPaths *roomsPaths);
|
2011-07-20 16:21:03 +00:00
|
|
|
void aboutturn(Sprite *sprite);
|
|
|
|
void backobject(Sprite *sprite);
|
2011-08-23 12:41:28 +00:00
|
|
|
void constant(Sprite *sprite, SetObject *objData);
|
|
|
|
void steady(Sprite *sprite, SetObject *objData);
|
|
|
|
void random(Sprite *sprite, SetObject *objData);
|
2011-06-28 02:55:10 +00:00
|
|
|
void dodoor();
|
2011-08-23 12:41:28 +00:00
|
|
|
void dodoor(Sprite *sprite, SetObject *objData);
|
|
|
|
void doorway(Sprite *sprite, SetObject *objData);
|
|
|
|
void widedoor(Sprite *sprite, SetObject *objData);
|
|
|
|
void lockeddoorway(Sprite *sprite, SetObject *objData);
|
|
|
|
void liftsprite(Sprite *sprite, SetObject *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-08-29 12:54:21 +00:00
|
|
|
void showgamereel(ReelRoutine *routine);
|
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-09-03 09:02:03 +00:00
|
|
|
void turnpathon(uint8 param);
|
|
|
|
void turnpathoff(uint8 param);
|
|
|
|
void turnpathon();
|
|
|
|
void turnpathoff();
|
2011-09-03 11:50:59 +00:00
|
|
|
void turnanypathon(uint8 param, uint8 room);
|
|
|
|
void turnanypathoff(uint8 param, uint8 room);
|
|
|
|
void turnanypathon();
|
|
|
|
void turnanypathoff();
|
2011-07-26 05:54:25 +00:00
|
|
|
void getroomspaths();
|
2011-09-03 13:09:21 +00:00
|
|
|
RoomPaths *getroomspathsCPP();
|
2011-08-23 12:41:28 +00:00
|
|
|
void makebackob(SetObject *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-22 12:46:06 +00:00
|
|
|
void checkiffree();
|
|
|
|
bool checkiffree(uint8 x, uint8 y);
|
2011-08-30 01:11:32 +00:00
|
|
|
void checkifex();
|
|
|
|
bool checkifex(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();
|
2011-08-21 13:57:13 +00:00
|
|
|
void calcfrframe(uint8* width, uint8* height);
|
2011-08-17 05:08:38 +00:00
|
|
|
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);
|
2011-08-23 12:41:28 +00:00
|
|
|
DynObject *getfreead(uint8 index);
|
|
|
|
DynObject *getexad(uint8 index);
|
2011-08-23 13:03:28 +00:00
|
|
|
DynObject *geteitheradCPP();
|
2011-08-23 12:41:28 +00:00
|
|
|
SetObject *getsetad(uint8 index);
|
2011-08-31 21:38:34 +00:00
|
|
|
void *getanyad(uint8 *value1, uint8 *value2);
|
2011-08-31 22:11:07 +00:00
|
|
|
void *getanyaddir(uint8 index, uint8 flag);
|
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-20 10:33:21 +00:00
|
|
|
void deletetaken();
|
2011-08-16 01:15:43 +00:00
|
|
|
bool isCD();
|
2011-08-20 11:23:47 +00:00
|
|
|
void placesetobject();
|
|
|
|
void placesetobject(uint8 index);
|
|
|
|
void removesetobject();
|
|
|
|
void removesetobject(uint8 index);
|
2011-08-21 13:24:05 +00:00
|
|
|
void showallfree();
|
2011-08-29 14:31:00 +00:00
|
|
|
void showallex();
|
2011-08-22 13:53:54 +00:00
|
|
|
bool finishedwalkingCPP();
|
|
|
|
void finishedwalking();
|
2011-08-22 15:30:53 +00:00
|
|
|
void checkone();
|
|
|
|
void checkone(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uint8 *type, uint8 *flagX, uint8 *flagY);
|
2011-08-23 08:13:10 +00:00
|
|
|
void getflagunderp();
|
|
|
|
void getflagunderp(uint8 *flag, uint8 *flagEx);
|
2011-08-23 08:40:52 +00:00
|
|
|
void walkandexamine();
|
2011-08-23 09:09:54 +00:00
|
|
|
void obname();
|
|
|
|
void obname(uint8 command, uint8 commandType);
|
2011-08-24 10:15:17 +00:00
|
|
|
void delpointer();
|
2011-08-24 11:20:18 +00:00
|
|
|
void showblink();
|
2011-08-24 11:22:11 +00:00
|
|
|
void dumpblink();
|
2011-08-24 15:23:43 +00:00
|
|
|
void dumppointer();
|
2011-08-24 21:01:53 +00:00
|
|
|
void showpointer();
|
2011-08-25 05:02:57 +00:00
|
|
|
void animpointer();
|
2011-08-24 13:04:53 +00:00
|
|
|
void checkcoords();
|
|
|
|
void checkcoords(const RectWithCallback *rectWithCallbacks);
|
2011-08-25 05:50:35 +00:00
|
|
|
void readmouse();
|
|
|
|
void readmouse1();
|
|
|
|
void readmouse2();
|
|
|
|
void readmouse3();
|
|
|
|
void readmouse4();
|
2011-08-25 06:03:27 +00:00
|
|
|
uint16 waitframes();
|
2011-08-25 08:39:51 +00:00
|
|
|
void drawflags();
|
2011-08-29 10:38:22 +00:00
|
|
|
void addtopeoplelist();
|
2011-08-29 12:55:57 +00:00
|
|
|
void addtopeoplelist(ReelRoutine *routine);
|
2011-08-30 00:26:28 +00:00
|
|
|
void getexpos();
|
2011-08-30 00:45:53 +00:00
|
|
|
void paneltomap();
|
2011-08-30 10:22:09 +00:00
|
|
|
void maptopanel();
|
|
|
|
void dumpmap();
|
2011-08-30 00:53:49 +00:00
|
|
|
void obpicture();
|
2011-08-30 08:56:49 +00:00
|
|
|
void transferinv();
|
2011-08-31 21:38:34 +00:00
|
|
|
void obicons();
|
2011-08-31 22:06:30 +00:00
|
|
|
void compare();
|
|
|
|
bool compare(uint8 index, uint8 flag, const char id[4]);
|
2011-09-01 17:00:13 +00:00
|
|
|
void pixelcheckset();
|
|
|
|
bool pixelcheckset(ObjPos *pos, uint8 x, uint8 y);
|
|
|
|
|
2011-07-30 21:21:43 +00:00
|
|
|
|