31 #include "common/func.h" 32 #include "common/hashmap.h" 34 #include "gob/goblin.h" 35 #include "gob/variables.h" 36 #include "gob/html_parser.h" 37 #include "gob/iniconfig.h" 38 #include "gob/databases.h" 55 #ifndef REDUCE_MEMORY_USAGE 56 #define _OPCODEDRAW(ver, x) setProc(new Common::Functor0Mem<void, ver>(this, &ver::x), #x) 57 #define _OPCODEFUNC(ver, x) setProc(new Common::Functor1Mem<OpFuncParams &, void, ver>(this, &ver::x), #x) 58 #define _OPCODEGOB(ver, x) setProc(new Common::Functor1Mem<OpGobParams &, void, ver>(this, &ver::x), #x) 60 #define _OPCODEDRAW(ver, x) setProc(new Common::Functor0Mem<void, ver>(this, &ver::x), "") 61 #define _OPCODEFUNC(ver, x) setProc(new Common::Functor1Mem<OpFuncParams &, void, ver>(this, &ver::x), "") 62 #define _OPCODEGOB(ver, x) setProc(new Common::Functor1Mem<OpGobParams &, void, ver>(this, &ver::x), "") 65 #define CLEAROPCODEDRAW(i) _opcodesDraw[i].setProc(0, 0) 66 #define CLEAROPCODEFUNC(i) _opcodesFunc[i].setProc(0, 0) 67 #define CLEAROPCODEGOB(i) _opcodesGob.erase(i) 96 void setProc(T *p,
const char *d) {
109 int16 *_breakFromLevel;
112 uint32 _soundEndTimeKey;
119 void initControlVars(
char full);
120 void renewTimeInVars();
122 void storeKey(int16 key);
124 void writeVar(uint32 offset, uint16 type, uint32 value);
126 void funcBlock(int16 retFlag);
127 void callSub(int16 retFlag);
129 void allocateVars(uint32 count);
132 virtual int16 loadSound(int16 slot) = 0;
133 virtual void animPalette() = 0;
145 int16 _animPalLowIndex[8];
146 int16 _animPalHighIndex[8];
147 int16 _animPalDir[8];
153 uint32 _lastBusyWait;
157 void executeOpcodeDraw(byte i);
158 void executeOpcodeFunc(byte i, byte j,
OpFuncParams ¶ms);
161 const char *getDescOpcodeDraw(byte i);
162 const char *getDescOpcodeFunc(byte i, byte j);
163 const char *getDescOpcodeGob(
int i);
165 virtual void setupOpcodesDraw() = 0;
166 virtual void setupOpcodesFunc() = 0;
167 virtual void setupOpcodesGob() = 0;
169 virtual void checkSwitchTable(uint32 &offset) = 0;
175 void storeValue(uint16 index, uint16 type, uint32 value);
176 void storeValue(uint32 value);
178 void storeString(uint16 index, uint16 type,
const char *value);
179 void storeString(
const char *value);
181 uint32 readValue(uint16 index, uint16 type);
183 void handleBusyWait();
191 int16 loadSound(int16 slot)
override;
192 void animPalette()
override;
195 void setupOpcodesDraw()
override;
196 void setupOpcodesFunc()
override;
197 void setupOpcodesGob()
override;
199 void checkSwitchTable(uint32 &offset)
override;
203 void o1_freeMultKeys();
204 void o1_initCursor();
205 void o1_initCursorAnim();
206 void o1_clearCursorAnim();
207 void o1_setRenderFlags();
210 void o1_updateAnim();
214 void o1_loadMultObject();
215 void o1_getAnimLayerInfo();
216 void o1_getObjAnimSize();
217 void o1_loadStatic();
218 void o1_freeStatic();
219 void o1_renderStatic();
220 void o1_loadCurLayer();
221 void o1_playCDTrack();
222 void o1_getCDTrackPos();
224 void o1_loadFontToSprite();
225 void o1_freeFontToSprite();
316 void o1_manipulateMapIndirect(
OpGobParams ¶ms);
354 void manipulateMap(int16 xPos, int16 yPos, int16 item);
357 bool _ignoreSpeakerOff =
false;
366 void setupOpcodesDraw()
override;
367 void setupOpcodesFunc()
override;
368 void setupOpcodesGob()
override;
387 int16 loadSound(int16 slot)
override;
401 int16 loadSound(int16 search)
override;
402 void animPalette()
override;
405 void setupOpcodesDraw()
override;
406 void setupOpcodesFunc()
override;
407 void setupOpcodesGob()
override;
409 void checkSwitchTable(uint32 &offset)
override;
412 void o2_freeMultKeys();
413 void o2_setRenderFlags();
416 void o2_loadMultObject();
417 void o2_renderStatic();
418 void o2_loadCurLayer();
419 void o2_playCDTrack();
420 void o2_waitCDTrackEnd();
424 void o2_getCDTrackPos();
425 void o2_loadFontToSprite();
427 void o2_switchTotSub();
430 void o2_loadMapObjects();
431 void o2_freeGoblins();
432 void o2_moveGoblin();
433 void o2_writeGoblinPos();
434 void o2_stopGoblin();
435 void o2_setGoblinState();
436 void o2_placeGoblin();
437 void o2_initScreen();
439 void o2_setScrollOffset();
441 void o2_getImdInfo();
444 void o2_setImdFrontSurf();
445 void o2_resetImdFrontSurf();
474 void setupOpcodesDraw()
override;
475 void setupOpcodesFunc()
override;
476 void setupOpcodesGob()
override;
496 void setupOpcodesDraw()
override;
497 void setupOpcodesFunc()
override;
498 void setupOpcodesGob()
override;
520 void oFascin_setWinSize();
521 void oFascin_closeWin();
522 void oFascin_activeWin();
523 void oFascin_openWin();
524 void oFascin_initCursorAnim();
525 void oFascin_setRenderFlags();
526 void oFascin_setWinFlags();
535 void setupOpcodesDraw()
override;
536 void setupOpcodesFunc()
override;
537 void setupOpcodesGob()
override;
549 void setupOpcodesDraw()
override;
550 void setupOpcodesFunc()
override;
551 void setupOpcodesGob()
override;
555 void oAdibou1_fillAreaAtPoint(
OpGobParams ¶ms);
556 void oAdibou1_getAppliNameFromId(
OpGobParams ¶ms);
557 void oAdibou1_listApplications(
OpGobParams ¶ms);
566 void setupOpcodesDraw()
override;
567 void setupOpcodesFunc()
override;
568 void setupOpcodesGob()
override;
577 bool _ignoreSpeakerOff;
586 void setupOpcodesDraw()
override;
587 void setupOpcodesFunc()
override;
588 void setupOpcodesGob()
override;
600 void setupOpcodesDraw()
override;
601 void setupOpcodesFunc()
override;
602 void setupOpcodesGob()
override;
604 void o4_initScreen();
605 void o4_playVmdOrMusic();
616 void setupOpcodesDraw()
override;
617 void setupOpcodesFunc()
override;
618 void setupOpcodesGob()
override;
620 void o5_deleteFile();
621 void o5_initScreen();
649 bool _gotFirstPalette;
651 void setupOpcodesDraw()
override;
652 void setupOpcodesFunc()
override;
653 void setupOpcodesGob()
override;
656 void o6_playVmdOrMusic();
672 void setupOpcodesDraw()
override;
673 void setupOpcodesFunc()
override;
674 void setupOpcodesGob()
override;
683 void oPlaytoons_loadMultObject();
684 void oPlaytoons_getObjAnimSize();
685 void oPlaytoons_CD_20_23();
686 void oPlaytoons_CD_25();
687 void oPlaytoons_copyFile();
688 void oPlaytoons_openItk();
690 Common::String getFile(
const char *path,
bool stripPath =
true,
bool *isCd =
nullptr);
692 bool readSprite(
Common::String file, int32 dataVar, int32 size, int32 offset);
701 void setupOpcodesDraw()
override;
702 void setupOpcodesFunc()
override;
703 void setupOpcodesGob()
override;
707 void xorObfuscate(byte *str,
int len);
708 void xorDeobfuscate(byte *str,
int len);
711 void o7_setCursorToLoadFromExec();
713 void o7_loadMultObject();
715 void o7_displayWarning();
717 void o7_moveGoblin();
718 void o7_setGoblinState();
719 void o7_intToString();
720 void o7_callFunction();
721 void o7_loadFunctions();
724 void o7_deleteFile();
725 void o7_playVmdOrMusic();
727 void o7_initScreen();
728 void o7_setActiveCD();
730 void o7_findNextFile();
731 void o7_getFileInfo();
732 void o7_getSystemProperty();
737 void o7_getINIValue();
738 void o7_setINIValue();
739 void o7_loadIFFPalette();
740 void o7_openDatabase();
741 void o7_openDatabaseTable();
742 void o7_closeDatabaseTable();
744 void o7_openDatabaseIndex();
745 void o7_findDatabaseRecord();
746 void o7_findNextDatabaseRecord();
747 void o7_getDatabaseRecordValue();
748 void o7_checkAnyDatabaseRecordFound();
749 void o7_seekHtmlFile();
750 void o7_nextKeywordHtmlFile();
752 void o7_openTranslationDB();
753 void o7_closeTranslationDB();
754 void o7_getDBString();
758 void o7_openHtmlFile();
759 void o7_closeHtmlFile();
774 void o7_executeModAddEvent();
775 void o7_executeModSetLength();
776 void o7_executeModGetPosition();
777 void o7_executeModStart();
778 void o7_vmdGetSoundBuffer();
779 void o7_vmdReleaseSoundBuffer();
818 #endif // GOB_INTER_H
Definition: variables.h:33
Definition: variables.h:166
Definition: noncopyable.h:39
Definition: html_parser.h:53
Definition: algorithm.h:29
Definition: variables.h:133
Definition: penetration.h:51
Definition: iniconfig.h:39
Definition: databases.h:40