diff options
Diffstat (limited to 'sky/logic.h')
-rw-r--r-- | sky/logic.h | 338 |
1 files changed, 0 insertions, 338 deletions
diff --git a/sky/logic.h b/sky/logic.h deleted file mode 100644 index 7d10be6d8c..0000000000 --- a/sky/logic.h +++ /dev/null @@ -1,338 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2003-2006 The ScummVM project - * - * 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. - * - * $URL$ - * $Id$ - * - */ - -#ifndef SKYLOGIC_H -#define SKYLOGIC_H - -#include "common/stdafx.h" -#include "common/util.h" - -namespace Sky { - -struct Compact; - -enum scriptVariableOffsets { - RESULT = 0, - SCREEN = 1, - LOGIC_LIST_NO = 2, - MOUSE_LIST_NO = 6, - DRAW_LIST_NO = 8, - CUR_ID = 12, - MOUSE_STATUS = 13, - MOUSE_STOP = 14, - BUTTON = 15, - SPECIAL_ITEM = 17, - GET_OFF = 18, - CURSOR_ID = 22, - SAFEX = 25, - SAFEY = 26, - PLAYER_X = 27, - PLAYER_Y = 28, - PLAYER_MOOD = 29, - PLAYER_SCREEN = 30, - HIT_ID = 37, - LAYER_0_ID = 41, - LAYER_1_ID = 42, - LAYER_2_ID = 43, - LAYER_3_ID = 44, - GRID_1_ID = 45, - GRID_2_ID = 46, - GRID_3_ID = 47, - THE_CHOSEN_ONE = 51, - TEXT1 = 53, - MENU_LENGTH = 100, - SCROLL_OFFSET = 101, - MENU = 102, - OBJECT_HELD = 103, - LAMB_GREET = 109, - RND = 115, - CUR_SECTION = 143, - JOEY_SECTION = 145, - LAMB_SECTION = 146, - KNOWS_PORT = 190, - GOT_SPONSOR = 240, - GOT_JAMMER = 258, - CONSOLE_TYPE = 345, - S15_FLOOR = 450, - FOREMAN_FRIEND = 451, - REICH_DOOR_FLAG = 470, - CARD_STATUS = 479, - CARD_FIX = 480, - GUARDIAN_THERE = 640, - FS_COMMAND = 643, - ENTER_DIGITS = 644, - LINC_DIGIT_0 = 646, - LINC_DIGIT_1 = 647, - LINC_DIGIT_2 = 648, - LINC_DIGIT_3 = 649, - LINC_DIGIT_4 = 650, - LINC_DIGIT_5 = 651, - LINC_DIGIT_6 = 651, - LINC_DIGIT_7 = 653, - LINC_DIGIT_8 = 654, - LINC_DIGIT_9 = 655, - DOOR_67_68_FLAG = 678, - SC70_IRIS_FLAG = 693, - DOOR_73_75_FLAG = 704, - SC76_CABINET1_FLAG = 709, - SC76_CABINET2_FLAG = 710, - SC76_CABINET3_FLAG = 711, - DOOR_77_78_FLAG = 719, - SC80_EXIT_FLAG = 720, - SC31_LIFT_FLAG = 793, - SC32_LIFT_FLAG = 797, - SC33_SHED_DOOR_FLAG = 798, - BAND_PLAYING = 804, - COLSTON_AT_TABLE = 805, - SC36_NEXT_DEALER = 806, - SC36_DOOR_FLAG = 807, - SC37_DOOR_FLAG = 808, - SC40_LOCKER_1_FLAG = 817, - SC40_LOCKER_2_FLAG = 818, - SC40_LOCKER_3_FLAG = 819, - SC40_LOCKER_4_FLAG = 820, - SC40_LOCKER_5_FLAG = 821 -}; - -#define NUM_SKY_SCRIPTVARS 838 - -class AutoRoute; -class Control; -class Disk; -class Grid; -class Mouse; -class MusicBase; -class Screen; -class Sound; -class Text; -class SkyCompact; - -class Logic; - -typedef void (Logic::*LogicTable) (); -typedef bool (Logic::*McodeTable) (uint32, uint32, uint32); - -class Logic { -public: - Logic( - SkyCompact *skyCompact, - Screen *skyScreen, - Disk *skyDisk, - Text *skyText, - MusicBase *skyMusic, - Mouse *skyMouse, - Sound *skySound); - ~Logic(void); - void engine(); - void useControlInstance(Control *control) { _skyControl = control; }; - - uint16 mouseScript(uint32 scrNum, Compact *scriptComp); - - static uint32 _scriptVariables[NUM_SKY_SCRIPTVARS]; - Grid *_skyGrid; - - uint16 script(uint16 scriptNo, uint16 offset); - void initScreen0(void); - void parseSaveData(uint32 *data); - -private: - void setupLogicTable(); - void setupMcodeTable(); - const LogicTable *_logicTable; - const McodeTable *_mcodeTable; - -protected: - void push(uint32); - uint32 pop(); - void checkModuleLoaded(uint16 moduleNo); - bool collide(Compact *cpt); - void initScriptVariables(); - void mainAnim(); - void runGetOff(); - void stopAndWait(); - bool checkProtection(void); - - void nop(); - void logicScript(); - void autoRoute(); - void arAnim(); - void arTurn(); - void alt(); - void anim(); - void turn(); - void cursor(); - void talk(); - void listen(); - void stopped(); - void choose(); - void frames(); - void pause(); - void waitSync(); - void simpleAnim(); - - bool fnCacheChip(uint32 a, uint32 b, uint32 c); - bool fnCacheFast(uint32 a, uint32 b, uint32 c); - bool fnDrawScreen(uint32 a, uint32 b, uint32 c); - bool fnAr(uint32 a, uint32 b, uint32 c); - bool fnArAnimate(uint32 a, uint32 b, uint32 c); - bool fnIdle(uint32 a, uint32 b, uint32 c); - bool fnInteract(uint32 a, uint32 b, uint32 c); - bool fnStartSub(uint32 a, uint32 b, uint32 c); - bool fnTheyStartSub(uint32 a, uint32 b, uint32 c); - bool fnAssignBase(uint32 a, uint32 b, uint32 c); - bool fnDiskMouse(uint32 a, uint32 b, uint32 c); - bool fnNormalMouse(uint32 a, uint32 b, uint32 c); - bool fnBlankMouse(uint32 a, uint32 b, uint32 c); - bool fnCrossMouse(uint32 a, uint32 b, uint32 c); - bool fnCursorRight(uint32 a, uint32 b, uint32 c); - bool fnCursorLeft(uint32 a, uint32 b, uint32 c); - bool fnCursorDown(uint32 a, uint32 b, uint32 c); - bool fnOpenHand(uint32 a, uint32 b, uint32 c); - bool fnCloseHand(uint32 a, uint32 b, uint32 c); - bool fnGetTo(uint32 a, uint32 b, uint32 c); - bool fnSetToStand(uint32 a, uint32 b, uint32 c); - bool fnTurnTo(uint32 a, uint32 b, uint32 c); - bool fnArrived(uint32 a, uint32 b, uint32 c); - bool fnLeaving(uint32 a, uint32 b, uint32 c); - bool fnSetAlternate(uint32 a, uint32 b, uint32 c); - bool fnAltSetAlternate(uint32 a, uint32 b, uint32 c); - bool fnKillId(uint32 a, uint32 b, uint32 c); - bool fnNoHuman(uint32 a, uint32 b, uint32 c); - bool fnAddHuman(uint32 a, uint32 b, uint32 c); - bool fnAddButtons(uint32 a, uint32 b, uint32 c); - bool fnNoButtons(uint32 a, uint32 b, uint32 c); - bool fnSetStop(uint32 a, uint32 b, uint32 c); - bool fnClearStop(uint32 a, uint32 b, uint32 c); - bool fnPointerText(uint32 a, uint32 b, uint32 c); - bool fnQuit(uint32 a, uint32 b, uint32 c); - bool fnSpeakMe(uint32 targetId, uint32 mesgNum, uint32 animNum); - bool fnSpeakMeDir(uint32 targetId, uint32 mesgNum, uint32 animNum); - bool fnSpeakWait(uint32 a, uint32 b, uint32 c); - bool fnSpeakWaitDir(uint32 a, uint32 b, uint32 c); - bool fnChooser(uint32 a, uint32 b, uint32 c); - bool fnHighlight(uint32 a, uint32 b, uint32 c); - bool fnTextKill(uint32 a, uint32 b, uint32 c); - bool fnStopMode(uint32 a, uint32 b, uint32 c); - bool fnWeWait(uint32 a, uint32 b, uint32 c); - bool fnSendSync(uint32 a, uint32 b, uint32 c); - bool fnSendFastSync(uint32 a, uint32 b, uint32 c); - bool fnSendRequest(uint32 a, uint32 b, uint32 c); - bool fnClearRequest(uint32 a, uint32 b, uint32 c); - bool fnCheckRequest(uint32 a, uint32 b, uint32 c); - bool fnStartMenu(uint32 a, uint32 b, uint32 c); - bool fnUnhighlight(uint32 a, uint32 b, uint32 c); - bool fnFaceId(uint32 a, uint32 b, uint32 c); - bool fnForeground(uint32 a, uint32 b, uint32 c); - bool fnBackground(uint32 a, uint32 b, uint32 c); - bool fnNewBackground(uint32 a, uint32 b, uint32 c); - bool fnSort(uint32 a, uint32 b, uint32 c); - bool fnNoSpriteEngine(uint32 a, uint32 b, uint32 c); - bool fnNoSpritesA6(uint32 a, uint32 b, uint32 c); - bool fnResetId(uint32 a, uint32 b, uint32 c); - bool fnToggleGrid(uint32 a, uint32 b, uint32 c); - bool fnPause(uint32 a, uint32 b, uint32 c); - bool fnRunAnimMod(uint32 a, uint32 b, uint32 c); - bool fnSimpleMod(uint32 a, uint32 b, uint32 c); - bool fnRunFrames(uint32 a, uint32 b, uint32 c); - bool fnAwaitSync(uint32 a, uint32 b, uint32 c); - bool fnIncMegaSet(uint32 a, uint32 b, uint32 c); - bool fnDecMegaSet(uint32 a, uint32 b, uint32 c); - bool fnSetMegaSet(uint32 a, uint32 b, uint32 c); - bool fnMoveItems(uint32 a, uint32 b, uint32 c); - bool fnNewList(uint32 a, uint32 b, uint32 c); - bool fnAskThis(uint32 a, uint32 b, uint32 c); - bool fnRandom(uint32 a, uint32 b, uint32 c); - bool fnPersonHere(uint32 a, uint32 b, uint32 c); - bool fnToggleMouse(uint32 a, uint32 b, uint32 c); - bool fnMouseOn(uint32 a, uint32 b, uint32 c); - bool fnMouseOff(uint32 a, uint32 b, uint32 c); - bool fnFetchX(uint32 a, uint32 b, uint32 c); - bool fnFetchY(uint32 a, uint32 b, uint32 c); - bool fnTestList(uint32 a, uint32 b, uint32 c); - bool fnFetchPlace(uint32 a, uint32 b, uint32 c); - bool fnCustomJoey(uint32 a, uint32 b, uint32 c); - bool fnSetPalette(uint32 a, uint32 b, uint32 c); - bool fnTextModule(uint32 a, uint32 b, uint32 c); - bool fnChangeName(uint32 a, uint32 b, uint32 c); - bool fnMiniLoad(uint32 a, uint32 b, uint32 c); - bool fnFlushBuffers(uint32 a, uint32 b, uint32 c); - bool fnFlushChip(uint32 a, uint32 b, uint32 c); - bool fnSaveCoods(uint32 a, uint32 b, uint32 c); - bool fnPlotGrid(uint32 a, uint32 b, uint32 c); - bool fnRemoveGrid(uint32 a, uint32 b, uint32 c); - bool fnEyeball(uint32 a, uint32 b, uint32 c); - bool fnCursorUp(uint32 a, uint32 b, uint32 c); - bool fnLeaveSection(uint32 a, uint32 b, uint32 c); - bool fnEnterSection(uint32 sectionNo, uint32 b, uint32 c); - bool fnRestoreGame(uint32 a, uint32 b, uint32 c); - bool fnRestartGame(uint32 a, uint32 b, uint32 c); - bool fnNewSwingSeq(uint32 a, uint32 b, uint32 c); - bool fnWaitSwingEnd(uint32 a, uint32 b, uint32 c); - bool fnSkipIntroCode(uint32 a, uint32 b, uint32 c); - bool fnBlankScreen(uint32 a, uint32 b, uint32 c); - bool fnPrintCredit(uint32 a, uint32 b, uint32 c); - bool fnLookAt(uint32 a, uint32 b, uint32 c); - bool fnLincTextModule(uint32 a, uint32 b, uint32 c); - bool fnTextKill2(uint32 a, uint32 b, uint32 c); - bool fnSetFont(uint32 a, uint32 b, uint32 c); - bool fnStartFx(uint32 a, uint32 b, uint32 c); - bool fnStopFx(uint32 a, uint32 b, uint32 c); - bool fnStartMusic(uint32 a, uint32 b, uint32 c); - bool fnStopMusic(uint32 a, uint32 b, uint32 c); - bool fnFadeDown(uint32 a, uint32 b, uint32 c); - bool fnFadeUp(uint32 a, uint32 b, uint32 c); - bool fnQuitToDos(uint32 a, uint32 b, uint32 c); - bool fnPauseFx(uint32 a, uint32 b, uint32 c); - bool fnUnPauseFx(uint32 a, uint32 b, uint32 c); - bool fnPrintf(uint32 a, uint32 b, uint32 c); - - void stdSpeak(Compact *target, uint32 textNum, uint32 animNum, uint32 base); - void fnExec(uint16 num, uint32 a, uint32 b, uint32 c); - - uint16 *_moduleList[16]; - uint32 _stack[20]; - byte _stackPtr; - - Compact *_compact; - - uint32 _objectList[30]; - - uint32 _currentSection; - - Common::RandomSource _rnd; - - SkyCompact *_skyCompact; - Screen *_skyScreen; - Disk *_skyDisk; - Text *_skyText; - MusicBase *_skyMusic; - Sound *_skySound; - AutoRoute *_skyAutoRoute; - Mouse *_skyMouse; - Control *_skyControl; - - friend class Debugger; -}; - -} // End of namespace Sky - -#endif |