summaryrefslogtreecommitdiff
path: root/src/bossPlayerClown.cpp
blob: e828336b98ffd751496f9304a5c6a40fed05dbf9 (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
#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" void *PClownCarExecute(dEn_c *clown);
extern "C" void *PClownCarAfterCreate(dEn_c *clown, u32);
extern "C" void *PClownCarDraw(dEn_c *clown);
extern "C" void *PClownCarMove(dEn_c *clown);

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

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

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

	PClownCarExecute(clown);
	// run normal execute
}

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

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

	// setup the model

	PClownCarAfterCreate(clown, 1);
}

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

	// run normal move
	PClownCarMove(clown);

	// check for wiimote button presses

	// spawn effect and attack if there are any
}


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);
}