diff options
author | Treeki <treeki@gmail.com> | 2013-02-08 23:18:26 +0100 |
---|---|---|
committer | Treeki <treeki@gmail.com> | 2013-02-08 23:18:26 +0100 |
commit | 17f3c6b0077d85cb9cabf463e6d3953293b2468e (patch) | |
tree | 78e10b1c15f888458a2890d939eb56293ee46d2e | |
parent | 8a5235d60ca06a8bd81d5aab585b65c017e5bdde (diff) | |
download | kamek-17f3c6b0077d85cb9cabf463e6d3953293b2468e.tar.gz kamek-17f3c6b0077d85cb9cabf463e6d3953293b2468e.zip |
various additions to the headers to support the next two commits
Diffstat (limited to '')
-rwxr-xr-x | include/game.h | 120 | ||||
-rw-r--r-- | kamek_pal.x | 3 |
2 files changed, 123 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];
diff --git a/kamek_pal.x b/kamek_pal.x index 18194a7..9161ef1 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -1,4 +1,7 @@ SECTIONS { + getYoshi__7dAcPy_cFv = 0x80139A90; + setFlag__14dPlayerInput_cFQ214dPlayerInput_c5Flags = 0x8005E3B0; + OriginalPowBlockActivated = 0x800A0C70; isReplayEnabled = 0x80002EEE; |