document various assets, bsStoredState.c, and stateTimers.c

This commit is contained in:
Banjo Kazooie
2023-02-16 13:21:40 -06:00
parent dd74091cb7
commit 1c4d1b54cd
107 changed files with 1649 additions and 1255 deletions

View File

@@ -519,7 +519,7 @@ segments:
- [0xF5F260, c, code_9900] #DONE - [0xF5F260, c, code_9900] #DONE
- [0xF5F530, c, code_9BD0] #DONE - [0xF5F530, c, code_9BD0] #DONE
- [0xF5FF60, c, code_A600] #DONE - [0xF5FF60, c, code_A600] #DONE
- [0xF60040, c, code_A6E0] #DONE - [0xF60040, c, statetimer] #DONE
- [0xF602C0, c, code_A960] #DONE - [0xF602C0, c, code_A960] #DONE
- [0xF603C0, c, ba/model] #DONE - [0xF603C0, c, ba/model] #DONE
- [0xF60FB0, c, code_B650] #DONE - [0xF60FB0, c, code_B650] #DONE
@@ -553,7 +553,7 @@ segments:
- [0xF68890, c, code_12F30] - [0xF68890, c, code_12F30]
- [0xF68FD0, c, bsList] #DONE - [0xF68FD0, c, bsList] #DONE
- [0xF690E0, c, code_13780] #DONE - [0xF690E0, c, code_13780] #DONE
- [0xF69260, c, code_13900] #DONE - [0xF69260, c, bsStoredState] #DONE
- [0xF69360, c, code_13A00] #DONE - [0xF69360, c, code_13A00] #DONE
- [0xF69920, c, code_13FC0] #DONE - [0xF69920, c, code_13FC0] #DONE
- [0xF69D80, c, code_14420] #DONE - [0xF69D80, c, code_14420] #DONE
@@ -658,14 +658,14 @@ segments:
- [0xF99160, c, code_43800] #DONE - [0xF99160, c, code_43800] #DONE
- [0xF993A0, c, code_43A40] #DONE - [0xF993A0, c, code_43A40] #DONE
- [0xF99630, c, mapspecificflags] #DONE - [0xF99630, c, mapspecificflags] #DONE
- [0xF99A10, c, code_440B0] #DONE - [0xF99A10, c, ch/crab] #DONE
- [0xF9AC70, c, code_45310] #DONE - [0xF9AC70, c, code_45310] #DONE
- [0xF9C240, c, ch/code_468E0] #DONE - [0xF9C240, c, ch/code_468E0] #DONE
- [0xF9C520, c, ch/jinjo] #DONE - [0xF9C520, c, ch/jinjo] #DONE
- [0xF9D1B0, c, ch/beehive] #DONE - [0xF9D1B0, c, ch/beehive] #DONE
- [0xF9D530, c, code_47BD0] #DONE - [0xF9D530, c, code_47BD0] #DONE
- [0xF9EED0, c, ch/soundsource] #DONE - [0xF9EED0, c, ch/soundsource] #DONE
- [0xF9F3D0, c, code_49A70] #DONE - [0xF9F3D0, c, ch/shrapnel] #DONE
- [0xF9FD80, c, ch/gloop] #DONE - [0xF9FD80, c, ch/gloop] #DONE
- [0xFA0050, c, code_4A6F0] #DONE - [0xFA0050, c, code_4A6F0] #DONE
- [0xFA16D0, c, code_4BD70] #DONE - [0xFA16D0, c, code_4BD70] #DONE
@@ -678,7 +678,7 @@ segments:
- [0xFA6330, c, code_509D0] #DONE - [0xFA6330, c, code_509D0] #DONE
- [0xFA7100, c, code_517A0] #DONE - [0xFA7100, c, code_517A0] #DONE
- [0xFA72B0, c, code_51950] #DONE - [0xFA72B0, c, code_51950] #DONE
- [0xFA75F0, c, ch/collectable] #DONE - [0xFA75F0, c, ch/collectible] #DONE
- [0xFA7BF0, c, ch/mole] #DONE - [0xFA7BF0, c, ch/mole] #DONE
- [0xFA8F30, c, ch/molehill] #DONE - [0xFA8F30, c, ch/molehill] #DONE
- [0xFA9370, c, code_53A10] #DONE - [0xFA9370, c, code_53A10] #DONE
@@ -881,8 +881,8 @@ segments:
- [0x102B930, c, code_D5FD0] #DONE - [0x102B930, c, code_D5FD0] #DONE
- [0x102BAE0, c, code_D6180] #DONE - [0x102BAE0, c, code_D6180] #DONE
- [0x102BF60, c, code_D6600] #DONE - [0x102BF60, c, code_D6600] #DONE
- [0x102C9A0, c, code_D7040] #DONE - [0x102C9A0, c, ch/termite] #DONE
- [0x102D670, c, code_D7D10] #DONE - [0x102D670, c, ch/gravestone] #DONE
- [0x102E340, c, code_D89E0] - [0x102E340, c, code_D89E0]
- [0x102F700, c, ch/whipcrack] #DONE - [0x102F700, c, ch/whipcrack] #DONE
- [0x102FD00, c, code_DA3A0] #DONE - [0x102FD00, c, code_DA3A0] #DONE
@@ -956,14 +956,14 @@ segments:
- [0x10358C0, .data, code_43800] - [0x10358C0, .data, code_43800]
- [0x10358F0, .data, code_43A40] - [0x10358F0, .data, code_43A40]
- [0x10359D0, .data, mapspecificflags] - [0x10359D0, .data, mapspecificflags]
- [0x10359E0, .data, code_440B0] - [0x10359E0, .data, ch/crab]
- [0x1035B00, .data, code_45310] - [0x1035B00, .data, code_45310]
- [0x1035B30, .data, ch/code_468E0] - [0x1035B30, .data, ch/code_468E0]
- [0x1035B80, .data, ch/jinjo] - [0x1035B80, .data, ch/jinjo]
- [0x1035C90, .data, ch/beehive] - [0x1035C90, .data, ch/beehive]
- [0x1035CE0, .data, code_47BD0] - [0x1035CE0, .data, code_47BD0]
- [0x1035D10, .data, ch/soundsource] - [0x1035D10, .data, ch/soundsource]
- [0x1035D90, .data, code_49A70] - [0x1035D90, .data, ch/shrapnel]
- [0x1035E00, .data, ch/gloop] - [0x1035E00, .data, ch/gloop]
- [0x1035E60, .data, code_4A6F0] - [0x1035E60, .data, code_4A6F0]
- [0x1035F00, .data, code_4BD70] - [0x1035F00, .data, code_4BD70]
@@ -976,7 +976,7 @@ segments:
- [0x1036520, .data, code_509D0] - [0x1036520, .data, code_509D0]
- [0x1036630, .data, code_517A0] - [0x1036630, .data, code_517A0]
- [0x1036660, .data, code_51950] - [0x1036660, .data, code_51950]
- [0x10366D0, .data, ch/collectable] - [0x10366D0, .data, ch/collectible]
- [0x1036740, .data, ch/mole] - [0x1036740, .data, ch/mole]
- [0x10367D0, .data, ch/molehill] - [0x10367D0, .data, ch/molehill]
- [0x1036840, .data, code_53A10] - [0x1036840, .data, code_53A10]
@@ -1102,8 +1102,8 @@ segments:
- [0x1041770, .data, code_D5FD0] - [0x1041770, .data, code_D5FD0]
- [0x10417F0, .data, code_D6180] - [0x10417F0, .data, code_D6180]
- [0x1041870, .data, code_D6600] - [0x1041870, .data, code_D6600]
- [0x10418E0, .data, code_D7040] - [0x10418E0, .data, ch/termite]
- [0x1041950, .data, code_D7D10] - [0x1041950, .data, ch/gravestone]
- [0x1041A60, .data, code_D89E0] - [0x1041A60, .data, code_D89E0]
- [0x1041AD0, .data, ch/whipcrack] - [0x1041AD0, .data, ch/whipcrack]
- [0x1041B00, .data, code_DA3A0] - [0x1041B00, .data, code_DA3A0]
@@ -1222,12 +1222,12 @@ segments:
- [0x1044E30, .rodata, code_42CB0] - [0x1044E30, .rodata, code_42CB0]
- [0x1044E40, .rodata, ch/trainers] - [0x1044E40, .rodata, ch/trainers]
- [0x1044E50, .rodata, code_43800] - [0x1044E50, .rodata, code_43800]
- [0x1044E60, .rodata, code_440B0] - [0x1044E60, .rodata, ch/crab]
- [0x1044EB0, .rodata, code_45310] - [0x1044EB0, .rodata, code_45310]
- [0x1044F30, .rodata, ch/jinjo] - [0x1044F30, .rodata, ch/jinjo]
- [0x1044FA0, .rodata, ch/beehive] - [0x1044FA0, .rodata, ch/beehive]
- [0x1044FB0, .rodata, code_47BD0] - [0x1044FB0, .rodata, code_47BD0]
- [0x1045010, .rodata, code_49A70] - [0x1045010, .rodata, ch/shrapnel]
- [0x1045030, .rodata, ch/gloop] - [0x1045030, .rodata, ch/gloop]
- [0x1045040, .rodata, code_4A6F0] - [0x1045040, .rodata, code_4A6F0]
- [0x10450F0, .rodata, code_4C020] - [0x10450F0, .rodata, code_4C020]
@@ -1352,8 +1352,8 @@ segments:
- [0x1048220, .rodata, code_D5D10] - [0x1048220, .rodata, code_D5D10]
- [0x1048230, .rodata, code_D6180] - [0x1048230, .rodata, code_D6180]
- [0x1048240, .rodata, code_D6600] - [0x1048240, .rodata, code_D6600]
- [0x1048280, .rodata, code_D7040] - [0x1048280, .rodata, ch/termite]
- [0x10482F0, .rodata, code_D7D10] - [0x10482F0, .rodata, ch/gravestone]
- [0x1048390, .rodata, code_D89E0] - [0x1048390, .rodata, code_D89E0]
- [0x10483C0, .rodata, code_D89E0] - [0x10483C0, .rodata, code_D89E0]
- [0x1048430, .rodata, ch/whipcrack] - [0x1048430, .rodata, ch/whipcrack]
@@ -1377,7 +1377,7 @@ segments:
- [0x1048560, .bss, code_9900] - [0x1048560, .bss, code_9900]
- [0x1048560, .bss, code_9BD0] - [0x1048560, .bss, code_9BD0]
- [0x1048560, .bss, code_A600] - [0x1048560, .bss, code_A600]
- [0x1048560, .bss, code_A6E0] - [0x1048560, .bss, statetimer]
- [0x1048560, .bss, ba/model] - [0x1048560, .bss, ba/model]
- [0x1048560, .bss, code_B650] - [0x1048560, .bss, code_B650]
- [0x1048560, .bss, code_BB50] - [0x1048560, .bss, code_BB50]
@@ -1409,7 +1409,7 @@ segments:
- [0x1048560, .bss, code_12F30] - [0x1048560, .bss, code_12F30]
- [0x1048560, .bss, bsList] - [0x1048560, .bss, bsList]
- [0x1048560, .bss, code_13780] - [0x1048560, .bss, code_13780]
- [0x1048560, .bss, code_13900] - [0x1048560, .bss, bsStoredState]
- [0x1048560, .bss, code_13A00] - [0x1048560, .bss, code_13A00]
- [0x1048560, .bss, code_13FC0] - [0x1048560, .bss, code_13FC0]
- [0x1048560, .bss, code_14420] - [0x1048560, .bss, code_14420]

View File

@@ -7,7 +7,7 @@
*/ */
// Flag set used when collecting an already-unlocked Stop 'n' Swop item in-game // Flag set used when collecting an already-unlocked Stop 'n' Swop item in-game
#define SNS_COLLECTED (0) #define SNS_COLLECTED (0)
// Flag set used when making a Stop 'n' Swop item visible and collectable in-game // Flag set used when making a Stop 'n' Swop item visible and collectible in-game
#define SNS_UNLOCKED (1) #define SNS_UNLOCKED (1)
/** /**

View File

@@ -185,7 +185,7 @@ void bsjump_fall_init(void);
void bsjump_fall_update(void); void bsjump_fall_update(void);
void bsjump_fall_end(void); void bsjump_fall_end(void);
//BS_30_DIVE_ENTER //BS_30_DIVE_ENTER
void func_802A7DAC(void); void bsSwim_dive_init(void);
void func_802A7E2C(void); void func_802A7E2C(void);
void func_802A7F4C(void); void func_802A7F4C(void);
//BS_ROLL(void); //BS_ROLL(void);
@@ -348,7 +348,7 @@ void func_802A4548(void);
void func_802A4664(void); void func_802A4664(void);
void func_802A505C(void); void func_802A505C(void);
//0x58 //0x58
void func_802A4748(void); void bsbfly_beakbomb_crash_init(void);
void func_802A48B4(void); void func_802A48B4(void);
void func_802A4A40(void); void func_802A4A40(void);

View File

@@ -0,0 +1,27 @@
#ifndef _STATE_TIMER_
#define _STATE_TIMER_
#include <ultra64.h>
#include "structs.h"
enum state_timer_e{
STATE_TIMER_0_UNKNOWN,
STATE_TIMER_1_THROW = 1,
STATE_TIMER_2_LONGLEG,
STATE_TIMER_3_TURBO_TALON,
STATE_TIMER_4_UNKNOWN,
STATE_TIMER_5_UNKNOWN, //slide timer
STATE_TIMER_6_UNKNOWN //trot slide timer
};
f32 stateTimer_get(enum state_timer_e timer_id);
f32 stateTimer_getPrevious(enum state_timer_e timer_id);
bool stateTimer_isActive(enum state_timer_e timer_id);
bool stateTimer_isDone(enum state_timer_e timer_id);
bool stateTimer_isAt(enum state_timer_e timer_id, f32 value);
void stateTimer_free(void);
void stateTimer_init(void);
void stateTimer_clear(enum state_timer_e timer_id);
void stateTimer_set(enum state_timer_e timer_id, f32 value);
void stateTimer_update(void);
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -297,17 +297,11 @@ void func_8028A274(enum asset_e, f32);
void func_8028A3B8(f32, f32); void func_8028A3B8(f32, f32);
int func_8028AED4(f32*, f32); int func_8028AED4(f32*, f32);
void func_8028E668(f32[3], f32, f32, f32); void func_8028E668(f32[3], f32, f32, f32);
f32 func_8028E80C(s32);
bool func_8028F364(f32[3], f32, f32, enum actor_e actor_id, Actor**); bool func_8028F364(f32[3], f32, f32, enum actor_e actor_id, Actor**);
void func_8028FA54(f32[3]); void func_8028FA54(f32[3]);
f32 func_802915D8(void); f32 func_802915D8(void);
f32 func_80291604(void); f32 func_80291604(void);
f32 func_80291670(s32);
f32 func_80291684(s32);
int func_80291698(s32);
int func_80291700(s32, f32);
void func_802917E4(s32, f32);
void baModel_80291A50(s32 arg0, f32* arg1); void baModel_80291A50(s32 arg0, f32* arg1);
void baModel_80292078(s32, f32); void baModel_80292078(s32, f32);
@@ -364,11 +358,11 @@ void func_80299CF4(enum sfx_e, f32, s32);
void func_80299D2C(enum sfx_e, f32, s32); void func_80299D2C(enum sfx_e, f32, s32);
void func_80289EC8(f32, f32, f32, f32); void func_80289EC8(f32, f32, f32, f32);
void func_80289EF8(f32); void func_80289EF8(f32);
f32 func_8029A900(void); f32 bsStoredState_getLongLegTimer(void);
f32 func_8029A90C(void); f32 bsStoredState_getTurboTimer(void);
void func_8029A968(f32); void bsStoredState_setLongLegTimer(f32);
void func_8029A980(s32); void bsStoredState_setTrot(bool);
void func_8029A974(f32); void bsStoredState_setTurboTimer(f32);
void func_8029AD28(f32, s32); void func_8029AD28(f32, s32);
f32 func_8029B2DC(void); f32 func_8029B2DC(void);
f32 func_8029B2E8(void); f32 func_8029B2E8(void);

View File

@@ -839,7 +839,7 @@ typedef struct {
typedef struct { typedef struct {
enum actor_e actor_id; int actor_id;
struct actorMarker_s *marker; struct actorMarker_s *marker;
f32 position[3]; f32 position[3];
void (*unk14)(struct actor_s *, struct actorMarker_s *); void (*unk14)(struct actor_s *, struct actorMarker_s *);
@@ -847,7 +847,7 @@ typedef struct {
}Struct81s; }Struct81s;
typedef struct { typedef struct {
enum actor_e actor_id; int actor_id;
struct actorMarker_s *marker; struct actorMarker_s *marker;
f32 position[3]; f32 position[3];
void (*unk14)(struct actor_s *, struct actorMarker_s *); void (*unk14)(struct actor_s *, struct actorMarker_s *);

View File

@@ -10,13 +10,13 @@ void func_8038F06C(Actor *this);
ActorAnimationInfo D_80390B90[] = { ActorAnimationInfo D_80390B90[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0x00, 0.0f}, {0x00, 0.0f},
{0xD4, 0.15f}, {ASSET_D4_ANIM_SWITCH_DOWN, 0.15f},
{0xD5, 0.5f}, {ASSET_D5_ANIM_SWITCH_UP, 0.5f},
{0x00, 0.0f}, {0x00, 0.0f},
{0x00, 0.0f}, {0x00, 0.0f},
{0xD4, 0.15f}, {ASSET_D4_ANIM_SWITCH_DOWN, 0.15f},
{0xD5, 0.5f}, {ASSET_D5_ANIM_SWITCH_UP, 0.5f},
{0xD5, 1e+8f} {ASSET_D5_ANIM_SWITCH_UP, 1e+8f}
}; };
ActorInfo D_80390BD8 = {MARKER_F5_BGS_ELEVATED_WALKWAY_SWITCH, ACTOR_14E_BGS_ELEVATED_WALKWAY_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038EEA4, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_80390BD8 = {MARKER_F5_BGS_ELEVATED_WALKWAY_SWITCH, ACTOR_14E_BGS_ELEVATED_WALKWAY_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038EEA4, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80390BFC = {MARKER_FD_BGS_MAZE_SWITCH, ACTOR_1FB_BGS_MAZE_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038F06C, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo D_80390BFC = {MARKER_FD_BGS_MAZE_SWITCH, ACTOR_1FB_BGS_MAZE_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038F06C, func_80326224, func_80325888, 0, 0, 0.0f, 0};

View File

@@ -1,9 +1,12 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
/* TODO move declarations to respective headers*/ /* TODO move declarations to respective headers*/
void func_8028F710(s32, f32); extern void player_stateTimer_set(enum state_timer_e, f32);
extern f32 player_stateTimer_get(enum state_timer_e);
void func_802C4218(u32,f32,f32,f32); void func_802C4218(u32,f32,f32,f32);
void func_80328A84(Actor *, u32); void func_80328A84(Actor *, u32);
@@ -17,8 +20,8 @@ void chmudhut_update(Actor *this);
ActorAnimationInfo D_80390B30[4] = { ActorAnimationInfo D_80390B30[4] = {
{0, 0.0f}, {0, 0.0f},
{0, 0.0f}, {0, 0.0f},
{anim_mudhut_smashing, 0.25f}, {ASSET_4E_ANIM_MUDHUT_SMASH, 0.25f},
{anim_mudhut_smashing, 1000000.0f} {ASSET_4E_ANIM_MUDHUT_SMASH, 1000000.0f}
}; };
u32 D_80390B50[6] = {0xA, 0xA, 0xB, 0xA, 0xA, 0xC}; u32 D_80390B50[6] = {0xA, 0xA, 0xB, 0xA, 0xA, 0xC};
@@ -30,8 +33,8 @@ ActorInfo D_80390B68 = {MARKER_D5_BGS_MUD_HUT, ACTOR_C_MUD_HUT, ASSET_7D8_MODEL_
/* .code section */ /* .code section */
void func_8038EA30(void){ void func_8038EA30(void){
if((getGameMode() != GAME_MODE_7_ATTRACT_DEMO) && (1.5 < func_8028E80C(2)) ){ if((getGameMode() != GAME_MODE_7_ATTRACT_DEMO) && (1.5 < player_stateTimer_get(2)) ){
func_8028F710(2, 1.5); player_stateTimer_set(STATE_TIMER_2_LONGLEG, 1.5);
} }
} }

View File

@@ -621,7 +621,7 @@ void chvilegame_update(Actor *this) {
item_set(ITEM_1A_PLAYER_VILE_SCORE, local->player_score); item_set(ITEM_1A_PLAYER_VILE_SCORE, local->player_score);
item_set(ITEM_1B_VILE_VILE_SCORE, local->vile_score); item_set(ITEM_1B_VILE_VILE_SCORE, local->vile_score);
if ((sp2C != 0) && (local->player_score == 0)) { if ((sp2C != 0) && (local->player_score == 0)) {
func_802FA5D0(); itemPrint_reset();
} }
if (item_empty(ITEM_6_HOURGLASS)) { if (item_empty(ITEM_6_HOURGLASS)) {
if (func_803203FC(2)) { if (func_803203FC(2)) {

View File

@@ -41,9 +41,9 @@ ActorInfo D_80391E50 = { MARKER_1FC_POLAR_BEAR_CUB_RED, ACTOR_1EC_POLAR_BEAR_CUB
f32 FP_D_80391E74[3] = {-5.0f, 180.0f, 1.0f}; f32 FP_D_80391E74[3] = {-5.0f, 180.0f, 1.0f};
Struct_FP_3E00 D_80391E80[] ={ Struct_FP_3E00 D_80391E80[] ={
{0x11, MARKER_1FD_BLUE_PRESENT_COLLECTABLE, ACTOR_1ED_BLUE_PRESENT_COLLECTABLE, 0x1EE}, {0x11, MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE, 0x1EE},
{0x12, MARKER_1FE_GREEN_PRESENT_COLLECTABLE, ACTOR_1EF_GREEN_PRESENT_COLLECTABLE, 0x1F0}, {0x12, MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE, 0x1F0},
{0x13, MARKER_1FF_RED_PRESENT_COLLECTABLE, ACTOR_1F1_RED_PRESENT_COLLECTABLE, 0x1F2} {0x13, MARKER_1FF_RED_PRESENT_COLLECTIBLE, ACTOR_1F1_RED_PRESENT_COLLECTIBLE, 0x1F2}
}; };
/* .code */ /* .code */

View File

@@ -7,7 +7,7 @@ void func_8038F144(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_803924A0[] = { ActorAnimationInfo D_803924A0[] = {
{0, 0.0f}, {0, 0.0f},
{ASSET_18A_XMAS_GIFT, 1.5f} {ASSET_18A_ANIM_XMAS_GIFT, 1.5f}
}; };
ActorInfo D_803924B0 = { MARKER_208_BLUE_PRESENT, ACTOR_33A_BLUE_PRESENT, ASSET_47F_MODEL_XMAS_GIFT_BLUE, ActorInfo D_803924B0 = { MARKER_208_BLUE_PRESENT, ACTOR_33A_BLUE_PRESENT, ASSET_47F_MODEL_XMAS_GIFT_BLUE,

View File

@@ -2,7 +2,9 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
extern void func_8028F710(s32, f32);
#include "core2/statetimer.h"
extern void player_stateTimer_set(s32, f32);
typedef struct { typedef struct {
ActorMarker *marker; ActorMarker *marker;
@@ -265,7 +267,7 @@ void func_8038B2C8(ActorMarker *caller, enum asset_e text_id, s32 arg2){
void func_8038B39C(void){ void func_8038B39C(void){
if(jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2) && func_8028ECAC() == BSGROUP_6_TURBO_TALON_TRAINERS){ if(jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2) && func_8028ECAC() == BSGROUP_6_TURBO_TALON_TRAINERS){
func_8028F710(3, 2.0f); player_stateTimer_set(STATE_TIMER_3_TURBO_TALON, 2.0f);
} }
func_8028F918(1); func_8028F918(1);
func_8025A6EC(COMUSIC_3B_MINIGAME_VICTORY, 28000); func_8025A6EC(COMUSIC_3B_MINIGAME_VICTORY, 28000);
@@ -323,7 +325,7 @@ void func_8038B544(void){
case 2: //L8038B61C case 2: //L8038B61C
if(jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2) && func_8028ECAC() == BSGROUP_6_TURBO_TALON_TRAINERS){ if(jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2) && func_8028ECAC() == BSGROUP_6_TURBO_TALON_TRAINERS){
func_8028F710(3, 20.0f); player_stateTimer_set(STATE_TIMER_3_TURBO_TALON, 20.0f);
} }
if(D_80392F70[0x26].marker == NULL) break; if(D_80392F70[0x26].marker == NULL) break;

View File

@@ -12,14 +12,14 @@ Actor *func_8038DA18(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .data */
ActorAnimationInfo D_803912E0[] = { ActorAnimationInfo D_803912E0[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0xD1, 800000.0f}, {ASSET_D1_ANIM_HISTUP_HIDE, 800000.0f},
{0xE2, 2.0f}, {ASSET_E2_ANIM_HISTUP_PEEK, 2.0f},
{0xD1, 800000.0f}, {ASSET_D1_ANIM_HISTUP_HIDE, 800000.0f},
{0xD0, 6.0f}, {ASSET_D0_ANIM_HISTUP_GROW, 6.0f},
{0xCF, 2.0f}, {ASSET_CF_ANIM_HISTUP_RAISED, 2.0f},
{0xD1, 1.6f}, {ASSET_D1_ANIM_HISTUP_HIDE, 1.6f},
}; };
ActorInfo D_80391318 = { 0xAA, 0x11C, 0x3DE, ActorInfo D_80391318 = { MARKER_AA_HISTUP, ACTOR_11C_HISTUP, ASSET_3DE_MODEL_HISTUP,
0x1, D_803912E0, 0x1, D_803912E0,
func_8038DBDC, func_80326224, func_8038DA18, func_8038DBDC, func_80326224, func_8038DA18,
2500, 0, 1.7f, 0 2500, 0, 1.7f, 0

View File

@@ -7,11 +7,11 @@ void func_80389B1C(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80390EA0[] = { ActorAnimationInfo D_80390EA0[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0xDF, 4.5f}, {ASSET_DF_ANIM_RUBEE_PET_TOOTS, 4.5f},
{0xE3, 2.0f}, {ASSET_E3_ANIM_RUBEE_IDLE, 2.0f},
{0xE4, 1.95f}, {ASSET_E4_ANIM_RUBEE_PLAY, 1.95f},
{0xCE, 2.4f}, {ASSET_CE_ANIM_RUBEE_STOP_PLAYING, 2.4f},
{0xDF, 4.5f} {ASSET_DF_ANIM_RUBEE_PET_TOOTS, 4.5f}
}; };
ActorInfo D_80390ED0 = { MARKER_A9_RUBEE, ACTOR_11B_RUBEE, ASSET_3DD_MODEL_RUBEE, ActorInfo D_80390ED0 = { MARKER_A9_RUBEE, ACTOR_11B_RUBEE, ASSET_3DD_MODEL_RUBEE,

View File

@@ -2,7 +2,9 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
extern void func_8028F710(s32, f32); #include "core2/statetimer.h"
extern void player_stateTimer_set(s32, f32);
extern f32 player_stateTimer_get(enum state_timer_e);
/* .data */ /* .data */
//TODO Implement CRC calculation in Makefile(?) //TODO Implement CRC calculation in Makefile(?)
@@ -13,8 +15,8 @@ u32 D_80390F38 = 0x0003031C; //GV.data CRC1 (with this value = 0)
/* .code */ /* .code */
void func_80389F00(void){ void func_80389F00(void){
if(getGameMode() != GAME_MODE_7_ATTRACT_DEMO && 2.0f < func_8028E80C(3)){ if(getGameMode() != GAME_MODE_7_ATTRACT_DEMO && 2.0f < player_stateTimer_get(STATE_TIMER_3_TURBO_TALON)){
func_8028F710(3, 2.0f); player_stateTimer_set(STATE_TIMER_3_TURBO_TALON, 2.0f);
} }
} }

View File

@@ -12,11 +12,11 @@ Actor *func_8038A180(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .data */
ActorAnimationInfo D_80390FA0[] = { ActorAnimationInfo D_80390FA0[] = {
{0, 0.0f}, {0, 0.0f},
{0xC9, 2.0f}, {ASSET_C9_ANIM_MAGIC_CARPET, 2.0f},
{0xC9, 2.0f}, {ASSET_C9_ANIM_MAGIC_CARPET, 2.0f},
{0xC9, 2.0f}, {ASSET_C9_ANIM_MAGIC_CARPET, 2.0f},
{0xC9, 2.0f}, {ASSET_C9_ANIM_MAGIC_CARPET, 2.0f},
{0xC9, 2.0f}, {ASSET_C9_ANIM_MAGIC_CARPET, 2.0f},
}; };
ActorInfo D_80390FD0 = { MARKER_B0_MAGIC_CARPET_2, ACTOR_123_MAGIC_CARPET_2, ASSET_3DC_MODEL_MAGIC_CARPET, ActorInfo D_80390FD0 = { MARKER_B0_MAGIC_CARPET_2, ACTOR_123_MAGIC_CARPET_2, ASSET_3DC_MODEL_MAGIC_CARPET,
0x1, D_80390FA0, 0x1, D_80390FA0,
@@ -35,7 +35,7 @@ Actor *func_8038A180(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
if( this->unk54 == 0.0f if( this->unk54 == 0.0f
&& this->unk48 != this->unk1C[1] && this->unk48 != this->unk1C[1]
&& this_marker->unk14_21 && this_marker->unk14_21
&& func_80329530(this, 0xbb8) && func_80329530(this, 3000)
){ ){
func_8033E73C(this->marker, 6, func_80329904); func_8033E73C(this->marker, 6, func_80329904);
func_8033E3F0(0xc, this->marker->unk14_21); func_8033E3F0(0xc, this->marker->unk14_21);

View File

@@ -13,7 +13,7 @@ Actor *func_8038A7A0(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .data */
ActorAnimationInfo D_80391000[] = { ActorAnimationInfo D_80391000[] = {
{0, 0.0f}, {0, 0.0f},
{0xC9, 2.0f} {ASSET_C9_ANIM_MAGIC_CARPET, 2.0f}
}; };
ActorInfo D_80391010 = { MARKER_A7_MAGIC_CARPET_1, ACTOR_119_MAGIC_CARPET_1, ASSET_3DC_MODEL_MAGIC_CARPET, ActorInfo D_80391010 = { MARKER_A7_MAGIC_CARPET_1, ACTOR_119_MAGIC_CARPET_1, ASSET_3DC_MODEL_MAGIC_CARPET,
@@ -101,7 +101,7 @@ void GV_func_8038A9C0(Actor *this){
} }
this->unk1C[2] = this->unk1C[1]; this->unk1C[2] = this->unk1C[1];
this->unk1C[1] = this->unk48; this->unk1C[1] = this->unk48;
if(this->unk100 && sp24 && this->unk100->unk14_20 == MARKER_AF_MAGIC_CARPET_SHADOW){ if(this->unk100 != NULL && sp24 != NULL && this->unk100->unk14_20 == MARKER_AF_MAGIC_CARPET_SHADOW){
sp24->unk1C[0] = func_8038A860(sp24, this); sp24->unk1C[0] = func_8038A860(sp24, this);
} }
} }

View File

@@ -124,7 +124,7 @@ void func_8038AFF4(ActorMarker *this_marker, ActorMarker *other_marker){
Actor *this = marker_getActor(this_marker); Actor *this = marker_getActor(this_marker);
func_8032B4DC(this, other_marker, 0xC); func_8032B4DC(this, other_marker, 0xC);
actor_collisionOff(this); actor_collisionOff(this);
func_80328B8C(this, ASSET_9_ANIM_BANJO_DIE, 0.00001f, 1); func_80328B8C(this, ASSET_9_ANIM_BSDIE, 0.00001f, 1);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
this->unk1C[0] = 0.0f; this->unk1C[0] = 0.0f;
func_8030E878(SFX_D7_GRABBA_DEATH, 1.0f, 32000, this->position, 2250.0f, 4500.0f); func_8030E878(SFX_D7_GRABBA_DEATH, 1.0f, 32000, this->position, 2250.0f, 4500.0f);

View File

@@ -3,7 +3,9 @@
#include "variables.h" #include "variables.h"
extern void func_8025AE50(s32, f32); extern void func_8025AE50(s32, f32);
extern void func_8028F710(s32, f32);
#include "core2/statetimer.h"
extern void player_stateTimer_set(s32, f32);
typedef struct { typedef struct {
s32 unk0; s32 unk0;
@@ -59,7 +61,7 @@ void func_8038BA08(Actor *this){
this->unk100 = NULL; this->unk100 = NULL;
D_80391A80 = 3; D_80391A80 = 3;
if(func_8028ECAC() == BSGROUP_6_TURBO_TALON_TRAINERS) if(func_8028ECAC() == BSGROUP_6_TURBO_TALON_TRAINERS)
func_8028F710(3, 0.0f); player_stateTimer_set(STATE_TIMER_3_TURBO_TALON, 0.0f);
func_80311480(ASSET_A79_TEXT_GRABBA_DEFEAT, 0xf, this->position, this->marker, func_8038B988, NULL); func_80311480(ASSET_A79_TEXT_GRABBA_DEFEAT, 0xf, this->position, this->marker, func_8038B988, NULL);
comusic_8025AB44(COMUSIC_57_TURBO_TRAINERS, 7000, 700); comusic_8025AB44(COMUSIC_57_TURBO_TRAINERS, 7000, 700);

View File

@@ -44,7 +44,7 @@ ActorAnimationInfo chCongaAnimations[9] = {
{ASSET_54_ANIM_CONGA_THROW, 1.4f}, {ASSET_54_ANIM_CONGA_THROW, 1.4f},
{ASSET_55_ANIM_CONGA_BEAT_CHEST, 0.4f}, {ASSET_55_ANIM_CONGA_BEAT_CHEST, 0.4f},
{ASSET_56_ANIM_CONGA_RAISE_ARMS, 0.9f}, {ASSET_56_ANIM_CONGA_RAISE_ARMS, 0.9f},
{0xA2, 1.6f}, {ASSET_A2_ANIM_CONGA_THROW_2, 1.6f},
{ASSET_52_ANIM_CONGA_OW, 1.0f} {ASSET_52_ANIM_CONGA_OW, 1.0f}
}; };
@@ -223,7 +223,7 @@ void func_803876D0(Actor *this){
func_80304D4C(sp40, &((ActorLocal_Conga *)&this->local)->unk10); func_80304D4C(sp40, &((ActorLocal_Conga *)&this->local)->unk10);
} }
if(0.0f == this->unk28){ if(0.0f == this->unk28){
this->unk28 = (actorArray_findActorFromMarkerId(MARKER_36_ORANGE_COLLECTABLE) != NULL)? 2.0f: 1.0f; this->unk28 = (actorArray_findActorFromMarkerId(MARKER_36_ORANGE_COLLECTIBLE) != NULL)? 2.0f: 1.0f;
} }
if(0.0f != this->velocity_x){ if(0.0f != this->velocity_x){
this->velocity_x -= 1.0f; this->velocity_x -= 1.0f;

View File

@@ -28,16 +28,16 @@ void func_80388A80(Actor *);
/* .data */ /* .data */
ActorAnimationInfo chGrublinAnimations[11] = { ActorAnimationInfo chGrublinAnimations[11] = {
{0, 0.0f}, {0, 0.0f},
{0x62, 4.0f}, {ASSET_62_ANIM_GRUBLIN_IDLE, 4.0f},
{0x62, 0.7f}, {ASSET_62_ANIM_GRUBLIN_IDLE, 0.7f},
{0x63, 0.7f}, {ASSET_63_ANIM_GRUBLIN_WALK, 0.7f},
{0x64, 0.9f}, {ASSET_64_ANIM_GRUBLIN_JUMP, 0.9f},
{ASSET_94_ANIM_GRUBLIN_DIE, 1.0f}, {ASSET_94_ANIM_GRUBLIN_DIE, 1.0f},
{0x62, 1.5f}, {ASSET_62_ANIM_GRUBLIN_IDLE, 1.5f},
{0x63, 0.5f}, {ASSET_63_ANIM_GRUBLIN_WALK, 0.5f},
{0x62, 1.5f}, {ASSET_62_ANIM_GRUBLIN_IDLE, 1.5f},
{0x62, 1000000.0f}, {ASSET_62_ANIM_GRUBLIN_IDLE, 1000000.0f},
{0x62, 1000000.0f} {ASSET_62_ANIM_GRUBLIN_IDLE, 1000000.0f}
}; };
ActorInfo chgrublinInfo = { MARKER_5_GRUBLIN, ACTOR_6_GRUBLIN, ASSET_3C5_MODEL_GRUBLIN, ActorInfo chgrublinInfo = { MARKER_5_GRUBLIN, ACTOR_6_GRUBLIN, ASSET_3C5_MODEL_GRUBLIN,

View File

@@ -23,19 +23,10 @@ extern s32 D_8037DCB0; //mm_hut_smash_count
/* .data */ /* .data */
ActorAnimationInfo chhutAnimations[3] = { ActorAnimationInfo chhutAnimations[3] = {
{0, 0.0f}, {0, 0.0f},
{0x4E, 0.25f}, {ASSET_4E_ANIM_MUDHUT_SMASH, 0.25f},
{0x4E, 1000000.0f} {ASSET_4E_ANIM_MUDHUT_SMASH, 1000000.0f}
}; };
s32 D_803898D8[6] = { 0, 1, 2, 3, 6, 4};
ActorInfo chhutInfo = { MARKER_51_MM_HUT, ACTOR_9_MM_HUT, ASSET_7D7_MODEL_MM_HUT,
0, chhutAnimations,
chhut_update, func_80326224, chhut_draw,
0, 0x100, 0.0f, 0
};
/* .code */ /* .code */
Actor *chhut_draw(ActorMarker *this, Gfx **arg1, Mtx **arg2, Vtx **arg3){ Actor *chhut_draw(ActorMarker *this, Gfx **arg1, Mtx **arg2, Vtx **arg3){
Actor *actorPtr; Actor *actorPtr;
@@ -64,6 +55,7 @@ void func_803869EC(ActorMarker *this){
} }
void chhut_update(Actor *this){ void chhut_update(Actor *this){
static s32 D_803898D8[6] = { 0, 1, 2, 3, 6, 4};
f32 sp3C[3]; f32 sp3C[3];
f32 sp30[3]; f32 sp30[3];
@@ -119,3 +111,9 @@ void chhut_update(Actor *this){
void mm_resetHuts(void){ void mm_resetHuts(void){
D_8037DCB0 = 0; D_8037DCB0 = 0;
} }
ActorInfo chhutInfo = { MARKER_51_MM_HUT, ACTOR_9_MM_HUT, ASSET_7D7_MODEL_MM_HUT,
0, chhutAnimations,
chhut_update, func_80326224, chhut_draw,
0, 0x100, 0.0f, 0
};

View File

@@ -12,28 +12,28 @@ s32 func_8028F31C(f32 *, f32, s32, Actor **);
void func_8028FA34(s32, Actor *); void func_8028FA34(s32, Actor *);
void func_803885D0(Actor *); void chLMonkey_update(Actor *);
/* .data */ /* .data */
ActorAnimationInfo chlmonkeyAnimations[5] = { ActorAnimationInfo chlmonkeyAnimations[5] = {
{0, 0.0f}, {0, 0.0f},
{0x5C, 2.3f}, {ASSET_5C_ANIM_CHIMPY_IDLE, 2.3f},
{0x5B, 0.67f}, {ASSET_5B_ANIM_CHIMPY_JUMP, 0.67f},
{0x5D, 0.5f}, {ASSET_5D_ANIM_CHIMPY_WALK, 0.5f},
{0x5C, 2.3f} {ASSET_5C_ANIM_CHIMPY_IDLE, 2.3f}
}; };
ActorInfo chlmonkeyInfo = { MARKER_A_CHIMPY, ACTOR_F_CHIMPY, ASSET_35D_MODEL_CHIMPY, ActorInfo chlmonkeyInfo = { MARKER_A_CHIMPY, ACTOR_F_CHIMPY, ASSET_35D_MODEL_CHIMPY,
1, chlmonkeyAnimations, 1, chlmonkeyAnimations,
NULL, func_803885D0, func_80325888, NULL, chLMonkey_update, func_80325888,
2500, 0, 0.8f, 0 2500, 0, 0.8f, 0
}; };
/* .code */ /* .code */
void func_80388300(Actor **arg0){ void func_80388300(Actor **arg0){
func_8028F31C((*arg0)->position, 800.0f, ACTOR_29_ORANGE_COLLECTABLE, arg0); func_8028F31C((*arg0)->position, 800.0f, ACTOR_29_ORANGE_COLLECTIBLE, arg0);
if( func_80329530(*arg0, 0x159) if( func_80329530(*arg0, 345)
&& carriedObj_getMarkerId() == MARKER_36_ORANGE_COLLECTABLE && carriedObj_getMarkerId() == MARKER_36_ORANGE_COLLECTIBLE
&& func_8028FC34() && func_8028FC34()
){ ){
func_8028FA34(0xc6, *arg0); func_8028FA34(0xc6, *arg0);
@@ -61,30 +61,30 @@ void MM_func_803883AC(Actor *this){
} }
} }
void func_803884C0(s32 x, s32 y, s32 z){ void __chLMonkey_spawnJiggy(s32 x, s32 y, s32 z){
f32 sp1C[3]; f32 sp1C[3];
TUPLE_ASSIGN(sp1C, x, y, z); TUPLE_ASSIGN(sp1C, x, y, z);
jiggySpawn(JIGGY_9_MM_CHIMPY, sp1C); jiggySpawn(JIGGY_9_MM_CHIMPY, sp1C);
} }
void func_80388514(ActorMarker *marker, enum asset_e arg1, s32 arg2){ void __chLMonkey_complete(ActorMarker *marker, enum asset_e arg1, s32 arg2){
Actor * actor = marker_getActor(marker); Actor * actor = marker_getActor(marker);
mapSpecificFlags_set(4,1); mapSpecificFlags_set(4,1);
func_80328A84(actor, 3); func_80328A84(actor, 3);
timed_setCameraToNode(2.3f, 0x12); timed_setCameraToNode(2.3f, 0x12);
timedFunc_set_3(2.9f,func_803884C0, actor->position_x, actor->position_y + 150.0f, actor->position_z); timedFunc_set_3(2.9f,__chLMonkey_spawnJiggy, actor->position_x, actor->position_y + 150.0f, actor->position_z);
func_80324E88(4.3f); func_80324E88(4.3f);
func_80324E38(4.3f, 0); func_80324E38(4.3f, 0);
} }
void func_803885D0(Actor *this){ void chLMonkey_update(Actor *this){
func_8028E668(this->position, 35.0f, 0.0f, 65.0f); func_8028E668(this->position, 35.0f, 0.0f, 65.0f);
actor_collisionOff(this); actor_collisionOff(this);
this->marker->propPtr->unk8_3 = 1; this->marker->propPtr->unk8_3 = 1;
if(map_get() != MAP_2_MM_MUMBOS_MOUNTAIN){ if(map_get() != MAP_2_MM_MUMBOS_MOUNTAIN){
func_80343DEC(this); func_80343DEC(this);
}else{//L80388630 }else{//L80388630
if(func_80329530(this, 0x2BC) && !func_803114B0()){ if(func_80329530(this, 700) && !func_803114B0()){
MM_func_803883AC(this); MM_func_803883AC(this);
}//L8038865C }//L8038865C
switch(this->state){ switch(this->state){
@@ -92,18 +92,18 @@ void func_803885D0(Actor *this){
if(mapSpecificFlags_get(2)){ if(mapSpecificFlags_get(2)){
func_80328A84(this, 4); func_80328A84(this, 4);
if(!jiggyscore_isCollected(JIGGY_9_MM_CHIMPY)){ if(!jiggyscore_isCollected(JIGGY_9_MM_CHIMPY)){
func_80311480(0xB40, 0xE, this->position, this->marker, func_80388514, NULL); func_80311480(ASSET_B40_DIALOG_CHIMPY_COMPLETE, 0xE, this->position, this->marker, __chLMonkey_complete, NULL);
}else{//L803886E8 }else{//L803886E8
func_80388514(this->marker, 0xB40, -1); __chLMonkey_complete(this->marker, ASSET_B40_DIALOG_CHIMPY_COMPLETE, -1);
}//L80388898 }//L80388898
}else{ }else{
func_80388300(&this); func_80388300(&this);
if( func_80329530(this, 0x159) if( func_80329530(this, 345)
&& !func_80329530(this, 0x96) && !func_80329530(this, 150)
&& !item_getCount(ITEM_19_ORANGE) && !item_getCount(ITEM_19_ORANGE)
&& !this->unk138_24 && !this->unk138_24
){ ){
func_80311480(0xb3f, 0xe, this->position, NULL, NULL, NULL); func_80311480(ASSET_B3F_DIALOG_CHIMPY_MEET, 0xe, this->position, NULL, NULL, NULL);
this->unk138_24 = 1; this->unk138_24 = 1;
}//L80388774 }//L80388774
actor_loopAnimation(this); actor_loopAnimation(this);

View File

@@ -35,16 +35,16 @@ void chMotzhand_setState(Actor *this, s32 next_state){
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local; ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
if(next_state == 1 && this->state == 0){ if(next_state == 1 && this->state == 0){
func_80335924(this->unk148, 0xa7, 0.0f, 1.8f); func_80335924(this->unk148, ASSET_A7_ANIM_MOTZHAND_IDLE, 0.0f, 1.8f);
func_80387410(this->position); func_80387410(this->position);
} }
if(next_state == 2){ if(next_state == 2){
func_80335924(this->unk148, 0xA7, 0.9f, 1.8f); func_80335924(this->unk148, ASSET_A7_ANIM_MOTZHAND_IDLE, 0.9f, 1.8f);
} }
if(next_state == 3){ if(next_state == 3){
func_80335924(this->unk148, 0xA8, 0.9f, 1.8f); func_80335924(this->unk148, ASSET_A8_ANIM_MOTZHAND_PLAY, 0.9f, 1.8f);
} }
if(next_state == 4){ if(next_state == 4){

View File

@@ -29,7 +29,7 @@ void __chnapper_setState(Actor *this, s32 next_state){
local->unk4 = 0.0f; local->unk4 = 0.0f;
actor_collisionOff(this); actor_collisionOff(this);
if(next_state == 1) if(next_state == 1)
func_80335924(this->unk148, ASSET_A3_ANIM_NAPPER_SLEEPING, 0.2f, 2.5f); func_80335924(this->unk148, ASSET_A3_ANIM_NAPPER_ASLEEP, 0.2f, 2.5f);
if(next_state == 2){ if(next_state == 2){
func_80335924(this->unk148, ASSET_A4_ANIM_NAPPER_AWAKE, 0.2f, 5.0f); func_80335924(this->unk148, ASSET_A4_ANIM_NAPPER_AWAKE, 0.2f, 5.0f);
@@ -39,7 +39,7 @@ void __chnapper_setState(Actor *this, s32 next_state){
} }
if(next_state == 3){ if(next_state == 3){
func_80335924(this->unk148, 0xA5, 0.2f, 1.5f); func_80335924(this->unk148, ASSET_A5_ANIM_NAPPER_WALK, 0.2f, 1.5f);
func_80335A8C(this->unk148, 2); func_80335A8C(this->unk148, 2);
func_8030E484(SFX_41_MUMBO_ERGHHH); func_8030E484(SFX_41_MUMBO_ERGHHH);
} }
@@ -50,7 +50,7 @@ void __chnapper_setState(Actor *this, s32 next_state){
} }
if(next_state == 5){ if(next_state == 5){
func_80335924(this->unk148, 0xA6, 2.0f, 4.0f); func_80335924(this->unk148, ASSET_A6_ANIM_NAPPER_ALERT, 2.0f, 4.0f);
actor_collisionOn(this); actor_collisionOn(this);
local->jiggy_marker->collidable = FALSE; local->jiggy_marker->collidable = FALSE;
} }

View File

@@ -246,7 +246,7 @@ void func_80387E64(Actor *this){
void func_80387F00(Actor *this){ void func_80387F00(Actor *this){
ChVeg *local = (ChVeg *)&this->local; ChVeg *local = (ChVeg *)&this->local;
this->position_y += (mapSpecificFlags_get(0xC) || func_803203FC(0xC1, this)) ? 120.0 : 180.0; this->position_y += (mapSpecificFlags_get(0xC) || func_803203FC(0xC1)) ? 120.0 : 180.0;
local->unk0_x = this->position_x; local->unk0_x = this->position_x;
local->unk0_y = this->position_y; local->unk0_y = this->position_y;
local->unk0_z = this->position_z; local->unk0_z = this->position_z;

View File

@@ -22,11 +22,11 @@ Actor *func_80387D6C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .data */
ActorAnimationInfo D_8038C4E0[] = { ActorAnimationInfo D_8038C4E0[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0xB5, 2.0f}, {ASSET_B5_ANIM_BLUBBER_WALK, 2.0f},
{0xB6, 2.0f}, {ASSET_B6_ANIM_BLUBBER_CRY, 2.0f},
{0xB6, 2.0f}, {ASSET_B6_ANIM_BLUBBER_CRY, 2.0f},
{0xB7, 1.4f}, {ASSET_B7_ANIM_BLUBBER_DANCE, 1.4f},
{0xB8, 0.8f} {ASSET_B8_ANIM_BLUBBER_RUN, 0.8f}
}; };
ActorInfo TTC_D_8038C510 = { ActorInfo TTC_D_8038C510 = {

View File

@@ -11,9 +11,9 @@ void chClam_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo chClamAnimations[] = { ActorAnimationInfo chClamAnimations[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0xAA, 2.0f}, {ASSET_AA_ANIM_CLAM_IDLE, 2.0f},
{0x24, 1.0f}, {ASSET_24_ANIM_CLAM_HOP, 1.0f},
{0xAB, 0.6f} {ASSET_AB_ANIM_CLAM_EAT, 0.6f}
}; };
ActorInfo chClam = { ActorInfo chClam = {
@@ -196,7 +196,7 @@ void __chClam_emitSmallShellParticles(f32 position[3], s32 count){
particleEmitter_emitN(pCtrl, count); particleEmitter_emitN(pCtrl, count);
} }
void __chClam_emitEatenCollectableParticles(f32 position[3], enum asset_e sprite_id, s32 count){ void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite_id, s32 count){
static struct31s D_8038C484 = { static struct31s D_8038C484 = {
{0.2f, 0.35f}, {0.2f, 0.35f},
{0.0f, 0.0f}, {0.0f, 0.0f},
@@ -282,7 +282,7 @@ void chClam_update(Actor *this){
sp44 = sp4C->marker->unk14_20; sp44 = sp4C->marker->unk14_20;
} }
if(sp44 == MARKER_60_BLUE_EGG_COLLECTABLE || sp44 == 0xb5){ if(sp44 == MARKER_60_BLUE_EGG_COLLECTIBLE || sp44 == MARKER_B5_RED_FEATHER_COLLECTIBLE){
if(this->position_y <= sp48 + 15.0f && sp48 - 15.0f <= this->position_y){ if(this->position_y <= sp48 + 15.0f && sp48 - 15.0f <= this->position_y){
this->position_y = sp48; this->position_y = sp48;
this->unk38_31 = sp44; this->unk38_31 = sp44;
@@ -351,11 +351,11 @@ void chClam_update(Actor *this){
func_8034A174(this->marker->unk44, 5, sp38); func_8034A174(this->marker->unk44, 5, sp38);
switch(this->unk38_31){ switch(this->unk38_31){
case MARKER_60_BLUE_EGG_COLLECTABLE: case MARKER_60_BLUE_EGG_COLLECTIBLE:
__chClam_emitEatenCollectableParticles(sp38, ASSET_718_SPRITE_SPARKLE_WHITE_2, 8); __chClam_emitEatencollectibleParticles(sp38, ASSET_718_SPRITE_SPARKLE_WHITE_2, 8);
break; break;
case MARKER_B5_RED_FEATHER_COLLECTABLE: case MARKER_B5_RED_FEATHER_COLLECTIBLE:
__chClam_emitEatenCollectableParticles(sp38, ASSET_715_SPRITE_SPARKLE_RED, 8); __chClam_emitEatencollectibleParticles(sp38, ASSET_715_SPRITE_SPARKLE_RED, 8);
break; break;
} }
break; break;

View File

@@ -15,11 +15,11 @@ void func_80389600(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_8038C760[] ={ ActorAnimationInfo D_8038C760[] ={
{0, 0.0f}, {0, 0.0f},
{0xBC, 8000000.0f}, {ASSET_BC_ANIM_LOCKUP, 8000000.0f},
{0xBC, 4.0f}, {ASSET_BC_ANIM_LOCKUP, 4.0f},
{0xBC, 8000000.0f}, {ASSET_BC_ANIM_LOCKUP, 8000000.0f},
{0xBC, 1.4f}, {ASSET_BC_ANIM_LOCKUP, 1.4f},
{0xBC, 8000000.0f} {ASSET_BC_ANIM_LOCKUP, 8000000.0f}
}; };
ActorInfo D_8038C790 = { ActorInfo D_8038C790 = {

View File

@@ -9,12 +9,12 @@ Actor *func_80387EB0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .data */
ActorAnimationInfo D_8038C540[] = { ActorAnimationInfo D_8038C540[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0xC0, 2.0f}, {ASSET_C0_ANIM_NIPPER_IDLE, 2.0f},
{0xBD, 1.5f}, {ASSET_BD_ANIM_NIPPER_VULNERABLE, 1.5f},
{0xBF, 1.2f}, {ASSET_BF_ANIM_NIPPER_ATTACK, 1.2f},
{0xBE, 1.3f}, {ASSET_BE_ANIM_NIPPER_OW, 1.3f},
{0xC0, 2.0f}, {ASSET_C0_ANIM_NIPPER_IDLE, 2.0f},
{0x133, 3.0f}, {ASSET_133_ANIM_NIPPER_DIE, 3.0f},
{0x00, 0.0f} {0x00, 0.0f}
}; };

View File

@@ -292,19 +292,19 @@ void __baMarker_resolveCollision(Prop *other_prop){
} }
break; break;
case MARKER_B5_RED_FEATHER_COLLECTABLE: //L8028BEF4 case MARKER_B5_RED_FEATHER_COLLECTIBLE: //L8028BEF4
if(__baMarker_8028BC20(marker) != HITBOX_0_NONE) if(__baMarker_8028BC20(marker) != HITBOX_0_NONE)
return; return;
if(chcollectable_collectRedFeather(other_prop)){ if(chCollectible_collectRedFeather(other_prop)){
marker_despawn(marker); marker_despawn(marker);
} }
break; break;
case MARKER_1E5_GOLD_FEATHER_COLLECTABLE: //L8028BF24 case MARKER_1E5_GOLD_FEATHER_COLLECTIBLE: //L8028BF24
if(__baMarker_8028BC20(marker)) if(__baMarker_8028BC20(marker))
return; return;
if(chcollectable_collectGoldFeather(other_prop)){ if(chCollectible_collectGoldFeather(other_prop)){
marker_despawn(marker); marker_despawn(marker);
} }
break; break;
@@ -676,10 +676,10 @@ void __baMarker_resolveCollision(Prop *other_prop){
marker_despawn(marker); marker_despawn(marker);
break; break;
case MARKER_60_BLUE_EGG_COLLECTABLE: //L8028CCF0 case MARKER_60_BLUE_EGG_COLLECTIBLE: //L8028CCF0
if(__baMarker_8028BC20(marker)) if(__baMarker_8028BC20(marker))
return; return;
if(chcollectable_collectEgg(other_prop)){ if(chCollectible_collectEgg(other_prop)){
marker_despawn(marker); marker_despawn(marker);
} }
break; break;
@@ -734,7 +734,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
case MARKER_11_WADING_BOOTS: //L8028CE8C case MARKER_11_WADING_BOOTS: //L8028CE8C
if(__baMarker_8028BC20(marker)) if(__baMarker_8028BC20(marker))
return; return;
if(_player_getTransformation() != TRANSFORM_1_BANJO) if(bsStoredState_getTransformation() != TRANSFORM_1_BANJO)
return; return;
if(func_8028F170()) if(func_8028F170())
return; return;
@@ -754,7 +754,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(__baMarker_8028BC20(marker)) if(__baMarker_8028BC20(marker))
return; return;
tmp1 = _player_getTransformation(); tmp1 = bsStoredState_getTransformation();
if(tmp1 != TRANSFORM_1_BANJO && tmp1 != TRANSFORM_5_CROC) if(tmp1 != TRANSFORM_1_BANJO && tmp1 != TRANSFORM_5_CROC)
return; return;
@@ -834,19 +834,19 @@ void __baMarker_resolveCollision(Prop *other_prop){
case 0x6D7: //L8028D16C case 0x6D7: //L8028D16C
if(!__baMarker_8028BC60()){ if(!__baMarker_8028BC60()){
other_prop->spriteProp.unk8_4 = 0; other_prop->spriteProp.unk8_4 = 0;
chcollectable_collectEgg(other_prop); chCollectible_collectEgg(other_prop);
} }
break; break;
case 0x580: //L8028D194 case 0x580: //L8028D194
if(!__baMarker_8028BC60()){ if(!__baMarker_8028BC60()){
other_prop->spriteProp.unk8_4 = 0; other_prop->spriteProp.unk8_4 = 0;
chcollectable_collectRedFeather(other_prop); chCollectible_collectRedFeather(other_prop);
} }
break; break;
case 0x6D1: //L8028D1BC case 0x6D1: //L8028D1BC
if(!__baMarker_8028BC60()){ if(!__baMarker_8028BC60()){
other_prop->spriteProp.unk8_4 = 0; other_prop->spriteProp.unk8_4 = 0;
chcollectable_collectGoldFeather(other_prop); chCollectible_collectGoldFeather(other_prop);
} }
break; break;
default: default:

View File

@@ -298,8 +298,8 @@ void baModel_80292284(f32 arg0[3], s32 arg1){
if(baMarker_get()->unk14_21 && baModelIsVisible){ if(baMarker_get()->unk14_21 && baModelIsVisible){
switch(baModel_getModelId()){ switch(baModel_getModelId()){
case 0x34D: case ASSET_34D_MODEL_BANJOKAZOOIE_LOW_POLY:
case 0x34E: case ASSET_34E_MODEL_BANJOKAZOOIE_HIGH_POLY:
case ASSET_34F_MODEL_BANJO_TERMITE: //802922E8 case ASSET_34F_MODEL_BANJO_TERMITE: //802922E8
case ASSET_359_MODEL_BANJO_WALRUS: //802922E8 case ASSET_359_MODEL_BANJO_WALRUS: //802922E8
case ASSET_362_MODEL_BANJO_BEE: case ASSET_362_MODEL_BANJO_BEE:

View File

@@ -153,7 +153,7 @@ void bsant_jump_init(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
func_8029E554(); func_8029E554();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ASSET_60_ANIM_BSTERMITE_JUMP); animctrl_setIndex(aCtrl, ASSET_60_ANIM_BSANT_JUMP);
animctrl_setDuration(aCtrl, 1.0f); animctrl_setDuration(aCtrl, 1.0f);
animctrl_setTransitionDuration(aCtrl, 0.1f); animctrl_setTransitionDuration(aCtrl, 0.1f);
func_8028774C(aCtrl, 0.2987f); func_8028774C(aCtrl, 0.2987f);
@@ -233,7 +233,7 @@ void bsant_fall_init(void){
func_8029E554(); func_8029E554();
D_8037D298 = 0; D_8037D298 = 0;
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ASSET_60_ANIM_BSTERMITE_JUMP); animctrl_setIndex(aCtrl, ASSET_60_ANIM_BSANT_JUMP);
animctrl_setDuration(aCtrl, 1.9f); animctrl_setDuration(aCtrl, 1.9f);
func_8028774C(aCtrl, 0.4423f); func_8028774C(aCtrl, 0.4423f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_STOPPED); animctrl_setPlaybackType(aCtrl, ANIMCTRL_STOPPED);
@@ -284,7 +284,7 @@ static void __bsant_recoil_init(int take_damage){
func_8029E554(); func_8029E554();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ASSET_28_ANIM_BSTERMITE_OW); animctrl_setIndex(aCtrl, ASSET_28_ANIM_BSANT_OW);
animctrl_setDuration(aCtrl, 1.4f); animctrl_setDuration(aCtrl, 1.4f);
animctrl_setSubRange(aCtrl, 0.0f, 0.4899f); animctrl_setSubRange(aCtrl, 0.0f, 0.4899f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
@@ -374,7 +374,7 @@ void bsant_die_init(void){
func_8029B930(); func_8029B930();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, ASSET_29_ANIM_BSTERMITE_DIE); animctrl_setIndex(aCtrl, ASSET_29_ANIM_BSANT_DIE);
animctrl_setSubRange(aCtrl, 0.0f, 0.523f); animctrl_setSubRange(aCtrl, 0.0f, 0.523f);
animctrl_setDuration(aCtrl, 1.6f); animctrl_setDuration(aCtrl, 1.6f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);

View File

@@ -67,7 +67,7 @@ void bsbarge_init(void){
plyrMvmnt = _player_getAnimCtrlPtr(); plyrMvmnt = _player_getAnimCtrlPtr();
animctrl_reset(plyrMvmnt); animctrl_reset(plyrMvmnt);
animctrl_setSmoothTransition(plyrMvmnt, 0); animctrl_setSmoothTransition(plyrMvmnt, 0);
animctrl_setIndex(plyrMvmnt, ANIM_BANJO_BBARGE); animctrl_setIndex(plyrMvmnt, ASSET_1C_ANIM_BSBBARGE);
animctrl_setDuration(plyrMvmnt, 1.0f); animctrl_setDuration(plyrMvmnt, 1.0f);
animctrl_setSubRange(plyrMvmnt, 0, 0.375f); animctrl_setSubRange(plyrMvmnt, 0, 0.375f);
animctrl_setPlaybackType(plyrMvmnt, ANIMCTRL_ONCE); animctrl_setPlaybackType(plyrMvmnt, ANIMCTRL_ONCE);

View File

@@ -18,7 +18,7 @@ f32 D_8037D308;
u8 D_8037D30C; u8 D_8037D30C;
void bsbflap_init(void) { void bsbflap_init(void) {
func_8028A274(0x18, 0.3f); func_8028A274(ASSET_18_ANIM_BSBFLAP_ENTER, 0.3f);
func_8029C7F4(1, 1, 1, 2); func_8029C7F4(1, 1, 1, 2);
if (func_8029B2E8() != 0.0f) { if (func_8029B2E8() != 0.0f) {
yaw_setIdeal(func_8029B33C()); yaw_setIdeal(func_8029B33C());
@@ -114,7 +114,7 @@ void bsbflap_update(void){
func_802A298C(); func_802A298C();
if(animctrl_isAt(sp18, 0.9f)){ if(animctrl_isAt(sp18, 0.9f)){
animctrl_setSmoothTransition(sp18, 0); animctrl_setSmoothTransition(sp18, 0);
animctrl_setIndex(sp18, ANIM_BANJO_BFLAP); animctrl_setIndex(sp18, ASSET_17_ANIM_BSBFLAP);
animctrl_setDuration(sp18, func_802A2858()); animctrl_setDuration(sp18, func_802A2858());
animctrl_setPlaybackType(sp18, ANIMCTRL_LOOP); animctrl_setPlaybackType(sp18, ANIMCTRL_LOOP);
func_8028774C(sp18, 0.0f); func_8028774C(sp18, 0.0f);

View File

@@ -28,7 +28,7 @@ void _bsbflip_802A2DC0(void){
f32 sp20[3]; f32 sp20[3];
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_BFLIP); animctrl_setIndex(aCtrl, ASSET_4B_ANIM_BSBFLIP_ENTER);
animctrl_setDuration(aCtrl, 2.2f); animctrl_setDuration(aCtrl, 2.2f);
func_8028774C(aCtrl, 0.8566f); func_8028774C(aCtrl, 0.8566f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
@@ -44,7 +44,7 @@ void bsbflip_init(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, ANIM_BANJO_BFLIP); animctrl_setIndex(aCtrl, ASSET_4B_ANIM_BSBFLIP_ENTER);
animctrl_setDuration(aCtrl, 2.3f); animctrl_setDuration(aCtrl, 2.3f);
animctrl_setSubRange(aCtrl, 0.0f, 0.7866f); animctrl_setSubRange(aCtrl, 0.0f, 0.7866f);
func_8028774C(aCtrl, 0.0f); func_8028774C(aCtrl, 0.0f);
@@ -100,7 +100,7 @@ void bsbflip_update(void){
if(animctrl_isStopped(aCtrl)){ if(animctrl_isStopped(aCtrl)){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, 0x4C); animctrl_setIndex(aCtrl, ASSET_4C_ANIM_BSBFLIP_HOLD);
animctrl_setDuration(aCtrl, 0.13f); animctrl_setDuration(aCtrl, 0.13f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_LOOP); animctrl_setPlaybackType(aCtrl, ANIMCTRL_LOOP);
func_802875AC(aCtrl, "bsbflip.c", 0xd9); func_802875AC(aCtrl, "bsbflip.c", 0xd9);
@@ -116,7 +116,7 @@ void bsbflip_update(void){
if(button_released(BUTTON_A)){ if(button_released(BUTTON_A)){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, 0x61); animctrl_setIndex(aCtrl, ASSET_61_ANIM_BSBFLIP_EXIT);
animctrl_setDuration(aCtrl, 0.8f); animctrl_setDuration(aCtrl, 0.8f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
func_802875AC(aCtrl, "bsbflip.c", 0xee); func_802875AC(aCtrl, "bsbflip.c", 0xee);

View File

@@ -133,7 +133,7 @@ int func_802A37F8(void){
} }
void bsbfly_enter_init(void){ void bsbfly_enter_init(void){
func_8028A274(ANIM_BANJO_FLY_ENTER, 1.4f); func_8028A274(ASSET_45_ANIM_BSBFLY_ENTER, 1.4f);
func_8029C7F4(1,1,3,6); func_8029C7F4(1,1,3,6);
if(func_8029B2E8() != 0.0f) if(func_8029B2E8() != 0.0f)
yaw_setIdeal(func_8029B33C()); yaw_setIdeal(func_8029B33C());
@@ -177,7 +177,7 @@ void bsbfly_enter_end(void){
} }
void bsbfly_init(void){ void bsbfly_init(void){
func_8028A010(ASSET_38_BANJO_FLY, 0.62f); func_8028A010(ASSET_38_ANIM_BSBFLY, 0.62f);
func_8029C7F4(1,1,3,3); func_8029C7F4(1,1,3,3);
if(miscflag_isTrue(9)){ if(miscflag_isTrue(9)){
func_80297970(0.0f); func_80297970(0.0f);
@@ -200,7 +200,7 @@ void bsbfly_init(void){
void bsbfly_update(void){ void bsbfly_update(void){
enum bs_e sp54 = 0; enum bs_e sp54 = 0;
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
int sp4C; BKCollisionTri *sp4C;
f32 sp40[3]; f32 sp40[3];
f32 sp3C; f32 sp3C;
f32 sp38; f32 sp38;
@@ -278,7 +278,7 @@ void bsbfly_update(void){
sp4C = func_802946F0(); sp4C = func_802946F0();
func_8029445C(sp40); func_8029445C(sp40);
if(sp4C && -1.0 < sp40[1]) if(sp4C != NULL && -1.0 < sp40[1])
sp38 = 0.0f; sp38 = 0.0f;
func_8029797C(yaw_get()); func_8029797C(yaw_get());
@@ -320,7 +320,7 @@ int bsbfly_bombHitboxActive(void){
//bsbfly_bomb_init //bsbfly_bomb_init
void func_802A3F9C(void){ void func_802A3F9C(void){
f32 sp1C[3]; f32 sp1C[3];
func_8028A180(ASSET_43_ANIM_BANJO_BEAKBOMB_START, 1.0f); func_8028A180(ASSET_43_ANIM_BSBFLY_BEAKBOMB_START, 1.0f);
func_8029C7F4(1,1,3,7); func_8029C7F4(1,1,3,7);
func_802A339C(D_8037D338, sp1C, 4200.0f); func_802A339C(D_8037D338, sp1C, 4200.0f);
yaw_setIdeal(sp1C[1] + 180.0f); yaw_setIdeal(sp1C[1] + 180.0f);
@@ -415,10 +415,10 @@ void func_802A411C(void) {
if (0.65 > sp34[1]) { if (0.65 > sp34[1]) {
next_state = func_802A40E0(); next_state = func_802A40E0();
} else { } else {
next_state = BS_58; next_state = BS_58_BEAKBOMB_CRASH;
} }
} else if (sp40 != 0) { } else if (sp40 != 0) {
next_state = BS_58; next_state = BS_58_BEAKBOMB_CRASH;
} }
} }
_player_getPosition(sp48); _player_getPosition(sp48);
@@ -449,7 +449,7 @@ void func_802A4430(void){
plyr_animctrl = _player_getAnimCtrlPtr(); plyr_animctrl = _player_getAnimCtrlPtr();
animctrl_reset(plyr_animctrl); animctrl_reset(plyr_animctrl);
animctrl_setTransitionDuration(plyr_animctrl, 0.3f); animctrl_setTransitionDuration(plyr_animctrl, 0.3f);
animctrl_setIndex(plyr_animctrl, ASSET_CC_ANIM_BANJO_BEAKBOMB_END); animctrl_setIndex(plyr_animctrl, ASSET_CC_ANIM_BSFLY_BEAKBOMB_END);
animctrl_setDuration(plyr_animctrl, 0.38f); animctrl_setDuration(plyr_animctrl, 0.38f);
animctrl_setPlaybackType(plyr_animctrl, ANIMCTRL_LOOP); animctrl_setPlaybackType(plyr_animctrl, ANIMCTRL_LOOP);
func_802875AC(plyr_animctrl, "bsbfly.c", 0x38a); func_802875AC(plyr_animctrl, "bsbfly.c", 0x38a);
@@ -526,8 +526,8 @@ void func_802A46C8(void) {
} }
void func_802A4748(void) { void bsbfly_beakbomb_crash_init(void) {
func_8028A180(0x3E, 1.4f); func_8028A180(ASSET_3E_ANIM_BSBFLY_BEAKBOMB_CRASH, 1.4f);
func_8029C7F4(1, 1, 3, 3); func_8029C7F4(1, 1, 3, 3);
func_8029E070(1); func_8029E070(1);
FUNC_8030E624(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 32750); FUNC_8030E624(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 32750);
@@ -631,7 +631,7 @@ void func_802A4A78(s32 arg0) {
sp20 = 400.0f; sp20 = 400.0f;
} }
func_802BB3DC(2, 100.0f, 0.85f); func_802BB3DC(2, 100.0f, 0.85f);
func_8028A274(0xD3, 1.2f); func_8028A274(ASSET_D3_ANIM_BSBFLY_BEAKBOMB_REBOUND, 1.2f);
func_80299BFC(1.0f); func_80299BFC(1.0f);
rumbleManager_80250D94(1.0f, 0.5f, 0.5f); rumbleManager_80250D94(1.0f, 0.5f, 0.5f);
_player_getPosition(sp3C); _player_getPosition(sp3C);
@@ -754,7 +754,7 @@ void func_802A4F44(void){
} }
void func_802A4F74(void) { void func_802A4F74(void) {
func_8028A010(ASSET_38_BANJO_FLY, 0.62f); func_8028A010(ASSET_38_ANIM_BSBFLY, 0.62f);
func_8029C7F4(1, 1, 3, 7); func_8029C7F4(1, 1, 3, 7);
func_8029E070(1); func_8029E070(1);
func_802914CC(4); func_802914CC(4);
@@ -807,7 +807,7 @@ void func_802A50F8(void){
} }
void func_802A5120(void){ void func_802A5120(void){
func_8028A084(0x68, 0.35f); func_8028A084(ASSET_68_ANIM_BSJUMP_TUMBLE, 0.35f);
func_8029C7F4(1,1,3,6); func_8029C7F4(1,1,3,6);
func_80297970(0.0f); func_80297970(0.0f);
func_80297A0C(0); func_80297A0C(0);

View File

@@ -2,6 +2,8 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/ba/model.h" #include "core2/ba/model.h"
#include "core2/statetimer.h"
/* .data */ /* .data */
const f32 D_80364A40 = 80.0f; const f32 D_80364A40 = 80.0f;
@@ -52,9 +54,9 @@ int bslongleg_inSet(s32 move_indx){
} }
void func_802A531C(void){ void func_802A531C(void){
func_80299650(func_80291684(2), func_80291670(2)); func_80299650(stateTimer_getPrevious(STATE_TIMER_2_LONGLEG), stateTimer_get(STATE_TIMER_2_LONGLEG));
if(func_80291700(2, 0.01f)) if(stateTimer_isAt(STATE_TIMER_2_LONGLEG, 0.01f))
func_8030E484(0x3eb); func_8030E484(SFX_3EB_UNKNOWN);
} }
void func_802A5374(void){ void func_802A5374(void){
@@ -81,28 +83,28 @@ void func_802A5404(void){
baModel_setDirection(PLAYER_MODEL_DIR_BANJO); baModel_setDirection(PLAYER_MODEL_DIR_BANJO);
pitch_setIdeal(0.0f); pitch_setIdeal(0.0f);
roll_setIdeal(0.0f); roll_setIdeal(0.0f);
func_802917C4(2); stateTimer_clear(STATE_TIMER_2_LONGLEG);
func_803219F4(1); func_803219F4(1);
miscflag_clear(3); miscflag_clear(3);
func_8029E180(4, 0.5f); func_8029E180(4, 0.5f);
func_802A531C(); func_802A531C();
} }
void func_802A54A8(void){ void __bsblongleg_enterFromTrot(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, ANIM_BANJO_LONGLEG_ENTER_AS_BIRD); animctrl_setIndex(aCtrl, ASSET_40_ANIM_BSLONGLEG_ENTER_FROM_BTROT);
animctrl_setDuration(aCtrl, 1.0f); animctrl_setDuration(aCtrl, 1.0f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
func_802875AC(aCtrl, "bsblongleg.c", 0xe1); func_802875AC(aCtrl, "bsblongleg.c", 0xe1);
func_802917E4(2, D_8037D35C); stateTimer_set(STATE_TIMER_2_LONGLEG, D_8037D35C);
func_803219F4(2); func_803219F4(2);
func_8030E2C4(D_8037D361); func_8030E2C4(D_8037D361);
D_8037D360 = 1; D_8037D360 = 1;
} }
void func_802A5548(void){ void __bsblongleg_enter(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
@@ -119,9 +121,9 @@ void bsblongleg_enter_init(void){
func_8030E04C(D_8037D361, 0.8f, 1.9f, 1.2f); func_8030E04C(D_8037D361, 0.8f, 1.9f, 1.2f);
miscflag_clear(MISC_FLAG_E_TOUCHING_WADING_BOOTS); miscflag_clear(MISC_FLAG_E_TOUCHING_WADING_BOOTS);
if(bsbtrot_inSet(bs_getPrevState())) if(bsbtrot_inSet(bs_getPrevState()))
func_802A54A8(); __bsblongleg_enterFromTrot();
else else
func_802A5548(); __bsblongleg_enter();
func_8029C7F4(1,1,3,2); func_8029C7F4(1,1,3,2);
func_80297970(0.0f); func_80297970(0.0f);
func_802A5374(); func_802A5374();
@@ -129,21 +131,21 @@ void bsblongleg_enter_init(void){
} }
void bsblongleg_enter_update(void){ void bsblongleg_enter_update(void){
enum bs_e sp1C = 0; enum bs_e next_state = 0;
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
func_802A531C(); func_802A531C();
func_80299594(1, 0.5f); func_80299594(1, 0.5f);
switch(D_8037D360){ switch(D_8037D360){
case 0: case 0:
if(animctrl_isStopped(aCtrl)) if(animctrl_isStopped(aCtrl))
func_802A54A8(); __bsblongleg_enterFromTrot();
break; break;
case 1: case 1:
if(animctrl_isStopped(aCtrl)) if(animctrl_isStopped(aCtrl))
sp1C = BS_26_LONGLEG_IDLE; next_state = BS_26_LONGLEG_IDLE;
break; break;
} }
bs_setState(sp1C); bs_setState(next_state);
} }
void bsblongleg_enter_end(void){ void bsblongleg_enter_end(void){
@@ -167,7 +169,7 @@ void bsblongleg_stand_update(void){
next_state = func_802926C0(); next_state = func_802926C0();
if(button_pressed(BUTTON_B)) if(button_pressed(BUTTON_B))
func_802917C4(2); stateTimer_clear(STATE_TIMER_2_LONGLEG);
if(func_8029B300() > 0) if(func_8029B300() > 0)
next_state = BS_LONGLEG_WALK; next_state = BS_LONGLEG_WALK;
@@ -178,7 +180,7 @@ void bsblongleg_stand_update(void){
if(button_pressed(BUTTON_A) && func_8028B2E8()) if(button_pressed(BUTTON_A) && func_8028B2E8())
next_state = BS_LONGLEG_JUMP; next_state = BS_LONGLEG_JUMP;
if(func_802916CC(2)) if(stateTimer_isDone(STATE_TIMER_2_LONGLEG))
next_state = BS_LONGLEG_EXIT; next_state = BS_LONGLEG_EXIT;
if(func_802A51D0()) if(func_802A51D0())
@@ -204,7 +206,7 @@ void bsblongleg_walk_init(void){
} }
void bsblongleg_walk_update(void){ void bsblongleg_walk_update(void){
enum bs_e sp1C = 0; enum bs_e next_state = 0;
AnimCtrl * aCtrl = _player_getAnimCtrlPtr(); AnimCtrl * aCtrl = _player_getAnimCtrlPtr();
func_802A531C(); func_802A531C();
func_80299594(1, 0.5f); func_80299594(1, 0.5f);
@@ -218,24 +220,24 @@ void bsblongleg_walk_update(void){
func_802A524C(); func_802A524C();
if(button_pressed(BUTTON_B) && func_80297A64() == 0.0f) if(button_pressed(BUTTON_B) && func_80297A64() == 0.0f)
func_802917C4(2); stateTimer_clear(STATE_TIMER_2_LONGLEG);
if(!func_8029B300() && func_80297C04(1.0f)) if(!func_8029B300() && func_80297C04(1.0f))
sp1C = BS_26_LONGLEG_IDLE; next_state = BS_26_LONGLEG_IDLE;
if(player_shouldSlideTrot()) if(player_shouldSlideTrot())
sp1C = BS_LONGLEG_SLIDE; next_state = BS_LONGLEG_SLIDE;
if(button_pressed(BUTTON_A) && func_8028B2E8()) if(button_pressed(BUTTON_A) && func_8028B2E8())
sp1C = BS_LONGLEG_JUMP; next_state = BS_LONGLEG_JUMP;
if(func_802916CC(2)) if(stateTimer_isDone(STATE_TIMER_2_LONGLEG))
sp1C = BS_LONGLEG_EXIT; next_state = BS_LONGLEG_EXIT;
if(func_802A51D0()) if(func_802A51D0())
sp1C = BS_4C_LANDING_IN_WATER; next_state = BS_4C_LANDING_IN_WATER;
bs_setState(sp1C); bs_setState(next_state);
} }
void bsblongleg_walk_end(void){ void bsblongleg_walk_end(void){
@@ -247,7 +249,7 @@ void func_802A5AB0(void){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setDirection(aCtrl, 0); animctrl_setDirection(aCtrl, 0);
animctrl_setIndex(aCtrl, ANIM_BANJO_LONGLEG_ENTER_AS_BIRD); animctrl_setIndex(aCtrl, ASSET_40_ANIM_BSLONGLEG_ENTER_FROM_BTROT);
animctrl_setDuration(aCtrl, 1.0f); animctrl_setDuration(aCtrl, 1.0f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
func_802875AC(aCtrl, "bsblongleg.c", 0x200); func_802875AC(aCtrl, "bsblongleg.c", 0x200);
@@ -277,7 +279,7 @@ void bsblongleg_exit_init(void){
} }
void bsblongleg_exit_update(void){ void bsblongleg_exit_update(void){
enum bs_e sp1C = 0; enum bs_e next_state = 0;
AnimCtrl * aCtrl = _player_getAnimCtrlPtr(); AnimCtrl * aCtrl = _player_getAnimCtrlPtr();
func_802A531C(); func_802A531C();
func_80299628(1); func_80299628(1);
@@ -292,14 +294,14 @@ void bsblongleg_exit_update(void){
break; break;
case 1://L802A5CB4 case 1://L802A5CB4
if(animctrl_isStopped(aCtrl)) if(animctrl_isStopped(aCtrl))
sp1C = BS_1_IDLE; next_state = BS_1_IDLE;
break; break;
} }
if(func_802A51D0()) if(func_802A51D0())
sp1C = BS_4C_LANDING_IN_WATER; next_state = BS_4C_LANDING_IN_WATER;
bs_setState(sp1C); bs_setState(next_state);
} }
@@ -312,7 +314,7 @@ void bsblongleg_jump_init(void){
AnimCtrl * aCtrl = _player_getAnimCtrlPtr(); AnimCtrl * aCtrl = _player_getAnimCtrlPtr();
D_8037D350 = 0.14f; D_8037D350 = 0.14f;
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_LONGLEG_JUMP); animctrl_setIndex(aCtrl, ASSET_3D_ANIM_BSLONGLEG_JUMP);
animctrl_setTransitionDuration(aCtrl, 0.134f); animctrl_setTransitionDuration(aCtrl, 0.134f);
animctrl_setDuration(aCtrl, 1.0f); animctrl_setDuration(aCtrl, 1.0f);
func_8028774C(aCtrl, D_8037D350); func_8028774C(aCtrl, D_8037D350);
@@ -383,7 +385,7 @@ void bsblongleg_jump_update(void){
if(button_pressed(BUTTON_A)) if(button_pressed(BUTTON_A))
sp44 = BS_LONGLEG_JUMP; sp44 = BS_LONGLEG_JUMP;
if(func_802916CC(2)) if(stateTimer_isDone(STATE_TIMER_2_LONGLEG))
sp44 = BS_LONGLEG_EXIT; sp44 = BS_LONGLEG_EXIT;
break; break;
@@ -405,7 +407,7 @@ void bsblongleg_slide_init(void){
AnimCtrl * aCtrl = _player_getAnimCtrlPtr(); AnimCtrl * aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_LONGLEG_JUMP); animctrl_setIndex(aCtrl, ASSET_3D_ANIM_BSLONGLEG_JUMP);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_STOPPED); animctrl_setPlaybackType(aCtrl, ANIMCTRL_STOPPED);
func_8028774C(aCtrl, 0.0865f); func_8028774C(aCtrl, 0.0865f);
func_802875AC(aCtrl, "bsblongleg.c", 0x339); func_802875AC(aCtrl, "bsblongleg.c", 0x339);
@@ -468,18 +470,18 @@ void func_802A6394(void){
} }
void func_802A63F0(void){ void func_802A63F0(void){
enum bs_e sp1C = 0; enum bs_e next_state = 0;
func_802A531C(); func_802A531C();
func_8029C6D0(); func_8029C6D0();
func_80299628(1); func_80299628(1);
if(func_80298850() == 0) if(func_80298850() == 0)
sp1C = BS_26_LONGLEG_IDLE; next_state = BS_26_LONGLEG_IDLE;
if(func_802A51D0()) if(func_802A51D0())
sp1C = BS_4C_LANDING_IN_WATER; next_state = BS_4C_LANDING_IN_WATER;
bs_setState(sp1C); bs_setState(next_state);
} }
void func_802A6450(void){ void func_802A6450(void){
@@ -495,7 +497,7 @@ void bsblongleg_drone_init(void){
void bsblongleg_drone_update(void){ void bsblongleg_drone_update(void){
func_802A531C(); func_802A531C();
bsdrone_update(); bsdrone_update();
if(func_802916CC(2)) if(stateTimer_isDone(STATE_TIMER_2_LONGLEG))
bs_setState(BS_LONGLEG_EXIT); bs_setState(BS_LONGLEG_EXIT);
} }

View File

@@ -82,7 +82,7 @@ void bsbpeck_update(void){
switch(D_8037D374){ switch(D_8037D374){
case 0://L802A6770 case 0://L802A6770
if(animctrl_isAt(aCtrl, 0.9126f)){ if(animctrl_isAt(aCtrl, 0.9126f)){
animctrl_setIndex(aCtrl, ANIM_BANJO_BPECK_ENTER); animctrl_setIndex(aCtrl, ASSET_19_ANIM_BSBPECK_ENTER);
func_8028774C(aCtrl, 0.0f); func_8028774C(aCtrl, 0.0f);
animctrl_setDuration(aCtrl, 0.35f); animctrl_setDuration(aCtrl, 0.35f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_LOOP); animctrl_setPlaybackType(aCtrl, ANIMCTRL_LOOP);

View File

@@ -15,7 +15,7 @@ u8 D_8037D382;
void bsbshock_charge_init(void){ void bsbshock_charge_init(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_BSHOCK_CHARGE); animctrl_setIndex(aCtrl, ASSET_48_ANIM_BSBSHOCK_CHARGE);
animctrl_setTransitionDuration(aCtrl, 0.4f); animctrl_setTransitionDuration(aCtrl, 0.4f);
animctrl_setDuration(aCtrl, 4.2f); animctrl_setDuration(aCtrl, 4.2f);
animctrl_setSubRange(aCtrl, 0.0f, 0.1061f); animctrl_setSubRange(aCtrl, 0.0f, 0.1061f);
@@ -55,7 +55,7 @@ void bsbshock_charge_update(void){
func_8029C348(); func_8029C348();
} }
func_802B6FA8(); func_802B6FA8();
_get_velocity(&sp1C); _get_velocity(sp1C);
if(button_released(BUTTON_A) && 0.0f < sp1C[1]){ if(button_released(BUTTON_A) && 0.0f < sp1C[1]){
gravity_reset(); gravity_reset();
} }
@@ -126,7 +126,7 @@ void bsbshock_init(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, ANIM_BANJO_BSHOCK_JUMP); animctrl_setIndex(aCtrl, ASSET_49_ANIM_BSBSHOCK_JUMP);
animctrl_setDuration(aCtrl, 0.8f); animctrl_setDuration(aCtrl, 0.8f);
func_8028774C(aCtrl, 0.5304f); func_8028774C(aCtrl, 0.5304f);
animctrl_setSubRange(aCtrl, 0.0f, 1.0f); animctrl_setSubRange(aCtrl, 0.0f, 1.0f);
@@ -157,7 +157,7 @@ void bsbshock_update(void){
AnimCtrl * aCtrl = _player_getAnimCtrlPtr(); AnimCtrl * aCtrl = _player_getAnimCtrlPtr();
func_802B6FA8(); func_802B6FA8();
_get_velocity(&sp20); _get_velocity(sp20);
if(animctrl_isAt(aCtrl, 0.7f)) if(animctrl_isAt(aCtrl, 0.7f))
func_8030E484(SFX_53_BANJO_HUIII); func_8030E484(SFX_53_BANJO_HUIII);

View File

@@ -22,7 +22,7 @@ void func_802A7140() {
f32 func_802A716C() { f32 func_802A716C() {
f32 sp24[3]; f32 sp24[3];
_get_velocity(&sp24); _get_velocity(sp24);
ml_map_f(gu_sqrtf((sp24[0] * sp24[0]) + (sp24[1] * sp24[1]) + (sp24[2] * sp24[2])), 50.0f, 200.0f, 0.0f, 1.0f); ml_map_f(gu_sqrtf((sp24[0] * sp24[0]) + (sp24[1] * sp24[1]) + (sp24[2] * sp24[2])), 50.0f, 200.0f, 0.0f, 1.0f);
} }
@@ -155,7 +155,7 @@ void func_802A7738(void) {
temp_v0 = _player_getAnimCtrlPtr(); temp_v0 = _player_getAnimCtrlPtr();
temp_s0 = temp_v0; temp_s0 = temp_v0;
animctrl_reset(temp_v0); animctrl_reset(temp_v0);
animctrl_setIndex(temp_s0, 0x3F); animctrl_setIndex(temp_s0, ASSET_3F_ANIM_BSSWIM_DIVE_MOVE);
func_8028774C(temp_s0, 0.4626f); func_8028774C(temp_s0, 0.4626f);
animctrl_setDuration(temp_s0, 1.0f); animctrl_setDuration(temp_s0, 1.0f);
func_802875AC(temp_s0, "bsbswim.c", 0x186); func_802875AC(temp_s0, "bsbswim.c", 0x186);
@@ -287,7 +287,7 @@ void func_802A7BD0(void) {
func_8028A274(0x1A0, 1.4f); func_8028A274(0x1A0, 1.4f);
func_80299BFC(1.0f); func_80299BFC(1.0f);
_player_getPosition(sp30); _player_getPosition(sp30);
func_80294980(&sp24); func_80294980(sp24);
func_80257F18(sp24, sp30, &sp3C); func_80257F18(sp24, sp30, &sp3C);
yaw_setIdeal(mlNormalizeAngle(sp3C)); yaw_setIdeal(mlNormalizeAngle(sp3C));
yaw_applyIdeal(); yaw_applyIdeal();
@@ -328,9 +328,9 @@ void func_802A7D74(void) {
func_802A75B0(); func_802A75B0();
} }
void func_802A7DAC(void) { void bsSwim_dive_init(void) {
ability_use(ABILITY_3_CAMERA_CONTROL); ability_use(ABILITY_3_CAMERA_CONTROL);
func_8028A180(0x3C, 1.0f); func_8028A180(ASSET_3C_ANIM_BSSWIM_DIVE_ENTER, 1.0f);
func_802A7140(); func_802A7140();
yaw_setVelocityBounded(500.0f, 5.0f); yaw_setVelocityBounded(500.0f, 5.0f);
func_80297930(0); func_80297930(0);
@@ -391,7 +391,7 @@ void func_802A7F6C(void) {
} }
func_8029B930(); func_8029B930();
func_8028A010(0xB9, 0.7f); func_8028A010(ASSET_B9_ANIM_BSSWIM_DIE, 0.7f);
func_802A7140(); func_802A7140();
func_802A744C(); func_802A744C();
func_80297B64(1.0f); func_80297B64(1.0f);
@@ -521,14 +521,14 @@ void func_802A846C(void) {
} }
if (sp28 > 80.0f) { if (sp28 > 80.0f) {
animctrl_reset(temp_s0); animctrl_reset(temp_s0);
animctrl_setIndex(temp_s0, ANIM_BANJO_ROLL); animctrl_setIndex(temp_s0, ASSET_4F_ANIM_BSTWIRL);
animctrl_setPlaybackType(temp_s0, ANIMCTRL_STOPPED); animctrl_setPlaybackType(temp_s0, ANIMCTRL_STOPPED);
animctrl_setDuration(temp_s0, 1.2f); animctrl_setDuration(temp_s0, 1.2f);
func_8028774C(temp_s0, 0.8204f); func_8028774C(temp_s0, 0.8204f);
func_802875AC(temp_s0, "bsbswim.c", 0x417); func_802875AC(temp_s0, "bsbswim.c", 0x417);
} else { } else {
animctrl_reset(temp_s0); animctrl_reset(temp_s0);
animctrl_setIndex(temp_s0, 0x57); animctrl_setIndex(temp_s0, ASSET_57_ANIM_BSSWIM_IDLE);
animctrl_setPlaybackType(temp_s0, ANIMCTRL_LOOP); animctrl_setPlaybackType(temp_s0, ANIMCTRL_LOOP);
animctrl_setDuration(temp_s0, 1.2f); animctrl_setDuration(temp_s0, 1.2f);
func_8028774C(temp_s0, 0.6412f); func_8028774C(temp_s0, 0.6412f);

View File

@@ -3,6 +3,8 @@
#include "variables.h" #include "variables.h"
#include "core2/ba/model.h" #include "core2/ba/model.h"
#include "core2/statetimer.h"
/* .data */ /* .data */
f32 D_80364A90 = 30.0f; f32 D_80364A90 = 30.0f;
@@ -24,7 +26,7 @@ f32 D_8037D3A0;
u8 D_8037D3A4; u8 D_8037D3A4;
void func_802A87C0(void){ void func_802A87C0(void){
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
func_8029C3E8(10.0f, 50.0f); func_8029C3E8(10.0f, 50.0f);
else else
func_8029C22C(); func_8029C22C();
@@ -39,10 +41,10 @@ void func_802A880C(s32 arg0){
void func_802A8850(void){ void func_802A8850(void){
if( button_pressed(BUTTON_B) if( button_pressed(BUTTON_B)
&& func_80291698(3) && stateTimer_isActive(STATE_TIMER_3_TURBO_TALON)
&& func_80297A64() == 0.0f && func_80297A64() == 0.0f
){ ){
func_802917C4(3); stateTimer_clear(STATE_TIMER_3_TURBO_TALON);
} }
} }
@@ -51,7 +53,7 @@ f32 func_802A88B0(void){
if(func_8028B128()) if(func_8028B128())
return D_80364AA0; return D_80364AA0;
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364A9C; return D_80364A9C;
return D_80364A94; return D_80364A94;
@@ -59,7 +61,7 @@ f32 func_802A88B0(void){
f32 func_802A8900(void){ f32 func_802A8900(void){
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364A98; return D_80364A98;
return D_80364A90; return D_80364A90;
@@ -69,7 +71,7 @@ f32 func_802A8934(void){
if(func_8028B128()) if(func_8028B128())
return D_80364AB8; return D_80364AB8;
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364AB0; return D_80364AB0;
return D_80364AA8; return D_80364AA8;
@@ -79,7 +81,7 @@ f32 func_802A8984(void){
if(func_8028B128()) if(func_8028B128())
return D_80364AB4; return D_80364AB4;
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364AAC; return D_80364AAC;
return D_80364AA4; return D_80364AA4;
@@ -109,14 +111,14 @@ void func_802A8A40(void){
} }
void func_802A8AD8(void){ void func_802A8AD8(void){
func_80299650(func_80291684(3), func_80291670(3)); func_80299650(stateTimer_getPrevious(STATE_TIMER_3_TURBO_TALON), stateTimer_get(STATE_TIMER_3_TURBO_TALON));
if(miscflag_isTrue(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS) &&(bs_getState() != BS_17_BTROT_EXIT)){ if(miscflag_isTrue(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS) &&(bs_getState() != BS_17_BTROT_EXIT)){
miscflag_clear(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS); miscflag_clear(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS);
func_802917E4(3, func_80294A40()); stateTimer_set(STATE_TIMER_3_TURBO_TALON, func_80294A40());
func_803219F4(4); func_803219F4(4);
} }
if(func_802916CC(3)){ if(stateTimer_isDone(STATE_TIMER_3_TURBO_TALON)){
if(func_8029DFE0()){ if(func_8029DFE0()){
func_8029E0DC(0); func_8029E0DC(0);
if(miscflag_isFalse(MISC_FLAG_14_LOSE_BOGGY_RACE)) if(miscflag_isFalse(MISC_FLAG_14_LOSE_BOGGY_RACE))
@@ -142,7 +144,7 @@ void func_802A8BB0(void){
roll_setIdeal(0.0f); roll_setIdeal(0.0f);
miscflag_clear(3); miscflag_clear(3);
if(next_state != BS_5A_LOADZONE) if(next_state != BS_5A_LOADZONE)
func_802917E4(3, 0.0f); stateTimer_set(STATE_TIMER_3_TURBO_TALON, 0.0f);
func_802A8AD8(); func_802A8AD8();
func_80289F10(1); func_80289F10(1);
func_8029CF48(4, 0, 0.0f); func_8029CF48(4, 0, 0.0f);
@@ -151,7 +153,7 @@ void func_802A8BB0(void){
} }
int func_802A8C60(void){ int func_802A8C60(void){
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return 0; return 0;
return button_released(BUTTON_Z); return button_released(BUTTON_Z);
@@ -167,7 +169,7 @@ void _bsbtrot_802A8C98(AnimCtrl *aCtrl, enum asset_e arg1){
} }
enum asset_e func_802A8D00(enum asset_e arg0, enum asset_e arg1){ enum asset_e func_802A8D00(enum asset_e arg0, enum asset_e arg1){
if(func_802916CC(3)) if(stateTimer_isDone(STATE_TIMER_3_TURBO_TALON))
return arg0; return arg0;
else else
return arg1; return arg1;
@@ -239,7 +241,7 @@ void bsbtrot_enter_end(void){
} }
void bsbtrot_stand_init(void){ void bsbtrot_stand_init(void){
func_8028A010(ASSET_26_ANIM_BTROT_IDLE, 1.2f); func_8028A010(ASSET_26_ANIM_BSBTROT_IDLE, 1.2f);
func_8029C7F4(1,1,1,2); func_8029C7F4(1,1,1,2);
func_80297970(0.0f); func_80297970(0.0f);
func_802A8A40(); func_802A8A40();
@@ -249,7 +251,7 @@ void bsbtrot_stand_update(void){
enum bs_e next_state = 0;; enum bs_e next_state = 0;;
func_802A8850(); func_802A8850();
func_802A8AD8(); func_802A8AD8();
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
func_802A87C0(); func_802A87C0();
func_80299628(1); func_80299628(1);
next_state = func_802A8D84(next_state); next_state = func_802A8D84(next_state);
@@ -263,7 +265,7 @@ void bsbtrot_stand_end(void){
} }
enum asset_e func_802A9030(void){ enum asset_e func_802A9030(void){
return func_802A8D00(0x15, 0x44); return func_802A8D00(ASSET_15_ANIM_BSBTROT_WALK, ASSET_44_ANIM_BSBTROT_TURBO_WALK);
} }
void func_802A9054(void){ void func_802A9054(void){
@@ -303,7 +305,7 @@ void bsbtrot_walk_update(void){
func_802A880C(0); func_802A880C(0);
func_8029AD28(0.7781f, 3); func_8029AD28(0.7781f, 3);
if(func_80291698(3)){ if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON)){
func_802A87C0(); func_802A87C0();
} }
else{ else{
@@ -371,7 +373,7 @@ void bsbtrot_jump_update(void){
AnimCtrl * aCtrl = _player_getAnimCtrlPtr(); AnimCtrl * aCtrl = _player_getAnimCtrlPtr();
f32 sp1C[3]; f32 sp1C[3];
func_802A8AD8(); func_802A8AD8();
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
func_802A87C0(); func_802A87C0();
if(miscflag_isTrue(0xF)) if(miscflag_isTrue(0xF))
@@ -520,7 +522,7 @@ void bsbtrot_slide_update(void){
f32 sp2C; f32 sp2C;
func_802A8AD8(); func_802A8AD8();
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
func_802A87C0(); func_802A87C0();
func_80299AAC(); func_80299AAC();
D_8037D3A0 = ml_max_f(D_8037D3A0-time_getDelta(), 0.0f); D_8037D3A0 = ml_max_f(D_8037D3A0-time_getDelta(), 0.0f);
@@ -582,7 +584,7 @@ void bsbtrot_fall_update(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
f32 sp1C[3]; f32 sp1C[3];
func_802A8AD8(); func_802A8AD8();
if(func_80291698(3)) if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
func_802A87C0(); func_802A87C0();
if(miscflag_isTrue(0xf)) if(miscflag_isTrue(0xf))
@@ -676,7 +678,7 @@ void bsbtrot_fall_end(void){
} }
void bsbtrot_unk79_init(void){ void bsbtrot_unk79_init(void){
func_8028A010(ASSET_26_ANIM_BTROT_IDLE, 1.2f); func_8028A010(ASSET_26_ANIM_BSBTROT_IDLE, 1.2f);
func_8029C7F4(1,1,3,2); func_8029C7F4(1,1,3,2);
func_80297970(0.0f); func_80297970(0.0f);
func_802A8A40(); func_802A8A40();

View File

@@ -76,7 +76,7 @@ void func_802AA58C(enum bs_e *arg0){
} }
void bsbwhirl_enter_init(void){ void bsbwhirl_enter_init(void){
func_8028A274(0x22, 0.5f); func_8028A274(ASSET_22_ANIM_BSWHIRL_EXIT, 0.5f);
func_8029C7F4(1,1,1,2); func_8029C7F4(1,1,1,2);
func_80297970(0.0f); func_80297970(0.0f);
func_8029B324(0, 0.03f); func_8029B324(0, 0.03f);
@@ -130,7 +130,7 @@ void bsbwhirl_stand_end(void){
} }
void bsbwhirl_walk_init(void){ void bsbwhirl_walk_init(void){
func_8028A010(ASSET_11_ANIM_BSWONDERWING_WALK, 0.53f); func_8028A010(ASSET_11_ANIM_BSWHIRL_WALK, 0.53f);
func_80289EC8(D_80364AD0, D_80364AD4, D_80364AD8, D_80364ADC); func_80289EC8(D_80364AD0, D_80364AD4, D_80364AD8, D_80364ADC);
func_8029C7F4(2,1,1,2); func_8029C7F4(2,1,1,2);
@@ -171,7 +171,7 @@ void bsbwhirl_jump_init(void){
AnimCtrl * aCtrl = _player_getAnimCtrlPtr(); AnimCtrl * aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_WONDERWING_JUMP); animctrl_setIndex(aCtrl, ASSET_1B_ANIM_BSWHIRL_JUMP);
animctrl_setDuration(aCtrl, 0.8f); animctrl_setDuration(aCtrl, 0.8f);
animctrl_setTransitionDuration(aCtrl, 0.134f); animctrl_setTransitionDuration(aCtrl, 0.134f);
func_8028774C(aCtrl, 0.14f); func_8028774C(aCtrl, 0.14f);
@@ -244,7 +244,7 @@ void bsbwhirl_exit_init(void){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setDirection(aCtrl, 0); animctrl_setDirection(aCtrl, 0);
animctrl_setIndex(aCtrl, ANIM_BANJO_WONDERWING_EXIT); animctrl_setIndex(aCtrl, ASSET_22_ANIM_BSWHIRL_EXIT);
animctrl_setDuration(aCtrl, 0.5f); animctrl_setDuration(aCtrl, 0.5f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
func_802875AC(aCtrl, "bsbwhirl.c", 0x201); func_802875AC(aCtrl, "bsbwhirl.c", 0x201);

View File

@@ -57,7 +57,7 @@ void bsbbuster_init(void){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, ANIM_BANJO_BBUSTER); animctrl_setIndex(aCtrl, ASSET_1D_ANIM_BSBBUSTER);
animctrl_setDuration(aCtrl, 1.02f); animctrl_setDuration(aCtrl, 1.02f);
animctrl_setSubRange(aCtrl, 0.0f, 0.35f); animctrl_setSubRange(aCtrl, 0.0f, 0.35f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "bsint.h" #include "bsint.h"
#include "core2/statetimer.h"
/* .data */ /* .data */
const f32 D_80364AF0 = 30.0f; const f32 D_80364AF0 = 30.0f;
@@ -101,7 +102,7 @@ void bscarry_interrupt(void){
func_8028DE6C(baMarker_getCarriedObjectActorId()); func_8028DE6C(baMarker_getCarriedObjectActorId());
break; break;
case BS_INTR_16_THROW_CARRIED_OBJ: case BS_INTR_16_THROW_CARRIED_OBJ:
if(func_802916CC(1)){ if(stateTimer_isDone(STATE_TIMER_1_THROW)){
bs_setState(BS_CARRY_THROW); bs_setState(BS_CARRY_THROW);
func_8029A86C(2); func_8029A86C(2);
} }

View File

@@ -125,7 +125,7 @@ void bsclimb_idle_end(void){
} }
void bsclimb_move_init(void){ void bsclimb_move_init(void){
func_8028A010(ASSET_A_ANIM_BANJO_CLIMB_MOVE, 0.9f); func_8028A010(ASSET_A_ANIM_BSCLIMB_MOVE, 0.9f);
func_80289F10(3); func_80289F10(3);
func_80289EA8(0.3f, 1.5f); func_80289EA8(0.3f, 1.5f);
func_80289EC8(100.0f, 300.0f, 0.6f, 0.4f); func_80289EC8(100.0f, 300.0f, 0.6f, 0.4f);

View File

@@ -1,7 +1,7 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
int bscroc_inSet(enum bs_e state); int bscroc_inSet(enum bs_e state);
@@ -32,7 +32,7 @@ u8 D_8037D3F5;
/* .code */ /* .code */
f32 func_802ABDC0(void){ f32 func_802ABDC0(void){
if(func_80291670(3) != 0.0f) if(stateTimer_get(STATE_TIMER_3_TURBO_TALON) != 0.0f)
return D_80364B08; return D_80364B08;
else else
return D_80364B04; return D_80364B04;
@@ -45,11 +45,11 @@ void func_802ABE04(void){
} }
void func_802ABE70(void){ void func_802ABE70(void){
f32 sp1C = func_80291670(3); f32 sp1C = stateTimer_get(STATE_TIMER_3_TURBO_TALON);
func_80299650(func_80291684(3), sp1C); func_80299650(stateTimer_getPrevious(STATE_TIMER_3_TURBO_TALON), sp1C);
if(miscflag_isTrue(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS) && bs_getState() != BS_17_BTROT_EXIT){ if(miscflag_isTrue(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS) && bs_getState() != BS_17_BTROT_EXIT){
miscflag_clear(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS); miscflag_clear(MISC_FLAG_10_TOUCHING_TURBO_TRAINERS);
func_802917E4(3, func_80294A40()); stateTimer_set(STATE_TIMER_3_TURBO_TALON, func_80294A40());
func_8025A6EC(COMUSIC_8A_GETTING_TURBO_TRAINERS, -1); func_8025A6EC(COMUSIC_8A_GETTING_TURBO_TRAINERS, -1);
func_8029E0DC(1); func_8029E0DC(1);
} }
@@ -58,9 +58,9 @@ void func_802ABE70(void){
func_8029C3E8(0.0f, 30.0f); func_8029C3E8(0.0f, 30.0f);
} }
if(func_80291700(3, 0.01f)){ if(stateTimer_isAt(STATE_TIMER_3_TURBO_TALON, 0.01f)){
func_8029E0DC(0); func_8029E0DC(0);
func_8030E58C(0x3eb, 1.35f); func_8030E58C(SFX_3EB_UNKNOWN, 1.35f);
} }
} }

View File

@@ -10,17 +10,17 @@ u8 D_8037D404;
enum bs_e func_802ADCD4(enum bs_e arg0); enum bs_e func_802ADCD4(enum bs_e arg0);
void func_802AD6D0(void){ void func_802AD6D0(void){
func_8028A010(ANIM_BANJO_CROUCH, 0.5f); func_8028A010(ASSET_10C_ANIM_BSCROUCH_IDLE, 0.5f);
D_8037D404 = 4; D_8037D404 = 4;
} }
void func_802AD6FC(void){ void func_802AD6FC(void){
func_8028A180(ANIM_BANJO_CROUCH_NOINPUT, 2.0f); func_8028A180(ASSET_116_ANIM_BSCROUCH_NOINPUT, 2.0f);
D_8037D404 = 2; D_8037D404 = 2;
} }
void func_802AD728(void){ void func_802AD728(void){
func_8028A1F4(ANIM_BANJO_CROUCH, 0.5f, 0.9999f); func_8028A1F4(ASSET_10C_ANIM_BSCROUCH_IDLE, 0.5f, 0.9999f);
func_8029E3C0(2, 2.0f); func_8029E3C0(2, 2.0f);
D_8037D404 = 1; D_8037D404 = 1;
} }
@@ -51,7 +51,7 @@ void bscrouch_init(void){
break; break;
} }
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_CROUCH_ENTER); animctrl_setIndex(aCtrl, ASSET_1_ANIM_BSCROUCH_ENTER);
animctrl_setDuration(aCtrl, 0.5f); animctrl_setDuration(aCtrl, 0.5f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
func_8028774C(aCtrl, sp24); func_8028774C(aCtrl, sp24);

View File

@@ -27,7 +27,7 @@ void bsdie_init(void){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, ASSET_9_ANIM_BANJO_DIE); animctrl_setIndex(aCtrl, ASSET_9_ANIM_BSDIE);
animctrl_setSubRange(aCtrl, 0.0f, 0.3356f); animctrl_setSubRange(aCtrl, 0.0f, 0.3356f);
animctrl_setDuration(aCtrl, 2.0f); animctrl_setDuration(aCtrl, 2.0f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);

View File

@@ -73,7 +73,7 @@ void func_802AECE4(void){
&& animctrl_getIndex(aCtrl) == ASSET_3_ANIM_BSWALK && animctrl_getIndex(aCtrl) == ASSET_3_ANIM_BSWALK
){ ){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_RUN); animctrl_setIndex(aCtrl, ASSET_C_ANIM_BSWALK_RUN);
func_802875AC(aCtrl, "bsdronegoto.c", 0x9d); func_802875AC(aCtrl, "bsdronegoto.c", 0x9d);
} }

View File

@@ -332,7 +332,7 @@ void bsdronexform_init(void){
func_80294378(6); func_80294378(6);
func_802AFB0C(); func_802AFB0C();
func_802B016C(); func_802B016C();
D_8037D470.player_transformation = _player_getTransformation(); D_8037D470.player_transformation = bsStoredState_getTransformation();
D_8037D470.room_transformation = func_80294A4C(); D_8037D470.room_transformation = func_80294A4C();
miscflag_set(MISC_FLAG_1B_TRANSFORMING); miscflag_set(MISC_FLAG_1B_TRANSFORMING);
D_8037D470.state = 0; D_8037D470.state = 0;

View File

@@ -23,7 +23,7 @@ void bsjig_jiggy_init(void){
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, FALSE); animctrl_setSmoothTransition(aCtrl, FALSE);
animctrl_setIndex(aCtrl, ANIM_BANJO_BJIG_JIGGY); animctrl_setIndex(aCtrl, ASSET_2E_ANIM_BSJIG_JIGGY);
animctrl_setDuration(aCtrl, 4.3f); animctrl_setDuration(aCtrl, 4.3f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
func_802875AC(aCtrl, "bsjig.c", 0x7f); func_802875AC(aCtrl, "bsjig.c", 0x7f);
@@ -43,13 +43,13 @@ void bsjig_jiggy_init(void){
miscflag_clear(7); miscflag_clear(7);
miscflag_clear(0xf); miscflag_clear(0xf);
baMarker_collisionOff(); baMarker_collisionOff();
func_802C82C0(marker_getActor(bsjig_gJiggyMarker), 1); chJigsawDance_setState(marker_getActor(bsjig_gJiggyMarker), 1);
D_8037D4B0 = 0; D_8037D4B0 = 0;
} }
void func_802B0BA8(void){ void func_802B0BA8(void){
if(bsjig_gJiggyMarker){ if(bsjig_gJiggyMarker){
func_802C82C0(marker_getActor(bsjig_gJiggyMarker), 4); chJigsawDance_setState(marker_getActor(bsjig_gJiggyMarker), 4);
} }
} }
@@ -84,7 +84,7 @@ void bsjig_jiggy_update(void){
void func_802B0CD8(void){ void func_802B0CD8(void){
if(bsjig_gJiggyMarker){ if(bsjig_gJiggyMarker){
func_802C82C0(marker_getActor(bsjig_gJiggyMarker), 5); chJigsawDance_setState(marker_getActor(bsjig_gJiggyMarker), 5);
bsjig_gJiggyMarker = NULL; bsjig_gJiggyMarker = NULL;
} }
} }

View File

@@ -386,7 +386,7 @@ bool bsjump_jumpingFromWater(void){
} }
void bsjump_tumble_init(void){ void bsjump_tumble_init(void){
func_8028A084(0x68, 0.35f); func_8028A084(ASSET_68_ANIM_BSJUMP_TUMBLE, 0.35f);
func_8029C7F4(1,1,3,6); func_8029C7F4(1,1,3,6);
baModel_setYDisplacement(60.0f); baModel_setYDisplacement(60.0f);
if(func_80293234() == 1){ if(func_80293234() == 1){

View File

@@ -16,7 +16,7 @@ void bsow_init(void){
animctrl_reset(plyr_mvmnt); animctrl_reset(plyr_mvmnt);
animctrl_setSmoothTransition(plyr_mvmnt, 0); animctrl_setSmoothTransition(plyr_mvmnt, 0);
animctrl_setSubRange(plyr_mvmnt, 0.0f, 0.534399986267f); animctrl_setSubRange(plyr_mvmnt, 0.0f, 0.534399986267f);
animctrl_setIndex(plyr_mvmnt, ANIM_BANJO_OW); animctrl_setIndex(plyr_mvmnt, ASSET_4D_ANIM_BSOW);
animctrl_setDuration(plyr_mvmnt, 1.70000004768f); animctrl_setDuration(plyr_mvmnt, 1.70000004768f);
animctrl_setPlaybackType(plyr_mvmnt, ANIMCTRL_ONCE); animctrl_setPlaybackType(plyr_mvmnt, ANIMCTRL_ONCE);
func_802875AC(plyr_mvmnt, "bsow.c", 0x50); func_802875AC(plyr_mvmnt, "bsow.c", 0x50);

View File

@@ -51,13 +51,13 @@ void bsslide_init(void){
f32 sp2C; f32 sp2C;
f32 sp28; f32 sp28;
f32 tmp_f0; f32 tmp_f0;
D_8037D520 = ANIM_BANJO_SLIDE_FRONT; D_8037D520 = ASSET_5A_ANIM_BSSLIDE_FRONT;
if(player_isSliding()){ if(player_isSliding()){
func_80294480(sp30); func_80294480(sp30);
if(func_80258108(sp30, &sp28, &sp2C)){ if(func_80258108(sp30, &sp28, &sp2C)){
tmp_f0 = mlNormalizeAngle(yaw_get() - sp28); tmp_f0 = mlNormalizeAngle(yaw_get() - sp28);
if(tmp_f0 < 90.0f || 270.0f < tmp_f0){ if(tmp_f0 < 90.0f || 270.0f < tmp_f0){
D_8037D520 = ANIM_BANJO_SLIDE_BACK; D_8037D520 = ASSET_59_ANIM_BSSLIDE_BACK;
} }
} }
} }

View File

@@ -57,7 +57,7 @@ void bssplat_update(void){
sp1C = BS_2F_FALL; sp1C = BS_2F_FALL;
if(animctrl_isStopped(aCtrl)){ if(animctrl_isStopped(aCtrl)){
func_8028A180(ASSET_D2_ANIM_BANJO_GETTING_UP, 2.25f); func_8028A180(ASSET_D2_ANIM_BSSPLAT, 2.25f);
D_8037D530 = 1; D_8037D530 = 1;
} }
break; break;

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "bsint.h" #include "bsint.h"
#include "core2/statetimer.h"
extern f32 func_8029B2E8(void); extern f32 func_8029B2E8(void);
void yaw_setVelocityBounded(f32, f32); void yaw_setVelocityBounded(f32, f32);
@@ -59,7 +60,7 @@ s32 func_802B488C(s32 arg0){
retVal = BS_WALK; retVal = BS_WALK;
break; break;
case 4: //L802B48D4 case 4: //L802B48D4
retVal = BS_WALK_FAST; retVal = BS_4_WALK_FAST;
break; break;
} }
if(button_held(BUTTON_Z)) if(button_held(BUTTON_Z))
@@ -211,12 +212,12 @@ void bsstand_update(void) {
if (animctrl_isAt(anim_ctrl, 0.9999f)) func_8029E070(0); if (animctrl_isAt(anim_ctrl, 0.9999f)) func_8029E070(0);
}//L802B50E4 }//L802B50E4
} else if (sp18 & 0x20) { } else if (sp18 & 0x20) {
if (animctrl_getIndex(anim_ctrl) == 0x95) { if (animctrl_getIndex(anim_ctrl) == ASSET_95_ANIM_BSSTAND_KAZOOIE_PECK) {
func_802B4A10(anim_ctrl); func_802B4A10(anim_ctrl);
if (animctrl_isAt(anim_ctrl, 0.37f)) { if (animctrl_isAt(anim_ctrl, 0.37f)) {
animctrl_reset(anim_ctrl); animctrl_reset(anim_ctrl);
animctrl_setTransitionDuration(anim_ctrl, 0.1f); animctrl_setTransitionDuration(anim_ctrl, 0.1f);
animctrl_setIndex(anim_ctrl, 0xF6); animctrl_setIndex(anim_ctrl, ASSET_F6_ANIM_BSSTAND_PULL_KAZOOIE);
animctrl_setDuration(anim_ctrl, 5.0f); animctrl_setDuration(anim_ctrl, 5.0f);
animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_ONCE);
func_802875AC(anim_ctrl, "bsstand.c", 0x170); func_802875AC(anim_ctrl, "bsstand.c", 0x170);
@@ -240,12 +241,12 @@ void bsstand_update(void) {
D_8037D540 = func_802B4870(D_8037D540); D_8037D540 = func_802B4870(D_8037D540);
sp18 = D_80364D20[D_8037D540]; sp18 = D_80364D20[D_8037D540];
if (sp18 & 0x10) { if (sp18 & 0x10) {
func_8028A180(0x95, 5.5f); func_8028A180(ASSET_95_ANIM_BSSTAND_KAZOOIE_PECK, 5.5f);
_func_802875AC(anim_ctrl, "bsstand.c", 0x1AB); _func_802875AC(anim_ctrl, "bsstand.c", 0x1AB);
func_8029E070(1); func_8029E070(1);
func_802900FC(); func_802900FC();
} else if (sp18 & 0x20) { } else if (sp18 & 0x20) {
func_8028A180(0x95, 5.5f); func_8028A180(ASSET_95_ANIM_BSSTAND_KAZOOIE_PECK, 5.5f);
func_8029E070(1); func_8029E070(1);
func_802900FC(); func_802900FC();
} else if (sp18 & 8) { } else if (sp18 & 8) {
@@ -287,7 +288,7 @@ void bsstand_landing_update(void){
s32 sp1C = 0; s32 sp1C = 0;
AnimCtrl * sp18 = _player_getAnimCtrlPtr(); AnimCtrl * sp18 = _player_getAnimCtrlPtr();
if(animctrl_getIndex(sp18) == 0xd2){ if(animctrl_getIndex(sp18) == ASSET_D2_ANIM_BSSPLAT){
if(animctrl_isAt(sp18, 0.8264f)){ if(animctrl_isAt(sp18, 0.8264f)){
func_80299CF4(SFX_6F_BANJO_HEADSCRATCH, 1.0f, 0x36b0); func_80299CF4(SFX_6F_BANJO_HEADSCRATCH, 1.0f, 0x36b0);
} }
@@ -312,7 +313,7 @@ void func_802B5350(void){
bs_setState(0x52); bs_setState(0x52);
} }
if(sp1C == 0x7){ if(sp1C == 0x7){
if(_player_getTransformation() != TRANSFORM_1_BANJO) if(bsStoredState_getTransformation() != TRANSFORM_1_BANJO)
func_8029A86C(1); func_8029A86C(1);
else{ else{
func_802948F8(baMarker_8028D688()); func_802948F8(baMarker_8028D688());
@@ -321,7 +322,7 @@ void func_802B5350(void){
} }
else if(sp1C == 0x12){//L802B53D0 else if(sp1C == 0x12){//L802B53D0
func_8029A86C(1); func_8029A86C(1);
if( _player_getTransformation() == TRANSFORM_1_BANJO && !miscflag_isTrue(0xF) && func_802916CC(0)){ if( bsStoredState_getTransformation() == TRANSFORM_1_BANJO && !miscflag_isTrue(0xF) && stateTimer_isDone(STATE_TIMER_0_UNKNOWN)){
func_8028DE6C(baMarker_getCarriedObjectActorId()); func_8028DE6C(baMarker_getCarriedObjectActorId());
func_8029A86C(2); func_8029A86C(2);
} }

View File

@@ -15,13 +15,13 @@ s16 D_80364D50[10] = {
ASSET_57_ANIM_BSSWIM_IDLE, ASSET_57_ANIM_BSSWIM_IDLE,
ASSET_57_ANIM_BSSWIM_IDLE, ASSET_57_ANIM_BSSWIM_IDLE,
ASSET_57_ANIM_BSSWIM_IDLE, ASSET_57_ANIM_BSSWIM_IDLE,
0x58, ASSET_58_ANIM_BSSWIM_IDLE2,
ASSET_57_ANIM_BSSWIM_IDLE, ASSET_57_ANIM_BSSWIM_IDLE,
0x58, ASSET_58_ANIM_BSSWIM_IDLE2,
ASSET_57_ANIM_BSSWIM_IDLE, ASSET_57_ANIM_BSSWIM_IDLE,
ASSET_57_ANIM_BSSWIM_IDLE, ASSET_57_ANIM_BSSWIM_IDLE,
0x58, ASSET_58_ANIM_BSSWIM_IDLE2,
0x58 ASSET_58_ANIM_BSSWIM_IDLE2
}; };
/* .bss */ /* .bss */
@@ -196,9 +196,9 @@ void func_802B5B18(void) {
} else { } else {
anim_duration = 0.4f; anim_duration = 0.4f;
} }
if (animctrl_getIndex(anim_ctrl) != ASSET_39_ANIM_BSSWIM_SWIM) { if (animctrl_getIndex(anim_ctrl) != ASSET_39_ANIM_BSSWIM_MOVE) {
animctrl_reset(anim_ctrl); animctrl_reset(anim_ctrl);
animctrl_setIndex(anim_ctrl, ASSET_39_ANIM_BSSWIM_SWIM); animctrl_setIndex(anim_ctrl, ASSET_39_ANIM_BSSWIM_MOVE);
animctrl_setTransitionDuration(anim_ctrl, anim_duration); animctrl_setTransitionDuration(anim_ctrl, anim_duration);
func_8028774C(anim_ctrl, 0.8f); func_8028774C(anim_ctrl, 0.8f);
animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP); animctrl_setPlaybackType(anim_ctrl, ANIMCTRL_LOOP);

View File

@@ -1,6 +1,7 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
extern ActorMarker *carriedobj_getMarker(void); extern ActorMarker *carriedobj_getMarker(void);
@@ -56,8 +57,8 @@ void bsthrow_update(void){
void bsthrow_end(void){ void bsthrow_end(void){
D_8037D580 = 0; D_8037D580 = 0;
if(bs_getNextState() == BS_1_IDLE){ if(bs_getNextState() == BS_1_IDLE){
func_802917E4(0, 0.14f); stateTimer_set(STATE_TIMER_0_UNKNOWN, 0.14f);
func_802917E4(1, 0.28f); stateTimer_set(STATE_TIMER_1_THROW, 0.28f);
} }
} }

View File

@@ -8,7 +8,7 @@ f32 func_8029B41C(void);
void func_802BF2C0(f32); void func_802BF2C0(f32);
void func_802B6270(void){ void func_802B6270(void){
func_8028A180(0x77, 3.2f); func_8028A180(ASSET_77_ANIM_BSTIMEOUT, 3.2f);
func_8029C7F4(1,1,3,2); func_8029C7F4(1,1,3,2);
func_80297970(0.0f); func_80297970(0.0f);
func_802914CC(0xd); func_802914CC(0xd);

View File

@@ -12,7 +12,7 @@ void bsturn_init(void){
f32 sp28[3]; f32 sp28[3];
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setIndex(aCtrl, ANIM_BANJO_TURN); animctrl_setIndex(aCtrl, ASSET_E_ANIM_BSTURN);
animctrl_setDuration(aCtrl, 0.3f); animctrl_setDuration(aCtrl, 0.3f);
animctrl_setTransitionDuration(aCtrl,0.1f); animctrl_setTransitionDuration(aCtrl,0.1f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);
@@ -49,7 +49,7 @@ void bsturn_update(void){
}//L802B6978 }//L802B6978
if(animctrl_isStopped(_player_getAnimCtrlPtr())) if(animctrl_isStopped(_player_getAnimCtrlPtr()))
sp2C = BS_WALK_FAST; sp2C = BS_4_WALK_FAST;
if(button_held(BUTTON_Z)) if(button_held(BUTTON_Z))
sp2C = BS_CROUCH; sp2C = BS_CROUCH;

View File

@@ -16,7 +16,7 @@ void bstwirl_init(void){
AnimCtrl *aCtrl = _player_getAnimCtrlPtr(); AnimCtrl *aCtrl = _player_getAnimCtrlPtr();
animctrl_reset(aCtrl); animctrl_reset(aCtrl);
animctrl_setSmoothTransition(aCtrl, 0); animctrl_setSmoothTransition(aCtrl, 0);
animctrl_setIndex(aCtrl, ANIM_BANJO_ROLL); animctrl_setIndex(aCtrl, ASSET_4F_ANIM_BSTWIRL);
animctrl_setDuration(aCtrl, 0.9f); animctrl_setDuration(aCtrl, 0.9f);
animctrl_setSubRange(aCtrl, 0.0f, 1.0f); animctrl_setSubRange(aCtrl, 0.0f, 1.0f);
animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(aCtrl, ANIMCTRL_ONCE);

View File

@@ -126,7 +126,7 @@ void bswalk_creep_init(void){
sp20 = 0.0f; sp20 = 0.0f;
} }
animctrl_reset(s0); animctrl_reset(s0);
animctrl_setIndex(s0, ANIM_BANJO_WALK_CREEP); animctrl_setIndex(s0, ASSET_2_ANIM_BSWALK_CREEP);
animctrl_setDuration(s0, 0.43f); animctrl_setDuration(s0, 0.43f);
func_8028774C(s0, sp20); func_8028774C(s0, sp20);
animctrl_setPlaybackType(s0, ANIMCTRL_LOOP); animctrl_setPlaybackType(s0, ANIMCTRL_LOOP);
@@ -158,7 +158,7 @@ void bswalk_creep_update(void){
s0 = BS_WALK; s0 = BS_WALK;
break; break;
case 4: case 4:
s0 = BS_WALK_FAST; s0 = BS_4_WALK_FAST;
break; break;
}//L802B7194 }//L802B7194
if(func_8028B128()) if(func_8028B128())
@@ -231,7 +231,7 @@ void bswalk_slow_upate(void){
s0 = BS_WALK; s0 = BS_WALK;
break; break;
case 4: case 4:
s0 = BS_WALK_FAST; s0 = BS_4_WALK_FAST;
break; break;
}//L802B7194 }//L802B7194
if(func_8028B128()) if(func_8028B128())
@@ -276,7 +276,7 @@ void bswalk_init(void){
break; break;
} }
animctrl_reset(s0); animctrl_reset(s0);
animctrl_setIndex(s0, ANIM_BANJO_RUN); animctrl_setIndex(s0, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(s0, 0.66f); animctrl_setDuration(s0, 0.66f);
animctrl_setTransitionDuration(s0, 0.14f); animctrl_setTransitionDuration(s0, 0.14f);
func_8028774C(s0, sp20); func_8028774C(s0, sp20);
@@ -303,7 +303,7 @@ void bswalk_update(void){
s0 = BS_2_WALK_SLOW; s0 = BS_2_WALK_SLOW;
break; break;
case 4: case 4:
s0 = BS_WALK_FAST; s0 = BS_4_WALK_FAST;
break; break;
}//L802B76B8 }//L802B76B8
if(func_8028B128()) if(func_8028B128())
@@ -360,7 +360,7 @@ void bswalk_fast_init(void){
} }
animctrl_reset(s0); animctrl_reset(s0);
animctrl_setSmoothTransition(s0, sp24); animctrl_setSmoothTransition(s0, sp24);
animctrl_setIndex(s0, ANIM_BANJO_RUN); animctrl_setIndex(s0, ASSET_C_ANIM_BSWALK_RUN);
animctrl_setDuration(s0, 0.66f); animctrl_setDuration(s0, 0.66f);
animctrl_setTransitionDuration(s0, 0.1f); animctrl_setTransitionDuration(s0, 0.1f);
func_8028774C(s0, sp28); func_8028774C(s0, sp28);
@@ -444,7 +444,7 @@ void bswalk_fast_end(void){
} }
void bswalk_mud_init(void){ void bswalk_mud_init(void){
func_8028A010(ANIM_BANJO_WALK_MUD, 0.43f); func_8028A010(ASSET_B_ANIM_BSWALK_MUD, 0.43f);
func_8029C7F4(2,1,1,2); func_8029C7F4(2,1,1,2);
func_80289EA8(0.3f, 1.5f); func_80289EA8(0.3f, 1.5f);
func_80289EC8(D_80364D84, D_80364D88, D_80364DB0, D_80364DB4); func_80289EC8(D_80364D84, D_80364D88, D_80364DB0, D_80364DB4);

61
src/core2/bsStoredState.c Normal file
View File

@@ -0,0 +1,61 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
struct {
f32 longleg_timer; //longleg_timer
f32 turbo_timer; //turbotrot_timer
u8 transformation;
} bsStoredState;
u8 bsStoredStateInTrot; //in trot
/* .code */
void func_8029A890(void){
func_802957FC();
}
void bsStoredState_clear(void){
func_80295804();
bsStoredState.longleg_timer = bsStoredState.turbo_timer = 0.0f;
bsStoredState.transformation = TRANSFORM_1_BANJO;
bsStoredStateInTrot = FALSE;
}
enum transformation_e bsStoredState_getTransformation(void){
return bsStoredState.transformation;
}
f32 bsStoredState_getLongLegTimer(void){
return bsStoredState.longleg_timer;
}
f32 bsStoredState_getTurboTimer(void){
return bsStoredState.turbo_timer;
}
s32 bsStoredState_getTrotFlag(void){
return bsStoredStateInTrot;
}
void bsStoredState_8029A924(void){}
void bsStoredState_clearTimers(void){
bsStoredState_setLongLegTimer(0.0f);
bsStoredState_setTurboTimer(0.0f);
}
void player_setTransformation(enum transformation_e xform_id){
bsStoredState.transformation = xform_id;
}
void bsStoredState_setLongLegTimer(f32 arg0){
bsStoredState.longleg_timer = arg0;
}
void bsStoredState_setTurboTimer(f32 arg0){
bsStoredState.turbo_timer = arg0;
}
void bsStoredState_setTrot(bool arg0){
bsStoredStateInTrot = arg0;
}

View File

@@ -30,7 +30,7 @@ void func_802CE7E0(ActorMarker *marker, ActorMarker *other){
__spawnQueue_add_4((GenMethod_4)func_802C4140, ACTOR_4C_STEAM, reinterpret_cast(s32, actor->position[0]), reinterpret_cast(s32, actor->position[1]), reinterpret_cast(s32, actor->position[2])); __spawnQueue_add_4((GenMethod_4)func_802C4140, ACTOR_4C_STEAM, reinterpret_cast(s32, actor->position[0]), reinterpret_cast(s32, actor->position[1]), reinterpret_cast(s32, actor->position[2]));
__spawnQueue_add_4((GenMethod_4)func_802C4140, ACTOR_4A_WOOD_EXPLOSION, reinterpret_cast(s32, actor->position[0]), reinterpret_cast(s32, actor->position[1]), reinterpret_cast(s32, actor->position[2])); __spawnQueue_add_4((GenMethod_4)func_802C4140, ACTOR_4A_WOOD_EXPLOSION, reinterpret_cast(s32, actor->position[0]), reinterpret_cast(s32, actor->position[1]), reinterpret_cast(s32, actor->position[2]));
actor->marker->propPtr->unk8_3 = 0; actor->marker->propPtr->unk8_3 = 0;
func_803115C4(ASSET_D96_TEXT_BEEHIVE); func_803115C4(ASSET_D96_DIALOG_BEEHIVE_MEET);
func_803115C4(ASSET_DA6_TEXT_BEEHIVE_WITH_BEES); func_803115C4(ASSET_DA6_TEXT_BEEHIVE_WITH_BEES);
} }
@@ -57,7 +57,7 @@ void func_802CE8D4(Actor *this){
){ ){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){ if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if( player_getTransformation() == TRANSFORM_1_BANJO if( player_getTransformation() == TRANSFORM_1_BANJO
&& func_80311480(ASSET_D96_TEXT_BEEHIVE, 0, NULL, NULL, NULL, 0) && func_80311480(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0)
){ ){
func_80320004(BKPROG_D_BEEHIVE_TEXT, 1); func_80320004(BKPROG_D_BEEHIVE_TEXT, 1);
} }

View File

@@ -6,34 +6,34 @@
extern void actor_setOpacity(Actor*,s32); extern void actor_setOpacity(Actor*,s32);
extern void func_8035644C(u32); extern void func_8035644C(u32);
bool chcollectable_collectItem(Actor*, u32, enum asset_e, enum comusic_e, enum item_e, f32); bool chCollectible_collectItem(Actor*, u32, enum asset_e, enum comusic_e, enum item_e, f32);
Actor *chCollectable_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3); Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void chCollectable_update(Actor *this); void chCollectible_update(Actor *this);
/* .data */ /* .data */
extern ActorInfo D_80367D00 = { extern ActorInfo D_80367D00 = {
MARKER_60_BLUE_EGG_COLLECTABLE, ACTOR_52_BLUE_EGG, ASSET_36D_SPRITE_BLUE_EGG, MARKER_60_BLUE_EGG_COLLECTIBLE, ACTOR_52_BLUE_EGG, ASSET_36D_SPRITE_BLUE_EGG,
0, NULL, 0, NULL,
chCollectable_update, func_80326224, chCollectable_draw, chCollectible_update, func_80326224, chCollectible_draw,
0, 0, 0.7f, 0 0, 0, 0.7f, 0
}; };
extern ActorInfo D_80367D24 = { extern ActorInfo D_80367D24 = {
MARKER_B5_RED_FEATHER_COLLECTABLE, ACTOR_129_RED_FEATHER, ASSET_580_SPRITE_RED_FEATHER, MARKER_B5_RED_FEATHER_COLLECTIBLE, ACTOR_129_RED_FEATHER, ASSET_580_SPRITE_RED_FEATHER,
0, NULL, 0, NULL,
chCollectable_update, func_80326224, chCollectable_draw, chCollectible_update, func_80326224, chCollectible_draw,
0, 0, 0.5f, 0 0, 0, 0.5f, 0
}; };
extern ActorInfo D_80367D48 = { extern ActorInfo D_80367D48 = {
MARKER_1E5_GOLD_FEATHER_COLLECTABLE, ACTOR_370_GOLD_FEATHER, ASSET_6D1_SPRITE_GOLDFEATHTER, MARKER_1E5_GOLD_FEATHER_COLLECTIBLE, ACTOR_370_GOLD_FEATHER, ASSET_6D1_SPRITE_GOLDFEATHTER,
0, NULL, 0, NULL,
chCollectable_update, func_80326224, chCollectable_draw, chCollectible_update, func_80326224, chCollectible_draw,
0, 0, 0.5f, 0 0, 0, 0.5f, 0
}; };
/* .code */ /* .code */
void chcollectable_setState(Actor *arg0, s32 next_state){ void chCollectible_setState(Actor *arg0, s32 next_state){
switch(next_state){ switch(next_state){
default: default:
break; break;
@@ -55,15 +55,15 @@ void func_802D8C98(Actor *this, s32 arg1) {
switch (this->marker->unk14_20) switch (this->marker->unk14_20)
{ {
case MARKER_60_BLUE_EGG_COLLECTABLE: case MARKER_60_BLUE_EGG_COLLECTIBLE:
phi_v0 = TRUE; phi_v0 = TRUE;
break; break;
case MARKER_B5_RED_FEATHER_COLLECTABLE: case MARKER_B5_RED_FEATHER_COLLECTIBLE:
phi_v0 = (arg1 == 1) || (arg1 == 2) || (arg1 == 3); phi_v0 = (arg1 == 1) || (arg1 == 2) || (arg1 == 3);
break; break;
case MARKER_1E5_GOLD_FEATHER_COLLECTABLE: case MARKER_1E5_GOLD_FEATHER_COLLECTIBLE:
phi_v0 = TRUE; phi_v0 = TRUE;
break; break;
@@ -73,10 +73,10 @@ void func_802D8C98(Actor *this, s32 arg1) {
} }
this->unk10_12 = arg1; this->unk10_12 = arg1;
chcollectable_setState(this, (phi_v0 ) ? 2 : 3); chCollectible_setState(this, (phi_v0 ) ? 2 : 3);
} }
bool chcollectable_collectItem(Actor* actor, u32 arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){ bool chCollectible_collectItem(Actor* actor, u32 arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){
func_8025A6EC(sfxId,32000); func_8025A6EC(sfxId,32000);
timedFunc_set_1(0.75f, (GenMethod_1)func_8035644C, arg1); timedFunc_set_1(0.75f, (GenMethod_1)func_8035644C, arg1);
if(!func_802FADD4(0x1b)){ if(!func_802FADD4(0x1b)){
@@ -89,37 +89,37 @@ bool chcollectable_collectItem(Actor* actor, u32 arg1, enum asset_e dialogId, en
return TRUE; return TRUE;
actor->unk60 = arg5; actor->unk60 = arg5;
chcollectable_setState(actor, 1); chCollectible_setState(actor, 1);
return FALSE; return FALSE;
} }
s32 chcollectable_collectEgg(ActorProp *arg0){ s32 chCollectible_collectEgg(ActorProp *arg0){
Actor *actPtr = NULL; Actor *actPtr = NULL;
if(arg0 != NULL){ if(arg0 != NULL){
fxSparkle_blueEgg(&arg0->x); fxSparkle_blueEgg(&arg0->x);
if(arg0->unk8_0) if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker); actPtr = marker_getActor(arg0->marker);
} }
chcollectable_collectItem(actPtr, 5, 0xD9E, COMUSIC_C_EGG_COLLECTED, 0xD, 2.0f); chCollectible_collectItem(actPtr, 5, 0xD9E, COMUSIC_C_EGG_COLLECTED, 0xD, 2.0f);
} }
void chcollectable_collectRedFeather(ActorProp *arg0){ void chCollectible_collectRedFeather(ActorProp *arg0){
Actor *actPtr = NULL; Actor *actPtr = NULL;
fxSparkle_redFeather(&arg0->x); fxSparkle_redFeather(&arg0->x);
if(arg0->unk8_0) if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker); actPtr = marker_getActor(arg0->marker);
chcollectable_collectItem(actPtr, 6, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f); chCollectible_collectItem(actPtr, 6, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f);
} }
void chcollectable_collectGoldFeather(ActorProp *arg0){ void chCollectible_collectGoldFeather(ActorProp *arg0){
Actor *actPtr = NULL; Actor *actPtr = NULL;
fxSparkle_goldFeather(&arg0->x); fxSparkle_goldFeather(&arg0->x);
if(arg0->unk8_0) if(arg0->unk8_0)
actPtr = marker_getActor(arg0->marker); actPtr = marker_getActor(arg0->marker);
chcollectable_collectItem(actPtr, 7, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f); chCollectible_collectItem(actPtr, 7, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f);
} }
Actor *chCollectable_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){ Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){
Actor *thisActor = marker_getActor(this); Actor *thisActor = marker_getActor(this);
if(thisActor->unk28 != 0.0f){ if(thisActor->unk28 != 0.0f){
@@ -136,7 +136,7 @@ Actor *chCollectable_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){
return thisActor; return thisActor;
} }
void chCollectable_update(Actor *this) { void chCollectible_update(Actor *this) {
f32 temp_f0; f32 temp_f0;
f32 temp_f0_2; f32 temp_f0_2;
f32 temp_f2; f32 temp_f2;
@@ -163,7 +163,7 @@ void chCollectable_update(Actor *this) {
if (this->unk60 > 0.0) { if (this->unk60 > 0.0) {
this->unk60 -= time_getDelta(); this->unk60 -= time_getDelta();
} else { } else {
chcollectable_setState(this, 2); chCollectible_setState(this, 2);
} }
/* fallthrough */ /* fallthrough */
case 3: case 3:

View File

@@ -4,44 +4,42 @@
extern bool func_80259254(f32[3], f32, f32, f32); extern bool func_80259254(f32[3], f32, f32, f32);
void func_802CBAAC(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80367010[] ={ ActorAnimationInfo chCrabAnimations[] ={
{ 0, 0.0f}, { 0, 0.0f},
{0x1DA, 0.8f}, { ASSET_1DA_ANIM_CRAB_IDLE, 0.8f},
{ 0x2C, 2.0f}, { ASSET_2C_ANIM_CRAB_WALK, 2.0f},
{ 0x2C, 1.4f}, { ASSET_2C_ANIM_CRAB_WALK, 1.4f},
{ 0x2C, 0.7f}, { ASSET_2C_ANIM_CRAB_WALK, 0.7f},
{ 0x96, 0.5f}, { ASSET_96_ANIM_CRAB_UPSIDEDOWN, 0.5f},
{ 0x97, 0.8f}, { ASSET_97_ANIM_CRAB_FLIP_UPSIDEDOWN, 0.8f},
{0x155, 0.55f}, { ASSET_155_ANIM_CRAB_FLIP_UPRIGHT, 0.55f},
{ 0x2C, 1.4f}, { ASSET_2C_ANIM_CRAB_WALK, 1.4f},
{ 0x2C, 4.0f} { ASSET_2C_ANIM_CRAB_WALK, 4.0f}
}; };
ActorAnimationInfo D_80367060[] = { ActorAnimationInfo chCrabMutantAnimations[] = {
{0x000, 0.0f}, {0x000, 0.0f},
{0x1DB, 0.8f}, {ASSET_1DB_ANIM_MUTANT_CRAB_IDLE, 0.8f},
{0x156, 2.0f}, {ASSET_156_ANIM_MUTANT_CRAB_WALK, 2.0f},
{0x156, 1.4f}, {ASSET_156_ANIM_MUTANT_CRAB_WALK, 1.4f},
{0x156, 0.7f}, {ASSET_156_ANIM_MUTANT_CRAB_WALK, 0.7f},
{0x158, 0.5f}, {ASSET_158_ANIM_MUTANT_CRAB_UPSIDEDOWN, 0.5f},
{0x157, 0.8f}, {ASSET_157_ANIM_MUTANT_CRAB_FLIP_UPSIDEDOWN, 0.8f},
{0x159, 0.55f}, {ASSET_159_ANIM_MUTANT_CRAB_UPRIGHT, 0.55f},
{0x156, 1.4f}, {ASSET_156_ANIM_MUTANT_CRAB_WALK, 1.4f},
{0x156, 2.0f} {ASSET_156_ANIM_MUTANT_CRAB_WALK, 2.0f}
}; };
/* .code */ /* .code */
void func_802CB040(Actor *this) { void __chCrab_802CB040(Actor *this) {
this->unk28 = randf2(1.5f, 2.3f); this->unk28 = randf2(1.5f, 2.3f);
} }
void func_802CB078(Actor *this) { void __chCrab_802CB078(Actor *this) {
u32 temp_t9; u32 temp_t9;
if ((this->modelCacheIndex != 0xF2) || func_8038B550()) { if ((this->modelCacheIndex != ACTOR_F2_BLACK_SNIPPET) || func_8038B550()) {
temp_t9 = (u32) this->unk38_31 >> 0x16; temp_t9 = (u32) this->unk38_31 >> 0x16;
if (this->unk38_31 != 0) { if (this->unk38_31 != 0) {
this->unk38_31--; this->unk38_31--;
@@ -49,7 +47,7 @@ void func_802CB078(Actor *this) {
} }
else{ else{
if( func_80329530(this, 1500) if( func_80329530(this, 1500)
&& ( (this->modelCacheIndex == 0xF2) || func_803292E0(this)) && ( (this->modelCacheIndex == ACTOR_F2_BLACK_SNIPPET) || func_803292E0(this))
) { ) {
this->unk28 = 0.0f; this->unk28 = 0.0f;
func_80328A84(this, 3U); func_80328A84(this, 3U);
@@ -58,42 +56,42 @@ void func_802CB078(Actor *this) {
} }
} }
void func_802CB140(Actor *this) { void __chCrab_802CB140(Actor *this) {
func_80328A84(this, 2U); func_80328A84(this, 2U);
func_802CB040(this); __chCrab_802CB040(this);
func_80328CEC(this, (s32) this->yaw_ideal, 135, 175); func_80328CEC(this, (s32) this->yaw_ideal, 135, 175);
this->unk38_31 = 150; this->unk38_31 = 150;
} }
void func_802CB1A4(ActorMarker *marker, ActorMarker *other){ void __chCrab_touch(ActorMarker *marker, ActorMarker *other){
Actor *this; Actor *this;
this = marker_getActor(marker); this = marker_getActor(marker);
if ((this->state == 4) && func_803294F0(this, 80, func_80329784(this))) { if ((this->state == 4) && func_803294F0(this, 80, func_80329784(this))) {
FUNC_8030E8B4(SFX_1E_HITTING_AN_ENEMY_2, 1.0f, 28000, this->position, 950, 1900); FUNC_8030E8B4(SFX_1E_HITTING_AN_ENEMY_2, 1.0f, 28000, this->position, 950, 1900);
func_802CB140(this); __chCrab_802CB140(this);
func_80328A84(this, 1); func_80328A84(this, 1);
} }
} }
void func_802CB22C(ActorMarker *marker, ActorMarker *other) { void __chCrab_ow(ActorMarker *marker, ActorMarker *other) {
Actor *this; Actor *this;
this = marker_getActor(marker); this = marker_getActor(marker);
this->unk60 = 3.0f; this->unk60 = 3.0f;
func_80328A84(this, 6); func_80328A84(this, 6);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
if (marker->unk14_20 == 0x13) { if (marker->unk14_20 == MARKER_13_SNIPPET) {
FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900); FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
marker->unk14_20 = 0x16B; marker->unk14_20 = MARKER_16B_SNIPPET_UPSIDEDOWN;
} }
if (marker->unk14_20 == 0xDD) { if (marker->unk14_20 == MARKER_DD_BLACK_SNIPPET) {
FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900); FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
marker->unk14_20 = 0xDE; marker->unk14_20 = MARKER_DE_BLACK_SNIPPET_UPSIDEDOWN;
} }
} }
void func_802CB310(ParticleEmitter *p_ctrl, f32 position[3]) { void __chCrab_particleEmitterSetup(ParticleEmitter *p_ctrl, f32 position[3]) {
particleEmitter_setPosition(p_ctrl, position); particleEmitter_setPosition(p_ctrl, position);
particleEmitter_setDrawMode(p_ctrl, 2); particleEmitter_setDrawMode(p_ctrl, 2);
func_802EF9F8(p_ctrl, 0.7f); func_802EF9F8(p_ctrl, 0.7f);
@@ -106,8 +104,8 @@ void func_802CB310(ParticleEmitter *p_ctrl, f32 position[3]) {
} }
void func_802CB3C8(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) { void __chCrab_emitClawPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) {
func_802CB310(p_ctrl, position); __chCrab_particleEmitterSetup(p_ctrl, position);
particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f);
particleEmitter_setModel(p_ctrl, model_id); particleEmitter_setModel(p_ctrl, model_id);
func_802EFB70(p_ctrl, 0.5f, 0.8f); func_802EFB70(p_ctrl, 0.5f, 0.8f);
@@ -116,8 +114,8 @@ void func_802CB3C8(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_
particleEmitter_emitN(p_ctrl, 2); particleEmitter_emitN(p_ctrl, 2);
} }
void func_802CB4B8(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) { void __chCrab_emitLegPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) {
func_802CB310(p_ctrl, position); __chCrab_particleEmitterSetup(p_ctrl, position);
particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f);
particleEmitter_setModel(p_ctrl, model_id); particleEmitter_setModel(p_ctrl, model_id);
func_802EFB70(p_ctrl, 0.5f, 0.8f); func_802EFB70(p_ctrl, 0.5f, 0.8f);
@@ -126,8 +124,8 @@ void func_802CB4B8(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_
particleEmitter_emitN(p_ctrl, 6); particleEmitter_emitN(p_ctrl, 6);
} }
void func_802CB5A8(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) { void __chCrab_emitHeadPiece(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_id) {
func_802CB310(p_ctrl, position); __chCrab_particleEmitterSetup(p_ctrl, position);
particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f);
particleEmitter_setModel(p_ctrl, model_id); particleEmitter_setModel(p_ctrl, model_id);
func_802EFB70(p_ctrl, 1.0f, 1.0f); func_802EFB70(p_ctrl, 1.0f, 1.0f);
@@ -136,20 +134,20 @@ void func_802CB5A8(ParticleEmitter *p_ctrl, f32 position[3], enum asset_e model_
particleEmitter_emitN(p_ctrl, 1); particleEmitter_emitN(p_ctrl, 1);
} }
void func_802CB6A0(void) { void __chCrab_spawn_mutant_crab_jiggy(void) {
f32 sp1C[3]; f32 sp1C[3];
sp1C[0] = 13814.0f; sp1C[0] = 13814.0f;
sp1C[1] = 3812.0f; sp1C[1] = 3812.0f;
sp1C[2] = 0.0f; sp1C[2] = 0.0f;
jiggySpawn(0x16U, sp1C); jiggySpawn(JIGGY_16_CC_SNIPPETS, sp1C);
} }
void func_802CB6E4(ActorMarker *caller, enum asset_e text_id, s32 model_id){ void __chCrab_mutantTextCallback(ActorMarker *caller, enum asset_e text_id, s32 model_id){
if (text_id == 0xD33) { if (text_id == ASSET_D33_DIALOG_MUTANT_CRAB_DEFEAT) {
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 4); timed_setCameraToNode(0.0f, 4);
timedFunc_set_0(0.1f, func_802CB6A0); timedFunc_set_0(0.1f, __chCrab_spawn_mutant_crab_jiggy);
func_80324E88(3.0f); func_80324E88(3.0f);
func_80324E38(3.0f, 0); func_80324E38(3.0f, 0);
return; return;
@@ -157,28 +155,28 @@ void func_802CB6E4(ActorMarker *caller, enum asset_e text_id, s32 model_id){
levelSpecificFlags_set(0xE, FALSE); levelSpecificFlags_set(0xE, FALSE);
} }
bool func_802CB76C(ActorMarker *marker, ActorMarker *other) { bool __chCrab_802CB76C(ActorMarker *marker, ActorMarker *other) {
Actor *this; Actor *this;
this = marker_getActor(marker); this = marker_getActor(marker);
if ((this->modelCacheIndex == 0xF2) && !func_8038B550()) { if ((this->modelCacheIndex == ACTOR_F2_BLACK_SNIPPET) && !func_8038B550()) {
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
} }
void func_802CB7C0(ActorMarker *marker, ActorMarker *other){ void __chCrab_die(ActorMarker *marker, ActorMarker *other){
Actor *this; Actor *this;
f32 sp48[3]; f32 jiggy_spawn_position[3];
f32 sp44; f32 sp44;
bool sp40; bool is_mutant_snippet;
bool sp3C; bool is_black_snippet;
s32 phi_a2; s32 model_id;
ParticleEmitter *p_ctrl; ParticleEmitter *p_ctrl;
this = marker_getActor(marker); this = marker_getActor(marker);
sp40 = this->modelCacheIndex == 0xF5; is_mutant_snippet = this->modelCacheIndex == ACTOR_F5_MUTIE_SNIPPET;
sp3C = this->modelCacheIndex == 0xF2; is_black_snippet = this->modelCacheIndex == ACTOR_F2_BLACK_SNIPPET;
FUNC_8030E8B4(SFX_79_TICKER_DEATH, 1.0f, 32750, this->position, 950, 1900); FUNC_8030E8B4(SFX_79_TICKER_DEATH, 1.0f, 32750, this->position, 950, 1900);
FUNC_8030E8B4(SFX_79_TICKER_DEATH, 1.0f, 28000, this->position, 950, 1900); FUNC_8030E8B4(SFX_79_TICKER_DEATH, 1.0f, 28000, this->position, 950, 1900);
__spawnQueue_add_4((GenMethod_4)func_802C4140, ACTOR_4C_STEAM, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, this->position[1]), reinterpret_cast(s32, this->position[2])); __spawnQueue_add_4((GenMethod_4)func_802C4140, ACTOR_4C_STEAM, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, this->position[1]), reinterpret_cast(s32, this->position[2]));
@@ -191,28 +189,34 @@ void func_802CB7C0(ActorMarker *marker, ActorMarker *other){
) { ) {
this->depth_mode = MODEL_RENDER_DEPTH_COMPARE; this->depth_mode = MODEL_RENDER_DEPTH_COMPARE;
if( !jiggyscore_isCollected(JIGGY_16_CC_SNIPPETS) if( !jiggyscore_isCollected(JIGGY_16_CC_SNIPPETS)
&& ((actorArray_findClosestActorFromActorId(this->position, 0xF5, -1, &sp44) == NULL) || (3000.0f < sp44))) { && ((actorArray_findClosestActorFromActorId(this->position, ACTOR_F5_MUTIE_SNIPPET, -1, &sp44) == NULL) || (3000.0f < sp44))) {
sp48[0] = 13814.0f; jiggy_spawn_position[0] = 13814.0f;
sp48[1] = 3812.0f; jiggy_spawn_position[1] = 3812.0f;
sp48[2] = 0.0f; jiggy_spawn_position[2] = 0.0f;
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
func_80324DBC(2.25f, 0xD33, 0xF, sp48, NULL, func_802CB6E4, NULL); func_80324DBC(2.25f, ASSET_D33_DIALOG_MUTANT_CRAB_DEFEAT, 0xF, jiggy_spawn_position, NULL, __chCrab_mutantTextCallback, NULL);
} }
} }
p_ctrl = partEmitMgr_newEmitter(2); p_ctrl = partEmitMgr_newEmitter(2);
phi_a2 = (sp40) ? 0x392 : (sp3C) ? 0x569 : 0x38C; model_id = (is_mutant_snippet) ? ASSET_392_MODEL_MUTANT_CRAB_CLAW
func_802CB3C8(p_ctrl, this->position, phi_a2); : (is_black_snippet) ? ASSET_569_MODEL_BLACK_CRAB_CLAW
: ASSET_38C_MODEL_CRAB_CLAW;
__chCrab_emitClawPiece(p_ctrl, this->position, model_id);
p_ctrl = partEmitMgr_newEmitter(6); p_ctrl = partEmitMgr_newEmitter(6);
phi_a2 = (sp40) ? 0x391 : (sp3C) ? 0x568 : 0x38D; model_id = (is_mutant_snippet) ? ASSET_391_MODEL_MUTANT_CRAB_LEG
func_802CB4B8(p_ctrl, this->position, phi_a2); : (is_black_snippet) ? ASSET_568_MODEL_BLACK_CRAB_LEG
: ASSET_38D_MODEL_CRAB_LEG;
__chCrab_emitLegPiece(p_ctrl, this->position, model_id);
p_ctrl = partEmitMgr_newEmitter(1); p_ctrl = partEmitMgr_newEmitter(1);
phi_a2 = (sp40) ? 0x390 : (sp3C) ? 0x567 : 0x38E; model_id = (is_mutant_snippet) ? ASSET_390_MODEL_MUTANT_CRAB_HEAD
func_802CB5A8(p_ctrl, this->position, phi_a2); : (is_black_snippet) ? ASSET_567_MODEL_BLACK_CRAB_HEAD
: ASSET_38E_MODEL_CRAB_HEAD;
__chCrab_emitHeadPiece(p_ctrl, this->position, model_id);
} }
void func_802CBA34(Actor *this) { void __chCrab_walkSfxUpdate(Actor *this) {
if (actor_animationIsAt(this, 0.4f)) { if (actor_animationIsAt(this, 0.4f)) {
FUNC_8030E8B4(SFX_3D_TICKER_WALKING, 0.85f, 15000, this->position, 950, 1900); FUNC_8030E8B4(SFX_3D_TICKER_WALKING, 0.85f, 15000, this->position, 950, 1900);
} }
@@ -221,19 +225,19 @@ void func_802CBA34(Actor *this) {
} }
} }
void func_802CBAAC(Actor *this) { void chCrab_update(Actor *this) {
s32 sp34; s32 sp34;
f32 sp30; f32 sp30;
s32 sp2C; bool is_mutant_snippet;
static s32 D_803670B0 = 0; static s32 D_803670B0 = 0;
static s32 D_803670B4 = 0; static s32 D_803670B4 = 0;
sp34 = func_8023DB5C(); sp34 = func_8023DB5C();
sp30 = time_getDelta(); sp30 = time_getDelta();
sp2C = this->modelCacheIndex == 0xF5; is_mutant_snippet = this->modelCacheIndex == ACTOR_F5_MUTIE_SNIPPET;
if (!this->unk16C_4) { if (!this->unk16C_4) {
marker_setCollisionScripts(this->marker, func_802CB1A4, func_802CB22C, func_802CB7C0); marker_setCollisionScripts(this->marker, __chCrab_touch, __chCrab_ow, __chCrab_die);
func_803300C0(this->marker, &func_802CB76C); func_803300C0(this->marker, &__chCrab_802CB76C);
this->unk124_0 = this->unk138_31 = FALSE; this->unk124_0 = this->unk138_31 = FALSE;
this->unk138_24 = FALSE; this->unk138_24 = FALSE;
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
@@ -260,13 +264,13 @@ void func_802CBAAC(Actor *this) {
} }
if( (map_get() == MAP_B_CC_CLANKERS_CAVERN) if( (map_get() == MAP_B_CC_CLANKERS_CAVERN)
&& !mapSpecificFlags_get(0) && !mapSpecificFlags_get(0)
&& sp2C && is_mutant_snippet
&& !jiggyscore_isCollected(JIGGY_16_CC_SNIPPETS) && !jiggyscore_isCollected(JIGGY_16_CC_SNIPPETS)
&& func_80329530(this, 500) && !func_80329530(this, 200) && func_80329530(this, 500) && !func_80329530(this, 200)
&& !func_8028ECAC() && !func_8028ECAC()
) { ) {
if ((this->state != 6) && (this->state != 5)) { if ((this->state != 6) && (this->state != 5)) {
func_80311480(0xD32, 0xF, this->position, NULL, func_802CB6E4, NULL); func_80311480(ASSET_D32_DIALOG_MUTANT_CRAB_MEET, 0xF, this->position, NULL, __chCrab_mutantTextCallback, NULL);
mapSpecificFlags_set(0, TRUE); mapSpecificFlags_set(0, TRUE);
levelSpecificFlags_set(0xE, TRUE); levelSpecificFlags_set(0xE, TRUE);
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
@@ -296,9 +300,9 @@ void func_802CBAAC(Actor *this) {
switch(this->state){ switch(this->state){
case 1: //L802CBE30 case 1: //L802CBE30
if (func_80328B38(this, 2, 0.03f)) { if (func_80328B38(this, 2, 0.03f)) {
func_802CB040(this); __chCrab_802CB040(this);
} }
func_802CB078(this); __chCrab_802CB078(this);
break; break;
case 9: //L802CBE6C case 9: //L802CBE6C
@@ -309,13 +313,13 @@ void func_802CBAAC(Actor *this) {
case 2: //L802CBE9C case 2: //L802CBE9C
func_80328FB0(this, 1.0f); func_80328FB0(this, 1.0f);
if( func_8032CA80(this, (this->modelCacheIndex == 0xF2)? 0xD: 0) if( func_8032CA80(this, (this->modelCacheIndex == ACTOR_F2_BLACK_SNIPPET)? 0xD: 0)
&& func_80329480(this) && func_80329480(this)
) { ) {
func_80328CEC(this, (s32) this->yaw, 90, 150); func_80328CEC(this, (s32) this->yaw, 90, 150);
} }
func_80328BD4(this, 1, 0.0f, 1, 0.0075f); func_80328BD4(this, 1, 0.0f, 1, 0.0075f);
func_802CB078(this); __chCrab_802CB078(this);
break; break;
case 3: //L802CBF44 case 3: //L802CBF44
@@ -343,8 +347,8 @@ void func_802CBAAC(Actor *this) {
this->yaw_ideal = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
} }
func_80328FB0(this, 7.0f); func_80328FB0(this, 7.0f);
if (func_8032CA80(this, (this->modelCacheIndex == 0xF2)? 0xD : 0)) { if (func_8032CA80(this, (this->modelCacheIndex == ACTOR_F2_BLACK_SNIPPET)? 0xD : 0)) {
func_802CB140(this); __chCrab_802CB140(this);
} }
break; break;
@@ -354,10 +358,10 @@ void func_802CBAAC(Actor *this) {
func_80328A84(this, 7); func_80328A84(this, 7);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
if (this->marker->unk14_20 == 0x16B) { if (this->marker->unk14_20 == 0x16B) {
this->marker->unk14_20 = 0x13; this->marker->unk14_20 = MARKER_13_SNIPPET;
} }
if (this->marker->unk14_20 == 0xDE) { if (this->marker->unk14_20 == 0xDE) {
this->marker->unk14_20 = 0xDD; this->marker->unk14_20 = MARKER_DD_BLACK_SNIPPET;
} }
} }
break; break;
@@ -385,16 +389,16 @@ void func_802CBAAC(Actor *this) {
if (sp34 != D_803670B0) { if (sp34 != D_803670B0) {
D_803670B0 = sp34; D_803670B0 = sp34;
D_803670B4 = 1; D_803670B4 = 1;
func_802CBA34(this); __chCrab_walkSfxUpdate(this);
} }
else if (D_803670B4 != 0) { else if (D_803670B4 != 0) {
D_803670B4--; D_803670B4--;
func_802CBA34(this); __chCrab_walkSfxUpdate(this);
} }
} }
} }
/* .data */ /* .data */
ActorInfo D_803670B8 = { MARKER_13_SNIPPET, ACTOR_67_SNIPPET, ASSET_358_SNIPPET, 0x1, D_80367010, func_802CBAAC, func_80326224, func_80325888, 1900, 0, 0.8f, 0}; ActorInfo D_803670B8 = { MARKER_13_SNIPPET, ACTOR_67_SNIPPET, ASSET_358_SNIPPET, 0x1, chCrabAnimations, chCrab_update, func_80326224, func_80325888, 1900, 0, 0.8f, 0};
ActorInfo D_803670DC = { MARKER_DD_BLACK_SNIPPET, ACTOR_F2_BLACK_SNIPPET, ASSET_566_MODEL_BLACK_SNIPPET, 0x1, D_80367010, func_802CBAAC, func_80326224, func_80325888, 1900, 0, 0.8f, 0}; ActorInfo D_803670DC = { MARKER_DD_BLACK_SNIPPET, ACTOR_F2_BLACK_SNIPPET, ASSET_566_MODEL_BLACK_SNIPPET, 0x1, chCrabAnimations, chCrab_update, func_80326224, func_80325888, 1900, 0, 0.8f, 0};
ActorInfo D_80367100 = { MARKER_13_SNIPPET, ACTOR_F5_MUTIE_SNIPPET, ASSET_38F_MODEL_MUTIE_SNIPPET, 0x1, D_80367060, func_802CBAAC, func_80326224, func_80325888, 1900, 0, 0.8f, 0}; ActorInfo D_80367100 = { MARKER_13_SNIPPET, ACTOR_F5_MUTIE_SNIPPET, ASSET_38F_MODEL_MUTIE_SNIPPET, 0x1, chCrabMutantAnimations, chCrab_update, func_80326224, func_80325888, 1900, 0, 0.8f, 0};

View File

@@ -16,24 +16,24 @@ typedef struct {
/* .data */ /* .data */
ActorAnimationInfo D_80372F80[] = { ActorAnimationInfo D_80372F80[] = {
{0, 0.0f}, {0, 0.0f},
{0x9A, 8000000.0f}, {ASSET_9A_ANIM_GRAVESTONE_IDLE, 8000000.0f},
{0x9A, 1.3f}, {ASSET_9A_ANIM_GRAVESTONE_IDLE, 1.3f},
{0x9B, 0.6f}, {ASSET_9B_ANIM_GRAVESTONE_WALK, 0.6f},
{0x9B, 0.75f}, {ASSET_9B_ANIM_GRAVESTONE_WALK, 0.75f},
{0x9A, 1.5f}, {ASSET_9A_ANIM_GRAVESTONE_IDLE, 1.5f},
{0x1ED, 1.0f}, {ASSET_1ED_ANIM_GRAVESTONE_OW, 1.0f},
{0x1EE, 2.4f} {ASSET_1EE_ANIM_GRAVESTONE_DIE, 2.4f}
}; };
ActorInfo D_80372FC0 = { ActorInfo D_80372FC0 = {
MARKER_96_RIPPER, ACTOR_C7_RIPPER, ASSET_3C9_MODEL_RIPPER, MARKER_96_GRAVESTONE, ACTOR_C7_GRAVESTONE, ASSET_3C9_MODEL_GRAVESTONE,
0x1, D_80372F80, 0x1, D_80372F80,
func_8035F138, func_80326224, func_8035ECA0, func_8035F138, func_80326224, func_8035ECA0,
3500, 0, 1.2f, 0 3500, 0, 1.2f, 0
}; };
ActorInfo D_80372FE4 = { ActorInfo D_80372FE4 = {
MARKER_297_GIANT_RIPPER, ACTOR_3C2_GIANT_RIPPER, ASSET_3C9_MODEL_RIPPER, MARKER_297_GIANT_GRAVESTONE, ACTOR_3C2_GIANT_GRAVESTONE, ASSET_3C9_MODEL_GRAVESTONE,
0x1, D_80372F80, 0x1, D_80372F80,
func_8035F138, func_80326224, func_8035ECA0, func_8035F138, func_80326224, func_8035ECA0,
14000, 0, 3.2f, 0 14000, 0, 3.2f, 0

View File

@@ -5,28 +5,28 @@
extern f32 func_8028EBA4(); extern f32 func_8028EBA4();
AnimCtrl *player_getAnimCtrlPtr(void); AnimCtrl *player_getAnimCtrlPtr(void);
Actor *func_802C80C0(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3); Actor *__chJigsawDance_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void func_802C811C(Actor * this); void __chJigsawDance_update(Actor * this);
/* .data */ /* .data */
ActorAnimationInfo D_803662D0[] = { ActorAnimationInfo chJigsawDanceAnimations[] = {
{0x00, 0.0f}, {0x00, 0.0f},
{0x00, 2.0f}, {0x00, 2.0f},
{0x76, 1.5f}, {ASSET_76_ANIM_JIGSAWDANCE_HOLD, 1.5f},
{0x76, 1.5f}, {ASSET_76_ANIM_JIGSAWDANCE_HOLD, 1.5f},
{0x30, 5.0f}, {ASSET_30_ANIM_JIGSAWDANCE_DANCE, 5.0f},
{0x00, 2.0f} {0x00, 2.0f}
}; };
ActorInfo D_80366300 = {0x68, 0x5A, 0x35E, ActorInfo chJigsawDance = {MARKER_68_JIGSAW_DANCE, ACTOR_5A_JIGSAW_DANCE, ASSET_35E_MODEL_JIGSAW_DANCE,
1, D_803662D0, 1, chJigsawDanceAnimations,
func_802C811C, func_80326224, func_802C80C0, __chJigsawDance_update, func_80326224, __chJigsawDance_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
/* .code */ /* .code */
Actor *func_802C80C0(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){ Actor *__chJigsawDance_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){
Actor *thisActor = marker_getActor(this); Actor *thisActor = marker_getActor(this);
if(!thisActor->initialized){ if(!thisActor->initialized){
@@ -38,7 +38,7 @@ Actor *func_802C80C0(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){
} }
} }
void func_802C811C(Actor * this){ void __chJigsawDance_update(Actor * this){
AnimCtrl *plyrMvmt; AnimCtrl *plyrMvmt;
this->marker->collidable = 0; this->marker->collidable = 0;
@@ -77,7 +77,7 @@ void func_802C811C(Actor * this){
} }
} }
void func_802C82C0(Actor * this, u32 arg1){ void chJigsawDance_setState(Actor * this, u32 arg1){
switch(arg1){ switch(arg1){
case 3: case 3:
if(this->state == 1){ if(this->state == 1){

View File

@@ -8,51 +8,46 @@ extern void func_80329904(ActorMarker*, s32, f32*);
extern void func_80326310(Actor *); extern void func_80326310(Actor *);
extern void func_8032BB88(Actor *, s32, s32); extern void func_8032BB88(Actor *, s32, s32);
void func_802CDD78(Actor *this); void chJinjo_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_803671B0[] = { ActorAnimationInfo chJinjoAnimations[] = {
{0, 0.0f}, {0, 0.0f},
{0x2D, 1000000.0f}, {ASSET_2D_ANIM_JINJO_IDLE, 1000000.0f},
{0x2D, 1.5f}, {ASSET_2D_ANIM_JINJO_IDLE, 1.5f},
{0x2F, 1.5f}, {ASSET_2F_ANIM_JINJO_HELP, 1.5f},
{0x31, 0.75f}, {ASSET_31_ANIM_JINJO_JUMP, 0.75f},
{0x2D, 1000000.0f}, {ASSET_2D_ANIM_JINJO_IDLE, 1000000.0f},
{0x31, 0.4f}, {ASSET_31_ANIM_JINJO_JUMP, 0.4f},
{0x130, 1.75f}, {ASSET_130_ANIM_JINJO_FLY_START, 1.75f},
{0x131, 2.13333f}, {ASSET_131_ANIM_JINJO_FLY_END, 2.13333f},
{0x31, 0.75f} {ASSET_31_ANIM_JINJO_JUMP, 0.75f}
}; };
ActorInfo D_80367200 = { 0x5A, 0x60, 0x3C0, 0x1, D_803671B0, func_802CDD78, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo chJinjoBlue = { MARKER_5A_JINJO_BLUE, ACTOR_60_JINJO_BLUE, ASSET_3C0_MODEL_JINJO_BLUE, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80367224 = { 0x5B, 0x62, 0x3C2, 0x1, D_803671B0, func_802CDD78, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo chJinjoGreen = { MARKER_5B_JINJO_GREEN, ACTOR_62_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80367248 = { 0x5E, 0x5E, 0x3BB, 0x1, D_803671B0, func_802CDD78, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo chJinjoYellow = { MARKER_5E_JINJO_YELLOW, ACTOR_5E_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_8036726C = { 0x5D, 0x61, 0x3C1, 0x1, D_803671B0, func_802CDD78, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo chJinjoPink = { MARKER_5D_JINJO_PINK, ACTOR_61_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80367290 = { 0x5C, 0x5F, 0x3BC, 0x1, D_803671B0, func_802CDD78, func_80326224, func_80325888, 0, 0, 0.0f, 0}; ActorInfo chJinjoOrange = { MARKER_5C_JINJO_ORANGE, ACTOR_5F_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE, 0x1, chJinjoAnimations, chJinjo_update, func_80326224, func_80325888, 0, 0, 0.0f, 0};
s32 func_802CDB50(s32 arg0){ enum asset_e __chJinjo_getMeetDialogId(enum marker_e marker_id){
switch(arg0){ switch(marker_id){
case 0x5A: case MARKER_5A_JINJO_BLUE: return ASSET_D98_DIALOG_JINJO_MEET_BLUE;
return 0xD98; case MARKER_5B_JINJO_GREEN: return ASSET_D99_DIALOG_JINJO_MEET_GREEN;
case 0x5B: case MARKER_5C_JINJO_ORANGE: return ASSET_D9B_DIALOG_JINJO_MEET_ORANGE;
return 0xD99; case MARKER_5D_JINJO_PINK: return ASSET_D9A_DIALOG_JINJO_MEET_PINK;
case 0x5C: case MARKER_5E_JINJO_YELLOW: return ASSET_D97_DIALOG_JINJO_MEET_YELLOW;
return 0xD9b;
case 0x5d:
return 0xD9a;
case 0x5e:
return 0xD97;
} }
return 0; return 0;
} }
void func_802CDBA8(ActorMarker *this, s32 arg1){ void __chJinjo_802CDBA8(ActorMarker *this, ActorMarker *other){
Actor *actorPtr = marker_getActor(this); Actor *actorPtr = marker_getActor(this);
ActorLocal_Jinjo *localPtr = &actorPtr->jinjo; ActorLocal_Jinjo *localPtr = &actorPtr->jinjo;
if(actorPtr->state < 5){ if(actorPtr->state < 5){
if(!func_8031FF1C(BKPROG_E_JINJO_TEXT)){ if(!func_8031FF1C(BKPROG_E_JINJO_TEXT)){
func_80311480(func_802CDB50(actorPtr->marker->unk14_20), 4, 0, 0, 0, 0); func_80311480(__chJinjo_getMeetDialogId(actorPtr->marker->unk14_20), 4, 0, 0, 0, 0);
func_80320004(BKPROG_E_JINJO_TEXT, 1); func_80320004(BKPROG_E_JINJO_TEXT, 1);
} }
func_80328B8C(actorPtr, 6, 0.0f , -1); func_80328B8C(actorPtr, 6, 0.0f , -1);
@@ -63,7 +58,7 @@ void func_802CDBA8(ActorMarker *this, s32 arg1){
} }
} }
void func_802CDC9C(Actor *this, s16 arg1){ void __chJinjo_802CDC9C(Actor *this, s16 arg1){
f32 tmpf; f32 tmpf;
tmpf = this->yaw; tmpf = this->yaw;
@@ -77,7 +72,7 @@ void func_802CDC9C(Actor *this, s16 arg1){
this->yaw = tmpf; this->yaw = tmpf;
} }
void func_802CDD3C(Actor * this){ void __chJinjo_802CDD3C(Actor * this){
ActorLocal_Jinjo *localPtr = &this->jinjo; ActorLocal_Jinjo *localPtr = &this->jinjo;
if(localPtr->unkC != 0){ if(localPtr->unkC != 0){
func_802F9D38(localPtr->unkC); func_802F9D38(localPtr->unkC);
@@ -85,7 +80,7 @@ void func_802CDD3C(Actor * this){
} }
} }
void func_802CDD78(Actor * this){ void chJinjo_update(Actor * this){
f32 sp7C[3]; f32 sp7C[3];
f32 sp70[3]; f32 sp70[3];
f32 sp6C; f32 sp6C;
@@ -114,8 +109,8 @@ void func_802CDD78(Actor * this){
local->unk0 = 1; local->unk0 = 1;
local->unk4 = 0; local->unk4 = 0;
local->unk8 = (this->position_y < func_80309B24(this->position)); local->unk8 = (this->position_y < func_80309B24(this->position));
this->marker->unkC = func_802CDBA8; this->marker->unkC = __chJinjo_802CDBA8;
marker_setFreeMethod(this->marker, func_802CDD3C); marker_setFreeMethod(this->marker, __chJinjo_802CDD3C);
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){ if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
marker_despawn(this->marker); marker_despawn(this->marker);
} }
@@ -168,7 +163,7 @@ void func_802CDD78(Actor * this){
}//L802CE018 }//L802CE018
break; break;
case 6:/* 47094 802CE024 02002025 */ case 6:/* 47094 802CE024 02002025 */
func_802CDC9C(this, sp66); __chJinjo_802CDC9C(this, sp66);
if(actor_animationIsAt(this, 0.0f) && --(local->unk0) == 0){ if(actor_animationIsAt(this, 0.0f) && --(local->unk0) == 0){
func_80328B8C(this, 7, 0.0f, -1); func_80328B8C(this, 7, 0.0f, -1);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
@@ -221,7 +216,7 @@ void func_802CDD78(Actor * this){
if(sp50){ if(sp50){
if(animctrl_getAnimTimer(this->animctrl) < 0.2) if(animctrl_getAnimTimer(this->animctrl) < 0.2)
func_802CDC9C(this, sp66); __chJinjo_802CDC9C(this, sp66);
if(actor_animationIsAt(this, 0.1f)){ if(actor_animationIsAt(this, 0.1f)){
local->unkC = func_802F9AA8(SFX_18_BIGBUTT_SLIDE); local->unkC = func_802F9AA8(SFX_18_BIGBUTT_SLIDE);
@@ -286,8 +281,8 @@ void func_802CDD78(Actor * this){
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
}//L802CE630 }//L802CE630
if(!func_803114B0()){ if(!func_803114B0()){
switch(D_803671B0[this->state].index){ switch(chJinjoAnimations[this->state].index){
case 0x31: case ASSET_31_ANIM_JINJO_JUMP:
if(actor_animationIsAt(this, 0.6f)){ if(actor_animationIsAt(this, 0.6f)){
if(local->unk8){ if(local->unk8){
func_8030E988(SFX_8_BANJO_LANDING_04, 1.8f, 18000, sp30, 120.0f, 1200.0f); func_8030E988(SFX_8_BANJO_LANDING_04, 1.8f, 18000, sp30, 120.0f, 1200.0f);
@@ -296,7 +291,7 @@ void func_802CDD78(Actor * this){
} }
} }
break; break;
case 0x2D: //L802CE6F4 case ASSET_2D_ANIM_JINJO_IDLE: //L802CE6F4
if(actor_animationIsAt(this, 0.2f)){ if(actor_animationIsAt(this, 0.2f)){
if(local->unk8){ if(local->unk8){
func_8030E988(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120.0f, 1200.0f); func_8030E988(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120.0f, 1200.0f);
@@ -305,7 +300,7 @@ void func_802CDD78(Actor * this){
} }
} }
break; break;
case 0x2F: //L802CE760 case ASSET_2F_ANIM_JINJO_HELP: //L802CE760
if(actor_animationIsAt(this, 0.2f)){ if(actor_animationIsAt(this, 0.2f)){
if(local->unk8){ if(local->unk8){
func_8030E988(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120.0f, 1200.0f); func_8030E988(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120.0f, 1200.0f);

View File

@@ -7,10 +7,10 @@ Actor *func_802D94B4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_802D9830(ActorMarker *marker, enum asset_e arg1, s32 arg2); void func_802D9830(ActorMarker *marker, enum asset_e arg1, s32 arg2);
typedef struct{ typedef struct{
s16 unk0; s16 learn_text;
s16 unk2; s16 refresher_text;
s8 unk4; s8 camera_node;
s8 unk5; s8 ability;
} struct_core2_52290; } struct_core2_52290;
/* .data */ /* .data */
@@ -31,16 +31,16 @@ ActorInfo D_80367DA0= {
}; };
struct_core2_52290 D_80367DC4[] = { struct_core2_52290 D_80367DC4[] = {
{0x0C23, 0x0C24, 0x0F, ABILITY_1_BEAK_BOMB}, {ASSET_C23_DIALOG_BEAKBOMB_LEARN, ASSET_C24_DIALOG_BEAKBOMB_REFRESHER, 0x0F, ABILITY_1_BEAK_BOMB},
{0x0B47, 0x0B4B, 0x16, ABILITY_6_EGGS}, {ASSET_B47_DIALOG_EGGS_LEARN, ASSET_B4B_DIALOG_EGGS_REFRESHER, 0x16, ABILITY_6_EGGS},
{0x0B48, 0x0B4C, 0x17, ABILITY_2_BEAK_BUSTER}, {ASSET_B48_DIALOG_BEAKBUSTER_LEARN, ASSET_B4C_DIALOG_BEAKBUSTER_REFRESHER, 0x17, ABILITY_2_BEAK_BUSTER},
{0x0B49, 0x0B4A, 0x18, ABILITY_10_TALON_TROT}, {ASSET_B49_DIALOG_TALON_TROT_LEARN, ASSET_B4A_DIALOG_TALON_TROT_REFRESHER, 0x18, ABILITY_10_TALON_TROT},
{0x0A1F, 0x0A23, 0x0C, ABILITY_D_SHOCK_JUMP}, {ASSET_A1F_DIALOG_SHOCKJUMP_LEARN, ASSET_A23_DIALOG_SHOCKJUMP_REFRESHER, 0x0C, ABILITY_D_SHOCK_JUMP},
{0x0A20, 0x0A22, 0x0D, ABILITY_9_FLY}, {ASSET_A20_DIALOG_FLY_LEARN, ASSET_A22_DIALOG_FLY_REFRESHER, 0x0D, ABILITY_9_FLY},
{0x0D35, 0x0D36, 0x01, ABILITY_12_WONDERWING}, {ASSET_D35_DIALOG_WONDERWING_LEARN, ASSET_D36_DIALOG_WONDERWING_REFRESHER, 0x01, ABILITY_12_WONDERWING},
{0x0C88, 0x0C89, 0x10, ABILITY_E_WADING_BOOTS}, {ASSET_C88_DIALOG_LONGLEG_LEARN, ASSET_C89_DIALOG_LONGLEG_REFRESHER, 0x10, ABILITY_E_WADING_BOOTS},
{0x0A84, 0x0A85, 0x19, ABILITY_11_TURBO_TALON}, {ASSET_A84_DIALOG_TURBOTRAINERS_LEARN, ASSET_A85_DIALOG_TURBOTRAINERS_REFRESHER, 0x19, ABILITY_11_TURBO_TALON},
{0x0F64, 0x0F65, 0x0E, ABILITY_13_1ST_NOTEDOOR} {ASSET_F64_DIALOG_NOTEDOORS_LEARN, ASSET_F65_DIALOG_NOTEDOORS_REFRESHER, 0x0E, ABILITY_13_1ST_NOTEDOOR}
}; };
/* .code */ /* .code */
@@ -136,18 +136,18 @@ void func_802D9600(Actor * this){
} }
void func_802D9658(Actor *this){ void func_802D9658(Actor *this){
timed_setCameraToNode(0.0f, D_80367DC4[this->unkF4_8-9].unk4); timed_setCameraToNode(0.0f, D_80367DC4[this->unkF4_8-9].camera_node);
} }
void func_802D9698(ActorMarker *marker, enum asset_e arg1, s32 arg2){ void func_802D9698(ActorMarker *marker, enum asset_e arg1, s32 arg2){
Actor *actor = marker_getActor(marker); Actor *actor = marker_getActor(marker);
if( arg1 == D_80367DC4[actor->unkF4_8-9].unk0 if( arg1 == D_80367DC4[actor->unkF4_8-9].learn_text
&& item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL) && item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL)
){ ){
func_80311480(ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH, 7, 0, actor->marker, func_802D9698, func_802D9830); func_80311480(ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH, 7, 0, actor->marker, func_802D9698, func_802D9830);
}//L802D9738 }//L802D9738
else if(arg1 == D_80367DC4[actor->unkF4_8-9].unk0 || arg1 == ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH){ else if(arg1 == D_80367DC4[actor->unkF4_8-9].learn_text || arg1 == ASSET_D39_TEXT_BOTTLES_REFILL_HEALTH){
func_80311480(func_802D93EC()? 0xa87 : func_802D9304(), 7, 0, actor->marker, func_802D9698, NULL); func_80311480(func_802D93EC()? 0xa87 : func_802D9304(), 7, 0, actor->marker, func_802D9698, NULL);
} }
else{//L802D97BC else{//L802D97BC
@@ -206,16 +206,16 @@ void func_802D9830(ActorMarker *marker, enum asset_e arg1, s32 arg2){
int func_802D997C(Actor *this){ int func_802D997C(Actor *this){
s32 sp2C; s32 sp2C;
s32 sp28 = 0xe; s32 sp28 = 0xe;
if(ability_isUnlocked(D_80367DC4[this->unkF4_8-9].unk5)){ if(ability_isUnlocked(D_80367DC4[this->unkF4_8-9].ability)){
sp28 = 0xf; sp28 = 0xf;
sp2C = D_80367DC4[this->unkF4_8-9].unk2; sp2C = D_80367DC4[this->unkF4_8-9].refresher_text;
}//L802D99EC }//L802D99EC
else{ else{
func_80347A14(0); func_80347A14(0);
this->unk138_24 = 1; this->unk138_24 = 1;
sp2C = D_80367DC4[this->unkF4_8-9].unk0; sp2C = D_80367DC4[this->unkF4_8-9].learn_text;
ability_unlock(D_80367DC4[this->unkF4_8-9].unk5); ability_unlock(D_80367DC4[this->unkF4_8-9].ability);
switch(D_80367DC4[this->unkF4_8-9].unk5){ switch(D_80367DC4[this->unkF4_8-9].ability){
case ABILITY_9_FLY: case ABILITY_9_FLY:
case ABILITY_D_SHOCK_JUMP: case ABILITY_D_SHOCK_JUMP:
func_8030E6A4(SFX_113_PAD_APPEARS, 0.9f, 32000); func_8030E6A4(SFX_113_PAD_APPEARS, 0.9f, 32000);
@@ -276,7 +276,7 @@ void func_802D9C90(Actor *this){
} }
void func_802D9CBC(Actor *this){ void func_802D9CBC(Actor *this){
if(ability_isUnlocked(D_80367DC4[this->unkF4_8 - 9].unk5)){ if(ability_isUnlocked(D_80367DC4[this->unkF4_8 - 9].ability)){
func_802D9BD8(this); func_802D9BD8(this);
} }
else{ else{
@@ -350,7 +350,7 @@ void func_802D9D60(Actor *this){
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if(func_8028F20C() && func_8028F0D4() && !func_8028EC04()){ if(func_8028F20C() && func_8028F0D4() && !func_8028EC04()){
if( this->unkF4_8 == 0x12 if( this->unkF4_8 == 0x12
&& !ability_isUnlocked(D_80367DC4[this->unkF4_8-9].unk5) && !ability_isUnlocked(D_80367DC4[this->unkF4_8-9].ability)
&& (func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT) && (func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT)
){ ){
player_getPosition(sp34); player_getPosition(sp34);

View File

@@ -13,22 +13,16 @@ void chshrapnel_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo chShrapnelAnimations[] = { ActorAnimationInfo chShrapnelAnimations[] = {
{0, 0.0f}, {0, 0.0f},
{0x1F4, 1.0f}, {ASSET_1F4_ANIM_SHRAPNEL_IDLE, 1.0f},
{0x1F4, 1.0f}, {ASSET_1F4_ANIM_SHRAPNEL_IDLE, 1.0f},
{0x92, 0.75f}, {ASSET_92_ANIM_SHRAPNEL_MOVE, 0.75f},
{0x92, 0.75f}, {ASSET_92_ANIM_SHRAPNEL_MOVE, 0.75f},
{0x1F4, 1.0f}, {ASSET_1F4_ANIM_SHRAPNEL_IDLE, 1.0f},
{0x1F4, 1.0f} {ASSET_1F4_ANIM_SHRAPNEL_IDLE, 1.0f}
}; };
s32 D_803673F8[3] = {0xDE, 0xA7, 0x71};
ActorInfo chShrapnelDescription = {
MARKER_65_SHRAPNEL, ACTOR_56_SHRAPNEL, ASSET_3EC_MODEL_SHRAPNEL,
0x1, chShrapnelAnimations,
chshrapnel_update, func_80326224, func_80325888,
2500, 0x333, 0.0f, 0
};
/* .code */ /* .code */
void chShrapnel_func_802D0A00(Actor *this) { void chShrapnel_func_802D0A00(Actor *this) {
@@ -79,6 +73,7 @@ void chShrapnel_emitExplosion(Actor *this) {
} }
void chShrapnel_emitSmoke(Actor *this) { void chShrapnel_emitSmoke(Actor *this) {
static s32 D_803673F8[3] = {0xDE, 0xA7, 0x71};
ParticleEmitter *temp_v0; ParticleEmitter *temp_v0;
temp_v0 = partEmitMgr_newEmitter(6U); temp_v0 = partEmitMgr_newEmitter(6U);
@@ -196,3 +191,9 @@ void chshrapnel_update(Actor *this) {
break; break;
} }
} }
ActorInfo chShrapnelDescription = {
MARKER_65_SHRAPNEL, ACTOR_56_SHRAPNEL, ASSET_3EC_MODEL_SHRAPNEL,
0x1, chShrapnelAnimations,
chshrapnel_update, func_80326224, func_80325888,
2500, 0x333, 0.0f, 0
};

View File

@@ -3,25 +3,25 @@
#include "variables.h" #include "variables.h"
bool func_8034A6FC(f32, f32); bool func_8034A6FC(f32, f32);
void func_8035E84C(Actor *this); void chTermite_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80372F10[] ={ ActorAnimationInfo chTermiteAnimations[] ={
{0, 0.0f}, {0, 0.0f},
{0x5E, 1.2f}, {ASSET_5E_ANIM_BSANT_IDLE, 1.2f},
{0x5F, 0.7f}, {ASSET_5F_ANIM_BSANT_WALK, 0.7f},
{0x5E, 1.2f}, {ASSET_5E_ANIM_BSANT_IDLE, 1.2f},
{0x5F, 0.7f}, {ASSET_5F_ANIM_BSANT_WALK, 0.7f},
{0, 0.0f}, {0, 0.0f},
{0x256, 0.7f}, {ASSET_256_ANIM_TERMITE_OW, 0.7f},
}; };
/* .code */ /* .code */
void func_8035DFD0(Actor *this) { void __chTermite_updateRandomSpeed(Actor *this) {
this->velocity[0] = randf2(5.0f, 12.0f); this->velocity[0] = randf2(5.0f, 12.0f);
} }
void func_8035E008(Actor *this) { void __chTermite_updateAnimationSpeed(Actor *this) {
if ((this->velocity[0] - 0.1 <= this->unk28) && (this->unk28 <= this->velocity[0] + 0.1)) { if ((this->velocity[0] - 0.1 <= this->unk28) && (this->unk28 <= this->velocity[0] + 0.1)) {
this->unk28 = this->velocity[0]; this->unk28 = this->velocity[0];
} else { } else {
@@ -30,25 +30,25 @@ void func_8035E008(Actor *this) {
animctrl_setDuration(this->animctrl, ml_map_f(this->unk28, 5.0f, 12.0f, 0.54f, 0.36f)); animctrl_setDuration(this->animctrl, ml_map_f(this->unk28, 5.0f, 12.0f, 0.54f, 0.36f));
} }
void func_8035E0D0(Actor *this) { void __chTermite_updateRandomRotationSpeed(Actor *this) {
this->velocity[1] = ((2*randf() * 3.1) - 3.1); this->velocity[1] = ((2*randf() * 3.1) - 3.1);
this->velocity[1] += (this->velocity[1] >= 0.0f) ? 3.1 : -3.1; this->velocity[1] += (this->velocity[1] >= 0.0f) ? 3.1 : -3.1;
} }
void func_8035E150(Actor *this) { void __chTermite_updateYaw(Actor *this) {
s32 temp_f10; s32 temp_f10;
s32 phi_v1; s32 phi_v1;
temp_f10 = (s32) (this->velocity[1] + this->yaw); temp_f10 = (s32) (this->velocity[1] + this->yaw);
if (temp_f10 >= 0x168) { if (temp_f10 >= 360) {
this->yaw = (f32) (temp_f10 - 0x168); this->yaw = (f32) (temp_f10 - 360);
return; return;
} }
phi_v1 = (temp_f10 < 0) ? temp_f10 + 0x168 : temp_f10; phi_v1 = (temp_f10 < 0) ? temp_f10 + 360 : temp_f10;
this->yaw = (f32) phi_v1; this->yaw = (f32) phi_v1;
} }
void func_8035E1B0(Actor *this) { void __chTermite_updateWalkSFX(Actor *this) {
f32 sp24[3]; f32 sp24[3];
f32 sp20; f32 sp20;
@@ -65,7 +65,7 @@ void func_8035E1B0(Actor *this) {
} }
} }
void func_8035E2A8(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_setupParticleEmitter(ParticleEmitter *pCtrl, f32 position[3]){
particleEmitter_setPosition(pCtrl, position); particleEmitter_setPosition(pCtrl, position);
particleEmitter_setDrawMode(pCtrl, 2); particleEmitter_setDrawMode(pCtrl, 2);
func_802EF9F8(pCtrl, 0.7f); func_802EF9F8(pCtrl, 0.7f);
@@ -77,68 +77,67 @@ void func_8035E2A8(ParticleEmitter *pCtrl, f32 position[3]){
particleEmitter_setFade(pCtrl, 0.0f, 0.65f); particleEmitter_setFade(pCtrl, 0.0f, 0.65f);
} }
void func_8035E360(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitLegs(ParticleEmitter *pCtrl, f32 position[3]){
func_8035E2A8(pCtrl, position); __chTermite_setupParticleEmitter(pCtrl, position);
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f);
particleEmitter_setModel(pCtrl, 0x393); particleEmitter_setModel(pCtrl, ASSET_393_MODEL_TERMITE_LEG);
func_802EFB70(pCtrl, 0.5f, 0.8f); func_802EFB70(pCtrl, 0.5f, 0.8f);
particleEmitter_setAngularVelocityRange(pCtrl, -800.0f, -800.0f, -800.0f, 800.0f, 800.0f, 800.0f); particleEmitter_setAngularVelocityRange(pCtrl, -800.0f, -800.0f, -800.0f, 800.0f, 800.0f, 800.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -200.0f, 850.0f, -200.0f, 400.0f, 1000.0f, 400.0f); particleEmitter_setParticleVelocityRange(pCtrl, -200.0f, 850.0f, -200.0f, 400.0f, 1000.0f, 400.0f);
particleEmitter_emitN(pCtrl, 6); particleEmitter_emitN(pCtrl, 6);
} }
void func_8035E44C(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitHead(ParticleEmitter *pCtrl, f32 position[3]){
func_8035E2A8(pCtrl, position); __chTermite_setupParticleEmitter(pCtrl, position);
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f);
particleEmitter_setModel(pCtrl, 0x394); particleEmitter_setModel(pCtrl, ASSET_394_MODEL_TERMITE_HEAD);
func_802EFB70(pCtrl, 1.0f, 1.0f); func_802EFB70(pCtrl, 1.0f, 1.0f);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -50.0f, 750.0f, -50.0f, 120.0f, 900.0f, 120.0f); particleEmitter_setParticleVelocityRange(pCtrl, -50.0f, 750.0f, -50.0f, 120.0f, 900.0f, 120.0f);
particleEmitter_emitN(pCtrl, 1); particleEmitter_emitN(pCtrl, 1);
} }
void func_8035E540(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitBody(ParticleEmitter *pCtrl, f32 position[3]){
func_8035E2A8(pCtrl, position); __chTermite_setupParticleEmitter(pCtrl, position);
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f); particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1800.0f, 0.0f, 0.0f, -1800.0f, 0.0f);
particleEmitter_setModel(pCtrl, 0x395); particleEmitter_setModel(pCtrl, ASSET_395_MODEL_TERMITE_BODY);
func_802EFB70(pCtrl, 1.0f, 1.0f); func_802EFB70(pCtrl, 1.0f, 1.0f);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f); particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -50.0f, 750.0f, -50.0f, 120.0f, 900.0f, 120.0f); particleEmitter_setParticleVelocityRange(pCtrl, -50.0f, 750.0f, -50.0f, 120.0f, 900.0f, 120.0f);
particleEmitter_emitN(pCtrl, 1); particleEmitter_emitN(pCtrl, 1);
} }
void func_8035E634(ParticleEmitter *pCtrl, f32 position[3]){ void __chTermite_emitEyes(ParticleEmitter *pCtrl, f32 position[3]){
func_8035E2A8(pCtrl, position); __chTermite_setupParticleEmitter(pCtrl, position);
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1400.0f, 0.0f, 0.0f, -1400.0f, 0.0f); particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -1400.0f, 0.0f, 0.0f, -1400.0f, 0.0f);
particleEmitter_setModel(pCtrl, 0x396); particleEmitter_setModel(pCtrl, ASSET_396_MODEL_TERMITE_EYES);
func_802EFB70(pCtrl, 1.0f, 1.0f); func_802EFB70(pCtrl, 1.0f, 1.0f);
particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f); particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -80.0f, 400.0f, -80.0f, 160.0f, 860.0f, 160.0f); particleEmitter_setParticleVelocityRange(pCtrl, -80.0f, 400.0f, -80.0f, 160.0f, 860.0f, 160.0f);
particleEmitter_emitN(pCtrl, 2); particleEmitter_emitN(pCtrl, 2);
} }
void __chTermite_ow(ActorMarker *marker, ActorMarker *other_marker){
void func_8035E724(ActorMarker *marker, ActorMarker *other_marker){
Actor *this; Actor *this;
this = marker_getActor(marker); this = marker_getActor(marker);
func_80328AC8(this, 6); func_80328AC8(this, 6);
} }
void func_8035E750(ActorMarker *marker, ActorMarker *other_marker){ void __chTermite_die(ActorMarker *marker, ActorMarker *other_marker){
Actor *this; Actor *this;
this = marker_getActor(marker); this = marker_getActor(marker);
func_8035E360(partEmitMgr_newEmitter(6), this->position); __chTermite_emitLegs(partEmitMgr_newEmitter(6), this->position);
func_8035E44C(partEmitMgr_newEmitter(1), this->position); __chTermite_emitHead(partEmitMgr_newEmitter(1), this->position);
func_8035E540(partEmitMgr_newEmitter(1), this->position); __chTermite_emitBody(partEmitMgr_newEmitter(1), this->position);
func_8035E634(partEmitMgr_newEmitter(2), this->position); __chTermite_emitEyes(partEmitMgr_newEmitter(2), this->position);
marker->collidable = FALSE; marker->collidable = FALSE;
this->unk138_27 = 1; this->unk138_27 = 1;
FUNC_8030E624(SFX_D1_SNORKEL_WAH, 1.4f, 32750); FUNC_8030E624(SFX_D1_SNORKEL_WAH, 1.4f, 32750);
marker_despawn(marker); marker_despawn(marker);
} }
void func_8035E810(ActorMarker *caller, enum asset_e text_id, s32 arg2){ void __chTermite_testCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2){
Actor *this; Actor *this;
this = marker_getActor(caller); this = marker_getActor(caller);
@@ -146,14 +145,14 @@ void func_8035E810(ActorMarker *caller, enum asset_e text_id, s32 arg2){
levelSpecificFlags_set(0xd, FALSE); levelSpecificFlags_set(0xd, FALSE);
} }
void func_8035E84C(Actor *this) { void chTermite_update(Actor *this) {
s32 sp34; s32 sp34;
static s32 D_80372F48 = 0; static s32 D_80372F48 = 0;
static s32 D_80372F4C = 0; static s32 D_80372F4C = 0;
sp34 = func_8023DB5C(); sp34 = func_8023DB5C();
if (!this->unk16C_4) { if (!this->unk16C_4) {
marker_setCollisionScripts(this->marker, NULL, func_8035E724, func_8035E750); marker_setCollisionScripts(this->marker, NULL, __chTermite_ow, __chTermite_die);
this->unk124_0 = this->unk138_31 = FALSE; this->unk124_0 = this->unk138_31 = FALSE;
this->unk138_24 = FALSE; this->unk138_24 = FALSE;
this->unk16C_0 = TRUE; this->unk16C_0 = TRUE;
@@ -166,7 +165,7 @@ void func_8035E84C(Actor *this) {
&& func_8028ECAC() == 0 && func_8028ECAC() == 0
&& player_getTransformation() == TRANSFORM_1_BANJO && player_getTransformation() == TRANSFORM_1_BANJO
) { ) {
func_80311480(0xB43, 7, this->position, this->marker, func_8035E810, NULL); func_80311480(ASSET_B43_DIALOG_TERMITE_MEET_AS_BEAR, 7, this->position, this->marker, __chTermite_testCallback, NULL);
mapSpecificFlags_set(0, TRUE); mapSpecificFlags_set(0, TRUE);
levelSpecificFlags_set(0xD, TRUE); levelSpecificFlags_set(0xD, TRUE);
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
@@ -178,19 +177,19 @@ void func_8035E84C(Actor *this) {
&& player_getTransformation() == TRANSFORM_2_TERMITE && player_getTransformation() == TRANSFORM_2_TERMITE
) { ) {
if (!levelSpecificFlags_get(0xB)) { if (!levelSpecificFlags_get(0xB)) {
if (func_80311480(0xB41, 0, NULL, NULL, NULL, NULL)) { if (func_80311480(ASSET_B41_DIALOG_TERMITE_COOL_SHORTS, 0, NULL, NULL, NULL, NULL)) {
levelSpecificFlags_set(0xB, TRUE); levelSpecificFlags_set(0xB, TRUE);
this->unk138_23 = TRUE; this->unk138_23 = TRUE;
} }
} else if (!levelSpecificFlags_get(0xC) && !this->unk138_23 && (func_80311480(0xB42, 0, NULL, NULL, NULL, NULL))) { } else if (!levelSpecificFlags_get(0xC) && !this->unk138_23 && (func_80311480(ASSET_B42_DIALOG_TERMITE_COOL_BACKPACK, 0, NULL, NULL, NULL, NULL))) {
levelSpecificFlags_set(0xC, TRUE); levelSpecificFlags_set(0xC, TRUE);
} }
} }
switch (this->state) { switch (this->state) {
case 1: case 1:
if (func_80328BD4(this, 2, 0.0f, 1, 0.06f)) { if (func_80328BD4(this, 2, 0.0f, 1, 0.06f)) {
func_8035E0D0(this); __chTermite_updateRandomRotationSpeed(this);
func_8035DFD0(this); __chTermite_updateRandomSpeed(this);
this->unk28 = 0.0f; this->unk28 = 0.0f;
return; return;
} }
@@ -199,17 +198,17 @@ void func_8035E84C(Actor *this) {
if (sp34 != D_80372F48) { if (sp34 != D_80372F48) {
D_80372F48 = sp34; D_80372F48 = sp34;
D_80372F4C = 1; D_80372F4C = 1;
func_8035E1B0(this); __chTermite_updateWalkSFX(this);
} else if (D_80372F4C != 0) { } else if (D_80372F4C != 0) {
D_80372F4C--; D_80372F4C--;
func_8035E1B0(this); __chTermite_updateWalkSFX(this);
} }
if (this->unk38_31 != 0) { if (this->unk38_31 != 0) {
this->unk38_31--; this->unk38_31--;
} else { } else {
func_8035E150(this); __chTermite_updateYaw(this);
if ((sp34 & 0x1F) == 0xE && 0.45 < randf()) { if ((sp34 & 0x1F) == 0xE && 0.45 < randf()) {
func_8035E0D0(this); __chTermite_updateRandomRotationSpeed(this);
} }
if (func_8034A6FC(0.73f, 0.76f) && func_80329078(this, (s32) this->yaw, 750) ) { if (func_8034A6FC(0.73f, 0.76f) && func_80329078(this, (s32) this->yaw, 750) ) {
this->yaw_ideal = this->yaw; this->yaw_ideal = this->yaw;
@@ -218,10 +217,10 @@ void func_8035E84C(Actor *this) {
this->unk38_31 = 0x3A; this->unk38_31 = 0x3A;
} }
if ((sp34 & 0x1F) == 3 && 0.58 < (f64) randf()) { if ((sp34 & 0x1F) == 3 && 0.58 < (f64) randf()) {
func_8035DFD0(this); __chTermite_updateRandomSpeed(this);
} }
} }
func_8035E008(this); __chTermite_updateAnimationSpeed(this);
func_80329030(this, 0); func_80329030(this, 0);
func_80328BD4(this, 1, 0.0f, 1, 0.047f); func_80328BD4(this, 1, 0.0f, 1, 0.047f);
return; return;
@@ -234,10 +233,10 @@ void func_8035E84C(Actor *this) {
} }
// this data struct is at the end of the file so the local static vars // this data struct is at the end of the file so the local static vars
// in func_8035E84C are in correct .data location // in chTermite_update are in correct .data location
ActorInfo D_80372F50 = { ActorInfo chTermite = {
0x4, 0x5, 0x350, MARKER_4_TERMITE, ACTOR_5_TERMITE, ASSET_350_MODEL_TERMITE,
0x1, D_80372F10, 0x1, chTermiteAnimations,
func_8035E84C, func_80326224, func_80325888, chTermite_update, func_80326224, func_80325888,
2000, 0, 0.0f, 0 2000, 0, 0.0f, 0
}; };

View File

@@ -2,20 +2,23 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
extern f32 player_stateTimer_get(enum state_timer_e);
Actor *chtrainers_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *chtrainers_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chtrainers_update(Actor *this); void chtrainers_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80366EA0[] = { ActorAnimationInfo chTrainersAnimations[] = {
{ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f}, {ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f},
{ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f}, {ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f},
{ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f}, {ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f},
{ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f} {ASSET_D6_ANIM_TURBO_TALON_TRAINERS, 1.5f}
}; };
ActorInfo D_80366EC0 = { ActorInfo chTrainers = {
MARKER_38_TURBO_TALON_TRAINERS, ACTOR_2C_TURBO_TALON_TRAINERS, ASSET_367_MODEL_TURBO_TALON_TRAINERS, MARKER_38_TURBO_TALON_TRAINERS, ACTOR_2C_TURBO_TALON_TRAINERS, ASSET_367_MODEL_TURBO_TALON_TRAINERS,
0x0, D_80366EA0, 0x0, chTrainersAnimations,
chtrainers_update, func_80326224, chtrainers_draw, chtrainers_update, func_80326224, chtrainers_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
@@ -94,7 +97,7 @@ void chtrainers_update(Actor *this){
break; break;
case 2://L802CA670 case 2://L802CA670
if(func_8028E80C(3) == 0.0f){ if(player_stateTimer_get(STATE_TIMER_3_TURBO_TALON) == 0.0f){
this->velocity[2] = 1.0f; this->velocity[2] = 1.0f;
func_80328A84(this, 3); func_80328A84(this, 3);
} }

View File

@@ -2,15 +2,18 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
extern f32 player_stateTimer_get(enum state_timer_e);
Actor *chwadingboots_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *chwadingboots_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chwadingboots_update(Actor *this); void chwadingboots_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80367A00[] = { ActorAnimationInfo D_80367A00[] = {
{0x67, 0.7f}, {ASSET_67_ANIM_WADINGBOOTS_WALK, 0.7f},
{0x67, 0.7f}, {ASSET_67_ANIM_WADINGBOOTS_WALK, 0.7f},
{0x67, 0.7f}, {ASSET_67_ANIM_WADINGBOOTS_WALK, 0.7f},
{0x67, 0.7f}, {ASSET_67_ANIM_WADINGBOOTS_WALK, 0.7f},
}; };
ActorInfo D_80367A20 = { ActorInfo D_80367A20 = {
@@ -63,10 +66,10 @@ void chwadingboots_update(Actor *this){
} }
if(func_803203FC(0x10)) break; if(func_803203FC(0x10)) break;
if(!func_80329530(this, 0xfa)) break; if(!func_80329530(this, 250)) break;
if(player_getTransformation() != TRANSFORM_1_BANJO) break; if(player_getTransformation() != TRANSFORM_1_BANJO) break;
if(func_80311480(0xda5, 0, NULL, NULL, NULL, NULL)){ if(func_80311480(ASSET_DA5_DIALOG_WADINGBOOTS_MEET, 0, NULL, NULL, NULL, NULL)){
func_803204E4(0x10, TRUE); func_803204E4(0x10, TRUE);
} }
@@ -80,7 +83,7 @@ void chwadingboots_update(Actor *this){
break; break;
case 2://L802D6D74 case 2://L802D6D74
if(func_8028E80C(2) == 0.0f){ if(player_stateTimer_get(STATE_TIMER_2_LONGLEG) == 0.0f){
this->velocity[1] = 1.5f; this->velocity[1] = 1.5f;
func_80328A84(this, 3); func_80328A84(this, 3);
} }

View File

@@ -1,6 +1,7 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
/* .bss */ /* .bss */
u8 D_8037C530; u8 D_8037C530;
@@ -17,20 +18,20 @@ s32 func_80297C6C(void){
void func_80297C78(void){ void func_80297C78(void){
D_8037C530 = 0; D_8037C530 = 0;
func_80297C60(1); func_80297C60(1);
func_802917C4(4); stateTimer_clear(STATE_TIMER_4_UNKNOWN);
} }
void func_80297CA8(void){ void func_80297CA8(void){
func_80297CCC(0.6f); func_80297CCC(0.6f);
} }
void func_80297CCC(f32 arg0){ void func_80297CCC(f32 value){
func_802917E4(4, arg0); stateTimer_set(STATE_TIMER_4_UNKNOWN, value);
func_80297C60(3); func_80297C60(3);
} }
void func_80297CF8(void){ void func_80297CF8(void){
if(func_802916CC(4)){ if(stateTimer_isDone(STATE_TIMER_4_UNKNOWN)){
func_80297C60(1); func_80297C60(1);
} }
} }

View File

@@ -7,7 +7,7 @@ void *D_8037C5D0;
/* .code */ /* .code */
s32 func_802985F0(void){ s32 func_802985F0(void){
switch(_player_getTransformation()) switch(bsStoredState_getTransformation())
{ {
case TRANSFORM_2_TERMITE: //80298624 case TRANSFORM_2_TERMITE: //80298624
return ASSET_34F_MODEL_BANJO_TERMITE; return ASSET_34F_MODEL_BANJO_TERMITE;
@@ -41,7 +41,7 @@ s32 func_802985F0(void){
case MAP_88_CS_SPIRAL_MOUNTAIN_6: case MAP_88_CS_SPIRAL_MOUNTAIN_6:
case MAP_89_CS_INTRO_BANJOS_HOUSE_2: case MAP_89_CS_INTRO_BANJOS_HOUSE_2:
case MAP_8A_CS_INTRO_BANJOS_HOUSE_3: case MAP_8A_CS_INTRO_BANJOS_HOUSE_3:
return 0x34d; return ASSET_34D_MODEL_BANJOKAZOOIE_LOW_POLY;
case MAP_1_SM_SPIRAL_MOUNTAIN: case MAP_1_SM_SPIRAL_MOUNTAIN:
case MAP_2_MM_MUMBOS_MOUNTAIN: case MAP_2_MM_MUMBOS_MOUNTAIN:
@@ -58,10 +58,10 @@ s32 func_802985F0(void){
case MAP_45_CCW_AUTUMN: case MAP_45_CCW_AUTUMN:
case MAP_46_CCW_WINTER: case MAP_46_CCW_WINTER:
case 0x56: case 0x56:
return 0x34d; return ASSET_34D_MODEL_BANJOKAZOOIE_LOW_POLY;
default: default:
return 0x34e; return ASSET_34E_MODEL_BANJOKAZOOIE_HIGH_POLY;
} }
} }
} }

View File

@@ -1,61 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
struct {
f32 unk0;
f32 unk4;
u8 xform_8;
} D_8037D180;
u8 D_8037D18C;
/* .code */
void func_8029A890(void){
func_802957FC();
}
void func_8029A8B0(void){
func_80295804();
D_8037D180.unk0 = D_8037D180.unk4 = 0.0f;
D_8037D180.xform_8 = TRANSFORM_1_BANJO;
D_8037D18C = FALSE;
}
enum transformation_e _player_getTransformation(void){
return D_8037D180.xform_8;
}
f32 func_8029A900(void){
return D_8037D180.unk0;
}
f32 func_8029A90C(void){
return D_8037D180.unk4;
}
s32 func_8029A918(void){
return D_8037D18C;
}
void func_8029A924(void){}
void func_8029A92C(void){
func_8029A968(0.0f);
func_8029A974(0.0f);
}
void player_setTransformation(enum transformation_e xform_id){
D_8037D180.xform_8 = xform_id;
}
void func_8029A968(f32 arg0){
D_8037D180.unk0 = arg0;
}
void func_8029A974(f32 arg0){
D_8037D180.unk4 = arg0;
}
void func_8029A980(s32 arg0){
D_8037D18C = arg0;
}

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/yaw.h" #include "core2/yaw.h"
#include "core2/statetimer.h"
f32 func_8024DDD8(f32[3], f32); f32 func_8024DDD8(f32[3], f32);
extern void func_8024E71C(s32, f32*); extern void func_8024E71C(s32, f32*);
@@ -30,8 +31,8 @@ enum bs_14420_e{
BS14420_7_FLY = 0x7, BS14420_7_FLY = 0x7,
BS14420_8_TROT, BS14420_8_TROT,
BS14420_9_LONGLEG,
BS14420_A_WALRUS_SLED = 0xA, BS14420_A_WALRUS_SLED,
BS14420_B_BEE, BS14420_B_BEE,
BS14420_C_CLIMB, BS14420_C_CLIMB,
BS14420_D_WONDERWING, BS14420_D_WONDERWING,
@@ -62,16 +63,16 @@ Struct_core2_13FC0 D_80364650[14] = {
{BS_93_PUMPKIN_DRONE, ASSET_A0_ANIM_BSPUMPKIN_WALK, 0.4f}, {BS_93_PUMPKIN_DRONE, ASSET_A0_ANIM_BSPUMPKIN_WALK, 0.4f},
{BS_94_CROC_DRONE, ASSET_E0_ANIM_BSCROC_WALK, 0.6f}, {BS_94_CROC_DRONE, ASSET_E0_ANIM_BSCROC_WALK, 0.6f},
{BS_95_WALRUS_DRONE, ASSET_120_ANIM_BSWALRUS_WALK, 0.7f}, {BS_95_WALRUS_DRONE, ASSET_120_ANIM_BSWALRUS_WALK, 0.7f},
{BS_96_SWIM_LOCKED, ASSET_39_ANIM_BSSWIM_SWIM, 0.8f}, {BS_96_SWIM_LOCKED, ASSET_39_ANIM_BSSWIM_MOVE, 0.8f},
{BS_97_DIVE_LOCKED, ASSET_71_ANIM_BANJO_BSDIVE_SWIM_SLOW, 0.75f}, {BS_97_DIVE_LOCKED, ASSET_71_ANIM_BSSWIM_DIVE_SLOW, 0.75f},
{BS_98_WALK_DRONE, ASSET_3_ANIM_BSWALK, 0.43f}, {BS_98_WALK_DRONE, ASSET_3_ANIM_BSWALK, 0.43f},
{BS_99_BFLY_DRONE, ASSET_38_BANJO_FLY, 0.62f}, {BS_99_BFLY_DRONE, ASSET_38_ANIM_BSBFLY, 0.62f},
{BS_9A_BTROT_DRONE, ANIM_15_ANIM_BTROT_WALK, 0.53f}, {BS_9A_BTROT_DRONE, ASSET_15_ANIM_BSBTROT_WALK, 0.53f},
{BS_9B_LONGLEG_DRONE, ASSET_42_ANIM_BSLONGLEG_WALK, 0.8f}, {BS_9B_LONGLEG_DRONE, ASSET_42_ANIM_BSLONGLEG_WALK, 0.8f},
{BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f}, {BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f},
{BS_9D_BEE_DRONE, ASSET_1DC_ANIM_BEE_FLY, 0.38f}, {BS_9D_BEE_DRONE, ASSET_1DC_ANIM_BEE_FLY, 0.38f},
{BS_98_WALK_DRONE, ASSET_3_ANIM_BSWALK, 0.43f}, {BS_98_WALK_DRONE, ASSET_3_ANIM_BSWALK, 0.43f},
{BS_A4_WONDERWING_DRONE, ASSET_11_ANIM_BSWONDERWING_WALK, 0.53f} {BS_A4_WONDERWING_DRONE, ASSET_11_ANIM_BSWHIRL_WALK, 0.53f}
}; };
Struct_core2_13FC0 D_803646C0[14] = { Struct_core2_13FC0 D_803646C0[14] = {
@@ -80,10 +81,10 @@ Struct_core2_13FC0 D_803646C0[14] = {
{BS_94_CROC_DRONE, ASSET_E1_ANIM_BSCROC_IDLE, 1.0f}, {BS_94_CROC_DRONE, ASSET_E1_ANIM_BSCROC_IDLE, 1.0f},
{BS_95_WALRUS_DRONE, ASSET_11F_ANIM_BSWALRUS_IDLE, 4.0f}, {BS_95_WALRUS_DRONE, ASSET_11F_ANIM_BSWALRUS_IDLE, 4.0f},
{BS_96_SWIM_LOCKED, ASSET_57_ANIM_BSSWIM_IDLE, 1.2f}, {BS_96_SWIM_LOCKED, ASSET_57_ANIM_BSSWIM_IDLE, 1.2f},
{BS_97_DIVE_LOCKED, ASSET_70_ANIM_BANJO_DIVE_IDLE, 2.0f}, {BS_97_DIVE_LOCKED, ASSET_70_ANIM_BSSWIM_DIVE_IDLE, 2.0f},
{BS_98_WALK_DRONE, ASSET_19B_ANIM_UNKNOWN, 4.5f}, {BS_98_WALK_DRONE, ASSET_19B_ANIM_UNKNOWN, 4.5f},
{BS_99_BFLY_DRONE, ASSET_38_BANJO_FLY, 0.62f}, {BS_99_BFLY_DRONE, ASSET_38_ANIM_BSBFLY, 0.62f},
{BS_9A_BTROT_DRONE, ASSET_26_ANIM_BTROT_IDLE, 1.2f}, {BS_9A_BTROT_DRONE, ASSET_26_ANIM_BSBTROT_IDLE, 1.2f},
{BS_9B_LONGLEG_DRONE, ASSET_41_ANIM_BSLONGLEG_IDLE, 1.0f}, {BS_9B_LONGLEG_DRONE, ASSET_41_ANIM_BSLONGLEG_IDLE, 1.0f},
{BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f}, {BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f},
{BS_9D_BEE_DRONE, ASSET_1DE_ANIM_BEE_IDLE, 3.0f}, {BS_9D_BEE_DRONE, ASSET_1DE_ANIM_BEE_IDLE, 3.0f},
@@ -97,10 +98,10 @@ Struct_core2_13FC0 D_80364730[14] = {
{BS_94_CROC_DRONE, ASSET_E1_ANIM_BSCROC_IDLE, 1.0f}, {BS_94_CROC_DRONE, ASSET_E1_ANIM_BSCROC_IDLE, 1.0f},
{BS_95_WALRUS_DRONE, ASSET_11F_ANIM_BSWALRUS_IDLE, 4.0f}, {BS_95_WALRUS_DRONE, ASSET_11F_ANIM_BSWALRUS_IDLE, 4.0f},
{BS_96_SWIM_LOCKED, ASSET_57_ANIM_BSSWIM_IDLE, 1.2f}, {BS_96_SWIM_LOCKED, ASSET_57_ANIM_BSSWIM_IDLE, 1.2f},
{BS_97_DIVE_LOCKED, ASSET_70_ANIM_BANJO_DIVE_IDLE, 2.0f}, {BS_97_DIVE_LOCKED, ASSET_70_ANIM_BSSWIM_DIVE_IDLE, 2.0f},
{BS_98_WALK_DRONE, ASSET_19B_ANIM_UNKNOWN, 4.5f}, {BS_98_WALK_DRONE, ASSET_19B_ANIM_UNKNOWN, 4.5f},
{BS_99_BFLY_DRONE, ASSET_38_BANJO_FLY, 0.62f}, {BS_99_BFLY_DRONE, ASSET_38_ANIM_BSBFLY, 0.62f},
{BS_9A_BTROT_DRONE, ASSET_26_ANIM_BTROT_IDLE, 1.2f}, {BS_9A_BTROT_DRONE, ASSET_26_ANIM_BSBTROT_IDLE, 1.2f},
{BS_9B_LONGLEG_DRONE, ASSET_41_ANIM_BSLONGLEG_IDLE, 1.0f}, {BS_9B_LONGLEG_DRONE, ASSET_41_ANIM_BSLONGLEG_IDLE, 1.0f},
{BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f}, {BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f},
{BS_9D_BEE_DRONE, ASSET_1DE_ANIM_BEE_IDLE, 3.0f}, {BS_9D_BEE_DRONE, ASSET_1DE_ANIM_BEE_IDLE, 3.0f},
@@ -114,10 +115,10 @@ Struct_core2_13FC0 D_803647A0[14] = {
{BS_94_CROC_DRONE, ASSET_E1_ANIM_BSCROC_IDLE, 1.0f}, {BS_94_CROC_DRONE, ASSET_E1_ANIM_BSCROC_IDLE, 1.0f},
{BS_95_WALRUS_DRONE, ASSET_11F_ANIM_BSWALRUS_IDLE, 4.0f}, {BS_95_WALRUS_DRONE, ASSET_11F_ANIM_BSWALRUS_IDLE, 4.0f},
{BS_96_SWIM_LOCKED, ASSET_57_ANIM_BSSWIM_IDLE, 1.2f}, {BS_96_SWIM_LOCKED, ASSET_57_ANIM_BSSWIM_IDLE, 1.2f},
{BS_97_DIVE_LOCKED, ASSET_70_ANIM_BANJO_DIVE_IDLE, 2.0f}, {BS_97_DIVE_LOCKED, ASSET_70_ANIM_BSSWIM_DIVE_IDLE, 2.0f},
{BS_98_WALK_DRONE, ASSET_6F_ANIM_BSSTAND_IDLE, 5.5f}, {BS_98_WALK_DRONE, ASSET_6F_ANIM_BSSTAND_IDLE, 5.5f},
{BS_99_BFLY_DRONE, ASSET_38_BANJO_FLY, 0.62f}, {BS_99_BFLY_DRONE, ASSET_38_ANIM_BSBFLY, 0.62f},
{BS_9A_BTROT_DRONE, ASSET_26_ANIM_BTROT_IDLE, 1.2f}, {BS_9A_BTROT_DRONE, ASSET_26_ANIM_BSBTROT_IDLE, 1.2f},
{BS_9B_LONGLEG_DRONE, ASSET_41_ANIM_BSLONGLEG_IDLE, 1.0f}, {BS_9B_LONGLEG_DRONE, ASSET_41_ANIM_BSLONGLEG_IDLE, 1.0f},
{BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f}, {BS_9C_WALRUS_SLED_DRONE, ASSET_19E_ANIM_BSWALRUS_SLED, 0.8f},
{BS_9D_BEE_DRONE, ASSET_1DE_ANIM_BEE_IDLE, 3.0f}, {BS_9D_BEE_DRONE, ASSET_1DE_ANIM_BEE_IDLE, 3.0f},
@@ -209,7 +210,7 @@ enum bs_e func_8029B458(void){
enum bs_e sp1C; enum bs_e sp1C;
sp1C = bs_getState(); sp1C = bs_getState();
switch(_player_getTransformation()){ switch(bsStoredState_getTransformation()){
case TRANSFORM_2_TERMITE: case TRANSFORM_2_TERMITE:
return BS_38_ANT_FALL; return BS_38_ANT_FALL;
@@ -386,7 +387,7 @@ f32 func_8029BA44(void){
} }
enum bs_e func_8029BA80(void){ enum bs_e func_8029BA80(void){
switch (_player_getTransformation()) switch (bsStoredState_getTransformation())
{ {
case TRANSFORM_3_PUMPKIN: case TRANSFORM_3_PUMPKIN:
return BS_4B_PUMPKIN_FALL; return BS_4B_PUMPKIN_FALL;
@@ -411,7 +412,7 @@ enum bs_e func_8029BA80(void){
enum bs_14420_e func_8029BAF0(void){ enum bs_14420_e func_8029BAF0(void){
enum bs_e state_id = bs_getState(); enum bs_e state_id = bs_getState();
switch (_player_getTransformation()) switch (bsStoredState_getTransformation())
{ {
case TRANSFORM_3_PUMPKIN://L8029BB2C case TRANSFORM_3_PUMPKIN://L8029BB2C
return BS14420_1_PUMPKIN; return BS14420_1_PUMPKIN;
@@ -442,8 +443,8 @@ enum bs_14420_e func_8029BAF0(void){
if (bsbtrot_inSet(state_id)) { if (bsbtrot_inSet(state_id)) {
return BS14420_8_TROT; return BS14420_8_TROT;
} }
if (func_80291670(2) != 0.0f) { if (stateTimer_get(STATE_TIMER_2_LONGLEG) != 0.0f) {
return 9; return BS14420_9_LONGLEG;
} }
if (miscflag_isTrue(0x18)) { if (miscflag_isTrue(0x18)) {
return BS14420_5_UNDERWATER; return BS14420_5_UNDERWATER;
@@ -547,7 +548,7 @@ enum bs_e func_8029BF4C(void) {
} }
enum bs_e bs_getIdleState(void){ enum bs_e bs_getIdleState(void){
switch (_player_getTransformation()) { switch (bsStoredState_getTransformation()) {
case TRANSFORM_3_PUMPKIN: case TRANSFORM_3_PUMPKIN:
return BS_48_PUMPKIN_IDLE; return BS_48_PUMPKIN_IDLE;
@@ -571,10 +572,10 @@ enum bs_e bs_getIdleState(void){
if (miscflag_isTrue(0x18)) { if (miscflag_isTrue(0x18)) {
return BS_2B_DIVE_IDLE; return BS_2B_DIVE_IDLE;
} }
if (func_80291670(3) != 0.0f) { if (stateTimer_get(STATE_TIMER_3_TURBO_TALON) != 0.0f) {
return BS_15_BTROT_IDLE; return BS_15_BTROT_IDLE;
} }
if (func_80291670(2) != 0.0f) { if (stateTimer_get(STATE_TIMER_2_LONGLEG) != 0.0f) {
return BS_26_LONGLEG_IDLE; return BS_26_LONGLEG_IDLE;
} }
if (player_inWater()) { if (player_inWater()) {
@@ -583,7 +584,7 @@ enum bs_e bs_getIdleState(void){
} }
return BS_2B_DIVE_IDLE; return BS_2B_DIVE_IDLE;
} }
if (func_8029A918()) { if (bsStoredState_getTrotFlag()) {
return BS_15_BTROT_IDLE; return BS_15_BTROT_IDLE;
} }
return BS_1_IDLE; return BS_1_IDLE;
@@ -775,7 +776,7 @@ void func_8029C834(enum map_e map_id, s32 exit_id){
} }
void func_8029C848(AnimCtrl *arg0) { void func_8029C848(AnimCtrl *arg0) {
switch(_player_getTransformation()) { switch(bsStoredState_getTransformation()) {
case TRANSFORM_2_TERMITE: //L8029C880 case TRANSFORM_2_TERMITE: //L8029C880
animctrl_setIndex(arg0, ASSET_5E_ANIM_BSANT_IDLE); animctrl_setIndex(arg0, ASSET_5E_ANIM_BSANT_IDLE);
animctrl_setDuration(arg0, 2.0f); animctrl_setDuration(arg0, 2.0f);

View File

@@ -2,6 +2,8 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
extern int func_80258424(f32 vec[3], f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY, f32 maxZ); extern int func_80258424(f32 vec[3], f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY, f32 maxZ);
/* .bss */ /* .bss */
@@ -220,8 +222,8 @@ bool func_8029D7B4(void){
case MAP_7F_FP_WOZZAS_CAVE://L8029D84C case MAP_7F_FP_WOZZAS_CAVE://L8029D84C
case MAP_8E_GL_FURNACE_FUN://L8029D84C case MAP_8E_GL_FURNACE_FUN://L8029D84C
return func_8029D66C() return func_8029D66C()
&& _player_getTransformation() == TRANSFORM_1_BANJO && bsStoredState_getTransformation() == TRANSFORM_1_BANJO
&& func_802916CC(2) && stateTimer_isDone(STATE_TIMER_2_LONGLEG)
&& func_8028ECAC() != BSGROUP_3_WONDERWING && func_8028ECAC() != BSGROUP_3_WONDERWING
&& func_8028ECAC() != BSGROUP_9_LONG_LEG && func_8028ECAC() != BSGROUP_9_LONG_LEG
&& miscflag_isFalse(MISC_FLAG_E_TOUCHING_WADING_BOOTS) && miscflag_isFalse(MISC_FLAG_E_TOUCHING_WADING_BOOTS)

View File

@@ -27,8 +27,8 @@ f32 D_8037D240;
void func_8029DBF0(void){ void func_8029DBF0(void){
s32 temp_s0; s32 temp_s0;
switch(baModel_getModelId()){ switch(baModel_getModelId()){
case 0x34D: //L8029DC24 case ASSET_34D_MODEL_BANJOKAZOOIE_LOW_POLY: //L8029DC24
case 0x34E: //L8029DC24 case ASSET_34E_MODEL_BANJOKAZOOIE_HIGH_POLY: //L8029DC24
temp_s0 = (s32) ml_interpolate_f(D_8037D23C, 1.0f, 8.0f); temp_s0 = (s32) ml_interpolate_f(D_8037D23C, 1.0f, 8.0f);
func_8033A45C(0x1B, temp_s0); func_8033A45C(0x1B, temp_s0);
func_8033A45C(0x1D, temp_s0); func_8033A45C(0x1D, temp_s0);
@@ -62,8 +62,8 @@ void func_8029DD6C(void) {
func_8033A1FC(); func_8033A1FC();
switch (baModel_getModelId()) { switch (baModel_getModelId()) {
case 0x34D: case ASSET_34D_MODEL_BANJOKAZOOIE_LOW_POLY:
case 0x34E: case ASSET_34E_MODEL_BANJOKAZOOIE_HIGH_POLY:
func_8033A45C(1, D_8037D238); func_8033A45C(1, D_8037D238);
func_8033A45C(9, D_8037D238); func_8033A45C(9, D_8037D238);
func_8033A45C(0xC, D_8037D238); func_8033A45C(0xC, D_8037D238);

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "prop.h" #include "prop.h"
#include "core2/statetimer.h"
extern f32 func_8024DDD8(f32[3], f32); extern f32 func_8024DDD8(f32[3], f32);
extern int func_80259254(f32 vec[3], f32 x, f32 z, f32 val); extern int func_80259254(f32 vec[3], f32 x, f32 z, f32 val);
@@ -197,7 +198,7 @@ bool player_isInVerticalRange(f32 position[3], f32 range) {
} }
int player_shouldSlideTrot(void){ int player_shouldSlideTrot(void){
return func_80291698(6) return stateTimer_isActive(STATE_TIMER_6_UNKNOWN)
|| (1.0 == get_slope_timer() && func_80294610(0x40)); || (1.0 == get_slope_timer() && func_80294610(0x40));
} }
@@ -210,7 +211,7 @@ int func_8028B2E8(void){
} }
int player_isSliding(void){ int player_isSliding(void){
return func_80291698(5) return stateTimer_isActive(STATE_TIMER_5_UNKNOWN)
|| 1.0 == get_slope_timer(); || 1.0 == get_slope_timer();
} }

View File

@@ -14,19 +14,19 @@ void chMumbo_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80367490[] = { ActorAnimationInfo D_80367490[] = {
{0, 0.0f}, {0, 0.0f},
{0x6A, 2.6f}, {ASSET_6A_ANIM_MUMBO_SLEEP, 2.6f},
{0x6B, 1.33f}, {ASSET_6B_ANIM_MUMBO_WAKEUP, 1.33f},
{0x6C, 6.67f}, {ASSET_6C_ANIM_MUMBO_IDLE, 6.67f},
{0x6C, 6.67f}, {ASSET_6C_ANIM_MUMBO_IDLE, 6.67f},
{0x6D, 7.5f}, {ASSET_6D_ANIM_MUMBO_TRANSFORM, 7.5f},
{0x6E, 0.67f}, {ASSET_6E_ANIM_MUMBO_UNKNOWN, 0.67f},
{0x16E, 8.0f}, {ASSET_16E_ANIM_MUMBO_RECLINE, 8.0f},
{0x17F, 2.0f}, {ASSET_17F_ANIM_MUMBO_SWEEP, 2.0f},
{0x180, 0.7f}, {ASSET_180_ANIM_MUMBO_ROTATE, 0.7f},
}; };
ActorInfo D_803674E0 = { ActorInfo D_803674E0 = {
0x6, 0x7, 0x3C6, MARKER_6_MUMBO, ACTOR_7_MUMBO, ASSET_3C6_MODEL_MUMBO,
0x1, D_80367490, 0x1, D_80367490,
chMumbo_update, func_80326224, chMumbo_draw, chMumbo_update, func_80326224, chMumbo_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
@@ -143,23 +143,23 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
this = marker_getActor(caller); this = marker_getActor(caller);
switch(text_id){ switch(text_id){
case 0xD8F: //L802D1A04 case ASSET_D8F_DIALOG_MUMBO_MEET: //L802D1A04
func_80311480((this->unk38_0) ? 0xDAA : 0xDAB, 0xe, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480((this->unk38_0) ? ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS : ASSET_DAB_DIALOG_MUMBO_NOT_ENOUGH_TOKENS, 0xe, this->position, this->marker, __chMumbo_textCallback, NULL);
return; return;
case 0xd90: //L802D1A40 case ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR: //L802D1A40
func_80320004(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE); func_80320004(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
func_80311480(0xD8F + D_8037DDF0, 4, NULL, NULL, NULL, NULL); func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET + D_8037DDF0, 4, NULL, NULL, NULL, NULL);
gcpausemenu_80314AC8(1); gcpausemenu_80314AC8(1);
break; break;
case 0xdaa: //L802D1A7C /* fall-through */ case ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS: //L802D1A7C /* fall-through */
func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE); func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
case 0xdab: //L802D1A88 case ASSET_DAB_DIALOG_MUMBO_NOT_ENOUGH_TOKENS: //L802D1A88
func_8028F918(0); func_8028F918(0);
break; break;
case 0xdaf: //L802D1A98 case ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE: //L802D1A98
this->unk138_24 = FALSE; this->unk138_24 = FALSE;
if(this->unk38_31 != 0){ if(this->unk38_31 != 0){
func_8025A6EC(COMUSIC_2B_DING_B, 28000); func_8025A6EC(COMUSIC_2B_DING_B, 28000);
@@ -169,9 +169,9 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
func_80328B8C(this, 5, 0.0f, 1); func_80328B8C(this, 5, 0.0f, 1);
return; return;
case 0xdb0: //L802D1AF8 case ASSET_DB0_DIALOG_MUMBO_MISTAKE_0: //L802D1AF8
case 0xdb1: //L802D1AF8 case ASSET_DB1_DIALOG_MUMBO_MISTAKE_1: //L802D1AF8
case 0xdb2: //L802D1AF8 case ASSET_DB2_DIALOG_MUMBO_MISTAKE_2: //L802D1AF8
D_8037DDF0 = this->unk10_12; D_8037DDF0 = this->unk10_12;
this->unk10_12 = 1; this->unk10_12 = 1;
if(this->unk38_31){ if(this->unk38_31){
@@ -179,7 +179,7 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
func_803463D4(ITEM_1C_MUMBO_TOKEN, -this->unk38_31); func_803463D4(ITEM_1C_MUMBO_TOKEN, -this->unk38_31);
} }
case 0xdae: //L802D1B48 case ASSET_DAE_DIALOG_MUMBO_TREX_START: //L802D1B48
func_80328B8C(this, 5, 0.0f, 1); func_80328B8C(this, 5, 0.0f, 1);
return; return;
@@ -192,16 +192,16 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) { void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) {
if (this->unk10_12 != 0) { if (this->unk10_12 != 0) {
func_80311480(func_8031FF44(BK_PROG_BB_MUMBO_MISTAKE_INDEX, 2) + 0xDAF, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(func_8031FF44(BK_PROG_BB_MUMBO_MISTAKE_INDEX, 2) + ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
return; return;
} }
if (func_8031FF1C(BKPROG_12_HAS_TRANSFORMED_BEFORE)) { if (func_8031FF1C(BKPROG_12_HAS_TRANSFORMED_BEFORE)) {
if (this->velocity[0] == 0.0f) { if (this->velocity[0] == 0.0f) {
func_80311480(transform_id + 0xD8F, 6, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(transform_id + ASSET_D8F_DIALOG_MUMBO_MEET, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
return; return;
} }
if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !func_8031FF1C(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) { if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !func_8031FF1C(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) {
func_80311480(0xDAD, 6, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_DAD_DIALOG_MUMBO_XFORM_IN_CRYPT, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE); func_80320004(BKPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE);
return; return;
} }
@@ -209,7 +209,7 @@ void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) {
func_80328A84(this, 4U); func_80328A84(this, 4U);
return; return;
} }
func_80311480(0xD90, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
} }
void chMumbo_update(Actor *this) { void chMumbo_update(Actor *this) {
@@ -282,7 +282,7 @@ void chMumbo_update(Actor *this) {
&& !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE) && !func_803203FC(UNKFLAGS1_1F_IN_CHARACTER_PARADE)
) { ) {
func_80328A84(this, 3); func_80328A84(this, 3);
func_80311480(0xD8F, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_D8F_DIALOG_MUMBO_MEET, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_11_HAS_MET_MUMBO, TRUE); func_80320004(BKPROG_11_HAS_MET_MUMBO, TRUE);
break; break;
} }
@@ -293,7 +293,7 @@ void chMumbo_update(Actor *this) {
&& this->unk38_0 && this->unk38_0
){ ){
func_80328A84(this, 3); func_80328A84(this, 3);
func_80311480(0xDAA, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE); func_80320004(BKPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
break; break;
} }
@@ -331,7 +331,7 @@ void chMumbo_update(Actor *this) {
&& randf() < 0.01 && randf() < 0.01
&& sp48 && sp48
) { ) {
func_80311480(0xDAE, 6, NULL, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_DAE_DIALOG_MUMBO_TREX_START, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
func_80320004(0xBA, 1); func_80320004(0xBA, 1);
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
func_80328A84(this, 3); func_80328A84(this, 3);
@@ -360,7 +360,7 @@ void chMumbo_update(Actor *this) {
break; break;
} }
func_8025A6EC(COMUSIC_2C_BUZZER, 22000); func_8025A6EC(COMUSIC_2C_BUZZER, 22000);
if ((levelSpecificFlags_get(0x3E) == 0) && (func_80311480(0xDAC, 0, NULL, NULL, NULL, NULL) != 0)) { if ((levelSpecificFlags_get(0x3E) == 0) && (func_80311480(ASSET_DAC_DIALOG_MUMBO_FAIL_TO_BUY, 0, NULL, NULL, NULL, NULL) != 0)) {
levelSpecificFlags_set(0x3E, 1); levelSpecificFlags_set(0x3E, 1);
} }
} }
@@ -381,7 +381,7 @@ void chMumbo_update(Actor *this) {
} }
if (actor_animationIsAt(this, 0.01f)) { if (actor_animationIsAt(this, 0.01f)) {
func_8025A70C(COMUSIC_1D_MUMBO_TRANSFORMATION); func_8025A70C(COMUSIC_1D_MUMBO_TRANSFORMATION);
func_8025A58C(0, 0x3E8); func_8025A58C(0, 1000);
} }
if (actor_animationIsAt(this, 0.01f)) { if (actor_animationIsAt(this, 0.01f)) {
@@ -404,7 +404,7 @@ void chMumbo_update(Actor *this) {
} }
} }
if (actor_animationIsAt(this, 0.79f)) { if (actor_animationIsAt(this, 0.79f)) {
func_8025A58C(-1, 0x3E8); func_8025A58C(-1, 1000);
} }
if (actor_animationIsAt(this, 0.999f)) { if (actor_animationIsAt(this, 0.999f)) {
if (!this->unk138_24) { if (!this->unk138_24) {
@@ -418,7 +418,7 @@ void chMumbo_update(Actor *this) {
} }
if (this->unk138_24) { if (this->unk138_24) {
func_80328A84(this, 3); func_80328A84(this, 3);
func_80311480(0xDAF, 6, NULL, this->marker, __chMumbo_textCallback, NULL); func_80311480(ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
break; break;
} }
gcpausemenu_80314AC8(1); gcpausemenu_80314AC8(1);
@@ -435,7 +435,7 @@ void chMumbo_update(Actor *this) {
sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC); sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC);
} }
if (sp48 != 0) { if (sp48 != 0) {
func_80311480(0xDA7, 7, NULL, NULL, NULL, NULL); func_80311480(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL);
func_803204E4(BKPROG_11_HAS_MET_MUMBO, TRUE); func_803204E4(BKPROG_11_HAS_MET_MUMBO, TRUE);
} }
} }
@@ -451,7 +451,7 @@ void chMumbo_update(Actor *this) {
sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC); sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC);
} }
if (sp48 != 0) { if (sp48 != 0) {
func_80311480(0xDA8, 7, NULL, NULL, NULL, NULL); func_80311480(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL);
func_803204E4(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE); func_803204E4(BKPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
} }
} }
@@ -502,7 +502,7 @@ Actor *chMumbo_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
return out; return out;
} }
void func_802D2B94(s32 this, s32 arg1){ void chMumbo_detransformWarn(s32 this, s32 arg1){
s32 xform; s32 xform;
xform = player_getTransformation(); xform = player_getTransformation();
if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF2) if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF2)
@@ -512,15 +512,15 @@ void func_802D2B94(s32 this, s32 arg1){
if(D_8037DDF3) if(D_8037DDF3)
return; return;
func_80311480(func_8031FF74(BKPROG_83_MAGIC_GET_WEAK_TEXT, TRUE) ? 0xf5C: 0xf5b, 0xe, NULL, NULL, NULL, NULL); func_80311480(func_8031FF74(BKPROG_83_MAGIC_GET_WEAK_TEXT, TRUE) ? ASSET_F5C_DIALOG_MUMBO_MAGIC_GET_WEAK_ABREV : ASSET_F5B_DIALOG_MUMBO_MAGIC_GET_WEAK_FULL, 0xe, NULL, NULL, NULL, NULL);
} }
void func_802D2C24(s32 this, s32 arg1){ void chMumbo_detransformTrigger(s32 this, s32 arg1){
s32 xform; s32 xform;
xform = player_getTransformation(); xform = player_getTransformation();
if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF1) if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF1)
return; return;
func_80311480(func_8031FF74(BKPROG_84_MAGIC_ALL_GONE_TEXT, TRUE) ? 0xf5e: 0xf5d, 0xe, NULL, NULL, NULL, NULL); func_80311480(func_8031FF74(BKPROG_84_MAGIC_ALL_GONE_TEXT, TRUE) ? ASSET_F5E_DIALOG_MUMBO_MAGIC_RUN_OUT_ABREV: ASSET_F5D_DIALOG_MUMBO_MAGIC_RUN_OUT_FULL, 0xe, NULL, NULL, NULL, NULL);
D_8037DDF1++; D_8037DDF1++;
func_8028FB88(TRANSFORM_1_BANJO); func_8028FB88(TRANSFORM_1_BANJO);
} }

View File

@@ -3,7 +3,7 @@
#include "variables.h" #include "variables.h"
extern void func_8028F7D4(f32, f32); extern void func_8028F7D4(f32, f32);
void func_802D8528(Actor *this); void chLevelCollectible_update(Actor *this);
extern void func_80329904(ActorMarker *, s32, f32*); extern void func_80329904(ActorMarker *, s32, f32*);
extern ActorMarker *func_8028E86C(void); extern ActorMarker *func_8028E86C(void);
extern void func_803252D0(f32, s32); extern void func_803252D0(f32, s32);
@@ -11,53 +11,51 @@ extern void func_8035646C(s32);
ActorAnimationInfo D_80367B50[] = { ActorAnimationInfo D_80367B50[] = {
{0, 0.0f}, {0, 0.0f},
{0x18A, 1.5f}, {ASSET_18A_ANIM_XMAS_GIFT, 1.5f},
{0x18A, 1.5f}, {ASSET_18A_ANIM_XMAS_GIFT, 1.5f},
{0x18A, 1.5f}, {ASSET_18A_ANIM_XMAS_GIFT, 1.5f},
{0x18A, 1.5f}, {ASSET_18A_ANIM_XMAS_GIFT, 1.5f},
{0x18A, 1.5f} {ASSET_18A_ANIM_XMAS_GIFT, 1.5f}
}; };
ActorInfo D_80367B80 = { ActorInfo D_80367B80 = {
MARKER_36_ORANGE_COLLECTABLE, ACTOR_29_ORANGE_COLLECTABLE, ASSET_2D2_MODEL_ORANGE, MARKER_36_ORANGE_COLLECTIBLE, ACTOR_29_ORANGE_COLLECTIBLE, ASSET_2D2_MODEL_ORANGE,
0x5, NULL, 0x5, NULL,
func_802D8528, func_80326224, func_80325888, chLevelCollectible_update, func_80326224, func_80325888,
0, 0, 0.6f,0 0, 0, 0.6f,0
}; };
ActorInfo D_80367BA4 = { ActorInfo D_80367BA4 = {
MARKER_37_GOLD_BULLION, ACTOR_2A_GOLD_BULLION, ASSET_3C7_MODEL_GOLD_BULLION, MARKER_37_GOLD_BULLION, ACTOR_2A_GOLD_BULLION, ASSET_3C7_MODEL_GOLD_BULLION,
0x5, NULL, 0x5, NULL,
func_802D8528, func_80326224, func_80325888, chLevelCollectible_update, func_80326224, func_80325888,
0, 0, 0.6f, 0 0, 0, 0.6f, 0
}; };
ActorInfo D_80367BC8 = { ActorInfo D_80367BC8 = {
MARKER_1FD_BLUE_PRESENT_COLLECTABLE, ACTOR_1ED_BLUE_PRESENT_COLLECTABLE, ASSET_47F_MODEL_XMAS_GIFT_BLUE, MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE, ASSET_47F_MODEL_XMAS_GIFT_BLUE,
0x5, D_80367B50, 0x5, D_80367B50,
func_802D8528, func_80326224, func_80325888, chLevelCollectible_update, func_80326224, func_80325888,
0, 0, 1.8f, 0 0, 0, 1.8f, 0
}; };
ActorInfo D_80367BEC = { ActorInfo D_80367BEC = {
MARKER_1FE_GREEN_PRESENT_COLLECTABLE, ACTOR_1EF_GREEN_PRESENT_COLLECTABLE, ASSET_480_MODEL_XMAS_GIFT_GREEN, MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE, ASSET_480_MODEL_XMAS_GIFT_GREEN,
0x5, D_80367B50, 0x5, D_80367B50,
func_802D8528, func_80326224, func_80325888, chLevelCollectible_update, func_80326224, func_80325888,
0, 0, 1.4f, 0 0, 0, 1.4f, 0
}; };
ActorInfo D_80367C10 = { ActorInfo D_80367C10 = {
MARKER_1FF_RED_PRESENT_COLLECTABLE, ACTOR_1F1_RED_PRESENT_COLLECTABLE, ASSET_481_MODEL_XMAS_GIFT_RED, MARKER_1FF_RED_PRESENT_COLLECTIBLE, ACTOR_1F1_RED_PRESENT_COLLECTIBLE, ASSET_481_MODEL_XMAS_GIFT_RED,
0x5, D_80367B50, 0x5, D_80367B50,
func_802D8528, func_80326224, func_80325888, chLevelCollectible_update, func_80326224, func_80325888,
0, 0, 1.4f, 0 0, 0, 1.4f, 0
}; };
struct31s D_80367C34 = {{0.2f, 0.4f}, {0.1f, 0.1f}, {0.0f, 0.01f}, {3.0f, 3.5f}, 0.1f, 0.1f};
/* .code */ /* .code */
void func_802D7960(f32 position[3], enum asset_e sprite_id) { void __chLevelCollectible_presentReturnEmitSparkles(f32 position[3], enum asset_e sprite_id) {
static struct31s D_80367C34 = {{0.2f, 0.4f}, {0.1f, 0.1f}, {0.0f, 0.01f}, {3.0f, 3.5f}, 0.1f, 0.1f};
ParticleEmitter *p_emitter; ParticleEmitter *p_emitter;
p_emitter = partEmitMgr_newEmitter(1); p_emitter = partEmitMgr_newEmitter(1);
@@ -70,7 +68,7 @@ void func_802D7960(f32 position[3], enum asset_e sprite_id) {
particleEmitter_emitN(p_emitter, 1); particleEmitter_emitN(p_emitter, 1);
} }
void func_802D7A40(f32 position[3], enum asset_e sprite_id) { void __chLevelCollectible_presentCollectEmitSparkles(f32 position[3], enum asset_e sprite_id) {
ParticleEmitter *p_emitter; ParticleEmitter *p_emitter;
p_emitter = partEmitMgr_newEmitter(8); p_emitter = partEmitMgr_newEmitter(8);
@@ -86,68 +84,68 @@ void func_802D7A40(f32 position[3], enum asset_e sprite_id) {
particleEmitter_emitN(p_emitter, 8); particleEmitter_emitN(p_emitter, 8);
} }
s32 func_802D7B94(ActorMarker *marker, enum asset_e text_id, s32 arg2) { s32 __chLevelCollectible_dialogCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
return -(levelSpecificFlags_get(0x2A) + levelSpecificFlags_get(0x2B) + levelSpecificFlags_get(0x2C)); return -(levelSpecificFlags_get(0x2A) + levelSpecificFlags_get(0x2B) + levelSpecificFlags_get(0x2C));
} }
void func_802D7BE8(enum asset_e text_id){ void __chLevelCollectible_callDialog(enum asset_e text_id){
func_80311174(text_id, 0, NULL, NULL, NULL, NULL, func_802D7B94); func_80311174(text_id, 0, NULL, NULL, NULL, NULL, __chLevelCollectible_dialogCallback);
} }
void func_802D7C24(ActorMarker *marker, ActorMarker *other_marker) { void __chLevelCollectible_collide(ActorMarker *marker, ActorMarker *other_marker) {
Actor *this; Actor *this;
f32 pad28; f32 pad28;
s32 var_a3; s32 dialog_id;
f32 sp18[3]; f32 sp18[3];
this = marker_getActor(marker); this = marker_getActor(marker);
var_a3 = 0; dialog_id = 0;
if ((this->state == 1) || (this->state == 2)) { if ((this->state == 1) || (this->state == 2)) {
sp18[0] = this->position[0]; sp18[0] = this->position[0];
sp18[1] = this->position[1]; sp18[1] = this->position[1];
sp18[2] = this->position[2]; sp18[2] = this->position[2];
switch (marker->unk14_20) { switch (marker->unk14_20) {
case MARKER_36_ORANGE_COLLECTABLE: case MARKER_36_ORANGE_COLLECTIBLE:
if (mapSpecificFlags_get(1)) if (mapSpecificFlags_get(1))
return; return;
func_8035646C(8); func_8035646C(8);
func_8030E6D4(SFX_B3_ORANGE_TALKING); func_8030E6D4(SFX_B3_ORANGE_TALKING);
var_a3 = 0; dialog_id = 0;
break; break;
case MARKER_37_GOLD_BULLION: case MARKER_37_GOLD_BULLION:
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF); func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
timedFunc_set_1(0.5f, func_8035646C, 9); timedFunc_set_1(0.5f, func_8035646C, 9);
var_a3 = 0; dialog_id = 0;
break; break;
case MARKER_1FD_BLUE_PRESENT_COLLECTABLE: case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(0x2A, 1); levelSpecificFlags_set(0x2A, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF); func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
func_802D7A40(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE); __chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE);
var_a3 = 0xC20; dialog_id = ASSET_C20_DIALOG_PRESENT_COLLECTIBLE_MEET_BLUE;
break; break;
case MARKER_1FE_GREEN_PRESENT_COLLECTABLE: case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(0x2B, 1); levelSpecificFlags_set(0x2B, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF); func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
func_802D7A40(this->position, 0x712); __chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_712_SPRITE_SPARKLE_GREEN);
var_a3 = 0xC21; dialog_id = ASSET_C21_DIALOG_PRESENT_COLLECTIBLE_MEET_GREEN;
break; break;
case MARKER_1FF_RED_PRESENT_COLLECTABLE: case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(0x2C, 1); levelSpecificFlags_set(0x2C, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF); func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
func_802D7A40(this->position, ASSET_715_SPRITE_SPARKLE_RED); __chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_715_SPRITE_SPARKLE_RED);
var_a3 = 0xC22; dialog_id = ASSET_C22_DIALOG_PRESENT_COLLECTIBLE_MEET_RED;
break; break;
default: default:
break; break;
} }
if (var_a3 != 0) { if (dialog_id != 0) {
timedFunc_set_1(0.5f, (GenMethod_1)func_802D7BE8, var_a3); timedFunc_set_1(0.5f, (GenMethod_1)__chLevelCollectible_callDialog, dialog_id);
} }
func_8028F030(this->modelCacheIndex); func_8028F030(this->modelCacheIndex);
marker_despawn(marker); marker_despawn(marker);
@@ -165,7 +163,7 @@ void func_802D7DE8(ActorMarker *marker, f32 arg1[3]) {
sp4C = marker->unk14_20; sp4C = marker->unk14_20;
this = marker_getActor(marker); this = marker_getActor(marker);
ml_vec3f_to_vec3w(sp50, arg1); ml_vec3f_to_vec3w(sp50, arg1);
if (sp4C == 0x37) { if (sp4C == MARKER_37_GOLD_BULLION) {
if (mapSpecificFlags_get(0)) { if (mapSpecificFlags_get(0)) {
mapSpecificFlags_set(1, TRUE); mapSpecificFlags_set(1, TRUE);
} else { } else {
@@ -197,16 +195,16 @@ void func_802D8030(Actor *this){
local = (s32*)&this->local; local = (s32*)&this->local;
*local = 1; *local = 1;
this->marker->unkC = func_802D7C24; this->marker->unkC = __chLevelCollectible_collide;
func_80328A84(this, 2); func_80328A84(this, 2);
} }
void func_802D8068(Actor *this) { void __chLevelCollectible_returnObj(Actor *this) {
s32 *local; s32 *local;
f32 sp20; f32 sp20;
local = (s32*)&this->local; local = (s32*)&this->local;
if( (this->marker->unk14_20 != MARKER_36_ORANGE_COLLECTABLE) if( (this->marker->unk14_20 != MARKER_36_ORANGE_COLLECTIBLE)
|| (this->unk78_13 == 0) || (this->unk78_13 == 0)
) { ) {
this->position[0] += this->velocity[0]; this->position[0] += this->velocity[0];
@@ -226,7 +224,7 @@ void func_802D8068(Actor *this) {
} }
} }
this->position[1] = sp20; this->position[1] = sp20;
if (this->marker->unk14_20 != MARKER_36_ORANGE_COLLECTABLE) { if (this->marker->unk14_20 != MARKER_36_ORANGE_COLLECTIBLE) {
FUNC_8030E8B4(SFX_21_EGG_BOUNCE_1, 0.76f, 25000, this->position, 1000, 2000); FUNC_8030E8B4(SFX_21_EGG_BOUNCE_1, 0.76f, 25000, this->position, 1000, 2000);
} else { } else {
FUNC_8030E8B4(SFX_B3_ORANGE_TALKING, 1.0f, 25000, this->position, 1000, 2000); FUNC_8030E8B4(SFX_B3_ORANGE_TALKING, 1.0f, 25000, this->position, 1000, 2000);
@@ -235,19 +233,19 @@ void func_802D8068(Actor *this) {
switch (this->marker->unk14_20) { switch (this->marker->unk14_20) {
case MARKER_37_GOLD_BULLION: case MARKER_37_GOLD_BULLION:
break; break;
case MARKER_36_ORANGE_COLLECTABLE: case MARKER_36_ORANGE_COLLECTIBLE:
func_803252D0(1.7f, 2); func_803252D0(1.7f, 2);
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
break; break;
case MARKER_1FD_BLUE_PRESENT_COLLECTABLE: case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000); func_8025A6EC(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(0x11, 1); levelSpecificFlags_set(0x11, 1);
break; break;
case MARKER_1FE_GREEN_PRESENT_COLLECTABLE: case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000); func_8025A6EC(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(0x12, 1); levelSpecificFlags_set(0x12, 1);
break; break;
case MARKER_1FF_RED_PRESENT_COLLECTABLE: case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000); func_8025A6EC(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(0x13, 1); levelSpecificFlags_set(0x13, 1);
break; break;
@@ -257,14 +255,14 @@ void func_802D8068(Actor *this) {
func_80328A84(this, 2); func_80328A84(this, 2);
} }
switch (this->marker->unk14_20) { switch (this->marker->unk14_20) {
case MARKER_1FD_BLUE_PRESENT_COLLECTABLE: case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
func_802D7960(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE); __chLevelCollectible_presentReturnEmitSparkles(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE);
break; break;
case MARKER_1FE_GREEN_PRESENT_COLLECTABLE: case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
func_802D7960(this->position, 0x712); __chLevelCollectible_presentReturnEmitSparkles(this->position, 0x712);
break; break;
case MARKER_1FF_RED_PRESENT_COLLECTABLE: case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
func_802D7960(this->position, ASSET_715_SPRITE_SPARKLE_RED); __chLevelCollectible_presentReturnEmitSparkles(this->position, ASSET_715_SPRITE_SPARKLE_RED);
break; break;
} }
@@ -312,15 +310,15 @@ void func_802D84F4(Actor *this){
this->marker->propPtr->unk8_3 = ( this->state == 2 ); this->marker->propPtr->unk8_3 = ( this->state == 2 );
} }
void func_802D8528(Actor *this){ void chLevelCollectible_update(Actor *this){
s32 marker_id; s32 marker_id;
if(this->despawn_flag) return; if(this->despawn_flag) return;
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if( this->marker->unk14_20 == MARKER_1FD_BLUE_PRESENT_COLLECTABLE if( this->marker->unk14_20 == MARKER_1FD_BLUE_PRESENT_COLLECTIBLE
|| this->marker->unk14_20 == MARKER_1FE_GREEN_PRESENT_COLLECTABLE || this->marker->unk14_20 == MARKER_1FE_GREEN_PRESENT_COLLECTIBLE
|| this->marker->unk14_20 == MARKER_1FF_RED_PRESENT_COLLECTABLE || this->marker->unk14_20 == MARKER_1FF_RED_PRESENT_COLLECTIBLE
){ ){
if(jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)){ if(jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)){
marker_despawn(this->marker); marker_despawn(this->marker);
@@ -339,7 +337,7 @@ void func_802D8528(Actor *this){
break; break;
case 1:// 802D8620 case 1:// 802D8620
func_802D8068(this); __chLevelCollectible_returnObj(this);
break; break;
case 2:// 802D863C case 2:// 802D863C
@@ -350,7 +348,7 @@ void func_802D8528(Actor *this){
break; break;
case 4:// 802D866C case 4:// 802D866C
func_802D8068(this); __chLevelCollectible_returnObj(this);
break; break;
default: default:
@@ -364,15 +362,15 @@ void func_802D8528(Actor *this){
case MARKER_37_GOLD_BULLION: //L802D86CC case MARKER_37_GOLD_BULLION: //L802D86CC
func_802D83EC(this); func_802D83EC(this);
break; break;
case MARKER_36_ORANGE_COLLECTABLE: //L802D86DC case MARKER_36_ORANGE_COLLECTIBLE: //L802D86DC
if(mapSpecificFlags_get(3) && map_get() == MAP_2_MM_MUMBOS_MOUNTAIN){ if(mapSpecificFlags_get(3) && map_get() == MAP_2_MM_MUMBOS_MOUNTAIN){
marker_despawn(this->marker); marker_despawn(this->marker);
} }
break; break;
case MARKER_1FD_BLUE_PRESENT_COLLECTABLE: case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
case MARKER_1FE_GREEN_PRESENT_COLLECTABLE: case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
case MARKER_1FF_RED_PRESENT_COLLECTABLE: case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
func_802D84F4(this); func_802D84F4(this);
break; break;
} }

View File

@@ -12,11 +12,11 @@ void func_802E08F0(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80368440[] = { ActorAnimationInfo D_80368440[] = {
{0, 0.0f}, {0, 0.0f},
{0x98, 1.2f} {ASSET_98_ANIM_FIRE_SPARKLE, 1.2f}
}; };
ActorInfo D_80368450 = { ActorInfo D_80368450 = {
0x72, 0xA2, 0x3AD, MARKER_72_FIRE_SPARKLE, ACTOR_A2_FIRE_SPARKLE, ASSET_3AD_FIRE_SPARKLE,
0x1, D_80368440, 0x1, D_80368440,
func_802E08F0, func_80326224, func_80325888, func_802E08F0, func_80326224, func_80325888,
0, 0, 0.0f, 0 0, 0, 0.0f, 0

View File

@@ -1,6 +1,7 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
#include "prop.h" #include "prop.h"
#include "enums.h" #include "enums.h"
@@ -68,7 +69,7 @@ bool func_8028E060(s32 arg0, s32 *arg1){
void func_8028E0B0(ActorMarker *arg0){ void func_8028E0B0(ActorMarker *arg0){
bs_setState(bs_getIdleState()); bs_setState(bs_getIdleState());
func_8029A980(0); bsStoredState_setTrot(FALSE);
miscflag_clear(0x16); miscflag_clear(0x16);
miscflag_clear(0x18); miscflag_clear(0x18);
} }
@@ -151,7 +152,7 @@ void func_8028E0F0(s32 arg0, s32 arg1[3]) {
} }
func_8028F85C(&sp7C); func_8028F85C(&sp7C);
func_80295A8C(); func_80295A8C();
func_8029A980(0); bsStoredState_setTrot(FALSE);
miscflag_clear(0x16); miscflag_clear(0x16);
miscflag_clear(0x18); miscflag_clear(0x18);
func_8028E060(arg0, &sp6C); func_8028E060(arg0, &sp6C);
@@ -195,7 +196,7 @@ void func_8028E4B0(void) {
D_8037BFBC = (s32) D_8037BFD0; D_8037BFBC = (s32) D_8037BFD0;
D_8037BFB8 = 1; D_8037BFB8 = 1;
func_80295A8C(); func_80295A8C();
func_8029A980(0); bsStoredState_setTrot(FALSE);
miscflag_clear(0x16); miscflag_clear(0x16);
yaw_setIdeal(D_8037BFCC); yaw_setIdeal(D_8037BFCC);
yaw_applyIdeal(); yaw_applyIdeal();
@@ -263,15 +264,15 @@ ActorMarker *player_getMarker(void){
} }
u32 player_getTransformation(void){ u32 player_getTransformation(void){
return _player_getTransformation(); return bsStoredState_getTransformation();
} }
void func_8028E7EC(f32 arg0[3]){ void func_8028E7EC(f32 arg0[3]){
climbGetBottom(arg0); climbGetBottom(arg0);
} }
f32 func_8028E80C(s32 arg0){ f32 player_stateTimer_get(enum state_timer_e timer_id){
return func_80291670(arg0); return stateTimer_get(timer_id);
} }
f32 func_8028E82C(void){ f32 func_8028E82C(void){
@@ -353,7 +354,7 @@ void func_8028E9C4(s32 arg0, f32 arg1[3]) {
case 5: //L8028EA2C case 5: //L8028EA2C
_player_getPosition(arg1); _player_getPosition(arg1);
switch(_player_getTransformation()){ switch(bsStoredState_getTransformation()){
case TRANSFORM_3_PUMPKIN: //L8028EA68 case TRANSFORM_3_PUMPKIN: //L8028EA68
if(map_get() == MAP_1B_MMM_MAD_MONSTER_MANSION){ if(map_get() == MAP_1B_MMM_MAD_MONSTER_MANSION){
arg1[1] += 100.0f; arg1[1] += 100.0f;
@@ -483,7 +484,7 @@ enum bsgroup_e func_8028ECAC(void) {
case BS_16_BTROT_WALK: //L8028EE10 case BS_16_BTROT_WALK: //L8028EE10
case BS_17_BTROT_EXIT: //L8028EE10 case BS_17_BTROT_EXIT: //L8028EE10
case BS_45_BTROT_SLIDE: //L8028EE10 case BS_45_BTROT_SLIDE: //L8028EE10
if(func_80291698(3)){ if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON)){
return BSGROUP_6_TURBO_TALON_TRAINERS; return BSGROUP_6_TURBO_TALON_TRAINERS;
} }
return BSGROUP_8_TROT; return BSGROUP_8_TROT;
@@ -589,7 +590,7 @@ bool func_8028F098(void){
bool func_8028F0D4(void){ bool func_8028F0D4(void){
enum transformation_e xform_id; enum transformation_e xform_id;
xform_id = _player_getTransformation(); xform_id = bsStoredState_getTransformation();
return xform_id == TRANSFORM_1_BANJO return xform_id == TRANSFORM_1_BANJO
|| xform_id == TRANSFORM_7_WISHWASHY; || xform_id == TRANSFORM_7_WISHWASHY;
} }
@@ -769,8 +770,8 @@ s32 func_8028F6E4(enum bs_interrupt_e arg0, f32 arg1[3]){
return bs_checkInterrupt(arg0); return bs_checkInterrupt(arg0);
} }
void func_8028F710(s32 arg0, f32 arg1){ void player_stateTimer_set(enum state_timer_e timer_id, f32 value){
func_802917E4(arg0, arg1); stateTimer_set(timer_id, value);
} }
void func_8028F738(f32 bottom[3], f32 top[3], f32 radius, u32 arg3){ void func_8028F738(f32 bottom[3], f32 top[3], f32 radius, u32 arg3){

View File

@@ -98,7 +98,7 @@ void *D_80381450[10];
s32 D_80381478[0X2C]; s32 D_80381478[0X2C];
/* .code */ /* .code */
void func_802FA5D0(void){ void itemPrint_reset(void){
s32 i; s32 i;
for(i = 0; i < 0x2C; i++){ for(i = 0; i < 0x2C; i++){
@@ -120,7 +120,7 @@ void func_802FA69C(void){
D_803692F8[i].unk14 = D_803692F8[i].unk0(i); D_803692F8[i].unk14 = D_803692F8[i].unk0(i);
func_802FB104(D_803692F8[i].unk10, D_803692F8[i].unk14); func_802FB104(D_803692F8[i].unk10, D_803692F8[i].unk14);
} }
func_802FA5D0(); itemPrint_reset();
} }
void func_802FA718(s32 arg0){ void func_802FA718(s32 arg0){

View File

@@ -1449,7 +1449,7 @@ void func_8031FB6C(s32 arg0, s32 arg1) {
} }
void func_8031FBA0(void) { void func_8031FBA0(void) {
func_8029A8B0(); bsStoredState_clear();
func_8031FFAC(); func_8031FFAC();
func_8034646C(); func_8034646C();
jiggyscore_clearAll(); jiggyscore_clearAll();

View File

@@ -32,10 +32,10 @@ void func_803216D0(enum map_e map){
} }
mapSavestate_init(); mapSavestate_init();
func_803464F8(D_80383300.level); itemscore_levelReset(D_80383300.level);
jiggyscore_clearAllSpawned(); jiggyscore_clearAllSpawned();
levelSpecificFlags_clear(); levelSpecificFlags_clear();
func_8029A92C(); bsStoredState_clearTimers();
func_803219A8(); func_803219A8();
if( func_80320454(0x17, 0) if( func_80320454(0x17, 0)
&& getGameMode() != 0 && getGameMode() != 0
@@ -76,7 +76,7 @@ void func_80321854(void){
){ ){
func_803204E4(0x22, 1); func_803204E4(0x22, 1);
} }
func_8029A924(); //null bsStoredState_8029A924(); //null
func_803465BC(); //null func_803465BC(); //null
mapSavestate_free_all(); mapSavestate_free_all();
func_8032196C(); func_8032196C();

View File

@@ -2,6 +2,9 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
extern f32 player_stateTimer_get(enum state_timer_e);
void func_803219F4(s32 arg0); void func_803219F4(s32 arg0);
/* .bss */ /* .bss */
@@ -93,7 +96,7 @@ void func_803219F4(s32 arg0){
void func_80321C34(void){ void func_80321C34(void){
if( D_80383310 == 4 if( D_80383310 == 4
&& func_8028E80C(3) == 0.0f && player_stateTimer_get(STATE_TIMER_3_TURBO_TALON) == 0.0f
){ ){
func_803219F4(1); func_803219F4(1);
} }

View File

@@ -1,65 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
typedef struct{
f32 unk0;
f32 unk4;
}Struct_Core2_A600_0;
/* .bss */
Struct_Core2_A600_0 D_8037C0A0[8];
/* .code */
f32 func_80291670(s32 arg0){
return D_8037C0A0[arg0].unk0;
}
f32 func_80291684(s32 arg0){
return D_8037C0A0[arg0].unk4;
}
int func_80291698(s32 arg0){
return D_8037C0A0[arg0].unk0 != 0.0f;
}
int func_802916CC(s32 arg0){
return D_8037C0A0[arg0].unk0 == 0.0f;
}
int func_80291700(s32 arg0, f32 arg1){
return (D_8037C0A0[arg0].unk0 < arg1) && (arg1 <= D_8037C0A0[arg0].unk4);
}
void func_8029175C(void){}
void func_80291764(void){
int i;
for(i = 0; i < 7; i++){
D_8037C0A0[i].unk0 = 0.0f;
D_8037C0A0[i].unk4 = 0.0f;
}
}
void func_802917C4(s32 arg0){
func_802917E4(arg0, 0.0f);
}
void func_802917E4(s32 arg0, f32 arg1){
D_8037C0A0[arg0].unk0 = arg1;
D_8037C0A0[arg0].unk4 = arg1;
}
void func_80291804(void){
int i;
f32 delta = time_getDelta();
for(i = 0; i < 7; i++){
D_8037C0A0[i].unk4 = D_8037C0A0[i].unk0;
if(0.0f != D_8037C0A0[i].unk4){
D_8037C0A0[i].unk0 -= delta;
if(D_8037C0A0[i].unk0 < 0.0f){
D_8037C0A0[i].unk0 = 0.0f;
}
}
}
}

View File

@@ -244,7 +244,7 @@ void jiggySpawn(enum jiggy_e jiggy_id, f32 pos[3]) {
temp_v0->unk10.position[2] = pos[2]; temp_v0->unk10.position[2] = pos[2];
temp_v0->unk0(&temp_v0->unk10); temp_v0->unk0(&temp_v0->unk10);
jiggyscore_setSpawned(jiggy_id, TRUE); jiggyscore_setSpawned(jiggy_id, TRUE);
if (!jiggyscore_isCollected(jiggy_id) && (jiggy_id != 0x3E) && (jiggy_id != 0xB)) { if (!jiggyscore_isCollected(jiggy_id) && (jiggy_id != JIGGY_3E_GV_GRABBA) && (jiggy_id != JIGGY_0B_TTC_JINJO)) {
func_8024BD08(0); func_8024BD08(0);
func_8025A55C(0, 4000, 5); func_8025A55C(0, 4000, 5);
func_8025A6EC(COMUSIC_3D_JIGGY_SPAWN, 0x7FFF); func_8025A6EC(COMUSIC_3D_JIGGY_SPAWN, 0x7FFF);

View File

@@ -297,8 +297,8 @@ extern void func_80389C4C(s32, s32);
extern void func_80389C74(s32, s32); extern void func_80389C74(s32, s32);
extern void func_80389C9C(s32, s32); extern void func_80389C9C(s32, s32);
extern void func_80389CC4(s32, s32); extern void func_80389CC4(s32, s32);
extern void func_802D2B94(s32, s32); extern void chMumbo_detransformWarn(s32, s32);
extern void func_802D2C24(s32, s32); extern void chMumbo_detransformTrigger(s32, s32);
extern void func_8033443C(s32, s32); extern void func_8033443C(s32, s32);
@@ -414,8 +414,8 @@ Method_core2_AD110 D_8036FE5C[] ={
func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C,
func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C,
func_8033443C, TTC_func_80389BFC, func_80389C24, func_80389C4C, func_8033443C, TTC_func_80389BFC, func_80389C24, func_80389C4C,
func_80389C74, func_80389C9C, func_80389CC4, func_802D2B94, func_80389C74, func_80389C9C, func_80389CC4, chMumbo_detransformWarn,
func_802D2C24, func_8033443C, func_8033443C, func_8033443C, chMumbo_detransformTrigger, func_8033443C, func_8033443C, func_8033443C,
func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C,
func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C,
func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C, func_8033443C,

View File

@@ -67,8 +67,8 @@ Struct_core2_B62B0_0 D_80370AC0[0xBB] = {
{MARKER_218_LIMBO, 0x0001, {0x0588, 0x7584, 0x8100, 0x7584, 0x7604, 0x7604, 0x0684, 0x050C, 0x0A04, 0x0000, 0x2020}}, {MARKER_218_LIMBO, 0x0001, {0x0588, 0x7584, 0x8100, 0x7584, 0x7604, 0x7604, 0x0684, 0x050C, 0x0A04, 0x0000, 0x2020}},
{MARKER_99_TEEHEE, 0x0001, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}}, {MARKER_99_TEEHEE, 0x0001, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}},
{MARKER_296_TEEHEE_PURPLE, 0x0000, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}}, {MARKER_296_TEEHEE_PURPLE, 0x0000, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}},
{MARKER_96_RIPPER, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}}, {MARKER_96_GRAVESTONE, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}},
{MARKER_297_GIANT_RIPPER, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}}, {MARKER_297_GIANT_GRAVESTONE, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}},
{MARKER_127_BAT, 0x0001, {0x0804, 0x0804, 0x8100, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x1424}}, {MARKER_127_BAT, 0x0001, {0x0804, 0x0804, 0x8100, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x1424}},
{MARKER_254_PORTRAIT_CHOMPA_A, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x3444}}, {MARKER_254_PORTRAIT_CHOMPA_A, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x3444}},
{MARKER_1D1_PORTRAIT_CHOMPA_B, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x1424}}, {MARKER_1D1_PORTRAIT_CHOMPA_B, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x1424}},
@@ -114,9 +114,9 @@ Struct_core2_B62B0_0 D_80370AC0[0xBB] = {
{0x0097, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}}, {0x0097, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}},
{0x0125, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}}, {0x0125, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{0x0126, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}}, {0x0126, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{MARKER_1FD_BLUE_PRESENT_COLLECTABLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}}, {MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_1FE_GREEN_PRESENT_COLLECTABLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}}, {MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_1FF_RED_PRESENT_COLLECTABLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}}, {MARKER_1FF_RED_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_20B_WOZZA, 0x7000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x7000}}, {MARKER_20B_WOZZA, 0x7000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x7000}},
{MARKER_20F_WOZZA_IN_CAVE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}}, {MARKER_20F_WOZZA_IN_CAVE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}},
{0x0204, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}}, {0x0204, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},

View File

@@ -191,7 +191,7 @@ void func_8034646C(void){
D_80385FE4 = FALSE; D_80385FE4 = FALSE;
} }
void func_803464F8(enum level_e level){ void itemscore_levelReset(enum level_e level){
int i; int i;
for(i = 0; i < 6; i++){ for(i = 0; i < 6; i++){
@@ -212,7 +212,7 @@ void func_803464F8(enum level_e level){
D_80385F30[ITEM_20_BLUE_PRESENT] = 0; D_80385F30[ITEM_20_BLUE_PRESENT] = 0;
D_80385F30[ITEM_21_RED_PRESENT] = 0; D_80385F30[ITEM_21_RED_PRESENT] = 0;
D_80385F30[ITEM_22_CATERPILLAR] = 0; D_80385F30[ITEM_22_CATERPILLAR] = 0;
func_802FA5D0(); itemPrint_reset();
D_80385FE8 = 1; D_80385FE8 = 1;
} }
@@ -358,13 +358,13 @@ void func_80346CE8(void){
enum item_e carriedobj_actorId2ItemId(enum actor_e actor_id){ enum item_e carriedobj_actorId2ItemId(enum actor_e actor_id){
switch(actor_id){ switch(actor_id){
case ACTOR_29_ORANGE_COLLECTABLE: return ITEM_19_ORANGE; case ACTOR_29_ORANGE_COLLECTIBLE: return ITEM_19_ORANGE;
case ACTOR_2A9_ACORN: return ITEM_23_ACORNS; case ACTOR_2A9_ACORN: return ITEM_23_ACORNS;
case ACTOR_2A2_CATERPILLAR: return ITEM_22_CATERPILLAR; case ACTOR_2A2_CATERPILLAR: return ITEM_22_CATERPILLAR;
case ACTOR_2A_GOLD_BULLION: return ITEM_18_GOLD_BULLIONS; case ACTOR_2A_GOLD_BULLION: return ITEM_18_GOLD_BULLIONS;
case ACTOR_1ED_BLUE_PRESENT_COLLECTABLE: return ITEM_20_BLUE_PRESENT; case ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE: return ITEM_20_BLUE_PRESENT;
case ACTOR_1EF_GREEN_PRESENT_COLLECTABLE: return ITEM_1F_GREEN_PRESENT; case ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE: return ITEM_1F_GREEN_PRESENT;
case ACTOR_1F1_RED_PRESENT_COLLECTABLE: return ITEM_21_RED_PRESENT; case ACTOR_1F1_RED_PRESENT_COLLECTIBLE: return ITEM_21_RED_PRESENT;
} }
return 0; return 0;
} }
@@ -548,7 +548,7 @@ void func_80347984(void){}
void func_8034798C(void){ void func_8034798C(void){
D_80385F30[ITEM_E_JIGGY] = jiggyscore_leveltotal(level_get()); D_80385F30[ITEM_E_JIGGY] = jiggyscore_leveltotal(level_get());
func_802FA5D0(); itemPrint_reset();
} }
//restore item counts from savestate //restore item counts from savestate
@@ -558,7 +558,7 @@ void func_803479C0(u8 *arg0){
D_80385F30[ITEM_F_RED_FEATHER] = arg0[2]; D_80385F30[ITEM_F_RED_FEATHER] = arg0[2];
D_80385F30[ITEM_10_GOLD_FEATHER] = arg0[3]; D_80385F30[ITEM_10_GOLD_FEATHER] = arg0[3];
D_80385F30[ITEM_26_JIGGY_TOTAL] = D_80385F30[ITEM_2B_UNKNOWN] = arg0[4]; D_80385F30[ITEM_26_JIGGY_TOTAL] = D_80385F30[ITEM_2B_UNKNOWN] = arg0[4];
func_802FA5D0(); itemPrint_reset();
} }
@@ -593,5 +593,5 @@ void func_80347AA8(void) {
func_803204E4(0xC1, FALSE); func_803204E4(0xC1, FALSE);
func_803204E4(0xC0, FALSE); func_803204E4(0xC0, FALSE);
item_set(ITEM_16_LIFE, D_80386068); item_set(ITEM_16_LIFE, D_80386068);
func_802FA5D0(); itemPrint_reset();
} }

View File

@@ -61,7 +61,7 @@ s32 func_802930C0(struct_C0E0 *arg0, s32 arg1){
if(arg1 < 0) if(arg1 < 0)
return 0; return 0;
else{ else{
switch(_player_getTransformation()){ switch(bsStoredState_getTransformation()){
case TRANSFORM_2_TERMITE: //L80293110 case TRANSFORM_2_TERMITE: //L80293110
return func_80293070(arg0, arg1, &D_803637F0); return func_80293070(arg0, arg1, &D_803637F0);
case TRANSFORM_3_PUMPKIN: //L80293124 case TRANSFORM_3_PUMPKIN: //L80293124

View File

@@ -349,7 +349,7 @@ void fxegg_ass_update(void) {
if (0.6 < func_8033EA14(1)) { if (0.6 < func_8033EA14(1)) {
projectile_getPosition(projectile_indx, sp80); projectile_getPosition(projectile_indx, sp80);
if (fxegg_isCollidingWithPlayer(sp80)) { if (fxegg_isCollidingWithPlayer(sp80)) {
chcollectable_collectEgg(NULL); chCollectible_collectEgg(NULL);
func_8033E984(); func_8033E984();
} }
} }

View File

@@ -16,14 +16,14 @@ void func_80360828(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo D_80373090[] = { ActorAnimationInfo D_80373090[] = {
{0, 0.0f}, {0, 0.0f},
{ 0xAE, 12.0f}, { ASSET_AE_ANIM_BAT_ROOST, 12.0f},
{ 0xAD, 0.3f}, { ASSET_AD_ANIM_BAT_TAKE_FLIGHT, 0.3f},
{ 0x9D, 2.0f}, { ASSET_9D_ANIM_BAT_FLY, 2.0f},
{ 0x9D, 0.4f}, { ASSET_9D_ANIM_BAT_FLY, 0.4f},
{ 0x9D, 0.35f}, { ASSET_9D_ANIM_BAT_FLY, 0.35f},
{ 0xAD, 0.2f}, { ASSET_AD_ANIM_BAT_TAKE_FLIGHT, 0.2f},
{0x2A9, 0.4f}, { ASSET_2A9_ANIM_BAT_FALL, 0.4f},
{0x2AA, 0.85f}, { ASSET_2AA_ANIM_BAT_DIE, 0.85f},
}; };
ActorInfo D_803730D8 = { ActorInfo D_803730D8 = {

View File

@@ -1,6 +1,7 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "core2/statetimer.h"
extern f32 func_802944A8(void); extern f32 func_802944A8(void);
@@ -154,9 +155,9 @@ void func_80294BDC(void) {
} }
if (D_8037C2E4 == 1.0) { if (D_8037C2E4 == 1.0) {
if (sp24 & 0x10) { if (sp24 & 0x10) {
func_802917E4(5, 0.18f); stateTimer_set(STATE_TIMER_5_UNKNOWN, 0.18f);
} else if (sp24 & 0x40) { } else if (sp24 & 0x40) {
func_802917E4(6, 0.18f); stateTimer_set(STATE_TIMER_6_UNKNOWN, 0.18f);
} }
} }
} }

Some files were not shown because too many files have changed in this diff Show More