From 539d6f48042c7cf0debdddc3e7163177494d02c5 Mon Sep 17 00:00:00 2001 From: mariob92 <21146795-mariob92@users.noreply.gitlab.com> Date: Fri, 6 Sep 2024 19:37:28 +0200 Subject: [PATCH] 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 --- include/enums.h | 6 +- include/prop.h | 2 +- src/core1/code_0.c | 43 ++-- src/core1/code_15770.c | 40 ++-- src/core1/code_15B30.c | 140 ++++++------- src/core1/code_18210.c | 2 +- src/core1/code_1D590.c | 8 +- src/core1/code_8C50.c | 2 +- src/core1/code_E360.c | 20 +- src/core1/memory.c | 2 +- src/core2/ch/bottlesbonuscursor.c | 2 +- src/core2/code_5C240.c | 16 +- src/core2/code_5C870.c | 48 +++-- src/core2/code_77E50.c | 4 +- src/core2/code_851D0.c | 8 +- src/core2/code_8DC20.c | 6 +- src/core2/code_9E370.c | 333 +++++++++++++++--------------- src/core2/code_AD5B0.c | 2 +- src/core2/code_B7F40.c | 44 ++-- src/core2/code_E910.c | 2 +- src/core2/fx/common3score.c | 2 +- src/core2/gc/sky.c | 4 +- src/fight/chspellfireball.c | 120 +++++------ src/fight/code_0.c | 4 +- src/fight/code_9850.c | 166 ++++++++------- 25 files changed, 521 insertions(+), 505 deletions(-) diff --git a/include/enums.h b/include/enums.h index bf33c92f..3685bdd1 100644 --- a/include/enums.h +++ b/include/enums.h @@ -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, diff --git a/include/prop.h b/include/prop.h index b8031639..2542bcc1 100644 --- a/include/prop.h +++ b/include/prop.h @@ -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; diff --git a/src/core1/code_0.c b/src/core1/code_0.c index fb4e023a..fd93a3c0 100644 --- a/src/core1/code_0.c +++ b/src/core1/code_0.c @@ -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; } diff --git a/src/core1/code_15770.c b/src/core1/code_15770.c index f2d9b580..3201401e 100644 --- a/src/core1/code_15770.c +++ b/src/core1/code_15770.c @@ -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; } diff --git a/src/core1/code_15B30.c b/src/core1/code_15B30.c index 7ba8f1c0..f44e6bbc 100644 --- a/src/core1/code_15B30.c +++ b/src/core1/code_15B30.c @@ -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){} diff --git a/src/core1/code_18210.c b/src/core1/code_18210.c index 650109f4..2a72255f 100644 --- a/src/core1/code_18210.c +++ b/src/core1/code_18210.c @@ -18,7 +18,7 @@ void func_80255C30(void) { } } -void func_80255CD8(void){} +void dummy_func_80255CD8(void){} void func_80255CE0(void){ osPiReadIo(0, NULL); diff --git a/src/core1/code_1D590.c b/src/core1/code_1D590.c index 4d2e8c18..a75c8e12 100644 --- a/src/core1/code_1D590.c +++ b/src/core1/code_1D590.c @@ -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; } diff --git a/src/core1/code_8C50.c b/src/core1/code_8C50.c index 64f8958a..6e1e9d62 100644 --- a/src/core1/code_8C50.c +++ b/src/core1/code_8C50.c @@ -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; diff --git a/src/core1/code_E360.c b/src/core1/code_E360.c index 9a6054a7..5a1fd17d 100644 --- a/src/core1/code_E360.c +++ b/src/core1/code_E360.c @@ -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){ diff --git a/src/core1/memory.c b/src/core1/memory.c index c0c3d9a9..6c83ac94 100644 --- a/src/core1/memory.c +++ b/src/core1/memory.c @@ -804,7 +804,7 @@ void func_80255A3C(void){ if(!func_802559A0()){ ml_defrag(); - func_80254464(); + dummy_func_80254464(); } } diff --git a/src/core2/ch/bottlesbonuscursor.c b/src/core2/ch/bottlesbonuscursor.c index 49615def..46faccf4 100644 --- a/src/core2/ch/bottlesbonuscursor.c +++ b/src/core2/ch/bottlesbonuscursor.c @@ -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); diff --git a/src/core2/code_5C240.c b/src/core2/code_5C240.c index d07e2479..55799da4 100644 --- a/src/core2/code_5C240.c +++ b/src/core2/code_5C240.c @@ -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]; diff --git a/src/core2/code_5C870.c b/src/core2/code_5C870.c index 1b0c87b5..7e24cae3 100644 --- a/src/core2/code_5C870.c +++ b/src/core2/code_5C870.c @@ -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(); diff --git a/src/core2/code_77E50.c b/src/core2/code_77E50.c index f1fc3e63..987ecc94 100644 --- a/src/core2/code_77E50.c +++ b/src/core2/code_77E50.c @@ -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++){ diff --git a/src/core2/code_851D0.c b/src/core2/code_851D0.c index a4fb0185..e39b1218 100644 --- a/src/core2/code_851D0.c +++ b/src/core2/code_851D0.c @@ -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); } diff --git a/src/core2/code_8DC20.c b/src/core2/code_8DC20.c index f6908fc4..518bec41 100644 --- a/src/core2/code_8DC20.c +++ b/src/core2/code_8DC20.c @@ -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){ diff --git a/src/core2/code_9E370.c b/src/core2/code_9E370.c index 4bbeee08..79c8c55b 100644 --- a/src/core2/code_9E370.c +++ b/src/core2/code_9E370.c @@ -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){ diff --git a/src/core2/code_AD5B0.c b/src/core2/code_AD5B0.c index f6a990c4..4949adbb 100644 --- a/src/core2/code_AD5B0.c +++ b/src/core2/code_AD5B0.c @@ -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); diff --git a/src/core2/code_B7F40.c b/src/core2/code_B7F40.c index f098b389..b6bee4c2 100644 --- a/src/core2/code_B7F40.c +++ b/src/core2/code_B7F40.c @@ -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; } diff --git a/src/core2/code_E910.c b/src/core2/code_E910.c index ca026660..80db2d2c 100644 --- a/src/core2/code_E910.c +++ b/src/core2/code_E910.c @@ -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 diff --git a/src/core2/fx/common3score.c b/src/core2/fx/common3score.c index 9c5e041c..09918d5f 100644 --- a/src/core2/fx/common3score.c +++ b/src/core2/fx/common3score.c @@ -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); } diff --git a/src/core2/gc/sky.c b/src/core2/gc/sky.c index f0453c9b..a650a7d2 100644 --- a/src/core2/gc/sky.c +++ b/src/core2/gc/sky.c @@ -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 } diff --git a/src/fight/chspellfireball.c b/src/fight/chspellfireball.c index 4fc80f92..39ef4e29 100644 --- a/src/fight/chspellfireball.c +++ b/src/fight/chspellfireball.c @@ -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 ); diff --git a/src/fight/code_0.c b/src/fight/code_0.c index bb02b1f1..2ec3311c 100644 --- a/src/fight/code_0.c +++ b/src/fight/code_0.c @@ -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); diff --git a/src/fight/code_9850.c b/src/fight/code_9850.c index d2ab329e..56834e23 100644 --- a/src/fight/code_9850.c +++ b/src/fight/code_9850.c @@ -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); } } }