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

View File

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

View File

@@ -2,34 +2,34 @@
#include "functions.h"
#include "variables.h"
void func_802CA9D0(Actor *this);
void func_802CAA44(Actor *this);
void func_802CAB70(Actor *this);
void chShockJump_update(Actor *this);
void chFlightPad_update(Actor *this);
void chFightFlightPad_update(Actor *this);
/* .data */
extern ActorInfo D_80366F20 = {
extern ActorInfo chShockJump = {
0x0D4, ACTOR_B_SHOCKSPRING_PAD, ASSET_489_MODEL_SHOCKSPRING_PAD,
0, NULL,
func_802CA9D0, func_80326224, actor_draw,
chShockJump_update, func_80326224, actor_draw,
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,
0, NULL,
func_802CAA44, func_80326224, actor_draw,
chFlightPad_update, func_80326224, actor_draw,
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,
0, NULL,
func_802CAB70, func_80326224, actor_draw,
chFightFlightPad_update, func_80326224, actor_draw,
0, 0, 0.0f, 0
};
extern struct31s D_80366F8C = {
extern struct31s chFightFlightPad_D_80366F8C = {
{0.4f, 0.4f},
{0.0f, 0.0f},
{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}},
{{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}},
{{0.0f, 0.0f, 0.0f}, {0.0f, 40.0f, 0.0f}}
};
/* .code */
void func_802CA9D0(Actor *this){
void chShockJump_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){
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;
if(func_803203FC(UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED)){
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_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80366FB4);
func_802EFB98(pCtrl, &D_80366F8C);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &chFightFlightPad_D_80366FB4);
func_802EFB98(pCtrl, &chFightFlightPad_D_80366F8C);
func_802EFA78(pCtrl, 1);
particleEmitter_emitN(pCtrl, 0x18);
}
void func_802CAB70(Actor *this){
void chFightFlightPad_update(Actor *this){
if(!this->unk16C_4){
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);
}
this->marker->propPtr->unk8_3 = TRUE;

View File

@@ -2,9 +2,10 @@
#include "functions.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_AC_DIVE_OILY_WATER, 0xBA2},
{ FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6},
@@ -33,8 +34,9 @@ unkD_80372730 D_80372730[] = {
{ -1, -1}
};
unkD_80372730 D_80372798[] = {
/* 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. */
/* Triggers a dialog every time after the game restarts. */
MapProgressFlagToDialogID volatileProgressDialogMap[] = {
{0x9E, 0xBA3},
{0x9F, 0xCE8},
{0xA0, 0x1032},
@@ -59,52 +61,55 @@ unkD_80372730 D_80372798[] = {
{ -1, -1}
};
static s32 __findIndex(unkD_80372730 *arg0, s32 arg1) {
s32 phi_v1 = 0;
static s32 __findIndex(MapProgressFlagToDialogID *map, s32 key) {
s32 i = 0;
while (arg0[phi_v1].key >= 0) {
if (arg1 == arg0[phi_v1].key) {
return phi_v1;
while (map[i].key >= 0) {
if (key == map[i].key) {
return i;
}
phi_v1++;
i++;
}
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;
if (fileProgressFlag_get(arg0) != 0) {
if (fileProgressFlag_get(progress_flag) != 0) {
return 0;
} else {
index = __findIndex(D_80372730, arg0);
index = __findIndex(fileProgressDialogMap, progress_flag);
if (index != -1) {
if (func_80311480(D_80372730[index].value, arg1, 0, 0, 0, 0) != 0) {
fileProgressFlag_set(arg0, 1);
if (func_80311480(fileProgressDialogMap[index].value, arg1, 0, 0, 0, 0) != 0) {
fileProgressFlag_set(progress_flag, 1);
}
return fileProgressFlag_get(arg0);
return fileProgressFlag_get(progress_flag);
}
return 0;
}
}
void func_8035644C(enum file_progress_e arg0){
func_803563B8(arg0, 0);
void func_8035644C(enum file_progress_e progress_flag){
func_803563B8(progress_flag, 0);
}
void func_8035646C(s32 arg0) {
func_803563B8(arg0, 4);
void func_8035646C(enum file_progress_e progress_flag) {
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 index;
if (func_803203FC() != 0) {
return 0;
} else {
index = __findIndex(D_80372798, arg0);
index = __findIndex(volatileProgressDialogMap, arg0);
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);
}
return func_803203FC(arg0);

View File

@@ -38,8 +38,8 @@ extern ActorInfo D_80366C80; //chhoneycarrier
extern ActorInfo D_80366CA4; //chhoney
extern ActorInfo chTrainers;
extern ActorInfo D_80366EF0; //large_shadow
extern ActorInfo D_80366F20; //chshockjump
extern ActorInfo D_80366F44; //flight_pad
extern ActorInfo chShockJump; //chshockjump
extern ActorInfo chFlightPad; //flight_pad
extern ActorInfo D_803670B8; //snippet
extern ActorInfo D_803670DC; //black_snippet
extern ActorInfo D_80367100; //mutie_snippet
@@ -251,8 +251,8 @@ void spawnQueue_reset(void){
spawnableActorList_add(&D_80367F30, actor_new, 0x0000400);
spawnableActorList_add(&chBubble, actor_new, 0x0000004);
spawnableActorList_add(&chGloop, actor_new, 0x000008A); //gloop
spawnableActorList_add(&D_80366F20, actor_new, 0x0000000); //chshockjump
spawnableActorList_add(&D_80366F44, actor_new, 0x0000000); //flight_pad
spawnableActorList_add(&chShockJump, actor_new, 0x0000000); //chshockjump
spawnableActorList_add(&chFlightPad, actor_new, 0x0000000); //flight_pad
spawnableActorList_add(&D_80367D24, actor_new, 0x0200000); //redfeather
spawnableActorList_add(&D_80367D48, actor_new, 0x0200000); //goldfeather
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*);
void func_8038C840(Actor *this);
void func_8038D014(Actor *this);
void chBossJinjo_update(Actor *this);
void chBossJinjo_func_8038D014(Actor *this);
/* .data */
ActorAnimationInfo D_80391810[] = {
ActorAnimationInfo chBossJinjoAnimations[] = {
{0, 0.0f},
{0x264, 1000000.0f},
{0x264, 2.26f},
@@ -25,31 +25,31 @@ ActorAnimationInfo D_80391810[] = {
{0x262, 2.0f}
};
ActorInfo D_80391840 = {
ActorInfo chBossJinjoOrange = {
MARKER_27B_BOSS_JINJO_ORANGE, ACTOR_3A5_BOSS_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE,
0x1, D_80391810,
func_8038C840, func_8038D014, actor_draw,
0x1, chBossJinjoAnimations,
chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
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,
0x1, D_80391810,
func_8038C840, func_8038D014, actor_draw,
0x1, chBossJinjoAnimations,
chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
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,
0x1, D_80391810,
func_8038C840, func_8038D014, actor_draw,
0x1, chBossJinjoAnimations,
chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
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,
0x1, D_80391810,
func_8038C840, func_8038D014, actor_draw,
0x1, chBossJinjoAnimations,
chBossJinjo_update, chBossJinjo_func_8038D014, actor_draw,
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 sp68[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);
}
void func_8038D014(Actor *this){
void chBossJinjo_func_8038D014(Actor *this){
s32 temp_a1;
if(!this->unk16C_4){

View File

@@ -9,7 +9,7 @@ typedef struct {
void func_8038D568(Actor *this);
/* .data */
ActorInfo D_80391990 = {
ActorInfo chBossJinjoBase = {
MARKER_27A_JINJO_STATUE_BASE, ACTOR_3A2_JINJO_STATUE_BASE, ASSET_543_MODEL_JINJO_STATUE_BASE,
0x1, NULL,
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);
/* .data */
ActorInfo D_80392090 = {
ActorInfo chBossShadow = {
MARKER_288_GRUNTY_SHADOW, ACTOR_3AF_GRUNTY_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 0x1, NULL,
chbossshadow_update, func_80326224, chbossshadow_draw,
0, 0, 0.0f, 0

View File

@@ -112,7 +112,7 @@ ActorAnimationInfo D_803913A0[] = {
{ 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,
1, D_803913A0,
chfinalboss_update, func_80326224, chfinalboss_draw,

View File

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

View File

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

View File

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

View File

@@ -19,14 +19,14 @@ typedef struct {
void func_8038F620(Actor *this);
/* .data */
ActorInfo fight_D_80391B00 = {
ActorInfo chSpellFireball = {
MARKER_25C_GRUNTY_SPELL_FIREBALL, ACTOR_389_GRUNTY_SPELL_FIREBALL, ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK,
0x1, NULL,
func_8038F620, func_80326224, actor_draw,
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,
0x1, NULL,
func_8038F620, func_80326224, func_80325CAC,

View File

@@ -10,15 +10,15 @@ extern f32 chbossjinjo_8038D268(void);
void chstonejinjo_update(Actor *);
/* .data */
ActorAnimationInfo fight_D_803919F0[] ={
ActorAnimationInfo chStoneJinjo_AnimationInfo[] ={
{0, 0.0f},
{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,
0x1, fight_D_803919F0,
0x1, chStoneJinjo_AnimationInfo,
chstonejinjo_update, func_80326224, actor_draw,
0, 0x800, 1.0f, 0
};

View File

@@ -3,41 +3,41 @@
#include "variables.h"
#include "prop.h"
extern ActorInfo D_80366F68;
extern ActorInfo fight_D_80391500;
extern ActorInfo D_80391840;
extern ActorInfo D_80391864;
extern ActorInfo D_80391888;
extern ActorInfo D_803918AC;
extern ActorInfo D_80391990;
extern ActorInfo fight_D_80391A10;
extern ActorInfo fight_D_80391A40;
extern ActorInfo D_80391AD0;
extern ActorInfo fight_D_80391B00;
extern ActorInfo D_80391B24;
extern ActorInfo D_80391DC0;
extern ActorInfo D_80392018;
extern ActorInfo D_80392090;
extern ActorInfo chFightFlightPad;
extern ActorInfo chFinalBoss;
extern ActorInfo chBossJinjoOrange;
extern ActorInfo chBossJinjoGreen;
extern ActorInfo chBossJinjoPink;
extern ActorInfo chBossJinjoYellow;
extern ActorInfo chBossJinjoBase;
extern ActorInfo chStoneJinjo;
extern ActorInfo chJinjonatorBase;
extern ActorInfo chSpellBarrier;
extern ActorInfo chSpellFireball;
extern ActorInfo chSpellGreen;
extern ActorInfo chSpriteSmokeGreen2;
extern ActorInfo chJinjonator;
extern ActorInfo chBossShadow;
/* .bss */
u8 pad_fight_80392740[0x10];
void fight_func_803863F0(void)
{
spawnableActorList_add(&fight_D_80391B00, actor_new, 0X108444);
spawnableActorList_add(&D_80391DC0, actor_new, 0X108444);
spawnableActorList_add(&fight_D_80391500, actor_new, 0X300468);
spawnableActorList_add(&D_80391840, actor_new, 0X8464);
spawnableActorList_add(&D_80391864, actor_new, 0X8464);
spawnableActorList_add(&D_80391888, actor_new, 0X8464);
spawnableActorList_add(&D_803918AC, actor_new, 0X8464);
spawnableActorList_add(&fight_D_80391A10, actor_new, 0X20004);
spawnableActorList_add(&D_80391990, actor_new, 0X800100C);
spawnableActorList_add(&fight_D_80391A40, actor_new, 0X8009404);
spawnableActorList_add(&D_80391B24, actor_new, 0X108444);
spawnableActorList_add(&D_80391AD0, actor_new, 0X101404);
spawnableActorList_add(&D_80366F68, actor_new, 0X100404);
spawnableActorList_add(&D_80392018, actor_new, 0X9464);
spawnableActorList_add(&D_80392090, actor_new, 0X100404);
spawnableActorList_add(&chSpellFireball, actor_new, 0X108444);
spawnableActorList_add(&chSpriteSmokeGreen2, actor_new, 0X108444);
spawnableActorList_add(&chFinalBoss, actor_new, 0X300468);
spawnableActorList_add(&chBossJinjoOrange, actor_new, 0X8464);
spawnableActorList_add(&chBossJinjoGreen, actor_new, 0X8464);
spawnableActorList_add(&chBossJinjoPink, actor_new, 0X8464);
spawnableActorList_add(&chBossJinjoYellow, actor_new, 0X8464);
spawnableActorList_add(&chStoneJinjo, actor_new, 0X20004);
spawnableActorList_add(&chBossJinjoBase, actor_new, 0X800100C);
spawnableActorList_add(&chJinjonatorBase, actor_new, 0X8009404);
spawnableActorList_add(&chSpellGreen, actor_new, 0X108444);
spawnableActorList_add(&chSpellBarrier, actor_new, 0X101404);
spawnableActorList_add(&chFightFlightPad, actor_new, 0X100404);
spawnableActorList_add(&chJinjonator, actor_new, 0X9464);
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 Actor *func_80325CAC(ActorMarker *, Gfx **, Mtx **, Vtx**);
void func_8038FE94(Actor *this);
Actor *func_8038FC40(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void chSpriteSmokeGreen2_update(Actor *this);
Actor *chSpriteSmokeGreen2_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
/* .data */
ActorInfo D_80391DC0 = {
0x25D, 0x38A, ASSET_6C7_SPRITE_SMOKE_GREEN_2,
ActorInfo chSpriteSmokeGreen2 = {
MARKER_25D_SPRITE_SMOKE_GREEN_2, ACTOR_38A_SPRITE_SMOKE_GREEN_2, ASSET_6C7_SPRITE_SMOKE_GREEN_2,
0x1, NULL,
func_8038FE94, func_80326224, func_8038FC40,
chSpriteSmokeGreen2_update, func_80326224, chSpriteSmokeGreen2_draw,
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};
/* .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);
func_80344C2C(1);
return func_80325CAC(marker, gdl, mptr, arg3);
@@ -88,7 +88,7 @@ void func_8038FCF0(ActorMarker *marker, ActorMarker *other_marker){
marker_despawn(actor->marker);
}
void func_8038FE94(Actor *this){
void chSpriteSmokeGreen2_update(Actor *this){
f32 sp54 = time_getDelta();
f32 sp48[3];