From 17f3c6b0077d85cb9cabf463e6d3953293b2468e Mon Sep 17 00:00:00 2001 From: Treeki Date: Fri, 8 Feb 2013 23:18:26 +0100 Subject: various additions to the headers to support the next two commits --- include/game.h | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) (limited to 'include/game.h') diff --git a/include/game.h b/include/game.h index 61e303c..d706a4c 100755 --- a/include/game.h +++ b/include/game.h @@ -2241,6 +2241,126 @@ public: }; +class dPlayerInput_c { + public: + dPlayerInput_c(); + ~dPlayerInput_c(); + + void activate(int playerID) { this->playerID = playerID; } + void deactivate(); // 8005E030 + + void execute(); // 8005E040 + void loadDataDirectlyFromRemocon(); // 8005E2B0 + + bool detectGroundPound(); // 8005E300 + + enum Flags { + NO_INPUT = 0, + FORCE_TWO_ON = 3, + FORCE_TWO_OFF = 4, + ONLY_HOLD_RIGHT = 6, + FORCE_VALUES = 7, + NO_SHAKING = 8, + }; + enum FlagMask { + NO_INPUT_MASK = 1 << NO_INPUT, + FORCE_TWO_ON_MASK = 1 << FORCE_TWO_ON, + FORCE_TWO_OFF_MASK = 1 << FORCE_TWO_OFF, + ONLY_HOLD_RIGHT_MASK = 1 << ONLY_HOLD_RIGHT, + FORCE_VALUES_MASK = 1 << FORCE_VALUES, + NO_SHAKING_MASK = 1 << NO_SHAKING, + }; + + void setFlag(Flags flag); // 8005E3B0 + void unsetFlag(Flags flag); // 8005E460 + + void clearInputs(); // 8005E480 + void unsetLeftAndRight(); // 8005E4A0 + + u32 getPressedA(); // 8005E4C0 + u32 getAllHeldArrows(); // 8005E4D0 + u32 getAllPressedArrows(); // 8005E4E0 + + u32 getHeldUp(); // 8005E4F0 + u32 getHeldDown(); // 8005E500 + u32 getHeldLeft(); // 8005E510 + u32 getHeldRight(); // 8005E520 + u32 getPressedUp(); // 8005E530 + u32 getPressedDown(); // 8005E540 + u32 getPressedLeft(); // 8005E550 + u32 getPressedRight(); // 8005E560 + + u32 getPressedTwo(); // 8005E570 + u32 getHeldTwo(); // 8005E580 + + u32 getPressedBorOne(); // 8005E590 + u32 getHeldBorOne(); // 8005E5D0 + + u32 getHeldOne(); // 8005E610 + + u32 willPunchFence_maybe(); // 8005E620 + u32 willEatOrSpit_maybe(); // 8005E630 + u32 willPerformSomeAction_B_or_One(); // 8005E680 + u32 willShootProjectile(); // 8005E690 + + u32 j_getPressedTwo(); // 8005E6E0 + + u32 willJump_maybe(); // 8005E6F0 + + u32 getHeldTwoModifiedByFlags(); // 8005E740 + + u32 yetAnotherTwoThunk(); // 8005E770 + + u32 areWeShaking(); // 8005E780 + void clearShakeInputs(); // 8005E790 + + bool getLRMovementDirection(int *pOutDirection = 0); // 8005E7A0 + + u32 anotherDownAction(); // 8005E830 + + u32 isDownPressedExclusively(); // 8005E840 + u32 isUpPressedWithoutLeftOrRight(); // 8005E890 + + bool wasTwoPressedRecently(); // 8005E8B0 + + void setPermanentForcedButtons(u32 buttons); // 8005E910 + void unsetPermanentForcedButtons(u32 buttons); // 8005E930 + void setTransientForcedButtons(u32 buttons); // 8005E960 + void forceShakingOn(); // 8005E980 + + private: + int playerID; + u16 heldButtons, nowPressed; + u16 lastHeldButtons, lastNowPressed; + u16 permanentForcedButtons, transientForcedButtons; + u16 forcedShakeValue; + u16 flags; + + u8 gpCounter; + bool dontResetGPValuesNextTick, gpActive; + u8 shaking1, shaking2; + bool wasActionExecuted; + int countdownAfterFlag6Deactivated; + u32 _20; + int rollingHistoryOfTwo[4][10]; + int rollingHistoryOfTwoModifiedByFlags[4][10]; +}; + + +class daPlBase_c : public dStageActor_c { + public: + // Can't be assed to build full headers right now + u8 data[0xEA4 - 0x394]; + dPlayerInput_c input; +}; + +class dAcPy_c : public daPlBase_c { + public: + // Can't be assed to build full headers right now + void *getYoshi(); // 80139A90 +}; + + class dAc_Py_c : public dStageActor_c { public: u8 data[0x1164 - 0x394]; -- cgit v1.2.3