diff options
Diffstat (limited to 'engines/tsage/ringworld2/ringworld2_scenes1.h')
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.h | 217 |
1 files changed, 116 insertions, 101 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index cc114b2033..c809353051 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -183,38 +183,52 @@ public: }; class Scene1337 : public SceneExt { - class unkObj1337sub1: public SceneHotspot { + class OptionsDialog: public GfxDialog { + private: + GfxButton _autoplay; + GfxButton _restartGame; + GfxButton _quitGame; + GfxButton _continueGame; + + OptionsDialog(); + virtual ~OptionsDialog() {} + virtual GfxButton *execute(GfxButton *defaultButton); + public: + static void show(); + }; + + class Card: public SceneHotspot { public: - SceneObject _object1; + SceneObject _card; - int _field34; - Common::Point _field36; + int _cardId; + Common::Point _stationPos; - unkObj1337sub1(); + Card(); void synchronize(Serializer &s); + bool isIn(Common::Point pt); }; - class unkObj1337_1: public SceneHotspot { + class GameBoardSide: public SceneHotspot { public: - unkObj1337sub1 _arr1[4]; - unkObj1337sub1 _arr2[8]; - unkObj1337sub1 _arr3[1]; - unkObj1337sub1 _arr4[1]; + Card _handCard[4]; + Card _outpostStation[8]; + Card _delayCard; + Card _emptyStationPos; - Common::Point _fieldB94; - Common::Point _fieldB98; - Common::Point _fieldB9C; - Common::Point _fieldBA0; - int _fieldBA4; + Common::Point _card1Pos; + Common::Point _card2Pos; + Common::Point _card3Pos; + Common::Point _card4Pos; + int _frameNum; - unkObj1337_1(); + GameBoardSide(); void synchronize(Serializer &s); }; class Action1337: public Action { public: - void subD18B5(int resNum, int stripNum, int frameNum); - void skipFrames(int32 skipCount); + void waitFrames(int32 frameCount); }; class Action1: public Action1337 { @@ -270,16 +284,6 @@ class Scene1337 : public SceneExt { void signal(); }; public: - typedef void (Scene1337::*FunctionPtrType)(); - FunctionPtrType _unkFctPtr412; - - ASound _aSound1; - ASound _aSound2; - BackgroundSceneObject _background1; - bool _autoplay; - unkObj1337_1 _arrunkObj1337[4]; - SceneItem _item1; - SceneObject _object1; Action1 _action1; Action2 _action2; Action3 _action3; @@ -293,90 +297,101 @@ public: Action11 _action11; Action12 _action12; Action13 _action13; - unkObj1337sub1 _item2; - unkObj1337sub1 _item3; - unkObj1337sub1 _item4; - BackgroundSceneObject _background2; - int _field3E24; - int _field3E26; - int _field3E28[100]; - unkObj1337sub1 *_field3EF0; - unkObj1337sub1 *_field3EF4; - unkObj1337sub1 *_field3EF8; - unkObj1337sub1 _item5; - unkObj1337sub1 _item6; - unkObj1337sub1 _item7; - unkObj1337sub1 _item8; - int _field423C; - int _field423E; - int _field4240; - int _field4242; - int _field4244; - int _field4246; - int _field4248; - int _field424A; - int _field424C; - int _field424E; - - SceneObject _arrObject1[8]; - SceneObject _arrObject2[8]; + + typedef void (Scene1337::*FunctionPtrType)(); + FunctionPtrType _delayedFunction; + + bool _autoplay; + bool _shuffleEndedFl; + bool _showPlayerTurn; + bool _displayHelpFl; + bool _instructionsDisplayedFl; + + // Discarded cards are put in the available cards pile, with an higher index so there no conflict + int _currentDiscardIndex; + int _availableCardsPile[100]; + int _cardsAvailableNumb; + int _currentPlayerNumb; + int _actionIdx1; + int _actionIdx2; + int _winnerId; + int _instructionsWaitCount; + int _cursorCurRes; + int _cursorCurStrip; + int _cursorCurFrame; + + ASound _aSound1; + ASound _aSound2; + GameBoardSide _gameBoardSide[4]; + SceneActor _helpIcon; + SceneActor _stockPile; + SceneItem _actionItem; + SceneObject _currentPlayerArrow; + + Card *_actionCard1; + Card *_actionCard2; + Card *_actionCard3; + Card _animatedCard; + Card _shuffleAnimation; + Card _discardedPlatformCard; + Card _selectedCard; + Card _discardPile; + Card _stockCard; + + SceneObject _upperDisplayCard[8]; + SceneObject _lowerDisplayCard[8]; Scene1337(); virtual void synchronize(Serializer &s); - void actionDisplay(int resNum, int lineNum, int x, int y, int arg5, int width, int textMode, int fontNum, int colFG, int colBGExt, int colFGExt); - void setAnimationInfo(unkObj1337sub1 *subObj); - void subC20E5(); - void subC20F9(); - void subC2586(); - bool subC264B(int arg1); - bool subC2687(int arg1); - int subC26CB(int arg1, int arg2); - int subC2719(int arg1); - int subC274D(int arg1); - int subC2781(int arg1); - int subC27B5(int arg1); - int subC27F9(int arg1); - void subC2835(int arg1); - bool subC2BF8(unkObj1337sub1 *subObj1, Common::Point pt); - void subC2C2F(); - void subC318B(int arg1, unkObj1337sub1 *subObj2, int arg3); - int subC3257(int arg1); - bool subC32B1(int arg1, int arg2); - int subC331B(int arg1); - bool subC3386(int arg1, int arg2); - void subC33C0(unkObj1337sub1 *subObj1, unkObj1337sub1 *subObj2); - void subC3456(unkObj1337sub1 *subObj1, unkObj1337sub1 *subObj2); - void subC340B(unkObj1337sub1 *subObj1, unkObj1337sub1 *subObj2); - void subC34A1(unkObj1337sub1 *subObj1, unkObj1337sub1 *subObj2); - unkObj1337sub1 *subC34EC(int arg1); - void subC358E(unkObj1337sub1 *subObj1, int arg2); - int subC3E92(int arg1); - void subC4A39(unkObj1337sub1 *subObj); + void actionDisplay(int resNum, int lineNum, int x, int y, int keepOnScreen, int width, int textMode, int fontNum, int colFG, int colBGExt, int colFGExt); + void setAnimationInfo(Card *card); + void handleNextTurn(); + void handlePlayerTurn(); + bool isStationCard(int cardId); + bool isStopConstructionCard(int cardId); + int getStationId(int playerId, int handCardId); + int findPlatformCardInHand(int playerId); + int findCard13InHand(int playerId); + int checkThieftCard(int playerId); + int isDelayCard(int cardId); + int getStationCardId(int cardId); + void handlePlayer01Discard(int playerId); + void playThieftCard(int playerId, Card *card, int victimId); + int getPreventionCardId(int cardId); + bool isAttackPossible(int victimId, int cardId); + int getPlayerWithOutpost(int playerId); + bool checkAntiDelayCard(int delayCardId, int cardId); + void playStationCard(Card *station, Card *platform); + void playDelayCard(Card *card, Card *dest); + void playPlatformCard(Card *card, Card *dest); + void playAntiDelayCard(Card *card, Card *dest); + Card *getStationCard(int arg1); + void playCounterTrickCard(Card *card, int playerId); + int getFreeHandCard(int playerId); + void discardCard(Card *card); void subC4CD2(); void subC4CEC(); - void subC51A0(unkObj1337sub1 *subObj1, unkObj1337sub1 *subObj2); + void subC51A0(Card *subObj1, Card *subObj2); void displayDialog(int dialogNumb); void subPostInit(); - void subCB59B(); + void displayInstructions(); void suggestInstructions(); void shuffleCards(); - void subCCF26(); - void subCD193(); - void subCDB90(int arg1, Common::Point pt); - void subCF31D(); - void subCF979(); - void subD026D(); - void subD0281(); - void subD02CA(); - void subD183F(int arg1, int arg2); - void subD18B5(int resNum, int rlbNum, int arg3); - int subD18F5(); - int subD1917(); - int subD1940(bool flag); - void subD195F(int arg1, int arg2); + void dealCards(); + void showOptionsDialog(); + void handleClick(int arg1, Common::Point pt); + void handlePlayer0(); + void handlePlayer1(); + void handlePlayer2(); + void handlePlayer3(); + void handleAutoplayPlayer2(); + void updateCursorId(int arg1, bool arg2); + void setCursorData(int resNum, int rlbNum, int frameNum); + void subD18F5(); + void subD1917(); + void subD1940(bool flag); void subD1975(int arg1, int arg2); - void subD1A48(int arg1); virtual void postInit(SceneObjectList *OwnerList = NULL); virtual void remove(); |