From 54cbbfb69c8a9562d89f05967ae38011327e8da0 Mon Sep 17 00:00:00 2001 From: Treeki Date: Sun, 10 Jul 2011 05:07:53 +0200 Subject: initial not completely finished version of daEnTestBlock_c --- NewerProject.yaml | 1 + include/game.h | 543 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- kamek_ntsc.x | 224 +++++++++++++++++++++- kamek_ntsc2.x | 224 +++++++++++++++++++++- kamek_pal.x | 224 +++++++++++++++++++++- kamek_pal2.x | 224 +++++++++++++++++++++- src/testblock.cpp | 83 +++++++++ testblock.yaml | 7 + 8 files changed, 1486 insertions(+), 44 deletions(-) create mode 100644 src/testblock.cpp create mode 100644 testblock.yaml diff --git a/NewerProject.yaml b/NewerProject.yaml index f796ec6..09254f4 100644 --- a/NewerProject.yaml +++ b/NewerProject.yaml @@ -21,3 +21,4 @@ modules: - processed/eventlooper.yaml - processed/compression.yaml # - processed/actorlog.yaml + - processed/testblock.yaml diff --git a/include/game.h b/include/game.h index 7c8b4e2..4927345 100755 --- a/include/game.h +++ b/include/game.h @@ -802,6 +802,178 @@ namespace EGG { } +class TileRenderer { +public: + TileRenderer(); + ~TileRenderer(); + + TileRenderer *list1, *list2; + u16 tileNumber; + u8 unkFlag, someBool; + float x, y, z; + float scale; + s16 rotation; + u8 unkByte; + + u16 getTileNum(); + bool getSomeBool(); + void setSomeBool(u8 value); + + float getX(); + float getY(); + float getZ(); + void setPosition(float x, float y); + void setPosition(float x, float y, float z); + + u8 getUnkFlag(); + + void setVars(float scale); // sets unkFlag=1, rotation=0, unkByte=0 + void setVars(float scale, s16 rotation); // sets unkFlag=2, unkByte=0 + + float getScale(); + float getRotationFloat(); + s16 getRotation(); + + u8 getUnkByte(); + + class List { + public: + u32 count; + TileRenderer *first, *last; // order? + + void add(TileRenderer *r); + void remove(TileRenderer *r); + void removeAll(); + + List(); + ~List(); + }; +}; + +class dActor_c; // forward declaration + +class Physics { +public: + struct Unknown { + Unknown(); + ~Unknown(); + + float x, y; + }; + + struct Info { + float x1, y1, x2, y2; // Might be distance to center/edge like APhysics + void *otherCallback1, *otherCallback2, *otherCallback3; + }; + + Physics(); + ~Physics(); + + dActor_c *owner; + Physics *next, *prev; + u32 _C, _10, _14, _18, _1C, _20, _24, _28, _2C, _30, _34, _38, _3C; + void *otherCallback1, *otherCallback2, *otherCallback3; + void *callback1, *callback2, *callback3; + float lastX, lastY; + Unknown unkArray[4]; + float x, y; + float _88, _8C, _90; + Vec lastActorPosition; + float _A0, _A4, last_A0, last_A4, _B0, _B4; + u32 _B8; + s16 *ptrToRotationShort; + s16 currentRotation; + s16 rotDiff; + s16 rotDiffAlt; + u32 isRound; + u32 _CC; + u32 flagsMaybe; + u32 _D4, _D8; + u8 isAddedToList, _DD, layer; + u32 id; + + void addToList(); + void removeFromList(); + + void baseSetup(dActor_c *actor, u32 t_40, u32 t_44, u32 t_48, u8 t_DD, u8 layer); + + // note: Scale can be a null pointer (in that case, it'll use 1.0) + void setup(dActor_c *actor, + float x1, float y1, float x2, float y2, + void *otherCB1, void *otherCB2, void *otherCB3, + u8 t_DD, u8 layer, Vec2 *scale = 0); + + void setup(dActor_c *actor, + Vec2 *p1, Vec2 *p2, + void *otherCB1, void *otherCB2, void *otherCB3, + u8 t_DD, u8 layer, Vec2 *scale = 0); + + void setup(dActor_c *actor, Info *pInfo, u8 t_DD, u8 layer, Vec2 *scale = 0); + + // radius might be diameter? dunno + void setupRound(dActor_c *actor, + float x, float y, float radius, + void *otherCB1, void *otherCB2, void *otherCB3, + u8 t_DD, u8 layer); + + void setRect(float x1, float y1, float x2, float y2, Vec2 *scale = 0); + void setRect(Vec2 *p1, Vec2 *p2, Vec2 *scale = 0); + + void setX(float value); + void setY(float value); + void setWidth(float value); + void setHeight(float value); + + void setPtrToRotation(s16 *ptr); + + void update(); + + // todo: more stuff that might not be relevant atm +}; + + +class ActivePhysics { +public: + struct Info; // forward declaration + typedef void (*Callback)(Info *self, Info *other); + + struct Info { + float xDistToCenter; + float yDistToCenter; + float xDistToEdge; + float yDistToEdge; + u8 category1; + u8 category2; + u32 bitfield1; + u32 bitfield2; + u16 unkShort1C; + Callback callback; + }; + + ActivePhysics(); + virtual ~ActivePhysics(); + + dActor_c *owner; // should be dStageActor? dunno + u32 _8; + u32 _C; + ActivePhysics *listPrev, *listNext; + u32 _18; + Info info; + u32 _40, _44, _48, _4C; + float firstFloatArray[8]; + float secondFloatArray[8]; + Vec2 positionOfLastCollision; + u16 result1; + u16 result2; + u16 result3; + u8 collisionCheckType; + u8 chainlinkMode; + u8 layer; + u8 someFlagByte; + u8 isLinkedIntoList; +}; + + struct LinkListEntry { @@ -875,19 +1047,19 @@ public: virtual int onCreate(); virtual int beforeCreate(); - virtual int afterCreate(); + virtual int afterCreate(int); virtual int onDelete(); virtual int beforeDelete(); - virtual int afterDelete(); + virtual int afterDelete(int); virtual int onExecute(); virtual int beforeExecute(); - virtual int afterExecute(); + virtual int afterExecute(int); virtual int onDraw(); virtual int beforeDraw(); - virtual int afterDraw(); + virtual int afterDraw(int); virtual void willBeDeleted(); @@ -915,13 +1087,13 @@ public: dBase_c(); int beforeCreate(); - int afterCreate(); + int afterCreate(int); int beforeDelete(); - int afterDelete(); + int afterDelete(int); int beforeExecute(); - int afterExecute(); + int afterExecute(int); int beforeDraw(); - int afterDraw(); + int afterDraw(int); ~dBase_c(); @@ -935,13 +1107,13 @@ public: dScene_c(); int beforeCreate(); - int afterCreate(); + int afterCreate(int); int beforeDelete(); - int afterDelete(); + int afterDelete(int); int beforeExecute(); - int afterExecute(); + int afterExecute(int); int beforeDraw(); - int afterDraw(); + int afterDraw(int); ~dScene_c(); @@ -982,6 +1154,353 @@ public: ~dActor_c(); }; +class dStageActor_c : public dActor_c { +public: + u8 _125; + u32 _128, _12C, _130, _134, _138, _13C; + float _140; + u32 _144; + ActivePhysics aPhysics; + u8 classAt1EC[236]; + u32 _2D8; + u8 classAt2DC[0x34]; + u32 _310, _314; + float _318, _31C, _320, _324, _328, _32C, _330, _334, _338, _33C, _340, _344; + u8 direction; + u8 currentZoneID; + u8 _34A, _34B; + u32 _350, _354, _358, _35C, _360; + u8 _364, _365, _366, _367; + u32 _368; + u8 _36C, _36D; + Vec somethingRelatedToScale; + u32 _37C, _380, _384, _388; + u8 _38C, _38D, enableFlag, currentLayerID; + u8 _390, _391, _392, _padding; + + dStageActor_c(); + + int beforeCreate(); + int afterCreate(int); + int beforeDelete(); + int afterDelete(int); + int beforeExecute(); + int afterExecute(int); + int beforeDraw(); + int afterDraw(int); + + const char *GetExplanationString(); + + virtual bool _vf60(); // does stuff with BG_GM + virtual void kill(); // nullsub here, defined in StageActor. probably no params + virtual int _vf68(); // params unknown. return (1) might be bool + virtual u8 *_vf6C(); // returns byte 0x38D + virtual Vec2 _vf70(); // returns Vec Actor.pos + Vec Actor.field_D0 + virtual int _vf74(); // params unknown. return (1) might be bool + virtual void _vf78(); // params unknown. nullsub + virtual void _vf7C(); // params unknown. nullsub + virtual void eatIn(); // copies Actor.scale into StageActor.somethingRelatedToScale + virtual void disableEatIn(); // params unknown. nullsub + virtual void _vf88(); // params unknown. nullsub + virtual bool _vf8C(void *other); // dAcPy_c/daPlBase_c? return (1) is probably bool. seems related to EatOut. uses vfA4 + virtual bool _vf90(dStageActor_c *other); // does something with scores + virtual void _vf94(void *other); // dAcPy_c/daPlBase_c? modifies This's position + virtual void removeMyActivePhysics(); + virtual void addMyActivePhysics(); + virtual void returnRegularScale(); // the reverse of vf80, yay + virtual void _vfA4(void *other); // AcPy/PlBase? similar to vf94 but not quite the same + virtual float _vfA8(void *other); // AcPy/PlBase? what DOES this do...? does a bit of float math + virtual void _vfAC(void *other); // copies somethingRelatedToScale into scale, then multiplies scale by vfA8's return + virtual void _vfB0(); // plays Wm_en_burst_s at actor position + virtual void _vfB4(); // params unknown. nullsub + virtual void _vfB8(); // params unknown. nullsub + virtual void _vfBC(); // params unknown. nullsub + virtual void _vfC0(); // params unknown. nullsub + virtual void _vfC4(); // params unknown. nullsub + virtual void _vfC8(Vec2 *p); // does stuff including effects and playing PLAYER_SE_OBJ/GROUP_BOOT/SE_OBJ_CMN_SPLASH + virtual void _vfCC(Vec2 *p); // mostly same as vfC8, but uses PLAYER_SE_OBJ/GROUP_BOOT/SE_OBJ_CMN_SPLASH_LAVA + virtual void _vfD0(Vec2 *p); // mostly same as vfC8, but uses PLAYER_SE_OBJ/GROUP_BOOT/SE_OBJ_CMN_SPLASH_POISON + + // I'll add methods as I need them + void checkZoneBoundaries(u32 flags); // I think this method is for that, anyway + + ~dStageActor_c(); + + + static void create(Actors type, u32 settings, Vec *pos, S16Vec *rot, u8 layer); + static void createChild(Actors type, u32 settings, Vec *pos, S16Vec *rot, u8 layer); +}; + + +/* TODO +class dActorState_c : public dStageActor_c { +public: + ~dActorState_c(); + + virtual void _vfD4(); + virtual void _vfD8(); + virtual void _vfDC(); +}; +*/ + + +class dActorMultiState_c : public dStageActor_c { +public: + ~dActorMultiState_c(); + + // fuck all of this. I'll just use a data blob here + // because I don't feel like reimplementing the State stuff in C++ + // right now. + + u8 stateClassesAndStuff[0x410 - 0x394]; + + virtual void doStateChange(void *state); // might return bool? overridden by dEn_c + virtual void _vfD8(); // nullsub ?? + virtual void _vfDC(); // nullsub ?? + virtual void _vfE0(); // nullsub ?? +}; + + +class dEn_c : public dActorMultiState_c { +public: + float _414, _418, _41C, _420; + void *nextState; + u32 _428, _42C; + u8 _430, _431, isDead; + u32 _434; + u16 _438; + u32 _43C; + Vec velocity1, velocity2; + u8 _458, _459, _45A, _45B, _45C, _45D, _45E; + u32 _460; + Vec initialScale; + float _470; + u32 _474, _478; + dEn_c *_47C; + u32 _480; + u8 classAt484[0x4EC - 0x484]; + u32 _4EC; + float _4F0, _4F4, _4F8; + u32 flags_4FC; + u16 counter_500, counter_502; + u16 counter_504[4]; + u16 counter_50C; + u32 _510, _514, _518; + void *_51C; + dEn_c *_520; + u32 _524, _528, _52C, _530; + + dEn_c(); + + int afterCreate(int); + int beforeExecute(int); + int afterExecute(int); + int beforeDraw(int); + + void kill(); + + void eatIn(); + void disableEatIn(); + bool _vf8C(void *other); // AcPy/PlBase? + void _vfAC(); + void _vfCC(Vec2 *p); + void _vfD0(Vec2 *p); + + void doStateChange(void *state); // might return bool, dunno + + // Now here's where the fun starts. + + virtual bool preSpriteCollision(ActivePhysics *apThis, ActivePhysics *apOther); + virtual bool prePlayerCollision(ActivePhysics *apThis, ActivePhysics *apOther); + virtual bool preYoshiCollision(ActivePhysics *apThis, ActivePhysics *apOther); + + virtual bool stageActorCollision(ActivePhysics *apThis, ActivePhysics *apOther); + + virtual void spriteCollision(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void playerCollision(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void yoshiCollision(ActivePhysics *apThis, ActivePhysics *apOther); + + // WHAT A MESS + virtual void collisionCat3_StarPower(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat5_Mario(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void _vf108(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCatD_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void _vf110(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat8_FencePunch(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat7_WMWaggleWater(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat7_WMWaggleWaterYoshi(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void _vf120(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCatA_PenguinMario(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat11_PipeCannon(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat1_Fireball_E_Explosion(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics *apOther); + virtual void collisionCat14_YoshiFire(ActivePhysics *apThis, ActivePhysics *apOther); + + virtual void _vf140(dStageActor_c *actor); + virtual void _vf144(int something); + virtual void _vf148(); // deletes actors held by Class484 and other stuff + virtual void _vf14C(); // deletes actors held by Class484 and makes an En Coin Jump + virtual u32 _vf150(); // reads some bits from a value in Class1EC + virtual void eatenByYoshiProbably(); // nullsub, params unknown + virtual void playHpdpSound1(); // plays PLAYER_SE_EMY/GROUP_BOOT/SE_EMY_DOWN_HPDP_S or _H + virtual void playEnemyDownSound1(); + virtual void playEnemyDownComboSound(void *player); // AcPy_c/daPlBase_c? + virtual void playHpdpSound2(); // plays PLAYER_SE_EMY/GROUP_BOOT/SE_EMY_DOWN_HPDP_S or _H + virtual void _vf168(); // nullsub, params unknown + + // State Functions + virtual void dieFumi_Begin(); // does something involving looping thruogh players + virtual void dieFumi_Execute(); // does movement and some other stuff + virtual void dieFumi_End(); // nullsub + virtual void dieFall_Begin(); // does something involving looping thruogh players + virtual void dieFall_Execute(); // does movement and some other stuff + virtual void dieFall_End(); // nullsub + virtual void dieBigFall_Begin(); // calls vf178 [dieFall_Begin] + virtual void dieBigFall_Execute(); // does movement and some other stuff (but less than 170 and 17C) + virtual void dieBigFall_End(); // calls vf180 [dieFall_End] + virtual void dieSmoke_Begin(); // spawns Wm_en_burst_m effect and then removeMyActivePhysics + virtual void dieSmoke_Execute(); // deletes actor with r4=1 + virtual void dieSmoke_End(); // nullsub + virtual void dieYoshiFumi_Begin(); // spawns Wm_mr_yoshistep effect and then removeMyActivePhysics + virtual void dieYoshiFumi_Execute(); // deletes actor with r4=1 + virtual void dieYoshiFumi_End(); // nullsub + virtual void dieIceVanish_Begin(); // lots of weird stuff + virtual void dieIceVanish_Execute(); // deletes actor with r4=1 + virtual void dieIceVanish_End(); // nullsub + virtual void dieGoal_Begin(); // nullsub + virtual void dieGoal_Execute(); // nullsub + virtual void dieGoal_End(); // nullsub + virtual void dieOther_Begin(); // deletes actor with r4=1 + virtual void dieOther_Execute(); // nullsub + virtual void dieOther_End(); // nullsub + virtual void eatIn_Begin(); // nullsub + virtual void eatIn_Execute(); // changes to EatNow on one condition, otherwise calls vfAC + virtual void eatIn_End(); // nullsub + virtual void eatNow_Begin(); // nullsub + virtual void eatNow_Execute(); // nullsub + virtual void eatNow_End(); // nullsub + virtual void eatOut_Begin(); // nullsub + virtual void eatOut_Execute(); // nullsub + virtual void eatOut_End(); // nullsub + virtual void hitSpin_Begin(); // nullsub + virtual void hitSpin_Execute(); // nullsub + virtual void hitSpin_End(); // nullsub + virtual void ice_Begin(); // does stuff with Class484 and lots of vf's + virtual void ice_Execute(); // tons of stuff with Class484 + virtual void ice_End(); // sets a field in Class484 to 0 + + virtual void spawnHitEffectAtPosition(Vec2 pos); + virtual void doSomethingWithHardHitAndSoftHitEffects(Vec pos); + virtual void playEnemyDownSound2(); + virtual void add2ToYSpeed(); + virtual bool _vf218(); // stuff with floats and camera + virtual void _vf21C(); // does stuff with the speeds + virtual void _vf220(void *other); // some type of actor, PlBase? calls vf3F4 on other with r4=this, r5=0 + virtual void _vf224(); // stores a couple of values into the struct at 464 + virtual void _vf228(); // more fun stuff with 464 and floats + virtual bool _vf22C(); // does stuff involving ICE_ACTORs and arrays + virtual void _vf230(); // "relatedToPlayerOrYoshiCollision" apparently. nullsub, params unknown for now. + virtual void _vf234(); // nullsub, params unknown + virtual void _vf238(); // calls vf34 on class394, params unknown + virtual void _vf23C(); // nullsub, params unknown + virtual void _vf240(); // nullsub, params unknown + virtual int _vf244(); // returns 0. might be bool. params unknown + virtual int _vf248(int something); // does some math involving field510 and [7,7,4,0] and param + virtual void _vf24C(void *other); // deals with something in the class involving the bahp flag + virtual void _vf250(void *other); + virtual void _vf254(void *other); + virtual void _vf258(void *other); + virtual void _vf25C(void *other); // calls vf250 + virtual void _vf260(void *other); // AcPy/PlBase? plays the SE_EMY_FUMU_%d sounds based on some value + virtual void _vf264(dStageActor_c *other); // if other is player or yoshi, do Wm_en_hit and a few other things + virtual void _vf268(void *other); // AcPy/PlBase? plays the SE_EMY_DOWN_SPIN_%d sounds based on some value + virtual void spawnHitEffectAtPositionAgain(Vec2 pos); + virtual void playMameStepSound(); // SE_EMY_MAME_STEP at actor position + virtual void _vf274(); // nullsub, params unknown + virtual void _vf278(void *other); // AcPy/PlBase? plays the SE_EMY_YOSHI_FUMU_%d sounds based on some value + virtual void _vf27C(); // nullsub, params unknown + + ~dEn_c(); +}; + + +class daEnBlockMain_c : public dEn_c { +public: + Physics physics; + float _618, _61C, _620; + u32 _624, _628, _62C; + float initialY; + float _634, _638, _63C, _640; + u32 countdown, _648, _64C; + u32 _650, _654, _658, _65C; + u16 _660; + u8 _662, _663, _664, _665, _666, _667; + u8 _668, _669, _66A, _66B, _66C, _66D, _66E, _66F; + u8 _670, _671, _672, _673; + u8 _674; + u8 _675, _676, _677, _678, _679, _67A, _67B, _67C; + u8 _67D, _67E, _67F, _680; + u32 _684; + u8 _688, isGroundPound, anotherFlag, _68B, _68C, _68D, _68E, _68F; + u32 _690; + u8 _694; + + // Regular methods + void blockInit(float initialY); + void blockUpdate(); + + virtual void calledWhenUpMoveBegins(); + virtual void calledWhenDownMoveBegins(); + + virtual void calledWhenUpMoveExecutes(); + virtual void calledWhenUpMoveDiffExecutes(); + virtual void calledWhenDownMoveExecutes(); + virtual void calledWhenDownMoveEndExecutes(); + virtual void calledWhenDownMoveDiffExecutes(); + virtual void calledWhenDownMoveDiffEndExecutes(); + + virtual void updateScale(bool movingDown); + + // State functions + virtual void upMove_Begin(); + virtual void upMove_Execute(); + virtual void upMove_End(); + virtual void downMove_Begin(); + virtual void downMove_Execute(); + virtual void downMove_End(); + virtual void downMoveEnd_Begin(); + virtual void downMoveEnd_Execute(); + virtual void downMoveEnd_End(); + virtual void upMove_Diff_Begin(); + virtual void upMove_Diff_Execute(); + virtual void upMove_Diff_End(); + virtual void downMove_Diff_Begin(); + virtual void downMove_Diff_Execute(); + virtual void downMove_Diff_End(); + virtual void downMove_DiffEnd_Begin(); + virtual void downMove_DiffEnd_Execute(); + virtual void downMove_DiffEnd_End(); + + static void *PhysicsCallback1; + static void *PhysicsCallback2; + static void *PhysicsCallback3; + static void *OPhysicsCallback1; + static void *OPhysicsCallback2; + static void *OPhysicsCallback3; + + ~daEnBlockMain_c(); +}; + + +class dBgGm_c { +public: + // TODO TODO TODO TODO TODO + static dBgGm_c *instance; + + TileRenderer::List *getTileRendererList(int index); +}; class dPlayerModelBase_c { diff --git a/kamek_ntsc.x b/kamek_ntsc.x index f9a3800..ece3fd6 100644 --- a/kamek_ntsc.x +++ b/kamek_ntsc.x @@ -113,16 +113,207 @@ SECTIONS { GetExplanationString__7dBase_cFv = 0x8006C660; + __vt__15daEnBlockMain_c = 0x80301EA8; + __dt__15daEnBlockMain_cFv = 0x80023340; + calledWhenUpMoveBegins__15daEnBlockMain_cFv = 0x80022E80; + calledWhenDownMoveBegins__15daEnBlockMain_cFv = 0x80022F60; + calledWhenUpMoveExecutes__15daEnBlockMain_cFv = 0x80022F30; + calledWhenUpMoveDiffExecutes__15daEnBlockMain_cFv = 0x800231A0; + calledWhenDownMoveExecutes__15daEnBlockMain_cFv = 0x80023010; + calledWhenDownMoveEndExecutes__15daEnBlockMain_cFv = 0x80023080; + calledWhenDownMoveDiffExecutes__15daEnBlockMain_cFv = 0x800232C0; + calledWhenDownMoveDiffEndExecutes__15daEnBlockMain_cFv = 0x80023330; + updateScale__15daEnBlockMain_cFb = 0x80022DC0; + upMove_Begin__15daEnBlockMain_cFv = 0x80022E60; + upMove_Execute__15daEnBlockMain_cFv = 0x80022EA0; + upMove_End__15daEnBlockMain_cFv = 0x80022E90; + downMove_Begin__15daEnBlockMain_cFv = 0x80022F40; + downMove_Execute__15daEnBlockMain_cFv = 0x80022F80; + downMove_End__15daEnBlockMain_cFv = 0x80022F70; + downMoveEnd_Begin__15daEnBlockMain_cFv = 0x80023020; + downMoveEnd_Execute__15daEnBlockMain_cFv = 0x80023040; + downMoveEnd_End__15daEnBlockMain_cFv = 0x80023030; + upMove_Diff_Begin__15daEnBlockMain_cFv = 0x80023090; + upMove_Diff_Execute__15daEnBlockMain_cFv = 0x800230D0; + upMove_Diff_End__15daEnBlockMain_cFv = 0x800230C0; + downMove_Diff_Begin__15daEnBlockMain_cFv = 0x800231B0; + downMove_Diff_Execute__15daEnBlockMain_cFv = 0x800231F0; + downMove_Diff_End__15daEnBlockMain_cFv = 0x800231E0; + downMove_DiffEnd_Begin__15daEnBlockMain_cFv = 0x800232D0; + downMove_DiffEnd_Execute__15daEnBlockMain_cFv = 0x800232F0; + downMove_DiffEnd_End__15daEnBlockMain_cFv = 0x800232E0; + blockInit__15daEnBlockMain_cFf = 0x80021690; + blockUpdate__15daEnBlockMain_cFv = 0x800217B0; + PhysicsCallback1__15daEnBlockMain_c = 0x80021180; + PhysicsCallback2__15daEnBlockMain_c = 0x80021170; + PhysicsCallback3__15daEnBlockMain_c = 0x800211A0; + OPhysicsCallback1__15daEnBlockMain_c = 0x80020BF0; + OPhysicsCallback2__15daEnBlockMain_c = 0x80020E70; + OPhysicsCallback3__15daEnBlockMain_c = 0x80021010; + + __ct__5dEn_cFv = 0x80094E80; + afterCreate__5dEn_cFi = 0x800951D0; + afterExecute__5dEn_cFi = 0x80095480; + kill__5dEn_cFv = 0x80097F70; + eatIn__5dEn_cFv = 0x80097C40; + disableEatIn__5dEn_cFv = 0x80097CB0; + _vf8C__5dEn_cFPv = 0x80097D30; + _vfCC__5dEn_cFP7Point2d = 0x800973F0; + _vfD0__5dEn_cFP7Point2d = 0x800974F0; + doStateChange__5dEn_cFPv = 0x800A7DF0; + preSpriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095CE0; + prePlayerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095D30; + preYoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095F50; + stageActorCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80096060; + spriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C10; + playerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C20; + yoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C80; + collisionCat3_StarPower__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009F840; + collisionCat5_Mario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FB50; + _vf108__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FE40; + collisionCatD_GroundPound__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FFD0; + _vf110__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FFC0; + collisionCat8_FencePunch__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCE0; + collisionCat7_WMWaggleWater__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0150; + collisionCat7_WMWaggleWaterYoshi__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A02D0; + _vf120__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCD0; + collisionCatA_PenguinMario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCC0; + collisionCat11_PipeCannon__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009F9D0; + collisionCat9_RollingObject__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0700; + collisionCat1_Fireball_E_Explosion__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A08D0; + collisionCat2_IceBall_15_YoshiIce__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0A30; + collisionCat13_Hammer__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A03C0; + collisionCat14_YoshiFire__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0550; + _vf140__5dEn_cFP13dStageActor_c = 0x800A10B0; + _vf144__5dEn_cFi = 0x800A0C70; + _vf148__5dEn_cFv = 0x800A12A0; + _vf14C__5dEn_cFv = 0x800A1370; + _vf150__5dEn_cFv = 0x800206D0; + eatenByYoshiProbably__5dEn_cFv = 0x80096230; + playHpdpSound1__5dEn_cFv = 0x800A1C00; + playEnemyDownSound1__5dEn_cFv = 0x800A1BB0; + playEnemyDownComboSound__5dEn_cFPv = 0x800A1C80; + playHpdpSound2__5dEn_cFv = 0x800A1D90; + _vf168__5dEn_cFv = 0x800A1E10; + dieFumi_Begin__5dEn_cFv = 0x800A1470; + dieFumi_Execute__5dEn_cFv = 0x800A1600; + dieFumi_End__5dEn_cFv = 0x800A1820; + dieFall_Begin__5dEn_cFv = 0x800A16A0; + dieFall_Execute__5dEn_cFv = 0x800A1830; + dieFall_End__5dEn_cFv = 0x800A1820; + dieBigFall_Begin__5dEn_cFv = 0x800A1910; + dieBigFall_Execute__5dEn_cFv = 0x800A1930; + dieBigFall_End__5dEn_cFv = 0x800A1920; + dieSmoke_Begin__5dEn_cFv = 0x800A1980; + dieSmoke_Execute__5dEn_cFv = 0x800A1A00; + dieSmoke_End__5dEn_cFv = 0x800A19F0; + dieYoshiFumi_Begin__5dEn_cFv = 0x800A1AC0; + dieYoshiFumi_Execute__5dEn_cFv = 0x800A1B40; + dieYoshiFumi_End__5dEn_cFv = 0x800A1B30; + dieIceVanish_Begin__5dEn_cFv = 0x800A1A10; + dieIceVanish_Execute__5dEn_cFv = 0x800A1AB0; + dieIceVanish_End__5dEn_cFv = 0x800A1AA0; + dieGoal_Begin__5dEn_cFv = 0x800A1B50; + dieGoal_Execute__5dEn_cFv = 0x800A1B70; + dieGoal_End__5dEn_cFv = 0x800A1B60; + dieOther_Begin__5dEn_cFv = 0x800A1B80; + dieOther_Execute__5dEn_cFv = 0x800A1BA0; + dieOther_End__5dEn_cFv = 0x800A1B90; + eatIn_Begin__5dEn_cFv = 0x800A81C0; + eatIn_Execute__5dEn_cFv = 0x800A81E0; + eatIn_End__5dEn_cFv = 0x800A81D0; + eatNow_Begin__5dEn_cFv = 0x800A8260; + eatNow_Execute__5dEn_cFv = 0x800A8280; + eatNow_End__5dEn_cFv = 0x800A8270; + eatOut_Begin__5dEn_cFv = 0x800A8290; + eatOut_Execute__5dEn_cFv = 0x800A82B0; + eatOut_End__5dEn_cFv = 0x800A82A0; + hitSpin_Begin__5dEn_cFv = 0x800A8190; + hitSpin_Execute__5dEn_cFv = 0x800A81B0; + hitSpin_End__5dEn_cFv = 0x800A81A0; + ice_Begin__5dEn_cFv = 0x800A7E90; + ice_Execute__5dEn_cFv = 0x800A7F40; + ice_End__5dEn_cFv = 0x800A7F30; + spawnHitEffectAtPosition__5dEn_cF7Point2d = 0x80095520; + doSomethingWithHardHitAndSoftHitEffects__5dEn_cF7Point3d = 0x80095530; + playEnemyDownSound2__5dEn_cFv = 0x80095580; + add2ToYSpeed__5dEn_cFv = 0x800955D0; + _vf218__5dEn_cFv = 0x80095890; + _vf21C__5dEn_cFv = 0x80097770; + _vf220__5dEn_cFPv = 0x80097F20; + _vf224__5dEn_cFv = 0x80097F60; + _vf228__5dEn_cFv = 0x800206C0; + _vf22C__5dEn_cFv = 0x800A8060; + _vf230__5dEn_cFv = 0x800A8150; + _vf234__5dEn_cFv = 0x800A8160; + _vf238__5dEn_cFv = 0x800A8180; + _vf23C__5dEn_cFv = 0x800206B0; + _vf240__5dEn_cFv = 0x800206A0; + _vf244__5dEn_cFv = 0x80020690; + _vf248__5dEn_cFi = 0x800968E0; + _vf24C__5dEn_cFPv = 0x80096710; + _vf250__5dEn_cFPv = 0x80096700; + _vf254__5dEn_cFPv = 0x80096720; + _vf258__5dEn_cFPv = 0x80096760; + _vf25C__5dEn_cFPv = 0x80096770; + _vf260__5dEn_cFPv = 0x80096910; + _vf264__5dEn_cFP13dStageActor_c = 0x80096D60; + _vf268__5dEn_cFPv = 0x80096A20; + spawnHitEffectAtPositionAgain__5dEn_cF7Point2d = 0x80096DF0; + playMameStepSound__5dEn_cFv = 0x80096C40; + _vf274__5dEn_cFv = 0x80096E50; + _vf278__5dEn_cFPv = 0x80096B30; + _vf27C__5dEn_cFv = 0x80096E40; + + _vfD8__18dActorMultiState_cFv = 0x80067590; + _vfDC__18dActorMultiState_cFv = 0x800675B0; + _vfE0__18dActorMultiState_cFv = 0x800675A0; + + __ct__13dStageActor_cFv = 0x80064110; + __dt__13dStageActor_cFv = 0x800642B0; + beforeCreate__13dStageActor_cFv = 0x80064350; + afterCreate__13dStageActor_cFi = 0x80064380; + beforeDelete__13dStageActor_cFv = 0x80064390; + afterDelete__13dStageActor_cFi = 0x800643E0; + beforeExecute__13dStageActor_cFv = 0x800643F0; + afterExecute__13dStageActor_cFi = 0x80064490; + beforeDraw__13dStageActor_cFv = 0x80064540; + afterDraw__13dStageActor_cFi = 0x800645E0; + GetExplanationString__13dStageActor_cFv = 0x800645F0; + _vf60__13dStageActor_cFv = 0x80065080; + _vf68__13dStageActor_cFv = 0x8001D210; + _vf6C__13dStageActor_cFv = 0x8001D200; + _vf70__13dStageActor_cFv = 0x80065620; + _vf74__13dStageActor_cFv = 0x8001D1F0; + _vf78__13dStageActor_cFv = 0x80065820; + _vf7C__13dStageActor_cFv = 0x8001D1E0; + _vf88__13dStageActor_cFv = 0x80065860; + _vf90__13dStageActor_cFP13dStageActor_c = 0x80065880; + _vf94__13dStageActor_cFPv = 0x80065AC0; + removeMyActivePhysics__13dStageActor_cFv = 0x80066080; + addMyActivePhysics__13dStageActor_cFv = 0x80066090; + returnRegularScale__13dStageActor_cFv = 0x80065950; + _vfA4__13dStageActor_cFPv = 0x80065970; + _vfA8__13dStageActor_cFPv = 0x80065A00; + _vfAC__13dStageActor_cFPv = 0x80065A40; + _vfB0__13dStageActor_cFv = 0x80065660; + _vfB4__13dStageActor_cFv = 0x80065B40; + _vfB8__13dStageActor_cFv = 0x8001D1D0; + _vfBC__13dStageActor_cFv = 0x80065B50; + _vfC0__13dStageActor_cFv = 0x80065B60; + _vfC4__13dStageActor_cFv = 0x80065B70; + _vfC8__13dStageActor_cFP7Point2d = 0x80065CC0; + __ct__8dScene_cFv = 0x800E19B0; __dt__8dScene_cFv = 0x800E1A20; beforeCreate__8dScene_cFv = 0x800E1AA0; - afterCreate__8dScene_cFv = 0x800E1AE0; + afterCreate__8dScene_cFi = 0x800E1AE0; beforeDelete__8dScene_cFv = 0x800E1B50; - afterDelete__8dScene_cFv = 0x800E1B80; + afterDelete__8dScene_cFi = 0x800E1B80; beforeExecute__8dScene_cFv = 0x800E1BE0; - afterExecute__8dScene_cFv = 0x800E1D20; + afterExecute__8dScene_cFi = 0x800E1D20; beforeDraw__8dScene_cFv = 0x800E1D70; - afterDraw__8dScene_cFv = 0x800E1DA0; + afterDraw__8dScene_cFi = 0x800E1DA0; __ct__8dActor_cFv = 0x8006C6D0; __dt__8dActor_cFv = 0x8006C7F0; @@ -130,13 +321,13 @@ SECTIONS { __ct__7dBase_cFv = 0x8006C420; __dt__7dBase_cFv = 0x8006C490; beforeCreate__7dBase_cFv = 0x8006C540; - afterCreate__7dBase_cFv = 0x8006C570; + afterCreate__7dBase_cFi = 0x8006C570; beforeDelete__7dBase_cFv = 0x8006C580; - afterDelete__7dBase_cFv = 0x8006C5B0; + afterDelete__7dBase_cFi = 0x8006C5B0; beforeExecute__7dBase_cFv = 0x8006C5C0; - afterExecute__7dBase_cFv = 0x8006C600; + afterExecute__7dBase_cFi = 0x8006C600; beforeDraw__7dBase_cFv = 0x8006C610; - afterDraw__7dBase_cFv = 0x8006C650; + afterDraw__7dBase_cFi = 0x8006C650; onDraw__7fBase_cFv = 0x801621D0; @@ -145,6 +336,22 @@ SECTIONS { _vf58__8dActor_cFv = 0x8001D1C0; _vf5C__8dActor_cFv = 0x8001D1B0; + __ct__7PhysicsFv = 0x8007F7A0; + setup__7PhysicsFP8dActor_cPQ27Physics4InfoUcUcP7Point2d = 0x8007FB10; + addToList__7PhysicsFv = 0x8007F900; + removeFromList__7PhysicsFv = 0x8007F950; + update__7PhysicsFv = 0x8007FDA0; + + getTileRendererList__7dBgGm_cFi = 0x80078520; + + add__Q212TileRenderer4ListFP12TileRenderer = 0x80014820; + remove__Q212TileRenderer4ListFP12TileRenderer = 0x80014860; + + __ct__12TileRendererFv = 0x800145B0; + __dt__12TileRendererFv = 0x800145F0; + setPosition__12TileRendererFfff = 0x800146B0; + setVars__12TileRendererFf = 0x800146D0; + __ct__21dPlayerModelHandler_cFUc = 0x800D6CC0; loadModel__21dPlayerModelHandler_cFUcii = 0x800D6DF0; setSRT__21dPlayerModelHandler_cF7Point3d6S16Vec7Point3d = 0x800D6F40; @@ -692,6 +899,7 @@ SECTIONS { dSys_c__RootHeapMEM2 = 0x8042A094; BG_GM_ptr = 0x80429DD0; + instance__7dBgGm_c = 0x80429DD0; BgActorDefs = 0x80429DDC; diff --git a/kamek_ntsc2.x b/kamek_ntsc2.x index 8af9cc3..2303c80 100644 --- a/kamek_ntsc2.x +++ b/kamek_ntsc2.x @@ -113,16 +113,207 @@ SECTIONS { GetExplanationString__7dBase_cFv = 0x8006C660; + __vt__15daEnBlockMain_c = 0x80301EA8; + __dt__15daEnBlockMain_cFv = 0x80023340; + calledWhenUpMoveBegins__15daEnBlockMain_cFv = 0x80022E80; + calledWhenDownMoveBegins__15daEnBlockMain_cFv = 0x80022F60; + calledWhenUpMoveExecutes__15daEnBlockMain_cFv = 0x80022F30; + calledWhenUpMoveDiffExecutes__15daEnBlockMain_cFv = 0x800231A0; + calledWhenDownMoveExecutes__15daEnBlockMain_cFv = 0x80023010; + calledWhenDownMoveEndExecutes__15daEnBlockMain_cFv = 0x80023080; + calledWhenDownMoveDiffExecutes__15daEnBlockMain_cFv = 0x800232C0; + calledWhenDownMoveDiffEndExecutes__15daEnBlockMain_cFv = 0x80023330; + updateScale__15daEnBlockMain_cFb = 0x80022DC0; + upMove_Begin__15daEnBlockMain_cFv = 0x80022E60; + upMove_Execute__15daEnBlockMain_cFv = 0x80022EA0; + upMove_End__15daEnBlockMain_cFv = 0x80022E90; + downMove_Begin__15daEnBlockMain_cFv = 0x80022F40; + downMove_Execute__15daEnBlockMain_cFv = 0x80022F80; + downMove_End__15daEnBlockMain_cFv = 0x80022F70; + downMoveEnd_Begin__15daEnBlockMain_cFv = 0x80023020; + downMoveEnd_Execute__15daEnBlockMain_cFv = 0x80023040; + downMoveEnd_End__15daEnBlockMain_cFv = 0x80023030; + upMove_Diff_Begin__15daEnBlockMain_cFv = 0x80023090; + upMove_Diff_Execute__15daEnBlockMain_cFv = 0x800230D0; + upMove_Diff_End__15daEnBlockMain_cFv = 0x800230C0; + downMove_Diff_Begin__15daEnBlockMain_cFv = 0x800231B0; + downMove_Diff_Execute__15daEnBlockMain_cFv = 0x800231F0; + downMove_Diff_End__15daEnBlockMain_cFv = 0x800231E0; + downMove_DiffEnd_Begin__15daEnBlockMain_cFv = 0x800232D0; + downMove_DiffEnd_Execute__15daEnBlockMain_cFv = 0x800232F0; + downMove_DiffEnd_End__15daEnBlockMain_cFv = 0x800232E0; + blockInit__15daEnBlockMain_cFf = 0x80021690; + blockUpdate__15daEnBlockMain_cFv = 0x800217B0; + PhysicsCallback1__15daEnBlockMain_c = 0x80021180; + PhysicsCallback2__15daEnBlockMain_c = 0x80021170; + PhysicsCallback3__15daEnBlockMain_c = 0x800211A0; + OPhysicsCallback1__15daEnBlockMain_c = 0x80020BF0; + OPhysicsCallback2__15daEnBlockMain_c = 0x80020E70; + OPhysicsCallback3__15daEnBlockMain_c = 0x80021010; + + __ct__5dEn_cFv = 0x80094E80; + afterCreate__5dEn_cFi = 0x800951D0; + afterExecute__5dEn_cFi = 0x80095480; + kill__5dEn_cFv = 0x80097F70; + eatIn__5dEn_cFv = 0x80097C40; + disableEatIn__5dEn_cFv = 0x80097CB0; + _vf8C__5dEn_cFPv = 0x80097D30; + _vfCC__5dEn_cFP7Point2d = 0x800973F0; + _vfD0__5dEn_cFP7Point2d = 0x800974F0; + doStateChange__5dEn_cFPv = 0x800A7DF0; + preSpriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095CE0; + prePlayerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095D30; + preYoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095F50; + stageActorCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80096060; + spriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C10; + playerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C20; + yoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C80; + collisionCat3_StarPower__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009F840; + collisionCat5_Mario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FB50; + _vf108__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FE40; + collisionCatD_GroundPound__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FFD0; + _vf110__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FFC0; + collisionCat8_FencePunch__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCE0; + collisionCat7_WMWaggleWater__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0150; + collisionCat7_WMWaggleWaterYoshi__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A02D0; + _vf120__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCD0; + collisionCatA_PenguinMario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCC0; + collisionCat11_PipeCannon__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009F9D0; + collisionCat9_RollingObject__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0700; + collisionCat1_Fireball_E_Explosion__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A08D0; + collisionCat2_IceBall_15_YoshiIce__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0A30; + collisionCat13_Hammer__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A03C0; + collisionCat14_YoshiFire__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0550; + _vf140__5dEn_cFP13dStageActor_c = 0x800A10B0; + _vf144__5dEn_cFi = 0x800A0C70; + _vf148__5dEn_cFv = 0x800A12A0; + _vf14C__5dEn_cFv = 0x800A1370; + _vf150__5dEn_cFv = 0x800206D0; + eatenByYoshiProbably__5dEn_cFv = 0x80096230; + playHpdpSound1__5dEn_cFv = 0x800A1C00; + playEnemyDownSound1__5dEn_cFv = 0x800A1BB0; + playEnemyDownComboSound__5dEn_cFPv = 0x800A1C80; + playHpdpSound2__5dEn_cFv = 0x800A1D90; + _vf168__5dEn_cFv = 0x800A1E10; + dieFumi_Begin__5dEn_cFv = 0x800A1470; + dieFumi_Execute__5dEn_cFv = 0x800A1600; + dieFumi_End__5dEn_cFv = 0x800A1820; + dieFall_Begin__5dEn_cFv = 0x800A16A0; + dieFall_Execute__5dEn_cFv = 0x800A1830; + dieFall_End__5dEn_cFv = 0x800A1820; + dieBigFall_Begin__5dEn_cFv = 0x800A1910; + dieBigFall_Execute__5dEn_cFv = 0x800A1930; + dieBigFall_End__5dEn_cFv = 0x800A1920; + dieSmoke_Begin__5dEn_cFv = 0x800A1980; + dieSmoke_Execute__5dEn_cFv = 0x800A1A00; + dieSmoke_End__5dEn_cFv = 0x800A19F0; + dieYoshiFumi_Begin__5dEn_cFv = 0x800A1AC0; + dieYoshiFumi_Execute__5dEn_cFv = 0x800A1B40; + dieYoshiFumi_End__5dEn_cFv = 0x800A1B30; + dieIceVanish_Begin__5dEn_cFv = 0x800A1A10; + dieIceVanish_Execute__5dEn_cFv = 0x800A1AB0; + dieIceVanish_End__5dEn_cFv = 0x800A1AA0; + dieGoal_Begin__5dEn_cFv = 0x800A1B50; + dieGoal_Execute__5dEn_cFv = 0x800A1B70; + dieGoal_End__5dEn_cFv = 0x800A1B60; + dieOther_Begin__5dEn_cFv = 0x800A1B80; + dieOther_Execute__5dEn_cFv = 0x800A1BA0; + dieOther_End__5dEn_cFv = 0x800A1B90; + eatIn_Begin__5dEn_cFv = 0x800A81C0; + eatIn_Execute__5dEn_cFv = 0x800A81E0; + eatIn_End__5dEn_cFv = 0x800A81D0; + eatNow_Begin__5dEn_cFv = 0x800A8260; + eatNow_Execute__5dEn_cFv = 0x800A8280; + eatNow_End__5dEn_cFv = 0x800A8270; + eatOut_Begin__5dEn_cFv = 0x800A8290; + eatOut_Execute__5dEn_cFv = 0x800A82B0; + eatOut_End__5dEn_cFv = 0x800A82A0; + hitSpin_Begin__5dEn_cFv = 0x800A8190; + hitSpin_Execute__5dEn_cFv = 0x800A81B0; + hitSpin_End__5dEn_cFv = 0x800A81A0; + ice_Begin__5dEn_cFv = 0x800A7E90; + ice_Execute__5dEn_cFv = 0x800A7F40; + ice_End__5dEn_cFv = 0x800A7F30; + spawnHitEffectAtPosition__5dEn_cF7Point2d = 0x80095520; + doSomethingWithHardHitAndSoftHitEffects__5dEn_cF7Point3d = 0x80095530; + playEnemyDownSound2__5dEn_cFv = 0x80095580; + add2ToYSpeed__5dEn_cFv = 0x800955D0; + _vf218__5dEn_cFv = 0x80095890; + _vf21C__5dEn_cFv = 0x80097770; + _vf220__5dEn_cFPv = 0x80097F20; + _vf224__5dEn_cFv = 0x80097F60; + _vf228__5dEn_cFv = 0x800206C0; + _vf22C__5dEn_cFv = 0x800A8060; + _vf230__5dEn_cFv = 0x800A8150; + _vf234__5dEn_cFv = 0x800A8160; + _vf238__5dEn_cFv = 0x800A8180; + _vf23C__5dEn_cFv = 0x800206B0; + _vf240__5dEn_cFv = 0x800206A0; + _vf244__5dEn_cFv = 0x80020690; + _vf248__5dEn_cFi = 0x800968E0; + _vf24C__5dEn_cFPv = 0x80096710; + _vf250__5dEn_cFPv = 0x80096700; + _vf254__5dEn_cFPv = 0x80096720; + _vf258__5dEn_cFPv = 0x80096760; + _vf25C__5dEn_cFPv = 0x80096770; + _vf260__5dEn_cFPv = 0x80096910; + _vf264__5dEn_cFP13dStageActor_c = 0x80096D60; + _vf268__5dEn_cFPv = 0x80096A20; + spawnHitEffectAtPositionAgain__5dEn_cF7Point2d = 0x80096DF0; + playMameStepSound__5dEn_cFv = 0x80096C40; + _vf274__5dEn_cFv = 0x80096E50; + _vf278__5dEn_cFPv = 0x80096B30; + _vf27C__5dEn_cFv = 0x80096E40; + + _vfD8__18dActorMultiState_cFv = 0x80067590; + _vfDC__18dActorMultiState_cFv = 0x800675B0; + _vfE0__18dActorMultiState_cFv = 0x800675A0; + + __ct__13dStageActor_cFv = 0x80064110; + __dt__13dStageActor_cFv = 0x800642B0; + beforeCreate__13dStageActor_cFv = 0x80064350; + afterCreate__13dStageActor_cFi = 0x80064380; + beforeDelete__13dStageActor_cFv = 0x80064390; + afterDelete__13dStageActor_cFi = 0x800643E0; + beforeExecute__13dStageActor_cFv = 0x800643F0; + afterExecute__13dStageActor_cFi = 0x80064490; + beforeDraw__13dStageActor_cFv = 0x80064540; + afterDraw__13dStageActor_cFi = 0x800645E0; + GetExplanationString__13dStageActor_cFv = 0x800645F0; + _vf60__13dStageActor_cFv = 0x80065080; + _vf68__13dStageActor_cFv = 0x8001D210; + _vf6C__13dStageActor_cFv = 0x8001D200; + _vf70__13dStageActor_cFv = 0x80065620; + _vf74__13dStageActor_cFv = 0x8001D1F0; + _vf78__13dStageActor_cFv = 0x80065820; + _vf7C__13dStageActor_cFv = 0x8001D1E0; + _vf88__13dStageActor_cFv = 0x80065860; + _vf90__13dStageActor_cFP13dStageActor_c = 0x80065880; + _vf94__13dStageActor_cFPv = 0x80065AC0; + removeMyActivePhysics__13dStageActor_cFv = 0x80066080; + addMyActivePhysics__13dStageActor_cFv = 0x80066090; + returnRegularScale__13dStageActor_cFv = 0x80065950; + _vfA4__13dStageActor_cFPv = 0x80065970; + _vfA8__13dStageActor_cFPv = 0x80065A00; + _vfAC__13dStageActor_cFPv = 0x80065A40; + _vfB0__13dStageActor_cFv = 0x80065660; + _vfB4__13dStageActor_cFv = 0x80065B40; + _vfB8__13dStageActor_cFv = 0x8001D1D0; + _vfBC__13dStageActor_cFv = 0x80065B50; + _vfC0__13dStageActor_cFv = 0x80065B60; + _vfC4__13dStageActor_cFv = 0x80065B70; + _vfC8__13dStageActor_cFP7Point2d = 0x80065CC0; + __ct__8dScene_cFv = 0x800E19B0; __dt__8dScene_cFv = 0x800E1A20; beforeCreate__8dScene_cFv = 0x800E1AA0; - afterCreate__8dScene_cFv = 0x800E1AE0; + afterCreate__8dScene_cFi = 0x800E1AE0; beforeDelete__8dScene_cFv = 0x800E1B50; - afterDelete__8dScene_cFv = 0x800E1B80; + afterDelete__8dScene_cFi = 0x800E1B80; beforeExecute__8dScene_cFv = 0x800E1BE0; - afterExecute__8dScene_cFv = 0x800E1D20; + afterExecute__8dScene_cFi = 0x800E1D20; beforeDraw__8dScene_cFv = 0x800E1D70; - afterDraw__8dScene_cFv = 0x800E1DA0; + afterDraw__8dScene_cFi = 0x800E1DA0; __ct__8dActor_cFv = 0x8006C6D0; __dt__8dActor_cFv = 0x8006C7F0; @@ -130,13 +321,13 @@ SECTIONS { __ct__7dBase_cFv = 0x8006C420; __dt__7dBase_cFv = 0x8006C490; beforeCreate__7dBase_cFv = 0x8006C540; - afterCreate__7dBase_cFv = 0x8006C570; + afterCreate__7dBase_cFi = 0x8006C570; beforeDelete__7dBase_cFv = 0x8006C580; - afterDelete__7dBase_cFv = 0x8006C5B0; + afterDelete__7dBase_cFi = 0x8006C5B0; beforeExecute__7dBase_cFv = 0x8006C5C0; - afterExecute__7dBase_cFv = 0x8006C600; + afterExecute__7dBase_cFi = 0x8006C600; beforeDraw__7dBase_cFv = 0x8006C610; - afterDraw__7dBase_cFv = 0x8006C650; + afterDraw__7dBase_cFi = 0x8006C650; onDraw__7fBase_cFv = 0x801621D0; @@ -145,6 +336,22 @@ SECTIONS { _vf58__8dActor_cFv = 0x8001D1C0; _vf5C__8dActor_cFv = 0x8001D1B0; + __ct__7PhysicsFv = 0x8007F7A0; + setup__7PhysicsFP8dActor_cPQ27Physics4InfoUcUcP7Point2d = 0x8007FB10; + addToList__7PhysicsFv = 0x8007F900; + removeFromList__7PhysicsFv = 0x8007F950; + update__7PhysicsFv = 0x8007FDA0; + + getTileRendererList__7dBgGm_cFi = 0x80078520; + + add__Q212TileRenderer4ListFP12TileRenderer = 0x80014820; + remove__Q212TileRenderer4ListFP12TileRenderer = 0x80014860; + + __ct__12TileRendererFv = 0x800145B0; + __dt__12TileRendererFv = 0x800145F0; + setPosition__12TileRendererFfff = 0x800146B0; + setVars__12TileRendererFf = 0x800146D0; + __ct__21dPlayerModelHandler_cFUc = 0x800D6CC0; loadModel__21dPlayerModelHandler_cFUcii = 0x800D6DF0; setSRT__21dPlayerModelHandler_cF7Point3d6S16Vec7Point3d = 0x800D6F40; @@ -692,6 +899,7 @@ SECTIONS { dSys_c__RootHeapMEM2 = 0x8042A094; BG_GM_ptr = 0x80429DD0; + instance__7dBgGm_c = 0x80429DD0; BgActorDefs = 0x80429DDC; diff --git a/kamek_pal.x b/kamek_pal.x index 720c71b..b4666bc 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -113,16 +113,207 @@ SECTIONS { GetExplanationString__7dBase_cFv = 0x8006C660; + __vt__15daEnBlockMain_c = 0x803021A8; + __dt__15daEnBlockMain_cFv = 0x80023340; + calledWhenUpMoveBegins__15daEnBlockMain_cFv = 0x80022E80; + calledWhenDownMoveBegins__15daEnBlockMain_cFv = 0x80022F60; + calledWhenUpMoveExecutes__15daEnBlockMain_cFv = 0x80022F30; + calledWhenUpMoveDiffExecutes__15daEnBlockMain_cFv = 0x800231A0; + calledWhenDownMoveExecutes__15daEnBlockMain_cFv = 0x80023010; + calledWhenDownMoveEndExecutes__15daEnBlockMain_cFv = 0x80023080; + calledWhenDownMoveDiffExecutes__15daEnBlockMain_cFv = 0x800232C0; + calledWhenDownMoveDiffEndExecutes__15daEnBlockMain_cFv = 0x80023330; + updateScale__15daEnBlockMain_cFb = 0x80022DC0; + upMove_Begin__15daEnBlockMain_cFv = 0x80022E60; + upMove_Execute__15daEnBlockMain_cFv = 0x80022EA0; + upMove_End__15daEnBlockMain_cFv = 0x80022E90; + downMove_Begin__15daEnBlockMain_cFv = 0x80022F40; + downMove_Execute__15daEnBlockMain_cFv = 0x80022F80; + downMove_End__15daEnBlockMain_cFv = 0x80022F70; + downMoveEnd_Begin__15daEnBlockMain_cFv = 0x80023020; + downMoveEnd_Execute__15daEnBlockMain_cFv = 0x80023040; + downMoveEnd_End__15daEnBlockMain_cFv = 0x80023030; + upMove_Diff_Begin__15daEnBlockMain_cFv = 0x80023090; + upMove_Diff_Execute__15daEnBlockMain_cFv = 0x800230D0; + upMove_Diff_End__15daEnBlockMain_cFv = 0x800230C0; + downMove_Diff_Begin__15daEnBlockMain_cFv = 0x800231B0; + downMove_Diff_Execute__15daEnBlockMain_cFv = 0x800231F0; + downMove_Diff_End__15daEnBlockMain_cFv = 0x800231E0; + downMove_DiffEnd_Begin__15daEnBlockMain_cFv = 0x800232D0; + downMove_DiffEnd_Execute__15daEnBlockMain_cFv = 0x800232F0; + downMove_DiffEnd_End__15daEnBlockMain_cFv = 0x800232E0; + blockInit__15daEnBlockMain_cFf = 0x80021690; + blockUpdate__15daEnBlockMain_cFv = 0x800217B0; + PhysicsCallback1__15daEnBlockMain_c = 0x80021180; + PhysicsCallback2__15daEnBlockMain_c = 0x80021170; + PhysicsCallback3__15daEnBlockMain_c = 0x800211A0; + OPhysicsCallback1__15daEnBlockMain_c = 0x80020BF0; + OPhysicsCallback2__15daEnBlockMain_c = 0x80020E70; + OPhysicsCallback3__15daEnBlockMain_c = 0x80021010; + + __ct__5dEn_cFv = 0x80094E80; + afterCreate__5dEn_cFi = 0x800951D0; + afterExecute__5dEn_cFi = 0x80095480; + kill__5dEn_cFv = 0x80097F70; + eatIn__5dEn_cFv = 0x80097C40; + disableEatIn__5dEn_cFv = 0x80097CB0; + _vf8C__5dEn_cFPv = 0x80097D30; + _vfCC__5dEn_cFP7Point2d = 0x800973F0; + _vfD0__5dEn_cFP7Point2d = 0x800974F0; + doStateChange__5dEn_cFPv = 0x800A7DF0; + preSpriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095CE0; + prePlayerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095D30; + preYoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095F50; + stageActorCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80096060; + spriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C10; + playerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C20; + yoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x80095C80; + collisionCat3_StarPower__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009F840; + collisionCat5_Mario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FB50; + _vf108__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FE40; + collisionCatD_GroundPound__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FFD0; + _vf110__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FFC0; + collisionCat8_FencePunch__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCE0; + collisionCat7_WMWaggleWater__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0150; + collisionCat7_WMWaggleWaterYoshi__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A02D0; + _vf120__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCD0; + collisionCatA_PenguinMario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009FCC0; + collisionCat11_PipeCannon__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x8009F9D0; + collisionCat9_RollingObject__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0700; + collisionCat1_Fireball_E_Explosion__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A08D0; + collisionCat2_IceBall_15_YoshiIce__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0A30; + collisionCat13_Hammer__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A03C0; + collisionCat14_YoshiFire__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0x800A0550; + _vf140__5dEn_cFP13dStageActor_c = 0x800A10B0; + _vf144__5dEn_cFi = 0x800A0C70; + _vf148__5dEn_cFv = 0x800A12A0; + _vf14C__5dEn_cFv = 0x800A1370; + _vf150__5dEn_cFv = 0x800206D0; + eatenByYoshiProbably__5dEn_cFv = 0x80096230; + playHpdpSound1__5dEn_cFv = 0x800A1C00; + playEnemyDownSound1__5dEn_cFv = 0x800A1BB0; + playEnemyDownComboSound__5dEn_cFPv = 0x800A1C80; + playHpdpSound2__5dEn_cFv = 0x800A1D90; + _vf168__5dEn_cFv = 0x800A1E10; + dieFumi_Begin__5dEn_cFv = 0x800A1470; + dieFumi_Execute__5dEn_cFv = 0x800A1600; + dieFumi_End__5dEn_cFv = 0x800A1820; + dieFall_Begin__5dEn_cFv = 0x800A16A0; + dieFall_Execute__5dEn_cFv = 0x800A1830; + dieFall_End__5dEn_cFv = 0x800A1820; + dieBigFall_Begin__5dEn_cFv = 0x800A1910; + dieBigFall_Execute__5dEn_cFv = 0x800A1930; + dieBigFall_End__5dEn_cFv = 0x800A1920; + dieSmoke_Begin__5dEn_cFv = 0x800A1980; + dieSmoke_Execute__5dEn_cFv = 0x800A1A00; + dieSmoke_End__5dEn_cFv = 0x800A19F0; + dieYoshiFumi_Begin__5dEn_cFv = 0x800A1AC0; + dieYoshiFumi_Execute__5dEn_cFv = 0x800A1B40; + dieYoshiFumi_End__5dEn_cFv = 0x800A1B30; + dieIceVanish_Begin__5dEn_cFv = 0x800A1A10; + dieIceVanish_Execute__5dEn_cFv = 0x800A1AB0; + dieIceVanish_End__5dEn_cFv = 0x800A1AA0; + dieGoal_Begin__5dEn_cFv = 0x800A1B50; + dieGoal_Execute__5dEn_cFv = 0x800A1B70; + dieGoal_End__5dEn_cFv = 0x800A1B60; + dieOther_Begin__5dEn_cFv = 0x800A1B80; + dieOther_Execute__5dEn_cFv = 0x800A1BA0; + dieOther_End__5dEn_cFv = 0x800A1B90; + eatIn_Begin__5dEn_cFv = 0x800A81C0; + eatIn_Execute__5dEn_cFv = 0x800A81E0; + eatIn_End__5dEn_cFv = 0x800A81D0; + eatNow_Begin__5dEn_cFv = 0x800A8260; + eatNow_Execute__5dEn_cFv = 0x800A8280; + eatNow_End__5dEn_cFv = 0x800A8270; + eatOut_Begin__5dEn_cFv = 0x800A8290; + eatOut_Execute__5dEn_cFv = 0x800A82B0; + eatOut_End__5dEn_cFv = 0x800A82A0; + hitSpin_Begin__5dEn_cFv = 0x800A8190; + hitSpin_Execute__5dEn_cFv = 0x800A81B0; + hitSpin_End__5dEn_cFv = 0x800A81A0; + ice_Begin__5dEn_cFv = 0x800A7E90; + ice_Execute__5dEn_cFv = 0x800A7F40; + ice_End__5dEn_cFv = 0x800A7F30; + spawnHitEffectAtPosition__5dEn_cF7Point2d = 0x80095520; + doSomethingWithHardHitAndSoftHitEffects__5dEn_cF7Point3d = 0x80095530; + playEnemyDownSound2__5dEn_cFv = 0x80095580; + add2ToYSpeed__5dEn_cFv = 0x800955D0; + _vf218__5dEn_cFv = 0x80095890; + _vf21C__5dEn_cFv = 0x80097770; + _vf220__5dEn_cFPv = 0x80097F20; + _vf224__5dEn_cFv = 0x80097F60; + _vf228__5dEn_cFv = 0x800206C0; + _vf22C__5dEn_cFv = 0x800A8060; + _vf230__5dEn_cFv = 0x800A8150; + _vf234__5dEn_cFv = 0x800A8160; + _vf238__5dEn_cFv = 0x800A8180; + _vf23C__5dEn_cFv = 0x800206B0; + _vf240__5dEn_cFv = 0x800206A0; + _vf244__5dEn_cFv = 0x80020690; + _vf248__5dEn_cFi = 0x800968E0; + _vf24C__5dEn_cFPv = 0x80096710; + _vf250__5dEn_cFPv = 0x80096700; + _vf254__5dEn_cFPv = 0x80096720; + _vf258__5dEn_cFPv = 0x80096760; + _vf25C__5dEn_cFPv = 0x80096770; + _vf260__5dEn_cFPv = 0x80096910; + _vf264__5dEn_cFP13dStageActor_c = 0x80096D60; + _vf268__5dEn_cFPv = 0x80096A20; + spawnHitEffectAtPositionAgain__5dEn_cF7Point2d = 0x80096DF0; + playMameStepSound__5dEn_cFv = 0x80096C40; + _vf274__5dEn_cFv = 0x80096E50; + _vf278__5dEn_cFPv = 0x80096B30; + _vf27C__5dEn_cFv = 0x80096E40; + + _vfD8__18dActorMultiState_cFv = 0x80067590; + _vfDC__18dActorMultiState_cFv = 0x800675B0; + _vfE0__18dActorMultiState_cFv = 0x800675A0; + + __ct__13dStageActor_cFv = 0x80064110; + __dt__13dStageActor_cFv = 0x800642B0; + beforeCreate__13dStageActor_cFv = 0x80064350; + afterCreate__13dStageActor_cFi = 0x80064380; + beforeDelete__13dStageActor_cFv = 0x80064390; + afterDelete__13dStageActor_cFi = 0x800643E0; + beforeExecute__13dStageActor_cFv = 0x800643F0; + afterExecute__13dStageActor_cFi = 0x80064490; + beforeDraw__13dStageActor_cFv = 0x80064540; + afterDraw__13dStageActor_cFi = 0x800645E0; + GetExplanationString__13dStageActor_cFv = 0x800645F0; + _vf60__13dStageActor_cFv = 0x80065080; + _vf68__13dStageActor_cFv = 0x8001D210; + _vf6C__13dStageActor_cFv = 0x8001D200; + _vf70__13dStageActor_cFv = 0x80065620; + _vf74__13dStageActor_cFv = 0x8001D1F0; + _vf78__13dStageActor_cFv = 0x80065820; + _vf7C__13dStageActor_cFv = 0x8001D1E0; + _vf88__13dStageActor_cFv = 0x80065860; + _vf90__13dStageActor_cFP13dStageActor_c = 0x80065880; + _vf94__13dStageActor_cFPv = 0x80065AC0; + removeMyActivePhysics__13dStageActor_cFv = 0x80066080; + addMyActivePhysics__13dStageActor_cFv = 0x80066090; + returnRegularScale__13dStageActor_cFv = 0x80065950; + _vfA4__13dStageActor_cFPv = 0x80065970; + _vfA8__13dStageActor_cFPv = 0x80065A00; + _vfAC__13dStageActor_cFPv = 0x80065A40; + _vfB0__13dStageActor_cFv = 0x80065660; + _vfB4__13dStageActor_cFv = 0x80065B40; + _vfB8__13dStageActor_cFv = 0x8001D1D0; + _vfBC__13dStageActor_cFv = 0x80065B50; + _vfC0__13dStageActor_cFv = 0x80065B60; + _vfC4__13dStageActor_cFv = 0x80065B70; + _vfC8__13dStageActor_cFP7Point2d = 0x80065CC0; + __ct__8dScene_cFv = 0x800E1AA0; __dt__8dScene_cFv = 0x800E1B10; beforeCreate__8dScene_cFv = 0x800E1B90; - afterCreate__8dScene_cFv = 0x800E1BD0; + afterCreate__8dScene_cFi = 0x800E1BD0; beforeDelete__8dScene_cFv = 0x800E1C40; - afterDelete__8dScene_cFv = 0x800E1C70; + afterDelete__8dScene_cFi = 0x800E1C70; beforeExecute__8dScene_cFv = 0x800E1CD0; - afterExecute__8dScene_cFv = 0x800E1E10; + afterExecute__8dScene_cFi = 0x800E1E10; beforeDraw__8dScene_cFv = 0x800E1E60; - afterDraw__8dScene_cFv = 0x800E1E90; + afterDraw__8dScene_cFi = 0x800E1E90; __ct__8dActor_cFv = 0x8006C6D0; __dt__8dActor_cFv = 0x8006C7F0; @@ -130,13 +321,13 @@ SECTIONS { __ct__7dBase_cFv = 0x8006C420; __dt__7dBase_cFv = 0x8006C490; beforeCreate__7dBase_cFv = 0x8006C540; - afterCreate__7dBase_cFv = 0x8006C570; + afterCreate__7dBase_cFi = 0x8006C570; beforeDelete__7dBase_cFv = 0x8006C580; - afterDelete__7dBase_cFv = 0x8006C5B0; + afterDelete__7dBase_cFi = 0x8006C5B0; beforeExecute__7dBase_cFv = 0x8006C5C0; - afterExecute__7dBase_cFv = 0x8006C600; + afterExecute__7dBase_cFi = 0x8006C600; beforeDraw__7dBase_cFv = 0x8006C610; - afterDraw__7dBase_cFv = 0x8006C650; + afterDraw__7dBase_cFi = 0x8006C650; onDraw__7fBase_cFv = 0x80162310; @@ -145,6 +336,22 @@ SECTIONS { _vf58__8dActor_cFv = 0x8001D1C0; _vf5C__8dActor_cFv = 0x8001D1B0; + __ct__7PhysicsFv = 0x8007F7A0; + setup__7PhysicsFP8dActor_cPQ27Physics4InfoUcUcP7Point2d = 0x8007FB10; + addToList__7PhysicsFv = 0x8007F900; + removeFromList__7PhysicsFv = 0x8007F950; + update__7PhysicsFv = 0x8007FDA0; + + getTileRendererList__7dBgGm_cFi = 0x80078520; + + add__Q212TileRenderer4ListFP12TileRenderer = 0x80014820; + remove__Q212TileRenderer4ListFP12TileRenderer = 0x80014860; + + __ct__12TileRendererFv = 0x800145B0; + __dt__12TileRendererFv = 0x800145F0; + setPosition__12TileRendererFfff = 0x800146B0; + setVars__12TileRendererFf = 0x800146D0; + __ct__21dPlayerModelHandler_cFUc = 0x800D6DB0; loadModel__21dPlayerModelHandler_cFUcii = 0x800D6EE0; setSRT__21dPlayerModelHandler_cF7Point3d6S16Vec7Point3d = 0x800D7030; @@ -692,6 +899,7 @@ SECTIONS { dSys_c__RootHeapMEM2 = 0x8042A374; BG_GM_ptr = 0x8042A0B0; + instance__7dBgGm_c = 0x8042A0B0; BgActorDefs = 0x8042A0BC; diff --git a/kamek_pal2.x b/kamek_pal2.x index 8f6ff14..4f76bfd 100644 --- a/kamek_pal2.x +++ b/kamek_pal2.x @@ -113,16 +113,207 @@ SECTIONS { GetExplanationString__7dBase_cFv = 0xDEADBEEF; + __vt__15daEnBlockMain_c = 0xDEADBEEF; + __dt__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenUpMoveBegins__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenDownMoveBegins__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenUpMoveExecutes__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenUpMoveDiffExecutes__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenDownMoveExecutes__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenDownMoveEndExecutes__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenDownMoveDiffExecutes__15daEnBlockMain_cFv = 0xDEADBEEF; + calledWhenDownMoveDiffEndExecutes__15daEnBlockMain_cFv = 0xDEADBEEF; + updateScale__15daEnBlockMain_cFb = 0xDEADBEEF; + upMove_Begin__15daEnBlockMain_cFv = 0xDEADBEEF; + upMove_Execute__15daEnBlockMain_cFv = 0xDEADBEEF; + upMove_End__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_Begin__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_Execute__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_End__15daEnBlockMain_cFv = 0xDEADBEEF; + downMoveEnd_Begin__15daEnBlockMain_cFv = 0xDEADBEEF; + downMoveEnd_Execute__15daEnBlockMain_cFv = 0xDEADBEEF; + downMoveEnd_End__15daEnBlockMain_cFv = 0xDEADBEEF; + upMove_Diff_Begin__15daEnBlockMain_cFv = 0xDEADBEEF; + upMove_Diff_Execute__15daEnBlockMain_cFv = 0xDEADBEEF; + upMove_Diff_End__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_Diff_Begin__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_Diff_Execute__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_Diff_End__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_DiffEnd_Begin__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_DiffEnd_Execute__15daEnBlockMain_cFv = 0xDEADBEEF; + downMove_DiffEnd_End__15daEnBlockMain_cFv = 0xDEADBEEF; + blockInit__15daEnBlockMain_cFf = 0xDEADBEEF; + blockUpdate__15daEnBlockMain_cFv = 0xDEADBEEF; + PhysicsCallback1__15daEnBlockMain_c = 0xDEADBEEF; + PhysicsCallback2__15daEnBlockMain_c = 0xDEADBEEF; + PhysicsCallback3__15daEnBlockMain_c = 0xDEADBEEF; + OPhysicsCallback1__15daEnBlockMain_c = 0xDEADBEEF; + OPhysicsCallback2__15daEnBlockMain_c = 0xDEADBEEF; + OPhysicsCallback3__15daEnBlockMain_c = 0xDEADBEEF; + + __ct__5dEn_cFv = 0xDEADBEEF; + afterCreate__5dEn_cFi = 0xDEADBEEF; + afterExecute__5dEn_cFi = 0xDEADBEEF; + kill__5dEn_cFv = 0xDEADBEEF; + eatIn__5dEn_cFv = 0xDEADBEEF; + disableEatIn__5dEn_cFv = 0xDEADBEEF; + _vf8C__5dEn_cFPv = 0xDEADBEEF; + _vfCC__5dEn_cFP7Point2d = 0xDEADBEEF; + _vfD0__5dEn_cFP7Point2d = 0xDEADBEEF; + doStateChange__5dEn_cFPv = 0xDEADBEEF; + preSpriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + prePlayerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + preYoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + stageActorCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + spriteCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + playerCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + yoshiCollision__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat3_StarPower__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat5_Mario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + _vf108__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCatD_GroundPound__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + _vf110__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat8_FencePunch__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat7_WMWaggleWater__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat7_WMWaggleWaterYoshi__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + _vf120__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCatA_PenguinMario__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat11_PipeCannon__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat9_RollingObject__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat1_Fireball_E_Explosion__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat2_IceBall_15_YoshiIce__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat13_Hammer__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + collisionCat14_YoshiFire__5dEn_cFP13ActivePhysicsP13ActivePhysics = 0xDEADBEEF; + _vf140__5dEn_cFP13dStageActor_c = 0xDEADBEEF; + _vf144__5dEn_cFi = 0xDEADBEEF; + _vf148__5dEn_cFv = 0xDEADBEEF; + _vf14C__5dEn_cFv = 0xDEADBEEF; + _vf150__5dEn_cFv = 0xDEADBEEF; + eatenByYoshiProbably__5dEn_cFv = 0xDEADBEEF; + playHpdpSound1__5dEn_cFv = 0xDEADBEEF; + playEnemyDownSound1__5dEn_cFv = 0xDEADBEEF; + playEnemyDownComboSound__5dEn_cFPv = 0xDEADBEEF; + playHpdpSound2__5dEn_cFv = 0xDEADBEEF; + _vf168__5dEn_cFv = 0xDEADBEEF; + dieFumi_Begin__5dEn_cFv = 0xDEADBEEF; + dieFumi_Execute__5dEn_cFv = 0xDEADBEEF; + dieFumi_End__5dEn_cFv = 0xDEADBEEF; + dieFall_Begin__5dEn_cFv = 0xDEADBEEF; + dieFall_Execute__5dEn_cFv = 0xDEADBEEF; + dieFall_End__5dEn_cFv = 0xDEADBEEF; + dieBigFall_Begin__5dEn_cFv = 0xDEADBEEF; + dieBigFall_Execute__5dEn_cFv = 0xDEADBEEF; + dieBigFall_End__5dEn_cFv = 0xDEADBEEF; + dieSmoke_Begin__5dEn_cFv = 0xDEADBEEF; + dieSmoke_Execute__5dEn_cFv = 0xDEADBEEF; + dieSmoke_End__5dEn_cFv = 0xDEADBEEF; + dieYoshiFumi_Begin__5dEn_cFv = 0xDEADBEEF; + dieYoshiFumi_Execute__5dEn_cFv = 0xDEADBEEF; + dieYoshiFumi_End__5dEn_cFv = 0xDEADBEEF; + dieIceVanish_Begin__5dEn_cFv = 0xDEADBEEF; + dieIceVanish_Execute__5dEn_cFv = 0xDEADBEEF; + dieIceVanish_End__5dEn_cFv = 0xDEADBEEF; + dieGoal_Begin__5dEn_cFv = 0xDEADBEEF; + dieGoal_Execute__5dEn_cFv = 0xDEADBEEF; + dieGoal_End__5dEn_cFv = 0xDEADBEEF; + dieOther_Begin__5dEn_cFv = 0xDEADBEEF; + dieOther_Execute__5dEn_cFv = 0xDEADBEEF; + dieOther_End__5dEn_cFv = 0xDEADBEEF; + eatIn_Begin__5dEn_cFv = 0xDEADBEEF; + eatIn_Execute__5dEn_cFv = 0xDEADBEEF; + eatIn_End__5dEn_cFv = 0xDEADBEEF; + eatNow_Begin__5dEn_cFv = 0xDEADBEEF; + eatNow_Execute__5dEn_cFv = 0xDEADBEEF; + eatNow_End__5dEn_cFv = 0xDEADBEEF; + eatOut_Begin__5dEn_cFv = 0xDEADBEEF; + eatOut_Execute__5dEn_cFv = 0xDEADBEEF; + eatOut_End__5dEn_cFv = 0xDEADBEEF; + hitSpin_Begin__5dEn_cFv = 0xDEADBEEF; + hitSpin_Execute__5dEn_cFv = 0xDEADBEEF; + hitSpin_End__5dEn_cFv = 0xDEADBEEF; + ice_Begin__5dEn_cFv = 0xDEADBEEF; + ice_Execute__5dEn_cFv = 0xDEADBEEF; + ice_End__5dEn_cFv = 0xDEADBEEF; + spawnHitEffectAtPosition__5dEn_cF7Point2d = 0xDEADBEEF; + doSomethingWithHardHitAndSoftHitEffects__5dEn_cF7Point3d = 0xDEADBEEF; + playEnemyDownSound2__5dEn_cFv = 0xDEADBEEF; + add2ToYSpeed__5dEn_cFv = 0xDEADBEEF; + _vf218__5dEn_cFv = 0xDEADBEEF; + _vf21C__5dEn_cFv = 0xDEADBEEF; + _vf220__5dEn_cFPv = 0xDEADBEEF; + _vf224__5dEn_cFv = 0xDEADBEEF; + _vf228__5dEn_cFv = 0xDEADBEEF; + _vf22C__5dEn_cFv = 0xDEADBEEF; + _vf230__5dEn_cFv = 0xDEADBEEF; + _vf234__5dEn_cFv = 0xDEADBEEF; + _vf238__5dEn_cFv = 0xDEADBEEF; + _vf23C__5dEn_cFv = 0xDEADBEEF; + _vf240__5dEn_cFv = 0xDEADBEEF; + _vf244__5dEn_cFv = 0xDEADBEEF; + _vf248__5dEn_cFi = 0xDEADBEEF; + _vf24C__5dEn_cFPv = 0xDEADBEEF; + _vf250__5dEn_cFPv = 0xDEADBEEF; + _vf254__5dEn_cFPv = 0xDEADBEEF; + _vf258__5dEn_cFPv = 0xDEADBEEF; + _vf25C__5dEn_cFPv = 0xDEADBEEF; + _vf260__5dEn_cFPv = 0xDEADBEEF; + _vf264__5dEn_cFP13dStageActor_c = 0xDEADBEEF; + _vf268__5dEn_cFPv = 0xDEADBEEF; + spawnHitEffectAtPositionAgain__5dEn_cF7Point2d = 0xDEADBEEF; + playMameStepSound__5dEn_cFv = 0xDEADBEEF; + _vf274__5dEn_cFv = 0xDEADBEEF; + _vf278__5dEn_cFPv = 0xDEADBEEF; + _vf27C__5dEn_cFv = 0xDEADBEEF; + + _vfD8__18dActorMultiState_cFv = 0xDEADBEEF; + _vfDC__18dActorMultiState_cFv = 0xDEADBEEF; + _vfE0__18dActorMultiState_cFv = 0xDEADBEEF; + + __ct__13dStageActor_cFv = 0xDEADBEEF; + __dt__13dStageActor_cFv = 0xDEADBEEF; + beforeCreate__13dStageActor_cFv = 0xDEADBEEF; + afterCreate__13dStageActor_cFi = 0xDEADBEEF; + beforeDelete__13dStageActor_cFv = 0xDEADBEEF; + afterDelete__13dStageActor_cFi = 0xDEADBEEF; + beforeExecute__13dStageActor_cFv = 0xDEADBEEF; + afterExecute__13dStageActor_cFi = 0xDEADBEEF; + beforeDraw__13dStageActor_cFv = 0xDEADBEEF; + afterDraw__13dStageActor_cFi = 0xDEADBEEF; + GetExplanationString__13dStageActor_cFv = 0xDEADBEEF; + _vf60__13dStageActor_cFv = 0xDEADBEEF; + _vf68__13dStageActor_cFv = 0xDEADBEEF; + _vf6C__13dStageActor_cFv = 0xDEADBEEF; + _vf70__13dStageActor_cFv = 0xDEADBEEF; + _vf74__13dStageActor_cFv = 0xDEADBEEF; + _vf78__13dStageActor_cFv = 0xDEADBEEF; + _vf7C__13dStageActor_cFv = 0xDEADBEEF; + _vf88__13dStageActor_cFv = 0xDEADBEEF; + _vf90__13dStageActor_cFP13dStageActor_c = 0xDEADBEEF; + _vf94__13dStageActor_cFPv = 0xDEADBEEF; + removeMyActivePhysics__13dStageActor_cFv = 0xDEADBEEF; + addMyActivePhysics__13dStageActor_cFv = 0xDEADBEEF; + returnRegularScale__13dStageActor_cFv = 0xDEADBEEF; + _vfA4__13dStageActor_cFPv = 0xDEADBEEF; + _vfA8__13dStageActor_cFPv = 0xDEADBEEF; + _vfAC__13dStageActor_cFPv = 0xDEADBEEF; + _vfB0__13dStageActor_cFv = 0xDEADBEEF; + _vfB4__13dStageActor_cFv = 0xDEADBEEF; + _vfB8__13dStageActor_cFv = 0xDEADBEEF; + _vfBC__13dStageActor_cFv = 0xDEADBEEF; + _vfC0__13dStageActor_cFv = 0xDEADBEEF; + _vfC4__13dStageActor_cFv = 0xDEADBEEF; + _vfC8__13dStageActor_cFP7Point2d = 0xDEADBEEF; + __ct__8dScene_cFv = 0xDEADBEEF; __dt__8dScene_cFv = 0xDEADBEEF; beforeCreate__8dScene_cFv = 0xDEADBEEF; - afterCreate__8dScene_cFv = 0xDEADBEEF; + afterCreate__8dScene_cFi = 0xDEADBEEF; beforeDelete__8dScene_cFv = 0xDEADBEEF; - afterDelete__8dScene_cFv = 0xDEADBEEF; + afterDelete__8dScene_cFi = 0xDEADBEEF; beforeExecute__8dScene_cFv = 0xDEADBEEF; - afterExecute__8dScene_cFv = 0xDEADBEEF; + afterExecute__8dScene_cFi = 0xDEADBEEF; beforeDraw__8dScene_cFv = 0xDEADBEEF; - afterDraw__8dScene_cFv = 0xDEADBEEF; + afterDraw__8dScene_cFi = 0xDEADBEEF; __ct__8dActor_cFv = 0xDEADBEEF; __dt__8dActor_cFv = 0xDEADBEEF; @@ -130,13 +321,13 @@ SECTIONS { __ct__7dBase_cFv = 0xDEADBEEF; __dt__7dBase_cFv = 0xDEADBEEF; beforeCreate__7dBase_cFv = 0xDEADBEEF; - afterCreate__7dBase_cFv = 0xDEADBEEF; + afterCreate__7dBase_cFi = 0xDEADBEEF; beforeDelete__7dBase_cFv = 0xDEADBEEF; - afterDelete__7dBase_cFv = 0xDEADBEEF; + afterDelete__7dBase_cFi = 0xDEADBEEF; beforeExecute__7dBase_cFv = 0xDEADBEEF; - afterExecute__7dBase_cFv = 0xDEADBEEF; + afterExecute__7dBase_cFi = 0xDEADBEEF; beforeDraw__7dBase_cFv = 0xDEADBEEF; - afterDraw__7dBase_cFv = 0xDEADBEEF; + afterDraw__7dBase_cFi = 0xDEADBEEF; onDraw__7fBase_cFv = 0xDEADBEEF; @@ -145,6 +336,22 @@ SECTIONS { _vf58__8dActor_cFv = 0xDEADBEEF; _vf5C__8dActor_cFv = 0xDEADBEEF; + __ct__7PhysicsFv = 0xDEADBEEF; + setup__7PhysicsFP8dActor_cPQ27Physics4InfoUcUcP7Point2d = 0xDEADBEEF; + addToList__7PhysicsFv = 0xDEADBEEF; + removeFromList__7PhysicsFv = 0xDEADBEEF; + update__7PhysicsFv = 0xDEADBEEF; + + getTileRendererList__7dBgGm_cFi = 0xDEADBEEF; + + add__Q212TileRenderer4ListFP12TileRenderer = 0xDEADBEEF; + remove__Q212TileRenderer4ListFP12TileRenderer = 0xDEADBEEF; + + __ct__12TileRendererFv = 0xDEADBEEF; + __dt__12TileRendererFv = 0xDEADBEEF; + setPosition__12TileRendererFfff = 0xDEADBEEF; + setVars__12TileRendererFf = 0xDEADBEEF; + __ct__21dPlayerModelHandler_cFUc = 0xDEADBEEF; loadModel__21dPlayerModelHandler_cFUcii = 0xDEADBEEF; setSRT__21dPlayerModelHandler_cF7Point3d6S16Vec7Point3d = 0xDEADBEEF; @@ -692,6 +899,7 @@ SECTIONS { dSys_c__RootHeapMEM2 = 0xDEADBEEF; BG_GM_ptr = 0xDEADBEEF; + instance__7dBgGm_c = 0xDEADBEEF; BgActorDefs = 0xDEADBEEF; diff --git a/src/testblock.cpp b/src/testblock.cpp new file mode 100644 index 0000000..45d2ef7 --- /dev/null +++ b/src/testblock.cpp @@ -0,0 +1,83 @@ +#include +#include + +// Patches KAWANAGARE (sprite 250) + +class daEnTestBlock_c : public daEnBlockMain_c { +public: + TileRenderer tile; + Physics::Info physicsInfo; + + int onCreate(); + int onDelete(); + int onExecute(); + + static daEnTestBlock_c *build(); +}; + + +int daEnTestBlock_c::onCreate() { + blockInit(pos.y); + + physicsInfo.x1 = -8; + physicsInfo.y1 = 16; + physicsInfo.x2 = 8; + physicsInfo.y2 = 0; + + physicsInfo.otherCallback1 = &daEnBlockMain_c::OPhysicsCallback1; + physicsInfo.otherCallback2 = &daEnBlockMain_c::OPhysicsCallback2; + physicsInfo.otherCallback3 = &daEnBlockMain_c::OPhysicsCallback3; + + physics.setup(this, &physicsInfo, 3, currentLayerID); + physics.flagsMaybe = 0x260; + physics.callback1 = &daEnBlockMain_c::PhysicsCallback1; + physics.callback2 = &daEnBlockMain_c::PhysicsCallback2; + physics.callback3 = &daEnBlockMain_c::PhysicsCallback3; + physics.addToList(); + + TileRenderer::List *list = dBgGm_c::instance->getTileRendererList(0); + list->add(&tile); + + tile.x = pos.x - 8; + tile.y = -(16 + pos.y); + tile.tileNumber = 0x30; + + return true; +} + + +int daEnTestBlock_c::onDelete() { + TileRenderer::List *list = dBgGm_c::instance->getTileRendererList(0); + list->remove(&tile); + + physics.removeFromList(); + + return true; +} + + +int daEnTestBlock_c::onExecute() { + physics.update(); + blockUpdate(); + + tile.setPosition(pos.x-8, -(16+pos.y), pos.z); + tile.setVars(scale.x); + + // now check zone bounds based on state + // todo + + return true; +} + + +daEnTestBlock_c *daEnTestBlock_c::build() { + OSReport("Creating TestBlock\n"); + + void *buffer = AllocFromGameHeap1(sizeof(daEnTestBlock_c)); + daEnTestBlock_c *c = new(buffer) daEnTestBlock_c; + + OSReport("Created TestBlock @ %p\n", c); + + return c; +} + diff --git a/testblock.yaml b/testblock.yaml new file mode 100644 index 0000000..7117a04 --- /dev/null +++ b/testblock.yaml @@ -0,0 +1,7 @@ +--- +source_files: [../src/testblock.cpp] +hooks: + - name: BuildTestBlock + type: add_func_pointer + src_addr_pal: 0x809622F8 + target_func: 'daEnTestBlock_c::build(void)' -- cgit v1.2.3