summaryrefslogtreecommitdiff
path: root/include/daEnDosun_c.h
blob: 34e770a67c8093aaf47f3c1c3a897d10b5c84d69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#ifndef __DOSUN_H
#define __DOSUN_H

#include <daEnemy_c.h>

/* 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_GroundPound(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