Further documentations have been made:
- src/fight: named more variables and functions, named some parameters - src/core1, src/core2: named some dummy functions, documented a bit of the graphics stack
This commit is contained in:
@@ -1994,7 +1994,7 @@ enum actor_e
|
||||
ACTOR_387_PORTRAIT_OF_TEEHEE,
|
||||
ACTOR_388_PORTRAIT_OF_MINION,
|
||||
ACTOR_389_GRUNTY_SPELL_FIREBALL,
|
||||
ACTOR_38A_SPRITE_SMOKE_GREEN_2,
|
||||
ACTOR_38A_GREEN_BLAST,
|
||||
ACTOR_38B_GRUNTILDA_FINAL_BOSS,
|
||||
|
||||
ACTOR_39F_FIGHT_FLIGHT_PAD = 0x39F,
|
||||
@@ -3698,7 +3698,7 @@ enum asset_e
|
||||
ASSET_6C4_SPRITE_SMOKE_YELLOW,
|
||||
ASSET_6C5_SPRITE_SMOKE_ORANGE,
|
||||
ASSET_6C6_SPRITE_SMOKE_PINK,
|
||||
ASSET_6C7_SPRITE_SMOKE_GREEN_2,
|
||||
ASSET_6C7_GREEN_BLAST,
|
||||
ASSET_6C8_SPRITE_SMOKE_BLUE,
|
||||
ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK,
|
||||
|
||||
@@ -4579,7 +4579,7 @@ enum marker_e{
|
||||
MARKER_25A_PORTRAIT_OF_TEEHEE,
|
||||
MARKER_25B_PORTRAIT_OF_MINION,
|
||||
MARKER_25C_GRUNTY_SPELL_FIREBALL,
|
||||
MARKER_25D_SPRITE_SMOKE_GREEN_2,
|
||||
MARKER_25D_GREEN_BLAST,
|
||||
MARKER_25E_GRUNTILDA_FINAL_BOSS,
|
||||
MARKER_25F_ICECUBE_B,
|
||||
|
||||
|
@@ -192,7 +192,7 @@ typedef struct actor_s{
|
||||
u32 unk58_1: 1;
|
||||
u32 unk58_0: 1;
|
||||
f32 unk5C;
|
||||
f32 unk60; //0x60
|
||||
f32 unk60; // actor lifetime?
|
||||
f32 yaw_ideal; //0x64
|
||||
f32 pitch;//0x68
|
||||
f32 unk6C;
|
||||
|
@@ -5,7 +5,7 @@
|
||||
#include "gc/gctransition.h"
|
||||
|
||||
|
||||
void func_8023E00C(enum map_e);
|
||||
void setBootMap(enum map_e);
|
||||
void func_8023DFF0(s32);
|
||||
|
||||
|
||||
@@ -27,8 +27,8 @@ u8 pad_8027A138[0x400];
|
||||
u64 D_8027A538;
|
||||
u8 pad_8027A540[0x17F8];
|
||||
OSThread s_MainThread;
|
||||
s32 D_8027BEE8;
|
||||
s32 D_8027BEEC;
|
||||
s32 gBootMap;
|
||||
s32 gDisableInput;
|
||||
u64 D_8027BEF0;
|
||||
|
||||
extern u8 core2_TEXT_START[];
|
||||
@@ -60,12 +60,12 @@ void func_8023DA9C(s32 arg0){
|
||||
func_8023DA74();
|
||||
D_8027A130 = arg0;
|
||||
if (D_8027A130 == 3){
|
||||
func_802E4214(D_8027BEE8);
|
||||
func_802E4214(gBootMap);
|
||||
}
|
||||
if (D_8027A130 == 4){
|
||||
func_802E35D0();
|
||||
dummy_func_802E35D0();
|
||||
}
|
||||
func_80255CD8();
|
||||
dummy_func_80255CD8();
|
||||
}
|
||||
|
||||
u32 globalTimer_getTimeMasked(u32 mask){
|
||||
@@ -80,40 +80,40 @@ void globalTimer_reset(void){
|
||||
gGlobalTimer = 0;
|
||||
}
|
||||
|
||||
s32 func_8023DB74(void){
|
||||
enum map_e getSpecialBootMap(void){
|
||||
return (DEBUG_use_special_bootmap())? MAP_80_GL_FF_ENTRANCE : MAP_91_FILE_SELECT;
|
||||
}
|
||||
|
||||
s32 func_8023DBA4(void){
|
||||
enum map_e getDefaultBootMap(void){
|
||||
return MAP_1F_CS_START_RAREWARE;
|
||||
}
|
||||
|
||||
void func_8023DBAC(void){
|
||||
func_8023E00C(func_8023DBA4());
|
||||
setBootMap(getDefaultBootMap());
|
||||
func_8023DFF0(3);
|
||||
}
|
||||
|
||||
void func_8023DBDC(void){
|
||||
func_8023E00C(func_8023DB74());
|
||||
setBootMap(getSpecialBootMap());
|
||||
func_8023DFF0(3);
|
||||
}
|
||||
|
||||
void core1_init(void){
|
||||
func_80255C30();
|
||||
func_8023E00C(func_8023DBA4());
|
||||
setBootMap(getDefaultBootMap());
|
||||
rarezip_init(); //initialize decompressor's huft table
|
||||
func_8024BE30();
|
||||
overlayManagerloadCore2();
|
||||
D_8027BEF0 = D_8027A538;
|
||||
heap_init();
|
||||
func_80254028();
|
||||
func_8025AFB0();
|
||||
func_8033EF58();
|
||||
dummy_func_8025AFB0();
|
||||
allocUnusedBlock();
|
||||
assetCache_init();
|
||||
pfsManager_init();
|
||||
rumbleManager_init();
|
||||
audioManager_init();
|
||||
func_8025425C();
|
||||
graphicsCache_init();
|
||||
ml_init();
|
||||
gctransition_reset();
|
||||
D_8027A130 = 0;
|
||||
@@ -143,9 +143,10 @@ void mainLoop(void){
|
||||
if(D_8027A130 != 3 || getGameMode() != GAME_MODE_4_PAUSED)
|
||||
globalTimer_incTimer();
|
||||
|
||||
if(!D_8027BEEC)
|
||||
if(!gDisableInput)
|
||||
pfsManager_update();
|
||||
D_8027BEEC = 0;
|
||||
gDisableInput = 0;
|
||||
|
||||
rumbleManager_80250C08();
|
||||
|
||||
if(!mapSpecificFlags_validateCRC1()){
|
||||
@@ -161,7 +162,7 @@ void mainLoop(void){
|
||||
func_80255ACC();
|
||||
spawnQueue_func_802C3A18();
|
||||
if(func_802E4424())
|
||||
func_802E3F8C(0);
|
||||
game_draw(0);
|
||||
spawnQueue_flush();
|
||||
break;
|
||||
}//L8023DE34
|
||||
@@ -211,8 +212,8 @@ s32 func_8023E000(void){
|
||||
return D_8027A130;
|
||||
}
|
||||
|
||||
void func_8023E00C(enum map_e map_id){
|
||||
D_8027BEE8 = map_id;
|
||||
void setBootMap(enum map_e map_id){
|
||||
gBootMap = map_id;
|
||||
}
|
||||
|
||||
void mainThread_create(void){
|
||||
@@ -225,6 +226,6 @@ OSThread *mainThread_get(void){
|
||||
return &s_MainThread;
|
||||
}
|
||||
|
||||
void func_8023E06C(void){
|
||||
D_8027BEEC = 1;
|
||||
void disableInput_set(void){
|
||||
gDisableInput = 1;
|
||||
}
|
||||
|
@@ -3,9 +3,9 @@
|
||||
#include "variables.h"
|
||||
|
||||
struct {
|
||||
u16 *unk0;
|
||||
u16 *data;
|
||||
int unk4;
|
||||
} D_80282FE0;
|
||||
} gzBuffer;
|
||||
|
||||
extern u8 D_8000E800;
|
||||
extern u16 D_803A5D00[2][0xF660];
|
||||
@@ -13,14 +13,14 @@ extern u16 D_803A5D00[2][0xF660];
|
||||
void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer);
|
||||
|
||||
void func_80253190(Gfx **gdl){
|
||||
func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, D_803A5D00[func_8024BDA0()]);
|
||||
func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, D_803A5D00[getActiveFramebuffer()]);
|
||||
}
|
||||
|
||||
void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer){
|
||||
if( D_80282FE0.unk0 != NULL && (getGameMode() != GAME_MODE_4_PAUSED || func_80335134())){
|
||||
if( gzBuffer.data != NULL && (getGameMode() != GAME_MODE_4_PAUSED || func_80335134())){
|
||||
//draw z_buffer
|
||||
gDPPipeSync((*gdl)++);
|
||||
gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(D_80282FE0.unk0));
|
||||
gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(gzBuffer.data));
|
||||
gDPSetCycleType((*gdl)++, G_CYC_FILL);
|
||||
gDPSetRenderMode((*gdl)++, G_RM_NOOP, G_RM_NOOP2);
|
||||
gDPSetFillColor((*gdl)++, 0xFFFCFFFC);
|
||||
@@ -33,44 +33,42 @@ void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer){
|
||||
}
|
||||
|
||||
int func_80253400(void){
|
||||
return D_80282FE0.unk4;
|
||||
return gzBuffer.unk4;
|
||||
}
|
||||
|
||||
int func_8025340C(void){
|
||||
return D_80282FE0.unk0 != NULL;
|
||||
return gzBuffer.data != NULL;
|
||||
}
|
||||
|
||||
void func_80253420(void){}
|
||||
void dummy_func_80253420(void){}
|
||||
|
||||
void func_80253428(int arg0) {
|
||||
u16 *var_v0;
|
||||
int new_var;
|
||||
if (arg0) {
|
||||
var_v0 = (D_80282FE0.unk0 = &D_8000E800);
|
||||
while (((s32) D_80282FE0.unk0) % 0x40) {\
|
||||
var_v0 = (D_80282FE0.unk0 = var_v0 + 1);
|
||||
var_v0 = (gzBuffer.data = &D_8000E800);
|
||||
while (((s32) gzBuffer.data) % 0x40) {\
|
||||
var_v0 = (gzBuffer.data = var_v0 + 1);
|
||||
}
|
||||
|
||||
do { } while ((&D_8000E800 && 1) * 0); //remove this
|
||||
}else{
|
||||
D_80282FE0.unk0 = 0;
|
||||
gzBuffer.data = 0;
|
||||
}
|
||||
D_80282FE0.unk4 = 0;
|
||||
gzBuffer.unk4 = 0;
|
||||
}
|
||||
|
||||
void func_802534A8(int arg0){
|
||||
D_80282FE0.unk4 = (D_80282FE0.unk0 != NULL && arg0);
|
||||
gzBuffer.unk4 = (gzBuffer.data != NULL && arg0);
|
||||
}
|
||||
|
||||
//zBuffer_set
|
||||
void func_802534CC(Gfx **gdl){
|
||||
if(D_80282FE0.unk0 && getGameMode() != GAME_MODE_4_PAUSED){
|
||||
void zBuffer_set(Gfx **gdl){
|
||||
if(gzBuffer.data && getGameMode() != GAME_MODE_4_PAUSED){
|
||||
gDPPipeSync((*gdl)++);
|
||||
gDPSetDepthImage((*gdl)++, D_80282FE0.unk0);
|
||||
gDPSetDepthImage((*gdl)++, gzBuffer.data);
|
||||
}
|
||||
}
|
||||
|
||||
//zBuffer_get
|
||||
void *func_80253540(void){
|
||||
return D_80282FE0.unk0;
|
||||
void *zBuffer_get(void){
|
||||
return gzBuffer.data;
|
||||
}
|
||||
|
@@ -14,28 +14,28 @@ typedef struct {
|
||||
extern u8 D_803A5D00[2][0x1ecc0];
|
||||
|
||||
/* .data */
|
||||
Gfx *D_80276580[2] = {NULL, NULL};
|
||||
Gfx *gGfxStack[2] = {NULL, NULL};
|
||||
s32 framebuffer_width = 292;
|
||||
s32 framebuffer_height = 216;
|
||||
|
||||
/* .bss */
|
||||
Mtx *D_80282FF0[2];
|
||||
Vtx *D_80282FF8[2];
|
||||
s32 D_80283000;
|
||||
s32 D_80283004;
|
||||
Mtx *gMtxStack[2];
|
||||
Vtx *gVtxStack[2];
|
||||
s32 gStackSelector;
|
||||
s32 gTextureFilterPoint;
|
||||
Struct_Core1_15B30 D_80283008[20];
|
||||
s32 D_802831E8;
|
||||
OSMesgQueue D_802831F0;
|
||||
OSMesg D_80283208;
|
||||
u16 D_8028320C;
|
||||
u16 D_8028320E;
|
||||
u16 D_80283210;
|
||||
u16 D_80283212;
|
||||
u16 gScissorBoxLeft;
|
||||
u16 gScissorBoxRight;
|
||||
u16 gScissorBoxTop;
|
||||
u16 gScissorBoxBottom;
|
||||
Gfx *D_80283214;
|
||||
|
||||
/* .h */
|
||||
void func_80254348(void);
|
||||
void func_80254464(void);
|
||||
void scissorBox_setDefault(void);
|
||||
void dummy_func_80254464(void);
|
||||
|
||||
/* .code */
|
||||
void func_80253550(void){
|
||||
@@ -71,13 +71,13 @@ void func_80253640(Gfx ** gdl, void *arg1){
|
||||
gDPPipelineMode((*gdl)++, G_PM_NPRIMITIVE);
|
||||
gDPSetAlphaCompare((*gdl)++, G_AC_NONE);
|
||||
gDPSetColorDither((*gdl)++, G_CD_MAGICSQ);
|
||||
gDPSetScissor((*gdl)++, G_SC_NON_INTERLACE, D_8028320C, D_8028320E, D_80283210, D_80283212);
|
||||
gDPSetScissor((*gdl)++, G_SC_NON_INTERLACE, gScissorBoxLeft, gScissorBoxRight, gScissorBoxTop, gScissorBoxBottom);
|
||||
func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, arg1);
|
||||
gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(arg1));
|
||||
gDPSetCycleType((*gdl)++, G_CYC_1CYCLE);
|
||||
gDPSetTextureConvert((*gdl)++, G_TC_FILT);
|
||||
gDPSetTextureDetail((*gdl)++, G_TD_CLAMP);
|
||||
if(D_80283004){
|
||||
if(gTextureFilterPoint){
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_POINT);
|
||||
}else{
|
||||
gDPSetTextureFilter((*gdl)++, G_TF_BILERP);
|
||||
@@ -85,24 +85,24 @@ void func_80253640(Gfx ** gdl, void *arg1){
|
||||
gDPSetTextureLOD((*gdl)++, G_TL_TILE);
|
||||
gDPSetTextureLUT((*gdl)++, G_TT_NONE);
|
||||
gDPSetTexturePersp((*gdl)++, G_TP_PERSP);
|
||||
func_802534CC(gdl);
|
||||
zBuffer_set(gdl);
|
||||
}
|
||||
|
||||
void func_802539AC(Gfx **gdl, s32 arg1){
|
||||
void scissorBox_SetForGameMode(Gfx **gdl, s32 framebuffer_idx) {
|
||||
if(getGameMode() == GAME_MODE_8_BOTTLES_BONUS || getGameMode() == GAME_MODE_A_SNS_PICTURE)
|
||||
{
|
||||
func_8030C710();
|
||||
scissorBox_setSmall();
|
||||
func_80253640(gdl, func_8030C704());
|
||||
}
|
||||
else{
|
||||
func_80254348();
|
||||
func_80253640(gdl, D_803A5D00[arg1]);
|
||||
scissorBox_setDefault();
|
||||
func_80253640(gdl, D_803A5D00[framebuffer_idx]);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80253A58(Gfx **gfx, s32 arg1){
|
||||
void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address){
|
||||
gSPSegment((*gfx)++, 0x00, 0x00000000);
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(arg1));
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(framebuffer_address));
|
||||
gSPClearGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
|
||||
gSPTexture((*gfx)++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
|
||||
gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH);
|
||||
@@ -113,20 +113,20 @@ void func_80253A58(Gfx **gfx, s32 arg1){
|
||||
gDPSetColorDither((*gfx)++, G_CD_DISABLE);
|
||||
gDPSetRenderMode((*gfx)++, G_RM_AA_ZB_XLU_LINE, G_RM_AA_ZB_XLU_LINE2);
|
||||
gSPClipRatio((*gfx)++, FRUSTRATIO_1);
|
||||
gDPSetScissor((*gfx)++, G_SC_NON_INTERLACE, D_8028320C, D_8028320E, D_80283210, D_80283212);
|
||||
gDPSetScissor((*gfx)++, G_SC_NON_INTERLACE, gScissorBoxLeft, gScissorBoxRight, gScissorBoxTop, gScissorBoxBottom);
|
||||
gDPPipeSync((*gfx)++);
|
||||
}
|
||||
|
||||
void func_80253D60(Gfx **gfx, s32 arg1){
|
||||
func_80254348();
|
||||
func_80253A58(gfx, D_803A5D00[arg1]);
|
||||
void setupDefaultScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_idx){
|
||||
scissorBox_setDefault();
|
||||
setupScissorBoxAndFramebuffer(gfx, D_803A5D00[framebuffer_idx]);
|
||||
}
|
||||
|
||||
void func_80253DC0(Gfx **gfx){
|
||||
func_802476EC(gfx);
|
||||
}
|
||||
|
||||
void func_80253DE0(Gfx **gdl) {
|
||||
void finishFrame(Gfx **gdl) {
|
||||
gDPFullSync((*gdl)++);
|
||||
gSPEndDisplayList((*gdl)++);
|
||||
}
|
||||
@@ -174,11 +174,11 @@ void func_80253F94(Gfx **arg0, Gfx **arg1){
|
||||
func_80253EE4(arg0, arg1, 0x40000000);
|
||||
}
|
||||
|
||||
void func_80253FB4(u32 *arg0, u32 *arg1, u32 *arg2, u32 *arg3){
|
||||
*arg0 = D_8028320C;
|
||||
*arg1 = D_80283210;
|
||||
*arg2 = D_8028320E;
|
||||
*arg3 = D_80283212;
|
||||
void scissorBox_get(u32 *left, u32 *top, u32 *right, u32 *bottom){
|
||||
*left = gScissorBoxLeft;
|
||||
*top = gScissorBoxTop;
|
||||
*right = gScissorBoxRight;
|
||||
*bottom = gScissorBoxBottom;
|
||||
}
|
||||
|
||||
void func_80253FE8(void){
|
||||
@@ -194,10 +194,10 @@ void func_80254028(void){
|
||||
osCreateMesgQueue(&D_802831F0, &D_80283208, 1);
|
||||
osSendMesg(&D_802831F0, NULL, 1);
|
||||
func_80247560();
|
||||
func_80254348();
|
||||
scissorBox_setDefault();
|
||||
}
|
||||
|
||||
void func_80254084(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b){
|
||||
void drawRectangle2D(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b){
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
|
||||
gDPSetCycleType((*gfx)++, G_CYC_FILL);
|
||||
@@ -206,45 +206,45 @@ void func_80254084(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b){
|
||||
gDPScisFillRectangle((*gfx)++, x, y, x + w -1, y + h -1);
|
||||
}
|
||||
|
||||
void func_802541E8(void){
|
||||
if(D_80276580[0]){
|
||||
free(D_80276580[0]);
|
||||
free(D_80276580[1]);
|
||||
free(D_80282FF0[0]);
|
||||
free(D_80282FF0[1]);
|
||||
free(D_80282FF8[0]);
|
||||
free(D_80282FF8[1]);
|
||||
D_80276580[0] = NULL;
|
||||
void graphicsCache_release(void){
|
||||
if(gGfxStack[0]){
|
||||
free(gGfxStack[0]);
|
||||
free(gGfxStack[1]);
|
||||
free(gMtxStack[0]);
|
||||
free(gMtxStack[1]);
|
||||
free(gVtxStack[0]);
|
||||
free(gVtxStack[1]);
|
||||
gGfxStack[0] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void func_8025425C(void){
|
||||
if(D_80276580[0] == NULL){
|
||||
D_80276580[0] = (Gfx *)malloc(29600);
|
||||
D_80276580[1] = (Gfx *)malloc(29600);
|
||||
D_80282FF0[0] = (Mtx *)malloc(44800);
|
||||
D_80282FF0[1] = (Mtx *)malloc(44800);
|
||||
D_80282FF8[0] = (Vtx *)malloc(6880);
|
||||
D_80282FF8[1] = (Vtx *)malloc(6880);
|
||||
func_80254464();
|
||||
void graphicsCache_init(void){
|
||||
if(gGfxStack[0] == NULL){
|
||||
gGfxStack[0] = (Gfx *)malloc(29600); // 3700 dlist commands
|
||||
gGfxStack[1] = (Gfx *)malloc(29600);
|
||||
gMtxStack[0] = (Mtx *)malloc(44800); // 700 matrices
|
||||
gMtxStack[1] = (Mtx *)malloc(44800);
|
||||
gVtxStack[0] = (Vtx *)malloc(6880); // 430 vertices
|
||||
gVtxStack[1] = (Vtx *)malloc(6880);
|
||||
dummy_func_80254464();
|
||||
}
|
||||
D_80283000 = 0;
|
||||
D_80283004 = 0;
|
||||
gStackSelector = 0;
|
||||
gTextureFilterPoint = 0;
|
||||
}
|
||||
|
||||
void func_802542F4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
D_8028320C = arg0;
|
||||
D_80283210 = arg1;
|
||||
D_8028320E = arg2;
|
||||
D_80283212 = arg3;
|
||||
framebuffer_width = arg1 - arg0;
|
||||
framebuffer_height = arg3 - arg2;
|
||||
void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom) {
|
||||
gScissorBoxLeft = left;
|
||||
gScissorBoxTop = top;
|
||||
gScissorBoxRight = right;
|
||||
gScissorBoxBottom = bottom;
|
||||
framebuffer_width = top - left;
|
||||
framebuffer_height = bottom - right;
|
||||
func_8024CC5C();
|
||||
}
|
||||
|
||||
|
||||
void func_80254348(void){
|
||||
func_802542F4(0, 0x124, 0, 0xd8);
|
||||
void scissorBox_setDefault(void){
|
||||
scissorBox_set(0, 292, 0, 216);
|
||||
}
|
||||
|
||||
void func_80254374(s32 arg0) {
|
||||
@@ -259,16 +259,16 @@ void func_80254374(s32 arg0) {
|
||||
func_80246670(sp1C);
|
||||
}
|
||||
|
||||
void func_802543EC(void){
|
||||
u32 ret_val = D_80283004;
|
||||
D_80283004 = ret_val < 1;
|
||||
void toggleTextureFilterPoint(void){
|
||||
u32 ret_val = gTextureFilterPoint;
|
||||
gTextureFilterPoint = ret_val < 1;
|
||||
}
|
||||
|
||||
void func_80254404(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
D_80283000 = (1 - D_80283000);
|
||||
*gfx = D_80276580[D_80283000];
|
||||
*mtx = D_80282FF0[D_80283000];
|
||||
*vtx = D_80282FF8[D_80283000];
|
||||
void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
gStackSelector = (1 - gStackSelector);
|
||||
*gfx = gGfxStack[gStackSelector];
|
||||
*mtx = gMtxStack[gStackSelector];
|
||||
*vtx = gVtxStack[gStackSelector];
|
||||
}
|
||||
|
||||
void func_80254464(void){}
|
||||
void dummy_func_80254464(void){}
|
||||
|
@@ -18,7 +18,7 @@ void func_80255C30(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_80255CD8(void){}
|
||||
void dummy_func_80255CD8(void){}
|
||||
|
||||
void func_80255CE0(void){
|
||||
osPiReadIo(0, NULL);
|
||||
|
@@ -3,13 +3,13 @@
|
||||
#include "variables.h"
|
||||
|
||||
|
||||
void func_8025AFB0(void) {}
|
||||
void dummy_func_8025AFB0(void) {}
|
||||
|
||||
void func_8025AFB8(void) {}
|
||||
void dummy_func_8025AFB8(void) {}
|
||||
|
||||
void func_8025AFC0(Gfx **arg0, Mtx **arg1, Vtx **arg2) {}
|
||||
void dummy_func_8025AFC0(Gfx **arg0, Mtx **arg1, Vtx **arg2) {}
|
||||
|
||||
s32 func_8025AFD0(void)
|
||||
s32 dummy_func_8025AFD0(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@@ -245,7 +245,7 @@ void func_80246D78(void){
|
||||
osDpSetStatus(DPC_CLR_FREEZE);
|
||||
|
||||
D_8027FC14 = D_8027FC18;
|
||||
func_8025AFB8();
|
||||
dummy_func_8025AFB8();
|
||||
|
||||
if(D_8027FC14 & 1){
|
||||
D_80275998 = 0x1E;
|
||||
|
@@ -56,7 +56,7 @@ OSViMode D_80275CD0 = {
|
||||
// C3A68832 DDC3A724 00000000 00000000
|
||||
|
||||
|
||||
u32 D_80280720;
|
||||
u32 gActiveFramebuffer;
|
||||
u32 D_80280724;
|
||||
u32 D_80280728;
|
||||
struct1 D_80280730[8];
|
||||
@@ -80,15 +80,15 @@ void func_8024C428(void);
|
||||
/* .code */
|
||||
bool func_8024BD80(void){
|
||||
sizeof(OSThread);
|
||||
return NOT(D_80280720);
|
||||
return NOT(gActiveFramebuffer);
|
||||
}
|
||||
|
||||
s32 func_8024BD94(void){
|
||||
return D_80280724;
|
||||
}
|
||||
|
||||
s32 func_8024BDA0(void){
|
||||
return D_80280720;
|
||||
s32 getActiveFramebuffer(void){
|
||||
return gActiveFramebuffer;
|
||||
}
|
||||
|
||||
void func_8024BDAC(OSMesgQueue *mq, OSMesg msg){
|
||||
@@ -107,7 +107,7 @@ void func_8024BE30(void){
|
||||
s32 i;
|
||||
|
||||
func_8024C428();
|
||||
osCreateViManager(0xfe);
|
||||
osCreateViManager(OS_PRIORITY_VIMGR);
|
||||
if(osTvType != OS_TV_NTSC)
|
||||
osViSetMode(&D_80275CD0); //PAL
|
||||
else
|
||||
@@ -120,7 +120,7 @@ void func_8024BE30(void){
|
||||
osCreateMesgQueue(&D_802807B0, D_802807C8, 1);
|
||||
osCreateMesgQueue(&D_802807D0, D_802807E8, 60);
|
||||
osViSetEvent(&D_80280770,NULL,1);
|
||||
D_80280720 = 0;
|
||||
gActiveFramebuffer = 0;
|
||||
D_80280724 = 1;
|
||||
D_80280728 = 0;
|
||||
for(i = 0; i<8; i++){
|
||||
@@ -162,7 +162,7 @@ void func_8024BFD8(s32 arg0){
|
||||
osRecvMesg(&D_802807D0, NULL, OS_MESG_NOBLOCK);
|
||||
}
|
||||
|
||||
osViSwapBuffer(D_803A5D00[D_80280720 = func_8024BD80()]);
|
||||
osViSwapBuffer(D_803A5D00[gActiveFramebuffer = func_8024BD80()]);
|
||||
D_80280E90 = 0;
|
||||
while(!(osDpGetStatus() & 2) && osViGetCurrentFramebuffer() != osViGetNextFramebuffer()){
|
||||
osRecvMesg(&D_802807D0, NULL, OS_MESG_BLOCK);
|
||||
@@ -177,7 +177,7 @@ void func_8024BFD8(s32 arg0){
|
||||
|
||||
void func_8024C1B4(void){
|
||||
func_8024BFD8(0);
|
||||
func_8025AFB8();
|
||||
dummy_func_8025AFB8();
|
||||
}
|
||||
|
||||
void func_8024C1DC(void){
|
||||
@@ -195,8 +195,8 @@ void func_8024C1FC(OSMesgQueue *mq, OSMesg msg){
|
||||
}
|
||||
|
||||
void func_8024C2A0(s32 arg0) {
|
||||
D_80280720 = arg0;
|
||||
osViSwapBuffer(D_803A5D00[D_80280720]);
|
||||
gActiveFramebuffer = arg0;
|
||||
osViSwapBuffer(D_803A5D00[gActiveFramebuffer]);
|
||||
}
|
||||
|
||||
void func_8024C2F8(void *arg0){
|
||||
|
@@ -804,7 +804,7 @@ void func_80255A3C(void){
|
||||
|
||||
if(!func_802559A0()){
|
||||
ml_defrag();
|
||||
func_80254464();
|
||||
dummy_func_80254464();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -154,7 +154,7 @@ void chBottlesBonusCursor_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
func_80253208(gfx,
|
||||
(s32)(D_8037E5C0.unk18[0] - sp3C/2), (s32)(D_8037E5C0.unk18[1] - sp3C/2),
|
||||
(s32)sp3C, (s32)sp3C,
|
||||
D_803A5D00[func_8024BDA0()]
|
||||
D_803A5D00[getActiveFramebuffer()]
|
||||
);
|
||||
modelRender_draw(gfx, mtx, this->position, rotation, this->scale, NULL, func_80330B1C(chBottlesBonusCursorMarker));
|
||||
func_8024E030(this->position, D_8037E5C0.unk10);
|
||||
|
@@ -46,24 +46,24 @@ void func_802E329C(s32 arg0, Gfx **gfx_begin, Gfx **gfx_end) {
|
||||
Vtx *vtx;
|
||||
Vtx *vtx_start;
|
||||
|
||||
func_80254404(&gfx, &mtx, &vtx);
|
||||
getGraphicsStacks(&gfx, &mtx, &vtx);
|
||||
gfx_start = gfx;
|
||||
mtx_start = mtx;
|
||||
vtx_start = vtx;
|
||||
func_802539AC(&gfx, arg0);
|
||||
scissorBox_SetForGameMode(&gfx, arg0);
|
||||
if (D_8037E8C0.unk14 == 2) {
|
||||
func_80254084(&gfx, 0, 0, (s32) (f32) framebuffer_width, (s32) (f32) framebuffer_height, 0, 0, 0);
|
||||
drawRectangle2D(&gfx, 0, 0, (s32) (f32) framebuffer_width, (s32) (f32) framebuffer_height, 0, 0, 0);
|
||||
}
|
||||
if ((D_8037E8C0.unk14 == 0) || (D_8037E8C0.unk14 == 3)) {
|
||||
func_8024C904(&gfx, &mtx);
|
||||
gcbound_draw(&gfx);
|
||||
}
|
||||
if (D_8037E8C0.unk14 == 1) {
|
||||
func_80254084(&gfx, 0, 0, (s32) (f32) framebuffer_width, (s32) (f32) framebuffer_height, 0, 0, 0);
|
||||
drawRectangle2D(&gfx, 0, 0, (s32) (f32) framebuffer_width, (s32) (f32) framebuffer_height, 0, 0, 0);
|
||||
func_8024C904(&gfx, &mtx);
|
||||
func_802F1858(D_8037E8C0.unk10, &gfx, &mtx, &vtx);
|
||||
}
|
||||
func_80253DE0(&gfx);
|
||||
finishFrame(&gfx);
|
||||
osWritebackDCache(mtx_start, (mtx - mtx_start) * sizeof(Mtx));
|
||||
osWritebackDCache(vtx_start, (vtx - vtx_start) * sizeof(Vtx));
|
||||
*gfx_begin = gfx_start;
|
||||
@@ -83,7 +83,7 @@ void func_802E3460(s32 arg0) {
|
||||
if (func_8025AD7C(COMUSIC_31_GAME_OVER)) {
|
||||
comusic_8025AB44(COMUSIC_31_GAME_OVER, 0, 200);
|
||||
}
|
||||
func_802F1934(D_8037E8C0.unk10, func_8024BDA0());
|
||||
func_802F1934(D_8037E8C0.unk10, getActiveFramebuffer());
|
||||
}
|
||||
else if (D_8037E8C0.unk14 == 3) {
|
||||
D_8037E8C0.unk0 = 0.0f;
|
||||
@@ -106,11 +106,11 @@ void func_802E3580(void) {
|
||||
func_802F1884(D_8037E8C0.unk10);
|
||||
func_802E5F68();
|
||||
comusicPlayer_free();
|
||||
func_80253420();
|
||||
dummy_func_80253420();
|
||||
func_8024BF94(2);
|
||||
}
|
||||
|
||||
void func_802E35D0(void){}
|
||||
void dummy_func_802E35D0(void){}
|
||||
|
||||
void func_802E35D8(void ) {
|
||||
s32 sp40[6];
|
||||
|
@@ -74,7 +74,7 @@ void func_802E3854(void){
|
||||
int i;
|
||||
|
||||
func_8033B61C();
|
||||
func_80254464();
|
||||
dummy_func_80254464();
|
||||
for(i = 0; i < 0xF; i++){
|
||||
func_802E6820(5);
|
||||
modelRender_defrag();
|
||||
@@ -115,16 +115,16 @@ void func_802E398C(s32 arg0) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_802E39D0(Gfx **gdl, Mtx **mptr, Vtx **vptr, s32 arg3, s32 arg4){
|
||||
void func_802E39D0(Gfx **gdl, Mtx **mptr, Vtx **vptr, s32 framebuffer_idx, s32 arg4){
|
||||
Mtx* m_start = *mptr;
|
||||
Vtx* v_start = *vptr;
|
||||
|
||||
func_802539AC(gdl, arg3);
|
||||
scissorBox_SetForGameMode(gdl, framebuffer_idx);
|
||||
D_8037E8E0.unkC = FALSE;
|
||||
func_80334540(gdl, mptr, vptr);
|
||||
if(!arg4){
|
||||
func_802E67AC();
|
||||
func_802E3BD0(func_8024BDA0());
|
||||
func_802E3BD0(getActiveFramebuffer());
|
||||
func_802E67C4();
|
||||
func_802E5F10(gdl);
|
||||
}
|
||||
@@ -147,7 +147,7 @@ void func_802E39D0(Gfx **gdl, Mtx **mptr, Vtx **vptr, s32 arg3, s32 arg4){
|
||||
|
||||
gcpausemenu_draw(gdl, mptr, vptr);
|
||||
if(!game_is_frozen()){
|
||||
func_8025AFC0(gdl, mptr, vptr);
|
||||
dummy_func_8025AFC0(gdl, mptr, vptr);
|
||||
}
|
||||
|
||||
gcdialog_draw(gdl, mptr, vptr);
|
||||
@@ -163,7 +163,7 @@ void func_802E39D0(Gfx **gdl, Mtx **mptr, Vtx **vptr, s32 arg3, s32 arg4){
|
||||
){
|
||||
gctransition_draw(gdl, mptr, vptr);
|
||||
}
|
||||
func_80253DE0(gdl);
|
||||
finishFrame(gdl);
|
||||
osWritebackDCache(m_start, sizeof(Mtx)*( *mptr - m_start));
|
||||
osWritebackDCache(v_start, sizeof(Vtx)*( *vptr - v_start));
|
||||
}
|
||||
@@ -282,29 +282,33 @@ s32 func_802E3F80(void){
|
||||
return D_8037E8E0.unk0;
|
||||
}
|
||||
|
||||
//game_draw
|
||||
void func_802E3F8C(s32 arg0){
|
||||
Gfx *sp34;
|
||||
void game_draw(s32 arg0){
|
||||
Gfx *gfx;
|
||||
Gfx *gfx_start;
|
||||
Gfx *sp2C;
|
||||
Mtx *sp28;
|
||||
Vtx *sp24;
|
||||
if(arg0){
|
||||
func_80254348();
|
||||
Mtx *mtx;
|
||||
Vtx *vtx;
|
||||
|
||||
if(arg0) {
|
||||
scissorBox_setDefault();
|
||||
}
|
||||
|
||||
func_80254404(&sp34, &sp28, &sp24);
|
||||
getGraphicsStacks(&gfx, &mtx, &vtx);
|
||||
|
||||
if(D_8037E8E0.unkC == 1){
|
||||
func_80254404(&sp34, &sp28, &sp24);
|
||||
getGraphicsStacks(&gfx, &mtx, &vtx);
|
||||
}
|
||||
gfx_start = sp34;
|
||||
func_802E39D0(&sp34, &sp28, &sp24, func_8024BDA0(), arg0);
|
||||
|
||||
gfx_start = gfx;
|
||||
func_802E39D0(&gfx, &mtx, &vtx, getActiveFramebuffer(), arg0);
|
||||
|
||||
if(D_8037E8E0.unkC == 0){
|
||||
sp2C = sp34;
|
||||
sp2C = gfx;
|
||||
func_8024C1DC();
|
||||
func_80253EC4(gfx_start, sp2C);
|
||||
if(arg0){
|
||||
func_80254348();
|
||||
|
||||
if(arg0) {
|
||||
scissorBox_setDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -364,7 +368,7 @@ void func_802E4170(void){
|
||||
timedFuncQueue_free();
|
||||
func_802F9C48();
|
||||
modelRender_free();
|
||||
func_80253420();
|
||||
dummy_func_80253420();
|
||||
func_802E398C(0);
|
||||
func_8030AFD8(0);
|
||||
func_80321854();
|
||||
@@ -399,7 +403,7 @@ void func_802E4214(enum map_e map_id){
|
||||
viewport_reset();
|
||||
viewport_set_near_far(1.0f, 10000.0f);
|
||||
rand_reset();
|
||||
func_80254348();
|
||||
scissorBox_setDefault();
|
||||
func_80253FE8();
|
||||
func_8033DC70();
|
||||
func_8033DC04();
|
||||
|
@@ -11,7 +11,7 @@ void func_802FEDE0(BKTextureList *texture_list, s32 indx, s32 x_offset, s32 y_of
|
||||
s32 x;
|
||||
|
||||
sp24 = (u16*)func_802EA620(texture_list) + indx*32*32;
|
||||
frame_buffer_ptr = D_803A5D00[func_8024BDA0()];
|
||||
frame_buffer_ptr = D_803A5D00[getActiveFramebuffer()];
|
||||
for(y = 0; y < 32; y++){//L802FEE60
|
||||
for(x = 0; x < 32; x++){//L802FEE68
|
||||
sp24[32*(31 - y) + x] = frame_buffer_ptr[(y_offset + y)*framebuffer_width + (x_offset + x)] | 1; //framebuffer to texture???
|
||||
@@ -25,7 +25,7 @@ void func_802FEF48(BKModelBin *model_bin){
|
||||
s32 x, y;
|
||||
|
||||
texture_list = model_getTextureList(model_bin);
|
||||
osInvalDCache((void *)D_803A5D00[func_8024BDA0()], framebuffer_width * framebuffer_height*2);
|
||||
osInvalDCache((void *)D_803A5D00[getActiveFramebuffer()], framebuffer_width * framebuffer_height*2);
|
||||
|
||||
for(y = 0; y < 8; y++){//L802FEFEC
|
||||
for(x = 0; x < 10; x++){
|
||||
|
@@ -90,8 +90,8 @@ void func_8030C27C(void){
|
||||
}
|
||||
|
||||
void func_8030C2D4(Gfx **gdl, Mtx **mptr, Vtx **vptr){
|
||||
func_80254348();
|
||||
func_80253640(gdl, D_803A5D00[func_8024BDA0()]);
|
||||
scissorBox_setDefault();
|
||||
func_80253640(gdl, D_803A5D00[getActiveFramebuffer()]);
|
||||
}
|
||||
|
||||
// Draws a 160x128 image pointed to by D_80382450 into the center of the screen
|
||||
@@ -128,6 +128,6 @@ s32 func_8030C704(void){
|
||||
return D_80382450;
|
||||
}
|
||||
|
||||
void func_8030C710(void){
|
||||
func_802542F4(0, 0xA0, 0, 0x80);
|
||||
void scissorBox_setSmall(void){
|
||||
scissorBox_set(0, 160, 0, 128);
|
||||
}
|
||||
|
@@ -53,13 +53,13 @@ void func_80314BB0(Gfx **gfx, Mtx **mtx, Vtx **vtx, void * frame_buffer_1, void
|
||||
}
|
||||
}
|
||||
gSPDisplayList((*gfx)++, D_8036C690);
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(D_803A5D00[func_8024BDA0()]));
|
||||
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(D_803A5D00[getActiveFramebuffer()]));
|
||||
}
|
||||
|
||||
void func_80315084(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
func_80335128(0);
|
||||
D_803830A0 = 2;
|
||||
func_80314BB0(gfx, mtx, vtx, func_80253540(), D_803A5D00[func_8024BDA0()]);
|
||||
func_80314BB0(gfx, mtx, vtx, zBuffer_get(), D_803A5D00[getActiveFramebuffer()]);
|
||||
}
|
||||
|
||||
void func_80315110(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
@@ -72,7 +72,7 @@ void func_80315110(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
else{
|
||||
D_803830A0--;
|
||||
}
|
||||
func_80314BB0(gfx, mtx, vtx, D_803A5D00[func_8024BDA0()], func_80253540());
|
||||
func_80314BB0(gfx, mtx, vtx, D_803A5D00[getActiveFramebuffer()], zBuffer_get());
|
||||
}
|
||||
|
||||
void func_803151D0(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
|
@@ -63,7 +63,7 @@ f32 D_8036E598[4] = {1000.f, 20.0f, 10.5f, 1.0f};
|
||||
|
||||
|
||||
/* .bss */
|
||||
Actor *D_80383390;
|
||||
Actor *suLastBaddie;
|
||||
s32 D_80383394;
|
||||
Actor *suBaddieJiggyArray[14]; //array of jiggy actor ptrs
|
||||
|
||||
@@ -768,267 +768,270 @@ Actor *actor_new(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
|
||||
suBaddieActorArray->cnt = 0;
|
||||
suBaddieActorArray->max_cnt = 20;
|
||||
}
|
||||
//i = suBaddieActorArray->cnt + 1;
|
||||
|
||||
if(suBaddieActorArray->cnt + 1 > suBaddieActorArray->max_cnt){
|
||||
suBaddieActorArray->max_cnt = suBaddieActorArray->cnt + 5;
|
||||
suBaddieActorArray = (ActorArray *)realloc(suBaddieActorArray, sizeof(ActorArray) + suBaddieActorArray->max_cnt*sizeof(Actor));
|
||||
}
|
||||
|
||||
++suBaddieActorArray->cnt;
|
||||
D_80383390 = &suBaddieActorArray->data[suBaddieActorArray->cnt - 1];
|
||||
D_80383390->actor_info = actorInfo;
|
||||
D_80383390->unk10_25 = 0;
|
||||
D_80383390->unk10_18 = 0;
|
||||
D_80383390->state = actorInfo->startAnimation;
|
||||
D_80383390->position_x = (f32)position[0];
|
||||
D_80383390->position_y = (f32)position[1];
|
||||
D_80383390->position_z = (f32)position[2];
|
||||
D_80383390->unkF4_8 = 0;
|
||||
D_80383390->yaw = (f32) yaw;
|
||||
D_80383390->yaw_ideal = (f32) yaw;
|
||||
D_80383390->pitch = 0.0f;
|
||||
D_80383390->roll = 0.0f;
|
||||
D_80383390->unk6C = 0.0f;
|
||||
D_80383390->unk28 = 0.0f;
|
||||
D_80383390->unk10_12 = 0;
|
||||
D_80383390->unk38_0 = 0;
|
||||
D_80383390->unk38_31 = 0;
|
||||
D_80383390->unk58_0 = 1;
|
||||
D_80383390->unk40 = 0;
|
||||
D_80383390->unk44_31 = 0;
|
||||
D_80383390->despawn_flag = 0;
|
||||
D_80383390->unk44_14 = -1;
|
||||
D_80383390->unk48 = 0.0f;
|
||||
D_80383390->unk4C = 100.0f;
|
||||
D_80383390->unk10_1 = 1;
|
||||
D_80383390->unkF4_30 = 0;
|
||||
D_80383390->unkF4_29 = 0;
|
||||
D_80383390->scale = 1.0f;
|
||||
D_80383390->unk124_7 = 0;
|
||||
D_80383390->unk124_6 = 1;
|
||||
D_80383390->modelCacheIndex = actorInfo->actorId;
|
||||
D_80383390->unk44_2 = func_80326C18();
|
||||
D_80383390->marker = func_8032F9DC(position, actorInfo->draw_func, (func_8033B64C(actorInfo->modelId) == 1) ? 0 : 1, actorInfo->markerId, (flags & 0x400) ? 1 : 0);
|
||||
D_80383390->marker->unk3E_0 = 1;
|
||||
D_80383390->unk138_28 = 1;
|
||||
D_80383390->unk10_3 = -1;
|
||||
D_80383390->unk10_4 = 0;
|
||||
D_80383390->unk10_8 = 0;
|
||||
D_80383390->unk10_7 = 0;
|
||||
D_80383390->unk10_6 = 0;
|
||||
D_80383390->unk54 = 0.0f;
|
||||
D_80383390->unk58_31 = 0;
|
||||
D_80383390->unk5C = 0.0f;
|
||||
D_80383390->unkF4_31 = 0;
|
||||
D_80383390->unk138_30 = 0;
|
||||
D_80383390->unk138_3 = 0;
|
||||
D_80383390->unk38_21 = 0;
|
||||
D_80383390->unk38_13 = 0;
|
||||
D_80383390->unk78_22 = 0;
|
||||
D_80383390->unk78_31 = 0;
|
||||
D_80383390->unk74 = 0.0f;
|
||||
D_80383390->unk70 = 0.0f;
|
||||
D_80383390->unkF4_24 = 0;
|
||||
D_80383390->unk140 = 0.0f;
|
||||
D_80383390->unk144 = 0.0f;
|
||||
D_80383390->unk44_1 = 0;
|
||||
D_80383390->unk44_0 = 0;
|
||||
D_80383390->initialized = FALSE;
|
||||
D_80383390->unk16C_4 = 0;
|
||||
D_80383390->unk60 = 0.0f;
|
||||
D_80383390->unk10_0 = 0;
|
||||
D_80383390->unk104 = NULL;
|
||||
D_80383390->unk100 = NULL;
|
||||
D_80383390->unk158[0] = NULL;
|
||||
D_80383390->unk158[1] = NULL;
|
||||
D_80383390->unk78_13 = 0;
|
||||
D_80383390->unk124_31 = 0;
|
||||
D_80383390->unkF4_20 = 0;
|
||||
D_80383390->sound_timer = 0.0f;
|
||||
func_8032FFD4(D_80383390->marker, suBaddieActorArray->cnt - 1);
|
||||
marker_setModelId(D_80383390->marker, actorInfo->modelId);
|
||||
func_803300C8(D_80383390->marker, actorInfo->update_func);
|
||||
func_803300D0(D_80383390->marker, actorInfo->unk10);
|
||||
ml_vec3f_clear(D_80383390->unk1C);
|
||||
ml_vec3f_clear(D_80383390->velocity);
|
||||
ml_vec3f_clear(D_80383390->spawn_position);
|
||||
D_80383390->stored_animctrl_index = 0;
|
||||
D_80383390->unk58_2 = 1;
|
||||
D_80383390->stored_animctrl_playbackType_ = 0;
|
||||
D_80383390->stored_animctrl_forwards = 0;
|
||||
D_80383390->stored_animctrl_smoothTransistion = 0;
|
||||
D_80383390->stored_animctrl_duration = 0.0f;
|
||||
D_80383390->unkEC = 0.0f;
|
||||
D_80383390->unk138_19 = 0;
|
||||
D_80383390->stored_animctrl_subrangeMin = 0.0f;
|
||||
D_80383390->stored_animctrl_subrangeMax = 1.0f;
|
||||
D_80383390->unkF4_22 = 0;
|
||||
D_80383390->unk58_1 = 0;
|
||||
D_80383390->unk138_29 = 0;
|
||||
D_80383390->unk18 = actorInfo->animations;
|
||||
D_80383390->animctrl = NULL;
|
||||
D_80383390->unkEC = 0.0f;
|
||||
D_80383390->unk130 = 0;
|
||||
D_80383390->unk124_5 = 0;
|
||||
D_80383390->unk124_3 = 0;
|
||||
D_80383390->unk138_9 = 0;
|
||||
D_80383390->unk138_8 = 0;
|
||||
D_80383390->unk138_25 = 0;
|
||||
D_80383390->unk16C_3 = 0;
|
||||
D_80383390->unk16C_2 = 0;
|
||||
D_80383390->unk16C_1 = 0;
|
||||
D_80383390->unk16C_0 = 0;
|
||||
D_80383390->unk17C_31 = 0;
|
||||
D_80383390->unk14C[0] = NULL;
|
||||
D_80383390->unk14C[1] = NULL;
|
||||
D_80383390->unk138_27 = 0;
|
||||
D_80383390->unk138_24 = 0;
|
||||
D_80383390->unk138_23 = 0;
|
||||
D_80383390->unk138_22 = 0;
|
||||
D_80383390->unk138_21 = 0;
|
||||
D_80383390->unk138_20 = 0;
|
||||
D_80383390->unk174 = 0.0f;
|
||||
D_80383390->unk178 = 0.0f;
|
||||
suLastBaddie = &suBaddieActorArray->data[suBaddieActorArray->cnt - 1];
|
||||
|
||||
suLastBaddie->actor_info = actorInfo;
|
||||
suLastBaddie->unk10_25 = 0;
|
||||
suLastBaddie->unk10_18 = 0;
|
||||
suLastBaddie->state = actorInfo->startAnimation;
|
||||
suLastBaddie->position_x = (f32)position[0];
|
||||
suLastBaddie->position_y = (f32)position[1];
|
||||
suLastBaddie->position_z = (f32)position[2];
|
||||
suLastBaddie->unkF4_8 = 0;
|
||||
suLastBaddie->yaw = (f32) yaw;
|
||||
suLastBaddie->yaw_ideal = (f32) yaw;
|
||||
suLastBaddie->pitch = 0.0f;
|
||||
suLastBaddie->roll = 0.0f;
|
||||
suLastBaddie->unk6C = 0.0f;
|
||||
suLastBaddie->unk28 = 0.0f;
|
||||
suLastBaddie->unk10_12 = 0;
|
||||
suLastBaddie->unk38_0 = 0;
|
||||
suLastBaddie->unk38_31 = 0;
|
||||
suLastBaddie->unk58_0 = 1;
|
||||
suLastBaddie->unk40 = 0;
|
||||
suLastBaddie->unk44_31 = 0;
|
||||
suLastBaddie->despawn_flag = 0;
|
||||
suLastBaddie->unk44_14 = -1;
|
||||
suLastBaddie->unk48 = 0.0f;
|
||||
suLastBaddie->unk4C = 100.0f;
|
||||
suLastBaddie->unk10_1 = 1;
|
||||
suLastBaddie->unkF4_30 = 0;
|
||||
suLastBaddie->unkF4_29 = 0;
|
||||
suLastBaddie->scale = 1.0f;
|
||||
suLastBaddie->unk124_7 = 0;
|
||||
suLastBaddie->unk124_6 = 1;
|
||||
suLastBaddie->modelCacheIndex = actorInfo->actorId;
|
||||
suLastBaddie->unk44_2 = func_80326C18();
|
||||
suLastBaddie->marker = func_8032F9DC(position, actorInfo->draw_func, (func_8033B64C(actorInfo->modelId) == 1) ? 0 : 1, actorInfo->markerId, (flags & 0x400) ? 1 : 0);
|
||||
suLastBaddie->marker->unk3E_0 = 1;
|
||||
suLastBaddie->unk138_28 = 1;
|
||||
suLastBaddie->unk10_3 = -1;
|
||||
suLastBaddie->unk10_4 = 0;
|
||||
suLastBaddie->unk10_8 = 0;
|
||||
suLastBaddie->unk10_7 = 0;
|
||||
suLastBaddie->unk10_6 = 0;
|
||||
suLastBaddie->unk54 = 0.0f;
|
||||
suLastBaddie->unk58_31 = 0;
|
||||
suLastBaddie->unk5C = 0.0f;
|
||||
suLastBaddie->unkF4_31 = 0;
|
||||
suLastBaddie->unk138_30 = 0;
|
||||
suLastBaddie->unk138_3 = 0;
|
||||
suLastBaddie->unk38_21 = 0;
|
||||
suLastBaddie->unk38_13 = 0;
|
||||
suLastBaddie->unk78_22 = 0;
|
||||
suLastBaddie->unk78_31 = 0;
|
||||
suLastBaddie->unk74 = 0.0f;
|
||||
suLastBaddie->unk70 = 0.0f;
|
||||
suLastBaddie->unkF4_24 = 0;
|
||||
suLastBaddie->unk140 = 0.0f;
|
||||
suLastBaddie->unk144 = 0.0f;
|
||||
suLastBaddie->unk44_1 = 0;
|
||||
suLastBaddie->unk44_0 = 0;
|
||||
suLastBaddie->initialized = FALSE;
|
||||
suLastBaddie->unk16C_4 = 0;
|
||||
suLastBaddie->unk60 = 0.0f;
|
||||
suLastBaddie->unk10_0 = 0;
|
||||
suLastBaddie->unk104 = NULL;
|
||||
suLastBaddie->unk100 = NULL;
|
||||
suLastBaddie->unk158[0] = NULL;
|
||||
suLastBaddie->unk158[1] = NULL;
|
||||
suLastBaddie->unk78_13 = 0;
|
||||
suLastBaddie->unk124_31 = 0;
|
||||
suLastBaddie->unkF4_20 = 0;
|
||||
suLastBaddie->sound_timer = 0.0f;
|
||||
func_8032FFD4(suLastBaddie->marker, suBaddieActorArray->cnt - 1);
|
||||
marker_setModelId(suLastBaddie->marker, actorInfo->modelId);
|
||||
func_803300C8(suLastBaddie->marker, actorInfo->update_func);
|
||||
func_803300D0(suLastBaddie->marker, actorInfo->unk10);
|
||||
ml_vec3f_clear(suLastBaddie->unk1C);
|
||||
ml_vec3f_clear(suLastBaddie->velocity);
|
||||
ml_vec3f_clear(suLastBaddie->spawn_position);
|
||||
suLastBaddie->stored_animctrl_index = 0;
|
||||
suLastBaddie->unk58_2 = 1;
|
||||
suLastBaddie->stored_animctrl_playbackType_ = 0;
|
||||
suLastBaddie->stored_animctrl_forwards = 0;
|
||||
suLastBaddie->stored_animctrl_smoothTransistion = 0;
|
||||
suLastBaddie->stored_animctrl_duration = 0.0f;
|
||||
suLastBaddie->unkEC = 0.0f;
|
||||
suLastBaddie->unk138_19 = 0;
|
||||
suLastBaddie->stored_animctrl_subrangeMin = 0.0f;
|
||||
suLastBaddie->stored_animctrl_subrangeMax = 1.0f;
|
||||
suLastBaddie->unkF4_22 = 0;
|
||||
suLastBaddie->unk58_1 = 0;
|
||||
suLastBaddie->unk138_29 = 0;
|
||||
suLastBaddie->unk18 = actorInfo->animations;
|
||||
suLastBaddie->animctrl = NULL;
|
||||
suLastBaddie->unkEC = 0.0f;
|
||||
suLastBaddie->unk130 = 0;
|
||||
suLastBaddie->unk124_5 = 0;
|
||||
suLastBaddie->unk124_3 = 0;
|
||||
suLastBaddie->unk138_9 = 0;
|
||||
suLastBaddie->unk138_8 = 0;
|
||||
suLastBaddie->unk138_25 = 0;
|
||||
suLastBaddie->unk16C_3 = 0;
|
||||
suLastBaddie->unk16C_2 = 0;
|
||||
suLastBaddie->unk16C_1 = 0;
|
||||
suLastBaddie->unk16C_0 = 0;
|
||||
suLastBaddie->unk17C_31 = 0;
|
||||
suLastBaddie->unk14C[0] = NULL;
|
||||
suLastBaddie->unk14C[1] = NULL;
|
||||
suLastBaddie->unk138_27 = 0;
|
||||
suLastBaddie->unk138_24 = 0;
|
||||
suLastBaddie->unk138_23 = 0;
|
||||
suLastBaddie->unk138_22 = 0;
|
||||
suLastBaddie->unk138_21 = 0;
|
||||
suLastBaddie->unk138_20 = 0;
|
||||
suLastBaddie->unk174 = 0.0f;
|
||||
suLastBaddie->unk178 = 0.0f;
|
||||
if( actorInfo->animations){
|
||||
sp54 = &D_80383390->unk18[D_80383390->state];
|
||||
sp54 = &suLastBaddie->unk18[suLastBaddie->state];
|
||||
if(sp54->index != 0){
|
||||
D_80383390->animctrl = animctrl_new(0);
|
||||
animctrl_reset(D_80383390->animctrl);
|
||||
animctrl_setIndex(D_80383390->animctrl, sp54->index);
|
||||
animctrl_setDuration(D_80383390->animctrl, sp54->duration);
|
||||
animctrl_start(D_80383390->animctrl, "subaddie.c", 0x4A5);
|
||||
suLastBaddie->animctrl = animctrl_new(0);
|
||||
animctrl_reset(suLastBaddie->animctrl);
|
||||
animctrl_setIndex(suLastBaddie->animctrl, sp54->index);
|
||||
animctrl_setDuration(suLastBaddie->animctrl, sp54->duration);
|
||||
animctrl_start(suLastBaddie->animctrl, "subaddie.c", 0x4A5);
|
||||
}
|
||||
}//L80327BA8
|
||||
D_80383390->unk124_11 = 0;
|
||||
D_80383390->alpha_124_19 = 0xff;
|
||||
D_80383390->depth_mode = MODEL_RENDER_DEPTH_FULL;
|
||||
D_80383390->unk124_0 = D_80383390->unk138_31 = 1;
|
||||
suLastBaddie->unk124_11 = 0;
|
||||
suLastBaddie->alpha_124_19 = 0xff;
|
||||
suLastBaddie->depth_mode = MODEL_RENDER_DEPTH_FULL;
|
||||
suLastBaddie->unk124_0 = suLastBaddie->unk138_31 = 1;
|
||||
for(i = 0; i < 0x10; i++){
|
||||
((s32 *)D_80383390->unk7C)[i] = 0;
|
||||
((s32 *)suLastBaddie->unk7C)[i] = 0;
|
||||
}
|
||||
for(i = 0; i < 0x0C; i++){
|
||||
((s32 *)D_80383390->unkBC)[i] = 0;
|
||||
((s32 *)suLastBaddie->unkBC)[i] = 0;
|
||||
}
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_0){
|
||||
D_80383390->unk10_25 = func_80306DDC(position) + 1;
|
||||
if(D_80383390->unk10_25 == 0){
|
||||
D_80383390->unk10_25 = 0;
|
||||
suLastBaddie->unk10_25 = func_80306DDC(position) + 1;
|
||||
if(suLastBaddie->unk10_25 == 0){
|
||||
suLastBaddie->unk10_25 = 0;
|
||||
}else{
|
||||
sp44[0] = (f32)position[0];
|
||||
sp44[1] = (f32)position[1];
|
||||
sp44[2] = (f32)position[2];
|
||||
D_80383390->unk10_18 = func_80307258(&sp44, D_80383390->unk10_25 - 1, 0) + 1;
|
||||
suLastBaddie->unk10_18 = func_80307258(&sp44, suLastBaddie->unk10_25 - 1, 0) + 1;
|
||||
}
|
||||
}//L80327D30
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_2){
|
||||
D_80383390->unk10_1 = 0;
|
||||
suLastBaddie->unk10_1 = 0;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_3){
|
||||
D_80383390->unkF4_30 = 1;
|
||||
suLastBaddie->unkF4_30 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_1){
|
||||
D_80383390->marker->unk44 = 1;
|
||||
suLastBaddie->marker->unk44 = 1;
|
||||
}
|
||||
else if(flags & ACTOR_FLAG_UNKNOWN_6){
|
||||
D_80383390->marker->unk44 = func_8034A2C8();
|
||||
suLastBaddie->marker->unk44 = func_8034A2C8();
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_12){
|
||||
func_8033F738(D_80383390->marker);
|
||||
func_8034BFF8(D_80383390->marker);
|
||||
func_8033F738(suLastBaddie->marker);
|
||||
func_8034BFF8(suLastBaddie->marker);
|
||||
}
|
||||
|
||||
D_80383390->unk148 = 0;
|
||||
suLastBaddie->unk148 = 0;
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_11){
|
||||
D_80383390->unk148 = skeletalAnim_new();
|
||||
suLastBaddie->unk148 = skeletalAnim_new();
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_14){
|
||||
D_80383390->marker->unk50 = func_803406B0();
|
||||
suLastBaddie->marker->unk50 = func_803406B0();
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_4){
|
||||
D_80383390->unk124_31 = -1;
|
||||
suLastBaddie->unk124_31 = -1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_7){
|
||||
D_80383390->unkF4_22 = 1;
|
||||
suLastBaddie->unkF4_22 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_19){
|
||||
D_80383390->unk58_1 = 1;
|
||||
suLastBaddie->unk58_1 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_8){
|
||||
D_80383390->unk130 = func_803255FC;
|
||||
suLastBaddie->unk130 = func_803255FC;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_9){
|
||||
D_80383390->marker->unk40_21 = 1;
|
||||
suLastBaddie->marker->unk40_21 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_15){
|
||||
D_80383390->marker->unk40_20 = 1;
|
||||
suLastBaddie->marker->unk40_20 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_17){
|
||||
D_80383390->marker->unk40_22 = 1;
|
||||
suLastBaddie->marker->unk40_22 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_22){
|
||||
D_80383390->marker->unk40_19 = 1;
|
||||
suLastBaddie->marker->unk40_19 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_16){
|
||||
D_80383390->unk138_9 = 1;
|
||||
suLastBaddie->unk138_9 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_18){
|
||||
D_80383390->unk138_8 = 1;
|
||||
suLastBaddie->unk138_8 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_21){
|
||||
D_80383390->unk138_25 = 1;
|
||||
suLastBaddie->unk138_25 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_23){
|
||||
D_80383390->unk16C_3 = 1;
|
||||
suLastBaddie->unk16C_3 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_24){
|
||||
D_80383390->unk16C_2 = 1;
|
||||
suLastBaddie->unk16C_2 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_25){
|
||||
D_80383390->unk16C_1 = 1;
|
||||
suLastBaddie->unk16C_1 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_26){
|
||||
D_80383390->unk17C_31 = 1;
|
||||
suLastBaddie->unk17C_31 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_13){
|
||||
D_80383390->unk138_29 = 1;
|
||||
suLastBaddie->unk138_29 = 1;
|
||||
}
|
||||
|
||||
if(flags & ACTOR_FLAG_UNKNOWN_20){
|
||||
D_80383390->unk58_2 = 0;
|
||||
suLastBaddie->unk58_2 = 0;
|
||||
}
|
||||
|
||||
D_80383390->unk154 = 0x005e0000;
|
||||
D_80383390->marker->unk54 = func_8032B5C0;
|
||||
suLastBaddie->unk154 = 0x005e0000;
|
||||
suLastBaddie->marker->unk54 = func_8032B5C0;
|
||||
|
||||
|
||||
for(i = 0; i < 3; ++i){
|
||||
D_80383390->unk164[i] = 0x63;
|
||||
suLastBaddie->unk164[i] = 0x63;
|
||||
}
|
||||
|
||||
D_80383390->unk170 = -10.0f;
|
||||
D_80383390->unk138_7 = 0;
|
||||
D_80383390->unk3C = flags;
|
||||
return D_80383390;
|
||||
suLastBaddie->unk170 = -10.0f;
|
||||
suLastBaddie->unk138_7 = 0;
|
||||
suLastBaddie->unk3C = flags;
|
||||
|
||||
return suLastBaddie;
|
||||
}
|
||||
|
||||
static void __actor_free(ActorMarker *arg0, Actor *arg1){
|
||||
|
@@ -29,7 +29,7 @@ void func_80334540(Gfx** gdl, Mtx **mptr, Vtx **vptr) {
|
||||
f32 sp40;
|
||||
|
||||
if (D_803835E0 == 0) {
|
||||
func_80254084(gdl, 0, 0, framebuffer_width, framebuffer_height, 0, 0, 0);
|
||||
drawRectangle2D(gdl, 0, 0, framebuffer_width, framebuffer_height, 0, 0, 0);
|
||||
func_802BBD2C(&sp44, &sp40);
|
||||
viewport_set_near_far(sp44, sp40);
|
||||
func_8024C904(gdl, mptr);
|
||||
|
@@ -2,53 +2,53 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
void func_8033EF08(void);
|
||||
void func_8033EF10(void);
|
||||
void dummy_func_8033EF08(void);
|
||||
void dummy_func_8033EF10(void);
|
||||
|
||||
/* .data */
|
||||
void *D_80371E60 = NULL;
|
||||
void *gUnusedBlock = NULL;
|
||||
|
||||
/* .code */
|
||||
void func_8033EED0(void){
|
||||
func_8033EF10();
|
||||
func_8033EF08();
|
||||
void dummy_func_8033EED0(void){
|
||||
dummy_func_8033EF10();
|
||||
dummy_func_8033EF08();
|
||||
}
|
||||
|
||||
void func_8033EEF8(void){}
|
||||
void dummy_func_8033EEF8(void){}
|
||||
|
||||
void func_8033EF00(void){}
|
||||
void dummy_func_8033EF00(void){}
|
||||
|
||||
void func_8033EF08(void){}
|
||||
void dummy_func_8033EF08(void){}
|
||||
|
||||
void func_8033EF10(void){}
|
||||
void dummy_func_8033EF10(void){}
|
||||
|
||||
void func_8033EF18(s32 arg0, s32 arg1){
|
||||
void dummy_func_8033EF18(s32 arg0, s32 arg1){
|
||||
return;
|
||||
}
|
||||
|
||||
void func_8033EF24(void){
|
||||
if(D_80371E60){
|
||||
free(D_80371E60);
|
||||
void unallocUnusedBlock(void){
|
||||
if(gUnusedBlock){
|
||||
free(gUnusedBlock);
|
||||
}
|
||||
D_80371E60 = NULL;
|
||||
gUnusedBlock = NULL;
|
||||
}
|
||||
|
||||
void func_8033EF58(void){
|
||||
D_80371E60 = malloc(0x50);
|
||||
void allocUnusedBlock(void){
|
||||
gUnusedBlock = malloc(80);
|
||||
}
|
||||
|
||||
void func_8033EF7C(s32 arg0){
|
||||
void dummy_func_8033EF7C(s32 arg0){
|
||||
return;
|
||||
}
|
||||
|
||||
void func_8033EF84(void){}
|
||||
void dummy_func_8033EF84(void){}
|
||||
|
||||
void func_8033EF8C(void){}
|
||||
void dummy_func_8033EF8C(void){}
|
||||
|
||||
void func_8033EF94(s32 arg0){
|
||||
void dummy_func_8033EF94(s32 arg0){
|
||||
return;
|
||||
}
|
||||
|
||||
void func_8033EF9C(s32 arg0){
|
||||
void dummy_func_8033EF9C(s32 arg0){
|
||||
return;
|
||||
}
|
||||
|
@@ -282,7 +282,7 @@ void func_80295C14(void){
|
||||
stateTimer_update();
|
||||
func_8029E100();
|
||||
pfsManager_update();//controller_update
|
||||
func_8023E06C();
|
||||
disableInput_set();
|
||||
func_80295448();
|
||||
func_8029B174();
|
||||
func_8029533C(); //dive_cooldown_update
|
||||
|
@@ -209,7 +209,7 @@ void fxcommon3score_draw(enum item_e item_id, void *arg1, Gfx **gfx, Mtx **mtx,
|
||||
if(a1->unk6C == 0.0f){
|
||||
a1->unk6C = 1.1*(vtxList_getGlobalNorm(model_getVtxList(a1->model)) * a1->unk3C);
|
||||
}
|
||||
func_80253208(gfx, a1->unk30 - a1->unk6C, sp40 - a1->unk6C, 2*a1->unk6C, 2*a1->unk6C, D_803A5D00[func_8024BDA0()]);
|
||||
func_80253208(gfx, a1->unk30 - a1->unk6C, sp40 - a1->unk6C, 2*a1->unk6C, 2*a1->unk6C, D_803A5D00[getActiveFramebuffer()]);
|
||||
if(a1->anim_ctrl != NULL){
|
||||
animctrl_drawSetup(a1->anim_ctrl, sp5C, 1);
|
||||
}
|
||||
|
@@ -76,7 +76,7 @@ void sky_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
|
||||
viewport_set_near_far(5.0f, 15000.0f);
|
||||
if(gcSky.model_bins[0]){
|
||||
func_80254084(gfx, 0, 0, (s32)(f32) framebuffer_width, (s32)(f32)framebuffer_height,0, 0, 0); //fill screen with black
|
||||
drawRectangle2D(gfx, 0, 0, (s32)(f32) framebuffer_width, (s32)(f32)framebuffer_height,0, 0, 0); //fill screen with black
|
||||
func_8024C904(gfx, mtx);
|
||||
viewport_get_position_vec3f(position);
|
||||
for(i = 0; i < 3; i++){
|
||||
@@ -90,7 +90,7 @@ void sky_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
}
|
||||
}
|
||||
else{//L8030B200
|
||||
func_80254084(gfx, 0, 0, (s32)(f32) framebuffer_width, (s32)(f32)framebuffer_height, 0, 0, 0);
|
||||
drawRectangle2D(gfx, 0, 0, (s32)(f32) framebuffer_width, (s32)(f32)framebuffer_height, 0, 0, 0);
|
||||
}//L8030B254
|
||||
}
|
||||
|
||||
|
@@ -98,64 +98,64 @@ void func_8038EB90(ActorMarker *arg0, f32 *arg1) {
|
||||
temp_v0->position_y = temp_v0->position_y + 210.0f;
|
||||
}
|
||||
|
||||
void func_8038EBE0(f32 arg0[3], u32 arg1, enum asset_e arg2, f32 arg3[6], f32 arg4[6], f32 arg5[6], f32 arg6[4], f32 arg7[4], f32 arg8[2]) {
|
||||
ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg1);
|
||||
void chSpellFireball_emitSparkles(f32 position[3], u32 count, enum asset_e sprite, f32 position_range[6], f32 acceleration_range[6], f32 velocity_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) {
|
||||
ParticleEmitter *pe = partEmitMgr_newEmitter(count);
|
||||
|
||||
particleEmitter_setSprite(temp_v0, arg2);
|
||||
particleEmitter_setStartingFrameRange(temp_v0, 1, 6);
|
||||
particleEmitter_setPosition(temp_v0, arg0);
|
||||
particleEmitter_setParticleSpawnPositionRange(temp_v0, arg3[0], arg3[1], arg3[2], arg3[3], arg3[4], arg3[5]);
|
||||
particleEmitter_setParticleAccelerationRange(temp_v0, arg4[0], arg4[1], arg4[2], arg4[3], arg4[4], arg4[5]);
|
||||
particleEmitter_setParticleVelocityRange(temp_v0, arg5[0], arg5[1], arg5[2], arg5[3], arg5[4], arg5[5]);
|
||||
particleEmitter_setAngularVelocityRange(temp_v0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
|
||||
func_802EFB70(temp_v0, arg6[0], arg6[1]);
|
||||
func_802EFB84(temp_v0, arg6[2], arg6[3]);
|
||||
func_802EF9F8(temp_v0, 0.5f);
|
||||
func_802EFA18(temp_v0, 3);
|
||||
particleEmitter_setSpawnIntervalRange(temp_v0, arg7[0], arg7[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(temp_v0, arg7[2], arg7[3]);
|
||||
particleEmitter_setFade(temp_v0, arg8[0], arg8[1]);
|
||||
func_802EFA78(temp_v0, 1);
|
||||
particleEmitter_setDrawMode(temp_v0, 4);
|
||||
particleEmitter_emitN(temp_v0, arg1);
|
||||
particleEmitter_setSprite(pe, sprite);
|
||||
particleEmitter_setStartingFrameRange(pe, 1, 6);
|
||||
particleEmitter_setPosition(pe, position);
|
||||
particleEmitter_setParticleSpawnPositionRange(pe, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]);
|
||||
particleEmitter_setParticleAccelerationRange(pe, acceleration_range[0], acceleration_range[1], acceleration_range[2], acceleration_range[3], acceleration_range[4], acceleration_range[5]);
|
||||
particleEmitter_setParticleVelocityRange(pe, velocity_range[0], velocity_range[1], velocity_range[2], velocity_range[3], velocity_range[4], velocity_range[5]);
|
||||
particleEmitter_setAngularVelocityRange(pe, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
|
||||
func_802EFB70(pe, scale_range[0], scale_range[1]);
|
||||
func_802EFB84(pe, scale_range[2], scale_range[3]);
|
||||
func_802EF9F8(pe, 0.5f);
|
||||
func_802EFA18(pe, 3);
|
||||
particleEmitter_setSpawnIntervalRange(pe, lifetime_range[0], lifetime_range[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(pe, lifetime_range[2], lifetime_range[3]);
|
||||
particleEmitter_setFade(pe, fade[0], fade[1]);
|
||||
func_802EFA78(pe, 1);
|
||||
particleEmitter_setDrawMode(pe, 4);
|
||||
particleEmitter_emitN(pe, count);
|
||||
}
|
||||
|
||||
void func_8038ED9C(f32 arg0[3], u32 arg1, s32 arg2, s32 arg3[2], f32 arg4[6], f32 arg5[4], f32 arg6[4], f32 arg7[2]) {
|
||||
ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg2);
|
||||
void chSpellFireball_emitExplosion(f32 position[3], enum asset_e sprite, s32 count, s32 staring_frame_range[2], f32 position_range[6], f32 scale_range[4], f32 lifetime_range[4], f32 fade[2]) {
|
||||
ParticleEmitter *pe = partEmitMgr_newEmitter(count);
|
||||
|
||||
particleEmitter_setSprite(temp_v0, arg1);
|
||||
particleEmitter_setStartingFrameRange(temp_v0, arg3[0], arg3[1]);
|
||||
particleEmitter_setParticleFramerateRange(temp_v0, 8.0f, 8.0f);
|
||||
particleEmitter_setPosition(temp_v0, arg0);
|
||||
particleEmitter_setParticleSpawnPositionRange(temp_v0, arg4[0], arg4[1], arg4[2], arg4[3], arg4[4], arg4[5]);
|
||||
particleEmitter_setParticleVelocityRange(temp_v0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
func_802EFB70(temp_v0, arg5[0], arg5[1]);
|
||||
func_802EFB84(temp_v0, arg5[2], arg5[3]);
|
||||
particleEmitter_setSpawnIntervalRange(temp_v0, arg6[0], arg6[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(temp_v0, arg6[2], arg6[3]);
|
||||
particleEmitter_setFade(temp_v0, arg7[0], arg7[1]);
|
||||
particleEmitter_setDrawMode(temp_v0, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(temp_v0, 1);
|
||||
particleEmitter_emitN(temp_v0, arg2);
|
||||
particleEmitter_setSprite(pe, sprite);
|
||||
particleEmitter_setStartingFrameRange(pe, staring_frame_range[0], staring_frame_range[1]);
|
||||
particleEmitter_setParticleFramerateRange(pe, 8.0f, 8.0f);
|
||||
particleEmitter_setPosition(pe, position);
|
||||
particleEmitter_setParticleSpawnPositionRange(pe, position_range[0], position_range[1], position_range[2], position_range[3], position_range[4], position_range[5]);
|
||||
particleEmitter_setParticleVelocityRange(pe, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
func_802EFB70(pe, scale_range[0], scale_range[1]);
|
||||
func_802EFB84(pe, scale_range[2], scale_range[3]);
|
||||
particleEmitter_setSpawnIntervalRange(pe, lifetime_range[0], lifetime_range[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(pe, lifetime_range[2], lifetime_range[3]);
|
||||
particleEmitter_setFade(pe, fade[0], fade[1]);
|
||||
particleEmitter_setDrawMode(pe, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(pe, 1);
|
||||
particleEmitter_emitN(pe, count);
|
||||
}
|
||||
|
||||
void func_8038EEFC(f32 arg0[3], u32 arg1, f32 *arg2) {
|
||||
ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg1);
|
||||
void chSpellFireball_emitSmoke(f32 position[3], u32 count, f32 *lifetime_and_spawn_range) {
|
||||
ParticleEmitter *pe = partEmitMgr_newEmitter(count);
|
||||
|
||||
particleEmitter_setSprite(temp_v0, ASSET_70E_SPRITE_SMOKE_2);
|
||||
particleEmitter_setRGB(temp_v0, D_80391B48);
|
||||
particleEmitter_setAlpha(temp_v0, 0xEB);
|
||||
particleEmitter_setStartingFrameRange(temp_v0, 0, 7);
|
||||
particleEmitter_setPosition(temp_v0, arg0);
|
||||
particleEmitter_setPositionAndVelocityRanges(temp_v0, &D_80391B54);
|
||||
func_802EFB70(temp_v0, 0.1f, 0.2f);
|
||||
func_802EFB84(temp_v0, 3.6f, 4.6f);
|
||||
particleEmitter_setSpawnIntervalRange(temp_v0, arg2[0], arg2[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(temp_v0, arg2[2], arg2[3]);
|
||||
particleEmitter_setFade(temp_v0, 0.05f, 0.1f);
|
||||
particleEmitter_setDrawMode(temp_v0, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(temp_v0, 1);
|
||||
particleEmitter_emitN(temp_v0, arg1);
|
||||
particleEmitter_setSprite(pe, ASSET_70E_SPRITE_SMOKE_2);
|
||||
particleEmitter_setRGB(pe, D_80391B48);
|
||||
particleEmitter_setAlpha(pe, 0xEB);
|
||||
particleEmitter_setStartingFrameRange(pe, 0, 7);
|
||||
particleEmitter_setPosition(pe, position);
|
||||
particleEmitter_setPositionAndVelocityRanges(pe, &D_80391B54);
|
||||
func_802EFB70(pe, 0.1f, 0.2f);
|
||||
func_802EFB84(pe, 3.6f, 4.6f);
|
||||
particleEmitter_setSpawnIntervalRange(pe, lifetime_and_spawn_range[0], lifetime_and_spawn_range[1]);
|
||||
particleEmitter_setParticleLifeTimeRange(pe, lifetime_and_spawn_range[2], lifetime_and_spawn_range[3]);
|
||||
particleEmitter_setFade(pe, 0.05f, 0.1f);
|
||||
particleEmitter_setDrawMode(pe, PART_EMIT_NO_DEPTH);
|
||||
func_802EFA78(pe, 1);
|
||||
particleEmitter_emitN(pe, count);
|
||||
}
|
||||
|
||||
void func_8038F01C(void) {
|
||||
@@ -184,31 +184,31 @@ void func_8038F084(ActorMarker *marker){
|
||||
actor->unk58_0 = 0;
|
||||
actor->scale *= 1.6;
|
||||
if(actor->marker->unk14_20 != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){
|
||||
func_8038EBE0(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
D_80391C0C, D_80391C24, D_80391C3C,
|
||||
D_80391C54, D_80391C64, D_80391C74
|
||||
);
|
||||
func_8038EBE0(actor->position, 4, ASSET_715_SPRITE_SPARKLE_RED,
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_715_SPRITE_SPARKLE_RED,
|
||||
D_80391C0C, D_80391C24, D_80391C3C,
|
||||
D_80391C54, D_80391C64, D_80391C74
|
||||
);
|
||||
func_8038EEFC(actor->position, 3, D_80391BFC);
|
||||
func_8038ED9C(D_803928E8, ASSET_4A0_SPRITE_EXPLOSION, 1, D_80391BA4, D_80391BE4,
|
||||
chSpellFireball_emitSmoke(actor->position, 3, D_80391BFC);
|
||||
chSpellFireball_emitExplosion(D_803928E8, ASSET_4A0_SPRITE_EXPLOSION, 1, D_80391BA4, D_80391BE4,
|
||||
D_80391BAC, D_80391BBC, D_80391BDC
|
||||
|
||||
);
|
||||
D_803928E8[1] -= 50.0f;
|
||||
func_8038ED9C(D_803928E8, ASSET_6C1_SPRITE_SMOKE, 2, D_80391BA4, D_80391BE4,
|
||||
chSpellFireball_emitExplosion(D_803928E8, ASSET_6C1_SPRITE_SMOKE, 2, D_80391BA4, D_80391BE4,
|
||||
D_80391BAC, D_80391BBC, D_80391BDC
|
||||
|
||||
);
|
||||
}
|
||||
else{//L8038F304
|
||||
func_8038EBE0(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
|
||||
D_80391C0C, D_80391C24, D_80391C3C,
|
||||
D_80391C54, D_80391BCC, D_80391C74
|
||||
);
|
||||
func_8038EEFC(actor->position, 3, D_80391BFC);
|
||||
chSpellFireball_emitSmoke(actor->position, 3, D_80391BFC);
|
||||
func_8038CED8(actor->position, 0x558, 0.15f, 0.5f);
|
||||
actor->position_y += 260.0f;
|
||||
chbossjinjo_spawnParticles(actor, 0x712, ASSET_6C3_SPRITE_SMOKE_GREEN, 1.6f);
|
||||
@@ -313,13 +313,13 @@ void func_8038F620(Actor *this){
|
||||
|
||||
switch(this->marker->unk14_20){
|
||||
case MARKER_25C_GRUNTY_SPELL_FIREBALL://L8038F8AC
|
||||
func_8038ED9C(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1,
|
||||
chSpellFireball_emitExplosion(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1,
|
||||
D_80391CEC, D_80391D34,
|
||||
D_80391CF4, D_80391D04, D_80391D14
|
||||
);
|
||||
break;
|
||||
case MARKER_280_GRUNTY_SPELL_GREEN_ATTACK://L8038F8C8
|
||||
func_8038ED9C(this->position, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1,
|
||||
chSpellFireball_emitExplosion(this->position, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1,
|
||||
D_80391CEC, D_80391D34,
|
||||
D_80391CF4, D_80391D1C, D_80391D2C
|
||||
);
|
||||
|
@@ -16,7 +16,7 @@ extern ActorInfo chJinjonatorBase;
|
||||
extern ActorInfo chSpellBarrier;
|
||||
extern ActorInfo chSpellFireball;
|
||||
extern ActorInfo chSpellGreen;
|
||||
extern ActorInfo chSpriteSmokeGreen2;
|
||||
extern ActorInfo chGreenBlast;
|
||||
extern ActorInfo chJinjonator;
|
||||
extern ActorInfo chBossShadow;
|
||||
|
||||
@@ -26,7 +26,7 @@ u8 pad_fight_80392740[0x10];
|
||||
void fight_func_803863F0(void)
|
||||
{
|
||||
spawnableActorList_add(&chSpellFireball, actor_new, 0X108444);
|
||||
spawnableActorList_add(&chSpriteSmokeGreen2, actor_new, 0X108444);
|
||||
spawnableActorList_add(&chGreenBlast, actor_new, 0X108444);
|
||||
spawnableActorList_add(&chFinalBoss, actor_new, 0X300468);
|
||||
spawnableActorList_add(&chBossJinjoOrange, actor_new, 0X8464);
|
||||
spawnableActorList_add(&chBossJinjoGreen, actor_new, 0X8464);
|
||||
|
@@ -6,49 +6,49 @@ extern void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]);
|
||||
extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32);
|
||||
extern Actor *func_80325CAC(ActorMarker *, Gfx **, Mtx **, Vtx**);
|
||||
|
||||
void chSpriteSmokeGreen2_update(Actor *this);
|
||||
Actor *chSpriteSmokeGreen2_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
|
||||
void chGreenBlast_update(Actor *this);
|
||||
Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
|
||||
|
||||
/* .data */
|
||||
ActorInfo chSpriteSmokeGreen2 = {
|
||||
MARKER_25D_SPRITE_SMOKE_GREEN_2, ACTOR_38A_SPRITE_SMOKE_GREEN_2, ASSET_6C7_SPRITE_SMOKE_GREEN_2,
|
||||
ActorInfo chGreenBlast = {
|
||||
MARKER_25D_GREEN_BLAST, ACTOR_38A_GREEN_BLAST, ASSET_6C7_GREEN_BLAST,
|
||||
0x1, NULL,
|
||||
chSpriteSmokeGreen2_update, func_80326224, chSpriteSmokeGreen2_draw,
|
||||
chGreenBlast_update, func_80326224, chGreenBlast_draw,
|
||||
0, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
f32 D_80391DE4[4] = {0.6f, 1.0f, 1.0f, 1.0f};
|
||||
f32 D_80391DF4[4] = {0.3f, 0.3f, 0.3f, 1.0f};
|
||||
s32 D_80391E04[2] = {1, 9};
|
||||
f32 D_80391E0C[4] = {4.5f, 4.5f, 4.5f, 4.5f};
|
||||
f32 D_80391E1C[4] = {0.0f, 0.0f, 0.85f, 1.35f};
|
||||
f32 fight_D_80391E2C[2] = {0.6f, 0.7f};
|
||||
f32 D_80391E34[6] = {-130.0f, 0.0f, -130.0f, 130.0f, 0.0f, 130.0f};
|
||||
f32 D_80391E4C[4] = {1.1f, 1.1f, 4.0f, 5.4f};
|
||||
s32 chGreenBlastExplosionStartFrameRange[2] = {1, 9};
|
||||
f32 chGreenBlastExplosionScaleRange[4] = {4.5f, 4.5f, 4.5f, 4.5f};
|
||||
f32 chGreenBlastExplosionLifetimeRange[4] = {0.0f, 0.0f, 0.85f, 1.35f};
|
||||
f32 chGreenBlastExplosionFade[2] = {0.6f, 0.7f};
|
||||
f32 chGreenBlastExplosionPositionRange[6] = {-130.0f, 0.0f, -130.0f, 130.0f, 0.0f, 130.0f};
|
||||
f32 chGreenBlastSmokeLifetime[4] = {1.1f, 1.1f, 4.0f, 5.4f};
|
||||
|
||||
f32 D_80391E5C[6] = {-20.0f, 0.0f, -20.0f, 20.0f, 40.0f, 20.0f};
|
||||
f32 fight_D_80391E74[6] = {0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 D_80391E8C[6] = {-420.0f, 410.0f, -420.0f, 480.0f, 860.0f, 480.0f};
|
||||
f32 D_80391EA4[4] = {0.35f, 0.65f, 0.0f, 0.0f};
|
||||
f32 D_80391EB4[4] = {0.0f, 0.01f, 2.0f, 2.3f};
|
||||
f32 D_80391EC4[2] = { 0.0f, 0.35f};
|
||||
f32 chGreenBlastDieSparklesPositionRange[6] = {-20.0f, 0.0f, -20.0f, 20.0f, 40.0f, 20.0f};
|
||||
f32 chGreenBlastDieSparklesAccelerationRange[6] = {0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 chGreenBlastDieSparklesVelocityRange[6] = {-420.0f, 410.0f, -420.0f, 480.0f, 860.0f, 480.0f};
|
||||
f32 chGreenBlastDieSparklesScaleRange[4] = {0.35f, 0.65f, 0.0f, 0.0f};
|
||||
f32 chGreenBlastDieSparklesLifetimeRange[4] = {0.0f, 0.01f, 2.0f, 2.3f};
|
||||
f32 chGreenBlastDieSparklesFade[2] = { 0.0f, 0.35f};
|
||||
|
||||
f32 D_80391ECC[6] = {0.0f, 50.0f, 0.0f, 0.0f, 50.0f, 0.0f};
|
||||
f32 D_80391EE4[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 D_80391EFC[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 D_80391F14[4] = {0.2f, 0.25f, 2.3f, 2.5f};
|
||||
f32 D_80391F24[4] = {0.0f, 0.0f, 0.34f, 0.34f};
|
||||
f32 D_80391F34[2] = {0.7f, 0.8f};
|
||||
f32 chGreenBlast_unused_D_80391ECC[6] = {0.0f, 50.0f, 0.0f, 0.0f, 50.0f, 0.0f};
|
||||
f32 chGreenBlast_unused_D_80391EE4[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 chGreenBlast_unused_D_80391EFC[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
|
||||
f32 chGreenBlast_unused_D_80391F14[4] = {0.2f, 0.25f, 2.3f, 2.5f};
|
||||
f32 chGreenBlast_unused_D_80391F24[4] = {0.0f, 0.0f, 0.34f, 0.34f};
|
||||
f32 chGreenBlast_unused_D_80391F34[2] = {0.7f, 0.8f};
|
||||
|
||||
f32 D_80391F3C[6] = { -50.0f, -50.0f, -50.0f, 50.0f, 50.0f, 50.0f};
|
||||
f32 D_80391F54[6] = { 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 D_80391F6C[6] = { -260.0f, -260.0f, -260.0f, 260.0f, 260.0f, 260.0f};
|
||||
f32 D_80391F84[4] = {0.15f, 0.3f, 0.0f, 0.0f};
|
||||
f32 D_80391F94[4] = {0.0f, 0.01f, 0.7f, 0.8f};
|
||||
f32 D_80391FA4[2] = {0.0f, 0.65f};
|
||||
f32 chGreenBlastSparklesPositionRange[6] = { -50.0f, -50.0f, -50.0f, 50.0f, 50.0f, 50.0f};
|
||||
f32 chGreenBlastSparklesAccelerationRange[6] = { 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f};
|
||||
f32 chGreenBlastSparklesVelocityRange[6] = { -260.0f, -260.0f, -260.0f, 260.0f, 260.0f, 260.0f};
|
||||
f32 chGreenBlastSparklesScaleRange[4] = {0.15f, 0.3f, 0.0f, 0.0f};
|
||||
f32 chGreenBlastSparklesLifetimeRange[4] = {0.0f, 0.01f, 0.7f, 0.8f};
|
||||
f32 chGreenBlastSparklesFade[2] = {0.0f, 0.65f};
|
||||
|
||||
/* .code */
|
||||
Actor *chSpriteSmokeGreen2_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){
|
||||
Actor *chGreenBlast_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){
|
||||
Actor *actor = marker_getActor(marker);
|
||||
func_80344C2C(1);
|
||||
return func_80325CAC(marker, gdl, mptr, arg3);
|
||||
@@ -62,72 +62,82 @@ void func_8038FCBC(void){
|
||||
func_80386654(1.0f, &D_80391DE4, &D_80391DF4);
|
||||
}
|
||||
|
||||
void func_8038FCF0(ActorMarker *marker, ActorMarker *other_marker){
|
||||
void chGreenBlast_collisionDie(ActorMarker *marker, ActorMarker *other_marker){
|
||||
Actor *actor = marker_getActor(marker);
|
||||
f32 sp38[3];
|
||||
sp38[0] = actor->position_x;
|
||||
sp38[1] = actor->position_y;
|
||||
sp38[2] = actor->position_z;
|
||||
sp38[1] += 160.0f;
|
||||
f32 explosion_position[3];
|
||||
|
||||
explosion_position[0] = actor->position_x;
|
||||
explosion_position[1] = actor->position_y;
|
||||
explosion_position[2] = actor->position_z;
|
||||
explosion_position[1] += 160.0f;
|
||||
|
||||
FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor->position, 1000, 3500);
|
||||
timedFunc_set_0(0.0f, func_8038FC88);
|
||||
timedFunc_set_0(0.3f, func_8038FCBC);
|
||||
func_8038EBE0(actor->position, 4, ASSET_710_SPRITE_SPARKLE_PURPLE,
|
||||
&D_80391E5C, &fight_D_80391E74, &D_80391E8C,
|
||||
&D_80391EA4, &D_80391EB4, &D_80391EC4
|
||||
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_710_SPRITE_SPARKLE_PURPLE,
|
||||
chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange,
|
||||
chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade
|
||||
);
|
||||
func_8038EBE0(actor->position, 4, ASSET_711_SPRITE_SPARKLE_DARK_BLUE,
|
||||
&D_80391E5C, &fight_D_80391E74, &D_80391E8C,
|
||||
&D_80391EA4, &D_80391EB4, &D_80391EC4
|
||||
|
||||
chSpellFireball_emitSparkles(actor->position, 4, ASSET_711_SPRITE_SPARKLE_DARK_BLUE,
|
||||
chGreenBlastDieSparklesPositionRange, chGreenBlastDieSparklesAccelerationRange, chGreenBlastDieSparklesVelocityRange,
|
||||
chGreenBlastDieSparklesScaleRange, chGreenBlastDieSparklesLifetimeRange, chGreenBlastDieSparklesFade
|
||||
);
|
||||
func_8038EEFC(actor->position, 3, &D_80391E4C);
|
||||
func_8038ED9C(&sp38, 0x6C8, 3,
|
||||
&D_80391E04, &D_80391E34,
|
||||
&D_80391E0C, &D_80391E1C, &fight_D_80391E2C
|
||||
|
||||
chSpellFireball_emitSmoke(actor->position, 3, chGreenBlastSmokeLifetime);
|
||||
|
||||
chSpellFireball_emitExplosion(&explosion_position, 0x6C8, 3,
|
||||
chGreenBlastExplosionStartFrameRange, chGreenBlastExplosionPositionRange,
|
||||
chGreenBlastExplosionScaleRange, chGreenBlastExplosionLifetimeRange, chGreenBlastExplosionFade
|
||||
);
|
||||
|
||||
marker_despawn(actor->marker);
|
||||
}
|
||||
|
||||
void chSpriteSmokeGreen2_update(Actor *this){
|
||||
f32 sp54 = time_getDelta();
|
||||
f32 sp48[3];
|
||||
void chGreenBlast_update(Actor *this){
|
||||
f32 delta_time = time_getDelta();
|
||||
f32 target_position[3];
|
||||
|
||||
if(!this->unk16C_4){
|
||||
if (!this->unk16C_4) {
|
||||
this->unk16C_4 = 1;
|
||||
marker_setCollisionScripts(this->marker, NULL, NULL, func_8038FCF0);
|
||||
marker_setCollisionScripts(this->marker, NULL, NULL, chGreenBlast_collisionDie);
|
||||
this->marker->propPtr->unk8_3 = 0;
|
||||
actor_collisionOn(this);
|
||||
this->unk60 = 10.0f;
|
||||
this->scale = (f64)this->scale + this->scale;
|
||||
}//L8038FF18
|
||||
this->roll += 20.0f;
|
||||
if(globalTimer_getTime()%4 == 1){
|
||||
if(randf() < 0.5){
|
||||
func_8038EBE0(this->position, 4, ASSET_718_SPRITE_SPARKLE_WHITE_2,
|
||||
&D_80391F3C, &D_80391F54, &D_80391F6C,
|
||||
&D_80391F84, &D_80391F94, &D_80391FA4
|
||||
);
|
||||
}
|
||||
else{//L8038FFE0
|
||||
func_8038EBE0(this->position, 4, ASSET_719_SPRITE_SPARKLE_GREEN_2,
|
||||
&D_80391F3C, &D_80391F54, &D_80391F6C,
|
||||
&D_80391F84, &D_80391F94, &D_80391FA4
|
||||
);
|
||||
}
|
||||
}//L80390020
|
||||
player_getPosition(sp48);
|
||||
sp48[1] += 50.0f;
|
||||
func_80387470(this, sp48, this->unk1C[0], this->unk1C[1], 0.0f, 1400.0f, 70.0f);
|
||||
|
||||
if(func_8028F25C()){
|
||||
func_8038FCF0(this->marker, 0);
|
||||
}
|
||||
else{
|
||||
if(0.0 <= this->unk60){
|
||||
this->unk60 -= sp54;
|
||||
|
||||
this->roll += 20.0f;
|
||||
|
||||
if (globalTimer_getTime() % 4 == 1) {
|
||||
if (randf() < 0.5) {
|
||||
chSpellFireball_emitSparkles(this->position, 4, ASSET_718_SPRITE_SPARKLE_WHITE_2,
|
||||
chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange,
|
||||
chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade
|
||||
);
|
||||
}
|
||||
else{
|
||||
func_8038FCF0(this->marker, 0);
|
||||
else {
|
||||
chSpellFireball_emitSparkles(this->position, 4, ASSET_719_SPRITE_SPARKLE_GREEN_2,
|
||||
chGreenBlastSparklesPositionRange, chGreenBlastSparklesAccelerationRange, chGreenBlastSparklesVelocityRange,
|
||||
chGreenBlastSparklesScaleRange, chGreenBlastSparklesLifetimeRange, chGreenBlastSparklesFade
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
player_getPosition(target_position);
|
||||
target_position[1] += 50.0f;
|
||||
func_80387470(this, target_position, this->unk1C[0], this->unk1C[1], 0.0f, 1400.0f, 70.0f);
|
||||
|
||||
if (func_8028F25C()) {
|
||||
chGreenBlast_collisionDie(this->marker, 0);
|
||||
}
|
||||
else {
|
||||
if(0.0 <= this->unk60) {
|
||||
this->unk60 -= delta_time;
|
||||
}
|
||||
else {
|
||||
chGreenBlast_collisionDie(this->marker, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user