summaryrefslogtreecommitdiff
path: root/src/bossPlayerClown.cpp
blob: 09c610d516aa2c386cc0d13552671fcf9cd6238e (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
73
74
75
#include <common.h>
#include <game.h>
#include <g3dhax.h>
#include <sfx.h>
#include <stage.h>
#include "boss.h"


#define CLOWN_MODEL(clown) ((m3d::mdl_c*)( ((u32)(clown)) + 0xFD0 ))

extern "C" int PClownCarExecute(dEn_c *clown);
extern "C" int PClownCarAfterCreate(dEn_c *clown, u32);
extern "C" int PClownCarDraw(dEn_c *clown);
extern "C" int PClownCarMove(dEn_c *clown);

int CConDraw(dEn_c *clown) {
	// setup matrices
	OSReport("Drawing");
	// CLOWN_MODEL(clown)->scheduleForDrawing();

	return PClownCarDraw(clown);
	// run normal clown function
}

int CConExecute(dEn_c *clown) {
	OSReport("Executing");

	return PClownCarExecute(clown);
	// run normal execute
}

int CCafterCreate(dEn_c *clown) {
	OSReport("Creating");

	clown->scale.x *= 1.25;
	clown->scale.y *= 1.25;
	clown->scale.z *= 1.25;

	// setup the model

	return PClownCarAfterCreate(clown, 1);
}

int CConExecuteMove(dEn_c *clown) {
	OSReport("Moving");

	// run normal move
	int ret = PClownCarMove(clown);

	// check for wiimote button presses

	// spawn effect and attack if there are any
	
	return ret;
}


extern "C" m3d::mdl_c *__ct__Q23m3d5mdl_cFv(m3d::mdl_c *mdl);
extern "C" dEn_c *__ct__20daJrClownForPlayer_cFv(dEn_c *clown);

dEn_c *newClownCtor(dEn_c *clown) {
	OSReport("ctor");
	__ct__20daJrClownForPlayer_cFv(clown);
	__ct__Q23m3d5mdl_cFv(CLOWN_MODEL(clown));
	return clown;
}


extern "C" void __dt__Q23m3d5mdl_cFv(m3d::mdl_c *mdl, u32 willDelete);
extern "C" void __dt__20daJrClownForPlayer_cFv(dEn_c *mdl, u32 willDelete);

void newClownDtor(dEn_c *clown, u32 willDelete) {
	__dt__Q23m3d5mdl_cFv(CLOWN_MODEL(clown), 0xFFFFFFFF);
	__dt__20daJrClownForPlayer_cFv(clown, willDelete);
}