#ifndef __DOSUN_H #define __DOSUN_H #include /* All Addresses NTSCv2 */ class daEnDosun_c : public daEnemy_c { public: //vtable // 80ae8268 //ctor - Normal // 809f5ad0 //ctor - Big // 809f5b60 int onCreate(); // 809f5bf0 int onDelete(); // 809f5fd0 int onExecute(); // 809f5e50 int onDraw(); // 809f5ea0 //~daEnBigDosun_c(); // 809f7140 void kill(); // 809f7110 void killedByLevelClear(); // 809f6810 void collisionCat3_StarPower(ActivePhysics* apThis, ActivePhysics *apOther); // 809f6050 void _vf108(ActivePhysics* apThis, ActivePhysics* apOther); // 809f5fe0 void collisionCatD_GroundPound(ActivePhysics* apThis, ActivePhysics* apOther); // 809f7130 void _vf110(ActivePhysics* apThis, ActivePhysics* apOther); // 809f6090 void collisionCat7_WMWaggleWater(ActivePhysics* apThis, ActivePhysics* apOther); // 809f7120 void collisionCat9_RollingObject(ActivePhysics* apThis, ActivePhysics* apOther); // 809f70a0 void collisionCat1_Fireball_E_Explosion(ActivePhysics* apThis, ActivePhysics* apOther); // 809f70e0 bool collisionCat2_IceBall_15_YoshiIce(ActivePhysics* apThis, ActivePhysics* apOther); // 809f70b0 void _vf144(int something); // 809f6120 //State Functions void DieFall_Begin(); // 809f6e00 void DieFall_Execute(); // 809f6f10 void DieFall_End(); // 809f6f00 void Ice_Begin(); // 809f7020 void Ice_Execute(); // 809f7090 void Ice_End(); // 809f7080 bool CreateIceActors(); // 809f6260 mHeapAllocator_c allocator; // _524 nw4r::g3d::ResFile resFile; // _540 m3d::mdl_c bodyModel; // _544 m3d::anmVis_c anmVis; // _584 u32 collision_struct[4]; // _5BC float shakePosXoffset; // _5CC shakePosXoffset u32 bigOrSmall; // _5D0 0=small,1=big u32 holdsFromSettings; // _5D4 0=normal,1=???,2=alwaysFalling u16 puruMoveCounter; // _5D8 u16 shakeIndex; // _5DA 0=shake,1=normal u32 countdownTimer; // _5DC u32 dieCounter; // _5E0 float unusedXoffset; // _5E4 float unusedYoffset; // _5E8 u32 _5EC; // padding /* don't have params yet */ void setupBodyModel(); // 809f63f0 void s_809F6530(); // 809f6530 void spawnEffects(); // 809f66a0 USING_STATES(daEnDosun_c); REF_NINTENDO_STATE(UpWait); REF_NINTENDO_STATE(DownMoveWait); REF_NINTENDO_STATE(PuruMove); REF_NINTENDO_STATE(DownMove_Kameck); REF_NINTENDO_STATE(DownMove); REF_NINTENDO_STATE(DownWait); REF_NINTENDO_STATE(UpMove); REF_NINTENDO_STATE(DieFall); REF_NINTENDO_STATE(Ice); }; #endif