summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeki <treeki@gmail.com>2013-02-08 23:18:26 +0100
committerTreeki <treeki@gmail.com>2013-02-08 23:18:26 +0100
commit17f3c6b0077d85cb9cabf463e6d3953293b2468e (patch)
tree78e10b1c15f888458a2890d939eb56293ee46d2e
parent8a5235d60ca06a8bd81d5aab585b65c017e5bdde (diff)
downloadkamek-17f3c6b0077d85cb9cabf463e6d3953293b2468e.tar.gz
kamek-17f3c6b0077d85cb9cabf463e6d3953293b2468e.zip
various additions to the headers to support the next two commits
-rwxr-xr-xinclude/game.h120
-rw-r--r--kamek_pal.x3
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;