diff options
Diffstat (limited to 'include')
-rwxr-xr-x | include/game.h | 120 |
1 files changed, 120 insertions, 0 deletions
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];
|