31 #include "common/func.h" 32 #include "common/hashmap.h" 34 #include "gob/goblin.h" 35 #include "gob/variables.h" 36 #include "gob/iniconfig.h" 37 #include "gob/databases.h" 54 #ifndef REDUCE_MEMORY_USAGE 55 #define _OPCODEDRAW(ver, x) setProc(new Common::Functor0Mem<void, ver>(this, &ver::x), #x) 56 #define _OPCODEFUNC(ver, x) setProc(new Common::Functor1Mem<OpFuncParams &, void, ver>(this, &ver::x), #x) 57 #define _OPCODEGOB(ver, x) setProc(new Common::Functor1Mem<OpGobParams &, void, ver>(this, &ver::x), #x) 59 #define _OPCODEDRAW(ver, x) setProc(new Common::Functor0Mem<void, ver>(this, &ver::x), "") 60 #define _OPCODEFUNC(ver, x) setProc(new Common::Functor1Mem<OpFuncParams &, void, ver>(this, &ver::x), "") 61 #define _OPCODEGOB(ver, x) setProc(new Common::Functor1Mem<OpGobParams &, void, ver>(this, &ver::x), "") 64 #define CLEAROPCODEDRAW(i) _opcodesDraw[i].setProc(0, 0) 65 #define CLEAROPCODEFUNC(i) _opcodesFunc[i].setProc(0, 0) 66 #define CLEAROPCODEGOB(i) _opcodesGob.erase(i) 95 void setProc(T *p,
const char *d) {
108 int16 *_breakFromLevel;
111 uint32 _soundEndTimeKey;
118 void initControlVars(
char full);
119 void renewTimeInVars();
121 void storeKey(int16 key);
123 void writeVar(uint32 offset, uint16 type, uint32 value);
125 void funcBlock(int16 retFlag);
126 void callSub(int16 retFlag);
128 void allocateVars(uint32 count);
131 virtual int16 loadSound(int16 slot) = 0;
132 virtual void animPalette() = 0;
144 int16 _animPalLowIndex[8];
145 int16 _animPalHighIndex[8];
146 int16 _animPalDir[8];
152 uint32 _lastBusyWait;
156 void executeOpcodeDraw(byte i);
157 void executeOpcodeFunc(byte i, byte j,
OpFuncParams ¶ms);
160 const char *getDescOpcodeDraw(byte i);
161 const char *getDescOpcodeFunc(byte i, byte j);
162 const char *getDescOpcodeGob(
int i);
164 virtual void setupOpcodesDraw() = 0;
165 virtual void setupOpcodesFunc() = 0;
166 virtual void setupOpcodesGob() = 0;
168 virtual void checkSwitchTable(uint32 &offset) = 0;
174 void storeValue(uint16 index, uint16 type, uint32 value);
175 void storeValue(uint32 value);
177 void storeString(uint16 index, uint16 type,
const char *value);
178 void storeString(
const char *value);
180 uint32 readValue(uint16 index, uint16 type);
182 void handleBusyWait();
190 int16 loadSound(int16 slot)
override;
191 void animPalette()
override;
194 void setupOpcodesDraw()
override;
195 void setupOpcodesFunc()
override;
196 void setupOpcodesGob()
override;
198 void checkSwitchTable(uint32 &offset)
override;
202 void o1_freeMultKeys();
203 void o1_initCursor();
204 void o1_initCursorAnim();
205 void o1_clearCursorAnim();
206 void o1_setRenderFlags();
209 void o1_updateAnim();
213 void o1_loadMultObject();
214 void o1_getAnimLayerInfo();
215 void o1_getObjAnimSize();
216 void o1_loadStatic();
217 void o1_freeStatic();
218 void o1_renderStatic();
219 void o1_loadCurLayer();
220 void o1_playCDTrack();
221 void o1_getCDTrackPos();
223 void o1_loadFontToSprite();
224 void o1_freeFontToSprite();
315 void o1_manipulateMapIndirect(
OpGobParams ¶ms);
353 void manipulateMap(int16 xPos, int16 yPos, int16 item);
362 void setupOpcodesDraw()
override;
363 void setupOpcodesFunc()
override;
364 void setupOpcodesGob()
override;
383 int16 loadSound(int16 slot)
override;
397 int16 loadSound(int16 search)
override;
398 void animPalette()
override;
401 void setupOpcodesDraw()
override;
402 void setupOpcodesFunc()
override;
403 void setupOpcodesGob()
override;
405 void checkSwitchTable(uint32 &offset)
override;
408 void o2_freeMultKeys();
409 void o2_setRenderFlags();
412 void o2_loadMultObject();
413 void o2_renderStatic();
414 void o2_loadCurLayer();
415 void o2_playCDTrack();
416 void o2_waitCDTrackEnd();
420 void o2_getCDTrackPos();
421 void o2_loadFontToSprite();
423 void o2_switchTotSub();
426 void o2_loadMapObjects();
427 void o2_freeGoblins();
428 void o2_moveGoblin();
429 void o2_writeGoblinPos();
430 void o2_stopGoblin();
431 void o2_setGoblinState();
432 void o2_placeGoblin();
433 void o2_initScreen();
435 void o2_setScrollOffset();
437 void o2_getImdInfo();
440 void o2_setImdFrontSurf();
441 void o2_resetImdFrontSurf();
470 void setupOpcodesDraw()
override;
471 void setupOpcodesFunc()
override;
472 void setupOpcodesGob()
override;
492 void setupOpcodesDraw()
override;
493 void setupOpcodesFunc()
override;
494 void setupOpcodesGob()
override;
516 void oFascin_setWinSize();
517 void oFascin_closeWin();
518 void oFascin_activeWin();
519 void oFascin_openWin();
520 void oFascin_initCursorAnim();
521 void oFascin_setRenderFlags();
522 void oFascin_setWinFlags();
531 void setupOpcodesDraw()
override;
532 void setupOpcodesFunc()
override;
533 void setupOpcodesGob()
override;
545 void setupOpcodesDraw()
override;
546 void setupOpcodesFunc()
override;
547 void setupOpcodesGob()
override;
551 void oAdibou1_fillAreaAtPoint(
OpGobParams ¶ms);
552 void oAdibou1_getAppliNameFromId(
OpGobParams ¶ms);
553 void oAdibou1_listApplications(
OpGobParams ¶ms);
562 void setupOpcodesDraw()
override;
563 void setupOpcodesFunc()
override;
564 void setupOpcodesGob()
override;
573 bool _ignoreSpeakerOff;
582 void setupOpcodesDraw()
override;
583 void setupOpcodesFunc()
override;
584 void setupOpcodesGob()
override;
595 void setupOpcodesDraw()
override;
596 void setupOpcodesFunc()
override;
597 void setupOpcodesGob()
override;
599 void o4_initScreen();
600 void o4_playVmdOrMusic();
611 void setupOpcodesDraw()
override;
612 void setupOpcodesFunc()
override;
613 void setupOpcodesGob()
override;
615 void o5_deleteFile();
616 void o5_initScreen();
644 bool _gotFirstPalette;
646 void setupOpcodesDraw()
override;
647 void setupOpcodesFunc()
override;
648 void setupOpcodesGob()
override;
651 void o6_playVmdOrMusic();
667 void setupOpcodesDraw()
override;
668 void setupOpcodesFunc()
override;
669 void setupOpcodesGob()
override;
678 void oPlaytoons_loadMultObject();
679 void oPlaytoons_getObjAnimSize();
680 void oPlaytoons_CD_20_23();
681 void oPlaytoons_CD_25();
682 void oPlaytoons_copyFile();
683 void oPlaytoons_openItk();
687 bool readSprite(
Common::String file, int32 dataVar, int32 size, int32 offset);
696 void setupOpcodesDraw()
override;
697 void setupOpcodesFunc()
override;
698 void setupOpcodesGob()
override;
701 void o7_setCursorToLoadFromExec();
703 void o7_loadMultObject();
705 void o7_displayWarning();
707 void o7_moveGoblin();
708 void o7_setGoblinState();
709 void o7_intToString();
710 void o7_callFunction();
711 void o7_loadFunctions();
714 void o7_deleteFile();
715 void o7_playVmdOrMusic();
716 void o7_initScreen();
717 void o7_setActiveCD();
719 void o7_findNextFile();
720 void o7_getSystemProperty();
724 void o7_getINIValue();
725 void o7_setINIValue();
726 void o7_loadIFFPalette();
728 void o7_closedBase();
729 void o7_getDBString();
759 #endif // GOB_INTER_H
Definition: variables.h:33
Definition: variables.h:153
Definition: noncopyable.h:39
Definition: algorithm.h:29
Definition: variables.h:133
Definition: databases.h:40
Definition: penetration.h:51
Definition: iniconfig.h:37