summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeki <treeki@gmail.com>2011-07-10 05:07:53 +0200
committerTreeki <treeki@gmail.com>2011-07-10 05:07:53 +0200
commit54cbbfb69c8a9562d89f05967ae38011327e8da0 (patch)
tree22c55c184b14845d3ca74cae4d17866e6cf3b299
parent42af9e06e59747bd133559fd25b0582c6984ad44 (diff)
downloadkamek-54cbbfb69c8a9562d89f05967ae38011327e8da0.tar.gz
kamek-54cbbfb69c8a9562d89f05967ae38011327e8da0.zip
initial not completely finished version of daEnTestBlock_c
Diffstat (limited to '')
-rw-r--r--NewerProject.yaml1
-rwxr-xr-xinclude/game.h543
-rw-r--r--kamek_ntsc.x224
-rw-r--r--kamek_ntsc2.x224
-rw-r--r--kamek_pal.x224
-rw-r--r--kamek_pal2.x224
-rw-r--r--src/testblock.cpp83
-rw-r--r--testblock.yaml7
8 files changed, 1486 insertions, 44 deletions
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 <common.h>
+#include <game.h>
+
+// 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)'