Further documentations have made:

- src/fight: named all ActorInfos and related functions
- src/core2: named shock jump and flight pad ActorInfos and related functions in code_43A40.c, partially documented code_CF3E0.c
- include/enums.h: added some enum values
This commit is contained in:
mariob92
2024-09-06 12:07:27 +02:00
parent 4f122e5b8c
commit fbeb744fc6
16 changed files with 130 additions and 119 deletions

View File

@@ -12,8 +12,10 @@
#define SPRITE_TYPE_RGBA32 (1 << 11) #define SPRITE_TYPE_RGBA32 (1 << 11)
enum file_progress_e{ enum file_progress_e{
FILEPROG_0_UNKNOWN,
FILEPROG_3_MUSIC_NOTE_TEXT = 0x3, FILEPROG_1_UNKNOWN,
FILEPROG_2_UNKNOWN,
FILEPROG_3_MUSIC_NOTE_TEXT,
FILEPROG_4_MUMBO_TOKEN_TEXT, FILEPROG_4_MUMBO_TOKEN_TEXT,
FILEPROG_5_BLUE_EGG_TEXT, FILEPROG_5_BLUE_EGG_TEXT,
FILEPROG_6_RED_FEATHER_TEXT, FILEPROG_6_RED_FEATHER_TEXT,
@@ -227,6 +229,10 @@ enum file_progress_e{
FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit
}; };
enum volatile_progress_e{
VOLAPROG_0_UNKNOWN
};
enum unkflags_1{ enum unkflags_1{
UNKFLAGS1_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6, UNKFLAGS1_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6,
UNKFLAGS1_7_HAS_SEEN_VILE_FF_MINIGAME, UNKFLAGS1_7_HAS_SEEN_VILE_FF_MINIGAME,
@@ -1988,13 +1994,13 @@ enum actor_e
ACTOR_387_PORTRAIT_OF_TEEHEE, ACTOR_387_PORTRAIT_OF_TEEHEE,
ACTOR_388_PORTRAIT_OF_MINION, ACTOR_388_PORTRAIT_OF_MINION,
ACTOR_389_GRUNTY_SPELL_FIREBALL, ACTOR_389_GRUNTY_SPELL_FIREBALL,
ACTOR_38A_SPRITE_SMOKE_GREEN_2,
ACTOR_38B_GRUNTILDA_FINAL_BOSS = 0x38B, ACTOR_38B_GRUNTILDA_FINAL_BOSS,
ACTOR_39F_FIGHT_FLIGHT_PAD = 0x39F, ACTOR_39F_FIGHT_FLIGHT_PAD = 0x39F,
ACTOR_3A0_ICECUBE_B, ACTOR_3A0_ICECUBE_B,
ACTOR_3A1_STONE_JINJO = 0x3A1, ACTOR_3A1_STONE_JINJO,
ACTOR_3A2_JINJO_STATUE_BASE = 0x3A2, ACTOR_3A2_JINJO_STATUE_BASE,
ACTOR_3A5_BOSS_JINJO_ORANGE = 0x3A5, ACTOR_3A5_BOSS_JINJO_ORANGE = 0x3A5,
ACTOR_3A6_BOSS_JINJO_GREEN, ACTOR_3A6_BOSS_JINJO_GREEN,
@@ -4573,9 +4579,9 @@ enum marker_e{
MARKER_25A_PORTRAIT_OF_TEEHEE, MARKER_25A_PORTRAIT_OF_TEEHEE,
MARKER_25B_PORTRAIT_OF_MINION, MARKER_25B_PORTRAIT_OF_MINION,
MARKER_25C_GRUNTY_SPELL_FIREBALL, MARKER_25C_GRUNTY_SPELL_FIREBALL,
MARKER_25D_SPRITE_SMOKE_GREEN_2,
MARKER_25E_GRUNTILDA_FINAL_BOSS = 0x25E, MARKER_25E_GRUNTILDA_FINAL_BOSS,
MARKER_25F_ICECUBE_B = 0x25F, MARKER_25F_ICECUBE_B,
MARKER_261_FIGHT_FLIGHT_PAD = 0x261, MARKER_261_FIGHT_FLIGHT_PAD = 0x261,

View File

@@ -284,7 +284,7 @@ typedef struct actor_s{
s8 pad167[0x1]; s8 pad167[0x1];
s32 unk168; //saved marker->unk58 s32 unk168; //saved marker->unk58
u32 unk16C_31:27; //saved s1->marker->unk5C u32 unk16C_31:27; //saved s1->marker->unk5C
u32 unk16C_4:1; u32 unk16C_4:1; // initialization related?
u32 unk16C_3:1; u32 unk16C_3:1;
u32 unk16C_2:1; u32 unk16C_2:1;
u32 unk16C_1:1; u32 unk16C_1:1;

View File

@@ -2,34 +2,34 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
void func_802CA9D0(Actor *this); void chShockJump_update(Actor *this);
void func_802CAA44(Actor *this); void chFlightPad_update(Actor *this);
void func_802CAB70(Actor *this); void chFightFlightPad_update(Actor *this);
/* .data */ /* .data */
extern ActorInfo D_80366F20 = { extern ActorInfo chShockJump = {
0x0D4, ACTOR_B_SHOCKSPRING_PAD, ASSET_489_MODEL_SHOCKSPRING_PAD, 0x0D4, ACTOR_B_SHOCKSPRING_PAD, ASSET_489_MODEL_SHOCKSPRING_PAD,
0, NULL, 0, NULL,
func_802CA9D0, func_80326224, actor_draw, chShockJump_update, func_80326224, actor_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_80366F44 = { extern ActorInfo chFlightPad = {
MARKER_45_FLIGHT_PAD, ACTOR_E4_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD, MARKER_45_FLIGHT_PAD, ACTOR_E4_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD,
0, NULL, 0, NULL,
func_802CAA44, func_80326224, actor_draw, chFlightPad_update, func_80326224, actor_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_80366F68 = { extern ActorInfo chFightFlightPad = {
MARKER_261_FIGHT_FLIGHT_PAD, ACTOR_39F_FIGHT_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD, MARKER_261_FIGHT_FLIGHT_PAD, ACTOR_39F_FIGHT_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD,
0, NULL, 0, NULL,
func_802CAB70, func_80326224, actor_draw, chFightFlightPad_update, func_80326224, actor_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern struct31s D_80366F8C = { extern struct31s chFightFlightPad_D_80366F8C = {
{0.4f, 0.4f}, {0.4f, 0.4f},
{0.0f, 0.0f}, {0.0f, 0.0f},
{0.0f, 0.01f}, {0.0f, 0.01f},
@@ -38,14 +38,14 @@ extern struct31s D_80366F8C = {
}; };
extern struct43s D_80366FB4 = { extern struct43s chFightFlightPad_D_80366FB4 = {
{{-360.0f, 360.0f, -360.0}, {360.0f, 660.0f, 360.0f}}, {{-360.0f, 360.0f, -360.0}, {360.0f, 660.0f, 360.0f}},
{{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}}, {{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}},
{{0.0f, 0.0f, 0.0f}, {0.0f, 40.0f, 0.0f}} {{0.0f, 0.0f, 0.0f}, {0.0f, 40.0f, 0.0f}}
}; };
/* .code */ /* .code */
void func_802CA9D0(Actor *this){ void chShockJump_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){ if(func_803203FC(UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){
ability_unlock(ABILITY_D_SHOCK_JUMP); ability_unlock(ABILITY_D_SHOCK_JUMP);
@@ -59,7 +59,7 @@ void func_802CA9D0(Actor *this){
} }
} }
void func_802CAA44(Actor *this){ void chFlightPad_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED)){ if(func_803203FC(UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED)){
ability_unlock(ABILITY_9_FLIGHT); ability_unlock(ABILITY_9_FLIGHT);
@@ -80,20 +80,20 @@ void func_802CAA44(Actor *this){
} }
} }
void func_802CAAF0(f32 position[3]){ void chFightFlightPad_emitSparklesAtPosition(f32 position[3]){
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(0x18); ParticleEmitter *pCtrl = partEmitMgr_newEmitter(0x18);
particleEmitter_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED); particleEmitter_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED);
particleEmitter_setPosition(pCtrl, position); particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80366FB4); particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &chFightFlightPad_D_80366FB4);
func_802EFB98(pCtrl, &D_80366F8C); func_802EFB98(pCtrl, &chFightFlightPad_D_80366F8C);
func_802EFA78(pCtrl, 1); func_802EFA78(pCtrl, 1);
particleEmitter_emitN(pCtrl, 0x18); particleEmitter_emitN(pCtrl, 0x18);
} }
void func_802CAB70(Actor *this){ void chFightFlightPad_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
func_802CAAF0(this->position); chFightFlightPad_emitSparklesAtPosition(this->position);
FUNC_8030E8B4(SFX_113_PAD_APPEARS, 1.0f, 32000, this->position, 5000, 12000); FUNC_8030E8B4(SFX_113_PAD_APPEARS, 1.0f, 32000, this->position, 5000, 12000);
} }
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;

View File

@@ -2,9 +2,10 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
typedef KEY_VALUE_PAIR(s16, s16) unkD_80372730; typedef KEY_VALUE_PAIR(s16, s16) MapProgressFlagToDialogID;
unkD_80372730 D_80372730[] = { /* Mapping for file progess flags to Dialog IDs */
MapProgressFlagToDialogID fileProgressDialogMap[] = {
{ FILEPROG_AB_SWIM_OILY_WATER, 0xBA1}, { FILEPROG_AB_SWIM_OILY_WATER, 0xBA1},
{ FILEPROG_AC_DIVE_OILY_WATER, 0xBA2}, { FILEPROG_AC_DIVE_OILY_WATER, 0xBA2},
{ FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6}, { FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6},
@@ -33,8 +34,9 @@ unkD_80372730 D_80372730[] = {
{ -1, -1} { -1, -1}
}; };
/* This progress IDs are not saved in the save file, like when Banjo goes near a Note door which requires more notes than the Banjo has. */
unkD_80372730 D_80372798[] = { /* Triggers a dialog every time after the game restarts. */
MapProgressFlagToDialogID volatileProgressDialogMap[] = {
{0x9E, 0xBA3}, {0x9E, 0xBA3},
{0x9F, 0xCE8}, {0x9F, 0xCE8},
{0xA0, 0x1032}, {0xA0, 0x1032},
@@ -59,52 +61,55 @@ unkD_80372730 D_80372798[] = {
{ -1, -1} { -1, -1}
}; };
static s32 __findIndex(unkD_80372730 *arg0, s32 arg1) { static s32 __findIndex(MapProgressFlagToDialogID *map, s32 key) {
s32 phi_v1 = 0; s32 i = 0;
while (arg0[phi_v1].key >= 0) { while (map[i].key >= 0) {
if (arg1 == arg0[phi_v1].key) { if (key == map[i].key) {
return phi_v1; return i;
} }
phi_v1++; i++;
} }
return -1; return -1;
} }
s32 func_803563B8(enum file_progress_e arg0, s32 arg1) { /* Checks for a specific file progress flag and triggers a dialog only if the progress flag was not set and sets the progress flag */
s32 func_803563B8(enum file_progress_e progress_flag, s32 arg1) {
s32 index; s32 index;
if (fileProgressFlag_get(arg0) != 0) { if (fileProgressFlag_get(progress_flag) != 0) {
return 0; return 0;
} else { } else {
index = __findIndex(D_80372730, arg0); index = __findIndex(fileProgressDialogMap, progress_flag);
if (index != -1) { if (index != -1) {
if (func_80311480(D_80372730[index].value, arg1, 0, 0, 0, 0) != 0) { if (func_80311480(fileProgressDialogMap[index].value, arg1, 0, 0, 0, 0) != 0) {
fileProgressFlag_set(arg0, 1); fileProgressFlag_set(progress_flag, 1);
} }
return fileProgressFlag_get(arg0); return fileProgressFlag_get(progress_flag);
} }
return 0; return 0;
} }
} }
void func_8035644C(enum file_progress_e arg0){ void func_8035644C(enum file_progress_e progress_flag){
func_803563B8(arg0, 0); func_803563B8(progress_flag, 0);
} }
void func_8035646C(s32 arg0) { void func_8035646C(enum file_progress_e progress_flag) {
func_803563B8(arg0, 4); func_803563B8(progress_flag, 4);
} }
/* Checks for a specific "volatile" progress flag and triggers a dialog only if the progress flag was not set and sets the progress flag */
s32 func_8035648C(s32 arg0, s32 arg1) { s32 func_8035648C(s32 arg0, s32 arg1) {
s32 index; s32 index;
if (func_803203FC() != 0) { if (func_803203FC() != 0) {
return 0; return 0;
} else { } else {
index = __findIndex(D_80372798, arg0); index = __findIndex(volatileProgressDialogMap, arg0);
if (index != -1) { if (index != -1) {
if (func_80311480(D_80372798[index].value, arg1, 0, 0, 0, 0) != 0) { if (func_80311480(volatileProgressDialogMap[index].value, arg1, 0, 0, 0, 0) != 0) {
func_803204E4(arg0, 1); func_803204E4(arg0, 1);
} }
return func_803203FC(arg0); return func_803203FC(arg0);

View File

@@ -38,8 +38,8 @@ extern ActorInfo D_80366C80; //chhoneycarrier
extern ActorInfo D_80366CA4; //chhoney extern ActorInfo D_80366CA4; //chhoney
extern ActorInfo chTrainers; extern ActorInfo chTrainers;
extern ActorInfo D_80366EF0; //large_shadow extern ActorInfo D_80366EF0; //large_shadow
extern ActorInfo D_80366F20; //chshockjump extern ActorInfo chShockJump; //chshockjump
extern ActorInfo D_80366F44; //flight_pad extern ActorInfo chFlightPad; //flight_pad
extern ActorInfo D_803670B8; //snippet extern ActorInfo D_803670B8; //snippet
extern ActorInfo D_803670DC; //black_snippet extern ActorInfo D_803670DC; //black_snippet
extern ActorInfo D_80367100; //mutie_snippet extern ActorInfo D_80367100; //mutie_snippet
@@ -251,8 +251,8 @@ void spawnQueue_reset(void){
spawnableActorList_add(&D_80367F30, actor_new, 0x0000400); spawnableActorList_add(&D_80367F30, actor_new, 0x0000400);
spawnableActorList_add(&chBubble, actor_new, 0x0000004); spawnableActorList_add(&chBubble, actor_new, 0x0000004);
spawnableActorList_add(&chGloop, actor_new, 0x000008A); //gloop spawnableActorList_add(&chGloop, actor_new, 0x000008A); //gloop
spawnableActorList_add(&D_80366F20, actor_new, 0x0000000); //chshockjump spawnableActorList_add(&chShockJump, actor_new, 0x0000000); //chshockjump
spawnableActorList_add(&D_80366F44, actor_new, 0x0000000); //flight_pad spawnableActorList_add(&chFlightPad, actor_new, 0x0000000); //flight_pad
spawnableActorList_add(&D_80367D24, actor_new, 0x0200000); //redfeather spawnableActorList_add(&D_80367D24, actor_new, 0x0200000); //redfeather
spawnableActorList_add(&D_80367D48, actor_new, 0x0200000); //goldfeather spawnableActorList_add(&D_80367D48, actor_new, 0x0200000); //goldfeather
spawnableActorList_add(&D_80367C90, actor_new, 0x0000004); //spent_redfeather spawnableActorList_add(&D_80367C90, actor_new, 0x0000004); //spent_redfeather

View File

@@ -12,11 +12,11 @@ extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32);
extern void func_80329904(ActorMarker*, s32, f32*); extern void func_80329904(ActorMarker*, s32, f32*);
void func_8038C840(Actor *this); void chBossJinjo_update(Actor *this);
void func_8038D014(Actor *this); void chBossJinjo_func_8038D014(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80391810[] = { ActorAnimationInfo chBossJinjoAnimations[] = {
{0, 0.0f}, {0, 0.0f},
{0x264, 1000000.0f}, {0x264, 1000000.0f},
{0x264, 2.26f}, {0x264, 2.26f},
@@ -25,31 +25,31 @@ ActorAnimationInfo D_80391810[] = {
{0x262, 2.0f} {0x262, 2.0f}
}; };
ActorInfo D_80391840 = { ActorInfo chBossJinjoOrange = {
MARKER_27B_BOSS_JINJO_ORANGE, ACTOR_3A5_BOSS_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE, MARKER_27B_BOSS_JINJO_ORANGE, ACTOR_3A5_BOSS_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE,
0x1, D_80391810, 0x1, chBossJinjoAnimations,
func_8038C840, func_8038D014, actor_draw, chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_80391864 = { ActorInfo chBossJinjoGreen = {
MARKER_27C_BOSS_JINJO_GREEN, ACTOR_3A6_BOSS_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN, MARKER_27C_BOSS_JINJO_GREEN, ACTOR_3A6_BOSS_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN,
0x1, D_80391810, 0x1, chBossJinjoAnimations,
func_8038C840, func_8038D014, actor_draw, chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_80391888 = { ActorInfo chBossJinjoPink = {
MARKER_27D_BOSS_JINJO_PINK, ACTOR_3A7_BOSS_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK, MARKER_27D_BOSS_JINJO_PINK, ACTOR_3A7_BOSS_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK,
0x1, D_80391810, 0x1, chBossJinjoAnimations,
func_8038C840, func_8038D014, actor_draw, chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_803918AC = { ActorInfo chBossJinjoYellow = {
MARKER_27E_BOSS_JINJO_YELLOW, ACTOR_3A8_BOSS_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW, MARKER_27E_BOSS_JINJO_YELLOW, ACTOR_3A8_BOSS_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW,
0x1, D_80391810, 0x1, chBossJinjoAnimations,
func_8038C840, func_8038D014, actor_draw, chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
@@ -184,7 +184,7 @@ void func_8038C79C(Actor *this){
} }
} }
void func_8038C840(Actor *this){ void chBossJinjo_update(Actor *this){
f32 sp74 = time_getDelta(); f32 sp74 = time_getDelta();
f32 sp68[3]; f32 sp68[3];
f32 sp5C[3]; f32 sp5C[3];
@@ -346,7 +346,7 @@ void func_8038CED8(f32 arg0[3], enum asset_e model_id, f32 arg2, f32 arg3){
particleEmitter_emitN(s0, 1); particleEmitter_emitN(s0, 1);
} }
void func_8038D014(Actor *this){ void chBossJinjo_func_8038D014(Actor *this){
s32 temp_a1; s32 temp_a1;
if(!this->unk16C_4){ if(!this->unk16C_4){

View File

@@ -9,7 +9,7 @@ typedef struct {
void func_8038D568(Actor *this); void func_8038D568(Actor *this);
/* .data */ /* .data */
ActorInfo D_80391990 = { ActorInfo chBossJinjoBase = {
MARKER_27A_JINJO_STATUE_BASE, ACTOR_3A2_JINJO_STATUE_BASE, ASSET_543_MODEL_JINJO_STATUE_BASE, MARKER_27A_JINJO_STATUE_BASE, ACTOR_3A2_JINJO_STATUE_BASE, ASSET_543_MODEL_JINJO_STATUE_BASE,
0x1, NULL, 0x1, NULL,
func_8038D568, func_80326224, actor_draw, func_8038D568, func_80326224, actor_draw,

View File

@@ -6,7 +6,7 @@ Actor *chbossshadow_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3)
void chbossshadow_update(Actor *this); void chbossshadow_update(Actor *this);
/* .data */ /* .data */
ActorInfo D_80392090 = { ActorInfo chBossShadow = {
MARKER_288_GRUNTY_SHADOW, ACTOR_3AF_GRUNTY_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 0x1, NULL, MARKER_288_GRUNTY_SHADOW, ACTOR_3AF_GRUNTY_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 0x1, NULL,
chbossshadow_update, func_80326224, chbossshadow_draw, chbossshadow_update, func_80326224, chbossshadow_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0

View File

@@ -112,7 +112,7 @@ ActorAnimationInfo D_803913A0[] = {
{ 0x266, 4.0f} { 0x266, 4.0f}
}; };
ActorInfo fight_D_80391500 = { ActorInfo chFinalBoss = {
MARKER_25E_GRUNTILDA_FINAL_BOSS, ACTOR_38B_GRUNTILDA_FINAL_BOSS, ASSET_53D_MODEL_GRUNTILDA_FINAL_BOSS, MARKER_25E_GRUNTILDA_FINAL_BOSS, ACTOR_38B_GRUNTILDA_FINAL_BOSS, ASSET_53D_MODEL_GRUNTILDA_FINAL_BOSS,
1, D_803913A0, 1, D_803913A0,
chfinalboss_update, func_80326224, chfinalboss_draw, chfinalboss_update, func_80326224, chfinalboss_draw,

View File

@@ -44,7 +44,7 @@ ActorAnimationInfo D_80391FB0[] = {
{0x280, 0.4f} {0x280, 0.4f}
}; };
ActorInfo D_80392018 = { ActorInfo chJinjonator = {
MARKER_285_JINJONATOR, ACTOR_3AC_JINJONATOR, ASSET_551_MODEL_JINJONATOR, MARKER_285_JINJONATOR, ACTOR_3AC_JINJONATOR, ASSET_551_MODEL_JINJONATOR,
0x1, D_80391FB0, 0x1, D_80391FB0,
chjinjonator_update, func_80326224, actor_draw, chjinjonator_update, func_80326224, actor_draw,

View File

@@ -9,7 +9,7 @@ typedef struct {
void chjinjonatorbase_update(Actor *); void chjinjonatorbase_update(Actor *);
/* .data */ /* .data */
ActorInfo fight_D_80391A40 = { ActorInfo chJinjonatorBase = {
MARKER_27F_JINJONATOR_STATUE_BASE, ACTOR_3A9_JINJONATOR_STATUE_BASE, ASSET_544_MODEL_JINJONATOR_STATUE_BASE, MARKER_27F_JINJONATOR_STATUE_BASE, ACTOR_3A9_JINJONATOR_STATUE_BASE, ASSET_544_MODEL_JINJONATOR_STATUE_BASE,
0x1, NULL, 0x1, NULL,
chjinjonatorbase_update, func_80326224, actor_draw, chjinjonatorbase_update, func_80326224, actor_draw,

View File

@@ -26,7 +26,7 @@ typedef struct {
void chspellbarrier_update(Actor *this); void chspellbarrier_update(Actor *this);
/* .data */ /* .data */
ActorInfo D_80391AD0 = { ActorInfo chSpellBarrier = {
MARKER_284_GRUNTY_SPELL_BARRIER, ACTOR_3AB_GRUNTY_SPELL_BARRIER, ASSET_546_MODEL_GRUNTY_SPELL_BARRIER, MARKER_284_GRUNTY_SPELL_BARRIER, ACTOR_3AB_GRUNTY_SPELL_BARRIER, ASSET_546_MODEL_GRUNTY_SPELL_BARRIER,
0x1, NULL, 0x1, NULL,
chspellbarrier_update, func_80326224, actor_draw, chspellbarrier_update, func_80326224, actor_draw,

View File

@@ -19,14 +19,14 @@ typedef struct {
void func_8038F620(Actor *this); void func_8038F620(Actor *this);
/* .data */ /* .data */
ActorInfo fight_D_80391B00 = { ActorInfo chSpellFireball = {
MARKER_25C_GRUNTY_SPELL_FIREBALL, ACTOR_389_GRUNTY_SPELL_FIREBALL, ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK, MARKER_25C_GRUNTY_SPELL_FIREBALL, ACTOR_389_GRUNTY_SPELL_FIREBALL, ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK,
0x1, NULL, 0x1, NULL,
func_8038F620, func_80326224, actor_draw, func_8038F620, func_80326224, actor_draw,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_80391B24 = { ActorInfo chSpellGreen = {
MARKER_280_GRUNTY_SPELL_GREEN_ATTACK, ACTOR_3AA_GRUNTY_SPELL_GREEN_ATTACK, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, MARKER_280_GRUNTY_SPELL_GREEN_ATTACK, ACTOR_3AA_GRUNTY_SPELL_GREEN_ATTACK, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK,
0x1, NULL, 0x1, NULL,
func_8038F620, func_80326224, func_80325CAC, func_8038F620, func_80326224, func_80325CAC,

View File

@@ -10,15 +10,15 @@ extern f32 chbossjinjo_8038D268(void);
void chstonejinjo_update(Actor *); void chstonejinjo_update(Actor *);
/* .data */ /* .data */
ActorAnimationInfo fight_D_803919F0[] ={ ActorAnimationInfo chStoneJinjo_AnimationInfo[] ={
{0, 0.0f}, {0, 0.0f},
{0x265, 1e+8f}, {0x265, 1e+8f},
{0x265, 1e+8f}, {0x265, 1e+8f},
{0x265, 1e+8f}, {0x265, 1e+8f},
}; };
ActorInfo fight_D_80391A10 = { ActorInfo chStoneJinjo = {
MARKER_276_STONE_JINJO, ACTOR_3A1_STONE_JINJO, ASSET_545_MODEL_STONE_JINJO, MARKER_276_STONE_JINJO, ACTOR_3A1_STONE_JINJO, ASSET_545_MODEL_STONE_JINJO,
0x1, fight_D_803919F0, 0x1, chStoneJinjo_AnimationInfo,
chstonejinjo_update, func_80326224, actor_draw, chstonejinjo_update, func_80326224, actor_draw,
0, 0x800, 1.0f, 0 0, 0x800, 1.0f, 0
}; };

View File

@@ -3,41 +3,41 @@
#include "variables.h" #include "variables.h"
#include "prop.h" #include "prop.h"
extern ActorInfo D_80366F68;
extern ActorInfo fight_D_80391500; extern ActorInfo chFightFlightPad;
extern ActorInfo D_80391840; extern ActorInfo chFinalBoss;
extern ActorInfo D_80391864; extern ActorInfo chBossJinjoOrange;
extern ActorInfo D_80391888; extern ActorInfo chBossJinjoGreen;
extern ActorInfo D_803918AC; extern ActorInfo chBossJinjoPink;
extern ActorInfo D_80391990; extern ActorInfo chBossJinjoYellow;
extern ActorInfo fight_D_80391A10; extern ActorInfo chBossJinjoBase;
extern ActorInfo fight_D_80391A40; extern ActorInfo chStoneJinjo;
extern ActorInfo D_80391AD0; extern ActorInfo chJinjonatorBase;
extern ActorInfo fight_D_80391B00; extern ActorInfo chSpellBarrier;
extern ActorInfo D_80391B24; extern ActorInfo chSpellFireball;
extern ActorInfo D_80391DC0; extern ActorInfo chSpellGreen;
extern ActorInfo D_80392018; extern ActorInfo chSpriteSmokeGreen2;
extern ActorInfo D_80392090; extern ActorInfo chJinjonator;
extern ActorInfo chBossShadow;
/* .bss */ /* .bss */
u8 pad_fight_80392740[0x10]; u8 pad_fight_80392740[0x10];
void fight_func_803863F0(void) void fight_func_803863F0(void)
{ {
spawnableActorList_add(&fight_D_80391B00, actor_new, 0X108444); spawnableActorList_add(&chSpellFireball, actor_new, 0X108444);
spawnableActorList_add(&D_80391DC0, actor_new, 0X108444); spawnableActorList_add(&chSpriteSmokeGreen2, actor_new, 0X108444);
spawnableActorList_add(&fight_D_80391500, actor_new, 0X300468); spawnableActorList_add(&chFinalBoss, actor_new, 0X300468);
spawnableActorList_add(&D_80391840, actor_new, 0X8464); spawnableActorList_add(&chBossJinjoOrange, actor_new, 0X8464);
spawnableActorList_add(&D_80391864, actor_new, 0X8464); spawnableActorList_add(&chBossJinjoGreen, actor_new, 0X8464);
spawnableActorList_add(&D_80391888, actor_new, 0X8464); spawnableActorList_add(&chBossJinjoPink, actor_new, 0X8464);
spawnableActorList_add(&D_803918AC, actor_new, 0X8464); spawnableActorList_add(&chBossJinjoYellow, actor_new, 0X8464);
spawnableActorList_add(&fight_D_80391A10, actor_new, 0X20004); spawnableActorList_add(&chStoneJinjo, actor_new, 0X20004);
spawnableActorList_add(&D_80391990, actor_new, 0X800100C); spawnableActorList_add(&chBossJinjoBase, actor_new, 0X800100C);
spawnableActorList_add(&fight_D_80391A40, actor_new, 0X8009404); spawnableActorList_add(&chJinjonatorBase, actor_new, 0X8009404);
spawnableActorList_add(&D_80391B24, actor_new, 0X108444); spawnableActorList_add(&chSpellGreen, actor_new, 0X108444);
spawnableActorList_add(&D_80391AD0, actor_new, 0X101404); spawnableActorList_add(&chSpellBarrier, actor_new, 0X101404);
spawnableActorList_add(&D_80366F68, actor_new, 0X100404); spawnableActorList_add(&chFightFlightPad, actor_new, 0X100404);
spawnableActorList_add(&D_80392018, actor_new, 0X9464); spawnableActorList_add(&chJinjonator, actor_new, 0X9464);
spawnableActorList_add(&D_80392090, actor_new, 0X100404); spawnableActorList_add(&chBossShadow, actor_new, 0X100404);
} }

View File

@@ -6,14 +6,14 @@ 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 void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32);
extern Actor *func_80325CAC(ActorMarker *, Gfx **, Mtx **, Vtx**); extern Actor *func_80325CAC(ActorMarker *, Gfx **, Mtx **, Vtx**);
void func_8038FE94(Actor *this); void chSpriteSmokeGreen2_update(Actor *this);
Actor *func_8038FC40(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3); Actor *chSpriteSmokeGreen2_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
/* .data */ /* .data */
ActorInfo D_80391DC0 = { ActorInfo chSpriteSmokeGreen2 = {
0x25D, 0x38A, ASSET_6C7_SPRITE_SMOKE_GREEN_2, MARKER_25D_SPRITE_SMOKE_GREEN_2, ACTOR_38A_SPRITE_SMOKE_GREEN_2, ASSET_6C7_SPRITE_SMOKE_GREEN_2,
0x1, NULL, 0x1, NULL,
func_8038FE94, func_80326224, func_8038FC40, chSpriteSmokeGreen2_update, func_80326224, chSpriteSmokeGreen2_draw,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
@@ -48,7 +48,7 @@ f32 D_80391F94[4] = {0.0f, 0.01f, 0.7f, 0.8f};
f32 D_80391FA4[2] = {0.0f, 0.65f}; f32 D_80391FA4[2] = {0.0f, 0.65f};
/* .code */ /* .code */
Actor *func_8038FC40(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){ Actor *chSpriteSmokeGreen2_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){
Actor *actor = marker_getActor(marker); Actor *actor = marker_getActor(marker);
func_80344C2C(1); func_80344C2C(1);
return func_80325CAC(marker, gdl, mptr, arg3); return func_80325CAC(marker, gdl, mptr, arg3);
@@ -88,7 +88,7 @@ void func_8038FCF0(ActorMarker *marker, ActorMarker *other_marker){
marker_despawn(actor->marker); marker_despawn(actor->marker);
} }
void func_8038FE94(Actor *this){ void chSpriteSmokeGreen2_update(Actor *this){
f32 sp54 = time_getDelta(); f32 sp54 = time_getDelta();
f32 sp48[3]; f32 sp48[3];