All Changes

This commit is contained in:
Moses Troyer
2025-08-16 17:15:49 +00:00
committed by Banjo Kazooie
parent fd208f77ca
commit c2dd933d22
389 changed files with 7824 additions and 6965 deletions

View File

@@ -2,120 +2,133 @@
#include "functions.h"
#include "variables.h"
s32 abilityprogress_learnedAbilities;
s32 abilityprogress_usedAbilities;
#include "core2/abilityprogress.h"
void ability_use(s32 arg0){
s32 sp2C;
s32 sp28;
// Special note: The learned abilities and used abilities IDs are different!
sp2C = 0;
sp28 = 1;
s32 learnedAbilities;
s32 usedAbilities;
if(abilityprogress_usedAbilities & (1 << arg0))
void ability_use(enum ability_used ability) {
s32 dialog_id;
bool play_ding;
dialog_id = 0;
play_ding = TRUE;
// Has this ability been used before?
if (usedAbilities & (1 << ability)) {
return;
}
switch(arg0){
case 0x0://L80295660 //jump
mapSpecificFlags_set(8, TRUE);
sp28 = 1;
switch (ability) {
case ABILITY_USED_JUMP:
mapSpecificFlags_set(SM_SPECIFIC_FLAG_8_ABILITY_HOLD_A_JUMP_HIGHER_UNLOCKED, TRUE);
play_ding = TRUE;
break;
case 0x1://L80295674 //flap
mapSpecificFlags_set(9, TRUE);
sp28 = 1;
case ABILITY_USED_FLAP:
mapSpecificFlags_set(SM_SPECIFIC_FLAG_9_ABILITY_FEATHERY_UNLOCKED, TRUE);
play_ding = TRUE;
break;
case 0x2://L80295688 //bust
mapSpecificFlags_set(0xa, TRUE);
sp28 = 1;
case ABILITY_USED_FLIP:
mapSpecificFlags_set(SM_SPECIFIC_FLAG_A_ABILITY_FLIP_UNLOCKED, TRUE);
play_ding = TRUE;
break;
case 0x3://L8029569C //
if(map_get() == MAP_1_SM_SPIRAL_MOUNTAIN){
sp2C = ASSET_DFC_DIALOG_UNKNOWN;
case ABILITY_USED_SWIM:
if (map_get() == MAP_1_SM_SPIRAL_MOUNTAIN) {
dialog_id = ASSET_DFC_BOTTLES_UNDERWATER_TUTORIAL;
}
break;
case 0x4://L802956B8 //
if(map_get() == MAP_1_SM_SPIRAL_MOUNTAIN){
sp2C = ASSET_E02_DIALOG_UNKNOWN;
case ABILITY_USED_CLIMB:
if (map_get() == MAP_1_SM_SPIRAL_MOUNTAIN) {
dialog_id = ASSET_E02_DIALOG_BOTTLES_CLIMB_OTHER;
}
break;
case 0x5://L802956D4 //barge
if(map_get() == MAP_1_SM_SPIRAL_MOUNTAIN){
sp2C = ASSET_E05_DIALOG_UNKNOWN;
case ABILITY_USED_BEAK_BARGE:
if (map_get() == MAP_1_SM_SPIRAL_MOUNTAIN) {
dialog_id = ASSET_E05_DIALOG_BOTTLES_KAZOOIE_BARGE;
}
break;
case 0x6://L802956F0 //slide
sp28 = 0;
case ABILITY_USED_SLIDE:
play_ding = FALSE;
if (!ability_isUnlocked(ABILITY_10_TALON_TROT)) {
if (map_get() == MAP_2_MM_MUMBOS_MOUNTAIN) {
sp2C = ASSET_B4D_DIALOG_UNKNOWN;
}
else {
dialog_id = ASSET_B4D_DIALOG_BOTTLES_SLIPPERY;
} else {
return;
}
}
else {
abilityprogress_usedAbilities |= (1 << arg0);
} else {
usedAbilities |= (1 << ability);
}
break;
case 0x8://L80295738 //fly
sp2C = ASSET_A26_DIALOG_NEED_RED_FEATHERS_TO_FLY;
break;
case 0x7://L80295740 //egg
case 0x9://L80295740 //shock
break;
}//L80295744
if (sp28) {
case ABILITY_USED_FLY:
dialog_id = ASSET_A26_DIALOG_NEED_RED_FEATHERS_TO_FLY;
break;
case ABILITY_USED_EGG:
case ABILITY_USED_SHOCK:
break;
}
if (play_ding) {
comusic_playTrack(COMUSIC_2B_DING_B);
}
if (sp2C) {
gcdialog_showText(sp2C, 4, NULL, NULL, NULL, 0);
if (dialog_id) {
gcdialog_showDialog(dialog_id, 4, NULL, NULL, NULL, 0);
}
abilityprogress_usedAbilities |= (1 << arg0);
usedAbilities |= (1 << ability);
}
int ability_hasUsed(enum ability_e move){
return (1 << move) & abilityprogress_usedAbilities;
int ability_hasUsed(enum ability_used ability) {
return (1 << ability) & usedAbilities;
}
void ability_setHasUsed(enum ability_e move){
abilityprogress_usedAbilities |= (1 << move);
void ability_setHasUsed(enum ability_used ability) {
usedAbilities |= (1 << ability);
}
int ability_hasLearned(enum ability_e move){
return (1 << move) & abilityprogress_learnedAbilities;
int ability_hasLearned(enum ability_e ability) {
return (1 << ability) & learnedAbilities;
}
s32 ability_getAllLearned(void){
return abilityprogress_learnedAbilities;
s32 ability_getAllLearned(void) {
return learnedAbilities;
}
void ability_debug(void){}
void ability_debug(void) { }
void ability_clearAll(void){
abilityprogress_learnedAbilities = 0;
abilityprogress_usedAbilities = 0;
void ability_clearAll(void) {
learnedAbilities = 0;
usedAbilities = 0;
}
void ability_setLearned(s32 move, s32 val){
if(val){
abilityprogress_learnedAbilities |= (1 << move);
}else{
abilityprogress_learnedAbilities &= ~(1 << move);
void ability_setLearned(enum ability_e ability, bool hasLearned) {
if (hasLearned) {
learnedAbilities |= (1 << ability);
} else {
learnedAbilities &= ~(1 << ability);
}
}
void ability_setAllLearned(s32 val){
abilityprogress_learnedAbilities = val;
void ability_setAllLearned(s32 val) {
learnedAbilities = val;
}
void ability_setAllUsed(s32 val){
abilityprogress_usedAbilities = val;
void ability_setAllUsed(s32 val) {
usedAbilities = val;
}
void ability_getSizeAndPtr(s32 *size, u8 **addr){
// Gets the size of the bitflags needed and address for which moves have been learned
void ability_getSizeAndPtr(s32 *size, u8 **addr) {
*size = 8;
*addr = &abilityprogress_learnedAbilities;
*addr = &learnedAbilities;
}

View File

@@ -54,16 +54,16 @@ void __anSeq_func_80289F4(s32 arg0) {
s32 phi_a3;
phi_a3 = arg0 >> 0x10;
if( !(phi_a3 == 0xF2 && map_get() == MAP_91_FILE_SELECT && func_802C5A30() != 0)
&& !((phi_a3 == 0x21 || phi_a3 == 0x3ED) && map_get() == MAP_91_FILE_SELECT && (func_802C5A30() == 1))
if( !(phi_a3 == 0xF2 && map_get() == MAP_91_FILE_SELECT && gameSelect_getGameNumber() != 0)
&& !((phi_a3 == 0x21 || phi_a3 == 0x3ED) && map_get() == MAP_91_FILE_SELECT && (gameSelect_getGameNumber() == 1))
){
func_8030E6A4(phi_a3, (f32) ((f64) ((arg0 >> 8) & 0xFF) * 0.0078125), (s32) ((f64) (arg0 & 0xFF) * 128.0));
gcsfx_playWithPitch(phi_a3, (f32) ((f64) ((arg0 >> 8) & 0xFF) * 0.0078125), (s32) ((f64) (arg0 & 0xFF) * 128.0));
}
}
void __anSeq_func_8028AE0(s32 arg0){
func_8025A6EC((u16) (arg0 >> 16), (u16)arg0 - 1);
coMusicPlayer_playMusic((u16) (arg0 >> 16), (u16)arg0 - 1);
}
void __anSeq_func_8028B14(enum sfx_e arg0){

View File

@@ -32,10 +32,10 @@ enum bs_e badrone_enter(void){
return func_8029BD90();
}
enum bs_e badrone_goto(f32 position[3], f32 duration, void (*arg2)(ActorMarker *), ActorMarker *arg3){
enum bs_e badrone_goto(f32 position[3], f32 duration, void (*callback)(ActorMarker *), ActorMarker *arg3){
ml_vec3f_copy(badrone.position, position);
badrone.duration = duration;
badrone.unk14 = arg2;
badrone.unk14 = callback;
badrone.unk18 = arg3;
badrone_set_type(BA_DRONE_GOTO);
return func_8029BD90();

View File

@@ -6,6 +6,8 @@
#include "version.h"
#include "prop.h"
#include "core2/dustemitter.h"
extern void func_803012F8(void);
extern void __baMarker_8028BA00(s32);
extern void spawnQueue_actor_s16(void);
@@ -14,13 +16,12 @@ extern f32 chwadingboots_802D6E4C(Actor *);
extern void set_turbo_duration(f32);
extern f32 chtrainers_getDuration(Actor *);
extern void func_802EE354(Actor *, s32, s32, s32, f32, f32, f32, f32 arg8[3], s32, f32 arg10[2]);
extern void func_8035644C(s32);
extern void func_8035646C(s32 arg0);
extern void progressDialog_showDialogMaskZero(s32);
extern void progressDialog_showDialogMaskFour(s32 arg0);
extern void func_80291634(ActorMarker *, ActorMarker *);
extern void func_80291610(ActorMarker *, ActorMarker *);
extern Actor *baModel_80291AAC(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
extern void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, struct5Cs *collision_flags);
extern void func_802EE6CC(f32[3], s32, s32[4], s32, f32, f32, s32,s32,s32);
extern void func_80320ED8(ActorMarker *, f32, s32);
extern NodeProp *cubeList_findNodePropByActorIdAndPosition_s32(enum actor_e actor_id, s32 position[3]);
@@ -121,7 +122,7 @@ void __baMarker_8028B848(void){
if(player_getTransformation() == TRANSFORM_1_BANJO){
__baMarker_8028B7F4();
}
gcdialog_showText(s0, 0x2A, NULL, NULL, NULL, 0);
gcdialog_showDialog(s0, 0x2A, NULL, NULL, NULL, 0);
}
}
@@ -159,7 +160,7 @@ void __baMarker_8028B9A8(s32 arg0){
nodeprop_getPosition_s32(tmp_v0, &ideal_yaw);
func_802CA1CC(arg0);
actor_spawnWithYaw_s32(ACTOR_47_EMPTY_HONEYCOMB, &ideal_yaw, 0);
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 28000);
}
@@ -175,8 +176,8 @@ void __baMarker_resolveMusicNoteCollision(Prop *arg0) {
item_adjustByDiffWithoutHud(ITEM_C_NOTE, 1);
}
if (item_getCount(ITEM_C_NOTE) < 100) {
func_8025A6EC(COMUSIC_9_NOTE_COLLECTED, 16000);
timedFunc_set_1(0.75f, func_8035644C, FILEPROG_3_MUSIC_NOTE_TEXT);
coMusicPlayer_playMusic(COMUSIC_9_NOTE_COLLECTED, 16000);
timedFunc_set_1(0.75f, progressDialog_showDialogMaskZero, FILEPROG_3_MUSIC_NOTE_TEXT);
}
fxSparkle_musicNote(arg0->unk4);
}
@@ -332,12 +333,12 @@ void __baMarker_resolveCollision(Prop *other_prop){
case MARKER_F5_BGS_ELEVATED_WALKWAY_SWITCH: //L8028BFB0
if(plyr_hitbox_type == HITBOX_1_BEAK_BUSTER)
__baMarker_8028BAB0(JIGGY_20_BGS_ELEVATED_WALKWAY, 1, 3, 7);
__baMarker_8028BAB0(JIGGY_20_BGS_ELEVATED_WALKWAY, BGS_SPECIFIC_FLAG_1, BGS_SPECIFIC_FLAG_WALKWAY_JIGGY_TIMER_RUNNING, BGS_SPECIFIC_FLAG_7);
break;
case MARKER_FD_BGS_MAZE_SWITCH: //L8028BFD4
if(plyr_hitbox_type == HITBOX_1_BEAK_BUSTER)
__baMarker_8028BAB0(JIGGY_25_BGS_MAZE, 0xa, 0xc, 8);
__baMarker_8028BAB0(JIGGY_25_BGS_MAZE, BGS_SPECIFIC_FLAG_A, BGS_SPECIFIC_FLAG_MAZE_JIGGY_TIMER_RUNNING, BGS_SPECIFIC_FLAG_8);
break;
case MARKER_EC_GV_SUN_SWITCH: //L8028BFF8
@@ -352,7 +353,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(!mapSpecificFlags_get(0xD)){
mapSpecificFlags_set(0xD, 1);
func_8030E6D4(SFX_90_SWITCH_PRESS);
func_802BAFE4(0x14);
gcStaticCamera_activate(0x14);
timedFunc_set_1(1.5f, __baMarker_8028BA00, 0xB);
}
}
@@ -363,7 +364,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(!mapSpecificFlags_get(0)){
mapSpecificFlags_set(0,1);
func_8030E6D4(SFX_90_SWITCH_PRESS);
func_802BAFE4(0x7E);
gcStaticCamera_activate(0x7E);
timedFunc_set_1(1.5f, __baMarker_8028BA00, 0xf);
}
}
@@ -403,7 +404,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
* FILEPROG_51_YELLOW_CAULDRON_1_ACTIVE
* FILEPROG_52_YELLOW_CAULDRON_2_ACTIVE
*/
if(fileProgressFlag_get(((actor->unkF4_8 - 1) ^ 1) + 0x49)){
if(fileProgressFlag_get(((actor->actorTypeSpecificField - 1) ^ 1) + 0x49)){
actor->unk10_12 = 2;
}
else{
@@ -572,8 +573,8 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(sp98 != HONEYCOMB_12_MMM_FLOORBOARD || player_getTransformation() == TRANSFORM_3_PUMPKIN)
{
honeycombscore_set(sp98, 1);
func_8025A6EC(COMUSIC_17_EMPTY_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(2.0f, func_8035644C, FILEPROG_B_EMPTY_HONEYCOMB_TEXT);
coMusicPlayer_playMusic(COMUSIC_17_EMPTY_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(2.0f, progressDialog_showDialogMaskZero, FILEPROG_B_EMPTY_HONEYCOMB_TEXT);
item_inc(ITEM_13_EMPTY_HONEYCOMB);
if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){
gcpausemenu_80314AC8(0);
@@ -585,7 +586,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
break;
case 0x54: //L8028C820
func_8025A6EC(COMUSIC_19_LOW_PITCH_FLUTES, 28000);
coMusicPlayer_playMusic(COMUSIC_19_LOW_PITCH_FLUTES, 28000);
func_803012F8();
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s16, 0x4E, reinterpret_cast(u32, other_prop->actorProp.x), reinterpret_cast(u32, other_prop->actorProp.y), reinterpret_cast(u32, other_prop->actorProp.z));
marker_despawn(marker);
@@ -599,12 +600,12 @@ void __baMarker_resolveCollision(Prop *other_prop){
&& volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){
volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A6_FF_FOUND_HONEYCOMB);
progressDialog_setAndTriggerDialog_4(VOLATILE_FLAG_A6_FF_FOUND_HONEYCOMB);
func_8030E6D4(SFX_126_AUDIENCE_BOOING);
}
func_8025A6EC(COMUSIC_16_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(0.75f, func_8035644C, FILEPROG_A_HONEYCOMB_TEXT);
coMusicPlayer_playMusic(COMUSIC_16_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(0.75f, progressDialog_showDialogMaskZero, FILEPROG_A_HONEYCOMB_TEXT);
item_inc(ITEM_14_HEALTH);
fxSparkle_honeycomb(&other_prop->actorProp.x);
marker_despawn(marker);
@@ -635,7 +636,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
}
comusic_playTrack(COMUSIC_88_BIG_SNS_FANFARE);
FUNC_8030E624(SFX_114_BRICKWALL_BREAKING, 0.8f, 15000);
tmp_v0_2 = 3*(actor->unkF4_8 - 1);
tmp_v0_2 = 3*(actor->actorTypeSpecificField - 1);
tmp_f0 = 0.9f;\
sp64 = D_80363660;
@@ -711,11 +712,11 @@ void __baMarker_resolveCollision(Prop *other_prop){
&& volatileFlag_get(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ)
&& !fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)
){
volatileFlag_setAndTriggerDialog_4(VOLATILE_FLAG_A7_FF_FOUND_EXTRALIFE);
progressDialog_setAndTriggerDialog_4(VOLATILE_FLAG_A7_FF_FOUND_EXTRALIFE);
func_8030E6D4(SFX_127_AUDIENCE_MIXED);
}
func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
timedFunc_set_1(1.5f, func_8035646C, FILEPROG_C_EXTRA_LIFE_TEXT);
coMusicPlayer_playMusic(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
timedFunc_set_1(1.5f, progressDialog_showDialogMaskFour, FILEPROG_C_EXTRA_LIFE_TEXT);
fxSparkle_extraLife(&other_prop->actorProp.x);
item_inc(ITEM_16_LIFE);
marker_despawn(marker);
@@ -729,7 +730,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
baflag_set(BA_FLAG_2_ON_SPRING_PAD);
}else{
if(!volatileFlag_getAndSet(VOLATILE_FLAG_C_HAS_SEEN_SPRING_PAD, 1)){
gcdialog_showText(ASSET_A24_DIALOG_JUMP_PAD_DISCOVERED, 4, 0, 0, 0, 0);
gcdialog_showDialog(ASSET_A24_DIALOG_JUMP_PAD_DISCOVERED, 4, 0, 0, 0, 0);
}
}
break;
@@ -741,7 +742,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
baflag_set(BA_FLAG_1_ON_FLIGHT_PAD);
}
else if(! volatileFlag_getAndSet(VOLATILE_FLAG_D_HAS_SEEN_FLIGHT_PAD, 1)){
gcdialog_showText(ASSET_A25_DIALOG_FLY_DISC_DISCOVERED, 4, 0, 0, 0, 0);
gcdialog_showDialog(ASSET_A25_DIALOG_FLY_DISC_DISCOVERED, 4, 0, 0, 0, 0);
}
break;
@@ -807,7 +808,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
obj_collision_type = MARKER_COLLISION_FUNC_1;
break;
}//L8028D034
if(func_80297C6C() == 3){
if(bsiFrame_getState() == 3){
plyr_collision_type = MARKER_COLLISION_FUNC_0;
}
if(obj_collision_type){
@@ -905,7 +906,7 @@ void baMarker_update(void){
if ((D_8037BF88 != 0)){
temp_s0 = func_8024FEEC(func_8025ADD4(COMUSIC_30_5TH_JINJO_COLLECTED) & 0xFF);
if((comusic_active_track_count() < 4 && temp_s0 >= 0xBB9) || !func_8025AD7C(COMUSIC_30_5TH_JINJO_COLLECTED)){
if((coMusicPlayer_getTrackCount() < 4 && temp_s0 >= 0xBB9) || !func_8025AD7C(COMUSIC_30_5TH_JINJO_COLLECTED)){
func_8028F918(0);
D_8037BF88 = 0;
}
@@ -1016,7 +1017,7 @@ void baMarker_8028D71C(void){
func_8028E9C4(5, sp30);
player_getPosition(sp3C);
sp3C[1] += (sp30[1] - sp3C[1])*0.75;
func_802EE6CC(sp3C, 0, D_80363680, 1, 0.75f, 0.0f, 0x7d, 0xfa, 0);
dustEmitter_emit(sp3C, 0, D_80363680, 1, 0.75f, 0.0f, 0x7d, 0xfa, DUST_EMITTER_TYPE_DUST);
}
void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, struct5Cs *collision_flags){
@@ -1029,7 +1030,7 @@ void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, struct5Cs *collision_flags){
if(func_8033D5A4(collision_flags))
baflag_set(BA_FLAG_8);
if((func_80297C6C() != 3 && func_8028F1E0()) || !sp20){
if((bsiFrame_getState() != 3 && func_8028F1E0()) || !sp20){
if(!func_8028F25C()){
sp24 = func_8033D564(collision_flags);
if(0 < sp24 && sp24 < 6){

View File

@@ -55,7 +55,7 @@ void babuzz_reset(void){
D_8037C048.sample_rate = D_8037C050.sample_rate = 13000;
D_8037C048.volume = D_8037C050.volume;
sfxsource_setSfxId(baBuzzSfxSource, 0x3fa);
func_8030DD14(baBuzzSfxSource, 2);
sfxSource_setunk43_7ByIndex(baBuzzSfxSource, 2);
sfxsource_playSfxAtVolume(baBuzzSfxSource, D_8037C048.volume);
sfxsource_setSampleRate(baBuzzSfxSource, D_8037C048.sample_rate);
D_8037C058 = 0.0f;
@@ -67,7 +67,7 @@ void babuzz_update(void){
D_8037C048.sample_rate = babuzz_80290920((f32)D_8037C048.sample_rate, (f32)D_8037C050.sample_rate, 100.0f);
sfxsource_playSfxAtVolume(baBuzzSfxSource, babuzz_80290890(D_8037C058) + D_8037C048.volume);
sfxsource_setSampleRate(baBuzzSfxSource, D_8037C048.sample_rate);
func_8030E2C4(baBuzzSfxSource);
sfxSource_func_8030E2C4(baBuzzSfxSource);
}
void babuzz_setVolume(f32 arg0){

View File

@@ -27,7 +27,7 @@ void bakey_update(void){
s32 i;
bakey.pressed_count[0] = controller_getStartButton(0);
func_8024E60C(0, &bakey.pressed_count[BUTTON_Z]);
controller_copySideButtons(0, &bakey.pressed_count[BUTTON_Z]);
func_8024E6E0(0, &bakey.pressed_count[BUTTON_D_UP]);
controller_copyFaceButtons(0, &bakey.pressed_count[BUTTON_A]);
for(i=0; i<0xE; i++){//L802954A8

View File

@@ -46,14 +46,14 @@ void basfx_updateClockSfxSource(f32 prev_time, f32 current_time){
f32 f20;
s32 unks0;
if(current_time == 0.0f){
func_8030E394(basfx_timeUpSfxSource);
sfxSource_triggerCallbackByIndex(basfx_timeUpSfxSource);
}
else if(current_time < 1.0) {
if(1.0 <= prev_time){
//timer complete
sfxsource_setSfxId(basfx_timeUpSfxSource, SFX_1C_ALARMCLOCK);
sfxsource_setSampleRate(basfx_timeUpSfxSource, 0x7fff);
func_8030E2C4(basfx_timeUpSfxSource);
sfxSource_func_8030E2C4(basfx_timeUpSfxSource);
}
}
else{
@@ -63,7 +63,7 @@ void basfx_updateClockSfxSource(f32 prev_time, f32 current_time){
if(f20 <= prev_time && current_time < f20){
sfxsource_setSfxId(basfx_timeUpSfxSource, (unks0) ? SFX_2A_CLOCK_TIC_1 : SFX_51_CLOCK_TIC_2);
sfxsource_setSampleRate(basfx_timeUpSfxSource, 0x7fff);
func_8030E2C4(basfx_timeUpSfxSource);
sfxSource_func_8030E2C4(basfx_timeUpSfxSource);
return;
}
unks0 ^= 1;
@@ -98,21 +98,21 @@ void basfx_802997E8(void){
}
void basfx_802998D0(u8 indx){
func_8030E6A4(SFX_19_BANJO_LANDING_08, D_8037C6CC, 22000);
gcsfx_playWithPitch(SFX_19_BANJO_LANDING_08, D_8037C6CC, 22000);
}
void basfx_reset(void){
basfx_owSfxIndex = 0;
basfx_owSfxSource = sfxsource_createSfxsourceAndReturnIndex();
func_8030DD14(basfx_owSfxSource, 3);
sfxSource_setunk43_7ByIndex(basfx_owSfxSource, 3);
func_8030DD90(basfx_owSfxSource, 0);
D_8037C6CC = 1.0f;
D_8037C6C1 = sfxsource_createSfxsourceAndReturnIndex();
sfxsource_setSfxId(D_8037C6C1, SFX_18_BIGBUTT_SLIDE);
func_8030DD54(D_8037C6C1, basfx_802998D0);
sfxSource_setCallbackByIndex(D_8037C6C1, basfx_802998D0);
sfxsource_setSampleRate(D_8037C6C1, 28000);
func_8030DD14(D_8037C6C1, 2);
sfxSource_setunk43_7ByIndex(D_8037C6C1, 2);
func_8030DD90(D_8037C6C1, 0);
D_8037C6C2 = sfxsource_createSfxsourceAndReturnIndex();
@@ -123,7 +123,7 @@ void basfx_reset(void){
basfx_timeUpSfxSource = sfxsource_createSfxsourceAndReturnIndex();
func_8030DD90(basfx_timeUpSfxSource, 0);
func_8030DD14(basfx_timeUpSfxSource, 3);
sfxSource_setunk43_7ByIndex(basfx_timeUpSfxSource, 3);
baSfx.sfxsourceIdx = 0;
}
@@ -147,7 +147,7 @@ void basfx_80299AAC(void){
D_8037C6CC = ml_max_f(D_8037C6CC, 0.9f);
D_8037C6CC = ml_min_f(D_8037C6CC, 1.5f);
sfxsource_playSfxAtVolume(D_8037C6C1, D_8037C6CC);
func_8030E2C4(D_8037C6C1);
sfxSource_func_8030E2C4(D_8037C6C1);
}
void basfx_playJumpSfx(f32 arg0, f32 prev_time){
@@ -164,7 +164,7 @@ void basfx_80299BD4(void){
void basfx_playOwSfx(f32 volume){
sfxsource_setSfxId(basfx_owSfxSource, basfx_owSfxList[basfx_owSfxIndex]);
sfxsource_playSfxAtVolume(basfx_owSfxSource, volume);
func_8030E2C4(basfx_owSfxSource);
sfxSource_func_8030E2C4(basfx_owSfxSource);
++basfx_owSfxIndex;
if(basfx_owSfxIndex >= 8)
basfx_owSfxIndex = 0;
@@ -174,7 +174,7 @@ void basfx_80299C78(u8 indx, enum sfx_e sfx_id, f32 current_time, s32 arg3){
sfxsource_setSfxId(indx, sfx_id);
sfxsource_playSfxAtVolume(indx, current_time);
sfxsource_setSampleRate(indx, arg3);
func_8030E2C4(indx);
sfxSource_func_8030E2C4(indx);
}
u8 basfx_80299CC4(void){
@@ -222,15 +222,15 @@ void basfx_80299E00(void){
}
void basfx_80299E48(void){
func_8030E394(basfx_owSfxSource);
sfxSource_triggerCallbackByIndex(basfx_owSfxSource);
}
void basfx_80299E6C(void){
func_8030E394(D_8037C6C2);
sfxSource_triggerCallbackByIndex(D_8037C6C2);
}
void basfx_80299E90(void){
func_8030E394(D_8037C6C3);
sfxSource_triggerCallbackByIndex(D_8037C6C3);
}
void basfx_debug(void){}

View File

@@ -337,7 +337,7 @@ static void __bsant_recoil_update(void){
}
static void __bsant_recoil_end(void){
func_80297CA8();
bsiFrame_start();
baphysics_reset_gravity();
baMarker_collisionOn();
baeyes_open();

View File

@@ -1,10 +1,14 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
#include "core2/ba/timer.h"
void func_80292864(f32, f32);
@@ -172,8 +176,8 @@ void bsbarge_update(void){
bs_setState(sp24);
}
void bsbarge_end(void){
ability_use(5);
void bsbarge_end(void) {
ability_use(ABILITY_USED_BEAK_BARGE);
func_8029E070(0);
D_8037D2A6 = 0;
}

View File

@@ -2,7 +2,10 @@
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
#include "core2/commonParticle.h"
/* .bss */
u8 D_8037D2E0;
@@ -39,9 +42,9 @@ void bseggass_update(void) {
if (has_eggs) {
if (anctrl_isAt(plyr_mvmt, 0.3837f)) {
func_8030E760(SFX_3E_POOP_NOISE, 1.4f, 28000);
func_8033E3F0(COMMON_PARTICLE_4_EGG_ASS, 1);
commonParticle_new(COMMON_PARTICLE_4_EGG_ASS, 1);
item_dec(ITEM_D_EGGS);
ability_use(7);
ability_use(ABILITY_USED_EGG);
}
if ((anctrl_isAt(plyr_mvmt, 0.4885f)) && (D_8037D2E1 < D_8037D2E0)) {
anctrl_setStart(plyr_mvmt, 0.349f);

View File

@@ -2,7 +2,10 @@
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
#include "core2/commonParticle.h"
void yaw_setVelocityBounded(f32, f32);
void anctrl_start(AnimCtrl *, char*, s32);
@@ -47,9 +50,9 @@ void bsegghead_update(void) {
func_8030E760(SFX_57_KAZOOIE_HEGH, 1.0f, 0x7fff);
if (anctrl_isAt(aCtrl, 0.4704f)){
func_8033E3F0(COMMON_PARTICLE_1_EGG_HEAD, 1);
commonParticle_new(COMMON_PARTICLE_1_EGG_HEAD, 1);
item_dec(ITEM_D_EGGS);
ability_use(7);
ability_use(ABILITY_USED_EGG);
}
if ((anctrl_isAt(aCtrl, 0.5919f)) && (D_8037D2F1 < D_8037D2F0)) {
anctrl_setStart(aCtrl, 0.3878f);

View File

@@ -2,6 +2,8 @@
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
#include "core2/ba/timer.h"
@@ -41,13 +43,13 @@ void bsbflap_init(void) {
}
void func_802A2790(s32 arg0, f32 arg1, s32 arg2) {
func_8030E394(D_8037D30C);
sfxSource_triggerCallbackByIndex(D_8037D30C);
sfxsource_setSfxId(D_8037D30C, arg0);
sfxsource_playSfxAtVolume(D_8037D30C, arg1);
sfxsource_setSampleRate(D_8037D30C, arg2);
func_8030DD90(D_8037D30C, 0);
func_8030DD14(D_8037D30C, 3);
func_8030E2C4(D_8037D30C);
sfxSource_setunk43_7ByIndex(D_8037D30C, 3);
sfxSource_func_8030E2C4(D_8037D30C);
}
void func_802A2810(void) {
@@ -194,7 +196,7 @@ void bsbflap_update(void){
}
void bsbflap_end(void) {
ability_use(1);
ability_use(ABILITY_USED_FLAP);
baphysics_reset_gravity();
baphysics_reset_terminal_velocity();
func_8029E090(0, 0.2f);

View File

@@ -1,6 +1,9 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
/* .data */
@@ -160,7 +163,7 @@ void bsbflip_update(void){
}
void bsbflip_end(void){
ability_use(2);
ability_use(ABILITY_USED_FLIP);
baphysics_reset_gravity();
baphysics_reset_terminal_velocity();
func_8029E070(0);

View File

@@ -2,6 +2,9 @@
#include "core1/core1.h"
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
#include "core2/ba/flap.h"
#include "core2/ba/timer.h"
@@ -174,8 +177,8 @@ void bsbfly_enter_update(void){
bs_setState(sp1C);
}
void bsbfly_enter_end(void){
ability_use(8);
void bsbfly_enter_end(void) {
ability_use(ABILITY_USED_FLY);
func_8029E070(0);
}
@@ -514,7 +517,7 @@ void func_802A4664(void){
basfx_80299E90();
next_state = bs_getNextState();
if(next_state == BS_20_LANDING || next_state == BS_24_FLY || next_state == BS_2D_SWIM_IDLE){
sfxsource_playHighPriority(SFX_3EA_UNKNOWN);
sfxsource_playHighPriority(SFX_3EA_BANJO_GUH_HUH);
}
func_802A34C8();
func_8029E070(0);
@@ -676,7 +679,7 @@ void func_802A4C34(s32 arg0) {
void func_802A4C88(s32 arg0) {
baphysics_reset();
baMarker_collisionOn();
func_80297CA8();
bsiFrame_start();
func_8029E070(0);
func_80291548();
func_802A34C8();
@@ -783,7 +786,7 @@ void func_802A503C(void){
void func_802A505C(void){
if(bs_getInterruptType() == BS_INTR_9){
func_8029A86C(2);
bs_setInterruptResponse(2);
baflag_set(BA_FLAG_7_TOUCHING_JIGGY);
func_8029CCC4();
}else{

View File

@@ -26,7 +26,7 @@ u8 D_8037D361;
/* .code */
int func_802A51D0(void){
if(func_8029D66C())
if(isPlayerInHazard())
return 0;
return player_inWater();
}
@@ -103,7 +103,7 @@ void __bsblongleg_enterFromTrot(void){
anctrl_start(aCtrl, "bsblongleg.c", 0xe1);
stateTimer_set(STATE_TIMER_2_LONGLEG, D_8037D35C);
func_803219F4(2);
func_8030E2C4(D_8037D361);
sfxSource_func_8030E2C4(D_8037D361);
D_8037D360 = 1;
}
@@ -289,7 +289,7 @@ void bsblongleg_exit_update(void){
switch(D_8037D360){
case 0://L802A5C7C
if(anctrl_isAt(aCtrl, 0.68f))
func_8030E2C4(D_8037D361);
sfxSource_func_8030E2C4(D_8037D361);
if(anctrl_isStopped(aCtrl))
func_802A5B34();

View File

@@ -1,7 +1,9 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/yaw.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
@@ -131,7 +133,7 @@ void bsbpeck_update(void){
void bsbpeck_end(void){
D_8037D376 = 0;
ability_use(0xa);
ability_use(ABILITY_USED_PECK);
baModel_80292048(1, 0.0f, 0.0f, 0.0f);
baModel_80292048(0, 0.0f, 0.0f, 0.0f);
baMarker_8028D638(0, 0);

View File

@@ -2,6 +2,8 @@
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
/* .data */
@@ -77,7 +79,7 @@ void bsbshock_charge_update(void){
break;
case 1:
if(anctrl_isAt(aCtrl, 0.11f))
func_8030E2C4(D_8037D382);
sfxSource_func_8030E2C4(D_8037D382);
if(anctrl_isAt(aCtrl, 0.4036f))
anctrl_setDuration(aCtrl, 1.4f);
@@ -148,7 +150,7 @@ void bsbshock_init(void){
sfxsource_playHighPriority(SFX_E_SHOCKSPRING_BOING);
func_8029E064(1);
func_8029E070(1);
ability_use(9);
ability_use(ABILITY_USED_SHOCK);
baModel_80292158(-50.0f);
func_80298528(-50.0f);
D_8037D381 = 0;

View File

@@ -2,6 +2,8 @@
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/model.h"
#include "core2/ba/physics.h"
#include "core2/ba/timer.h"
@@ -64,12 +66,12 @@ bool func_802A73BC(void) {
f32 sp1C;
sp1C = (map_get() == MAP_46_CCW_WINTER) ? 90.0f : 130.0f;
return func_80294574() && player_getYPosition() > (func_80294500() - sp1C);
return floor_isCurrentFloorunk59() && player_getYPosition() > (floor_getCurrentFloorYPosition() - sp1C);
}
void func_802A744C(void) {
if (player_isInRBB() && bs_getState() != BS_4C_LANDING_IN_WATER) {
func_8035644C(FILEPROG_AC_DIVE_OILY_WATER);
progressDialog_showDialogMaskZero(FILEPROG_AC_DIVE_OILY_WATER);
}
roll_setAngularVelocity(30.0f, 0.9f);
baphysics_set_gravity(0.0f);
@@ -323,14 +325,14 @@ void func_802A7CA8(void) {
void func_802A7D74(void) {
func_80297CA8();
bsiFrame_start();
baMarker_collisionOn();
baeyes_open();
func_802A75B0();
}
void bsSwim_dive_init(void) {
ability_use(ABILITY_3_CAMERA_CONTROL);
ability_use(ABILITY_USED_SWIM);
baanim_playForDuration_once(ASSET_3C_ANIM_BSSWIM_DIVE_ENTER, 1.0f);
func_802A7140();
yaw_setVelocityBounded(500.0f, 5.0f);

View File

@@ -749,7 +749,7 @@ void bsbtrot_ow_update(void){
}
void bsbtrot_ow_end(void){
func_80297CA8();
bsiFrame_start();
baphysics_reset_gravity();
baMarker_collisionOn();
baeyes_open();

View File

@@ -46,7 +46,7 @@ static void __bsbwhirl_end(void){
}
static void __bsbwhirl_spawnSparkle(void){
func_8033E3F0(2,1);
commonParticle_new(2,1);
}
enum bs_e func_802AA510(enum bs_e arg0){
@@ -88,7 +88,7 @@ void bsbwhirl_enter_init(void){
D_8037D3B0 = 0.0f;
core1_ce60_incOrDecCounter(FALSE);
func_8025A55C(0, 0xfa0, 0xd);
func_8025A6EC(0x25, 0x6d60);
coMusicPlayer_playMusic(0x25, 0x6d60);
basfx_80299BD4();
bainput_enable(1,0);
}

View File

@@ -155,8 +155,8 @@ void bsbbuster_update(void){
break;
case 3://802A00F0
D_8037D2B7 = 0;
if(func_80297C6C() == 1){
func_80297CCC(0.9f);
if(bsiFrame_getState() == 1){
bsiFrame_startWithValue(0.9f);
}
D_8037D2B0 -= time_getDelta();

View File

@@ -360,7 +360,7 @@ void func_802A1A50(void){
}
void func_802A1B28(void){
func_80297CA8();
bsiFrame_start();
baphysics_reset_gravity();
baMarker_collisionOn();
baeyes_open();
@@ -520,7 +520,7 @@ void func_802A2098(void){
baphysics_set_target_horizontal_velocity(0.0f);
core1_ce60_incOrDecCounter(FALSE);
func_8025A2FC(0, 0xFA0);
func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1);
coMusicPlayer_playMusic(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1);
func_8029151C(0xC);
baMarker_collisionOff();
batimer_set(0, 3.0f);

View File

@@ -97,7 +97,7 @@ void bscarry_interrupt(void){
bacarry_set_marker(baMarker_8028D688());
break;
case 8:
func_8029A86C(2);
bs_setInterruptResponse(2);
bs_setState(BS_3C_TALK);
break;
case 0x12:
@@ -106,10 +106,10 @@ void bscarry_interrupt(void){
case BS_INTR_16_THROW_CARRIED_OBJ:
if(stateTimer_isDone(STATE_TIMER_1_THROW)){
bs_setState(BS_CARRY_THROW);
func_8029A86C(2);
bs_setInterruptResponse(2);
}
else{
func_8029A86C(1);
bs_setInterruptResponse(1);
}
break;
default://L802AB260

View File

@@ -1,6 +1,9 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
@@ -66,8 +69,8 @@ void bsclaw_update(void){
bs_setState(sp2C);
}
void bsclaw_end(void){
ability_use(0xB);
void bsclaw_end(void) {
ability_use(ABILITY_USED_CLAW);
_bsclawHitboxActive = 0;
func_802915B8();

View File

@@ -1,6 +1,9 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/anim.h"
#include "core2/ba/physics.h"
@@ -78,7 +81,7 @@ void bsclimb_idle_init(void){
yaw_setIdeal(angle_towards_pole);
yaw_applyIdeal();
}
ability_use(4);
ability_use(ABILITY_USED_CLIMB);
baanim_playForDuration_loopSmooth(ASSET_B2_ANIM_BSCLIMB_IDLE_2, 2.64f);
baanim_setUpdateType(BAANIM_UPDATE_1_NORMAL);
func_802AB654();
@@ -222,6 +225,6 @@ void func_802ABD60(void){
func_80296608();
return;
}
func_8029A86C(1);
bs_setInterruptResponse(1);
bs_setState(next_state);
}

View File

@@ -53,7 +53,7 @@ void func_802ABE70(void){
if(baflag_isTrue(BA_FLAG_10_TOUCHING_TURBO_TRAINERS) && bs_getState() != BS_17_BTROT_EXIT){
baflag_clear(BA_FLAG_10_TOUCHING_TURBO_TRAINERS);
stateTimer_set(STATE_TIMER_3_TURBO_TALON, get_turbo_duration());
func_8025A6EC(COMUSIC_8A_GETTING_TURBO_TRAINERS, -1);
coMusicPlayer_playMusic(COMUSIC_8A_GETTING_TURBO_TRAINERS, -1);
func_8029E0DC(1);
}
@@ -384,7 +384,7 @@ static void __bscroc_recoil_update(void){
}
void __bscroc_recoil_end(void){
func_80297CA8();
bsiFrame_start();
baphysics_reset_gravity();
baMarker_collisionOn();
baeyes_open();

View File

@@ -109,14 +109,14 @@ void bsdie_update(void){
func_8029B890();
if( batimer_get(0) != 0.0f
&& func_80294574()
&& floor_isCurrentFloorunk59()
&& ( D_8037D414
|| ( anctrl_isStopped(aCtrl)
&& ( player_getYPosition() < (func_80294500() - 150.0f))
&& ( player_getYPosition() < (floor_getCurrentFloorYPosition() - 150.0f))
)
)
&& player_inWater()
&& 100.0f < (func_80294500() - func_80294438())
&& 100.0f < (floor_getCurrentFloorYPosition() - func_80294438())
){
sp28 = BS_54_SWIM_DIE;
}

View File

@@ -30,7 +30,7 @@ void __bsDroneEnter_setSubstate(enum bsdroneenter_state_e arg0) {
batimer_set(0, 0.2f);
break;
case 2:
func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER);
batimer_set(0, 0.4f);
baModel_setEnvAlpha(0);

View File

@@ -23,7 +23,7 @@ void __bsDroneVanish_setSubstate(s32 next_state) {
batimer_set(0, 0.3f);
break;
case 2:
func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER);
batimer_set(0, 0.4f);
break;

View File

@@ -306,7 +306,7 @@ static void __bsdronexform_setState(int next_state){
case 8: // 802B03FC
if(D_8037D470.room_transformation == TRANSFORM_1_BANJO && D_8037D470.player_transformation == TRANSFORM_1_BANJO){
func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 28000);
coMusicPlayer_playMusic(COMUSIC_3C_MINIGAME_LOSS, 28000);
}
batimer_set(0, 1.0f);
break;

38
src/core2/bs/iFrame.c Normal file
View File

@@ -0,0 +1,38 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/statetimer.h"
#include "iFrame.h"
/* .bss */
u8 iFrameState;
/* .code */
void bsiFrame_setState(s32 state) {
iFrameState = state;
}
s32 bsiFrame_getState(void) {
return iFrameState;
}
void bsiFrame_reset(void) {
iFrameState = 0;
bsiFrame_setState(IFRAME_NONE);
stateTimer_clear(STATE_TIMER_4_IFRAME);
}
void bsiFrame_start(void) {
bsiFrame_startWithValue(0.6f);
}
void bsiFrame_startWithValue(f32 val) {
stateTimer_set(STATE_TIMER_4_IFRAME, val);
bsiFrame_setState(IFRAME_INVICIBLE);
}
void bsiFrame_update(void) {
if (stateTimer_isDone(STATE_TIMER_4_IFRAME)) {
bsiFrame_setState(IFRAME_NONE);
}
}

4
src/core2/bs/iFrame.h Normal file
View File

@@ -0,0 +1,4 @@
typedef enum {
IFRAME_NONE = 1,
IFRAME_INVICIBLE = 3
} IFrameState;

View File

@@ -38,7 +38,7 @@ void bsjig_jiggy_init(void){
if(tmp == 0) //weird if...
tmp = 0;
D_8037D4B1 = tmp;
func_8025A6EC(COMUSIC_D_JINGLE_JIGGY_COLLECTED, -1);
coMusicPlayer_playMusic(COMUSIC_D_JINGLE_JIGGY_COLLECTED, -1);
func_8029151C(0xC);
func_8029E070(1);
func_8030E6D4(SFX_33_BANJO_AHOO);
@@ -114,7 +114,7 @@ void bsjig_jiggy_end(void){
&& bs_getNextState() != BS_34_JIG_NOTEDOOR
){
func_8028F918(2);
func_802E4078(MAP_95_CS_END_ALL_100, 0, 1);
transitionToMap(MAP_95_CS_END_ALL_100, 0, 1);
} else {//L802B0DFC
if( jiggyscore_total() == 2
&& map_get() == MAP_2_MM_MUMBOS_MOUNTAIN
@@ -134,7 +134,7 @@ void bsjig_jiggy_end(void){
}
}//L802B0E88
if(sp2C != 0){
gcdialog_showText(sp2C, sp28, 0, 0, 0, 0);
gcdialog_showDialog(sp2C, sp28, 0, 0, 0, 0);
}
}//L802B0EA4
func_80298A64();
@@ -156,7 +156,7 @@ void bsjig_notedoor_end(void){
&& fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
){
func_8028F918(2);
func_802E4078(MAP_95_CS_END_ALL_100, 0, 1);
transitionToMap(MAP_95_CS_END_ALL_100, 0, 1);
}
func_80298A64();
}
@@ -177,7 +177,7 @@ void bsjig_notedoor_init(void){
core1_ce60_incOrDecCounter(FALSE);
func_8025A2FC(0,0xfa0);
}
func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE,-1);
coMusicPlayer_playMusic(COMUSIC_42_NOTEDOOR_OPENING_FANFARE,-1);
func_8029151C(0xc);
func_8029E070(1);
func_8030E6D4(SFX_33_BANJO_AHOO);
@@ -188,7 +188,7 @@ void bsjig_notedoor_update(void){
enum bs_e sp1C = 0;
if(baanim_isAt(0.59f) || baanim_isAt(0.84f))
basfx_80299CF4(SFX_3EA_UNKNOWN, 1.0f, 30000);
basfx_80299CF4(SFX_3EA_BANJO_GUH_HUH, 1.0f, 30000);
if(baanim_isStopped())
sp1C = BS_1_IDLE;

View File

@@ -2,6 +2,8 @@
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/model.h"
#include "core2/ba/anim.h"
@@ -161,12 +163,14 @@ void bsjump_update(void){
bs_setState(sp34);
}
void bsjump_end(void){
if(ability_hasLearned(ABILITY_A_HOLD_A_JUMP_HIGHER))
ability_use(0);
void bsjump_end(void) {
if (ability_hasLearned(ABILITY_A_HOLD_A_JUMP_HIGHER)) {
ability_use(ABILITY_USED_JUMP);
}
if(bs_getNextState() != BS_11_BPECK)
if (bs_getNextState() != BS_11_BPECK) {
baphysics_reset_gravity();
}
}
void bsjump_fall_init(void){

View File

@@ -66,7 +66,7 @@ void bsow_update(void) {
void bsow_end(void){
func_802B35DC();
func_802B1FD0(0);
func_80297CA8();
bsiFrame_start();
baphysics_reset_gravity();
baMarker_collisionOn();
baeyes_open();

View File

@@ -394,7 +394,7 @@ void __bspumpkin_bounce_update(void) {
}
void __bspumpkin_bounce_end(void) {
func_80297CA8();
bsiFrame_start();
baphysics_reset_gravity();
baMarker_collisionOn();
baeyes_open();

View File

@@ -51,7 +51,7 @@ void bssled_end(void){
void bssled_interrupt(void){
if(bs_getInterruptType() == BS_INTR_28){
func_802B3F60();
func_8029A86C(2);
bs_setInterruptResponse(2);
}
else{
func_80296608();

View File

@@ -2,6 +2,8 @@
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/physics.h"
/* .bss */
@@ -116,8 +118,10 @@ void bsslide_update(void){
bs_setState(sp3C);
}
void bsslide_end(void){
if(level_get() != 6)
ability_use(6);
void bsslide_end(void) {
if (level_get() != 6) {
ability_use(ABILITY_USED_SLIDE);
}
pitch_setIdeal(0.0f);
}

View File

@@ -85,5 +85,5 @@ void bssplat_update(void){
void bssplat_end(void){
baMarker_collisionOn();
func_80297CA8();
bsiFrame_start();
}

View File

@@ -315,21 +315,21 @@ void func_802B5350(void){
}
if(sp1C == 0x7){
if(bsStoredState_getTransformation() != TRANSFORM_1_BANJO)
func_8029A86C(1);
bs_setInterruptResponse(1);
else{
bacarry_set_marker(baMarker_8028D688());
bs_setState(BS_3A_CARRY_IDLE);
}
}
else if(sp1C == 0x12){//L802B53D0
func_8029A86C(1);
bs_setInterruptResponse(1);
if( bsStoredState_getTransformation() == TRANSFORM_1_BANJO && !baflag_isTrue(BA_FLAG_F) && stateTimer_isDone(STATE_TIMER_0_UNKNOWN)){
bacarriedobj_spawn(baMarker_getCarriedObjectActorId());
func_8029A86C(2);
bs_setInterruptResponse(2);
}
}
else if(sp1C == 0x8){//L802B5438
func_8029A86C(2);
bs_setInterruptResponse(2);
bs_setState(BS_3C_TALK);
}else{
bacarry_reset_marker();

View File

@@ -44,7 +44,7 @@ void func_802B60D0(void){}
void func_802B60D8(void) {
if (bs_getInterruptType() == BS_INTR_D_SURF) {
D_8037D560 = 1;
func_8029A86C(2);
bs_setInterruptResponse(2);
return;
}
func_80296608();

View File

@@ -35,7 +35,7 @@ void func_802B5480(void) {
f32 bubble_spawn_position[3];
ParticleEmitter *bubble_emitter;
if (func_80294574()) {
if (floor_isCurrentFloorunk59()) {
if (randf() > 0.5) {
baModel_8029223C(bubble_spawn_position);
} else {
@@ -75,9 +75,9 @@ void func_802B55DC(void) {
void swim_enteredWater(void) {
if (level_get() == LEVEL_9_RUSTY_BUCKET_BAY) {
func_8035644C(FILEPROG_AB_SWIM_OILY_WATER);
progressDialog_showDialogMaskZero(FILEPROG_AB_SWIM_OILY_WATER);
} else if (map_get() == MAP_46_CCW_WINTER) {
func_8035644C(FILEPROG_DD_HAS_TOUCHED_CCW_ICY_WATER);
progressDialog_showDialogMaskZero(FILEPROG_DD_HAS_TOUCHED_CCW_ICY_WATER);
}
baphysics_set_gravity(100.0f);
baphysics_set_terminal_velocity(133.33f);
@@ -245,7 +245,7 @@ void func_802B5C40(void) {
if ((func_80294530() != 0) && (can_dive() != 0)) {
func_802944D0(sp1C);
if (sp1C[1] < -0.7) {
if ((func_80294500() - player_getYPosition()) > 90.0f) {
if ((floor_getCurrentFloorYPosition() - player_getYPosition()) > 90.0f) {
next_state = BS_30_DIVE_ENTER;
}
}

View File

@@ -46,7 +46,7 @@ void bstalk_end(void){}
void bstalk_interrupt(void){
if(bs_getInterruptType() == BS_INTR_8){
bsTalkStayInState = TRUE;
func_8029A86C(2);
bs_setInterruptResponse(2);
}
else{
func_80296608();

View File

@@ -70,7 +70,7 @@ void bsthrow_interrupt(void){
bacarriedobj_spawn(baMarker_getCarriedObjectActorId());
}
else{
func_8029A86C(1);
bs_setInterruptResponse(1);
}
}
else{ //L802B6748

View File

@@ -1,6 +1,9 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/abilityprogress.h"
#include "core2/ba/anim.h"
#include "core2/ba/physics.h"
#include "core2/ba/timer.h"
@@ -81,7 +84,7 @@ void bstwirl_update(void){
bs_setState(sp1C);
}
void bstwirl_end(void){
ability_use(0xC);
void bstwirl_end(void) {
ability_use(ABILITY_USED_TWIRL);
_bstwirlHitboxActive = FALSE;
}

View File

@@ -757,7 +757,7 @@ void func_802B9880(void) {
void func_802B98C0(void) {
if (bs_getInterruptType() == BS_INTR_2B) {
func_8029A86C(2);
bs_setInterruptResponse(2);
bs_setState(BS_67_WALRUS_IDLE);
return;
}

View File

@@ -54,7 +54,7 @@ void chbat_exitRoost(Actor *this){
subaddie_set_state_with_direction(this, CH_BAT_STATE_EXIT_ROOST, 0.01f, 1);
actor_playAnimationOnce(this);
this->actor_specific_1_f = 5.0f;
FUNC_8030E8B4(SFX_419_UNKNOWN, 1.0f, 28000, this->position, 0x4e2, 0x9c4);
sfx_playFadeShorthandDefault(SFX_419_UNKNOWN, 1.0f, 28000, this->position, 0x4e2, 0x9c4);
}
}
@@ -166,13 +166,13 @@ bool chbat_nearPlayer(Actor *this) {
}
if (this->unk38_31 != 0) {
if (func_80329530(this, 0) && (sp24[1] <= (this->unk1C[1] - 40.0f))) {
if (subaddie_playerIsWithinSphereAndActive(this, 0) && (sp24[1] <= (this->unk1C[1] - 40.0f))) {
return TRUE;
}
this->unk38_31--;
return FALSE;
}
if (func_80329530(this, 800) && (sp24[1] <= (this->unk1C[1] - 40.0f))) {
if (subaddie_playerIsWithinSphereAndActive(this, 800) && (sp24[1] <= (this->unk1C[1] - 40.0f))) {
return TRUE;
}
@@ -381,7 +381,7 @@ void chBat_dieCollision(ActorMarker *this_marker, ActorMarker *other_marker){
chBat_fall(this);
local->cooldown = 0.0f;
this->marker->collidable = FALSE;
FUNC_8030E8B4(SFX_115_BUZZBOMB_DEATH, 1.3f, 26000, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_115_BUZZBOMB_DEATH, 1.3f, 26000, this->position, 1250, 2500);
}
void chBat_attackCollision(ActorMarker *this_marker, ActorMarker *other_marker){
@@ -436,7 +436,7 @@ void chbat_update(Actor *this){
else{
if(!(globalTimer_getTime() & 0xf)){
if(randf() < 0.35){
FUNC_8030E8B4(SFX_419_UNKNOWN, 1.0f, 28000, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_419_UNKNOWN, 1.0f, 28000, this->position, 1250, 2500);
}
}
}//L80360A40
@@ -484,7 +484,7 @@ void chbat_update(Actor *this){
this->position_y = mapModel_getFloorY(this->position);
subaddie_set_state_with_direction(this, CH_BAT_STATE_DIE, 0.01f, 1);
actor_playAnimationOnce(this);
func_8030E6A4(SFX_1F_HITTING_AN_ENEMY_3, 1.2f, 32200);
gcsfx_playWithPitch(SFX_1F_HITTING_AN_ENEMY_3, 1.2f, 32200);
}
else{//L80360CC4
this->position_y += this->velocity_x * sp34;

View File

@@ -25,8 +25,8 @@ ActorInfo chBeehive = {MARKER_50_BEEHIVE, ACTOR_12_BEEHIVE, ASSET_364_MODEL_BEEH
void chBeehive_die(ActorMarker *this, ActorMarker *other){
Actor *actor = marker_getActor(this);
FUNC_8030E8B4(SFX_11_WOOD_BREAKING_1, 1.0f, 28000, actor->position, 300, 3000);
FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.0f, 28000, actor->position, 300, 3000);
sfx_playFadeShorthandDefault(SFX_11_WOOD_BREAKING_1, 1.0f, 28000, actor->position, 300, 3000);
sfx_playFadeShorthandDefault(SFX_D_EGGSHELL_BREAKING, 1.0f, 28000, actor->position, 300, 3000);
subaddie_set_state(actor, CHBEEHIVE_STATE_2_DIE);
actor_playAnimationOnce(actor);
this->collidable = FALSE;
@@ -62,7 +62,7 @@ void chBeehive_update(Actor *this){
){
if(player_movementGroup() == BSGROUP_0_NONE || player_movementGroup() == BSGROUP_8_TROT){
if( player_getTransformation() == TRANSFORM_1_BANJO
&& gcdialog_showText(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0)
&& gcdialog_showDialog(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0)
){
fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, 1);
}
@@ -74,14 +74,14 @@ void chBeehive_update(Actor *this){
|| actor_animationIsAt(this, 0.6f)
){
if(!this->unk38_0){
func_8030E394(this->unk44_31);
sfxSource_triggerCallbackByIndex(this->unk44_31);
sfxsource_setSfxId(this->unk44_31, SFX_67_BEEHIVE_CLONK);
sfxsource_setSampleRate(this->unk44_31, 12000);
sfxsource_playSfxAtVolume(this->unk44_31, (anctrl_getAnimTimer(this->anctrl) + 0.9) - 0.4);
sfxsource_set_position(this->unk44_31, this->position);
sfxsource_set_fade_distances(this->unk44_31, 300.0f, 1500.0f);
func_8030DD14(this->unk44_31, 3);
func_8030E2C4(this->unk44_31);
sfxSource_setunk43_7ByIndex(this->unk44_31, 3);
sfxSource_func_8030E2C4(this->unk44_31);
}
}
break;

View File

@@ -51,14 +51,14 @@ void func_802C5EB8(Actor *this){
this->unk38_31--;
}
else{
if(func_80329530(this, 1200) && func_803292E0(this)){
if(subaddie_playerIsWithinSphereAndActive(this, 1200) && func_803292E0(this)){
subaddie_set_state(this, 8);
}
}
}
void func_802C5F44(Actor *this){
if(!func_80329530(this, 1200) || !func_803292E0(this)){
if(!subaddie_playerIsWithinSphereAndActive(this, 1200) || !func_803292E0(this)){
subaddie_set_state_with_direction(this, 1, 0.16f, 1);
}
}
@@ -105,8 +105,8 @@ void func_802C61C0(ActorMarker *marker, ActorMarker *other_marker){
&& actor->state != 0xf
){
subaddie_set_state_forward(actor, 0xd);
FUNC_8030E8B4(SFX_143_BULL_DAMAGE, 1.0f, 16000, actor->position, 0, 2000);
FUNC_8030E8B4(SFX_143_BULL_DAMAGE, 1.0f, 16000, actor->position, 0, 2000);
sfx_playFadeShorthandDefault(SFX_143_BULL_DAMAGE, 1.0f, 16000, actor->position, 0, 2000);
sfx_playFadeShorthandDefault(SFX_143_BULL_DAMAGE, 1.0f, 16000, actor->position, 0, 2000);
}
}
@@ -210,7 +210,7 @@ void func_802C6240(Actor *this){
if(!func_80329078(this, (s32)this->yaw, 20))
func_802C5F94(this);
if(this->unk10_12 == 0 || (this->unk10_12 < 3 && func_80329530(this, 300))){
if(this->unk10_12 == 0 || (this->unk10_12 < 3 && subaddie_playerIsWithinSphereAndActive(this, 300))){
subaddie_set_state(this, 9);
this->actor_specific_1_f = 13.0f;
}
@@ -230,7 +230,7 @@ void func_802C6240(Actor *this){
if(!func_80329030(this, 0))
func_802C5F94(this);
if(func_80329530(this, 320)){
if(subaddie_playerIsWithinSphereAndActive(this, 320)){
if(func_80329078(this, (s32)this->yaw_ideal,200)){
anctrl_setPlaybackType(this->anctrl, ANIMCTRL_ONCE);
subaddie_set_state(this, 4);
@@ -241,9 +241,9 @@ void func_802C6240(Actor *this){
tmp_a0 = this->unk44_31;
}
sfxsource_setSfxId(tmp_a0, SFX_18_BIGBUTT_SLIDE);
func_8030DD14(this->unk44_31, 2);
sfxSource_setunk43_7ByIndex(this->unk44_31, 2);
sfxsource_playSfxAtVolume(this->unk44_31, (randf()*0.1 - 0.05) + 1.0);
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
}
else{//L802C69FC
func_802C5F94(this);
@@ -257,9 +257,9 @@ void func_802C6240(Actor *this){
func_80328FB0(this, 1.0f);
}
func_80329030(this, 0);
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
if(0.99 <= anctrl_getAnimTimer(this->anctrl)){
func_80329878(this, func_80329530(this, 250)? 0.8: 1.2);
func_80329878(this, subaddie_playerIsWithinSphereAndActive(this, 250)? 0.8: 1.2);
if (0.0f == this->actor_specific_1_f) {
anctrl_setPlaybackType(this->anctrl, ANIMCTRL_LOOP);
subaddie_set_state_with_direction(this, 1, 0.65f, 1);

View File

@@ -3,7 +3,7 @@
#include "functions.h"
#include "variables.h"
extern void func_8025A6CC(enum comusic_e arg0, s32 arg1);
extern void coMusicPlayer_playMusicWeak(enum comusic_e arg0, s32 arg1);
extern void chBottlesBonusCursor_func_802DF99C(void);
extern f32 *chBottlesBonusCursor_func_802E05AC(s32);
extern f32 func_802E4B38(void);
@@ -399,7 +399,7 @@ void chBottlesBonus_lose(u8 *arg0, enum asset_e text_id) {
actor = marker_getActor(chBottlesBonusMarker);
chBottlesBonusCursor_lose();
func_8025A6CC(COMUSIC_3C_MINIGAME_LOSS, 28000);
coMusicPlayer_playMusicWeak(COMUSIC_3C_MINIGAME_LOSS, 28000);
actor->state = 5;
item_set(ITEM_6_HOURGLASS, FALSE);
func_802FAD64(0);
@@ -407,7 +407,7 @@ void chBottlesBonus_lose(u8 *arg0, enum asset_e text_id) {
*arg0 = 1;
timedFunc_set_0(2.0f, chBottlesBonusCursor_func_802DF99C);
func_80311714(0);
gcdialog_showText(text_id, 0x86, actor->position, chBottlesBonusMarker, chBottlesBonus_func_802DE224, NULL);
gcdialog_showDialog(text_id, 0x86, actor->position, chBottlesBonusMarker, chBottlesBonus_func_802DE224, NULL);
func_80311714(1);
}
else{
@@ -426,7 +426,7 @@ void chBottlesBonus_completedPuzzle(void) {
actor = marker_getActor(chBottlesBonusMarker);
gCompletedBottleBonusGames[chBottleBonusPuzzleIndex] = TRUE;
func_80311714(0);
gcdialog_showText(D_803681A0[chBottleBonusPuzzleIndex + 1].text_id, 0x86, actor->position, chBottlesBonusMarker, chBottlesBonus_IncrementPuzzle, NULL);
gcdialog_showDialog(D_803681A0[chBottleBonusPuzzleIndex + 1].text_id, 0x86, actor->position, chBottlesBonusMarker, chBottlesBonus_IncrementPuzzle, NULL);
func_80311714(1);
}
@@ -510,7 +510,7 @@ void chBottlesBonus_update(Actor *this) {
case 1:
if ((this->lifetime_value > 2.0) && gctransition_done()) {
this->lifetime_value = 0.0f;
func_8025A6EC(COMUSIC_98_BBONUS_PIECES_SHUFFLE, -1);
coMusicPlayer_playMusic(COMUSIC_98_BBONUS_PIECES_SHUFFLE, -1);
comusic_8025AB44(COMUSIC_95_BBONUS_A, 0, 2000);
func_8025AABC(COMUSIC_95_BBONUS_A);
subaddie_set_state_with_direction(this, 2, 0.0f, 1);
@@ -523,7 +523,7 @@ void chBottlesBonus_update(Actor *this) {
func_8025A7DC(COMUSIC_98_BBONUS_PIECES_SHUFFLE);
if (D_8037DCC7 == 0) {
func_80311714(0);
gcdialog_showText(ASSET_E24_DIALOG_UNKNOWN, 0x87, this->position, chBottlesBonusMarker, chBottlesBonus_startTimer, NULL);
gcdialog_showDialog(ASSET_E24_DIALOG_UNKNOWN, 0x87, this->position, chBottlesBonusMarker, chBottlesBonus_startTimer, NULL);
func_80311714(1);
D_8037DCC7 = 1;
}
@@ -599,7 +599,7 @@ Actor *chBottlesBonus_new(s32 position[3], s32 yaw, ActorInfo *actor_info, u32 f
return actor_new(position, yaw, actor_info, flags);
}
void chBottlesBonus_func_802DEB80(void) {
void chBottlesBonus_resetCompleted(void) {
int i;
for(i = 0; i < 7; i++){
gCompletedBottleBonusGames[i] = 0;

View File

@@ -132,7 +132,7 @@ bool chBottlesBonusCursor_checkPuzzleCompletion(void) {
if (D_8037E5C0.is_completed) {
item_set(ITEM_6_HOURGLASS, FALSE);
timedFunc_set_3(0.25f, (GenFunction_3)comusic_8025AB44, COMUSIC_94_BBONUS, 0, 2000);
timedFunc_set_2(0.3f, (GenFunction_2)func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 22000);
timedFunc_set_2(0.3f, (GenFunction_2)coMusicPlayer_playMusic, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 22000);
timedFunc_set_0(1.5f, (GenFunction_0)chBottlesBonusCursor_func_802DF99C);
timedFunc_set_0(1.0f, (GenFunction_0)chBottlesBonus_completedPuzzle);
}
@@ -189,10 +189,10 @@ void chBottlesBonusCursor_func_802DF99C(void){
}
void chBottlesBonusCursor_freeMethod(Actor *this) {
func_8031FBF8();
func_8031FBA0();
debugScoreStates();
clearScoreStates();
if (func_8034BAFC() != -1) {
func_802C5A3C(func_8034BAFC());
gameSelect_setGameNumber(func_8034BAFC());
gameFile_load(func_8034BAFC());
func_80347AA8();
}
@@ -224,7 +224,7 @@ void chBottlesBonusCursor_update(Actor *this) {
D_8037E5B8 = -1;
D_8037E5C0.prev_button = sp5C->button;
D_8037E5C0.is_completed = 0;
timedFunc_set_2(3.0f, (GenFunction_2)func_8025A6EC, COMUSIC_94_BBONUS, 0x5DC0);
timedFunc_set_2(3.0f, (GenFunction_2)coMusicPlayer_playMusic, COMUSIC_94_BBONUS, 0x5DC0);
timedFunc_set_1(3.0f, (GenFunction_1)func_8025AABC, COMUSIC_94_BBONUS);
for(i = 0; i < 20; i++){
bzero(&D_8037E248[i], sizeof(Struct_core2_584D0_0));
@@ -301,7 +301,7 @@ void chBottlesBonusCursor_update(Actor *this) {
held_piece->rotation = 0.0f;
chBottlesBonusCursor_func_802DF928(D_8037E5C0.unk0);
chBottlesBonusCursor_func_802DF928(D_8037E5C0.unk0);
func_8025A6EC(COMUSIC_96_BBONUS_PICKUP_PIECE, -1);
coMusicPlayer_playMusic(COMUSIC_96_BBONUS_PICKUP_PIECE, -1);
subaddie_set_state_with_direction(this, 2, 0.0f, 1);
}
}
@@ -330,7 +330,7 @@ void chBottlesBonusCursor_update(Actor *this) {
if((sp5C->button & B_BUTTON) && !(D_8037E5C0.prev_button & B_BUTTON)){
held_piece->state = 0;
subaddie_set_state_with_direction(this, 5, 0.0f, 1);
func_8025A6EC(COMUISC_97_BBONUS_DROP_PIECE, -1);
coMusicPlayer_playMusic(COMUISC_97_BBONUS_DROP_PIECE, -1);
chBottlesBonus_func_802DEA50(D_8037E5C0.unk0);
D_8037E5C0.unk0 = -1;
break;
@@ -356,7 +356,7 @@ void chBottlesBonusCursor_update(Actor *this) {
actor_playAnimationOnce(this);
}
timedFunc_set_2(0.25f, (GenFunction_2)func_8025A6EC, sp44, 26000);
timedFunc_set_2(0.25f, (GenFunction_2)coMusicPlayer_playMusic, sp44, 26000);
chBottlesBonus_func_802DEA50(D_8037E5C0.unk0);
D_8037E5C0.unk0 = -1;
}

View File

@@ -71,13 +71,13 @@ void func_802D77D4(Actor *this) {
return;
case 2:
sp3C = (f32)(this->unkF4_8 + 0x19);
sp3C = (f32)(this->actorTypeSpecificField + 0x19);
player_getPosition(sp40);
ml_vec3f_diff_copy(sp4C, this->position, sp40);
if (((sp4C[0] * sp4C[0]) + (sp4C[2] * sp4C[2])) < (sp3C * sp3C)) {
if ((this->position[1] < sp40[1]) && (sp40[1] <= local->unk0[1])) {
if (volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME) == 0) {
player_setClimbParams(this->position, local->unk0, (f32)this->unkF4_8, local->unkC);
player_setClimbParams(this->position, local->unk0, (f32)this->actorTypeSpecificField, local->unkC);
}
}
}

View File

@@ -86,7 +86,7 @@ void func_80357264(Actor *this, s32 next_state){
else
skeletalAnim_set(this->unk148, ASSET_185_ANIM_CLUCKER_ATTACK_LONG, 0.0f, randf2( 2.3f, 2.7f));
skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE);
func_8030E6A4(SFX_4A_CLUCKER_AHH, randf2(0.85f, 0.95f), 32000);
gcsfx_playWithPitch(SFX_4A_CLUCKER_AHH, randf2(0.85f, 0.95f), 32000);
}
if(next_state == 5){
@@ -186,7 +186,7 @@ void func_8035765C(Actor *this){
|| (sp4C < 0.32 && 0.32 <= sp48)
|| (sp4C < 0.53 && 0.53 <= sp48)
){
func_8030E6A4(SFX_80_YUMYUM_CLACK, randf2(0.75f, 0.95f), 32700);
gcsfx_playWithPitch(SFX_80_YUMYUM_CLACK, randf2(0.75f, 0.95f), 32700);
}
if(sp4C < 0.9 && 0.9 <= sp48){
func_8030E6D4(SFX_2_CLAW_SWIPE);
@@ -200,7 +200,7 @@ void func_8035765C(Actor *this){
FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000);
}
if(sp4C < 0.5 && 0.5 <= sp48){
func_8030E6A4(SFX_80_YUMYUM_CLACK, randf2(0.75f, 0.95f), 32700);
gcsfx_playWithPitch(SFX_80_YUMYUM_CLACK, randf2(0.75f, 0.95f), 32700);
}
if(sp4C < 0.9 && 0.9 <= sp48){
func_8030E6D4(SFX_2_CLAW_SWIPE);
@@ -214,7 +214,7 @@ void func_8035765C(Actor *this){
if(this->state == 5){
skeletalAnim_getProgressRange(this->unk148, &sp44, &sp40);
if(sp44 < 0.1 && 0.1 <= sp40){
func_8030E6A4(SFX_68_CLUCKER_AAEEGHH, randf2(1.0f, 1.1f), 32000);
gcsfx_playWithPitch(SFX_68_CLUCKER_AAEEGHH, randf2(1.0f, 1.1f), 32000);
}
if(sp44 < 0.7 && 0.7 <= sp40){

View File

@@ -41,7 +41,7 @@ void func_802CD8C0(Actor *this){
marker_despawn(this->marker);
return;
}
if(this->unkF4_8 != 0x32 && func_8028E4A4() != this->unkF4_8){
if(this->actorTypeSpecificField != 0x32 && func_8028E4A4() != this->actorTypeSpecificField){
marker_despawn(this->marker);
return;
}

View File

@@ -4,7 +4,7 @@
extern void actor_setOpacity(Actor*,s32);
extern void func_8035644C(u32);
extern void progressDialog_showDialogMaskZero(u32);
bool chCollectible_collectItem(Actor*, enum file_progress_e, enum asset_e, enum comusic_e, enum item_e, f32);
Actor *chCollectible_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3);
@@ -77,8 +77,8 @@ void func_802D8C98(Actor *this, s32 arg1) {
}
bool chCollectible_collectItem(Actor* actor, enum file_progress_e arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){
func_8025A6EC(sfxId,32000);
timedFunc_set_1(0.75f, (GenFunction_1)func_8035644C, arg1);
coMusicPlayer_playMusic(sfxId,32000);
timedFunc_set_1(0.75f, (GenFunction_1)progressDialog_showDialogMaskZero, arg1);
if(!func_802FADD4(0x1b)){
item_inc(itemId);
} else {

View File

@@ -44,7 +44,7 @@ void __chCrab_802CB078(Actor *this) {
return;
}
else{
if( func_80329530(this, 1500)
if( subaddie_playerIsWithinSphereAndActive(this, 1500)
&& ( (this->modelCacheIndex == ACTOR_F2_BLACK_SNIPPET) || func_803292E0(this))
) {
this->actor_specific_1_f = 0.0f;
@@ -66,7 +66,7 @@ void __chCrab_touch(ActorMarker *marker, ActorMarker *other){
this = marker_getActor(marker);
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);
sfx_playFadeShorthandDefault(SFX_1E_HITTING_AN_ENEMY_2, 1.0f, 28000, this->position, 950, 1900);
__chCrab_802CB140(this);
subaddie_set_state(this, 1);
}
@@ -80,11 +80,11 @@ void __chCrab_ow(ActorMarker *marker, ActorMarker *other) {
subaddie_set_state(this, 6);
actor_playAnimationOnce(this);
if (marker->id == MARKER_13_SNIPPET) {
FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
sfx_playFadeShorthandDefault(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
marker->id = MARKER_16B_SNIPPET_UPSIDEDOWN;
}
if (marker->id == MARKER_DD_BLACK_SNIPPET) {
FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
sfx_playFadeShorthandDefault(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
marker->id = MARKER_DE_BLACK_SNIPPET_UPSIDEDOWN;
}
}
@@ -94,7 +94,7 @@ void __chCrab_particleEmitterSetup(ParticleEmitter *p_ctrl, f32 position[3]) {
particleEmitter_setDrawMode(p_ctrl, 2);
particleEmitter_func_802EF9F8(p_ctrl, 0.7f);
particleEmitter_func_802EFA18(p_ctrl, 5);
func_802EFA20(p_ctrl, 0.8f, 1.0f);
particleEmitter_func_802EFA20(p_ctrl, 0.8f, 1.0f);
particleEmitter_setSfx(p_ctrl, SFX_1F_HITTING_AN_ENEMY_3, 10000);
particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.01f);
particleEmitter_setParticleLifeTimeRange(p_ctrl, 3.5f, 3.5f);
@@ -175,8 +175,8 @@ void __chCrab_die(ActorMarker *marker, ActorMarker *other){
this = marker_getActor(marker);
is_mutant_snippet = this->modelCacheIndex == ACTOR_F5_MUTIE_SNIPPET;
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, 28000, this->position, 950, 1900);
sfx_playFadeShorthandDefault(SFX_79_TICKER_DEATH, 1.0f, 32750, this->position, 950, 1900);
sfx_playFadeShorthandDefault(SFX_79_TICKER_DEATH, 1.0f, 28000, this->position, 950, 1900);
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_f32, ACTOR_4C_STEAM, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, this->position[1]), reinterpret_cast(s32, this->position[2]));
this->lifetime_value = 5.0f;
marker->collidable = FALSE;
@@ -191,7 +191,7 @@ void __chCrab_die(ActorMarker *marker, ActorMarker *other){
jiggy_spawn_position[0] = 13814.0f;
jiggy_spawn_position[1] = 3812.0f;
jiggy_spawn_position[2] = 0.0f;
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
coMusicPlayer_playMusic(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
func_80324DBC(2.25f, ASSET_D33_DIALOG_MUTANT_CRAB_DEFEAT, 0xF, jiggy_spawn_position, NULL, __chCrab_mutantTextCallback, NULL);
}
}
@@ -216,10 +216,10 @@ void __chCrab_die(ActorMarker *marker, ActorMarker *other){
void __chCrab_walkSfxUpdate(Actor *this) {
if (actor_animationIsAt(this, 0.4f)) {
FUNC_8030E8B4(SFX_3D_TICKER_WALKING, 0.85f, 15000, this->position, 950, 1900);
sfx_playFadeShorthandDefault(SFX_3D_TICKER_WALKING, 0.85f, 15000, this->position, 950, 1900);
}
if (actor_animationIsAt(this, 0.9f)) {
FUNC_8030E8B4(SFX_3D_TICKER_WALKING, 1.15f, 15000, this->position, 950, 1900);
sfx_playFadeShorthandDefault(SFX_3D_TICKER_WALKING, 1.15f, 15000, this->position, 950, 1900);
}
}
@@ -252,7 +252,7 @@ void chCrab_update(Actor *this) {
}
if (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) != 0) {
if (this->unkF4_8 != 1) {
if (this->actorTypeSpecificField != 1) {
marker_despawn(this->marker);
return;
}
@@ -264,11 +264,11 @@ void chCrab_update(Actor *this) {
&& !mapSpecificFlags_get(0)
&& is_mutant_snippet
&& !jiggyscore_isCollected(JIGGY_16_CC_SNIPPETS)
&& func_80329530(this, 500) && !func_80329530(this, 200)
&& subaddie_playerIsWithinSphereAndActive(this, 500) && !subaddie_playerIsWithinSphereAndActive(this, 200)
&& !player_movementGroup()
) {
if ((this->state != 6) && (this->state != 5)) {
gcdialog_showText(ASSET_D32_DIALOG_MUTANT_CRAB_MEET, 0xF, this->position, NULL, __chCrab_mutantTextCallback, NULL);
gcdialog_showDialog(ASSET_D32_DIALOG_MUTANT_CRAB_MEET, 0xF, this->position, NULL, __chCrab_mutantTextCallback, NULL);
mapSpecificFlags_set(0, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_E_CC_UNKNOWN, TRUE);
this->has_met_before = TRUE;
@@ -279,12 +279,12 @@ void chCrab_update(Actor *this) {
&& levelSpecificFlags_get(LEVEL_FLAG_2_TTC_UNKNOWN)
&& !volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)
&& !jiggyscore_isCollected(JIGGY_10_TTC_SANDCASTLE)
&& func_80329530(this, 1600)
&& subaddie_playerIsWithinSphereAndActive(this, 1600)
) {
gcdialog_showText(0xA12, 4, this->position, NULL, NULL, NULL);
gcdialog_showDialog(0xA12, 4, this->position, NULL, NULL, NULL);
mapSpecificFlags_set(0, TRUE);
} else if (mapSpecificFlags_get(1)) {
gcdialog_showText(0xA13, 4, this->position, NULL, NULL, NULL);
gcdialog_showDialog(0xA13, 4, this->position, NULL, NULL, NULL);
mapSpecificFlags_set(1, FALSE);
}
}

View File

@@ -0,0 +1,27 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
void explosionRipple_update(Actor *this);
/* .data */
ActorInfo chExplosionRipple = { MARKER_65_SHRAPNEL, ACTOR_F3_EXPLOSION_RIPPLE, 0x0, 0x0, 0x0, explosionRipple_update, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0};
/* .code */
void explosionRipple_update(Actor *this) {
if (!this->initialized) {
actor_collisionOff(this);
this->lifetime_value = 0.0f;
this->pitch = 90.0f;
fxRipple_802F3554(4, this->position);
this->initialized = TRUE;
return;
}
this->lifetime_value += time_getDelta();
if (2.0 < this->lifetime_value) {
marker_despawn(this->marker);
}
}

View File

@@ -55,7 +55,7 @@ void __chfirefx_spawnSpark(f32 position[3], f32 scale){
void __chfirefx_hiss(ActorMarker *marker,ActorMarker *other_marker){
Actor *actor = marker_getActor(marker);
FUNC_8030E8B4(SFX_96_HOTSAND_EEL_HISS, 1.0f, 32000, actor->position, 1000, 2000);
sfx_playFadeShorthandDefault(SFX_96_HOTSAND_EEL_HISS, 1.0f, 32000, actor->position, 1000, 2000);
}
void chfirefx_update(Actor *this){
@@ -65,7 +65,7 @@ void chfirefx_update(Actor *this){
actor_collisionOn(this);
marker_setCollisionScripts(this->marker, __chfirefx_hiss, NULL, NULL);
this->unk38_31 = (0.0f != this->yaw) ? 1 : 0;
if(this->unkF4_8 != 0x32){
if(this->actorTypeSpecificField != 0x32){
this->unk1C[0] = 1.0f;
this->unk44_31 = func_8030ED2C(SFX_128_FIRE_CRACKING, 2);
sfxsource_playSfxAtVolume(this->unk44_31, 1.1f);
@@ -85,7 +85,7 @@ void chfirefx_update(Actor *this){
}//L803599F4
if(0.0f != this->unk1C[0]){
func_8030DB04(this->unk44_31, 7000, this->position, 300.0f, 800.0f);
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
}
}//L80359A2C
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
typedef enum {
GAME_SELECT_INITIALIZE = 1,
GAME_SELECT_IDLE = 2,
GAME_SELECT_STARTING = 3,
GAME_SELECT_STARTING_SILLY = 4,
GAME_SELECT_ERASE_CONFIRMATION = 5,
GAME_SELECT_DONE = 6
} GameSelectState;

View File

@@ -100,7 +100,7 @@ void func_8035B3B4(ActorMarker *this_marker, ActorMarker *other_marker){
}
int func_8035B3E4(Actor *this){
if(func_80329530(this, (s32)(this->scale*600.0f)) && func_803292E0(this))
if(subaddie_playerIsWithinSphereAndActive(this, (s32)(this->scale*600.0f)) && func_803292E0(this))
return 1;
return 0;
}

View File

@@ -59,8 +59,8 @@ void chgloop_update(Actor *this){
subaddie_set_state(this, 4);
if( !mapSpecificFlags_get(2)
&& func_80329530(this, 350)
&& gcdialog_showText(ASSET_D34_DIALOG_GLOOP_MEET, 0, NULL, NULL, NULL, NULL)
&& subaddie_playerIsWithinSphereAndActive(this, 350)
&& gcdialog_showDialog(ASSET_D34_DIALOG_GLOOP_MEET, 0, NULL, NULL, NULL, NULL)
){
mapSpecificFlags_set(2, TRUE);
}
@@ -82,11 +82,11 @@ void chgloop_update(Actor *this){
sp34[1] = this->position[1];
sp34[2] = this->position[2];
}
if(func_80329530(this, 1900)){
if(subaddie_playerIsWithinSphereAndActive(this, 1900)){
__spawnQueue_add_4(chgloop_spawnBubble, reinterpret_cast(s32, sp34[0]), reinterpret_cast(s32, sp34[1]), reinterpret_cast(s32, sp34[2]), reinterpret_cast(s32, this->yaw));
}
func_8030E9C4(SFX_3ED, randf()/2 + 0.6, 32000, this->position, 100.0f, 3000.0f);
func_8030E9C4(SFX_3ED_BUBBLE_POP, randf()/2 + 0.6, 32000, this->position, 100.0f, 3000.0f);
}
break;
}//L802D1670

View File

@@ -118,7 +118,7 @@ void func_8035EF3C(Actor *this) {
if( actor_animationIsAt(this, 0.2f)
|| actor_animationIsAt(this, 0.7f)
) {
FUNC_8030E8B4(SFX_123_BANJO_LANDING_10, 0.5f, 24000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_123_BANJO_LANDING_10, 0.5f, 24000, this->position, 1750, 3500);
}
}
@@ -133,8 +133,8 @@ void func_8035EF9C(ActorMarker *marker, ActorMarker *other_marker) {
actor_playAnimationOnce(this);
local->unk0 = 2;
actor_collisionOff(this);
FUNC_8030E8B4(SFX_115_BUZZBOMB_DEATH, 0.6f, 32000, this->position, 1750, 3500);
FUNC_8030E8B4(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_115_BUZZBOMB_DEATH, 0.6f, 32000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, this->position, 1750, 3500);
func_8035EE48(this);
}
@@ -145,8 +145,8 @@ void func_8035F048(ActorMarker *marker, ActorMarker *other_marker) {
this = marker_getActor(marker);
local = (ActorLocal_core2_D7D10 *)&this->local;
FUNC_8030E8B4(SFX_F9_GRUNTLING_NOISE_1, 1.2f, 22000, this->position, 1750, 3500);
FUNC_8030E8B4(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_F9_GRUNTLING_NOISE_1, 1.2f, 22000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, this->position, 1750, 3500);
this->velocity[2] = 0.0f;
subaddie_set_state_with_direction(this, 6, 0.02f, 1);
actor_playAnimationOnce(this);
@@ -160,7 +160,7 @@ void func_8035F0E8(ActorMarker *marker, ActorMarker *other_marker) {
this = marker_getActor(marker);
local = (ActorLocal_core2_D7D10 *)&this->local;
FUNC_8030E8B4(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, this->position, 1750, 3500);
this->velocity[2] = 0.8f;
func_8035EE80(this);
}
@@ -197,12 +197,12 @@ void func_8035F138(Actor *this) {
this->velocity[0] = this->yaw;
}
anctrl_setAnimTimer(this->anctrl, 0.0f);
if (func_80329530(this, (s32) (this->scale * 650.0f)) && func_803292E0(this)) {
if (subaddie_playerIsWithinSphereAndActive(this, (s32) (this->scale * 650.0f)) && func_803292E0(this)) {
subaddie_set_state(this, 2U);
actor_playAnimationOnce(this);
this->unk1C[1] = 1.0f;
this->unk44_31 = func_8030ED2C(SFX_2C_PULLING_NOISE, 3);
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
}
break;
@@ -212,7 +212,7 @@ void func_8035F138(Actor *this) {
}
sfxsource_playSfxAtVolume(this->unk44_31, this->unk1C[1]);
if (actor_animationIsAt(this, 0.66f)) {
FUNC_8030E8B4(SFX_F9_GRUNTLING_NOISE_1, 0.8f, 32000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_F9_GRUNTLING_NOISE_1, 0.8f, 32000, this->position, 1750, 3500);
}
if (0.99 <= anctrl_getAnimTimer(this->anctrl)) {
@@ -224,7 +224,7 @@ void func_8035F138(Actor *this) {
case 3: //L8035F3AC
func_8035EF3C(this);
if (!func_80329530(this, (s32) (this->scale * 1050.0f)) || !func_803292E0(this)) {
if (!subaddie_playerIsWithinSphereAndActive(this, (s32) (this->scale * 1050.0f)) || !func_803292E0(this)) {
func_8035EEC0(this);
break;
}
@@ -244,7 +244,7 @@ void func_8035F138(Actor *this) {
case 4: //L8035F4FC
func_8035EF3C(this);
if (((f64)this->unk38_31 <= 0.0) && func_80329530(this, (s32) (this->scale * 1050.0f)) && func_803292E0(this)) {
if (((f64)this->unk38_31 <= 0.0) && subaddie_playerIsWithinSphereAndActive(this, (s32) (this->scale * 1050.0f)) && func_803292E0(this)) {
func_8035EE80(this);
break;
}
@@ -265,7 +265,7 @@ void func_8035F138(Actor *this) {
case 5: //L8035F6F4
if (actor_animationIsAt(this, 0.36f) != 0) {
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
}
if ((this->unk44_31 != 0) && func_8030E3FC(this->unk44_31)) {
if (this->unk1C[1] > 1.0) {
@@ -296,22 +296,22 @@ void func_8035F138(Actor *this) {
case 7: //L8035F840
if (actor_animationIsAt(this, 0.3f)) {
FUNC_8030E8B4(SFX_1E_HITTING_AN_ENEMY_2, 0.6f, 32000, this->position, 1750, 3500);
FUNC_8030E8B4(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 26000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1E_HITTING_AN_ENEMY_2, 0.6f, 32000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 26000, this->position, 1750, 3500);
}
if( actor_animationIsAt(this, 0.5f)
|| actor_animationIsAt(this, 0.7f)
) {
FUNC_8030E8B4(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 16000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 16000, this->position, 1750, 3500);
}
if (actor_animationIsAt(this, 0.8f)) {
FUNC_8030E8B4(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 14000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 14000, this->position, 1750, 3500);
}
if (actor_animationIsAt(this, 0.9f)) {
FUNC_8030E8B4(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 12000, this->position, 1750, 3500);
sfx_playFadeShorthandDefault(SFX_1F_HITTING_AN_ENEMY_3, 0.8f, 12000, this->position, 1750, 3500);
}
if (actor_animationIsAt(this, 0.25f)) {

View File

@@ -46,7 +46,7 @@ Actor *chicecube_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
int func_80359DF4(Actor *this, s32 arg1){
if(func_80329530(this, arg1) && func_803292E0(this))
if(subaddie_playerIsWithinSphereAndActive(this, arg1) && func_803292E0(this))
return 1;
return 0;
}
@@ -202,7 +202,7 @@ void __chicecube_spawnHalfCubes(ActorMarker *marker){
for(i = 0; i < 2; i++){//L8035A7FC
bundle_setYaw((i & 1)? actor->yaw : actor->yaw + 180.0f);
other = bundle_spawn_f32(BUNDLE_21__ICECUBE_B, sp54);
other->unkF4_8 = 1; //don't spawn more
other->actorTypeSpecificField = 1; //don't spawn more
other->scale = randf2(0.5f, 0.6f)*actor->scale;
actor->yaw = randi2(0, 359);
}
@@ -212,7 +212,7 @@ void __chicecube_spawnHalfCubes(ActorMarker *marker){
//__chicecube_ow
void __chicecube_ow(ActorMarker *marker, ActorMarker *other_marker){
Actor *actor = marker_getActor(marker);
FUNC_8030E8B4(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, actor->position, 1500, 3000);
sfx_playFadeShorthandDefault(SFX_1D_HITTING_AN_ENEMY_1, 0.9f, 22000, actor->position, 1500, 3000);
actor->velocity[1] = 0.8f;
actor->actor_specific_1_f = 0.0f;
}
@@ -220,11 +220,11 @@ void __chicecube_ow(ActorMarker *marker, ActorMarker *other_marker){
//__chicecube_die
void __chicecube_die(ActorMarker *marker, ActorMarker *other_marker){
Actor *actor = marker_getActor(marker);
FUNC_8030E8B4(SFX_B6_GLASS_BREAKING_1, 1.0f, 32000, actor->position, 1500, 4500);
sfx_playFadeShorthandDefault(SFX_B6_GLASS_BREAKING_1, 1.0f, 32000, actor->position, 1500, 4500);
actor->velocity[1] = 0.0f;
func_8035A04C(actor->position, 12, ASSET_505_MODEL_ICECUBE_CHUNK, actor->scale);
func_8035A228(actor->position, 6, ASSET_700_SPRITE_DUST, actor->scale);
if(actor->unkF4_8 != 1){
if(actor->actorTypeSpecificField != 1){
__spawnQueue_add_1((GenFunction_1)__chicecube_spawnHalfCubes, reinterpret_cast(s32, actor->marker));
}
marker_despawn(actor->marker);
@@ -302,7 +302,7 @@ void chicecube_update(Actor *this){
case 1: // L8035AC9C
anctrl_setAnimTimer(this->anctrl, 0.0f);
if( func_80359DF4(this, 900)
|| (this->unkF4_8 == 2 && volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))
|| (this->actorTypeSpecificField == 2 && volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE))
){
subaddie_set_state_with_direction(this, 2, 0.0001f, 1);
actor_playAnimationOnce(this);
@@ -311,7 +311,7 @@ void chicecube_update(Actor *this){
break;
case 2: // L8035AD10
if(actor_animationIsAt(this, 0.1f)){
FUNC_8030E8B4(SFX_112_TINKER_ATTENTION, 1.3f, 23000, this->position, 1500, 4500);
sfx_playFadeShorthandDefault(SFX_112_TINKER_ATTENTION, 1.3f, 23000, this->position, 1500, 4500);
}
if( func_80359E38(this, 0xff, 0xa)
&& 0.98 < anctrl_getAnimTimer(this->anctrl)
@@ -367,7 +367,7 @@ void chicecube_update(Actor *this){
break;
case 5: // L8035AF58
if(actor_animationIsAt(this, 0.25f)){
FUNC_8030E8B4(SFX_112_TINKER_ATTENTION, 1.3f, 23000, this->position, 1500, 4500);
sfx_playFadeShorthandDefault(SFX_112_TINKER_ATTENTION, 1.3f, 23000, this->position, 1500, 4500);
}
if( anctrl_getAnimTimer(this->anctrl) < 0.1
&& func_80359EBC(this, 0x50, 0xA)

View File

@@ -2,154 +2,159 @@
#include "functions.h"
#include "variables.h"
#include "enums.h"
#include "jiggy.h"
#include "core2/commonParticle.h"
extern void func_802BE720(void);
extern f32 func_8033A244(f32);
extern void func_8033A280(f32);
extern void func_80329904(ActorMarker *, s32, f32 *);
typedef struct chjiggy_s{
u32 unk0;
u32 index;
} ActorLocal_Jiggy;
Actor *spawnQueue_actor_s32(f32, f32, f32);
void func_802C7AF8(u32 x, u32 y, u32 z, u32 arg3);
Actor *chjiggy_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void func_802C7D98(Actor * arg0);
void chjiggy_update(Actor *this);
enum jiggy_e chjiggy_getJiggyId(Actor *this);
/* .data */
ActorAnimationInfo D_80366290[] = {
{0, 0.0f},
{0, 0.0f},
{0, 0.0f}
ActorAnimationInfo JIGGY_ANIMATIONS[] = {
{ 0, 0.0f },
{ 0, 0.0f },
{ 0, 0.0f }
};
ActorInfo D_803662A8 = {
0x52, ACTOR_46_JIGGY, ASSET_35F_MODEL_JIGGY,
1, D_80366290,
chjiggy_update, func_802C7D98, chjiggy_draw,
ActorInfo chJiggy = {
MARKER_52_JIGGY, ACTOR_46_JIGGY, ASSET_35F_MODEL_JIGGY,
1, JIGGY_ANIMATIONS,
chjiggy_update, chjiggy_update_2, chjiggy_draw,
0, 0, 0.9f, 0
};
/* .code */
enum jiggy_e func_802C7A30(Actor *this){
enum jiggy_e getJiggyId(Actor *this) {
s32 id;
s32 sp18[3];
s32 position[3];
id = map_get();
sp18[0] = (s32)this->position[0];
sp18[1] = (s32)this->position[1];
sp18[2] = (s32)this->position[2];
id = func_80307164(sp18);
if( id < 0){
position[0] = (s32)this->position[0];
position[1] = (s32)this->position[1];
position[2] = (s32)this->position[2];
id = func_80307164(position);
if (id < 0) {
return 0;
}
else{
return func_80306DBC(id) + 1;
}
return func_80306DBC(id) + 1;
}
void func_802C7AB0(ActorMarker * arg0, u32 arg1){
void playJiggyDestroyedSoundsAndReset(ActorMarker *marker, u32 resetSwitchFlag) {
func_8030E6D4(SFX_30_MAGIC_POOF);
func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 0x7FF8);
mapSpecificFlags_set(arg1, 1);
marker_despawn(arg0);
coMusicPlayer_playMusic(COMUSIC_3C_MINIGAME_LOSS, 0x7FF8);
mapSpecificFlags_set(resetSwitchFlag, TRUE);
marker_despawn(marker);
}
void func_802C7AF8(u32 x, u32 y, u32 z, u32 arg3){
void spawnJiggyDestroyedEffects(u32 x, u32 y, u32 z, u32 resetSwitchFlag) {
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s32, ACTOR_4C_STEAM, x, y, z);
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s32, ACTOR_14F_DESTROYED_JIGGY, x, y, z);
mapSpecificFlags_set(arg3, 1);
mapSpecificFlags_set(resetSwitchFlag, TRUE);
}
void func_802C7B6C(u32 arg0){
mapSpecificFlags_set(arg0, 0);
void resetFlag(enum bgs_specific_flags flag) {
mapSpecificFlags_set(flag, FALSE);
}
void func_802C7B8C(Actor *this, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, enum volatile_flags_e arg6){
if( !mapSpecificFlags_get(arg1)
&& mapSpecificFlags_get(arg2)
&& item_getCount(ITEM_0_HOURGLASS_TIMER) == 0
){
func_8028FCC8(1);
actor_collisionOff(this);
func_802BAFE4(arg3);
volatileFlag_setAndTriggerDialog_0(arg6);
timedFunc_set_4(0.6f, (GenFunction_4)func_802C7AF8, (s32)this->position[0], (s32)this->position[1], (s32)this->position[2], arg4);
timedFunc_set_2(0.6f, (GenFunction_2)func_802C7AB0, (s32)this->marker, arg5);
timedFunc_set_0(1.0f, (GenFunction_0)func_802BE720);
timedFunc_set_1(3.9f, (GenFunction_1)func_802C7B6C, arg4);
mapSpecificFlags_set(arg1, 1);
void destroyJiggy(Actor *this, s32 jiggyFlag, s32 timerRunningFlag, s32 cameraId, s32 switchPressedFlag, s32 resetSwitchFlag, enum volatile_flags_e dialogFlag) {
// Jiggy is still active
if (mapSpecificFlags_get(jiggyFlag)
|| !mapSpecificFlags_get(timerRunningFlag)
|| item_getCount(ITEM_0_HOURGLASS_TIMER) != 0) {
return;
}
player_setModelVisible(1);
actor_collisionOff(this);
// Switch camera to a static one showing the newly destroyed jiggy
gcStaticCamera_activate(cameraId);
progressDialog_setAndTriggerDialog_0(dialogFlag);
timedFunc_set_4(0.6f, (GenFunction_4)spawnJiggyDestroyedEffects, (s32)this->position[0], (s32)this->position[1], (s32)this->position[2], switchPressedFlag);
timedFunc_set_2(0.6f, (GenFunction_2)playJiggyDestroyedSoundsAndReset, (s32)this->marker, resetSwitchFlag);
timedFunc_set_0(1.0f, (GenFunction_0)func_802BE720);
timedFunc_set_1(3.9f, (GenFunction_1)resetFlag, switchPressedFlag);
mapSpecificFlags_set(jiggyFlag, TRUE);
}
void chjiggy_updateRotation(Actor *this){
void chjiggy_updateRotation(Actor *this) {
f32 delta = time_getDelta();
// Controls the rotation speed
this->yaw += delta * 230.0f;
if(360.0f <= this->yaw){
if (360.0f <= this->yaw) {
this->yaw -= 360.0f;
}
this->yaw_ideal = this->yaw;
}
//chjiggy_draw
Actor *chjiggy_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3){
Actor * thisActor = marker_getActor(this);
ActorLocal_Jiggy *local = (ActorLocal_Jiggy *)&thisActor->local;
Actor *chjiggy_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **vtx) {
Actor *jiggy_actor = marker_getActor(this);
ActorLocal_Jiggy *local = (ActorLocal_Jiggy *)&jiggy_actor->local;
u32 jiggyId;
if(!local->unk0){
jiggyId = chjiggy_getJiggyId(thisActor);
if((jiggyId == JIGGY_1C_CC_RINGS) || (jiggyId == JIGGY_1D_CC_SLOW_SAWBLADES)){
if (!local->isHidden) {
jiggyId = chjiggy_getJiggyId(jiggy_actor);
if ((jiggyId == JIGGY_1C_CC_RINGS) || (jiggyId == JIGGY_1D_CC_SLOW_SAWBLADES)) {
func_8033A280(10.0f);
func_8033A244(30000.0f);
}
thisActor = actor_draw(this, gdl, mptr, arg3);
jiggy_actor = actor_draw(this, gdl, mptr, vtx);
}
return thisActor;
return jiggy_actor;
}
void func_802C7D98(Actor * arg0){
func_80343DEC(arg0);
chjiggy_updateRotation(arg0);
void chjiggy_update_2(Actor *this) {
func_80343DEC(this);
chjiggy_updateRotation(this);
}
//chjiggy_update
void chjiggy_update(Actor *this){
void chjiggy_update(Actor *this) {
ActorLocal_Jiggy *local = (ActorLocal_Jiggy *)&this->local;
int i;
if(this->marker->unk14_21){
for(i = 0; i < 4; i++){
if(randf() < 0.015){
func_8033E73C(this->marker, i + 5, func_80329904);
func_8033E3F0(8, 1);
// A small chance to show a jiggy shine effect. Up to four can be shown at once.
if (this->marker->unk14_21) {
for (i = 0; i < 4; i++) {
if (randf() < 0.015) {
commonParticle_add(this->marker, i + 5, func_80329904);
commonParticle_new(COMMON_PARTICLE_8_JIGGY_SHINE, 1);
}
}
}//L802C7E44
switch(this->state){
case 1: //L802C7E68
local->unk0 = 0;
if(local->index == 0)
local->index = func_802C7A30(this);
if(jiggyscore_isCollected(local->index)){
marker_despawn(this->marker);
}
switch (this->state) {
case JIGGY_STATE_1_INIT:
local->isHidden = FALSE;
if (local->id == 0) {
local->id = getJiggyId(this);
}
else{
subaddie_set_state(this, 2);
switch(chjiggy_getJiggyId(this)){
case JIGGY_17_CC_CLANKER_RAISED: //L802C7EF8
case JIGGY_49_CCW_EYRIE:// L802C7EF8
if (jiggyscore_isCollected(local->id)) {
marker_despawn(this->marker);
} else {
subaddie_set_state(this, JIGGY_STATE_2_IDLE);
switch (chjiggy_getJiggyId(this)) {
case JIGGY_17_CC_CLANKER_RAISED:
case JIGGY_49_CCW_EYRIE:
this->marker->unk40_21 = 1;
break;
case JIGGY_36_LAIR_TTC_WITCH_SWITCH:// L802C7F0C
case JIGGY_36_LAIR_TTC_WITCH_SWITCH:
this->unk44_14 = func_80341F2C(0x20A);
this->unk48 = 0.0f;
this->unk4C = 300.0f;
@@ -158,53 +163,63 @@ void chjiggy_update(Actor *this){
func_80343DEC(this);
chjiggy_updateRotation(this);
break;
case JIGGY_3E_GV_GRABBA:// L802C7F6C
case JIGGY_4D_CCW_FLOWER:// L802C7F6C
case JIGGY_3E_GV_GRABBA:
case JIGGY_4D_CCW_FLOWER:
this->unk124_6 = 0;
break;
case JIGGY_41_GV_MAZE:// L802C7F7C
case JIGGY_41_GV_MAZE:
this->marker->unk14_10 = 30;
break;
case JIGGY_13_TTC_LOCKUP: //L802C7F94
case JIGGY_13_TTC_LOCKUP:
this->marker->unk14_10 = 40;
break;
}
}
break;
case 2: //L802C7FAC
case JIGGY_STATE_2_IDLE:
chjiggy_updateRotation(this);
switch(chjiggy_getJiggyId(this)){
case JIGGY_20_BGS_ELEVATED_WALKWAY: //L802C7FE8
func_802C7B8C(this, 4, 3, 0xD, 5, 2, VOLATILE_FLAG_AE_BGS_WALKWAY_JIGGY_MISSED);
switch (chjiggy_getJiggyId(this)) {
case JIGGY_20_BGS_ELEVATED_WALKWAY:
destroyJiggy(this, BGS_SPECIFIC_FLAG_WALKWAY_JIGGY, BGS_SPECIFIC_FLAG_WALKWAY_JIGGY_TIMER_RUNNING, STATIC_CAMERA_D_WALKWAY_JIGGY_DESTROY,
BGS_SPECIFIC_FLAG_WALKWAY_JIGGY_SWITCH_PRESSED, BGS_SPECIFIC_FLAG_WALKWAY_JIGGY_RESET, VOLATILE_FLAG_AE_BGS_WALKWAY_JIGGY_MISSED);
break;
case JIGGY_25_BGS_MAZE://L802C8018
func_802C7B8C(this, 0xd, 0xc, 0x1e, 9, 0xb, VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED);
case JIGGY_25_BGS_MAZE:
destroyJiggy(this, BGS_SPECIFIC_FLAG_MAZE_JIGGY, BGS_SPECIFIC_FLAG_MAZE_JIGGY_TIMER_RUNNING, STATIC_CAMERA_1E_MAZE_JIGGY_DESTROY,
BGS_SPECIFIC_FLAG_MAZE_JIGGY_SWITCH_PRESSED, BGS_SPECIFIC_FLAG_MAZE_JIGGY_RESET, VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED);
break;
case JIGGY_2F_FP_XMAS_TREE://L802C8048
case JIGGY_2F_FP_XMAS_TREE:
if (levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
actor_collisionOn(this);
}
else {
} else {
actor_collisionOff(this);
}
break;
}
break;
}//L802C8074
}
}
enum jiggy_e chjiggy_getJiggyId(Actor *this){
enum jiggy_e chjiggy_getJiggyId(Actor *this) {
ActorLocal_Jiggy *local = (ActorLocal_Jiggy *)&this->local;
return local->index;
return local->id;
}
void chjiggy_hide(Actor * this){
void chjiggy_hide(Actor *this) {
ActorLocal_Jiggy *local = (ActorLocal_Jiggy *)&this->local;
local->unk0 = 1;
local->isHidden = TRUE;
actor_collisionOff(this);
}
void chjiggy_setJiggyId(Actor *this, u32 id){
void chjiggy_setJiggyId(Actor *this, u32 id) {
ActorLocal_Jiggy *local = (ActorLocal_Jiggy *)&this->local;
local->index = id;
local->id = id;
}

15
src/core2/ch/jiggy.h Normal file
View File

@@ -0,0 +1,15 @@
typedef struct chjiggy_s {
bool isHidden;
u32 id;
} ActorLocal_Jiggy;
Actor *spawnQueue_actor_s32(f32, f32, f32);
Actor *chjiggy_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void chjiggy_update_2(Actor * arg0);
void chjiggy_update(Actor *this);
enum jiggy_e chjiggy_getJiggyId(Actor *this);
enum jiggy_state_e {
JIGGY_STATE_1_INIT = 1,
JIGGY_STATE_2_IDLE = 2
};

View File

@@ -46,7 +46,7 @@ void __chJinjo_802CDBA8(ActorMarker *this, ActorMarker *other){
if(actorPtr->state < 5){
if(!fileProgressFlag_get(FILEPROG_E_JINJO_TEXT)){
gcdialog_showText(__chJinjo_getMeetDialogId(actorPtr->marker->id), 4, 0, 0, 0, 0);
gcdialog_showDialog(__chJinjo_getMeetDialogId(actorPtr->marker->id), 4, 0, 0, 0, 0);
fileProgressFlag_set(FILEPROG_E_JINJO_TEXT, 1);
}
subaddie_set_state_with_direction(actorPtr, 6, 0.0f , -1);
@@ -176,9 +176,9 @@ void chJinjo_update(Actor * this){
core1_ce60_incOrDecCounter(FALSE);
func_8032BB88(this, 0, 4000);
if(local->unk4){
func_8025A6EC(COMUSIC_30_5TH_JINJO_COLLECTED, 28000);
coMusicPlayer_playMusic(COMUSIC_30_5TH_JINJO_COLLECTED, 28000);
}else{
func_8025A6EC(COMUSIC_A_JINJO_COLLECTED, 28000);
coMusicPlayer_playMusic(COMUSIC_A_JINJO_COLLECTED, 28000);
}
}//L802CE114
break;
@@ -206,8 +206,8 @@ void chJinjo_update(Actor * this){
if(sp50 || anctrl_getAnimTimer(this->anctrl) < 0.8){
for(i = 0; i < 4; i++){
if(randf() < 0.3){
func_8033E73C(this->marker, i + 5, func_80329904);
func_8033E3F0(8, this->marker->unk14_21);
commonParticle_add(this->marker, i + 5, func_80329904);
commonParticle_new(8, this->marker->unk14_21);
} //L802CE2C4
}
}//L802CE2D0
@@ -222,7 +222,7 @@ void chJinjo_update(Actor * this){
func_802F9EC4(local->unkC, sp30, 500, 2000);
func_802F9F80(local->unkC, 0.0f, 9e+09, 0.0f);
func_802FA0B0(local->unkC, 0);
func_8025A6EC(COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF);
coMusicPlayer_playMusic(COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF);
func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER);
func_8030E9C4(SFX_C7_SHWOOP, 0.8f, 0x7FFF, sp30, 300.0f, 2000.0f);
}//L802CE3C4
@@ -279,14 +279,14 @@ void chJinjo_update(Actor * this){
subaddie_set_state_with_direction(this, 4, 0.0f, -1);
actor_playAnimationOnce(this);
}//L802CE630
if(!func_803114B0()){
if(!gcdialog_hasCurrentTextId()){
switch(chJinjoAnimations[this->state].index){
case ASSET_31_ANIM_JINJO_JUMP:
if(actor_animationIsAt(this, 0.6f)){
if(local->unk8){
func_8030E988(SFX_8_BANJO_LANDING_04, 1.8f, 18000, sp30, 120.0f, 1200.0f);
}else{
FUNC_8030E8B4(SFX_8_BANJO_LANDING_04, 1.8f, 18000, sp30, 120, 1200);
sfx_playFadeShorthandDefault(SFX_8_BANJO_LANDING_04, 1.8f, 18000, sp30, 120, 1200);
}
}
break;
@@ -295,7 +295,7 @@ void chJinjo_update(Actor * this){
if(local->unk8){
func_8030E988(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120.0f, 1200.0f);
}else{
FUNC_8030E8B4(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120, 1200);
sfx_playFadeShorthandDefault(SFX_17_JINJO_WHISTLE, 1.0f, 22000, sp30, 120, 1200);
}
}
break;
@@ -304,7 +304,7 @@ void chJinjo_update(Actor * this){
if(local->unk8){
func_8030E988(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120.0f, 1200.0f);
}else{
FUNC_8030E8B4(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120, 1200);
sfx_playFadeShorthandDefault(SFX_27_JINJO_HI, 1.0f, 22000, sp30, 120, 1200);
}
}
break;

View File

@@ -77,19 +77,19 @@ enum asset_e chmole_learnedAllLevelAbilitiesDialog(void){
int learned_all_moves = chmole_learnedAllLevelAbilities(level_id);
switch(level_id){
case LEVEL_1_MUMBOS_MOUNTAIN:
return learned_all_moves ? ASSET_B4E_DIALOG_BOTTLES_ALL_MM_MOVES_LEARNED : ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED;
return learned_all_moves ? ASSET_B4E_DIALOG_BOTTLES_ALL_MM_MOVES_LEARNED : ASSET_D38_DIALOG_EMPTY;
case LEVEL_2_TREASURE_TROVE_COVE:
return learned_all_moves ? ASSET_A27_DIALOG_BOTTLES_ALL_TTC_MOVES_LEARNED : ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED;
return learned_all_moves ? ASSET_A27_DIALOG_BOTTLES_ALL_TTC_MOVES_LEARNED : ASSET_D38_DIALOG_EMPTY;
case LEVEL_3_CLANKERS_CAVERN:
return learned_all_moves ? ASSET_D37_DIALOG_BOTTLES_ALL_CC_MOVES_LEARNED : ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED;
return learned_all_moves ? ASSET_D37_DIALOG_BOTTLES_ALL_CC_MOVES_LEARNED : ASSET_D38_DIALOG_EMPTY;
case LEVEL_4_BUBBLEGLOOP_SWAMP:
return learned_all_moves ? ASSET_C8A_DIALOG_BOTTLES_ALL_BGS_MOVES_LEARNED : ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED;
return learned_all_moves ? ASSET_C8A_DIALOG_BOTTLES_ALL_BGS_MOVES_LEARNED : ASSET_D38_DIALOG_EMPTY;
case LEVEL_5_FREEZEEZY_PEAK:
return learned_all_moves ? ASSET_C2A_DIALOG_BOTTLES_ALL_FP_GV_MOVES_LEARNED : ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED;
return learned_all_moves ? ASSET_C2A_DIALOG_BOTTLES_ALL_FP_GV_MOVES_LEARNED : ASSET_D38_DIALOG_EMPTY;
case LEVEL_7_GOBIS_VALLEY:
return learned_all_moves ? ASSET_C2A_DIALOG_BOTTLES_ALL_FP_GV_MOVES_LEARNED : ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED;
return learned_all_moves ? ASSET_C2A_DIALOG_BOTTLES_ALL_FP_GV_MOVES_LEARNED : ASSET_D38_DIALOG_EMPTY;
default:
return ASSET_D38_DIALOG_BOTTLES_ALL_MOVES_LEARNED;
return ASSET_D38_DIALOG_EMPTY;
}
}
@@ -122,15 +122,15 @@ Actor *func_802D94B4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
void func_802D9530(Actor *this){
Actor *other = subaddie_getLinkedActor(this);
if(this->unk100 && other){
if(this->unk100->id == 0xB8)
if(this->partnerActor && other){
if(this->partnerActor->id == 0xB8)
subaddie_set_state_with_direction(other, 3, 0.0001f, 1);
}
subaddie_set_state_with_direction(this, 4, 0.0001f, 1);
actor_playAnimationOnce(this);
this->unk44_31 = sfxsource_createSfxsourceAndReturnIndex();
sfxsource_setSfxId(this->unk44_31, SFX_3F9_UNKNOWN);
func_8030DD14(this->unk44_31, 2);
sfxSource_setunk43_7ByIndex(this->unk44_31, 2);
sfxsource_playSfxAtVolume(this->unk44_31, 1.4f);
sfxsource_setSampleRate(this->unk44_31, 26000);
func_8028F918(0);
@@ -145,7 +145,7 @@ void func_802D9600(Actor * this){
// func_802D9658
void chmole_setStaticCamera(Actor *this){
// Sets the camera to a static camera
timed_setStaticCameraToNode(0.0f, moleTable[this->unkF4_8-9].camera_node);
timed_setStaticCameraToNode(0.0f, moleTable[this->actorTypeSpecificField-9].camera_node);
}
// func_802D9698
@@ -154,13 +154,13 @@ void chmole_healthRefill(ActorMarker *marker, enum asset_e arg1, s32 arg2){
// Also releases the camera
Actor *actor = marker_getActor(marker);
if( arg1 == moleTable[actor->unkF4_8-9].teach_text_id
if( arg1 == moleTable[actor->actorTypeSpecificField-9].teach_text_id
&& item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL)
){
gcdialog_showText(ASSET_D39_DIALOG_BOTTLES_REFILL_HEALTH, 7, 0, actor->marker, chmole_healthRefill, chmole_additionalAbilityLearnActions);
gcdialog_showDialog(ASSET_D39_DIALOG_BOTTLES_REFILL_HEALTH, 7, 0, actor->marker, chmole_healthRefill, chmole_additionalAbilityLearnActions);
}//L802D9738
else if(arg1 == moleTable[actor->unkF4_8-9].teach_text_id || arg1 == ASSET_D39_DIALOG_BOTTLES_REFILL_HEALTH){
gcdialog_showText(chmole_learnedAllGameAbilities()? 0xa87 : chmole_learnedAllLevelAbilitiesDialog(), 7, 0, actor->marker, chmole_healthRefill, NULL);
else if(arg1 == moleTable[actor->actorTypeSpecificField-9].teach_text_id || arg1 == ASSET_D39_DIALOG_BOTTLES_REFILL_HEALTH){
gcdialog_showDialog(chmole_learnedAllGameAbilities()? 0xa87 : chmole_learnedAllLevelAbilitiesDialog(), 7, 0, actor->marker, chmole_healthRefill, NULL);
}
else{//L802D97BC
if(actor->has_met_before){
@@ -222,33 +222,33 @@ int chmole_learnAbility(Actor *this){
s32 sp2C;
s32 sp28 = 0xe;
// Known Ability: Refresher Dialog
if(ability_isUnlocked(moleTable[this->unkF4_8-9].ability)){
if(ability_isUnlocked(moleTable[this->actorTypeSpecificField-9].ability)){
sp28 = 0xf;
sp2C = moleTable[this->unkF4_8-9].refresher_text_id;
sp2C = moleTable[this->actorTypeSpecificField-9].refresher_text_id;
}//L802D99EC
// New Ability: Learn Dialog & Misc Actions
else{
func_80347A14(0);
this->has_met_before = TRUE;
sp2C = moleTable[this->unkF4_8-9].teach_text_id;
ability_unlock(moleTable[this->unkF4_8-9].ability);
switch(moleTable[this->unkF4_8-9].ability){
sp2C = moleTable[this->actorTypeSpecificField-9].teach_text_id;
ability_unlock(moleTable[this->actorTypeSpecificField-9].ability);
switch(moleTable[this->actorTypeSpecificField-9].ability){
case ABILITY_9_FLIGHT:
case ABILITY_D_SHOCK_JUMP:
func_8030E6A4(SFX_113_PAD_APPEARS, 0.9f, 32000);
gcsfx_playWithPitch(SFX_113_PAD_APPEARS, 0.9f, 32000);
break;
case ABILITY_13_1ST_NOTEDOOR:
func_802FAD64(ITEM_C_NOTE);
break;
}
}//L802D9A9C
gcdialog_showText(sp2C, sp28, this->position, this->marker, chmole_healthRefill, chmole_additionalAbilityLearnActions);
gcdialog_showDialog(sp2C, sp28, this->position, this->marker, chmole_healthRefill, chmole_additionalAbilityLearnActions);
return TRUE;
}
void func_802D9ADC(Actor *this){
Actor *other = subaddie_getLinkedActor(this);
if(this->unk100 && other && this->unk100->id == 0xB8){
if(this->partnerActor && other && this->partnerActor->id == 0xB8){
subaddie_set_state_with_direction(other, 2, 0.0001f, 1);
}
this->marker->propPtr->unk8_3 = 1;
@@ -257,7 +257,7 @@ void func_802D9ADC(Actor *this){
actor_playAnimationOnce(this);
this->unk44_31 = sfxsource_createSfxsourceAndReturnIndex();
sfxsource_setSfxId(this->unk44_31, SFX_3F9_UNKNOWN);
func_8030DD14(this->unk44_31, 2);
sfxSource_setunk43_7ByIndex(this->unk44_31, 2);
sfxsource_playSfxAtVolume(this->unk44_31, 1.4f);
sfxsource_setSampleRate(this->unk44_31, 26000);
chmole_setStaticCamera(this);
@@ -287,7 +287,7 @@ void chmole_spawnMolehill(ActorMarker *marker){
Actor *other = spawn_child_actor(ACTOR_12C_MOLEHILL, &actor);
f32 pad[1];
actor->unk100 = other->marker;
actor->partnerActor = other->marker;
if(marker);
}
@@ -302,11 +302,11 @@ void func_802D9C90(Actor *this){
void chmole_startingDialog(Actor *this){
// If the player knows the ability, use refresher function
// Otherwise, set player's position and spawn mole
if(ability_isUnlocked(moleTable[this->unkF4_8 - 9].ability)){
if(ability_isUnlocked(moleTable[this->actorTypeSpecificField - 9].ability)){
chmole_Refresher(this);
}
else{
if(func_80329530(this, 150)){
if(subaddie_playerIsWithinSphereAndActive(this, 150)){
if(this->unk38_0 == 0)
func_8028F45C(9, this->position);
else
@@ -328,7 +328,7 @@ void chmole_update(Actor *this){
// Checks the actor's selector value is between 0x8 and 0x13
// Anything lower is a Spiral Mountain ability, and should use a different actor id
if(this->unkF4_8 < 8 || this->unkF4_8 >= 0x13)
if(this->actorTypeSpecificField < 8 || this->actorTypeSpecificField >= 0x13)
return;
if(!this->volatile_initialized){
@@ -336,10 +336,10 @@ void chmole_update(Actor *this){
marker_setFreeMethod(this->marker, func_802D9C90);
if(this->initialized){
other = actorArray_findClosestActorFromActorId(this->position, ACTOR_12C_MOLEHILL, -1, &sp4C);
this->unk100 = (other) ? other->marker : NULL;
if(this->unk100){
this->partnerActor = (other) ? other->marker : NULL;
if(this->partnerActor){
other = subaddie_getLinkedActor(this);
if(other && this->unk100->id == 0xB8){
if(other && this->partnerActor->id == 0xB8){
subaddie_set_state(other, 1);
}
}
@@ -362,7 +362,7 @@ void chmole_update(Actor *this){
this->marker->propPtr->unk8_3 = FALSE;
this->marker->collidable = FALSE;
this->initialized = TRUE;
if(this->unkF4_8 == 0x12){
if(this->actorTypeSpecificField == 0x12){
node_prop = nodeprop_findByActorIdAndActorPosition(0x349, this);
if(node_prop == NULL){
this->velocity[0] = this->position[0];
@@ -382,8 +382,8 @@ void chmole_update(Actor *this){
this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 4.0f);
if(func_8028F20C() && func_8028F0D4() && !func_8028EC04()){
if( this->unkF4_8 == 0x12
&& !ability_isUnlocked(moleTable[this->unkF4_8-9].ability)
if( this->actorTypeSpecificField == 0x12
&& !ability_isUnlocked(moleTable[this->actorTypeSpecificField-9].ability)
&& (player_movementGroup() == BSGROUP_0_NONE || player_movementGroup() == BSGROUP_8_TROT)
){
player_getPosition(sp34);
@@ -393,7 +393,7 @@ void chmole_update(Actor *this){
}
else{//L802DA054
if( !player_movementGroup()
&& func_80329530(this, 0xFA)
&& subaddie_playerIsWithinSphereAndActive(this, 0xFA)
&& func_8028EFC8()
&& sp50[FACE_BUTTON(BUTTON_B)] == 1
){
@@ -409,7 +409,7 @@ void chmole_update(Actor *this){
if( 0.0 < anctrl_getAnimTimer(this->anctrl)
&& anctrl_getAnimTimer(this->anctrl) < 0.16
){
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
}//L802DA128
if(actor_animationIsAt(this, 0.9999f)){
chmole_setFacingDirection(this);
@@ -417,13 +417,13 @@ void chmole_update(Actor *this){
this->unk44_31 = 0;
}
else if(actor_animationIsAt(this, 0.14f)){//L802DA154
FUNC_8030E8B4(SFX_C6_SHAKING_MOUTH, 1.2f, 24000, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_C6_SHAKING_MOUTH, 1.2f, 24000, this->position, 1250, 2500);
}
else if(actor_animationIsAt(this, 0.4f)){//L802DA188
FUNC_8030E8B4(SFX_2C_PULLING_NOISE, 1.2f, 24000, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_2C_PULLING_NOISE, 1.2f, 24000, this->position, 1250, 2500);
}
else if(actor_animationIsAt(this, 0.75f)){//L802DA1BC
FUNC_8030E8B4(SFX_C5_TWINKLY_POP, 1.0f, 32000, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_C5_TWINKLY_POP, 1.0f, 32000, this->position, 1250, 2500);
}
else if(actor_animationIsAt(this, 0.35f)){//L802DA1EC
chmole_learnAbility(this);
@@ -462,7 +462,7 @@ void chmole_update(Actor *this){
if( 0.35 < anctrl_getAnimTimer(this->anctrl)
&& anctrl_getAnimTimer(this->anctrl) < 0.9
){
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
}
else if(actor_animationIsAt(this, 0.9999f)){//L802DA45C
func_802D9600(this);

View File

@@ -2,16 +2,25 @@
#include "functions.h"
#include "variables.h"
void func_802C9C30(Actor* this);
void musicNote_update(Actor* this);
/* .data */
ActorInfo D_80366C50 = {
MARKER_5F_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, ASSET_6D6_MODEL_MUSIC_NOTE, 0, NULL,
func_802C9C30, actor_update_func_80326224, func_80325934,
0, 0, 0.6f, 0
ActorInfo sumusicNote = {
MARKER_5F_MUSIC_NOTE,
ACTOR_51_MUSIC_NOTE,
ASSET_6D6_MODEL_MUSIC_NOTE,
0,
NULL,
musicNote_update,
actor_update_func_80326224,
func_80325934,
0,
0,
0.6f,
0
};
/* .code */
void func_802C9C30(Actor* this){
void musicNote_update(Actor* this){
this->scale = 0.42857143f;
}

View File

@@ -4,20 +4,20 @@
#include "variables.h"
extern f32 func_8028EF88(void);
void func_802D8730(Actor *this);
void chPiranhaWaterParticles_update(Actor *this);
/* .data */
ActorInfo D_80367C60 = {
0x15E, 0x188, 0x0,
ActorInfo chPiranhaWaterParticles = {
0x15E, ACTOR_188_PIRANHA_WATER_PARTICLES, 0x0,
0, NULL,
func_802D8730, actor_update_func_80326224, func_80325340,
chPiranhaWaterParticles_update, actor_update_func_80326224, func_80325340,
0, 0, 0.0f, 0
};
s32 D_80367C84[3] = {255, 100, 100};
s32 PIRANHA_PARTICLES_SVG[3] = { 255, 100, 100 };
/* .code */
void func_802D8730(Actor *this) {
void chPiranhaWaterParticles_update(Actor *this) {
f32 dt;
f32 sp38;
ParticleEmitter *pCtrl;
@@ -47,7 +47,7 @@ void func_802D8730(Actor *this) {
pCtrl = func_802F4094(this->position, 40.0f);
particleEmitter_setStartingScaleRange(pCtrl, 0.05f, 0.06f);
particleEmitter_setAccelerationRange(pCtrl, 0.0f, -3400.0f, 0.0f, 0.0f, -3400.0f, 0.0f);
particleEmitter_setRGB(pCtrl, D_80367C84);
particleEmitter_setRGB(pCtrl, PIRANHA_PARTICLES_SVG);
particleEmitter_setParticleVelocityRange(pCtrl, -180.0f, 200.0f, -180.0f, 180.0f, 400.0f, 180.0f);
particleEmitter_emitN(pCtrl, 9);
}

View File

@@ -34,7 +34,7 @@ void chShrapnel_func_802D0A38(Actor *this){
this->unk38_31--;
}
else{
if(func_80329530(this, 600) && func_803292E0(this)){
if(subaddie_playerIsWithinSphereAndActive(this, 600) && func_803292E0(this)){
this->actor_specific_1_f = 0.0f;
subaddie_set_state_with_direction(this, 2, 0.0f, 1);
}
@@ -50,7 +50,7 @@ void chShrapnel_func_802D0AB8(Actor *this) {
void chShrapnel_spawnExplodeActor(s32 arg0){
Actor *this = reinterpret_cast(Actor *, arg0);
actor_spawnWithYaw_f32(0xF3, this->unk1C, 0);
actor_spawnWithYaw_f32(ACTOR_F3_EXPLOSION_RIPPLE, this->unk1C, 0);
}
void chShrapnel_emitExplosion(Actor *this) {
@@ -111,7 +111,7 @@ void chShrapnel_explode(ActorMarker *marker, ActorMarker *other_marker) {
Actor *this;
this = marker_getActor(marker);
FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32736, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_1B_EXPLOSION_1, 1.0f, 32736, this->position, 1250, 2500);
__spawnQueue_add_1((GenFunction_1)chShrapnel_spawnExplodeActor, reinterpret_cast(s32, this));
chShrapnel_emitExplosion(this);
chShrapnel_emitSmoke(this);
@@ -127,10 +127,10 @@ void chShrapnel_func_802D0FC8(Actor *this) {
*(s32 *)(&this->local) = NOT(*(s32 *)(&this->local));
this->unk4C = 0.0f;
if (*(s32 *)(&this->local)) {
FUNC_8030E8B4(SFX_2A_CLOCK_TIC_1, 0.5f, 12000, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_2A_CLOCK_TIC_1, 0.5f, 12000, this->position, 1250, 2500);
}
else{
FUNC_8030E8B4(SFX_51_CLOCK_TIC_2, 0.5f, 12000, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_51_CLOCK_TIC_2, 0.5f, 12000, this->position, 1250, 2500);
}
}
}
@@ -169,7 +169,7 @@ void chshrapnel_update(Actor *this) {
if (250.0 > ABS(player_position[1] - this->unk1C[1])) {
subaddie_set_state(this, 3);
actor_loopAnimation(this);
FUNC_8030E8B4(SFX_C4_TWINKLY_MUNCHER_GRR, 0.6f, 32750, this->position, 1250, 2500);
sfx_playFadeShorthandDefault(SFX_C4_TWINKLY_MUNCHER_GRR, 0.6f, 32750, this->position, 1250, 2500);
this->actor_specific_1_f = 4.0f;
}
}

View File

@@ -80,7 +80,7 @@ static void __chsnacker_start_dialog(Actor *this) {
text_index = mapSpecificFlags_getN(8, 3);
if( !this->has_met_before ) {
if(text_index < 4) {
if(gcdialog_showText(0xA1B + text_index, 0, NULL, NULL, NULL, NULL)){
if(gcdialog_showDialog(0xA1B + text_index, 0, NULL, NULL, NULL, NULL)){
text_index++;
mapSpecificFlags_setN(8, text_index, 3);
this->has_met_before = TRUE;
@@ -129,7 +129,7 @@ static void __chsnacker_die(ActorMarker *marker, ActorMarker *other){
this = marker_getActor(marker);
actor_collisionOff(this);
FUNC_8030E8B4(SFX_179_GRUNTY_DAMAGE, 0.6f, 32750, this->position, 300, 3000);
sfx_playFadeShorthandDefault(SFX_179_GRUNTY_DAMAGE, 0.6f, 32750, this->position, 300, 3000);
subaddie_set_state_with_direction(this, CH_SNACKER_STATE_9_DEAD, 0.0f, 1);
actor_playAnimationOnce(this);
}
@@ -156,7 +156,7 @@ static void __chsnacker_ow(ActorMarker *marker, ActorMarker *other){
this = marker_getActor(marker);
if(level_get() == LEVEL_2_TREASURE_TROVE_COVE && !player_isDead()){
gcdialog_showText(0xA29, 0, NULL, NULL, NULL, NULL);
gcdialog_showDialog(0xA29, 0, NULL, NULL, NULL, NULL);
}//L802E10A4
if(this->state == 4){
@@ -250,7 +250,7 @@ void chsnacker_update(Actor *this) {
case CH_SNACKER_STATE_5_EATING: //802E14F8
if (actor_animationIsAt(this, 0.25f)) {
FUNC_8030E8B4(SFX_6D_CROC_BITE, 1.0f, 28000, this->position, 300, 3000);
sfx_playFadeShorthandDefault(SFX_6D_CROC_BITE, 1.0f, 28000, this->position, 300, 3000);
}
if (actor_animationIsAt(this, 0.99f)) {
func_802E0CD0(this);
@@ -374,7 +374,7 @@ void chSnacker_spawn(void) {
if (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) == 0) {
func_8032BB88(snacker, 5000, 750);
core1_ce60_incOrDecCounter(FALSE);
func_8025A6EC(COMUSIC_34_SNACKER_DANGER, 0);
coMusicPlayer_playMusic(COMUSIC_34_SNACKER_DANGER, 0);
comusic_8025AB44(COMUSIC_34_SNACKER_DANGER, 0x7FFF, 750);
core1_ce60_incOrDecCounter(TRUE);
}

View File

@@ -32,8 +32,8 @@ Actor *chSnowball_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
this = actor_draw(marker, gfx, mtx, vtx);
if (marker->unk14_21 && this->state != 2) {
func_8033E73C(marker, 5, func_80329904);
func_8033E3F0(0xD, marker->unk14_21);
commonParticle_add(marker, 5, func_80329904);
commonParticle_new(0xD, marker->unk14_21);
}
return this;
}
@@ -97,8 +97,8 @@ void chSnowball_update(Actor *this) {
s32 phi_a1;
s32 i;
if(this->unk38_31 == 0 && func_80329530(this, 500)){
FUNC_8030E8B4(SFX_C_TAKING_FLIGHT_LIFTOFF, 0.85f, 32000, this->position, 1250, 2500);
if(this->unk38_31 == 0 && subaddie_playerIsWithinSphereAndActive(this, 500)){
sfx_playFadeShorthandDefault(SFX_C_TAKING_FLIGHT_LIFTOFF, 0.85f, 32000, this->position, 1250, 2500);
this->unk38_31 = 1;
}

View File

@@ -2,7 +2,7 @@
#include "functions.h"
#include "variables.h"
extern void func_802EFA20(ParticleEmitter *, f32, f32);
extern void particleEmitter_func_802EFA20(ParticleEmitter *, f32, f32);
extern void subaddie_set_state_with_direction(Actor *, s32, f32, s32);
extern void func_80328FB0(Actor *, f32);
extern void func_803300C0(ActorMarker *, void *);
@@ -124,7 +124,7 @@ void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){
particleEmitter_setAngularVelocityRange(particleSpawner, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_func_802EF9F8(particleSpawner, 0.01f);
particleEmitter_func_802EFA18(particleSpawner, 3);
func_802EFA20(particleSpawner, 1.0f, 1.3f);
particleEmitter_func_802EFA20(particleSpawner, 1.0f, 1.3f);
particleEmitter_setSfx(particleSpawner, SFX_2F_ORANGE_SPLAT, 16000);
particleEmitter_setScaleAndLifetimeRanges(particleSpawner, &D_80368694);
particleEmitter_emitN(particleSpawner, count);
@@ -158,12 +158,12 @@ bool __chSnowman_isYawNearYawTarget(Actor *this, s32 max_angle_degree){
int __chSnowman_isPlayerInAttackRange(Actor *this, s32 min_distance, s32 max_distance){
f32 player_position[3];
if(this->unkF4_8 == 0x33){
if(this->actorTypeSpecificField == 0x33){
player_getPosition(player_position);
if( (this->position[1] + 500.0f < player_position[1]) || (player_position[1] < this->position[1] - 500.0f))
return 0;
}//L802E1F28
if(func_80329530(this, max_distance) && !func_80329530(this, min_distance)){
if(subaddie_playerIsWithinSphereAndActive(this, max_distance) && !subaddie_playerIsWithinSphereAndActive(this, min_distance)){
return 1;
}
return 0;
@@ -181,9 +181,9 @@ int __chSnowman_func_802E1F70(ActorMarker *marker, s32 arg1){
void __chSnowman_deathCallback(ActorMarker *marker, ActorMarker *other_marker){
Actor *actor = marker_getActor(marker);
FUNC_8030E8B4(SFX_15_METALLIC_HIT_2, 1.0f, 30000, actor->position, 1500, 4500);
FUNC_8030E8B4(SFX_3EA_UNKNOWN, 1.0f, 30000, actor->position, 1500, 4500);
FUNC_8030E8B4(SFX_2F_ORANGE_SPLAT, 1.0f, 30000, actor->position, 1500, 4500);
sfx_playFadeShorthandDefault(SFX_15_METALLIC_HIT_2, 1.0f, 30000, actor->position, 1500, 4500);
sfx_playFadeShorthandDefault(SFX_3EA_BANJO_GUH_HUH, 1.0f, 30000, actor->position, 1500, 4500);
sfx_playFadeShorthandDefault(SFX_2F_ORANGE_SPLAT, 1.0f, 30000, actor->position, 1500, 4500);
__spawnQueue_add_1((GenFunction_1)__chSnowman_spawnHat, (s32)actor->marker);
if(map_get() == MAP_27_FP_FREEZEEZY_PEAK)
@@ -250,7 +250,7 @@ void chSnowman_update(Actor *this){
local->unk9 = FALSE;
local->unkA = 1;
__chSnowman_setYawTarget(this, 6.0f);
if(!func_80329530(this, 3150)){
if(!subaddie_playerIsWithinSphereAndActive(this, 3150)){
__chSnowman_enterDeath(this);
}
else if(
@@ -278,7 +278,7 @@ void chSnowman_update(Actor *this){
}
break;
case CHSNOWMAN_STATE_2_ATTACK://L802E23E8
if(!func_80329530(this, 3150)){
if(!subaddie_playerIsWithinSphereAndActive(this, 3150)){
__chSnowman_enterDeath(this);
}//L802E240C
else if(
@@ -297,7 +297,7 @@ void chSnowman_update(Actor *this){
|| actor_animationIsAt(this, 0.28f)
|| actor_animationIsAt(this, 0.37f)
){
FUNC_8030E8B4(SFX_A7_WOODEN_SWOSH, 1.3f, 18000, this->position, 800, 3050);
sfx_playFadeShorthandDefault(SFX_A7_WOODEN_SWOSH, 1.3f, 18000, this->position, 800, 3050);
}//L802E24FC
if(actor_animationIsAt(this, 0.15f)){
func_8030E878(SFX_3F5_UNKNOWN, randf2(1.35f, 1.5f),32000, this->position, 800.0f, 3050.0f);
@@ -318,7 +318,7 @@ void chSnowman_update(Actor *this){
}
break;
case CHSNOWMAN_STATE_3_DIE://L802E2604
if(func_80329530(this, 3150)){
if(subaddie_playerIsWithinSphereAndActive(this, 3150)){
__chSnowman_enterIdle(this);
}
break;

View File

@@ -28,7 +28,7 @@ void chSnowmanHat_update(Actor *this){
if(this->position_y <= mapModel_getFloorY(this->position)){
subaddie_set_state(this, 2);
FUNC_8030E8B4(SFX_1D_HITTING_AN_ENEMY_1, 1.0f, 32750, this->position, 2250, 4500);
sfx_playFadeShorthandDefault(SFX_1D_HITTING_AN_ENEMY_1, 1.0f, 32750, this->position, 2250, 4500);
}
break;

View File

@@ -58,7 +58,7 @@ void func_802D05A0(Actor *this, s32 next_state){
}
local->sfxsourceIdx = sfxsource_createSfxsourceAndReturnIndex();
sfxsource_setSfxId(local->sfxsourceIdx, D_80367340[(s32)this->yaw].unk0);
func_8030DD14(local->sfxsourceIdx, 3);
sfxSource_setunk43_7ByIndex(local->sfxsourceIdx, 3);
func_8030DFF0(local->sfxsourceIdx, 1);
sfxsource_set_position(local->sfxsourceIdx, this->position);
sfxsource_set_fade_distances(local->sfxsourceIdx, D_80367340[(s32)this->yaw].unk4*this->scale, D_80367340[(s32)this->yaw].unk6*this->scale);
@@ -66,7 +66,7 @@ void func_802D05A0(Actor *this, s32 next_state){
func_802D0500(this);
if(-1.0f != D_80367340[(s32)this->yaw].unkC)
sfxsource_playSfxAtVolume(local->sfxsourceIdx, D_80367340[(s32)this->yaw].unkC);
func_8030E2C4(local->sfxsourceIdx);
sfxSource_func_8030E2C4(local->sfxsourceIdx);
}//L802D0780
this->state = next_state;
}

View File

@@ -63,10 +63,10 @@ void __chTermite_updateWalkSFX(Actor *this) {
, 8000.0f, 1000.0f
);
if (actor_animationIsAt(this, 0.4f)) {
func_8030E6A4(SFX_3D_TICKER_WALKING, 0.85f, (s32) sp20);
gcsfx_playWithPitch(SFX_3D_TICKER_WALKING, 0.85f, (s32) sp20);
}
if (actor_animationIsAt(this, 0.9f)) {
func_8030E6A4(SFX_3D_TICKER_WALKING, 1.15f, (s32) sp20);
gcsfx_playWithPitch(SFX_3D_TICKER_WALKING, 1.15f, (s32) sp20);
}
}
@@ -75,7 +75,7 @@ void __chTermite_setupParticleEmitter(ParticleEmitter *pCtrl, f32 position[3]){
particleEmitter_setDrawMode(pCtrl, 2);
particleEmitter_func_802EF9F8(pCtrl, 0.7f);
particleEmitter_func_802EFA18(pCtrl, 5);
func_802EFA20(pCtrl, 0.8f, 1.0f);
particleEmitter_func_802EFA20(pCtrl, 0.8f, 1.0f);
particleEmitter_setSfx(pCtrl, SFX_1F_HITTING_AN_ENEMY_3, 10000);
particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f);
particleEmitter_setParticleLifeTimeRange(pCtrl, 3.5f, 3.5f);
@@ -166,29 +166,29 @@ void chTermite_update(Actor *this) {
}
if( map_get() == MAP_C_MM_TICKERS_TOWER
&& !mapSpecificFlags_get(0)
&& func_80329530(this, 700)
&& !func_80329530(this, 150)
&& subaddie_playerIsWithinSphereAndActive(this, 700)
&& !subaddie_playerIsWithinSphereAndActive(this, 150)
&& player_movementGroup() == BSGROUP_0_NONE
&& player_getTransformation() == TRANSFORM_1_BANJO
) {
gcdialog_showText(ASSET_B43_DIALOG_TERMITE_MEET_AS_BEAR, 7, this->position, this->marker, __chTermite_testCallback, NULL);
gcdialog_showDialog(ASSET_B43_DIALOG_TERMITE_MEET_AS_BEAR, 7, this->position, this->marker, __chTermite_testCallback, NULL);
mapSpecificFlags_set(0, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_D_MM_UNKNOWN, TRUE);
this->has_met_before = TRUE;
}
if( func_80329530(this, 300)
&& !func_80329530(this, 150)
if( subaddie_playerIsWithinSphereAndActive(this, 300)
&& !subaddie_playerIsWithinSphereAndActive(this, 150)
&& player_movementGroup() == BSGROUP_0_NONE
&& player_getTransformation() == TRANSFORM_2_TERMITE
) {
if (!levelSpecificFlags_get(LEVEL_FLAG_B_MM_UNKNOWN)) {
if (gcdialog_showText(ASSET_B41_DIALOG_TERMITE_COOL_SHORTS, 0, NULL, NULL, NULL, NULL)) {
if (gcdialog_showDialog(ASSET_B41_DIALOG_TERMITE_COOL_SHORTS, 0, NULL, NULL, NULL, NULL)) {
levelSpecificFlags_set(LEVEL_FLAG_B_MM_UNKNOWN, TRUE);
this->unk138_23 = TRUE;
}
}
else if (!levelSpecificFlags_get(LEVEL_FLAG_C_MM_UNKNOWN) && !this->unk138_23 && (gcdialog_showText(ASSET_B42_DIALOG_TERMITE_COOL_BACKPACK, 0, NULL, NULL, NULL, NULL))) {
else if (!levelSpecificFlags_get(LEVEL_FLAG_C_MM_UNKNOWN) && !this->unk138_23 && (gcdialog_showDialog(ASSET_B42_DIALOG_TERMITE_COOL_BACKPACK, 0, NULL, NULL, NULL, NULL))) {
levelSpecificFlags_set(LEVEL_FLAG_C_MM_UNKNOWN, TRUE);
}
}

View File

@@ -45,7 +45,7 @@ void _chtrainers_802CA378(Actor *this, bool arg1){
if(arg1)
FUNC_8030E624(SFX_8_BANJO_LANDING_04, 1.6f, 7000);
else
FUNC_8030E8B4(SFX_8_BANJO_LANDING_04, 1.6f, 7000, this->position, 600, 1500);
sfx_playFadeShorthandDefault(SFX_8_BANJO_LANDING_04, 1.6f, 7000, this->position, 600, 1500);
}
func_802589E4(sp24, this->velocity[1], 40.0f);
@@ -58,7 +58,7 @@ void _chtrainers_802CA378(Actor *this, bool arg1){
void chtrainers_update(Actor *this){
s32 sp2C = levelSpecificFlags_get(LEVEL_FLAG_1A_UNKNOWN);
if (sp2C && this->unkF4_8 != 1) {
if (sp2C && this->actorTypeSpecificField != 1) {
return;
}
@@ -78,11 +78,11 @@ void chtrainers_update(Actor *this){
switch(this->state){
case 0://L802CA5A8
if(func_803296D8(this, 2000) || sp2C){
if( func_80329530(this, 0xfa)
if( subaddie_playerIsWithinSphereAndActive(this, 0xfa)
&& !volatileFlag_get(VOLATILE_FLAG_F_HAS_MEET_TURBO_SHOES)
&& player_getTransformation() == TRANSFORM_1_BANJO
){
if(gcdialog_showText(0xda4, 0, NULL, NULL, NULL, NULL)){
if(gcdialog_showDialog(0xda4, 0, NULL, NULL, NULL, NULL)){
volatileFlag_set(VOLATILE_FLAG_F_HAS_MEET_TURBO_SHOES, TRUE);
}
}//L802CA620

View File

@@ -35,7 +35,7 @@ Actor *chwadingboots_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
void chwadingboots_update(Actor *this){
s32 sp2C = levelSpecificFlags_get(LEVEL_FLAG_1A_UNKNOWN);
if (sp2C && this->unkF4_8 != 1) {
if (sp2C && this->actorTypeSpecificField != 1) {
return;
}
@@ -62,15 +62,15 @@ void chwadingboots_update(Actor *this){
FUNC_8030E624(SFX_3F2_UNKNOWN, 1.4f, 23000);
}
else{
FUNC_8030E8B4(SFX_3F2_UNKNOWN, 1.4f, 23000, this->position, 600, 1500);
sfx_playFadeShorthandDefault(SFX_3F2_UNKNOWN, 1.4f, 23000, this->position, 600, 1500);
}
}
if(volatileFlag_get(VOLATILE_FLAG_10_HAS_MEET_WADING_BOOTS)) break;
if(!func_80329530(this, 250)) break;
if(!subaddie_playerIsWithinSphereAndActive(this, 250)) break;
if(player_getTransformation() != TRANSFORM_1_BANJO) break;
if(gcdialog_showText(ASSET_DA5_DIALOG_WADINGBOOTS_MEET, 0, NULL, NULL, NULL, NULL)){
if(gcdialog_showDialog(ASSET_DA5_DIALOG_WADINGBOOTS_MEET, 0, NULL, NULL, NULL, NULL)){
volatileFlag_set(VOLATILE_FLAG_10_HAS_MEET_WADING_BOOTS, TRUE);
}

View File

@@ -24,7 +24,7 @@ void __chwhipcrack_spawnPieces(Actor *this, enum asset_e model_id, s32 cnt){
);
particleEmitter_func_802EF9F8(pCtrl, 0.7f);
particleEmitter_func_802EFA18(pCtrl, 3);
func_802EFA20(pCtrl, 0.5f, 1.0f);
particleEmitter_func_802EFA20(pCtrl, 0.5f, 1.0f);
particleEmitter_setSfx(pCtrl, SFX_1F_HITTING_AN_ENEMY_3, 10000);
particleEmitter_setModel(pCtrl, model_id);
particleEmitter_setSpawnPositionRange(pCtrl,
@@ -79,7 +79,7 @@ void __chwhipcrack_setState(Actor *this, s32 next_state){
__chwhipcrack_spawnPieces(this, ASSET_4FF_MODEL_WHIPCRACK_PART_2, 4);
__chwhipcrack_spawnPieces(this, ASSET_500_MODEL_WHIPCRACK_PART_3, 4);
__chwhipcrack_spawnSmoke(this, 6);
FUNC_8030E8B4(SFX_2F_ORANGE_SPLAT, 0.8f, 32200, this->position, 500, 2500);
sfx_playFadeShorthandDefault(SFX_2F_ORANGE_SPLAT, 0.8f, 32200, this->position, 500, 2500);
marker_despawn(this->marker);
}

View File

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

View File

@@ -32,7 +32,7 @@ void func_80298890(void){
if(D_8037C670){
D_8037C670--;
if(D_8037C670 == 0){
func_80297CCC(1.2f);
bsiFrame_startWithValue(1.2f);
D_8037C671 = 0;
}
}

View File

@@ -7,62 +7,69 @@
s32 D_8037D160; //prev_state
s32 D_8037D164; //state
s32 D_8037D168; //next_state
s32 D_8037D16C;
s32 D_8037D170;
s32 currentInterrupt;
s32 interruptResponse;
void bs_clearState(void){
void bs_clearState(void) {
D_8037D160 = 0;
D_8037D164 = 0;
D_8037D168 = 0;
}
void bs_setState(s32 state_id){
void bs_setState(s32 state_id) {
if(state_id == 0)
if (state_id == 0) {
return;
}
D_8037D168 = state_id;
if(bsList_getEndMethod(D_8037D164) != NULL)
if (bsList_getEndMethod(D_8037D164) != NULL) {
bsList_getEndMethod(D_8037D164)();
}
D_8037D160 = D_8037D164;
D_8037D164 = D_8037D168;
D_8037D168 = 0;
if(bsList_getInitMethod(D_8037D164) != NULL)
if (bsList_getInitMethod(D_8037D164) != NULL) {
bsList_getInitMethod(D_8037D164)();
}
}
s32 bs_getPrevState(void){
s32 bs_getPrevState(void) {
return D_8037D160;
}
s32 bs_getState(void){
s32 bs_getState(void) {
return D_8037D164;
}
s32 bs_getNextState(void){
s32 bs_getNextState(void) {
return D_8037D168;
}
void bs_updateState(void){
if(bsList_getUpdateMethod(D_8037D164) != NULL)
void bs_updateState(void) {
if (bsList_getUpdateMethod(D_8037D164) != NULL) {
bsList_getUpdateMethod(D_8037D164)();
}
}
s32 bs_checkInterrupt(enum bs_interrupt_e arg0){
D_8037D16C = arg0;
D_8037D170 = 0;
if(bsList_getInterruptMethod(D_8037D164) != NULL)
s32 bs_checkInterrupt(enum bs_interrupt_e interruptId) {
currentInterrupt = interruptId;
interruptResponse = 0;
if (bsList_getInterruptMethod(D_8037D164) != NULL) {
bsList_getInterruptMethod(D_8037D164)();
return D_8037D170;
}
return interruptResponse;
}
void func_8029A86C(s32 arg0){
D_8037D170 = arg0;
void bs_setInterruptResponse(s32 response) {
interruptResponse = response;
}
enum bs_interrupt_e bs_getInterruptType(void){
return D_8037D16C;
enum bs_interrupt_e bs_getInterruptType(void) {
return currentInterrupt;
}

View File

@@ -5,7 +5,7 @@
extern void func_802F494C(void *, f32);
extern void func_802F4884(void *, s32, f32);
extern f32 func_80294500(void);
extern f32 floor_getCurrentFloorYPosition(void);
void func_8029AE74(s32 arg0);
@@ -26,7 +26,7 @@ void func_8029A990(void){
func_8029C304(1);
_player_getPosition(plyr_pos);
plyr_pos[1] = func_80294500();
plyr_pos[1] = floor_getCurrentFloorYPosition();
pCtrl = func_802F4094(plyr_pos, 25.0f);
particleEmitter_setParticleVelocityRange(pCtrl,
-350.0f, 300.0f, -350.0f,
@@ -46,7 +46,7 @@ void func_8029AA3C(void){
sp30 = ml_map_f(baphysics_get_horizontal_velocity(), 0.0f, 500.0f, 70.0f, 250.0f);
func_8028E9C4(D_8037D194, sp34);
sp34[1] = func_80294500();
sp34[1] = floor_getCurrentFloorYPosition();
pCtrl = func_802F4094(sp34, 8.0f);
particleEmitter_setParticleVelocityRange(pCtrl,
-sp30, 300.0f, -sp30,
@@ -116,7 +116,7 @@ void func_8029ACD4(void){
_player_getPosition(plyr_pos);
func_802F4894(D_8037D190, plyr_pos);
func_802F4884( D_8037D190, func_80294660(), func_80294500());
func_802F4884( D_8037D190, func_80294660(), floor_getCurrentFloorYPosition());
}
void func_8029AD28(f32 arg0, s32 arg1){

View File

@@ -271,7 +271,7 @@ f32 func_8029B56C(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
void func_8029B5EC(void){
func_802DC560(0, 0);
func_802E412C(1, 0);
func_802E4078(MAP_1F_CS_START_RAREWARE, 0, 1);
transitionToMap(MAP_1F_CS_START_RAREWARE, 0, 1);
}
void func_8029B62C(void){
@@ -285,7 +285,7 @@ void func_8029B62C(void){
}
else{
func_802E412C(1, 0);
func_802E4078(MAP_83_CS_GAME_OVER_MACHINE_ROOM, 0, 1);
transitionToMap(MAP_83_CS_GAME_OVER_MACHINE_ROOM, 0, 1);
}
}
@@ -299,7 +299,7 @@ void func_8029B6F0(void){
func_8029B62C();
}
else{
func_802E4078(gVoidOutReturnLocation[0], gVoidOutReturnLocation[1], 1);
transitionToMap(gVoidOutReturnLocation[0], gVoidOutReturnLocation[1], 1);
}
}
@@ -341,7 +341,7 @@ void func_8029B890(void){
func_8029B62C();
return;
}
gcdialog_showText(0xf81, 7, NULL, NULL, func_8029B85C, NULL);
gcdialog_showDialog(0xf81, 7, NULL, NULL, func_8029B85C, NULL);
fileProgressFlag_set(FILEPROG_A8_HAS_DIED, TRUE);
}
else{
@@ -354,7 +354,7 @@ void func_8029B930(void){
}
ParticleEmitter *func_8029B950(f32 pos[3],f32 arg1){
return func_802EDD8C(pos, arg1, func_80294500());
return func_802EDD8C(pos, arg1, floor_getCurrentFloorYPosition());
}
void func_8029B984(f32 dst[3]){
@@ -581,7 +581,7 @@ enum bs_e bs_getIdleState(void){
return BS_26_LONGLEG_IDLE;
}
if (player_inWater()) {
if (player_getYPosition() > (func_80294500() - 80.0f)) {
if (player_getYPosition() > (floor_getCurrentFloorYPosition() - 80.0f)) {
return BS_2D_SWIM_IDLE;
}
return BS_2B_DIVE_IDLE;
@@ -599,9 +599,9 @@ void func_8029C0D0(void) {
ParticleEmitter *p_ctrl;
f32 sp34;
if (func_80294574()) {
if (floor_isCurrentFloorunk59()) {
_player_getPosition(sp3C);
sp3C[1] = sp34 = func_80294500();
sp3C[1] = sp34 = floor_getCurrentFloorYPosition();
p_ctrl = func_802F4094(sp3C, 35.0f);
fxRipple_802F3554(3, sp3C);
particleEmitter_setParticleVelocityRange(p_ctrl, -350.0f, 300.0f, -350.0f, 350.0f, 500.0f, 350.0f);
@@ -620,7 +620,7 @@ void func_8029C0D0(void) {
void func_8029C22C(void) {
if(func_80294574() && func_80294500() > player_getYPosition())
if(floor_isCurrentFloorunk59() && floor_getCurrentFloorYPosition() > player_getYPosition())
return;
D_80364620 = D_80364620 ? FALSE : TRUE;
@@ -638,7 +638,7 @@ void func_8029C304(s32 arg0) {
f32 sp1C[3];
_player_getPosition(sp1C);
sp1C[1] = func_80294500();
sp1C[1] = floor_getCurrentFloorYPosition();
fxRipple_802F3584(arg0, sp1C, func_802946CC());
}
@@ -679,13 +679,13 @@ void func_8029C4E4(bool arg0) {
f32 sp38;
ParticleEmitter *sp34;
if (func_80294574()) {
if (floor_isCurrentFloorunk59()) {
if (arg0) {
baModel_80292260(sp3C);
} else {
baModel_8029223C(sp3C);
}
sp3C[1] = func_80294500();
sp3C[1] = floor_getCurrentFloorYPosition();
sp38 = yaw_get();
sp34 = func_802F4094(sp3C, 8.0f);
particleEmitter_setSphericalParticleVelocityRange(sp34, -140.0f, sp38 - 35.0f, 200.0f, -120.0f, sp38 + 35.0f, 250.0f);
@@ -890,15 +890,15 @@ void func_8029CBC4(void){
void func_8029CBF4(void){
if(item_getCount(ITEM_E_JIGGY) == 10){
if( jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
timedFunc_set_3(4.1f, (GenFunction_3)func_802E4078, MAP_95_CS_END_ALL_100, 0, 1);
timedFunc_set_3(4.1f, (GenFunction_3)transitionToMap, MAP_95_CS_END_ALL_100, 0, 1);
}//L8029CC58
timedFunc_set_0(4.0f, func_8029CBC4);
func_8025A6EC(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1);
coMusicPlayer_playMusic(COMUSIC_42_NOTEDOOR_OPENING_FANFARE, -1);
}//L8029CC7C
else{
if( jiggyscore_total() == 100 && fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
func_802E4078(MAP_95_CS_END_ALL_100, 0, 1);
transitionToMap(MAP_95_CS_END_ALL_100, 0, 1);
}
func_8029CBC4();
}
@@ -921,7 +921,7 @@ void func_8029CCC4(void){
}
core1_ce60_incOrDecCounter(FALSE);
func_8025A55C(0, 4000, 0xC);
func_8025A6EC(COMUSIC_D_JINGLE_JIGGY_COLLECTED, -1);
coMusicPlayer_playMusic(COMUSIC_D_JINGLE_JIGGY_COLLECTED, -1);
timedFunc_set_0(4.0f, func_8029CBF4);
}

View File

@@ -1,323 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "core2/ba/timer.h"
#include "core2/statetimer.h"
/* .bss */
u8 D_8037D210;
u8 D_8037D211;
u8 D_8037D212;
f32 D_8037D218[3];
f32 D_8037D224;
/*.code */
bool func_8029CFA0(void){
return func_80294574() && func_80294500() > player_getYPosition();
}
void func_8029CFF8(void){
sfxsource_freeSfxsourceByIndex(D_8037D210);
}
void func_8029D01C(void){
baflag_clear(BA_FLAG_13_TOUCHING_DANGEROUS_GROUND);
D_8037D210 = sfxsource_createSfxsourceAndReturnIndex();
D_8037D212 = 0;
}
void func_8029D050(void){
basfx_80299E48();
func_8030E394(D_8037D210);
sfxsource_setSfxId(D_8037D210, SFX_14D_BANJO_FREEZING);
sfxsource_setSampleRate(D_8037D210, 30000);
sfxsource_playSfxAtVolume(D_8037D210, 1.2f);
func_8030DD14(D_8037D210, 3);
func_8030E2C4(D_8037D210);
D_8037D211 = 2;
D_8037D224 = 1.0f;
}
void func_8029D0D8(void) {
func_8030E394(D_8037D210);
sfxsource_setSfxId(D_8037D210, SFX_B0_SIZZLING_NOISE);
sfxsource_setSampleRate(D_8037D210, 32000);
sfxsource_playSfxAtVolume(D_8037D210, randf2(0.7f, 0.8f));
func_8030DD14(D_8037D210, 3);
func_8030E2C4(D_8037D210);
}
void func_8029D154(void){
f32 plyr_pos[3];
player_getPosition(plyr_pos);
actor_spawnWithYaw_f32(0x188, plyr_pos, (s32)yaw_get());
}
void func_8029D194(void) {
__spawnQueue_add_0(&func_8029D154);
FUNC_8030E624(SFX_A_BANJO_LANDING_05, 1.0f, 28000);
func_8030E394(D_8037D210);
sfxsource_setSfxId(D_8037D210, SFX_6D_CROC_BITE);
sfxsource_setSampleRate(D_8037D210, 22000);
func_8030DD14(D_8037D210, 3);
player_getPosition(D_8037D218);
D_8037D218[1] = func_80294500();
D_8037D212 = 4;
D_8037D224 = 0.0f;
}
/* plays ground damage sound effect */
void func_8029D230(void) {
switch (map_get()) {
case MAP_12_GV_GOBIS_VALLEY: //L8029D2C0
case MAP_31_RBB_RUSTY_BUCKET_BAY: //L8029D2C0
case MAP_3C_RBB_KITCHEN: //L8029D2C0
case MAP_6E_GL_GV_LOBBY:
case MAP_8E_GL_FURNACE_FUN:
func_8029D0D8();
break;
case MAP_27_FP_FREEZEEZY_PEAK: //L8029D2D0
case MAP_7F_FP_WOZZAS_CAVE:
func_8029D050();
break;
case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
case MAP_72_GL_BGS_LOBBY:
func_8029D194();
break;
}
}
void func_8029D2F8(void) {
u8 temp_v0;
if (D_8037D211 != 0) {
if ((func_8029CFA0() == 0) && (func_8028F2FC() == 0) && (func_8030E3FC(D_8037D210) != 0)) {
func_8030E394(D_8037D210);
D_8037D211 = 0;
return;
}
D_8037D224 = ml_max_f(0.0f, D_8037D224 - time_getDelta());
if (D_8037D224 == 0.0f) {
if (D_8037D211 == 1) {
func_8029D050();
}
else if (D_8037D211 == 2) {
func_8030E394(D_8037D210);
sfxsource_setSfxId(D_8037D210, SFX_134_FREEZING_SHIVER);
sfxsource_setSampleRate(D_8037D210, 20000);
sfxsource_playSfxAtVolume(D_8037D210, 1.2f);
func_8030DD14(D_8037D210, 3);
func_8030E2C4(D_8037D210);
D_8037D211 = 2;
D_8037D224 = 1.5f;
}
}
}
}
void func_8029D448(void) {
f32 sp1C;
s32 temp_a1;
if (func_8030E3FC(D_8037D210) != 0) {
sp1C = time_getDelta();
temp_a1 = func_8030E1C4(D_8037D210) - (s32) (sp1C * 30000.0);
if (temp_a1 <= 0) {
func_8030E394(D_8037D210);
return;
}
sfxsource_setSampleRate(D_8037D210, temp_a1);
}
}
void func_8029D4D8(void) {
if (D_8037D212 != 0) {
D_8037D224 = ml_max_f(0.0f, D_8037D224 - time_getDelta());
if (!(D_8037D224 > 0.0f)) {
D_8037D212 += -1;
D_8037D224 = randf2(0.12f, 0.22f);
sfxsource_playSfxAtVolume(D_8037D210, randf2(0.95f, 1.05f));
func_8030E2C4(D_8037D210);
}
}
}
void func_8029D5A4(void){
switch (map_get()) {
case MAP_12_GV_GOBIS_VALLEY:
case MAP_31_RBB_RUSTY_BUCKET_BAY:
case MAP_3C_RBB_KITCHEN:
case MAP_6E_GL_GV_LOBBY:
case MAP_8E_GL_FURNACE_FUN:
func_8029D448();
break;
case MAP_27_FP_FREEZEEZY_PEAK:
case MAP_7F_FP_WOZZAS_CAVE:
func_8029D2F8();
break;
case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
case MAP_72_GL_BGS_LOBBY:
func_8029D4D8();
break;
}
}
bool func_8029D66C(void){
f32 sp2C[3];
switch (map_get()) {
case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
case MAP_12_GV_GOBIS_VALLEY:
case MAP_1B_MMM_MAD_MONSTER_MANSION:
case MAP_3C_RBB_KITCHEN:
case MAP_43_CCW_SPRING:
case MAP_44_CCW_SUMMER:
case MAP_45_CCW_AUTUMN:
case MAP_46_CCW_WINTER:
case MAP_6E_GL_GV_LOBBY:
case MAP_72_GL_BGS_LOBBY:
case MAP_8E_GL_FURNACE_FUN://L8029D6FC
return func_80294610(0xE000) && player_isStable();
case MAP_31_RBB_RUSTY_BUCKET_BAY:
player_getPosition(sp2C);
return player_inWater() && ml_vec3f_inside_box_f(sp2C, -9000.0f, -3000.0f, -3850.0f, -6820.0f, -700.0f, -1620.0f);
break;
case MAP_27_FP_FREEZEEZY_PEAK:
case MAP_7F_FP_WOZZAS_CAVE://L8029D790
return player_inWater();
}
return FALSE;
}
bool canTakeGroundDamage(void){
enum bs_e sp1C;
sp1C = bs_getState();
switch (map_get()) {
case MAP_D_BGS_BUBBLEGLOOP_SWAMP:
case MAP_12_GV_GOBIS_VALLEY:
case MAP_1B_MMM_MAD_MONSTER_MANSION:
case MAP_27_FP_FREEZEEZY_PEAK:
case MAP_31_RBB_RUSTY_BUCKET_BAY:
case MAP_3C_RBB_KITCHEN:
case MAP_43_CCW_SPRING:
case MAP_44_CCW_SUMMER:
case MAP_45_CCW_AUTUMN:
case MAP_46_CCW_WINTER:
case MAP_6E_GL_GV_LOBBY:
case MAP_72_GL_BGS_LOBBY:
case MAP_7F_FP_WOZZAS_CAVE://L8029D84C
case MAP_8E_GL_FURNACE_FUN://L8029D84C
return func_8029D66C()
&& bsStoredState_getTransformation() == TRANSFORM_1_BANJO
&& stateTimer_isDone(STATE_TIMER_2_LONGLEG)
&& player_movementGroup() != BSGROUP_3_WONDERWING
&& player_movementGroup() != BSGROUP_9_LONG_LEG
&& baflag_isFalse(BA_FLAG_E_TOUCHING_WADING_BOOTS)
&& sp1C != BS_25_LONGLEG_ENTER
&& player_getWaterState() != BSWATERGROUP_2_UNDERWATER
&& func_8028EC04() < 1U
&& func_80297C6C() != 3
&& bs_getState() != BS_3D_FALL_TUMBLING
&& player_isDead() < 1U
;
}
return 0;
}
void func_8029D968(void){
s32 can_take_ground_damage;
BKCollisionTri *temp_v0;
s32 sp1C;
s32 sp18;
func_8029D5A4();
if(map_get() == MAP_12_GV_GOBIS_VALLEY){
sp18 = 0;
sp1C = 0;
temp_v0 = func_802946F0();
if(temp_v0 != NULL){
sp1C = temp_v0->flags & 0x4000;
}
temp_v0 = func_8029463C();
if(temp_v0 != NULL){
sp18 = (temp_v0->flags & 0x4000) && player_isStable();
}
if (sp1C || sp18) {
baMotor_80250D94(1.0f, 0.5f, 0.4f);
func_8028F504(0xD);
}
}//L8029DA18
can_take_ground_damage = canTakeGroundDamage();
batimer_decrement(4);
if(can_take_ground_damage){
if(map_get() == MAP_8E_GL_FURNACE_FUN){
if(bs_checkInterrupt(BS_INTR_13_FF_DEATH_SQUARE)){
func_8029D230();
}
}
else{//L8029DA6C
if(batimer_isZero(4)){
batimer_set(4, 4.0f);
if(func_8028F504(0xD)){
func_8029D230();
baMotor_80250D94(1.0f, 0.5f, 0.4f);
}
if(item_empty(ITEM_14_HEALTH)){
bs_checkInterrupt(BS_INTR_13_FF_DEATH_SQUARE);
}
}//L8029DAD0
switch (map_get()) {
case MAP_43_CCW_SPRING://8029DB58
case MAP_44_CCW_SUMMER://8029DB58
case MAP_45_CCW_AUTUMN://8029DB58
case MAP_46_CCW_WINTER://8029DB58
func_8035644C(FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD);
break;
case MAP_D_BGS_BUBBLEGLOOP_SWAMP://8029DB68
case MAP_72_GL_BGS_LOBBY:
func_8035644C(FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER);
break;
case MAP_3C_RBB_KITCHEN://8029DB78
func_8035644C(FILEPROG_A9_HAS_TOUCHED_RBB_OVEN);
break;
case MAP_12_GV_GOBIS_VALLEY://8029DB88
case MAP_6E_GL_GV_LOBBY:
case MAP_8E_GL_FURNACE_FUN://8029DB88
func_8035644C(FILEPROG_10_HAS_TOUCHED_SAND_EEL_SAND);
break;
case MAP_27_FP_FREEZEEZY_PEAK://8029DB98
case MAP_7F_FP_WOZZAS_CAVE://8029DB98
func_8035644C(FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER);
break;
case MAP_1B_MMM_MAD_MONSTER_MANSION://8029DBA8
if(!func_8029CFA0())
func_8035644C(FILEPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE);
break;
}
}
baflag_set(BA_FLAG_13_TOUCHING_DANGEROUS_GROUND);
}
else{
baflag_clear(BA_FLAG_13_TOUCHING_DANGEROUS_GROUND);
}
}

View File

@@ -25,6 +25,8 @@ void func_802BB3AC(s32 arg0, f32 arg1);
/* .data */
extern s32 D_80364E00 = 0;
extern s32 D_80364E04 = -1;
// Time
s16 D_80364E08[] = { 0, -1, 0, 1, 0x13, 0, -1, 0x32};
s16 D_80364E18[] = { 0xF, -1, 0xF, 2, 0x1B, 3, -1, 0x2A};
s16 D_80364E28[] = { 0x3, -1, 0xF, 4, 0x20, 5, -1, 0x37};
@@ -221,9 +223,9 @@ s16 *D_803654B8[] = {
D_80364EA4,
D_80364EB0,
D_80364EBC,
D_80364EC8,
D_80364ED4,
D_80364EE0,
D_80364EC8, // MM Conga Orange Pad Top Jiggy Spawn
D_80364ED4, // MM Conga Orange Pad Left Jiggy Spawn
D_80364EE0, // MM Conga Orange Pad Right Jiggy Spawn
D_80364EEC,
D_80364EF8,
D_80364F04,
@@ -404,66 +406,73 @@ void func_802BAF80(s32 arg0){
func_802BE720();
}
f32 func_802BAFA0(s32 arg0, s32 arg1){
f32 func_802BAFA0(s32 arg0, s32 arg1) {
return (f32)D_803654B8[arg0][arg1]/10.0;
}
void func_802BAFE4(s32 arg0) {
void gcStaticCamera_activate(s32 cameraId) {
f32 temp_f0;
s32 phi_s1;
s32 phi_s0;
phi_s0 = 0;
if (arg0 != D_80364E04) {
D_80364E04 = arg0;
func_802BB22C();
D_80364E00 = 1;
for(phi_s1 = 0; D_803654B8[arg0][phi_s1] != -1 && D_803654B8[arg0][phi_s1] != -4; phi_s1+=2){
temp_f0 = func_802BAFA0(arg0, phi_s1);
switch(D_803654B8[arg0][phi_s1 + 1]){
case -5:
timedFunc_set_6(temp_f0, (GenFunction_6) func_802BAF80, NULL);
phi_s0++;
break;
case -3:
func_80324E38(temp_f0, 1);
phi_s0++;
break;
if (cameraId == D_80364E04) {
return;
}
case -2:
func_80324E38(temp_f0, 2);
phi_s0++;
break;
D_80364E04 = cameraId;
func_802BB22C();
D_80364E00 = 1;
case -1:
func_80324E38(temp_f0, 3);
phi_s0++;
break;
for (phi_s1 = 0; D_803654B8[cameraId][phi_s1] != -1 && D_803654B8[cameraId][phi_s1] != -4; phi_s1+=2) {
temp_f0 = func_802BAFA0(cameraId, phi_s1);
switch(D_803654B8[cameraId][phi_s1 + 1]){
case -5:
timedFunc_set_6(temp_f0, (GenFunction_6) func_802BAF80, NULL);
phi_s0++;
break;
case -4:
func_80324E38(temp_f0, 4);
break;
case -3:
func_80324E38(temp_f0, 1);
phi_s0++;
break;
case -6:
func_80324E38(temp_f0, 4);
break;
default:
timed_setStaticCameraToNode(temp_f0, D_803654B8[arg0][phi_s1 + 1]);
break;
}
}
temp_f0 = func_802BAFA0(arg0, phi_s1 + 1);
if (D_803654B8[arg0][phi_s1] == -4) {
func_80324E38(temp_f0, 4);
} else {
timed_exitStaticCamera(temp_f0);
}
for(phi_s1 = 0; phi_s1 < phi_s0; phi_s1++){
func_80324E38(temp_f0, 0);
case -2:
func_80324E38(temp_f0, 2);
phi_s0++;
break;
case -1:
func_80324E38(temp_f0, 3);
phi_s0++;
break;
case -4:
func_80324E38(temp_f0, 4);
break;
case -6:
func_80324E38(temp_f0, 4);
break;
default:
timed_setStaticCameraToNode(temp_f0, D_803654B8[cameraId][phi_s1 + 1]);
break;
}
}
temp_f0 = func_802BAFA0(cameraId, phi_s1 + 1);
if (D_803654B8[cameraId][phi_s1] == -4) {
func_80324E38(temp_f0, 4);
} else {
timed_exitStaticCamera(temp_f0);
}
for (phi_s1 = 0; phi_s1 < phi_s0; phi_s1++) {
func_80324E38(temp_f0, 0);
}
}
void func_802BB200(void){

View File

@@ -1,24 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
void func_802C5BC0(Actor *this);
/* .data */
ActorInfo D_80365FB0 = { 0x65, 0xF3, 0x0, 0x0, 0x0, func_802C5BC0, actor_update_func_80326224, func_80325340, 0, 0, 0.0f, 0};
/* .code */
void func_802C5BC0(Actor *this){
if(!this->initialized){
actor_collisionOff(this);
this->lifetime_value = 0.0f;
this->pitch = 90.0f;
fxRipple_802F3554(4, this->position);
this->initialized = TRUE;
}
else{
this->lifetime_value += time_getDelta();
if(2.0 < this->lifetime_value)
marker_despawn(this->marker);
}
}

View File

@@ -2,7 +2,7 @@
#include "functions.h"
#include "variables.h"
extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
#include "core2/dustemitter.h"
typedef struct struct_24_s{
s32 unk0;
@@ -27,6 +27,8 @@ typedef struct struct_25_s{
Actor *func_802C8484(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_802C8C5C(Actor *this);
// These seem to be related to assets like bricks, pipes, planks, when destroying objects
/* .data */
f32 D_80366330 = 0.5f;
f32 D_80366334 = 30.0f;
@@ -59,7 +61,7 @@ void func_802C83F0(Actor *actor) {
assetcache_release(phi_s0->model_bin);
}
if (phi_s0->unk3C != 0) {
func_802EE5E8(phi_s0->unk3C);
dustEmitter_empty(phi_s0->unk3C);
}
phi_s0->unk3C = NULL;
}
@@ -278,14 +280,14 @@ void func_802C8C5C(Actor *actor) {
if (phi_s0->unk8[1] <= phi_s0->unk50) {
phi_s0->unk0 = 1;
phi_s0->unk3C = func_802EE5E0(1);
phi_s0->unk3C = dustEmitter_returnGiven(1);
if (phi_s0->unk3C != 0) {
func_802EE6CC(phi_s0->unk8, sp70, phi_s0->unk40, 1, D_80366330, D_80366334, (s32)D_80366338, (s32)D_8036633C, 1);
dustEmitter_emit(phi_s0->unk8, sp70, phi_s0->unk40, 1, D_80366330, D_80366334, (s32)D_80366338, (s32)D_8036633C, DUST_EMITTER_TYPE_BREAK_DUST);
}
}
}
if (phi_s0->unk0 == 1) {
if (!func_802EE5F0(phi_s0->unk3C)) {
if (!dustEmitter_isActive(phi_s0->unk3C)) {
phi_s0->unk0 = 0;
}
phi_s0->unk8[1] -= 2.0f;

View File

@@ -152,8 +152,8 @@ void chHoneycomb_update(Actor *this){
for(i = 0; i < 4; i++){
if(randf() < 0.03){
func_8033E73C(this->marker, i+5, func_80329904);
func_8033E3F0(8, this->marker->unk14_21);
commonParticle_add(this->marker, i+5, func_80329904);
commonParticle_new(8, this->marker->unk14_21);
}
}
}

View File

@@ -165,7 +165,7 @@ void func_802CA1E0(Actor *this){
phi_a0 = tmp_v0->unk0;
tmp_f4 = tmp_v0->unk2*0.0078125;
phi_a2 = tmp_v0->unk3*128.0;
func_8030E6A4(phi_a0, tmp_f4, phi_a2);
gcsfx_playWithPitch(phi_a0, tmp_f4, phi_a2);
reinterpret_cast(s32, this->unkBC[0])++;
if(reinterpret_cast(s32, this->unkBC[0]) == reinterpret_cast(s32, this->unkBC[4]))
this->unk154 = 0;

View File

@@ -94,7 +94,7 @@ void chFightFlightPad_update(Actor *this){
if(!this->volatile_initialized){
this->volatile_initialized = TRUE;
chFightFlightPad_emitSparklesAtPosition(this->position);
FUNC_8030E8B4(SFX_113_PAD_APPEARS, 1.0f, 32000, this->position, 5000, 12000);
sfx_playFadeShorthandDefault(SFX_113_PAD_APPEARS, 1.0f, 32000, this->position, 5000, 12000);
}
this->marker->propPtr->unk8_3 = TRUE;
this->alpha_124_19 = MIN(this->alpha_124_19 + this->unk38_31, 0xFF);

View File

@@ -271,7 +271,7 @@ void func_802CCBF4(Actor *this) {
local->unk0 = sfxsource_createSfxsourceAndReturnIndex();
sfxsource_playSfxAtVolume(local->unk0, 0.9f);
sfxsource_setSfxId(local->unk0, 0x3FA);
func_8030DD14(local->unk0, 2);
sfxSource_setunk43_7ByIndex(local->unk0, 2);
sfxsource_setSampleRate(local->unk0, 0);
}
@@ -355,7 +355,7 @@ void func_802CCC5C(Actor *this) {
}
if (phi_f12 > 0.0f) {
sfxsource_setSampleRate(local->unk0, (s32) (phi_f12 * 10000.0f));
func_8030E2C4(local->unk0);
sfxSource_func_8030E2C4(local->unk0);
}
}
}

View File

@@ -9,7 +9,7 @@ extern bool func_80309DBC(f32[3], f32[3], f32, f32 sp54[3], s32, s32);
extern void fileProgressFlag_set(enum file_progress_e, bool);
extern void sfxsource_set_fade_distances(u8, f32, f32);
extern void sfxsource_set_position(u8, f32[3]);
extern void func_8030E2C4(u8);
extern void sfxSource_func_8030E2C4(u8);
extern void sfxsource_setSampleRate(u8, s32);
typedef struct{
@@ -64,7 +64,7 @@ void chBeeSwarm_802CEBA8(Actor *this){
ActorLocal_core2_47BD0 *local;
local = (ActorLocal_core2_47BD0 *)&this->local;
this->unk100 = NULL;
this->partnerActor = NULL;
free(local->unk8);
local->unk8 = NULL;
@@ -245,7 +245,7 @@ void chBeeSwarm_802CF434(Actor *this) {
void chBeeSwarm_802CF518(Actor *this) {
if( func_803292E0(this)
&& func_80329530(this, 900)
&& subaddie_playerIsWithinSphereAndActive(this, 900)
&& player_getWaterState() == BSWATERGROUP_0_NONE
&& player_getTransformation() != TRANSFORM_6_BEE
) {
@@ -257,7 +257,7 @@ void chBeeSwarm_802CF57C(Actor *this) {
ActorLocal_core2_47BD0 *local;
local = (ActorLocal_core2_47BD0 *) &this->local;
if (!func_803292E0(this) || !func_80329530(this, 900) || player_getWaterState() != BSWATERGROUP_0_NONE) {
if (!func_803292E0(this) || !subaddie_playerIsWithinSphereAndActive(this, 900) || player_getWaterState() != BSWATERGROUP_0_NONE) {
subaddie_set_state(this, 5);
func_802CEF54(this, local->unkC, 100.0f);
}
@@ -269,18 +269,18 @@ bool chBeeSwarm_802CF5E4(Actor *this){
bool out = 1;
local = (ActorLocal_core2_47BD0 *) &this->local;
out = (this->unk100 != NULL) ? out = local->unk24 != this->unk100->unk5C
out = (this->partnerActor != NULL) ? out = local->unk24 != this->partnerActor->unk5C
: 1;
return out;
}
void chBeeSwarm_802CF610(Actor *this, ParticleEmitter *p_ctrl, f32 position[3]) {
func_8030E6A4(SFX_66_BIRD_AUUGHH, randf2(1.75f, 1.85f), 15000);
gcsfx_playWithPitch(SFX_66_BIRD_AUUGHH, randf2(1.75f, 1.85f), 15000);
particleEmitter_setPosition(p_ctrl, position);
particleEmitter_setDrawMode(p_ctrl, 2);
particleEmitter_func_802EF9F8(p_ctrl, 0.5f);
particleEmitter_func_802EFA18(p_ctrl, 3);
func_802EFA20(p_ctrl, 0.8f, 1.0f);
particleEmitter_func_802EFA20(p_ctrl, 0.8f, 1.0f);
particleEmitter_setSfx(p_ctrl, SFX_1F_HITTING_AN_ENEMY_3, 10000);
particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.01f);
particleEmitter_setParticleLifeTimeRange(p_ctrl, 2.0f, 2.5f);
@@ -297,7 +297,7 @@ void chBeeSwarm_802CF7CC(Actor *this) {
if (D_8037DCBC == 0) {
this->unk44_31 = sfxsource_createSfxsourceAndReturnIndex();
sfxsource_setSfxId(this->unk44_31, SFX_3FA_HONEYCOMB_TALKING);
func_8030DD14(this->unk44_31, 2);
sfxSource_setunk43_7ByIndex(this->unk44_31, 2);
func_8030DD90(this->unk44_31, 2);
D_8037DCBC = 1;
}
@@ -322,19 +322,19 @@ void chBeeSwarm_update(Actor *this) {
if (!this->initialized) {
this->initialized = TRUE;
beehive = actorArray_findClosestActorFromActorId(this->position, ACTOR_12_BEEHIVE, -1, &distance_to_home);
this->unk100 = (beehive != NULL) ? beehive->marker : NULL;
this->partnerActor = (beehive != NULL) ? beehive->marker : NULL;
if(500.0f < distance_to_home){
this->unk100 = NULL;
this->partnerActor = NULL;
}
sp78 = 1;
local->unk18 = (f32) this->position[1];
local->unkC[0] = ((this->unk100) ? beehive->position : this->position)[0];
local->unkC[1] = ((this->unk100) ? beehive->position : this->position)[1];
local->unkC[2] = ((this->unk100) ? beehive->position : this->position)[2];
local->unkC[0] = ((this->partnerActor) ? beehive->position : this->position)[0];
local->unkC[1] = ((this->partnerActor) ? beehive->position : this->position)[1];
local->unkC[2] = ((this->partnerActor) ? beehive->position : this->position)[2];
local->unkC[1] += 250.0f;
local->unk0 = this->unkF4_8;
local->unk0 = this->actorTypeSpecificField;
this->position[0] = local->unkC[0];
this->position[1] = local->unkC[1];
this->position[2] = local->unkC[2];
@@ -361,20 +361,20 @@ void chBeeSwarm_update(Actor *this) {
if (sp78 == 0) {
beehive = actorArray_findClosestActorFromActorId(this->position, ACTOR_12_BEEHIVE, -1, &distance_to_home);
if (beehive != NULL) {
this->unk100 = beehive->marker;
this->partnerActor = beehive->marker;
} else {
this->unk100 = NULL;
this->partnerActor = NULL;
}
if (distance_to_home > 500.0f) {
this->unk100 = NULL;
this->partnerActor = NULL;
}
}
local->unk24 = (this->unk100 != NULL) ? this->unk100->unk5C : 0;
local->unk24 = (this->partnerActor != NULL) ? this->partnerActor->unk5C : 0;
local->unk5 = 1;
if (this->unk100 != NULL) {
if (this->partnerActor != NULL) {
fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, TRUE);
}
subaddie_set_state(this, (this->unk100 != NULL) ? 1 : 2);
subaddie_set_state(this, (this->partnerActor != NULL) ? 1 : 2);
this->lifetime_value = 0.0f;
chBeeSwarm_802CF040(this);
this->unk38_0 = volatileFlag_get(VOLATILE_FLAG_1) | volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE);
@@ -447,7 +447,7 @@ void chBeeSwarm_update(Actor *this) {
if (!fileProgressFlag_get(FILEPROG_8F_MET_BEE_INFESTED_BEEHIVE) && subaddie_playerIsWithinCylinder(this, 250, 300)
&& ((player_movementGroup() == BSGROUP_0_NONE) || (player_movementGroup() == BSGROUP_8_TROT))
&& (player_getTransformation() == TRANSFORM_1_BANJO)
&& (gcdialog_showText(0xDA6, 0, NULL, NULL, NULL, NULL) != 0)
&& (gcdialog_showDialog(0xDA6, 0, NULL, NULL, NULL, NULL) != 0)
) {
fileProgressFlag_set(FILEPROG_8F_MET_BEE_INFESTED_BEEHIVE, TRUE);
}
@@ -480,7 +480,7 @@ void chBeeSwarm_update(Actor *this) {
spB4[1] += 50.0f;
this->lifetime_value += dt;
if ((this->lifetime_value - 0.5 > 0.0) && (local->unk0 > 0) && (player_movementGroup() != BSGROUP_3_WONDERWING)) {
func_8028F504(0xD);
player_checkHazardInterrupt(0xD);
this->lifetime_value -= 0.5;
}
if ((this->lifetime_value > 0.2) && (player_movementGroup() == BSGROUP_3_WONDERWING)) {
@@ -533,7 +533,7 @@ void chBeeSwarm_update(Actor *this) {
chBeeSwarm_802CF434(this);
}
local->unk5 = 0;
if ((local->unk0 > 0) && func_80329530(this, 1500) && !this->unk38_0) {
if ((local->unk0 > 0) && subaddie_playerIsWithinSphereAndActive(this, 1500) && !this->unk38_0) {
if (this->unk44_31 == 0) {
chBeeSwarm_802CF7CC(this);
}
@@ -545,7 +545,7 @@ void chBeeSwarm_update(Actor *this) {
);
sfxsource_set_fade_distances(this->unk44_31, 500.0f, 1500.0f);
sfxsource_set_position(this->unk44_31, this->position);
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
sfxsource_setSampleRate(this->unk44_31, (s32)(((gu_sqrtf(this->velocity[0] * this->velocity[0] + this->velocity[1] * this->velocity[1] + this->velocity[2] * this->velocity[2]) / this->actor_specific_1_f) * 8000.0f) + 2000.0f));
}
}

View File

@@ -2,7 +2,8 @@
#include "functions.h"
#include "variables.h"
extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
#include "core2/dustemitter.h"
extern void func_803255FC(Actor *);
extern void func_80325760(Actor *);
@@ -143,12 +144,12 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
this = marker_getActor(caller);
switch(text_id){
case ASSET_D8F_DIALOG_MUMBO_MEET: //L802D1A04
gcdialog_showText((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);
gcdialog_showDialog((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;
case ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR: //L802D1A40
fileProgressFlag_set(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
gcdialog_showText(ASSET_D8F_DIALOG_MUMBO_MEET + D_8037DDF0, 4, NULL, NULL, NULL, NULL);
gcdialog_showDialog(ASSET_D8F_DIALOG_MUMBO_MEET + D_8037DDF0, 4, NULL, NULL, NULL, NULL);
gcpausemenu_80314AC8(1);
break;
@@ -161,7 +162,7 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
case ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE: //L802D1A98
this->has_met_before = FALSE;
if(this->unk38_31 != 0){
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 28000);
item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, -this->unk38_31);
this->unk38_31 = 0;
}
@@ -174,7 +175,7 @@ static void __chMumbo_textCallback(ActorMarker *caller, enum asset_e text_id, s3
D_8037DDF0 = this->unk10_12;
this->unk10_12 = 1;
if(this->unk38_31){
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 28000);
item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, -this->unk38_31);
}
@@ -191,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) {
if (this->unk10_12 != 0) {
gcdialog_showText(fileProgressFlag_getN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, 2) + ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(fileProgressFlag_getN(FILEPROG_BB_MUMBO_MISTAKE_INDEX, 2) + ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
return;
}
if (fileProgressFlag_get(FILEPROG_12_HAS_TRANSFORMED_BEFORE)) {
if (this->velocity[0] == 0.0f) {
gcdialog_showText(transform_id + ASSET_D8F_DIALOG_MUMBO_MEET, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(transform_id + ASSET_D8F_DIALOG_MUMBO_MEET, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
return;
}
if (map_get() == MAP_7A_GL_CRYPT && transform_id == TRANSFORM_3_PUMPKIN && !fileProgressFlag_get(FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT)) {
gcdialog_showText(ASSET_DAD_DIALOG_MUMBO_XFORM_IN_CRYPT, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(ASSET_DAD_DIALOG_MUMBO_XFORM_IN_CRYPT, 6, this->position, this->marker, __chMumbo_textCallback, NULL);
fileProgressFlag_set(FILEPROG_F7_HAS_TRANSFORMED_IN_CRYPT, TRUE);
return;
}
@@ -208,7 +209,7 @@ void chMumbo_func_802D1B8C(Actor *this, enum transformation_e transform_id) {
subaddie_set_state(this, 4U);
return;
}
gcdialog_showText(ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(ASSET_D90_DIALOG_MUMBO_MAGIC_PAID_FOR, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
}
void chMumbo_update(Actor *this) {
@@ -281,7 +282,7 @@ void chMumbo_update(Actor *this) {
&& !volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)
) {
subaddie_set_state(this, 3);
gcdialog_showText(ASSET_D8F_DIALOG_MUMBO_MEET, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(ASSET_D8F_DIALOG_MUMBO_MEET, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
fileProgressFlag_set(FILEPROG_11_HAS_MET_MUMBO, TRUE);
break;
}
@@ -292,7 +293,7 @@ void chMumbo_update(Actor *this) {
&& this->unk38_0
){
subaddie_set_state(this, 3);
gcdialog_showText(ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(ASSET_DAA_DIALOG_MUMBO_HAS_ENOUGH_TOKENS, 0xE, this->position, this->marker, __chMumbo_textCallback, NULL);
fileProgressFlag_set(FILEPROG_DC_HAS_HAD_ENOUGH_TOKENS_BEFORE, TRUE);
break;
}
@@ -330,7 +331,7 @@ void chMumbo_update(Actor *this) {
&& randf() < 0.01
&& sp48
) {
gcdialog_showText(ASSET_DAE_DIALOG_MUMBO_TREX_START, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(ASSET_DAE_DIALOG_MUMBO_TREX_START, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
fileProgressFlag_set(FILEPROG_BA_HAS_SEEN_TREX_TEXT, 1);
this->has_met_before = TRUE;
subaddie_set_state(this, 3);
@@ -349,7 +350,7 @@ void chMumbo_update(Actor *this) {
subaddie_set_state(this, 5);
} else {
if (this->unk38_31) {
func_8025A6EC(SFX_2B_BULL_MOO_1, 28000);
coMusicPlayer_playMusic(SFX_2B_BULL_MOO_1, 28000);
item_adjustByDiffWithHud(ITEM_1C_MUMBO_TOKEN, -this->unk38_31);
}
subaddie_set_state(this, 5);
@@ -358,8 +359,8 @@ void chMumbo_update(Actor *this) {
break;
}
func_8025A6EC(COMUSIC_2C_BUZZER, 22000);
if ((levelSpecificFlags_get(LEVEL_FLAG_3E_UNKNOWN) == FALSE) && (gcdialog_showText(ASSET_DAC_DIALOG_MUMBO_FAIL_TO_BUY, 0, NULL, NULL, NULL, NULL) != 0)) {
coMusicPlayer_playMusic(COMUSIC_2C_BUZZER, 22000);
if ((levelSpecificFlags_get(LEVEL_FLAG_3E_UNKNOWN) == FALSE) && (gcdialog_showDialog(ASSET_DAC_DIALOG_MUMBO_FAIL_TO_BUY, 0, NULL, NULL, NULL, NULL) != 0)) {
levelSpecificFlags_set(LEVEL_FLAG_3E_UNKNOWN, 1);
}
}
@@ -369,10 +370,10 @@ void chMumbo_update(Actor *this) {
case 5: //L802D2488
actor_playAnimationOnce(this);
if (actor_animationIsAt(this, 0.35f)){
func_8030E2C4(this->unk44_31);
sfxSource_func_8030E2C4(this->unk44_31);
}
if (actor_animationIsAt(this, 0.56f)) {
func_8030E394(this->unk44_31);
sfxSource_triggerCallbackByIndex(this->unk44_31);
}
if (actor_animationIsAt(this, 0.57f)) {
func_8030E6D4(1);
@@ -417,7 +418,7 @@ void chMumbo_update(Actor *this) {
}
if (this->has_met_before) {
subaddie_set_state(this, 3);
gcdialog_showText(ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
gcdialog_showDialog(ASSET_DAF_DIALOG_MUMBO_TREX_MISTAKE, 6, NULL, this->marker, __chMumbo_textCallback, NULL);
break;
}
gcpausemenu_80314AC8(1);
@@ -434,7 +435,7 @@ void chMumbo_update(Actor *this) {
sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC);
}
if (sp48 != 0) {
gcdialog_showText(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL);
gcdialog_showDialog(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL);
volatileFlag_set(VOLATILE_FLAG_11, TRUE);
}
}
@@ -450,7 +451,7 @@ void chMumbo_update(Actor *this) {
sp48 = chMumbo_withinHorzDistToPlayer(0, -0x6B, 0xBC);
}
if (sp48 != 0) {
gcdialog_showText(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL);
gcdialog_showDialog(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL);
volatileFlag_set(VOLATILE_FLAG_12, TRUE);
}
}
@@ -495,7 +496,7 @@ Actor *chMumbo_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|| actor_animationIsAt(out, 0.36f)
){
func_8034A174(func_80329934(), 9, sp44);
func_802EE6CC(sp44, sp38, D_8036751C, 0, 0.9f, 0.0f, 0x46, 0x14, 0);
dustEmitter_emit(sp44, sp38, D_8036751C, 0, 0.9f, 0.0f, 0x46, 0x14, DUST_EMITTER_TYPE_DUST);
}
}
return out;
@@ -511,7 +512,7 @@ void chMumbo_detransformWarn(NodeProp *arg0, ActorMarker *arg1){
if(D_8037DDF3)
return;
gcdialog_showText(fileProgressFlag_getAndSet(FILEPROG_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);
gcdialog_showDialog(fileProgressFlag_getAndSet(FILEPROG_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 chMumbo_detransformTrigger(NodeProp *arg0, ActorMarker *arg1){
@@ -519,7 +520,7 @@ void chMumbo_detransformTrigger(NodeProp *arg0, ActorMarker *arg1){
xform = player_getTransformation();
if(xform == TRANSFORM_1_BANJO || xform == TRANSFORM_7_WISHWASHY || D_8037DDF1)
return;
gcdialog_showText(fileProgressFlag_getAndSet(FILEPROG_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);
gcdialog_showDialog(fileProgressFlag_getAndSet(FILEPROG_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++;
func_8028FB88(TRANSFORM_1_BANJO);
}

View File

@@ -32,7 +32,7 @@ void func_802D2DA0(Actor *this) {
pCtrl = partEmitMgr_newEmitter((s32) this->lifetime_value);
for(phi_s6 = 0; phi_s6 < (s32)this->lifetime_value; phi_s6++){
for(i = 0; i < 3; i++){
sp70[i] = this->position[i] + randf()*2*this->unkF4_8 - ((i == 1)? 0: this->unkF4_8);
sp70[i] = this->position[i] + randf()*2*this->actorTypeSpecificField - ((i == 1)? 0: this->actorTypeSpecificField);
}
particleEmitter_setSprite(pCtrl, ASSET_710_SPRITE_SPARKLE_PURPLE);
particleEmitter_setStartingFrameRange(pCtrl, 0, 0);

View File

@@ -3,11 +3,12 @@
#include "functions.h"
#include "variables.h"
#include "core2/dustemitter.h"
extern void func_8025A788(enum comusic_e, f32, f32);
extern void func_8031CC40(enum map_e, s32);
extern void fxRipple_802F363C(f32);
extern void func_802F9D38(s32);
extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
extern void func_802EE2E8(Actor *arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6);
extern void gcquiz_func_80319EA4(void);
extern void fileProgressFlag_set(enum file_progress_e, bool);
@@ -101,7 +102,7 @@ s16 D_803679B0[] = {
FILEPROG_90_PAID_TERMITE_COST,
FILEPROG_A_HONEYCOMB_TEXT,
FILEPROG_93_PAID_CROC_COST,
FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER,
FILEPROG_F_HAS_TOUCHED_PIRANHA_WATER,
FILEPROG_92_PAID_WALRUS_COST,
FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER,
FILEPROG_91_PAID_PUMPKIN_COST,
@@ -142,7 +143,7 @@ void func_802D2FB0(Actor *this, s32 arg1, s32 arg2, s32 arg3, f32 arg4, s32 arg5
spA4[1] = randf2(4.0f, 10.0f);
spA4[0] = randf2(-8.0f, 8.0f);
spA4[2] = randf2(-8.0f, 8.0f);
func_802EE6CC(sp98, spA4, D_803679A0, 1, arg4, 50.0f, arg5, randi2(arg6, arg7), 0);
dustEmitter_emit(sp98, spA4, D_803679A0, 1, arg4, 50.0f, arg5, randi2(arg6, arg7), DUST_EMITTER_TYPE_DUST);
}
}
@@ -169,7 +170,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0x9F:
case 0xA0:
case 0xFF:
func_8030E540(SFX_82_METAL_BREAK);
gcsfx_play(SFX_82_METAL_BREAK);
subaddie_set_state(sp2C, 4);
break;
@@ -183,28 +184,28 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case MARKER_109_BREAKABLE_BRICK_WALL:
func_8030E6D4(SFX_114_BRICKWALL_BREAKING);
sfxsource_play(SFX_11_WOOD_BREAKING_1, 28000);
gcsfx_playAtSampleRate(SFX_11_WOOD_BREAKING_1, 28000);
subaddie_set_state_looped(sp2C, 9);
fileProgressFlag_set((sp2C->unkF4_8 == 1) ? FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN : FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN, TRUE);
fileProgressFlag_set((sp2C->actorTypeSpecificField == 1) ? FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN : FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN, TRUE);
break;
case 0x107:
func_8030E540(SFX_82_METAL_BREAK);
gcsfx_play(SFX_82_METAL_BREAK);
func_802EE278(sp2C, 0xE, 0xF, 0x46, 0.8f, 0.7f);
marker_despawn(arg0);
break;
case MARKER_224_BREAKABLE_FLOOR_COBWEB:
comusic_playTrack(COMUSIC_2B_DING_B);
func_8030E6A4(SFX_129_SWOOSH, (sp2C->scale < 0.45) ? 1.0 : 0.8, 0x7FF8);
gcsfx_playWithPitch(SFX_129_SWOOSH, (sp2C->scale < 0.45) ? 1.0 : 0.8, 0x7FF8);
subaddie_set_state_looped(sp2C, 0xC);
func_802D2FB0(sp2C, 8, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64);
fileProgressFlag_set((sp2C->unkF4_8== 1) ? FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN : FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN, 1);
fileProgressFlag_set((sp2C->actorTypeSpecificField== 1) ? FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN : FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN, 1);
break;
case MARKER_225_BREAKABLE_WALL_COBWEB:
comusic_playTrack(COMUSIC_2B_DING_B);
func_8030E540(SFX_129_SWOOSH);
gcsfx_play(SFX_129_SWOOSH);
subaddie_set_state_looped(sp2C, 0xF);
func_802D2FB0(sp2C, 0xE, -0x3C, 0xC8, 2.0f, 0xFA, 0x3C, 0x64);
fileProgressFlag_set(FILEPROG_CA_COBWEB_BLOCKING_PURPLE_CAULDRON_BROKEN, 1);
@@ -234,8 +235,8 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
levelSpecificFlags_set(LEVEL_FLAG_38_CCW_UNKNOWN, 1);
}
func_802D2FB0(sp2C, 5, -0x28, 0xC8, 0.85f, 0xDC, 0x3C, 0x64);
func_8030E540(SFX_D_EGGSHELL_BREAKING);
func_8030E540(SFX_11_WOOD_BREAKING_1);
gcsfx_play(SFX_D_EGGSHELL_BREAKING);
gcsfx_play(SFX_11_WOOD_BREAKING_1);
switch (arg0->id) {
case 0x9E:
func_802EE278(sp2C, 0xD, 9, 0x82, 0.34f, 1.0f);
@@ -270,28 +271,28 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
break;
case 0x11F:
func_8030E540(SFX_D9_WOODEN_CRATE_BREAKING_1);
gcsfx_play(SFX_D9_WOODEN_CRATE_BREAKING_1);
func_802EE2E8(sp2C, 7, 9, 0x78, 0.43f, 1.3f, 3.0f);
func_802EE2E8(sp2C, 3, 6, 0x78, 0.43f, 1.3f, 3.0f);
func_802D317C(arg0, FILEPROG_C5_RAREWARE_BOX_BROKEN);
break;
case 0x11A:
func_8030E540(SFX_82_METAL_BREAK);
gcsfx_play(SFX_82_METAL_BREAK);
func_802EE278(sp2C, 0xE, 0xD, 0x32, 0.8f, 0.9f);
func_802EE278(sp2C, 0xE, 0xD, 0xAA, 0.8f, 0.9f);
func_802D317C(arg0, FILEPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN);
break;
case 0x118:
func_8030E540(SFX_82_METAL_BREAK);
gcsfx_play(SFX_82_METAL_BREAK);
func_802EE278(sp2C, 0xE, 0xD, 0x50, 1.2f, 0.9f);
func_802EE278(sp2C, 0xE, 0xD, 0xB4, 1.2f, 0.9f);
func_802D317C(arg0, FILEPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN);
break;
case 0x119:
func_8030E540(SFX_82_METAL_BREAK);
gcsfx_play(SFX_82_METAL_BREAK);
func_802EE278(sp2C, 0xE, 9, 0x50, 1.2f, 0.9f);
func_802EE278(sp2C, 0xE, 9, 0xAA, 1.2f, 0.9f);
func_802EE278(sp2C, 0xE, 9, 0x104, 1.2f, 0.9f);
@@ -300,8 +301,8 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0x22D:
case 0x22E:
func_8030E540(SFX_82_METAL_BREAK);
func_8030E540(SFX_B6_GLASS_BREAKING_1);
gcsfx_play(SFX_82_METAL_BREAK);
gcsfx_play(SFX_B6_GLASS_BREAKING_1);
func_802EE278(sp2C, 4, 0x23, 0x1E, 0.7f, 0.6f);
marker_despawn(arg0);
break;
@@ -314,7 +315,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0x237:
case 0x238:
case 0x239:
func_8030E540(SFX_13A_GLASS_BREAKING_7);
gcsfx_play(SFX_13A_GLASS_BREAKING_7);
func_802EE278(sp2C, 4, 0x2D, 0x82, 1.0f, 1.0f);
if (arg0->id == 0x1F3) {
func_802EE278(sp2C, 4, 0x2D, 0x104, 1.0f, 1.0f);
@@ -323,7 +324,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
break;
case 0x11E:
func_8030E540(SFX_B6_GLASS_BREAKING_1);
gcsfx_play(SFX_B6_GLASS_BREAKING_1);
func_802EE278(sp2C, 4, 0x32, 0x50, 1.0f, 1.4f);
func_802EE278(sp2C, 4, 0x32, 0xA0, 1.0f, 1.4f);
func_802EE278(sp2C, 4, 0x1E, 0xF0, 0.8f, 1.1f);
@@ -331,7 +332,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
break;
case MARKER_121_GLASS_EYE:
func_8030E540(SFX_B6_GLASS_BREAKING_1);
gcsfx_play(SFX_B6_GLASS_BREAKING_1);
func_802EE2E8(sp2C, 1, 0x32, 0x14, 1.2f, 1.4f, 2.2f);
func_802EE2E8(sp2C, 1, 0x3C, 0x64, 1.6f, 1.8f, 2.2f);
func_802EE2E8(sp2C, 1, 0x32, 0xB4, 1.2f, 1.4f, 2.2f);
@@ -341,14 +342,14 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0x164:
case 0x165:
if (sp2C->unk1C[1] == sp2C->position[1]) {
sfxsource_play(SFX_9B_BOULDER_BREAKING_1, 25000);
gcsfx_playAtSampleRate(SFX_9B_BOULDER_BREAKING_1, 25000);
sp2C->unk1C[0] = 1.0f;
}
break;
default:
func_8030E540(SFX_D_EGGSHELL_BREAKING);
func_8030E540(SFX_11_WOOD_BREAKING_1);
gcsfx_play(SFX_D_EGGSHELL_BREAKING);
gcsfx_play(SFX_11_WOOD_BREAKING_1);
marker_despawn(arg0);
break;
}
@@ -410,7 +411,7 @@ Actor *func_802D3F48(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
s32 i;
this = marker_getActor(marker);
phi_s2 = this->unkF4_8;
phi_s2 = this->actorTypeSpecificField;
for(i = 0; i < 9; i++){
func_8033A45C(i + 1, i+1 == phi_s2);
}
@@ -460,7 +461,7 @@ void func_802D3FD4(Actor *this){
return;
}//L802D4134
this->yaw += (this->unkF4_8 & 1) ? -1.4 : 1.4;
this->yaw += (this->actorTypeSpecificField & 1) ? -1.4 : 1.4;
if(this->yaw < 0.0f){
this->yaw += 360.0f;
}
@@ -475,7 +476,7 @@ Actor *func_802D41C4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
s32 i;
this = marker_getActor(marker);
sp2C = this->unkF4_8;
sp2C = this->actorTypeSpecificField;
for(i = 0; i < 6; i++){
func_8033A45C(i+1, FALSE);
}
@@ -503,7 +504,7 @@ void func_802D4250(Actor *this){
bool func_802D42F8(Actor *this) {
s32 i;
for(i = 0; D_803679B0[i] != -1 && this->unkF4_8 != D_803679B0[i]; i+=2){
for(i = 0; D_803679B0[i] != -1 && this->actorTypeSpecificField != D_803679B0[i]; i+=2){
}
if (D_803679B0[i] == -1) {
@@ -517,7 +518,7 @@ bool func_802D42F8(Actor *this) {
void func_802D4388(Actor *this){
func_802D3CE8(this);
this->unk38_0 = BOOL(map_get() == MAP_7A_GL_CRYPT || item_getCount(ITEM_1C_MUMBO_TOKEN) >= this->unkF4_8 || func_802D42F8(this));
this->unk38_0 = BOOL(map_get() == MAP_7A_GL_CRYPT || item_getCount(ITEM_1C_MUMBO_TOKEN) >= this->actorTypeSpecificField || func_802D42F8(this));
mapSpecificFlags_set(0x1F, (func_8028F20C() && func_8028FB48(0x78000000)) || player_movementGroup() == BSGROUP_D_TRANSFORMING);
switch(this->state){
case 0x12: //L802D4468
@@ -728,33 +729,33 @@ void func_802D4D3C(enum actor_e arg0, enum actor_e arg1) {
if (nodeProp_findPositionFromActorId(arg1, sp5C)) {
codeABC00_spawnJiggyAtLocation(arg0, sp5C);
func_8025A6EC(COMUSIC_3D_JIGGY_SPAWN, 0x7FFF);
coMusicPlayer_playMusic(COMUSIC_3D_JIGGY_SPAWN, 0x7FFF);
if (arg0 == 0x36) {
sp4C[3] = 200;
sp4C[0] = sp4C[1] = sp4C[2] = 180;\
ml_vec3f_assign(sp40, 0.0f, 0.0f, 0.0f);
func_802EE6CC(sp5C, sp40, sp4C, 0, 6.0f, 200.0f, 200, 100, 0);
dustEmitter_emit(sp5C, sp40, sp4C, 0, 6.0f, 200.0f, 200, 100, DUST_EMITTER_TYPE_DUST);
sp4C[3] = 230;
sp4C[0] = sp4C[1] = sp4C[2] = 150;
ml_vec3f_assign(sp40, 0.0f, 2.0f, 0.0f);
func_802EE6CC(sp5C, sp40, sp4C, 0, 2.0f, 90.0f, 50, 33, 0);
dustEmitter_emit(sp5C, sp40, sp4C, 0, 2.0f, 90.0f, 50, 33, DUST_EMITTER_TYPE_DUST);
sp4C[3] = 150;
sp4C[0] = sp4C[1] = sp4C[2] = 230;
ml_vec3f_assign(sp40, -3.0f, 1.0f, 1.0f);
func_802EE6CC(sp5C, sp40, sp4C, 0, 3.5f, 130.0f, 100, 80, 0);
dustEmitter_emit(sp5C, sp40, sp4C, 0, 3.5f, 130.0f, 100, 80, DUST_EMITTER_TYPE_DUST);
sp4C[3] = 200;
sp4C[0] = sp4C[1] = sp4C[2] = 250;
ml_vec3f_assign(sp40, -1.0f, 3.0f, -3.0f);
func_802EE6CC(sp5C, sp40, sp4C, 0, 2.4f, 40.0f, 10, 120, 0);
dustEmitter_emit(sp5C, sp40, sp4C, 0, 2.4f, 40.0f, 10, 120, DUST_EMITTER_TYPE_DUST);
sp4C[3] = 130;
sp4C[0] = sp4C[1] = sp4C[2] = 130;
ml_vec3f_assign(sp40, 2.0f, -2.0f, 2.0f);
func_802EE6CC(sp5C, sp40, sp4C, 0, 4.7f, 180.0f, 20, 160, 0);
dustEmitter_emit(sp5C, sp40, sp4C, 0, 4.7f, 180.0f, 20, 160, DUST_EMITTER_TYPE_DUST);
func_8030E6D4(SFX_1B_EXPLOSION_1);
}
else{
@@ -771,7 +772,7 @@ void func_802D5000(enum map_e map_id){
if(map_getLevel(map_id) != level_get())
func_802E4A70();
func_803228D8();
func_802E4078(D_80367684, 0x65, 0);
transitionToMap(D_80367684, 0x65, 0);
}
void func_802D5058(enum map_e map_id, s32 arg1, bool arg2) {
@@ -917,7 +918,7 @@ void func_802D5628(void){
if(D_803679EC < 2){
D_803679EC = 2;
}
func_8030E6A4(SFX_2_CLAW_SWIPE, MIN(2.0,D_803679F0), 20000);
gcsfx_playWithPitch(SFX_2_CLAW_SWIPE, MIN(2.0,D_803679F0), 20000);
D_803679F0 += 0.05;
}
}
@@ -1028,25 +1029,25 @@ void func_802D5628(void){
}
else{//L802D5B64
func_802D5260();
func_802D5178(LEVEL_FLAG_1C_MM_UNKNOWN, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(LEVEL_FLAG_21_GV_UNKNOWN, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(LEVEL_FLAG_1E_CC_UNKNOWN, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_CC_ENTRANCE_BARS, 0xA);
func_802D5178(LEVEL_FLAG_1D_TTC_UNKNOWN, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TCC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(LEVEL_FLAG_1F_BGS_UNKNOWN, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_23_RBB_UNKNOWN, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_22_MMM_UNKNOWN, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_MMM_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_24_CCW_UNKNOWN, 0x30, 0x37, MAP_79_GL_CCW_LOBBY, 0xF, 0xB, ACTOR_234_CCW_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_20_FP_UNKNOWN, 0x2C, 0x38, MAP_6F_GL_FP_LOBBY, 0x11, 0xA, ACTOR_235_FP_ENTANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_3F_LAIR_UNKNOWN, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_DOOR_OF_GRUNTY, 0x28);
func_802D5178(LEVEL_FLAG_1C_MM_OPEN, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(LEVEL_FLAG_21_GV_OPEN, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(LEVEL_FLAG_1E_CC_OPEN, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_CC_ENTRANCE_BARS, 0xA);
func_802D5178(LEVEL_FLAG_1D_TTC_OPEN, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TCC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(LEVEL_FLAG_1F_BGS_OPEN, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_23_RBB_OPEN, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_22_MMM_OPEN, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_MMM_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_24_CCW_OPEN, 0x30, 0x37, MAP_79_GL_CCW_LOBBY, 0xF, 0xB, ACTOR_234_CCW_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_20_FP_OPEN, 0x2C, 0x38, MAP_6F_GL_FP_LOBBY, 0x11, 0xA, ACTOR_235_FP_ENTANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_3F_LAIR_GRUNTY_DOOR_OPEN, 0xE2, 0x40, MAP_93_GL_DINGPOT, 0x10, 0xA, ACTOR_2E5_DOOR_OF_GRUNTY, 0x28);
if(volatileFlag_get(VOLATILE_FLAG_18)){
if(!fileProgressFlag_get(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT)){
func_80311174(0xF75, 0xE, NULL, NULL, NULL, NULL, func_802D5140);
gcdialog_showDialogConditional(0xF75, 0xE, NULL, NULL, NULL, NULL, func_802D5140);
fileProgressFlag_set(FILEPROG_99_PAST_50_NOTE_DOOR_TEXT, TRUE);
volatileFlag_set(VOLATILE_FLAG_18, 0);
}
else{//L802D5DD8
if(!volatileFlag_get(VOLATILE_FLAG_16)){
func_80311174(0xF77, 0x4, NULL, NULL, NULL, NULL, func_802D5140);
gcdialog_showDialogConditional(0xF77, 0x4, NULL, NULL, NULL, NULL, func_802D5140);
volatileFlag_set(VOLATILE_FLAG_18, 0);
}
}
@@ -1073,7 +1074,7 @@ void func_802D5628(void){
}//L802D5F1C
if(volatileFlag_get(VOLATILE_FLAG_22)){
if(gcdialog_showText(0xF82, 4, NULL, NULL, NULL, NULL)){
if(gcdialog_showDialog(0xF82, 4, NULL, NULL, NULL, NULL)){
fileProgressFlag_set(FILEPROG_C1_BADDIES_ESCAPE_TEXT, TRUE);
volatileFlag_set(VOLATILE_FLAG_22, 0);
D_8037DE04 = 0.0f;
@@ -1083,7 +1084,7 @@ void func_802D5628(void){
}
}
else{//L802D5FCC
if(gcdialog_showText(D_8037DE00, 0, NULL, NULL, NULL, NULL)){
if(gcdialog_showDialog(D_8037DE00, 0, NULL, NULL, NULL, NULL)){
D_8037DE00++;
if(!(D_8037DE00 < sp4C)){
D_8037DE00 = 0xF86;
@@ -1131,7 +1132,7 @@ void func_802D6114(void){
if(sp24 != 0x1C || !func_8025ADBC(COMUSIC_23_MMM_INSIDE_CHURCH)){
func_803228D8();
}
func_802E4078(sp24, sp20, 0);
transitionToMap(sp24, sp20, 0);
}
else{//L802D61DC
func_80347A14(1);
@@ -1143,7 +1144,7 @@ void func_802D61FC(enum map_e arg0){
if( map_getLevel(arg0) != map_getLevel(map_get()))
func_802E4A70();
func_803228D8();
func_802E4078(D_80367684, 0, 0);
transitionToMap(D_80367684, 0, 0);
func_802D6750();
}
@@ -1210,7 +1211,7 @@ void func_802D63D4(void){
func_8028F85C(sp1C);
break;
default: //L802D6460
func_802BAFE4(D_80367688);
gcStaticCamera_activate(D_80367688);
timedFuncQueue_update();
volatileFlag_set(VOLATILE_FLAG_BF, 0);
func_802D6750();
@@ -1227,52 +1228,52 @@ void func_802D6494(void){
break;
case ACTOR_20E_MM_ENTRANCE_DOOR:// L802D6510
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
break;
case ACTOR_211_TCC_ENTRANCE_CHEST_LID:// L802D6530
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
break;
case ACTOR_212_CC_ENTRANCE_BARS:// L802D6550
if(map_get() == MAP_70_GL_CC_LOBBY && !volatileFlag_get(VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_212_CC_ENTRANCE_BARS), SFX_9A_MECHANICAL_CLOSING, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_234_CCW_ENTRANCE_DOOR:// L802D65A0
if(map_get() == MAP_79_GL_CCW_LOBBY && !volatileFlag_get(VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW)){
func_802D485C(actorArray_findActorFromActorId(ACTOR_234_CCW_ENTRANCE_DOOR), SFX_3EC_CCW_DOOR_OPENING, 0.8f, 15000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_210_BGS_ENTRANCE_DOOR:// L802D65F8
if(!volatileFlag_get(VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS)){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_235_FP_ENTANCE_DOOR:// L802D6624
if(map_get() == MAP_6F_GL_FP_LOBBY && !volatileFlag_get(VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_235_FP_ENTANCE_DOOR), SFX_18_BIGBUTT_SLIDE, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_226_GV_ENTRANCE:// L802D6674
if(map_get() == MAP_6E_GL_GV_LOBBY && !volatileFlag_get(VOLATILE_FLAG_87_SANDCASTLE_OPEN_GV)){
func_802D485C(actorArray_findActorFromActorId(ACTOR_226_GV_ENTRANCE), SFX_3EC_CCW_DOOR_OPENING, 0.8f, 15000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_228_MMM_ENTRANCE_DOOR:// L802D66CC
if(!volatileFlag_get(VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM)){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
case ACTOR_20F_RBB_ENTRANCE_DOOR:// L802D66F8
if(map_get() == MAP_77_GL_RBB_LOBBY && !volatileFlag_get(VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB)){
func_802D4830(actorArray_findActorFromActorId(ACTOR_20F_RBB_ENTRANCE_DOOR), SFX_9A_MECHANICAL_CLOSING, 0.5f);
func_8025A6CC(COMUSIC_64_WORLD_OPENING_A, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
}
break;
}

View File

@@ -2,8 +2,7 @@
#include "functions.h"
#include "variables.h"
extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
extern void func_802EE5E8(void *);
#include "core2/dustemitter.h"
typedef struct{
s32 unk0;
@@ -18,7 +17,7 @@ f32 D_80367A84 = 30.0f;
f32 D_80367A88 = 150.0f;
f32 D_80367A8C = 25.0f;
s32 D_80367A90[4] = {250, 250, 250, 120};
s32 D_80367AA0 = 0;
enum dust_emitter_type_e D_80367AA0 = DUST_EMITTER_TYPE_DUST;
f32 D_80367AA4[3] = {0.0f, 0.0f, 0.0f};
ActorInfo D_80367AB0 = {
@@ -45,7 +44,7 @@ void func_802D7420(Actor *this){
ActorLocal_core2_50490 * local = (ActorLocal_core2_50490 *)&this->local;
if(local->unk0 != NULL){
func_802EE5E8(local->unk0);
dustEmitter_empty(local->unk0);
}
local->unk0 = NULL;
}
@@ -59,9 +58,9 @@ Actor *func_802D7484(s32 position[3], s32 yaw, ActorInfo *arg2, u32 arg3) {
ActorLocal_core2_50490 * local;
Actor *sp34;
sp3C = func_802EE5E0(D_80367AA0);
sp3C = dustEmitter_returnGiven(D_80367AA0);
sp34 = actor_new(position, yaw, arg2, arg3);
func_802EE6CC(sp34->position, D_80367AA4, D_80367A90, 0, D_80367A80, D_80367A84, D_80367A88, D_80367A8C, D_80367AA0);
dustEmitter_emit(sp34->position, D_80367AA4, D_80367A90, 0, D_80367A80, D_80367A84, D_80367A88, D_80367A8C, D_80367AA0);
local = (ActorLocal_core2_50490 *)&sp34->local;
local->unk0 = sp3C;
sp34->marker->collidable = FALSE;
@@ -98,7 +97,7 @@ void func_802D766C(Actor *this) {
marker_setFreeMethod(this->marker, func_802D7420);
this->initialized = TRUE;
}
if (func_802EE5F0(local->unk0) == 0) {
if (dustEmitter_isActive(local->unk0) == 0) {
func_802D7420(this);
marker_despawn(this->marker);
}

View File

@@ -7,7 +7,7 @@ void chLevelCollectible_update(Actor *this);
extern void func_80329904(ActorMarker *, s32, f32*);
extern ActorMarker *func_8028E86C(void);
extern void timed_mapSpecificFlags_setTrue(f32, s32);
extern void func_8035646C(s32);
extern void progressDialog_showDialogMaskFour(s32);
ActorAnimationInfo D_80367B50[] = {
{0, 0.0f},
@@ -90,7 +90,7 @@ s32 __chLevelCollectible_dialogCallback(ActorMarker *marker, enum asset_e text_i
void __chLevelCollectible_callDialog(enum asset_e text_id){
func_80311174(text_id, 0, NULL, NULL, NULL, NULL, __chLevelCollectible_dialogCallback);
gcdialog_showDialogConditional(text_id, 0, NULL, NULL, NULL, NULL, __chLevelCollectible_dialogCallback);
}
void __chLevelCollectible_collide(ActorMarker *marker, ActorMarker *other_marker) {
@@ -111,34 +111,34 @@ void __chLevelCollectible_collide(ActorMarker *marker, ActorMarker *other_marker
return;
}
func_8035646C(FILEPROG_8_ORANGE_TEXT);
progressDialog_showDialogMaskFour(FILEPROG_8_ORANGE_TEXT);
func_8030E6D4(SFX_B3_ORANGE_TALKING);
dialog_id = 0;
break;
case MARKER_37_GOLD_BULLION:
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
timedFunc_set_1(0.5f, func_8035646C, FILEPROG_9_GOLD_BULLION_TEXT);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 0x7FFF);
timedFunc_set_1(0.5f, progressDialog_showDialogMaskFour, FILEPROG_9_GOLD_BULLION_TEXT);
dialog_id = 0;
break;
case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(LEVEL_FLAG_2A_FP_UNKNOWN, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 0x7FFF);
__chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE);
dialog_id = ASSET_C20_DIALOG_PRESENT_COLLECTIBLE_MEET_BLUE;
break;
case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(LEVEL_FLAG_2B_FP_UNKNOWN, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 0x7FFF);
__chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_712_SPRITE_SPARKLE_GREEN);
dialog_id = ASSET_C21_DIALOG_PRESENT_COLLECTIBLE_MEET_GREEN;
break;
case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
levelSpecificFlags_set(LEVEL_FLAG_2C_FP_UNKNOWN, TRUE);
func_8025A6EC(COMUSIC_2B_DING_B, 0x7FFF);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 0x7FFF);
__chLevelCollectible_presentCollectEmitSparkles(this->position, ASSET_715_SPRITE_SPARKLE_RED);
dialog_id = ASSET_C22_DIALOG_PRESENT_COLLECTIBLE_MEET_RED;
break;
@@ -207,7 +207,7 @@ void __chLevelCollectible_returnObj(Actor *this) {
local = (s32*)&this->local;
if( (this->marker->id != MARKER_36_ORANGE_COLLECTIBLE)
|| (this->unk78_13 == 0)
|| (this->secondaryId == 0)
) {
this->position[0] += this->velocity[0];
this->position[1] += (this->velocity[1] -= 5.0);
@@ -220,16 +220,16 @@ void __chLevelCollectible_returnObj(Actor *this) {
}
if (this->position[1] < sp20) {
if (this->modelCacheIndex == ACTOR_2A_GOLD_BULLION) {
func_8025A6EC(COMUSIC_2B_DING_B, 32000);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 32000);
if (mapSpecificFlags_get(1)) {
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 32000);
coMusicPlayer_playMusic(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 32000);
}
}
this->position[1] = sp20;
if (this->marker->id != MARKER_36_ORANGE_COLLECTIBLE) {
FUNC_8030E8B4(SFX_21_EGG_BOUNCE_1, 0.76f, 25000, this->position, 1000, 2000);
sfx_playFadeShorthandDefault(SFX_21_EGG_BOUNCE_1, 0.76f, 25000, this->position, 1000, 2000);
} else {
FUNC_8030E8B4(SFX_B3_ORANGE_TALKING, 1.0f, 25000, this->position, 1000, 2000);
sfx_playFadeShorthandDefault(SFX_B3_ORANGE_TALKING, 1.0f, 25000, this->position, 1000, 2000);
}
if (this->state == 4) {
switch (this->marker->id) {
@@ -237,18 +237,18 @@ void __chLevelCollectible_returnObj(Actor *this) {
break;
case MARKER_36_ORANGE_COLLECTIBLE:
timed_mapSpecificFlags_setTrue(1.7f, MM_SPECIFIC_FLAG_2_ORANGE_HAS_BEEN_RETURNED);
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
coMusicPlayer_playMusic(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
break;
case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(LEVEL_FLAG_11_FP_UNKNOWN, TRUE);
break;
case MARKER_1FE_GREEN_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(LEVEL_FLAG_12_FP_UNKNOWN, TRUE);
break;
case MARKER_1FF_RED_PRESENT_COLLECTIBLE:
func_8025A6EC(COMUSIC_2B_DING_B, 32000);
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 32000);
levelSpecificFlags_set(LEVEL_FLAG_13_FP_UNKNOWN, TRUE);
break;
}
@@ -295,8 +295,8 @@ void func_802D83EC(Actor *this) {
// temp_f20 = D_80376D70;
for(var_s0 = 0; var_s0 < 10; var_s0++){
if (randf() < 0.03) {
func_8033E73C(this->marker, var_s0 + 5, func_80329904);
func_8033E3F0(8, this->marker->unk14_21);
commonParticle_add(this->marker, var_s0 + 5, func_80329904);
commonParticle_new(8, this->marker->unk14_21);
}
}
this->yaw = this->yaw + time_getDelta() * 25.0f;

View File

@@ -78,7 +78,7 @@ void func_802DAA14(Actor *this){
tmp = ASSET_F67_DIALOG_UNKNOWN;
text_id = tmp;
}
gcdialog_showText(text_id, 4, NULL, this->marker, func_802DA9A0, NULL);
gcdialog_showDialog(text_id, 4, NULL, this->marker, func_802DA9A0, NULL);
this->has_met_before = TRUE;
}
}

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