From 1cac64b9ff7384af650fed2bef25fa27069fd589 Mon Sep 17 00:00:00 2001 From: megazig Date: Thu, 12 Jan 2012 19:39:28 -0600 Subject: fixes for using class functions instead of extern'd calls updated full daEnDosun_c definition half working daEnMegaDosun_c --- include/daEnDosun_c.h | 18 ++++++++---------- include/daEnemy_c.h | 27 +++++++++++++++------------ include/g3dhax.h | 2 +- include/game.h | 24 ++++++++++++++++++------ 4 files changed, 42 insertions(+), 29 deletions(-) (limited to 'include') diff --git a/include/daEnDosun_c.h b/include/daEnDosun_c.h index 49acabe..fadaedb 100644 --- a/include/daEnDosun_c.h +++ b/include/daEnDosun_c.h @@ -39,19 +39,17 @@ public: nw4r::g3d::ResFile resFile; // _540 m3d::mdl_c bodyModel; // _544 m3d::anmVis_c anmVis; // _584 - //u8 collision_struct[4]; // _5BC - u32 collision_struct; // _5BC - u32 _5C0, _5C4, _5C8; - float posXrelated_1; // _5CC + u32 collision_struct[4]; // _5BC + float shakePosXoffset; // _5CC shakePosXoffset u32 bigOrSmall; // _5D0 0=small,1=big - u32 holdsFromSettings; // _5D4 + u32 holdsFromSettings; // _5D4 0=normal,1=???,2=alwaysFalling u16 puruMoveCounter; // _5D8 - u16 _5DA; + u16 shakeIndex; // _5DA 0=shake,1=normal u32 countdownTimer; // _5DC - u32 anotherCounter; // _5E0 - float posXrelated_2; // _5E4 - float posYrelated_1; // _5E8 - u32 _5EC; + u32 dieCounter; // _5E0 + float unusedXoffset; // _5E4 + float unusedYoffset; // _5E8 + u32 _5EC; // padding /* don't have params yet */ void setupBodyModel(); // 809f63f0 diff --git a/include/daEnemy_c.h b/include/daEnemy_c.h index 36fd574..7b74fed 100644 --- a/include/daEnemy_c.h +++ b/include/daEnemy_c.h @@ -7,23 +7,26 @@ /* All Addresses NTSCv2 */ +//FIXME :( +extern "C" void HandlesOverallScale(Vec3* scale); + class daEnemy_c : public dEn_c { public: - int _vf58(); // 809a54e0 // daEnAkoya_c - void _vf5C(); // 809a54d0 // daEnAkoya_c - int _vf68(); // 809a5520 // daEnAkoya_c + int _vf58() { return 8; } // 809a54e0 // daEnAkoya_c + void _vf5C() { return; } // 809a54d0 // daEnAkoya_c + int _vf68() { return 1; } // 809a5520 // daEnAkoya_c //u8* _vf6C(); // 809a3550 // daEnAkoya_c //FIXME - u8* ptrToWhichPlayer(); // 809a3550 // daEnAkoya_c - int _vf74(); // 809a5510 // dActorState_c - void _vf7C(); // 809a5500 // dActorState_c - void _vfB8(); // 809a54f0 // dActorState_c - void _vf228(); // 809a5560 // smthg w/InitlScale - void _vf23C(); // 809a5550 // nullsub - void _vf240(); // 809a5540 // nullsub - int _vf244(); // 809a5530 // return 0; + u8* ptrToWhichPlayer() { return &this->which_player; } // 809a3550 // daEnAkoya_c + int _vf74() { return 1; } // 809a5510 // dActorState_c + void _vf7C() { return; } // 809a5500 // dActorState_c + void _vfB8() { return; } // 809a54f0 // dActorState_c + void _vf228() { HandlesOverallScale(&this->initialScale); } // 809a5560 // smthg w/InitlScale + void _vf23C() { return; } // 809a5550 // nullsub + void _vf240() { return; } // 809a5540 // nullsub + int _vf244() { return 0; } // 809a5530 // return 0; - void setupBodyModel(); //FIXME + //void setupBodyModel(); //FIXME }; #endif diff --git a/include/g3dhax.h b/include/g3dhax.h index f13aab3..b016e55 100644 --- a/include/g3dhax.h +++ b/include/g3dhax.h @@ -280,7 +280,7 @@ namespace m3d { // 28 might be Max Frame? float _28, _2C, currentFrame; - u8 _34; // animation group?? + u8 playState; // animation group?? }; class anmChr_c : public fanm_c { diff --git a/include/game.h b/include/game.h index 5fd71d5..8e7d86a 100755 --- a/include/game.h +++ b/include/game.h @@ -1245,6 +1245,8 @@ public: void Clear3(); int CollidedWithTile(); + int SomethingSemiImportant(int); + int s_80072BC0(); dStageActor_c* owner; void* struct1_ptr; @@ -1462,6 +1464,10 @@ public: virtual void _vf5C(); ~dActor_c(); + + void UpdateObjectPosBasedOnSpeedValuesReal(); + void HandleXSpeed(); + void HandleYSpeed(); }; class dStageActor_c : public dActor_c { @@ -1487,10 +1493,13 @@ public: u16 spriteSomeFlag; u8 _366, _367; u32 _368; - u8 _36C, _36D; + u8 eatenState; // 0=normal,2=eaten + u8 _36D; Vec somethingRelatedToScale; u32 _37C, _380, _384, _388; - u8 _38C, _38D, enableFlag, currentLayerID; + u8 _38C; + u8 which_player; // _38D + u8 enableFlag, currentLayerID; u8 _390, _391, _392, _padding; dStageActor_c(); @@ -1537,7 +1546,9 @@ public: 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 + int outOfZone(Vec3 pos, float* rect, u8 zone); + int checkZoneBoundaries(u32 flags); // I think this method is for that, anyway + void Delete(u8 param1); // fBase_c::Delete(void); ~dStageActor_c(); @@ -1624,7 +1635,6 @@ public: u32 _510, _514, _518; void *_51C; dEn_c *_520; - u32 _524; dEn_c(); @@ -1760,9 +1770,11 @@ public: ~dEn_c(); - static void collisionCallback(ActivePhysics::Info *one, ActivePhysics::Info *two); + void doSpriteMovement(); + bool CheckIfPlayerBelow(float,float); + // States USING_STATES(dEn_c); REF_NINTENDO_STATE(DieFumi); @@ -1778,7 +1790,7 @@ public: class daEnBlockMain_c : public dEn_c { public: - u32 _528, _52C, _530; + u32 _534, _528, _52C, _530; Physics physics; float _618, _61C, _620; u32 _624, _628, _62C; -- cgit v1.2.3