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