Merge branch 'master' of https://gitlab.com/banjo.decomp/banjo-kazooie into document/sandcastle
This commit is contained in:
@@ -10,7 +10,7 @@ void func_8038FCB0(Actor *);
|
||||
|
||||
/* .data */
|
||||
ActorInfo D_80390D70 = {MARKER_DC_BIG_ALLIGATOR, ACTOR_F6_BIG_ALLIGATOR, ASSET_397_MODEL_BIG_ALLIGATOR, 0x01, NULL,
|
||||
func_8038FCB0, func_80326224, actor_draw,
|
||||
func_8038FCB0, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -255,7 +255,7 @@ void func_80388FC0(Actor *this){
|
||||
ActorLocal_Tiptup *local;
|
||||
|
||||
local = (ActorLocal_Tiptup *)&this->local;
|
||||
fileProgressFlag_setN(0, local->unkA, 2);
|
||||
fileProgressFlag_setN(FILEPROG_0_TIPTUP_MINIGAME_PROGRESS, local->unkA, 2);
|
||||
vector_free(local->unk4);
|
||||
}
|
||||
|
||||
@@ -291,7 +291,7 @@ void chTiptup_update(Actor *this){
|
||||
unqPtr->unk4 = vector_new(sizeof(Struct_BGS_2270_0s), 8);
|
||||
unqPtr->unk8 = 0;
|
||||
unqPtr->unk9 = 0;
|
||||
unqPtr->unkA = fileProgressFlag_getN(0,2);
|
||||
unqPtr->unkA = fileProgressFlag_getN(FILEPROG_0_TIPTUP_MINIGAME_PROGRESS, 2);
|
||||
unqPtr->unkB = 0;
|
||||
unqPtr->unkC = 0.0f;
|
||||
if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){
|
||||
|
@@ -18,8 +18,8 @@ ActorAnimationInfo D_80390B90[] = {
|
||||
{ASSET_D5_ANIM_SWITCH_UP, 0.5f},
|
||||
{ASSET_D5_ANIM_SWITCH_UP, 1e+8f}
|
||||
};
|
||||
ActorInfo D_80390BD8 = {MARKER_F5_BGS_ELEVATED_WALKWAY_SWITCH, ACTOR_14E_BGS_ELEVATED_WALKWAY_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038EEA4, func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80390BFC = {MARKER_FD_BGS_MAZE_SWITCH, ACTOR_1FB_BGS_MAZE_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038F06C, func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80390BD8 = {MARKER_F5_BGS_ELEVATED_WALKWAY_SWITCH, ACTOR_14E_BGS_ELEVATED_WALKWAY_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038EEA4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80390BFC = {MARKER_FD_BGS_MAZE_SWITCH, ACTOR_1FB_BGS_MAZE_SWITCH, ASSET_3F5_BGS_JIGGY_SWITCH, 1, D_80390B90, func_8038F06C, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
|
||||
void func_8038EE50(void){
|
||||
f32 sp24[3];
|
||||
|
@@ -31,7 +31,7 @@ ActorAnimationInfo D_803907CC[] = {
|
||||
};
|
||||
ActorInfo D_80390804 ={MARKER_FC_CROCTUS, ACTOR_1FA_CROCTUS, ASSET_425_MODEL_CROCTUS,
|
||||
1, D_803907CC,
|
||||
func_80387FD4, func_80326224, func_8038860C,
|
||||
func_80387FD4, actor_update_func_80326224, func_8038860C,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -88,7 +88,7 @@ void func_8038FD9C(Actor *this){
|
||||
switch(this->state){
|
||||
case 1:
|
||||
if(this->marker->unk2C_2)
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
this->marker->propPtr->unk8_3 = 1;
|
||||
this->unk1C[0] = 1.0f;
|
||||
this->alpha_124_19 = 0xff;
|
||||
@@ -99,7 +99,7 @@ void func_8038FD9C(Actor *this){
|
||||
|
||||
case 2:
|
||||
if(this->marker->unk2C_2)
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
|
||||
this->marker->propPtr->unk8_3 = 1;
|
||||
this->unk1C[0] = 1.0f;
|
||||
@@ -118,7 +118,7 @@ void func_8038FD9C(Actor *this){
|
||||
break;
|
||||
case 3:
|
||||
if (this->marker->unk2C_2) {
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
}
|
||||
this->marker->propPtr->unk8_3 = FALSE;
|
||||
this->unk1C[0] = 0.0f;
|
||||
|
@@ -8,7 +8,7 @@ extern void player_stateTimer_set(enum state_timer_e, f32);
|
||||
extern f32 player_stateTimer_get(enum state_timer_e);
|
||||
|
||||
|
||||
void spawnQueue_bundle_f32(u32,f32,f32,f32);
|
||||
Actor *spawnQueue_bundle_f32(u32,f32,f32,f32);
|
||||
void subaddie_set_state(Actor *, u32);
|
||||
|
||||
/* local declarations */
|
||||
@@ -24,10 +24,17 @@ ActorAnimationInfo D_80390B30[4] = {
|
||||
{ASSET_4E_ANIM_MUDHUT_SMASH, 1000000.0f}
|
||||
};
|
||||
|
||||
u32 D_80390B50[6] = {0xA, 0xA, 0xB, 0xA, 0xA, 0xC};
|
||||
enum bundle_e D_80390B50[6] = {
|
||||
BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD,
|
||||
BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD,
|
||||
BUNDLE_B_BGS_HUT_MUSIC_NOTE,
|
||||
BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD,
|
||||
BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD,
|
||||
BUNDLE_C_BGS_HUT_JIGGY
|
||||
};
|
||||
|
||||
ActorInfo D_80390B68 = {MARKER_D5_BGS_MUD_HUT, ACTOR_C_MUD_HUT, ASSET_7D8_MODEL_MM_HUT_TOP, 0x01, D_80390B30,
|
||||
chmudhut_update, func_80326224, chmudhut_draw,
|
||||
chmudhut_update, actor_update_func_80326224, chmudhut_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -104,13 +111,11 @@ void chmudhut_update(Actor *this){
|
||||
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
|
||||
}
|
||||
__spawnQueue_add_1((GenFunction_1)func_8038EB4C, reinterpret_cast(s32, this->marker));
|
||||
if(tmp < 5){
|
||||
__spawnQueue_add_4((GenFunction_4)spawnQueue_bundle_f32, D_80390B50[tmp],
|
||||
reinterpret_cast(s32, diffPos[0]),
|
||||
reinterpret_cast(s32, diffPos[1]),
|
||||
reinterpret_cast(s32, diffPos[2])
|
||||
);
|
||||
} else {
|
||||
|
||||
if (tmp < 5) {
|
||||
__spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, D_80390B50[tmp], reinterpret_cast(s32, diffPos[0]), reinterpret_cast(s32, diffPos[1]), reinterpret_cast(s32, diffPos[2]));
|
||||
}
|
||||
else {
|
||||
jiggy_spawn(JIGGY_23_BGS_HUTS, diffPos);
|
||||
}
|
||||
}
|
||||
|
@@ -28,27 +28,27 @@ ActorAnimationInfo D_803906D8[4] = {
|
||||
};
|
||||
|
||||
ActorInfo D_803906F8 = {MARKER_6E_PINK_EGG_LARGEST, ACTOR_5B_PINK_EGG_LARGEST, ASSET_380_MODEL_PINK_EGG_LARGEST, 0x01, D_803906D8,
|
||||
chpinkegg_update, func_80326224, chpinkegg_draw,
|
||||
chpinkegg_update, actor_update_func_80326224, chpinkegg_draw,
|
||||
0, 0x2CC, 6.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8039071C = {MARKER_D6_PINK_EGG_LARGE, ACTOR_ED_PINK_EGG_LARGE, ASSET_381_MODEL_PINK_EGG_LARGE, 0x01, D_803906D8,
|
||||
chpinkegg_update, func_80326224, chpinkegg_draw,
|
||||
chpinkegg_update, actor_update_func_80326224, chpinkegg_draw,
|
||||
0, 0x2CC, 5.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80390740 = {MARKER_D7_PINK_EGG_MEDIUM, ACTOR_EE_PINK_EGG_MEDIUM, ASSET_382_MODEL_PINK_EGG_MEDIUM, 0x01, D_803906D8,
|
||||
chpinkegg_update, func_80326224, chpinkegg_draw,
|
||||
chpinkegg_update, actor_update_func_80326224, chpinkegg_draw,
|
||||
0, 0x2CC, 4.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80390764 = {MARKER_D8_PINK_EGG_SMALL, ACTOR_EF_PINK_EGG_SMALL, ASSET_383_MODEL_PINK_EGG_SMALL, 0x01, D_803906D8,
|
||||
chpinkegg_update, func_80326224, chpinkegg_draw,
|
||||
chpinkegg_update, actor_update_func_80326224, chpinkegg_draw,
|
||||
0, 0x2CC, 3.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80390788 = {MARKER_D9_PINK_EGG_SMALLEST, ACTOR_F0_PINK_EGG_SMALLEST, ASSET_384_MODEL_PINK_EGG_SMALLEST, 0x01, D_803906D8,
|
||||
chpinkegg_update, func_80326224, chpinkegg_draw,
|
||||
chpinkegg_update, actor_update_func_80326224, chpinkegg_draw,
|
||||
0, 0x2CC, 2.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -29,7 +29,7 @@ ActorAnimationInfo BGS_D_80390C20[] = {
|
||||
};
|
||||
|
||||
ActorInfo D_80390C40 = {MARKER_6C_TANKTUP, ACTOR_E8_TANKTUP, ASSET_3EE_TANKTUP, 0x01, BGS_D_80390C20,
|
||||
func_8038F6A4, func_80326224, actor_draw,
|
||||
func_8038F6A4, actor_update_func_80326224, actor_draw,
|
||||
0, 0x80, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -301,7 +301,7 @@ void func_80389F08(ActorMarker *marker) {
|
||||
if (var_s2 < 3) {
|
||||
bundle_setYaw(vile->yaw + (f32) (i * 30));
|
||||
bundle_setRandomVelocity(2.0f);
|
||||
bundle_spawn_f32(6, vile->position);
|
||||
bundle_spawn_f32(BUNDLE_6_MM_HUT_EXTRA_LIFE, vile->position);
|
||||
var_s2 += 1;
|
||||
} else {
|
||||
item_inc(ITEM_16_LIFE);
|
||||
|
@@ -17,7 +17,7 @@ ActorAnimationInfo D_80390C70[3] = {
|
||||
};
|
||||
|
||||
ActorInfo D_80390C88 = {MARKER_6D_TANKTUP_LEG, ACTOR_E9_TANKTUP_LEG_FL, ASSET_3EF_MODEL_TANKTUP_LEG_FL, 0x01, D_80390C70,
|
||||
func_8038FBF8, func_80326224, actor_draw,
|
||||
func_8038FBF8, actor_update_func_80326224, actor_draw,
|
||||
0, 0x166, 0.0f, 0
|
||||
};
|
||||
u8 pad_80390CCC[4] = {0};
|
||||
@@ -29,7 +29,7 @@ ActorAnimationInfo BGS_D_80390CB0[3] = {
|
||||
};
|
||||
|
||||
ActorInfo D_80390CC8 = {MARKER_6D_TANKTUP_LEG, ACTOR_EA_TANKTUP_LEG_BL, ASSET_3F0_MODEL_TANKTUP_LEG_BL, 0x01, BGS_D_80390CB0,
|
||||
func_8038FBF8, func_80326224, actor_draw,
|
||||
func_8038FBF8, actor_update_func_80326224, actor_draw,
|
||||
0, 0x166, 0.0f, 0
|
||||
};
|
||||
u8 pad_80390CEC[4] = {0};
|
||||
@@ -41,7 +41,7 @@ ActorAnimationInfo BGS_D_80390CF0[3] = {
|
||||
};
|
||||
|
||||
ActorInfo D_80390D08 = {MARKER_6D_TANKTUP_LEG, ACTOR_EB_TANKTUP_LEG_FR, ASSET_3F1_MODEL_TANKTUP_LEG_FR, 0x01, BGS_D_80390CF0,
|
||||
func_8038FBF8, func_80326224, actor_draw,
|
||||
func_8038FBF8, actor_update_func_80326224, actor_draw,
|
||||
0, 0x166, 0.0f, 0
|
||||
};
|
||||
u8 pad_80390C2C[4] = {0};
|
||||
@@ -53,7 +53,7 @@ ActorAnimationInfo D_80390C30[3] = {
|
||||
};
|
||||
|
||||
ActorInfo D_80390D48 = {MARKER_6D_TANKTUP_LEG, ACTOR_EC_TANKTUP_LEG_BR, ASSET_3F2_MODEL_TANKTUP_LEG_BR, 0x01, D_80390C30,
|
||||
func_8038FBF8, func_80326224, actor_draw,
|
||||
func_8038FBF8, actor_update_func_80326224, actor_draw,
|
||||
0, 0x166, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -29,14 +29,14 @@ Struct_CC_1120_0 D_80389B50[] = {
|
||||
ActorInfo D_80389B90 = {
|
||||
0x4E, ACTOR_101_CLANKER_TOKEN_TOOTH, ASSET_891_MODEL_CLANKER_TOKEN_TOOTH_OPEN,
|
||||
0, NULL,
|
||||
chTooth_update, func_80326224, actor_draw,
|
||||
chTooth_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80389BB4 = {
|
||||
0x4F, ACTOR_102_CLANKER_JIGGY_TOOTH, ASSET_893_MODEL_CLANKER_JIGGY_TOOTH_OPEN,
|
||||
0, NULL,
|
||||
chTooth_update, func_80326224, actor_draw,
|
||||
chTooth_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -15,7 +15,7 @@ void func_803864D4(Actor *this);
|
||||
/* .data */
|
||||
ActorInfo D_80389AA0 = {
|
||||
MARKER_4B_CC_SCREW, ACTOR_43_CLACKER_SCREW, ASSET_890_MODEL_SCREW, 0, NULL,
|
||||
func_803864D4, func_80326224 , actor_draw,
|
||||
func_803864D4, actor_update_func_80326224 , actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -121,7 +121,7 @@ void CC_func_80387A40(Struct_CC_13C0_1* arg0, Struct68s* arg1, f32 arg2) {
|
||||
}
|
||||
}
|
||||
if ((arg0->unk4 == 0) || (arg0->unk4 == 1)) {
|
||||
func_8035179C(arg1, sp38);
|
||||
func_8035179C_copyPosition(arg1, sp38);
|
||||
func_80351814(arg1, sp2C);
|
||||
sp44[0] = 0.0f;
|
||||
sp44[1] = 0.0f;
|
||||
|
@@ -23,7 +23,7 @@ void func_80386B28(Actor* this);
|
||||
/* .data */
|
||||
ActorInfo D_80389AD0 = {
|
||||
MARKER_4A_CC_KEY, ACTOR_3C_CC_KEY, ASSET_429_MODEL_CC_KEY, 0, NULL,
|
||||
func_80386B28, func_80326224, actor_draw,
|
||||
func_80386B28, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -14,14 +14,14 @@ void func_803870F8(Actor *this);
|
||||
extern ActorInfo D_80389B00 = {
|
||||
MARKER_4C_CLANKER_TOKEN_TOOTH_EXT, ACTOR_44_CLANKER_TOKEN_TOOTH_EXTERIOR, ASSET_309_MODEL_CLANKER_TOKEN_TOOTH_EXTERIOR,
|
||||
0, NULL,
|
||||
func_803870F8, func_80326224, actor_draw,
|
||||
func_803870F8, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
extern ActorInfo D_80389B24 = {
|
||||
MARKER_4D_CLANKER_JIGGY_TOOTH_EXT, ACTOR_45_CLANKER_JIGGY_TOOTH_EXTERIOR, ASSET_30A_MODEL_CLANKER_JIGGY_TOOTH_EXTERIOR,
|
||||
0, NULL,
|
||||
func_803870F8, func_80326224, actor_draw,
|
||||
func_803870F8, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -39,7 +39,7 @@ void CC_func_80386FE0(Actor *this, s32 next_state){
|
||||
}
|
||||
else if(this->state == 3){
|
||||
if(prev_state == 2){
|
||||
levelSpecificFlags_set((local->unk0 == 1) ? 0 : 1, TRUE);
|
||||
levelSpecificFlags_set((local->unk0 == 1) ? LEVEL_FLAG_0_CC_TOKEN_TOOTH_OPEN : LEVEL_FLAG_1_CC_JIGGY_TOOTH_OPEN, TRUE);
|
||||
}
|
||||
if(local->unk0 == 1){
|
||||
this->yaw = -30.0f;
|
||||
|
@@ -57,13 +57,13 @@ ActorAnimationInfo chGrublinHood_animations[] = {
|
||||
ActorInfo chGrublinHood = {
|
||||
MARKER_1E2_GRUBLIN_HOOD, ACTOR_375_GRUBLIN_HOOD, ASSET_52C_MODEL_GRUBLIN_HOOD,
|
||||
0x1, chGrublinHood_animations,
|
||||
chgrublinhood_update, func_80326224, chgrublinhood_draw,
|
||||
chgrublinhood_update, actor_update_func_80326224, chgrublinhood_draw,
|
||||
2500, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void __chgrublinhood_emitHat(ParticleEmitter *pCtrl, Actor *actor, enum asset_e model_id){
|
||||
static struct43s D_8038F9AC = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_8038F9AC = {
|
||||
{{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}},
|
||||
{{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}},
|
||||
{{ -50.0f, 200.0f, -50.0f}, { 50.0f, 400.0f, 50.0f}}
|
||||
@@ -74,7 +74,7 @@ void __chgrublinhood_emitHat(ParticleEmitter *pCtrl, Actor *actor, enum asset_e
|
||||
-600.0f, -600.0f, -600.0f,
|
||||
600.0f, 600.0f, 600.0f
|
||||
);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038F9AC);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038F9AC);
|
||||
particleEmitter_emitN(pCtrl, 1);
|
||||
}
|
||||
|
||||
|
@@ -11,7 +11,7 @@ void chVacationTextTrigger_update(Actor* this);
|
||||
ActorInfo gChVacationTextTrigger = {
|
||||
MARKER_1E3_VACATION_TEXT_TRIGGER, ACTOR_374_VACATION_TEXT_TRIGGER, 0x0,
|
||||
0x0, NULL,
|
||||
chVacationTextTrigger_update, func_80326224, func_80325340,
|
||||
chVacationTextTrigger_update, actor_update_func_80326224, func_80325340,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -11,7 +11,7 @@ ActorInfo D_8038EB74 = { 0x1AC, 0x29A, 0x445, 0x0, NULL, func_803864B8, NULL, ac
|
||||
void CCW_func_803863F0(Actor *this, s32 next_state){
|
||||
if(next_state == 2){
|
||||
FUNC_8030E8B4(SFX_2F_ORANGE_SPLAT, 1.0f, 32000, this->position, 500, 3000);
|
||||
levelSpecificFlags_set(0x10, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_10_CCW_UNKNOWN, TRUE);
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
this->state = next_state;
|
||||
@@ -30,7 +30,8 @@ void func_803864B8(Actor *this){
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
marker_setCollisionScripts(this->marker, NULL, NULL, func_80386468);
|
||||
CCW_func_803863F0(this, 1);
|
||||
if(levelSpecificFlags_get(0x10)){
|
||||
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_10_CCW_UNKNOWN)) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@ typedef struct{
|
||||
u8 unk3;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
s16 unk8;
|
||||
s16 unk8; // enum file_progress_e
|
||||
s16 unkA;
|
||||
}Struct_CCW_1B20_0;
|
||||
|
||||
|
@@ -140,7 +140,7 @@ void chGobiCCW_update(Actor *this) {
|
||||
this->has_met_before = FALSE;
|
||||
local->unk4 = skeletalAnim_new();
|
||||
local->spit_model = assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT);
|
||||
marker_setCollisionScripts(this->marker, 0, func_8038894C, 0);
|
||||
marker_setCollisionScripts(this->marker, NULL, func_8038894C, NULL);
|
||||
if(!jiggyscore_isSpawned(JIGGY_4D_CCW_FLOWER)) {
|
||||
fileProgressFlag_set(FILEPROG_E5_CCW_FLOWER_AUTUMN, FALSE);
|
||||
}
|
||||
@@ -208,7 +208,7 @@ void chGobiCCW_update(Actor *this) {
|
||||
}
|
||||
|
||||
if (this->state == 6) {
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
if (0.99 < (f64) this->unk48) {
|
||||
CCW_func_8038868C(this, 7);
|
||||
}
|
||||
|
@@ -29,14 +29,14 @@ ActorAnimationInfo D_8038ED20[] = {
|
||||
{ASSET_D4_ANIM_SWITCH_DOWN, 100000000.0f}
|
||||
};
|
||||
|
||||
ActorInfo D_8038ED50 = { 0x133, 0x1E3, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038ED74 = { 0x132, 0x1E2, 0x4F5, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038ED98 = { 0x131, 0x16D, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038EDBC = { 0x130, 0x16C, 0x4F6, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038EDE0 = { 0x12F, 0x16B, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038EE04 = { 0x12E, 0x16A, 0x4F7, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038EE28 = { 0x12D, 0x169, 0x52E, 0x1, NULL, func_80389268, func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038EE4C = { 0x12C, 0x168, 0x4F8, 0x5, D_8038ED20, func_80388FD4, func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038ED50 = { 0x133, 0x1E3, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038ED74 = { 0x132, 0x1E2, 0x4F5, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038ED98 = { 0x131, 0x16D, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038EDBC = { 0x130, 0x16C, 0x4F6, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038EDE0 = { 0x12F, 0x16B, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038EE04 = { 0x12E, 0x16A, 0x4F7, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038EE28 = { 0x12D, 0x169, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
|
||||
ActorInfo D_8038EE4C = { 0x12C, 0x168, 0x4F8, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
|
||||
|
||||
/* .code */
|
||||
s32 func_80388EF0(Actor *this){
|
||||
@@ -90,7 +90,7 @@ void func_80388FD4(Actor *this) {
|
||||
subaddie_set_state_with_direction(this, 4, 0.999f, 1);
|
||||
actor_collisionOff(this);
|
||||
} else {
|
||||
marker_setCollisionScripts(this->marker, 0, &func_80388F50, 0);
|
||||
marker_setCollisionScripts(this->marker, NULL, &func_80388F50, NULL);
|
||||
}
|
||||
this->unk38_0 = FALSE;
|
||||
this->volatile_initialized = TRUE;
|
||||
|
@@ -11,8 +11,8 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
s16 map_id;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
s16 unk2; // enum file_progress_e
|
||||
s16 unk4; // enum file_progress_e
|
||||
s16 unk6;
|
||||
Struct_CCW_3310_1 *unk8;
|
||||
s16 unkC;
|
||||
|
@@ -76,7 +76,7 @@ void func_8038AEBC(Actor *this) {
|
||||
}
|
||||
}
|
||||
if (this->state == 2) {
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
skeletalAnim_getProgressRange(this->unk148, &sp38, &sp34);
|
||||
for(iPtr = &D_8038F254[0]; iPtr->unk0 > 0.0f; iPtr++){
|
||||
if ((sp38 < iPtr->unk0) && (iPtr->unk0 <= sp34)) {
|
||||
@@ -92,7 +92,7 @@ void func_8038AEBC(Actor *this) {
|
||||
}
|
||||
}
|
||||
if (this->state == 3) {
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
skeletalAnim_getProgressRange(this->unk148, &sp30, &sp2C);
|
||||
if ((sp30 <= 0.5) && (sp2C >= 0.5)) {
|
||||
jiggy_spawn(JIGGY_49_CCW_EYRIE, this->position);
|
||||
|
@@ -161,7 +161,7 @@ void chnabnut_update(Actor *this) {
|
||||
chnabnut_setState(this, NABNUT_STATE_5_EXIT);
|
||||
}
|
||||
if (this->state == NABNUT_STATE_5_EXIT) {
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
func_8028FC8C(this->position);
|
||||
if (0.99 < this->unk48) {
|
||||
chnabnut_setState(this, NABNUT_STATE_6_DESPAWN);
|
||||
|
@@ -47,7 +47,7 @@ void func_8038CA10(ActorMarker *marker) {
|
||||
pCtrl = func_802EDD8C(local->unk4, 0.0f, this->position[1] + 500.0f);
|
||||
particleEmitter_setStartingScaleRange(pCtrl, 0.04f, 0.05f);
|
||||
particleEmitter_setFinalScaleRange(pCtrl, 0.18f, 0.2f);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f);
|
||||
particleEmitter_setSpawnPositionRange(pCtrl, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f);
|
||||
particleEmitter_setParticleVelocityRange(pCtrl, 0.0f, 31.0f, 0.0f, 0.0f, 37.0f, 0.0f);
|
||||
particleEmitter_emitN(pCtrl, 1);
|
||||
}
|
||||
@@ -97,12 +97,15 @@ void func_8038CC4C(Actor *this) {
|
||||
local->unk0++;
|
||||
}
|
||||
func_8038CB40(this, 1);
|
||||
|
||||
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY)) {
|
||||
levelSpecificFlags_set(0x25, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
|
||||
}
|
||||
if ((local->unk0->unk2 != 0) && levelSpecificFlags_get(0x25)) {
|
||||
|
||||
if ((local->unk0->unk2 != 0) && levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN)) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@@ -85,9 +85,9 @@ void func_8038CFB4(Actor *this) {
|
||||
this->has_met_before = FALSE;
|
||||
func_8038CEB0(this, 1);
|
||||
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY) != 0) {
|
||||
levelSpecificFlags_set(0x25, 1);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
|
||||
}
|
||||
if (levelSpecificFlags_get(0x25) != 0) {
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) != FALSE) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
return;
|
||||
@@ -121,7 +121,8 @@ void func_8038CFB4(Actor *this) {
|
||||
this->has_met_before = TRUE;
|
||||
}
|
||||
}
|
||||
if (levelSpecificFlags_get(0x25) != 0) {
|
||||
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) != FALSE) {
|
||||
func_8038CEB0(this, 2);
|
||||
}
|
||||
}
|
||||
@@ -133,7 +134,7 @@ void func_8038CFB4(Actor *this) {
|
||||
}
|
||||
|
||||
if (this->state == 3) {
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
if (0.99 < (f64) this->unk48) {
|
||||
func_8038CEB0(this, 4);
|
||||
}
|
||||
|
@@ -39,9 +39,10 @@ void func_8038D2B0(Actor *this, s32 next_state) {
|
||||
}
|
||||
|
||||
Actor *func_8038D30C(ActorMarker* marker, Gfx** gfx, Mtx** mtx, Vtx** vtx) {
|
||||
if (levelSpecificFlags_get(0x25) == 0) {
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) == FALSE) {
|
||||
return func_80325340(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
return actor_draw(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
@@ -61,7 +62,7 @@ void func_8038D368(Actor *this) {
|
||||
|
||||
func_8038D2B0(this, 1);
|
||||
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY)) {
|
||||
levelSpecificFlags_set(0x25, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@@ -19,7 +19,7 @@ ActorInfo D_8038F640 = {
|
||||
/* .code */
|
||||
void CCW_func_8038D510(Actor *this) {
|
||||
static s32 D_8038F664[3] = {0xDE, 0xA7, 0x71};
|
||||
static struct42s D_8038F670 = {
|
||||
static ParticleSettingsVelocityPosition D_8038F670 = {
|
||||
{{ 0.0f, 50.0f, 0.0f}, { 70.0f, 100.0f, 70.0f}},
|
||||
{{100.0f, 100.0f, 100.0f}, {150.0f, 400.0f, 200.0f}}
|
||||
};
|
||||
@@ -39,7 +39,7 @@ void CCW_func_8038D510(Actor *this) {
|
||||
}
|
||||
|
||||
void func_8038D5DC(Actor *this) {
|
||||
static struct43s D_8038F6A0 ={
|
||||
static ParticleSettingsVelocityAccelerationPosition D_8038F6A0 ={
|
||||
{{-100.0f, -50.0f, -100.0f}, {100.0f, 50.0f, 100.0f}},
|
||||
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
|
||||
{{-100.0f, 0.0f, -200.0f}, {100.0f, 400.0f, 200.0f}}
|
||||
@@ -48,8 +48,8 @@ void func_8038D5DC(Actor *this) {
|
||||
ParticleEmitter *pCtrl;
|
||||
|
||||
pCtrl = partEmitMgr_newEmitter(30);
|
||||
func_802EF9F8(pCtrl, 0.6f);
|
||||
func_802EFA18(pCtrl, 3);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.6f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 3);
|
||||
particleEmitter_setModel(pCtrl, 0x896);
|
||||
particleEmitter_setPosition(pCtrl, this->position);
|
||||
particleEmitter_setStartingScaleRange(pCtrl, 0.05f, 0.3f);
|
||||
@@ -59,7 +59,7 @@ void func_8038D5DC(Actor *this) {
|
||||
);
|
||||
particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f);
|
||||
particleEmitter_setParticleLifeTimeRange(pCtrl, 10.0f, 10.0f);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038F6A0);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038F6A0);
|
||||
particleEmitter_emitN(pCtrl, 30);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ void func_8038D6D8(Actor *this, s32 next_state) {
|
||||
FUNC_8030E624(SFX_9B_BOULDER_BREAKING_1, 0.9f, 15000);
|
||||
func_80324E38(0.0f, 3);
|
||||
timed_setStaticCameraToNode(0.5f, 3);
|
||||
timedFunc_set_2(0.5f, levelSpecificFlags_set, 0x25, TRUE);
|
||||
timedFunc_set_2(0.5f, levelSpecificFlags_set, LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
|
||||
timed_exitStaticCamera(4.0f);
|
||||
func_80324E38(4.0f, 0);
|
||||
local->unk0 = 0.5f;
|
||||
@@ -105,12 +105,14 @@ void func_8038D85C(Actor *this) {
|
||||
if (!this->volatile_initialized) {
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
this->volatile_initialized = TRUE;
|
||||
marker_setCollisionScripts(this->marker, 0, &func_8038D81C, 0);
|
||||
marker_setCollisionScripts(this->marker, NULL, &func_8038D81C, NULL);
|
||||
func_8038D6D8(this, 1);
|
||||
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY) != 0) {
|
||||
levelSpecificFlags_set(0x25, 1);
|
||||
|
||||
if (jiggyscore_isCollected(JIGGY_4B_CCW_GNAWTY) != FALSE) {
|
||||
levelSpecificFlags_set(LEVEL_FLAG_25_CCW_UNKNOWN, TRUE);
|
||||
}
|
||||
if ((levelSpecificFlags_get(0x25) != 0) && (map_get() != MAP_43_CCW_SPRING)) {
|
||||
|
||||
if ((levelSpecificFlags_get(LEVEL_FLAG_25_CCW_UNKNOWN) != FALSE) && (map_get() != MAP_43_CCW_SPRING)) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
return;
|
||||
|
@@ -65,16 +65,16 @@ void CCW_func_8038DB0C(Actor *this);
|
||||
void func_8038DAB0(Actor *this);
|
||||
|
||||
/* .data */
|
||||
ActorInfo D_8038F720 = { 0x239, 0x25F, 0x4FC, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F744 = { 0x236, 0x260, 0x4F9, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F768 = { 0x237, 0x261, 0x4FA, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F78C = { 0x238, 0x262, 0x4FB, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F7B0 = { 0x243, 0x2E6, 0x533, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F7D4 = { 0x263, 0x2E7, 0x518, 0x1, NULL, func_8038DAB0, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F7F8 = { 0x21E, 0x233, 0x3B3, 0x1, NULL, func_802D3D74, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F81C = { 0x26B, 0x2DE, 0x531, 0x1, NULL, CCW_func_8038DB0C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F840 = { 0x26C, 0x2DD, 0x53E, 0x1, NULL, CCW_func_8038DB0C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F864 = { 0x26D, 0x2DC, 0x53F, 0x1, NULL, CCW_func_8038DB0C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F720 = { 0x239, 0x25F, 0x4FC, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F744 = { 0x236, 0x260, 0x4F9, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F768 = { 0x237, 0x261, 0x4FA, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F78C = { 0x238, 0x262, 0x4FB, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F7B0 = { 0x243, 0x2E6, 0x533, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F7D4 = { 0x263, 0x2E7, 0x518, 0x1, NULL, func_8038DAB0, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F7F8 = { 0x21E, 0x233, 0x3B3, 0x1, NULL, func_802D3D74, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F81C = { 0x26B, 0x2DE, 0x531, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F840 = { 0x26C, 0x2DD, 0x53E, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F864 = { 0x26D, 0x2DC, 0x53F, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_8038F888 = { 0x1CC, 0x318, 0x0, 0x0, NULL, func_80325F84, NULL, func_80325340, 0, 0, 0.0f, 0};
|
||||
|
||||
|
||||
@@ -83,7 +83,8 @@ void func_8038DAB0(Actor *this){
|
||||
if(!this->initialized){
|
||||
func_802D3CE8(this);
|
||||
this->initialized = TRUE;
|
||||
if(levelSpecificFlags_get(0x38)){
|
||||
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_38_CCW_UNKNOWN)) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ ActorAnimationInfo D_8038F8B0[] = {
|
||||
|
||||
ActorInfo D_8038F8C0 = { 0x251, 0x37E, 0x506,
|
||||
0x1, D_8038F8B0,
|
||||
func_8038DFB0, func_80326224, actor_draw,
|
||||
func_8038DFB0, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -15,7 +15,7 @@ ActorAnimationInfo D_8038F8F0[] = {
|
||||
ActorInfo D_8038F908 = {
|
||||
MARKER_1F9_SNARE_BEAR, ACTOR_1E9_SNARE_BEAR, ASSET_440_MODEL_SNAREBEAR,
|
||||
0x1, D_8038F8F0,
|
||||
func_8038E0C8, func_80326224, actor_draw,
|
||||
func_8038E0C8, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -23,27 +23,27 @@ ActorAnimationInfo D_80391DF0[] = {
|
||||
|
||||
ActorInfo D_80391E08 = { MARKER_1FA_POLAR_BEAR_CUB_BLUE, ACTOR_1EA_POLAR_BEAR_CUB_BLUE, ASSET_44C_MODEL_POLAR_BEAR_CUB_BLUE,
|
||||
0x1, D_80391DF0,
|
||||
func_8038A384, func_80326224, actor_draw,
|
||||
func_8038A384, actor_update_func_80326224, actor_draw,
|
||||
2500, 0, 1.2f, 0
|
||||
};
|
||||
|
||||
ActorInfo FP_D_80391E2C = { MARKER_1FB_POLAR_BEAR_CUB_GREEN, ACTOR_1EB_POLAR_BEAR_CUB_GREEN, ASSET_44D_MODEL_POLAR_BEAR_CUB_GREEN,
|
||||
0x1, D_80391DF0,
|
||||
func_8038A384, func_80326224, actor_draw,
|
||||
func_8038A384, actor_update_func_80326224, actor_draw,
|
||||
2500, 0, 1.2f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391E50 = { MARKER_1FC_POLAR_BEAR_CUB_RED, ACTOR_1EC_POLAR_BEAR_CUB_RED, ASSET_44E_MODEL_POLAR_BEAR_CUB_RED,
|
||||
0x1, D_80391DF0,
|
||||
func_8038A384, func_80326224, actor_draw,
|
||||
func_8038A384, actor_update_func_80326224, actor_draw,
|
||||
2500, 0, 1.2f, 0
|
||||
};
|
||||
|
||||
f32 FP_D_80391E74[3] = {-5.0f, 180.0f, 1.0f};
|
||||
Struct_FP_3E00 D_80391E80[] ={
|
||||
{0x11, MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE, 0x1EE},
|
||||
{0x12, MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE, 0x1F0},
|
||||
{0x13, MARKER_1FF_RED_PRESENT_COLLECTIBLE, ACTOR_1F1_RED_PRESENT_COLLECTIBLE, 0x1F2}
|
||||
{LEVEL_FLAG_11_FP_UNKNOWN, MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, ACTOR_1ED_BLUE_PRESENT_COLLECTIBLE, 0x1EE},
|
||||
{LEVEL_FLAG_12_FP_UNKNOWN, MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, ACTOR_1EF_GREEN_PRESENT_COLLECTIBLE, 0x1F0},
|
||||
{LEVEL_FLAG_13_FP_UNKNOWN, MARKER_1FF_RED_PRESENT_COLLECTIBLE, ACTOR_1F1_RED_PRESENT_COLLECTIBLE, 0x1F2}
|
||||
};
|
||||
|
||||
/* .code */
|
||||
@@ -123,7 +123,7 @@ void func_8038A384(Actor *this){
|
||||
}
|
||||
}//L8038A4E4
|
||||
|
||||
sp34 = levelSpecificFlags_get(0x11) + levelSpecificFlags_get(0x12) + levelSpecificFlags_get(0x13);
|
||||
sp34 = levelSpecificFlags_get(LEVEL_FLAG_11_FP_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_12_FP_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_13_FP_UNKNOWN);
|
||||
sp38 = (sp34 == 1) ? ASSET_C17_TEXT_UNKNOWN
|
||||
: (sp34 == 2) ? ASSET_C18_TEXT_UNKNOWN
|
||||
: ASSET_C19_TEXT_UNKNOWN;
|
||||
@@ -134,14 +134,14 @@ void func_8038A384(Actor *this){
|
||||
|
||||
switch(this->state){
|
||||
case 1://L8038A5B0
|
||||
if(!levelSpecificFlags_get(0x19) && func_80329530(this, 0xfa)){
|
||||
if(!levelSpecificFlags_get(LEVEL_FLAG_19_FP_UNKNOWN) && func_80329530(this, 0xfa)){
|
||||
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
|
||||
if(sp34 == 0
|
||||
&& !jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3)
|
||||
&& !jiggyscore_isSpawned(JIGGY_2C_FP_BOGGY_3)
|
||||
){
|
||||
if (gcdialog_showText(ASSET_C1A_TEXT_UNKNOWN, 0x2a, NULL, NULL, NULL, NULL)) {
|
||||
levelSpecificFlags_set(0x19, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_19_FP_UNKNOWN, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -237,7 +237,7 @@ void func_80388EE8(ParticleEmitter *pCtrl){
|
||||
{0.3f, 0.45f},
|
||||
0.0f, 0.01f
|
||||
};
|
||||
static struct42s D_80391D58 = {
|
||||
static ParticleSettingsVelocityPosition D_80391D58 = {
|
||||
{{-10.0f, 10.0f, -10.0f}, {10.0f, 240.0f, 10.0f}}, /*position*/
|
||||
{{0.0f, 0.0f, 0.0f}, {0.0f, 20.0f, 0.0f}} /*velocity*/
|
||||
};
|
||||
|
@@ -13,7 +13,7 @@ ActorAnimationInfo D_80392680[] = {
|
||||
|
||||
ActorInfo D_80392690 = { 0x20D, 0x33D, 0x38A,
|
||||
0x1, D_80392680,
|
||||
func_80390388, func_80326224, func_80390290,
|
||||
func_80390388, actor_update_func_80326224, func_80390290,
|
||||
2500, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
@@ -35,10 +35,11 @@ Actor *func_80390290(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
}
|
||||
|
||||
|
||||
int func_80390334(void){
|
||||
if( levelSpecificFlags_get(0x11) && levelSpecificFlags_get(0x12) && levelSpecificFlags_get(0x13)){
|
||||
return TRUE;
|
||||
}
|
||||
int func_80390334(void) {
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_11_FP_UNKNOWN) && levelSpecificFlags_get(LEVEL_FLAG_12_FP_UNKNOWN) && levelSpecificFlags_get(LEVEL_FLAG_13_FP_UNKNOWN)) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -47,9 +48,9 @@ void func_80390388(Actor *this){
|
||||
if(!this->volatile_initialized){
|
||||
this->volatile_initialized = TRUE;
|
||||
if(jiggyscore_isSpawned(JIGGY_2E_FP_PRESENTS) || jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)){
|
||||
levelSpecificFlags_set(0x11, TRUE);
|
||||
levelSpecificFlags_set(0x12, TRUE);
|
||||
levelSpecificFlags_set(0x13, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_11_FP_UNKNOWN, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_12_FP_UNKNOWN, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_13_FP_UNKNOWN, TRUE);
|
||||
}
|
||||
if(jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3) || jiggyscore_isSpawned(JIGGY_2C_FP_BOGGY_3)){
|
||||
this->unk38_31 = FALSE;
|
||||
|
@@ -14,7 +14,7 @@ extern ActorAnimationInfo D_803926F0[]= {
|
||||
|
||||
extern ActorInfo D_80392700 = { MARKER_20F_WOZZA_IN_CAVE, ACTOR_33F_WOZZA_IN_CAVE, ASSET_494_MODEL_WOZZA,
|
||||
0x1, D_803926F0,
|
||||
func_80390630, func_80326224, actor_draw,
|
||||
func_80390630, actor_update_func_80326224, actor_draw,
|
||||
2500, 0, 1.6f, 0
|
||||
};
|
||||
|
||||
@@ -34,7 +34,7 @@ void func_80390630(Actor *this){
|
||||
this->volatile_initialized = TRUE;
|
||||
this->marker->propPtr->unk8_3 = FALSE;
|
||||
actor_collisionOn(this);
|
||||
this->unk38_31 = jiggyscore_isCollected(JIGGY_32_FP_WOZZA) || levelSpecificFlags_get(0x26) ? 0 : 1;
|
||||
this->unk38_31 = jiggyscore_isCollected(JIGGY_32_FP_WOZZA) || levelSpecificFlags_get(LEVEL_FLAG_26_FP_UNKNOWN) ? 0 : 1;
|
||||
}//L80390714
|
||||
|
||||
if(this->unk38_31){
|
||||
@@ -66,18 +66,18 @@ void func_80390630(Actor *this){
|
||||
}
|
||||
}
|
||||
|
||||
if(func_80329530(this, 350)){
|
||||
if(player_getTransformation() == TRANSFORM_4_WALRUS){
|
||||
if(!levelSpecificFlags_get(0x31)){
|
||||
if(gcdialog_showText(ASSET_C27_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)){
|
||||
levelSpecificFlags_set(0x31, TRUE);
|
||||
if (func_80329530(this, 350)) {
|
||||
if (player_getTransformation() == TRANSFORM_4_WALRUS) {
|
||||
if (!levelSpecificFlags_get(LEVEL_FLAG_31_FP_UNKNOWN)) {
|
||||
if (gcdialog_showText(ASSET_C27_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)) {
|
||||
levelSpecificFlags_set(LEVEL_FLAG_31_FP_UNKNOWN, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(!levelSpecificFlags_get(0x32)){
|
||||
if(gcdialog_showText(ASSET_C26_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)){
|
||||
levelSpecificFlags_set(0x32, TRUE);
|
||||
else {
|
||||
if (!levelSpecificFlags_get(LEVEL_FLAG_32_FP_UNKNOWN)) {
|
||||
if (gcdialog_showText(ASSET_C26_TEXT_UNKNOWN, 0x23, NULL, NULL, NULL, NULL)) {
|
||||
levelSpecificFlags_set(LEVEL_FLAG_32_FP_UNKNOWN, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -12,19 +12,19 @@ ActorAnimationInfo D_803924A0[] = {
|
||||
|
||||
ActorInfo D_803924B0 = { MARKER_208_BLUE_PRESENT, ACTOR_33A_BLUE_PRESENT, ASSET_47F_MODEL_XMAS_GIFT_BLUE,
|
||||
0x1, D_803924A0,
|
||||
func_8038F144, func_80326224, func_8038F0F0,
|
||||
func_8038F144, actor_update_func_80326224, func_8038F0F0,
|
||||
2500, 0, 1.2f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_803924D4 = { MARKER_209_GREEN_PRESENT, ACTOR_33B_GREEN_PRESENT, ASSET_480_MODEL_XMAS_GIFT_GREEN,
|
||||
0x1, D_803924A0,
|
||||
func_8038F144, func_80326224, func_8038F0F0,
|
||||
func_8038F144, actor_update_func_80326224, func_8038F0F0,
|
||||
2500, 0, 1.2f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_803924F8 = { MARKER_20A_RED_PRESENT, ACTOR_33C_RED_PRESENT, ASSET_481_MODEL_XMAS_GIFT_RED,
|
||||
0x1, D_803924A0,
|
||||
func_8038F144, func_80326224, func_8038F0F0,
|
||||
func_8038F144, actor_update_func_80326224, func_8038F0F0,
|
||||
2500, 0, 1.2f, 0
|
||||
};
|
||||
|
||||
|
@@ -16,7 +16,7 @@ ActorAnimationInfo FP_D_80391A90[] ={
|
||||
ActorInfo FP_D_80391AB0 = {
|
||||
MARKER_B9_FP_SNOWMAN_BUTTON, ACTOR_116_FP_SNOWMAN_BUTTON, ASSET_421_MODEL_FP_SNOWMAN_BUTTON,
|
||||
0x1, FP_D_80391A90,
|
||||
FP_func_80386CF8, func_80326224, func_80386B80,
|
||||
FP_func_80386CF8, actor_update_func_80326224, func_80386B80,
|
||||
0, 0x800, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -28,7 +28,7 @@ ParticleScaleAndLifetimeRanges D_80391AD4 = {
|
||||
0.0f, 0.01f,
|
||||
};
|
||||
|
||||
struct43s D_80391AFC = {
|
||||
ParticleSettingsVelocityAccelerationPosition D_80391AFC = {
|
||||
{{-300.0f, 350.0f, -300.0f}, {300.0f, 800.0f, 300.0f}},
|
||||
{{0.0f, -800.0f, 0.0f}, {0.0f, -800.0f, 0.0f}},
|
||||
{{-50.0f, -50.0f, -50.0f}, {50.0f, 50.0f, 50.0f}}
|
||||
@@ -58,7 +58,7 @@ void FP_func_80386BEC(Actor *this){
|
||||
particleEmitter_setRGB(pCtrl, D_80391B44);
|
||||
particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST);
|
||||
particleEmitter_setPosition(pCtrl, plyr_pos);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80391AFC);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80391AFC);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80391AD4);
|
||||
particleEmitter_emitN(pCtrl, 12);
|
||||
}
|
||||
|
@@ -21,30 +21,30 @@ ActorAnimationInfo D_80391F50[] = {
|
||||
|
||||
ActorInfo D_80391F88 = { MARKER_200_TWINKLY_BLUE, ACTOR_332_TWINKLY_BLUE, ASSET_448_MODEL_TWINKLY_BLUE,
|
||||
0x1, D_80391F50,
|
||||
func_8038C9A0, func_80326224, func_8038C1F8,
|
||||
func_8038C9A0, actor_update_func_80326224, func_8038C1F8,
|
||||
0, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391FAC = { MARKER_201_TWINKLY_GREEN, ACTOR_333_TWINKLY_GREEN, ASSET_449_MODEL_TWINKLY_GREEN,
|
||||
0x1, D_80391F50,
|
||||
func_8038C9A0, func_80326224, func_8038C1F8,
|
||||
func_8038C9A0, actor_update_func_80326224, func_8038C1F8,
|
||||
0, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391FD0 = { MARKER_202_TWINKLY_ORANGE, ACTOR_334_TWINKLY_ORANGE, ASSET_44A_MODEL_TWINKLY_ORANGE,
|
||||
0x1, D_80391F50,
|
||||
func_8038C9A0, func_80326224, func_8038C1F8,
|
||||
func_8038C9A0, actor_update_func_80326224, func_8038C1F8,
|
||||
0, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391FF4 = { MARKER_203_TWINKLY_RED, ACTOR_335_TWINKLY_RED, ASSET_44B_MODEL_TWINKLY_RED,
|
||||
0x1, D_80391F50,
|
||||
func_8038C9A0, func_80326224, func_8038C1F8,
|
||||
func_8038C9A0, actor_update_func_80326224, func_8038C1F8,
|
||||
0, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
Struct6Cs FP_D_80392018 = {NULL, NULL, NULL, (void*)func_8038C0B0};
|
||||
struct43s D_80392028 = {
|
||||
ParticleSettingsVelocityAccelerationPosition D_80392028 = {
|
||||
{{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}},
|
||||
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
|
||||
{{ -15.0f, -15.0f, -15.0f}, { 15.0f, 15.0f, 15.0f}}
|
||||
@@ -95,7 +95,7 @@ void func_8038C260(f32 position[3], s32 count, enum asset_e model_id){
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
particleEmitter_setModel(pCtrl, model_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392028);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392028);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl,
|
||||
400.0f, 400.0f, 400.0f,
|
||||
800.0f, 800.0f, 800.0f
|
||||
@@ -104,8 +104,8 @@ void func_8038C260(f32 position[3], s32 count, enum asset_e model_id){
|
||||
particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.02f);
|
||||
particleEmitter_setParticleLifeTimeRange(pCtrl, 1.5f, 1.5f);
|
||||
particleEmitter_setFade(pCtrl, 0.0f, 0.3f);
|
||||
func_802EF9F8(pCtrl, 0.6f);
|
||||
func_802EFA18(pCtrl, 0);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.6f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 0);
|
||||
func_802EFA20(pCtrl, 1.0f, 1.3f);
|
||||
particleEmitter_setSfx(pCtrl, SFX_7B_ICE_BREAKING_1, 8000);
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
|
@@ -19,7 +19,7 @@ ActorAnimationInfo D_803920C0[] ={
|
||||
|
||||
ActorInfo D_803920E8 = { 0x204, 0x336, 0x442,
|
||||
0x1, D_803920C0,
|
||||
func_8038D6C8, func_80326224, FP_func_8038CED0,
|
||||
func_8038D6C8, actor_update_func_80326224, FP_func_8038CED0,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -42,7 +42,7 @@ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){
|
||||
0.0f,
|
||||
0.7f
|
||||
};
|
||||
static struct43s D_80392134 = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_80392134 = {
|
||||
{{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}},
|
||||
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
|
||||
{{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}}
|
||||
@@ -52,14 +52,14 @@ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
particleEmitter_setModel(pCtrl, model_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392134);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392134);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl,
|
||||
100.0f, 100.0f, 100.0f,
|
||||
200.0f, 200.0f, 200.0f
|
||||
);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039210C);
|
||||
func_802EF9F8(pCtrl, 0.6f);
|
||||
func_802EFA18(pCtrl, 3);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.6f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 3);
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
|
||||
0.01f
|
||||
};
|
||||
static s32 D_803921A4[3] = { 0xDC, 0xDC, 0xE6};
|
||||
static struct43s D_803921B0 = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_803921B0 = {
|
||||
{{-200.0f, 0.0f, -200.0f}, {200.0f, 200.0f, 200.0f}},
|
||||
{{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}},
|
||||
{{-50.0f, 0.0f, -50.0f}, {50.0f, 200.0f, 50.0f}}
|
||||
@@ -85,7 +85,7 @@ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
|
||||
particleEmitter_setRGB(pCtrl, D_803921A4);
|
||||
particleEmitter_setSprite(pCtrl, sprite_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803921B0);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803921B0);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039217C);
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
@@ -99,7 +99,7 @@ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
|
||||
0.0f, 0.3f
|
||||
};
|
||||
|
||||
static struct43s D_80392220 = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_80392220 = {
|
||||
{{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}},
|
||||
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
|
||||
{{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}}
|
||||
@@ -109,14 +109,14 @@ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
particleEmitter_setModel(pCtrl, model_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392220);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392220);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl,
|
||||
200.0f, 200.0f, 200.0f,
|
||||
300.0f, 300.0f, 300.0f
|
||||
);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803921F8);
|
||||
func_802EF9F8(pCtrl, 0.2f);
|
||||
func_802EFA18(pCtrl, 2);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.2f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 2);
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
|
||||
0.0f,
|
||||
0.3f
|
||||
};
|
||||
static struct43s D_80392290 = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_80392290 = {
|
||||
{{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}},
|
||||
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
|
||||
{{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}}
|
||||
@@ -139,10 +139,10 @@ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
particleEmitter_setSprite(pCtrl, sprite_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392290);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_80392290);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392268);
|
||||
func_802EF9F8(pCtrl, 0.2f);
|
||||
func_802EFA18(pCtrl, 2);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.2f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 2);
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){
|
||||
0.0f, 0.01f
|
||||
};
|
||||
static s32 D_80392300[3] = { 0xDC, 0xDC, 0xE6};
|
||||
static struct43s D_8039230C = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_8039230C = {
|
||||
{{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}},
|
||||
{{0.0f, -10.0f, 0.0f}, {0.0f, -10.0f, 0.0f}},
|
||||
{{-80.0f, 0.0f, -80.0f}, {50.0f, 200.0f, 80.0f}}
|
||||
@@ -166,7 +166,7 @@ void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){
|
||||
particleEmitter_setRGB(pCtrl, D_80392300);
|
||||
particleEmitter_setSprite(pCtrl, sprite_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8039230C);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8039230C);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803922D8);
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
@@ -21,7 +21,7 @@ extern ActorAnimationInfo D_80392390[] ={
|
||||
|
||||
extern ActorInfo D_803923D0 = { MARKER_205_TWINKLY_MUNCHER, ACTOR_337_TWINKLY_MUNCHER, ASSET_496_MODEL_TWINKLY_MUNCHER,
|
||||
0x1, D_80392390,
|
||||
func_8038E094, func_80326224, func_8038DD70,
|
||||
func_8038E094, actor_update_func_80326224, func_8038DD70,
|
||||
2500, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -32,7 +32,7 @@ ActorAnimationInfo D_80392520[] ={
|
||||
|
||||
ActorInfo D_80392588 = { MARKER_20B_WOZZA, ACTOR_1F3_WOZZA, ASSET_494_MODEL_WOZZA,
|
||||
0x1, D_80392520,
|
||||
FP_func_8038F7AC, func_80326224, func_8038F210,
|
||||
FP_func_8038F7AC, actor_update_func_80326224, func_8038F210,
|
||||
0, 0, 1.6f, 0
|
||||
};
|
||||
|
||||
@@ -192,7 +192,7 @@ void FP_func_8038F7AC(Actor *this){
|
||||
return;
|
||||
}
|
||||
|
||||
if(levelSpecificFlags_get(0x26)){
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_26_FP_UNKNOWN)) {
|
||||
this->unk38_31 = TRUE;
|
||||
func_8038F274();
|
||||
}
|
||||
|
@@ -24,7 +24,7 @@ ActorAnimationInfo D_803925C0[] = {
|
||||
|
||||
ActorInfo D_80392628 = { MARKER_20C_WOZZAS_JIGGY, ACTOR_1F4_WOZZAS_JIGGY, ASSET_495_MODEL_WOZZAS_JIGGY,
|
||||
0x1, D_803925C0,
|
||||
func_8038FF54, func_80326224, func_8038FF00,
|
||||
func_8038FF54, actor_update_func_80326224, func_8038FF00,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -76,7 +76,7 @@ void func_8038FF54(Actor *this){
|
||||
sp40[2] = (f32)(s32)sp40[2];
|
||||
bundle_setYaw(this->yaw + 90.0f);
|
||||
jiggy_spawn(JIGGY_32_FP_WOZZA, sp40);
|
||||
levelSpecificFlags_set(0x26, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_26_FP_UNKNOWN, TRUE);
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
else if(this->marker->unk14_21){//L8039016C
|
||||
@@ -85,7 +85,7 @@ void func_8038FF54(Actor *this){
|
||||
particleEmitter_setSprite(sp3C, ASSET_713_SPRITE_SPARKLE_YELLOW);
|
||||
particleEmitter_setStartingFrameRange(sp3C, 1, 6);
|
||||
particleEmitter_setPosition(sp3C, sp40);
|
||||
particleEmitter_setParticleSpawnPositionRange(sp3C,
|
||||
particleEmitter_setSpawnPositionRange(sp3C,
|
||||
0.0f, 20.0f, 0.0f,
|
||||
0.0f, 20.0f, 0.0f
|
||||
);
|
||||
@@ -93,7 +93,7 @@ void func_8038FF54(Actor *this){
|
||||
-180.0f, 0.0f, -180.0f,
|
||||
180.0f, 280.0f, 180.0f
|
||||
);
|
||||
particleEmitter_setParticleAccelerationRange(sp3C,
|
||||
particleEmitter_setAccelerationRange(sp3C,
|
||||
0.0f, -60.0f, 0.0f,
|
||||
0.0f, -90.0f, 0.0f
|
||||
);
|
||||
|
@@ -9,7 +9,7 @@ void chXmasTree_update(Actor *this);
|
||||
ActorInfo chXmasTree = {
|
||||
MARKER_BA_XMAS_TREE, ACTOR_15F_XMAS_TREE, ASSET_488_MODEL_XMAS_TREE,
|
||||
0x1, NULL,
|
||||
chXmasTree_update, func_80326224, chXmasTree_draw,
|
||||
chXmasTree_update, actor_update_func_80326224, chXmasTree_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -18,7 +18,7 @@ ActorInfo chXmasTree = {
|
||||
Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor *this = marker_getActor(marker);
|
||||
func_8033A45C(5, this->unk38_31);
|
||||
func_8033A45C(6, fileProgressFlag_get(0x13) && !func_8033A0F0(5));
|
||||
func_8033A45C(6, fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME) && !func_8033A0F0(5));
|
||||
return actor_draw(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ void __chXmasTree_80386EF4(Actor *this, int arg1){
|
||||
}
|
||||
|
||||
void __chXmasTree_80386F3C(void){
|
||||
levelSpecificFlags_set(0x29, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_29_FP_UNKNOWN, TRUE);
|
||||
func_803228D8();
|
||||
volatileFlag_set(VOLATILE_FLAG_E, 1);
|
||||
func_802E4078(MAP_53_FP_CHRISTMAS_TREE, 1, 0);
|
||||
@@ -100,14 +100,15 @@ void chXmasTree_update(Actor *this){
|
||||
}
|
||||
__spawnQueue_add_0(__chXmasTree_spawnSwitch);
|
||||
__spawnQueue_add_1((GenFunction_1)__chXmasTree_spawnStar, reinterpret_cast(s32, this->marker));
|
||||
if(fileProgressFlag_get(0x13)){
|
||||
if(fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME)){
|
||||
__chXmasTree_80386F84(this);
|
||||
mapSpecificFlags_set(2, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
this->depth_mode = 1;
|
||||
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(0x29)){
|
||||
|
||||
if (jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
|
||||
__chXmasTree_80386EF4(this, 1);
|
||||
return;
|
||||
}
|
||||
@@ -115,7 +116,7 @@ void chXmasTree_update(Actor *this){
|
||||
switch(this->state){
|
||||
case 1: // L80387268
|
||||
__chXmasTree_80386EF4(this, 0);
|
||||
if(fileProgressFlag_get(0x13)){
|
||||
if(fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME)){
|
||||
__chXmasTree_80386F84(this);
|
||||
}
|
||||
break;
|
||||
|
@@ -8,13 +8,13 @@ void func_80390EB0(Actor *this);
|
||||
/* .data */
|
||||
ActorInfo FP_D_80392840 = { MARKER_245_XMAS_TREE_EGG_TOLL, ACTOR_353_XMAS_TREE_EGG_TOLL, ASSET_402_MODEL_EGG_TOLL,
|
||||
0x0, NULL,
|
||||
func_80390EB0, func_80326224, func_80325340,
|
||||
func_80390EB0, actor_update_func_80326224, func_80325340,
|
||||
2000, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void func_80390C70(f32 position[3]){
|
||||
static struct40s FP_D_80392864 = {{{1.7f, 2.0f}, {2.4f, 2.7f}, {0.0f, 0.01f}, {4.0f, 7.0f}, 0.3f, 0.7f}, 4.0f, 1.0f};
|
||||
static ParticleSettingsScaleAndLifetimeDrawModeEmitCount FP_D_80392864 = {{{1.7f, 2.0f}, {2.4f, 2.7f}, {0.0f, 0.01f}, {4.0f, 7.0f}, 0.3f, 0.7f}, 4.0f, 1.0f};
|
||||
static s32 D_80392894[3] = {0xFF, 0XFF, 0xFF};
|
||||
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(1);
|
||||
@@ -23,7 +23,7 @@ void func_80390C70(f32 position[3]){
|
||||
particleEmitter_setRGB(pCtrl, D_80392894);
|
||||
particleEmitter_setAlpha(pCtrl, 0x41);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl,
|
||||
particleEmitter_setSpawnPositionRange(pCtrl,
|
||||
-40.0f, 110.0f, -40.0f,
|
||||
40.0f, 110.0f, 40.0f
|
||||
);
|
||||
@@ -35,7 +35,7 @@ void func_80390C70(f32 position[3]){
|
||||
}
|
||||
|
||||
void func_80390D58(f32 position[3]){
|
||||
static struct40s D_803928A0 = {{{0.05f, 0.1f}, {0.1f, 0.2f}, {0.0f, 0.01f}, {0.9f, 1.3f}, 0.3f, 0.7f}, 4.0f, 1.0f};
|
||||
static ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_803928A0 = {{{0.05f, 0.1f}, {0.1f, 0.2f}, {0.0f, 0.01f}, {0.9f, 1.3f}, 0.3f, 0.7f}, 4.0f, 1.0f};
|
||||
static s32 D_803928D0[3] = {0xFF, 0xFF, 0xFF};
|
||||
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(1);
|
||||
@@ -44,7 +44,7 @@ void func_80390D58(f32 position[3]){
|
||||
particleEmitter_setRGB(pCtrl, D_803928D0);
|
||||
particleEmitter_setAlpha(pCtrl, 0xFF);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl,
|
||||
particleEmitter_setSpawnPositionRange(pCtrl,
|
||||
-40.0f, 50.0,-40.0f,
|
||||
40.0f, 70.0, 40.0f
|
||||
);
|
||||
@@ -52,7 +52,7 @@ void func_80390D58(f32 position[3]){
|
||||
-40.0f, 120.0,-40.0f,
|
||||
40.0f, 180.0, 40.0f
|
||||
);
|
||||
particleEmitter_setParticleAccelerationRange(pCtrl,
|
||||
particleEmitter_setAccelerationRange(pCtrl,
|
||||
0.0f, -60.0f, 0.0f,
|
||||
0.0f, -100.0f, 0.0f
|
||||
);
|
||||
|
@@ -8,7 +8,7 @@ void func_80390BDC(Actor *this);
|
||||
/* .data */
|
||||
ActorInfo D_80392730 = { 0x210, 0x340, 0x4D2,
|
||||
0x0, NULL,
|
||||
func_80390BDC, func_80326224, func_803908F0,
|
||||
func_80390BDC, actor_update_func_80326224, func_803908F0,
|
||||
0, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ Actor *func_803908F0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
|
||||
void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){
|
||||
static ParticleScaleAndLifetimeRanges D_80392754 = {{0.2f, 0.4f}, {-1.0f, -1.0f}, {0.0f, 0.02f}, {2.2f, 2.2f}, 0.0f, 0.3f};
|
||||
static struct43s D_8039277C = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_8039277C = {
|
||||
{{-300.0f, 350.0f, -300.0f}, {300.0f, 600.0f, 300.0f}}, /*position*/
|
||||
{{ 0.0f, -1000.0f, 0.0f}, { 0.0f, -1000.0f, 0.0f}}, /*velocitcy*/
|
||||
{{-100.0f, 0.0f, -100.0f}, {100.0f, 200.0f, 100.0f}} /*acceleration*/
|
||||
@@ -30,14 +30,14 @@ void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||
particleEmitter_setModel(pCtrl, model_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8039277C);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8039277C);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl,
|
||||
100.0f, 100.0f, 100.0f,
|
||||
250.0f, 250.0f, 250.0f
|
||||
);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392754);
|
||||
func_802EF9F8(pCtrl, 0.6f);
|
||||
func_802EFA18(pCtrl, 0);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.6f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 0);
|
||||
func_802EFA20(pCtrl, 1.0f, 1.3f);
|
||||
particleEmitter_setSfx(pCtrl, SFX_7B_ICE_BREAKING_1, 8000);
|
||||
particleEmitter_emitN(pCtrl, cnt);
|
||||
@@ -45,7 +45,7 @@ void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){
|
||||
|
||||
void func_80390A30(f32 position[3], s32 cnt, enum asset_e sprite_id){
|
||||
static ParticleScaleAndLifetimeRanges D_803927C4 = {{0.6f, 0.8f}, {1.0f, 1.4f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01f};
|
||||
static struct43s D_803927EC = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_803927EC = {
|
||||
{{-200.0f, 0.0f, -200.0f}, {200.0f, 200.0f, 200.0f}}, /*position*/
|
||||
{{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}}, /*velocitcy*/
|
||||
{{ -50.0f, 0.0f, -50.0f}, { 50.0f, 200.0f, 50.0f}} /*acceleration*/
|
||||
@@ -55,7 +55,7 @@ void func_80390A30(f32 position[3], s32 cnt, enum asset_e sprite_id){
|
||||
particleEmitter_setRGB(pCtrl, D_80392834);
|
||||
particleEmitter_setSprite(pCtrl, sprite_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803927EC);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803927EC);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803927C4);
|
||||
particleEmitter_emitN(pCtrl, cnt);
|
||||
}
|
||||
@@ -83,18 +83,18 @@ void func_80390B70(Actor *this){
|
||||
timedFunc_set_1(2.5f, (GenFunction_1)func_80390B2C, reinterpret_cast(s32, this->marker));
|
||||
}
|
||||
|
||||
void func_80390BDC(Actor *this){
|
||||
void func_80390BDC(Actor *this) {
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
actor_collisionOff(this);
|
||||
if(!this->volatile_initialized){
|
||||
|
||||
if (!this->volatile_initialized) {
|
||||
this->volatile_initialized = TRUE;
|
||||
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE)){
|
||||
|
||||
if (jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE)) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
else{
|
||||
if(levelSpecificFlags_get(0x29)){
|
||||
func_80390B70(this);
|
||||
}
|
||||
else if (levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
|
||||
func_80390B70(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -17,7 +17,7 @@ void func_8038ECD8(Actor *this);
|
||||
/* .data */
|
||||
ActorInfo D_80392470 = { 0x207, 0x339, 0x426,
|
||||
0x1, NULL,
|
||||
func_8038ECD8, func_80326224, func_8038EBD0,
|
||||
func_8038ECD8, actor_update_func_80326224, func_8038EBD0,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -15,7 +15,7 @@ ActorAnimationInfo D_80392400[] = {
|
||||
|
||||
ActorInfo D_80392420 = { 0x206, 0x338, 0x486,
|
||||
0x1, D_80392400,
|
||||
func_8038E940, func_80326224, func_8038E720,
|
||||
func_8038E940, actor_update_func_80326224, func_8038E720,
|
||||
4500, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -50,11 +50,11 @@ void func_8038E840(f32 position[3], s32 cnt, enum asset_e sprite_id){
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||
particleEmitter_setSprite(pCtrl, sprite_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl,
|
||||
particleEmitter_setSpawnPositionRange(pCtrl,
|
||||
-100.0f, -80.0f, -70.0f,
|
||||
100.0f, 100.0f, 70.0f
|
||||
);
|
||||
particleEmitter_setParticleAccelerationRange(pCtrl,
|
||||
particleEmitter_setAccelerationRange(pCtrl,
|
||||
0.0f, -200.0f, 0.0f,
|
||||
0.0f, -200.0f, 0.0f
|
||||
);
|
||||
@@ -67,7 +67,7 @@ void func_8038E840(f32 position[3], s32 cnt, enum asset_e sprite_id){
|
||||
}
|
||||
|
||||
void func_8038E940(Actor *this){
|
||||
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(0x29)){
|
||||
if (jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(LEVEL_FLAG_29_FP_UNKNOWN)) {
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
this->marker->collidable = FALSE;
|
||||
subaddie_set_state_with_direction(this, 3, 0.95f, 0);
|
||||
|
@@ -23,7 +23,7 @@ ActorAnimationInfo D_80391C00[] = {
|
||||
ActorInfo D_80391C18 = {
|
||||
0x125, 0x161, 0x38b,
|
||||
0x1, D_80391C00,
|
||||
func_803881AC, func_80326224, func_80387DD0,
|
||||
func_803881AC, actor_update_func_80326224, func_80387DD0,
|
||||
0, 0, 0.35f, 0
|
||||
};
|
||||
|
||||
|
@@ -18,7 +18,7 @@ ActorAnimationInfo D_80391C40[] = {
|
||||
ActorInfo D_80391C58 = {
|
||||
0x126, 0x162, 0x38B,
|
||||
0x1, D_80391C40,
|
||||
func_80388584, func_80326224, func_803883E0,
|
||||
func_80388584, actor_update_func_80326224, func_803883E0,
|
||||
0, 0, 0.35f, 0
|
||||
};
|
||||
|
||||
|
@@ -7,7 +7,7 @@ void func_803905B0(Actor *this);
|
||||
/* .data */
|
||||
ActorInfo D_803926C0 = { 0x20E, 0x33E, 0x49C,
|
||||
0x1, NULL,
|
||||
func_803905B0, func_80326224, func_80325340,
|
||||
func_803905B0, actor_update_func_80326224, func_80325340,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -45,24 +45,24 @@ void func_8039180C(Actor *this);
|
||||
void func_80391894(Actor *this);
|
||||
|
||||
/* .data */
|
||||
ActorInfo FP_D_803928E0 = { 0x247, 0x355, 0x4E5, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_80392904 = { 0x248, 0x356, 0x4E6, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_80392928 = { 0x249, 0x357, 0x4E7, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_8039294C = { 0x24A, 0x358, 0x4E8, 0x0, NULL, func_80391040, func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_80392970 = { 0x21F, 0x22B, 0x4C4, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392994 = { 0x220, 0x22C, 0x4C5, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_803929B8 = { 0x221, 0x22D, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_803929DC = { 0x222, 0x22E, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A00 = { 0x223, 0x22F, 0x4C6, 0x1, NULL, FP_func_80391254, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A24 = { 0x24B, 0x35D, 0x4E9, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A48 = { 0x24C, 0x35E, 0x4EC, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A6C = { 0x24D, 0x35F, 0x4EA, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A90 = { 0x24E, 0x360, 0x4EB, 0x1, NULL, func_803912EC, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392AB4 = { 0x23D, 0x253, 0x512, 0x1, NULL, func_8039180C, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392AD8 = { 0x23E, 0x254, 0x513, 0x1, NULL, func_80391894, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392AFC = { 0x286, 0x3AE, 0x55B, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392B20 = { 0x21D, 0x229, 0x4C3, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392B44 = { 0x289, 0x3B0, 0x56A, 0x1, NULL, func_80391180, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo FP_D_803928E0 = { 0x247, 0x355, 0x4E5, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_80392904 = { 0x248, 0x356, 0x4E6, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_80392928 = { 0x249, 0x357, 0x4E7, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_8039294C = { 0x24A, 0x358, 0x4E8, 0x0, NULL, func_80391040, actor_update_func_80326224, actor_draw, 3000, 0, 0.0f, 0};
|
||||
ActorInfo D_80392970 = { 0x21F, 0x22B, 0x4C4, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392994 = { 0x220, 0x22C, 0x4C5, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_803929B8 = { 0x221, 0x22D, 0x4C6, 0x1, NULL, FP_func_80391254, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_803929DC = { 0x222, 0x22E, 0x4C6, 0x1, NULL, FP_func_80391254, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A00 = { 0x223, 0x22F, 0x4C6, 0x1, NULL, FP_func_80391254, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A24 = { 0x24B, 0x35D, 0x4E9, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A48 = { 0x24C, 0x35E, 0x4EC, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A6C = { 0x24D, 0x35F, 0x4EA, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392A90 = { 0x24E, 0x360, 0x4EB, 0x1, NULL, func_803912EC, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392AB4 = { 0x23D, 0x253, 0x512, 0x1, NULL, func_8039180C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392AD8 = { 0x23E, 0x254, 0x513, 0x1, NULL, func_80391894, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392AFC = { 0x286, 0x3AE, 0x55B, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392B20 = { 0x21D, 0x229, 0x4C3, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
ActorInfo D_80392B44 = { 0x289, 0x3B0, 0x56A, 0x1, NULL, func_80391180, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
|
||||
|
||||
/* .code */
|
||||
int func_80390FC0(void){
|
||||
|
@@ -28,7 +28,7 @@ ActorAnimationInfo chAncientOneAnimations[] = {
|
||||
|
||||
ActorInfo chAncientOne = { MARKER_F4_ANCIENT_ONE, ACTOR_147_ANCIENT_ONE, ASSET_3E8_MODEL_ANCIENT_ONE,
|
||||
0x1, chAncientOneAnimations,
|
||||
chAncientOne_update, func_80326224, chAncientOne_draw,
|
||||
chAncientOne_update, actor_update_func_80326224, chAncientOne_draw,
|
||||
0, 0x100, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -202,7 +202,7 @@ void chGobi1_update(Actor *this){
|
||||
}//L80387830
|
||||
|
||||
if(this->state == 4){
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
tmp_s1 = func_8033A12C(marker_loadModelBin(this->marker));
|
||||
if(tmp_s1){
|
||||
player_getPosition(sp54);
|
||||
|
@@ -224,7 +224,7 @@ void chGobi2_update(Actor *this){
|
||||
}
|
||||
|
||||
if(this->state == 6){
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
}
|
||||
|
||||
if(this->state == 8){
|
||||
|
@@ -24,7 +24,7 @@ void __chGobi3_spawnHoneyComb(Actor *this){
|
||||
TUPLE_ASSIGN(sp18, -6885.0f, 2383.0f, 1335.0f);
|
||||
bundle_setYaw(this->yaw);
|
||||
func_802CA1CC(HONEYCOMB_C_GV_GOBI_3);
|
||||
bundle_spawn_f32(0xd, sp18);
|
||||
bundle_spawn_f32(BUNDLE_D__EMPTY_HONEYCOMB, sp18);
|
||||
}
|
||||
|
||||
void __chGobi3_runaway(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||
@@ -143,7 +143,7 @@ void chGobi3_update(Actor *this){
|
||||
}
|
||||
|
||||
if(this->state == 4){
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
if(timedFuncQueue_is_empty())
|
||||
chGobi3_setState(this, 6);
|
||||
}
|
||||
|
@@ -17,7 +17,7 @@ Actor *chGobiRock_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx
|
||||
/* .data */
|
||||
ActorInfo chGobiRock = { MARKER_BE_GOBI_ROCK, ACTOR_130_GOBI_ROCK, ASSET_3E4_MODEL_GOBI_ROCK,
|
||||
0, NULL,
|
||||
chGobiRock_update, func_80326224, chGobiRock_draw,
|
||||
chGobiRock_update, actor_update_func_80326224, chGobiRock_draw,
|
||||
0, 0x533, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -8,7 +8,7 @@ void chGobiRope_update(Actor *this);
|
||||
/* .data */
|
||||
ActorInfo chGobiRope = { MARKER_BD_GOBI_ROPE, ACTOR_12F_GOBI_ROPE, ASSET_3E3_MODEL_GOBI_ROPE,
|
||||
0, NULL,
|
||||
chGobiRope_update, func_80326224, actor_draw,
|
||||
chGobiRope_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0x533, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -21,7 +21,7 @@ ActorAnimationInfo D_803912E0[] = {
|
||||
};
|
||||
ActorInfo D_80391318 = { MARKER_AA_HISTUP, ACTOR_11C_HISTUP, ASSET_3DE_MODEL_HISTUP,
|
||||
0x1, D_803912E0,
|
||||
func_8038DBDC, func_80326224, func_8038DA18,
|
||||
func_8038DBDC, actor_update_func_80326224, func_8038DA18,
|
||||
2500, 0, 1.7f, 0
|
||||
};
|
||||
|
||||
|
@@ -83,9 +83,10 @@ void __chMazeCtrl_setState(Actor *this, s32 next_state){
|
||||
else{//L8038F754
|
||||
timed_playSfx(1.0f, SFX_7F_HEAVYDOOR_SLAM, 1.0f, 32000);
|
||||
}
|
||||
if(!levelSpecificFlags_get(0x16)){
|
||||
|
||||
if (!levelSpecificFlags_get(LEVEL_FLAG_16_GV_UNKNOWN)) {
|
||||
gcdialog_showText(ASSET_A82_TEXT_SANDYBUTT_START_MAZE, 4, NULL, NULL, NULL, NULL);
|
||||
levelSpecificFlags_set(0x16, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_16_GV_UNKNOWN, TRUE);
|
||||
}
|
||||
}//L8038F794
|
||||
|
||||
@@ -133,9 +134,9 @@ void __chMazeCtrl_setState(Actor *this, s32 next_state){
|
||||
if(++local->unk4 == 1)
|
||||
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7fff);
|
||||
|
||||
if(!levelSpecificFlags_get(0x17)){
|
||||
if(!levelSpecificFlags_get(LEVEL_FLAG_17_GV_UNKNOWN)){
|
||||
gcdialog_showText(ASSET_A83_TEXT_SANDYBUTT_DONE, 4, NULL, NULL, NULL, NULL);
|
||||
levelSpecificFlags_set(0x17, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_17_GV_UNKNOWN, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +166,7 @@ void chMazeCtrl_update(Actor *this){
|
||||
local->unk8 = 1.0f;
|
||||
}//L8038FA8C
|
||||
if(jiggyscore_isCollected(JIGGY_41_GV_MAZE))
|
||||
levelSpecificFlags_set(0x17, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_17_GV_UNKNOWN, TRUE);
|
||||
}//L8038FAA4
|
||||
|
||||
player_getPosition(sp3C);
|
||||
@@ -174,11 +175,12 @@ void chMazeCtrl_update(Actor *this){
|
||||
if(sp38 != NULL && func_8034DC80(sp38, sp3C)){
|
||||
__chMazeCtrl_setState(this, 2);
|
||||
}
|
||||
if( !levelSpecificFlags_get(0x15)
|
||||
|
||||
if (!levelSpecificFlags_get(LEVEL_FLAG_15_GV_UNKNOWN)
|
||||
&& ml_timer_update(&local->unk8, sp34)
|
||||
&& gcdialog_showText(ASSET_A81_TEXT_SANDYBUTT_ENTER, 0, NULL, NULL, NULL, NULL)
|
||||
){
|
||||
levelSpecificFlags_set(0x15, TRUE);
|
||||
) {
|
||||
levelSpecificFlags_set(LEVEL_FLAG_15_GV_UNKNOWN, TRUE);
|
||||
}
|
||||
}//L8038FB34
|
||||
|
||||
|
@@ -20,13 +20,13 @@ ActorAnimationInfo chSarcophagusAnimations[] = {
|
||||
|
||||
ActorInfo chSarcophagus = { MARKER_A8_GV_MAZE_SARCOPHAGUS, ACTOR_11A_GV_MAZE_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS,
|
||||
0x1, chSarcophagusAnimations,
|
||||
chSarcophagus_update, func_80326224, actor_draw,
|
||||
chSarcophagus_update, actor_update_func_80326224, actor_draw,
|
||||
2500, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo chSNSSarcophagus = { MARKER_23B_GV_SNS_SARCOPHAGUS, ACTOR_244_GV_SNS_SARCOPHAGUS, ASSET_33D_MODEL_SARCOPHAGUS,
|
||||
0x1, chSarcophagusAnimations,
|
||||
chSarcophagus_updateSNS, func_80326224, actor_draw,
|
||||
chSarcophagus_updateSNS, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -14,7 +14,7 @@ ActorAnimationInfo chTootsAnimations[] = {
|
||||
|
||||
ActorInfo chToots = { MARKER_1F4_TOOTS, ACTOR_1E4_TOOTS, ASSET_434_MODEL_TOOTS,
|
||||
0x1, chTootsAnimations,
|
||||
chtoots_update, func_80326224, actor_draw,
|
||||
chtoots_update, actor_update_func_80326224, actor_draw,
|
||||
2000, 0, 0.5f, 0
|
||||
};
|
||||
|
||||
|
@@ -13,7 +13,7 @@ extern ActorAnimationInfo D_80390DC0[]={
|
||||
|
||||
extern ActorInfo GV_D_80390DD0 = { MARKER_AF_MAGIC_CARPET_SHADOW, ACTOR_122_MAGIC_CARPET_SHADOW, ASSET_3E7_MODEL_MAGIC_CARPET_SHADOW,
|
||||
0x1, D_80390DC0,
|
||||
func_8038938C, func_80326224, func_803892D0,
|
||||
func_8038938C, actor_update_func_80326224, func_803892D0,
|
||||
2500, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -16,7 +16,7 @@ ActorAnimationInfo D_80390EA0[] = {
|
||||
|
||||
ActorInfo D_80390ED0 = { MARKER_A9_RUBEE, ACTOR_11B_RUBEE, ASSET_3DD_MODEL_RUBEE,
|
||||
0x2, D_80390EA0,
|
||||
func_80389B1C, func_80326224, actor_draw,
|
||||
func_80389B1C, actor_update_func_80326224, actor_draw,
|
||||
2500, 0, 1.6f, 0
|
||||
};
|
||||
|
||||
|
@@ -8,11 +8,11 @@ void GV_func_8038A084(Actor *this);
|
||||
/* .data */
|
||||
ActorInfo D_80390F40 = { 0x24F, 0x37C, 0x0,
|
||||
0, NULL,
|
||||
GV_func_8038A084, func_80326224, func_80325340,
|
||||
GV_func_8038A084, actor_update_func_80326224, func_80325340,
|
||||
2000, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
struct40s D_80390F64 = {
|
||||
ParticleSettingsScaleAndLifetimeDrawModeEmitCount D_80390F64 = {
|
||||
{ {2.5f, 2.8f},
|
||||
{4.0f, 5.0f},
|
||||
{0.0f, 0.01f},
|
||||
@@ -33,7 +33,7 @@ void func_80389FA0(f32 position[3]){
|
||||
particleEmitter_setRGB(pCtrl, D_80390F94);
|
||||
particleEmitter_setAlpha(pCtrl, 100);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setParticleSpawnPositionRange( pCtrl,
|
||||
particleEmitter_setSpawnPositionRange( pCtrl,
|
||||
-700.0f, 0.0f, -700.0f,
|
||||
700.0f, 0.0f, 700.0f
|
||||
);
|
||||
|
@@ -22,12 +22,12 @@ ActorAnimationInfo D_80391040[] ={
|
||||
|
||||
ActorInfo D_80391098 = { MARKER_AD_SLAPPA, ACTOR_120_SLAPPA, ASSET_376_MODEL_SLAPPA,
|
||||
0x1, D_80391040,
|
||||
func_8038B124, func_80326224, actor_draw,
|
||||
func_8038B124, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
s32 D_803910BC[3] = {175, 100, 0};
|
||||
s32 D_803910C8[3] = {175, 140, 0};
|
||||
struct43s D_803910D4 = {
|
||||
ParticleSettingsVelocityAccelerationPosition D_803910D4 = {
|
||||
{{-120.0f, 550.0f, -120.0f}, {120.0f, 950.0f, 120.0f}},
|
||||
{{0.0f, -1400.0f, 0.0f}, {0.0f, -1400.0f, 0.0f}},
|
||||
{{-100.0f, 0.0f, -100.0f}, {100.0f, 30.0f, 100.0f}}
|
||||
@@ -53,7 +53,7 @@ void func_8038AB30(ParticleEmitter *pCtrl, f32 position[3], s32 cnt){
|
||||
void func_8038ABD8(f32 position[3], s32 cnt){
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||
func_8038AB30(pCtrl, position, cnt);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl,
|
||||
particleEmitter_setSpawnPositionRange(pCtrl,
|
||||
-40.0f, -5.0f, -40.0f,
|
||||
60.0f, 20.0f, 60.0f
|
||||
);
|
||||
@@ -71,7 +71,7 @@ void func_8038ABD8(f32 position[3], s32 cnt){
|
||||
void func_8038ACEC(f32 pos[3], s32 cnt){
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||
func_8038AB30(pCtrl, pos, cnt);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl,
|
||||
particleEmitter_setSpawnPositionRange(pCtrl,
|
||||
-80.0f, 20.0f, -80.0f,
|
||||
120.0f, 120.0f, 120.0f
|
||||
);
|
||||
@@ -90,10 +90,10 @@ void func_8038ADFC(f32 pos[3], s32 cnt){
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||
particleEmitter_setModel(pCtrl, 0x389);
|
||||
particleEmitter_setPosition(pCtrl, pos);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803910D4);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_803910D4);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl, -500.0f, -500.0f, -500.0f, 500.0f, 500.0f, 500.0f);
|
||||
func_802EF9F8(pCtrl, 0.6f);
|
||||
func_802EFA18(pCtrl, 2);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.6f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 2);
|
||||
particleEmitter_setStartingScaleRange(pCtrl, 1.0f, 1.0f);
|
||||
particleEmitter_setDrawMode(pCtrl, 2);
|
||||
particleEmitter_setSpawnIntervalRange(pCtrl, 0.0f, 0.01f);
|
||||
|
@@ -26,7 +26,7 @@ ActorAnimationInfo D_80391120[] ={
|
||||
|
||||
ActorInfo D_80391158 = { MARKER_A6_GRABBA, ACTOR_118_GRABBA, ASSET_371_MODEL_GRABBA,
|
||||
0x1, D_80391120,
|
||||
GV_func_8038BEA0, func_80326224, actor_draw,
|
||||
GV_func_8038BEA0, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -122,7 +122,7 @@ void func_8038BBFC(ParticleEmitter *pCtrl, f32 position[3], s32 cnt){
|
||||
void func_8038BC7C(f32 position[3], s32 cnt){
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||
func_8038BBFC(pCtrl, position, cnt);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl,
|
||||
particleEmitter_setSpawnPositionRange(pCtrl,
|
||||
-60.0f, 0.0f, -60.0f,
|
||||
60.0f, 30.0f, 60.0f
|
||||
);
|
||||
@@ -140,7 +140,7 @@ void func_8038BC7C(f32 position[3], s32 cnt){
|
||||
void func_8038BD8C(f32 position[3], s32 cnt){
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
|
||||
func_8038BBFC(pCtrl, position, cnt);
|
||||
particleEmitter_setParticleSpawnPositionRange(pCtrl,
|
||||
particleEmitter_setSpawnPositionRange(pCtrl,
|
||||
-40.0f, 0.0f, -40.0f,
|
||||
40.0f, 30.0f, 40.0f
|
||||
);
|
||||
|
@@ -17,7 +17,7 @@ ActorAnimationInfo D_80391190[] = {
|
||||
|
||||
ActorInfo D_803911C0 = { 0xAC, 0x11E, 0x3E5,
|
||||
0, D_80391190,
|
||||
GV_func_8038C658, func_80326224, GV_func_8038C5D0,
|
||||
GV_func_8038C658, actor_update_func_80326224, GV_func_8038C5D0,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -24,19 +24,19 @@ Actor *func_8038CC40(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
u8 D_803911F0[3] = {0, 1, 2};
|
||||
ActorInfo D_803911F4 = { 0xBB, 0x285, 0x3E6,
|
||||
0, NULL,
|
||||
func_8038CC98, func_80326224, func_8038CC40,
|
||||
func_8038CC98, actor_update_func_80326224, func_8038CC40,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391218 = { 0xBB, 0x286, 0x3E6,
|
||||
0, NULL,
|
||||
func_8038CC98, func_80326224, func_8038CC40,
|
||||
func_8038CC98, actor_update_func_80326224, func_8038CC40,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8039123C = { 0xBB, 0x287, 0x3E6,
|
||||
0, NULL,
|
||||
func_8038CC98, func_80326224, func_8038CC40,
|
||||
func_8038CC98, actor_update_func_80326224, func_8038CC40,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -16,7 +16,7 @@ ActorAnimationInfo D_80391290[] = {
|
||||
};
|
||||
ActorInfo D_803912B8 = { MARKER_F9_JINXY, ACTOR_1F7_JINXY, ASSET_422_MODEL_JINXY,
|
||||
0x1, D_80391290,
|
||||
func_8038D47C, func_80326224, actor_draw,
|
||||
func_8038D47C, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -11,13 +11,13 @@ ActorAnimationInfo GV_D_80391380[] = {
|
||||
};
|
||||
ActorInfo GV_D_80391390 = { 0xFA, 0x1F8, 0x423,
|
||||
0x1, GV_D_80391380,
|
||||
func_8038E3B0, func_80326224, actor_draw,
|
||||
func_8038E3B0, actor_update_func_80326224, actor_draw,
|
||||
0, 0x100, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_803913B4 = { 0xFB, 0x1F9, 0x424,
|
||||
0x1, GV_D_80391380,
|
||||
func_8038E3B0, func_80326224, actor_draw,
|
||||
func_8038E3B0, actor_update_func_80326224, actor_draw,
|
||||
0, 0x100, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -82,25 +82,25 @@ ActorAnimationInfo D_803913E0[] = {
|
||||
|
||||
ActorInfo D_80391428 = { MARKER_EC_GV_SUN_SWITCH, ACTOR_13F_GV_SUN_SWITCH, ASSET_400_MODEL_SUN_SWITCH,
|
||||
0x1, D_803913E0,
|
||||
chSunSwitch_update, func_80326224, actor_draw,
|
||||
chSunSwitch_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8039144C = { MARKER_F1_GV_STAR_SWITCH, ACTOR_144_GV_STAR_SWITCH, ASSET_3D7_MODEL_STAR_SWITCH,
|
||||
0x1, D_803913E0,
|
||||
chStarSwitch_update, func_80326224, actor_draw,
|
||||
chStarSwitch_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391470 = { MARKER_F2_HONEYCOMB_SWITCH, ACTOR_145_HONEYCOMB_SWITCH, ASSET_438_MODEL_HONEYCOMB_SWITCH,
|
||||
0x1, D_803913E0,
|
||||
chHoneycombSwitch_update, func_80326224, actor_draw,
|
||||
chHoneycombSwitch_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391494 = { MARKER_23C_GV_SNS_SWITCH, ACTOR_245_GV_SNS_SWITCH, ASSET_515_MODEL_GV_SNS_SWITCH,
|
||||
0x1, D_803913E0,
|
||||
func_8038EF14, func_80326224, actor_draw,
|
||||
func_8038EF14, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -118,31 +118,31 @@ ActorInfo D_803914DC = { MARKER_ED_GV_SUN_DOOR, ACTOR_140_GV_SUN_DOOR, ASSET_3FF
|
||||
|
||||
ActorInfo GV_D_80391500 = { MARKER_F0_GV_KAZOOIE_DOOR, ACTOR_143_GV_KAZOOIE_DOOR, ASSET_3D9_MODEL_GV_KAZOOIE_DOOR,
|
||||
0x1, 0x0,
|
||||
chKazooieDoor_update, func_80326224, func_80325F2C,
|
||||
chKazooieDoor_update, actor_update_func_80326224, func_80325F2C,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo GV_D_80391524 = { MARKER_EF_GV_STAR_HATCH, ACTOR_142_GV_STAR_HATCH, ASSET_3DB_MODEL_GV_STAR_HATCH,
|
||||
0x1, 0x0,
|
||||
func_8038E648, func_80326224, func_80325F2C,
|
||||
func_8038E648, actor_update_func_80326224, func_80325F2C,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391548 = { MARKER_F3_GV_KAZOOIE_TARGET, ACTOR_146_GV_KAZOOIE_TARGET, ASSET_3E2_MODEL_GV_KAZOOIE_TARGET,
|
||||
0x1, 0x0,
|
||||
chKazooieTarget_update, func_80326224, actor_drawFullDepth,
|
||||
chKazooieTarget_update, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0x400, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8039156C = { MARKER_F8_GV_KAZOOIE_DOOR, ACTOR_1F5_GV_KAZOOIE_DOOR, ASSET_3D9_MODEL_GV_KAZOOIE_DOOR,
|
||||
0x1, 0x0,
|
||||
func_8038E97C, func_80326224, func_80325F2C,
|
||||
func_8038E97C, actor_update_func_80326224, func_80325F2C,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_80391590 = { MARKER_23A_GV_SNS_CHAMBER_DOOR, ACTOR_243_GV_SNS_CHAMBER_DOOR, ASSET_514_MODEL_GV_SNS_CHAMBER_DOOR,
|
||||
0x1, 0x0,
|
||||
func_8038E914, func_80326224, func_80325F2C,
|
||||
func_8038E914, actor_update_func_80326224, func_80325F2C,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -30,7 +30,7 @@ void func_80390000(s32 arg0){
|
||||
}//L803900AC
|
||||
|
||||
if(GV_D_80391AD0 == 2){
|
||||
levelSpecificFlags_set(6, FALSE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_6_GV_UNKNOWN, FALSE);
|
||||
func_803228D8();
|
||||
func_802E4078(MAP_15_GV_WATER_PYRAMID, 1, 0);
|
||||
}
|
||||
@@ -40,7 +40,8 @@ void func_803900F8(void){}
|
||||
|
||||
void func_80390100(void){
|
||||
GV_D_80391AD0 = 0;
|
||||
if(levelSpecificFlags_get(6)){
|
||||
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_6_GV_UNKNOWN)) {
|
||||
func_80390000(1);
|
||||
}
|
||||
}
|
||||
|
@@ -37,7 +37,7 @@ void __waterCtrl_setState(s32 arg0){
|
||||
}
|
||||
|
||||
if(GV_D_80391B00.state == 3){
|
||||
levelSpecificFlags_set(6, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_6_GV_UNKNOWN, TRUE);
|
||||
func_803228D8();
|
||||
volatileFlag_set(VOLATILE_FLAG_E, 1);
|
||||
func_802E4078(MAP_12_GV_GOBIS_VALLEY, 0, 0);
|
||||
|
@@ -23,7 +23,7 @@ enum chchimpystump_state_e {
|
||||
ActorInfo chchimpystump = {
|
||||
MARKER_95_CHIMPY_STUMP, ACTOR_C5_CHIMPY_STUMP, ASSET_3C8_MODEL_CHIMPY_STUMP,
|
||||
1, NULL,
|
||||
chchimpystump_update, func_80326224, actor_drawFullDepth,
|
||||
chchimpystump_update, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -46,7 +46,7 @@ ActorAnimationInfo chCongaAnimations[9] = {
|
||||
|
||||
ActorInfo chcongaInfo = { MARKER_7_CONGA, ACTOR_8_CONGA, ASSET_35C_MODEL_CONGA,
|
||||
1, chCongaAnimations,
|
||||
func_803876D0, func_80326224, actor_draw,
|
||||
func_803876D0, actor_update_func_80326224, actor_draw,
|
||||
0, 0x333, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -42,7 +42,7 @@ ActorAnimationInfo chGrublinAnimations[11] = {
|
||||
|
||||
ActorInfo chgrublinInfo = { MARKER_5_GRUBLIN, ACTOR_6_GRUBLIN, ASSET_3C5_MODEL_GRUBLIN,
|
||||
1, chGrublinAnimations,
|
||||
func_80388A80, func_80326224, actor_draw,
|
||||
func_80388A80, actor_update_func_80326224, actor_draw,
|
||||
2500, 0, 1.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -8,7 +8,7 @@
|
||||
/* extern function declarations */
|
||||
|
||||
void bundle_setYaw(f32);
|
||||
void spawnQueue_bundle_f32(s32, s32, s32, s32);
|
||||
Actor *spawnQueue_bundle_f32(s32, s32, s32, s32);
|
||||
|
||||
/* public function declarations */
|
||||
Actor *chhut_draw(ActorMarker *, Gfx **, Mtx **, Vtx **);
|
||||
@@ -50,7 +50,15 @@ void __chhut_spawnExplosion(ActorMarker *this) {
|
||||
}
|
||||
|
||||
void chhut_update(Actor *this) {
|
||||
static s32 D_803898D8[6] = {0, 1, 2, 3, 6, 4};
|
||||
static enum bundle_e D_803898D8[6] = {
|
||||
BUNDLE_0_MM_HUT_MUSIC_NOTE,
|
||||
BUNDLE_1_MM_HUT_BLUE_EGG,
|
||||
BUNDLE_2_MM_HUT_GRUBLIN,
|
||||
BUNDLE_3_MM_HUT_JINJO_GREEN,
|
||||
BUNDLE_6_MM_HUT_EXTRA_LIFE,
|
||||
BUNDLE_4_MM_HUT_JIGGY
|
||||
};
|
||||
|
||||
f32 diff_pos[3];
|
||||
f32 plyr_pos[3];
|
||||
|
||||
@@ -87,7 +95,7 @@ void chhut_update(Actor *this) {
|
||||
bundle_setYaw(this->yaw);
|
||||
|
||||
if (mm_hut_smash_count < 5) {
|
||||
__spawnQueue_add_4((GenFunction_4)spawnQueue_bundle_f32, D_803898D8[mm_hut_smash_count], *(s32*)(&diff_pos[0]),*(s32*)(&diff_pos[1]),*(s32*)(&diff_pos[2]));
|
||||
__spawnQueue_add_4((GenFunction_4) spawnQueue_bundle_f32, D_803898D8[mm_hut_smash_count], *(s32 * )(&diff_pos[0]), *(s32 * )(&diff_pos[1]), *(s32 * )(&diff_pos[2]));
|
||||
}
|
||||
else {
|
||||
jiggy_spawn(JIGGY_5_MM_HUTS, diff_pos);
|
||||
@@ -117,6 +125,6 @@ void mm_resetHuts(void) {
|
||||
ActorInfo chhutInfo = {
|
||||
MARKER_51_MM_HUT, ACTOR_9_MM_HUT, ASSET_7D7_MODEL_MM_HUT,
|
||||
0, chhutAnimations,
|
||||
chhut_update, func_80326224, chhut_draw,
|
||||
chhut_update, actor_update_func_80326224, chhut_draw,
|
||||
0, 0x100, 0.0f, 0
|
||||
};
|
||||
|
@@ -34,7 +34,7 @@ enum chjuju_animation_state_e {
|
||||
ActorInfo chjujuInfo = {
|
||||
MARKER_67_JUJU, ACTOR_59_JUJU, ASSET_2E6_MODEL_JUJU,
|
||||
0, NULL,
|
||||
chjuju_update, func_80326224, chjuju_draw,
|
||||
chjuju_update, actor_update_func_80326224, chjuju_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -24,7 +24,7 @@ void chjujuhitbox_setJuju(Actor *this, s32 slave_id, Actor *slavePtr);
|
||||
ActorInfo chjujuhitboxInfo = {
|
||||
MARKER_67_JUJU, ACTOR_11_JUJU_CTRL, 0,
|
||||
3, NULL,
|
||||
chjujuhitbox_update, func_80326224, chjujuhitbox_draw,
|
||||
chjujuhitbox_update, actor_update_func_80326224, chjujuhitbox_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
@@ -19,7 +19,7 @@ enum chorange_state_e {
|
||||
ActorInfo chorangeInfo = {
|
||||
MARKER_C_ORANGE_PROJECTILE, ACTOR_14_ORANGE_PROJECTILE, ASSET_2D2_MODEL_ORANGE,
|
||||
1, NULL,
|
||||
chorange_update, func_80326224, chorange_draw,
|
||||
chorange_update, actor_update_func_80326224, chorange_draw,
|
||||
0, 0, 0.6f, 0
|
||||
};
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
#include "variables.h"
|
||||
|
||||
/* extern functions */
|
||||
void func_80326224(Actor *);
|
||||
void actor_update_func_80326224(Actor *);
|
||||
void func_80329904(ActorMarker *, s32, void *);
|
||||
extern void func_802EFA20(ParticleEmitter *, f32, f32);
|
||||
|
||||
@@ -14,7 +14,7 @@ void chorangepad_update(Actor *);
|
||||
ActorInfo chorangepadInfo = {
|
||||
MARKER_66_ORANGE_PAD, ACTOR_57_ORANGE_PAD, ASSET_2EB_MODEL_ORANGE_PAD,
|
||||
0, NULL,
|
||||
chorangepad_update, func_80326224, actor_draw,
|
||||
chorangepad_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -66,12 +66,12 @@ void func_80386444(ActorMarker *marker) {
|
||||
particleEmitter_setStartingScaleRange(p_ctrl, 0.09f, 0.19f);
|
||||
particleEmitter_setFinalScaleRange(p_ctrl, 0.0f, 0.0f);
|
||||
particleEmitter_setParticleVelocityRange(p_ctrl, -200.0f, 500.0f, -200.0f, 200.0f, 700.0f, 200.0f);
|
||||
particleEmitter_setParticleAccelerationRange(p_ctrl, 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f);
|
||||
particleEmitter_setAccelerationRange(p_ctrl, 0.0f, -1200.0f, 0.0f, 0.0f, -1200.0f, 0.0f);
|
||||
particleEmitter_setAngularVelocityRange(p_ctrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
|
||||
particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.01f);
|
||||
particleEmitter_setParticleLifeTimeRange(p_ctrl, 4.0f, 4.0f);
|
||||
func_802EF9F8(p_ctrl, 0.01f);
|
||||
func_802EFA18(p_ctrl, 3);
|
||||
particleEmitter_func_802EF9F8(p_ctrl, 0.01f);
|
||||
particleEmitter_func_802EFA18(p_ctrl, 3);
|
||||
func_802EFA20(p_ctrl, 1.0f, 1.3f);
|
||||
particleEmitter_emitN(p_ctrl, 30);
|
||||
}
|
||||
|
@@ -2,11 +2,18 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
/* extern functions */
|
||||
extern void ml_vec3f_assign(f32[3], f32, f32, f32);
|
||||
|
||||
/* public functions */
|
||||
void chLoggo_update(Actor *this);
|
||||
|
||||
/* .data */
|
||||
enum chLoggo_state_e {
|
||||
LOGGO_STATE_1_IDLE = 1,
|
||||
LOGGO_STATE_2_FLUSHING
|
||||
};
|
||||
|
||||
ActorAnimationInfo chLoggoAnimations[] = {
|
||||
{0, 0.0f},
|
||||
{ASSET_238_ANIM_LOGGO_IDLE, 0.8f},
|
||||
@@ -14,108 +21,113 @@ ActorAnimationInfo chLoggoAnimations[] = {
|
||||
};
|
||||
|
||||
ActorInfo chLoggo = {
|
||||
MARKER_252_LOGGO, ACTOR_37F_LOGGO, ASSET_519_MODEL_LOGGO,
|
||||
0x1, chLoggoAnimations,
|
||||
chLoggo_update, func_80326224, actor_draw,
|
||||
MARKER_252_LOGGO, ACTOR_37F_LOGGO, ASSET_519_MODEL_LOGGO,
|
||||
0x1, chLoggoAnimations,
|
||||
chLoggo_update, actor_update_func_80326224, actor_draw,
|
||||
1000, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void __chLoggo_flush(ActorMarker* marker) {
|
||||
Actor* actor = marker_getActor(marker);
|
||||
void __chLoggo_flush(ActorMarker *marker) {
|
||||
Actor *actor = marker_getActor(marker);
|
||||
func_8028F918(2);
|
||||
subaddie_set_state_with_direction(actor, 2, 0.01, 1);
|
||||
subaddie_set_state_with_direction(actor, LOGGO_STATE_2_FLUSHING, 0.01, 1);
|
||||
actor_playAnimationOnce(actor);
|
||||
actor->lifetime_value = 3.2f;
|
||||
}
|
||||
|
||||
void __chLoggo_textCallback(ActorMarker* caller, enum asset_e text_id, s32 arg3) {
|
||||
void __chLoggo_textCallback(ActorMarker *caller, enum asset_e text_id, s32 arg3) {
|
||||
__chLoggo_flush(caller);
|
||||
}
|
||||
|
||||
void __chLoggo_collide(ActorMarker* this_marker, ActorMarker *other_marker) {
|
||||
void __chLoggo_collide(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
Actor *this = marker_getActor(this_marker);
|
||||
|
||||
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && !fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
|
||||
if (gcdialog_showText(ASSET_ADF_TEXT_ENTER_LOGGO, 0x2B, this->position, this->marker, &__chLoggo_textCallback, 0) != 0) {
|
||||
actor_collisionOff(this);
|
||||
|
||||
fileProgressFlag_set(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN, TRUE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if ((player_getTransformation() == TRANSFORM_3_PUMPKIN) && fileProgressFlag_get(FILEPROG_89_ENTERED_LOGGO_AS_PUMPKIN)) {
|
||||
actor_collisionOff(this);
|
||||
__chLoggo_flush(this_marker);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((player_getTransformation() == TRANSFORM_1_BANJO) && !fileProgressFlag_get(FILEPROG_88_TRIED_LOGGO_AS_BEAR)){
|
||||
if(gcdialog_showText(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) {
|
||||
if ((player_getTransformation() == TRANSFORM_1_BANJO) && !fileProgressFlag_get(FILEPROG_88_TRIED_LOGGO_AS_BEAR)) {
|
||||
if (gcdialog_showText(ASSET_ADE_TEXT_LOGGO_AS_BEAR, 0x2A, this->position, NULL, NULL, NULL)) {
|
||||
fileProgressFlag_set(FILEPROG_88_TRIED_LOGGO_AS_BEAR, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void chLoggo_update(Actor *this){
|
||||
f32 sp44;
|
||||
f32 sp38[3];
|
||||
void chLoggo_update(Actor *this) {
|
||||
f32 tick;
|
||||
f32 position[3];
|
||||
s32 sp34;
|
||||
|
||||
sp44 = time_getDelta();
|
||||
if(!this->volatile_initialized){
|
||||
tick = time_getDelta();
|
||||
|
||||
if (!this->volatile_initialized) {
|
||||
this->volatile_initialized = TRUE;
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
|
||||
actor_collisionOn(this);
|
||||
marker_setCollisionScripts(this->marker, __chLoggo_collide, NULL, NULL);
|
||||
subaddie_set_state_with_direction(this, 1, 0.01f, 1);
|
||||
|
||||
subaddie_set_state_with_direction(this, LOGGO_STATE_1_IDLE, 0.01f, 1);
|
||||
actor_loopAnimation(this);
|
||||
|
||||
this->lifetime_value = 0.0f;
|
||||
if(!fileProgressFlag_get(FILEPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(0x33)){
|
||||
if(gcdialog_showText(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)){
|
||||
|
||||
if (!fileProgressFlag_get(FILEPROG_8A_EXITED_LOGGO) && levelSpecificFlags_get(LEVEL_FLAG_33_MMM_UNKNOWN)) {
|
||||
if (gcdialog_showText(ASSET_AE0_TEXT_EXIT_LOGGO, 4, NULL, NULL, NULL, NULL)) {
|
||||
fileProgressFlag_set(FILEPROG_8A_EXITED_LOGGO, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch(this->state){
|
||||
case 1:
|
||||
switch (this->state) {
|
||||
case LOGGO_STATE_1_IDLE:
|
||||
sp34 = func_803114B0() ? 12000 : 0;
|
||||
|
||||
if(actor_animationIsAt(this, 0.09f)){
|
||||
if (actor_animationIsAt(this, 0.09f)) {
|
||||
func_8030E878(SFX_109_LOGGO_LID_CLAP, randf2(0.975f, 1.025f), MAX(0, 22000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.37f)){
|
||||
if (actor_animationIsAt(this, 0.37f)) {
|
||||
func_8030E878(SFX_20_METAL_CLANK_1, randf2(1.675f, 1.725f), MAX(0, 12000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.6f)){
|
||||
if (actor_animationIsAt(this, 0.6f)) {
|
||||
func_8030E878(SFX_3F_CAULDRON_SQEAK_1, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.16f)){
|
||||
|
||||
if (actor_animationIsAt(this, 0.16f)) {
|
||||
func_8030E878(SFX_40_CAULDRON_SQEAK_2, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if(actor_animationIsAt(this, 0.46f)){
|
||||
case LOGGO_STATE_2_FLUSHING:
|
||||
if (actor_animationIsAt(this, 0.46f)) {
|
||||
this->marker->propPtr->unk8_3 = FALSE;
|
||||
FUNC_8030E8B4(SFX_92_TOILET_FLUSH, 1.0f, 32000, this->position, 600, 1500);
|
||||
levelSpecificFlags_set(0x33, TRUE);
|
||||
ml_vec3f_assign(sp38, this->position_x - 50.0f, this->position_y + 50.0f, this->position_z);
|
||||
func_8028F6E4(BS_INTR_2F_LOGGO, sp38);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_33_MMM_UNKNOWN, TRUE);
|
||||
ml_vec3f_assign(position, this->position_x - 50.0f, this->position_y + 50.0f, this->position_z);
|
||||
func_8028F6E4(BS_INTR_2F_LOGGO, position);
|
||||
}
|
||||
|
||||
if(0.0 < this->lifetime_value){
|
||||
this->lifetime_value -= sp44;
|
||||
if (0.0 < this->lifetime_value) {
|
||||
this->lifetime_value -= tick;
|
||||
}
|
||||
else{
|
||||
else {
|
||||
warp_mmmEnterLoggo(0, 0);
|
||||
}
|
||||
break;
|
||||
|
@@ -2,22 +2,32 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
typedef struct{
|
||||
typedef struct {
|
||||
f32 alpha; //motzhand_alpha
|
||||
u8 *pattern_ptr;
|
||||
u8 unk8; //pattern_id
|
||||
u8 unk9; //end_current seq?
|
||||
f32 unkC[3];
|
||||
}ActorLocal_Motzhand;
|
||||
} ActorLocal_Motzhand;
|
||||
|
||||
void chmotzhand_update(Actor *this);
|
||||
/* public functions */
|
||||
void chMotzhand_update(Actor *this);
|
||||
Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
|
||||
/* .data */
|
||||
enum chMotzhand_state_e {
|
||||
MOTZHAND_STATE_0_INIT,
|
||||
MOTZHAND_STATE_1_UNKNOWN,
|
||||
MOTZHAND_STATE_2_UNKNOWN,
|
||||
MOTZHAND_STATE_3_UNKNOWN,
|
||||
MOTZHAND_STATE_4_UNKNOWN,
|
||||
MOTZHAND_STATE_5_UNKNOWN
|
||||
};
|
||||
|
||||
ActorInfo chMotzhand = {
|
||||
MARKER_49_MOTZHAND, ACTOR_3A_MOTZHAND, ASSET_88C_MODEL_MOTZHAND,
|
||||
0x0, NULL,
|
||||
chmotzhand_update, func_80326224, chMotzhand_draw,
|
||||
chMotzhand_update, actor_update_func_80326224, chMotzhand_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -25,53 +35,54 @@ u8 sMotzhandPattern1[] = {7, 14, 13, 9, 17, 0xFF};
|
||||
u8 sMotzhandPattern2[] = {10, 18, 15, 9, 14, 13, 9, 17, 11, 15, 0xFF};
|
||||
|
||||
/* .code */
|
||||
void func_80387410(f32 dst[3]){
|
||||
void func_80387410(f32 dst[3]) {
|
||||
dst[0] = 0.0f;
|
||||
dst[1] = 1500.0f;
|
||||
dst[2] = -2400.0f;
|
||||
}
|
||||
|
||||
void chMotzhand_setState(Actor *this, s32 next_state){
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
void chMotzhand_setState(Actor *this, s32 next_state) {
|
||||
ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local;
|
||||
|
||||
if(next_state == 1 && this->state == 0){
|
||||
if (next_state == MOTZHAND_STATE_1_UNKNOWN && this->state == MOTZHAND_STATE_0_INIT) {
|
||||
skeletalAnim_set(this->unk148, ASSET_A7_ANIM_MOTZHAND_IDLE, 0.0f, 1.8f);
|
||||
func_80387410(this->position);
|
||||
}
|
||||
|
||||
if(next_state == 2){
|
||||
if (next_state == MOTZHAND_STATE_2_UNKNOWN) {
|
||||
skeletalAnim_set(this->unk148, ASSET_A7_ANIM_MOTZHAND_IDLE, 0.9f, 1.8f);
|
||||
}
|
||||
|
||||
if(next_state == 3){
|
||||
if (next_state == MOTZHAND_STATE_3_UNKNOWN) {
|
||||
skeletalAnim_set(this->unk148, ASSET_A8_ANIM_MOTZHAND_PLAY, 0.9f, 1.8f);
|
||||
}
|
||||
|
||||
if(next_state == 4){
|
||||
if (next_state == MOTZHAND_STATE_4_UNKNOWN) {
|
||||
local->alpha = 1.0f;
|
||||
}
|
||||
|
||||
if(next_state == 5){
|
||||
if (next_state == MOTZHAND_STATE_5_UNKNOWN) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
|
||||
this->state = next_state;
|
||||
}
|
||||
|
||||
Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
Actor *this = marker_getActor(marker);
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local;
|
||||
f32 sp3C[3];
|
||||
|
||||
if(this->state == 0 || this->state == 5)
|
||||
if (this->state == MOTZHAND_STATE_0_INIT || this->state == MOTZHAND_STATE_5_UNKNOWN) {
|
||||
return this;
|
||||
|
||||
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148));
|
||||
|
||||
if(this->state == 4){
|
||||
modelRender_setAlpha((s32) (local->alpha * 255.0f));
|
||||
}
|
||||
else{
|
||||
|
||||
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148));
|
||||
|
||||
if (this->state == MOTZHAND_STATE_4_UNKNOWN) {
|
||||
modelRender_setAlpha((s32)(local->alpha * 255.0f));
|
||||
}
|
||||
else {
|
||||
modelRender_setAlpha((s32) 255);
|
||||
}
|
||||
|
||||
@@ -84,119 +95,124 @@ Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
}
|
||||
|
||||
|
||||
void func_80387654(ActorMarker* marker) {
|
||||
Actor* actor = marker_getActor(marker);
|
||||
void func_80387654(ActorMarker *marker) {
|
||||
Actor *actor = marker_getActor(marker);
|
||||
|
||||
if ((actor->state != 4) && (actor->state != 5)) {
|
||||
chMotzhand_setState(actor, 4);
|
||||
if ((actor->state != MOTZHAND_STATE_4_UNKNOWN) && (actor->state != MOTZHAND_STATE_5_UNKNOWN)) {
|
||||
chMotzhand_setState(actor, MOTZHAND_STATE_4_UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
bool func_8038769C(ActorMarker *marker) {
|
||||
return marker_getActor(marker)->state == 1;
|
||||
return marker_getActor(marker)->state == MOTZHAND_STATE_1_UNKNOWN;
|
||||
}
|
||||
|
||||
// chMotzhand_startPattern
|
||||
void func_803876C8(ActorMarker *marker, s32 arg1){
|
||||
void func_803876C8(ActorMarker *marker, s32 arg1) {
|
||||
Actor *this = marker_getActor(marker);
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
|
||||
ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local;
|
||||
|
||||
local->unk8 = arg1;
|
||||
if(arg1 == TRUE){
|
||||
if (arg1 == TRUE) {
|
||||
local->pattern_ptr = sMotzhandPattern1;
|
||||
}
|
||||
else{
|
||||
else {
|
||||
local->pattern_ptr = sMotzhandPattern2;
|
||||
}
|
||||
|
||||
chMotzhand_setState(this, 2);
|
||||
chMotzhand_setState(this, MOTZHAND_STATE_2_UNKNOWN);
|
||||
}
|
||||
|
||||
void func_80387720(ActorMarker *marker) {
|
||||
Actor * this = marker_getActor(marker);
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
Actor *this = marker_getActor(marker);
|
||||
ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local;
|
||||
local->unk9 = TRUE;
|
||||
}
|
||||
|
||||
void chmotzhand_update(Actor *this){
|
||||
ActorLocal_Motzhand * local = (ActorLocal_Motzhand *) &this->local;
|
||||
f32 sp48;
|
||||
f32 sp3C[3];
|
||||
void chMotzhand_update(Actor *this) {
|
||||
ActorLocal_Motzhand *local = (ActorLocal_Motzhand *) &this->local;
|
||||
f32 tick;
|
||||
f32 diff[3];
|
||||
f32 sp30[3];
|
||||
|
||||
sp48 = time_getDelta();
|
||||
tick = time_getDelta();
|
||||
|
||||
if(!this->volatile_initialized){
|
||||
if (!this->volatile_initialized) {
|
||||
this->volatile_initialized = TRUE;
|
||||
if(jiggyscore_isSpawned(JIGGY_60_MMM_MOTZHAND)){
|
||||
|
||||
if (jiggyscore_isSpawned(JIGGY_60_MMM_MOTZHAND)) {
|
||||
marker_despawn(this->marker);
|
||||
return;
|
||||
}
|
||||
|
||||
local->unk8 = FALSE;
|
||||
local->unk9 = FALSE;
|
||||
local->unkC[0] = this->position_x;
|
||||
local->unkC[1] = this->position_y;
|
||||
local->unkC[2] = this->position_z;
|
||||
chMotzhand_setState(this, 1);
|
||||
|
||||
chMotzhand_setState(this, MOTZHAND_STATE_1_UNKNOWN);
|
||||
}//L803877CC
|
||||
|
||||
if(this->state == 2){
|
||||
if(local->unk9){
|
||||
while(*local->pattern_ptr != 0xff){
|
||||
if (this->state == MOTZHAND_STATE_2_UNKNOWN) {
|
||||
if (local->unk9) {
|
||||
while (*local->pattern_ptr != 0xff) {
|
||||
*local->pattern_ptr++; //find_seq end
|
||||
}
|
||||
local->unk9 = FALSE;
|
||||
}//L80387820
|
||||
|
||||
if(0xff == *local->pattern_ptr){
|
||||
if (0xff == *local->pattern_ptr) {
|
||||
func_80387410(sp30);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
organMinigame_getKeyPosition(*local->pattern_ptr, sp30);
|
||||
sp30[0] += local->unkC[0];
|
||||
sp30[1] += local->unkC[1];
|
||||
sp30[2] += local->unkC[2];
|
||||
TUPLE_ADD(sp30, local->unkC)
|
||||
}//L80387880
|
||||
|
||||
sp3C[0] = sp30[0] - this->position_x;
|
||||
sp3C[1] = sp30[1] - this->position_y;
|
||||
sp3C[2] = sp30[2] - this->position_z;
|
||||
if(LENGTH_VEC3F(sp3C) < 5.0f){
|
||||
if(*local->pattern_ptr == 0xff){
|
||||
chMotzhand_setState(this, 1);
|
||||
diff[0] = sp30[0] - this->position_x;
|
||||
diff[1] = sp30[1] - this->position_y;
|
||||
diff[2] = sp30[2] - this->position_z;
|
||||
|
||||
if (LENGTH_VEC3F(diff) < 5.0f) {
|
||||
if (*local->pattern_ptr == 0xff) {
|
||||
chMotzhand_setState(this, MOTZHAND_STATE_1_UNKNOWN);
|
||||
}
|
||||
else{
|
||||
chMotzhand_setState(this, 3);
|
||||
else {
|
||||
chMotzhand_setState(this, MOTZHAND_STATE_3_UNKNOWN);
|
||||
}
|
||||
}
|
||||
else{//L80387930
|
||||
ml_vec3f_set_length(sp3C, ((local->unk8 == TRUE) ? 150.0f : 225.0f)*sp48);
|
||||
this->position_x = sp3C[0] + this->position_x;
|
||||
this->position_y = sp3C[1] + this->position_y;
|
||||
this->position_z = sp3C[2] + this->position_z;
|
||||
else {//L80387930
|
||||
ml_vec3f_set_length(diff, ((local->unk8 == TRUE) ? 150.0f : 225.0f) * tick);
|
||||
this->position_x = diff[0] + this->position_x;
|
||||
this->position_y = diff[1] + this->position_y;
|
||||
this->position_z = diff[2] + this->position_z;
|
||||
}
|
||||
}//L803879A4
|
||||
|
||||
if(this->state == 3){
|
||||
if(skeletalAnim_getLoopCount(this->unk148) > 0){
|
||||
if (this->state == MOTZHAND_STATE_3_UNKNOWN) {
|
||||
if (skeletalAnim_getLoopCount(this->unk148) > 0) {
|
||||
func_80389D9C(*local->pattern_ptr);
|
||||
if(local->unk9){
|
||||
while(*local->pattern_ptr != 0xff){
|
||||
|
||||
if (local->unk9) {
|
||||
while (*local->pattern_ptr != 0xff) {
|
||||
*local->pattern_ptr++; //find_seq end
|
||||
}
|
||||
local->unk9 = FALSE;
|
||||
}
|
||||
else{//L80387A18
|
||||
else {//L80387A18
|
||||
*local->pattern_ptr++;
|
||||
}
|
||||
chMotzhand_setState(this, 2);
|
||||
|
||||
chMotzhand_setState(this, MOTZHAND_STATE_2_UNKNOWN);
|
||||
}
|
||||
}//L80387A2C
|
||||
|
||||
if(this->state == 4){
|
||||
local->alpha -= 0.25*sp48;
|
||||
if(local->alpha <= 0.0f){
|
||||
chMotzhand_setState(this, 5);
|
||||
if (this->state == MOTZHAND_STATE_4_UNKNOWN) {
|
||||
local->alpha -= 0.25 * tick;
|
||||
|
||||
if (local->alpha <= 0.0f) {
|
||||
chMotzhand_setState(this, MOTZHAND_STATE_5_UNKNOWN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -218,7 +218,7 @@ void chnapper_update(Actor *this){
|
||||
}//L80387154
|
||||
|
||||
if(this->state == 4){
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
if(0.99 <= this->unk48)
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
|
@@ -2,91 +2,109 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
extern void func_80389484(ActorMarker *, f32);
|
||||
/* extern functions */
|
||||
extern void chPortrait_break(ActorMarker *, f32);
|
||||
|
||||
typedef struct {
|
||||
f32 unk0;
|
||||
}ActorLocal_PortraitChompa;
|
||||
f32 timer;
|
||||
} ActorLocal_PortraitChompa;
|
||||
|
||||
void func_80388028(Actor *this);
|
||||
Actor *func_80387AA0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
/* public functions */
|
||||
void chChompa_update(Actor *this);
|
||||
Actor *chChompa_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
|
||||
/* .data */
|
||||
ActorInfo D_8038BAD0 = {
|
||||
MARKER_254_PORTRAIT_CHOMPA_A, ACTOR_381_PORTRAIT_CHOMPA, ASSET_521_MODEL_PORTRAIT_CHOMPA,
|
||||
enum chChompa_state_e {
|
||||
CHOMPA_STATE_0_INIT,
|
||||
CHOMPA_STATE_1_IDLE,
|
||||
CHOMPA_STATE_2_GROWLING,
|
||||
CHOMPA_STATE_3_WAITING_TO_BITE,
|
||||
CHOMPA_STATE_4_BITING,
|
||||
CHOMPA_STATE_5_DYING,
|
||||
CHOMPA_STATE_6_DEAD
|
||||
};
|
||||
|
||||
ActorInfo D_8038BAD0 = {
|
||||
MARKER_254_PORTRAIT_CHOMPA_A, ACTOR_381_PORTRAIT_CHOMPA, ASSET_521_MODEL_PORTRAIT_CHOMPA,
|
||||
0x0, NULL,
|
||||
func_80388028, NULL, func_80387AA0,
|
||||
chChompa_update, NULL, chChompa_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
Actor *func_80387AA0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
Actor* actor = marker_getActor(marker);
|
||||
if ((actor->state == 0) || (actor->state == 1) || (actor->state == 6) || (actor->state == 2)) {
|
||||
Actor *chChompa_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
Actor *actor = marker_getActor(marker);
|
||||
|
||||
if (actor->state == CHOMPA_STATE_0_INIT || actor->state == CHOMPA_STATE_1_IDLE || actor->state == CHOMPA_STATE_6_DEAD || actor->state == CHOMPA_STATE_2_GROWLING) {
|
||||
return actor;
|
||||
}
|
||||
|
||||
return actor_draw(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
void func_80387B14(Actor *this, s32 next_state){
|
||||
void chChompa_setState(Actor *this, s32 next_state) {
|
||||
ActorLocal_PortraitChompa *local = (ActorLocal_PortraitChompa *) &this->local;
|
||||
f32 tmp = 2.5f;
|
||||
this->marker->id = 0x1d1;
|
||||
|
||||
if(next_state == 1 || next_state == 2){
|
||||
if (next_state == CHOMPA_STATE_1_IDLE || next_state == CHOMPA_STATE_2_GROWLING) {
|
||||
skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f);
|
||||
skeletalAnim_setProgress(this->unk148, 0.99f);
|
||||
skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_4_STOPPED);
|
||||
if(this->state == 4){
|
||||
local->unk0 = randf2(0.5f, 1.0f);
|
||||
|
||||
if (this->state == CHOMPA_STATE_4_BITING) {
|
||||
local->timer = randf2(0.5f, 1.0f);
|
||||
}
|
||||
else{
|
||||
local->unk0 = 0.0f;
|
||||
else {
|
||||
local->timer = 0.0f;
|
||||
}
|
||||
}//L80387BD0
|
||||
|
||||
if(this->state == 1 && next_state == 2){
|
||||
if (this->state == CHOMPA_STATE_1_IDLE && next_state == CHOMPA_STATE_2_GROWLING) {
|
||||
FUNC_8030E624(SFX_3EF, 0.9f, 32675);
|
||||
}
|
||||
|
||||
if(next_state == 3){
|
||||
local->unk0 = 0.2f;
|
||||
if (next_state == CHOMPA_STATE_3_WAITING_TO_BITE) {
|
||||
local->timer = 0.2f;
|
||||
}
|
||||
|
||||
if(next_state == 4){
|
||||
if (next_state == CHOMPA_STATE_4_BITING) {
|
||||
this->marker->id = MARKER_254_PORTRAIT_CHOMPA_A;
|
||||
skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f);
|
||||
skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE);
|
||||
if(this->unk100){
|
||||
func_80389484(this->unk100, tmp + 0.55);
|
||||
|
||||
if (this->unk100) {
|
||||
chPortrait_break(this->unk100, tmp + 0.55);
|
||||
}
|
||||
|
||||
FUNC_8030E624(SFX_3EF, 1.1f, 25000);
|
||||
FUNC_8030E624(SFX_3EF, 1.1f, 25000);
|
||||
}//L80387CAC
|
||||
|
||||
if(next_state == 5){
|
||||
if (next_state == CHOMPA_STATE_5_DYING) {
|
||||
func_8030E6D4(SFX_1E_HITTING_AN_ENEMY_2);
|
||||
actor_collisionOff(this);
|
||||
}
|
||||
|
||||
this->state = next_state;
|
||||
}
|
||||
|
||||
|
||||
void MMM_func_80387CF4(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
func_8030E6D4(0x1E);
|
||||
void __chChompa_hit(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
func_8030E6D4(SFX_1E_HITTING_AN_ENEMY_2);
|
||||
}
|
||||
|
||||
void func_80387D1C(ActorMarker* this_marker, ActorMarker *other_marker) {
|
||||
void __chChompa_die(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
Actor *this = marker_getActor(this_marker);
|
||||
func_80387B14(this, 5);
|
||||
chChompa_setState(this, CHOMPA_STATE_5_DYING);
|
||||
}
|
||||
|
||||
void func_80387D48(ActorMarker *marker){
|
||||
void __chChompa_spwanPortrait(ActorMarker *marker) {
|
||||
Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
|
||||
enum asset_e portrait_id;
|
||||
Actor *portrait;
|
||||
|
||||
switch(this->unkF4_8){
|
||||
switch (this->unkF4_8) {
|
||||
case 0x32:
|
||||
portrait_id = ACTOR_382_PORTRAIT_OF_GRUNTY;
|
||||
break;
|
||||
@@ -109,47 +127,46 @@ void func_80387D48(ActorMarker *marker){
|
||||
portrait_id = ACTOR_382_PORTRAIT_OF_GRUNTY;
|
||||
break;
|
||||
}
|
||||
|
||||
portrait = spawn_child_actor(portrait_id, &this);
|
||||
portrait->yaw = this->yaw;
|
||||
this->unk100 = portrait->marker;
|
||||
portrait->unk10_1 = FALSE;
|
||||
}
|
||||
|
||||
void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) {
|
||||
void __chChompa_emitDust(f32 position[3], s32 count, enum asset_e sprite_id) {
|
||||
static s32 D_8038BAF4[3] = {0xB4, 0xFF, 0x8C};
|
||||
static ParticleScaleAndLifetimeRanges D_8038BB00 = {{0.2f, 0.4f}, {1.8f, 2.8f}, {0.0f, 0.15f}, {0.7f, 1.2f}, 0.0f, 0.01f};
|
||||
static struct43s D_8038BB28 = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_8038BB28 = {
|
||||
{{-150.0f, 250.0f, -150.0f}, {150.0f, 300.0f, 150.0f}},
|
||||
{{ 0.0f, -600.0f, 0.0f}, { 0.0f, -600.0f, 0.0f}},
|
||||
{{ -50.0f, -50.0f, -50.0f}, { 50.0f, 50.0f, 50.0f}}
|
||||
};
|
||||
ParticleEmitter *pCtrl;
|
||||
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count);
|
||||
particleEmitter_setRGB(pCtrl, D_8038BAF4);
|
||||
particleEmitter_setSprite(pCtrl, sprite_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB28);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038BB28);
|
||||
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038BB00);
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) {
|
||||
void __chChompa_emitBones(f32 position[3], s32 count, enum asset_e model_id) {
|
||||
static ParticleScaleAndLifetimeRanges D_8038BB70 = {{1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.0f}, {3.2f, 3.2f}, 0.0f, 0.45f};
|
||||
static struct43s D_8038BB98 = {
|
||||
static ParticleSettingsVelocityAccelerationPosition D_8038BB98 = {
|
||||
{{-90.0f, 300.0f, -90.0f}, {90.0f, 660.0f, 90.0f}},
|
||||
{{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}},
|
||||
{{-50.0f, 0.0f, -50.0f}, {50.0f, 50.0f, 50.0f}}
|
||||
};
|
||||
ParticleEmitter *pCtrl;
|
||||
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(count);
|
||||
particleEmitter_setModel(pCtrl, model_id);
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB98);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(pCtrl, &D_8038BB98);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
|
||||
func_802EF9F8(pCtrl, 0.4f);
|
||||
func_802EFA18(pCtrl, 3);
|
||||
particleEmitter_func_802EF9F8(pCtrl, 0.4f);
|
||||
particleEmitter_func_802EFA18(pCtrl, 3);
|
||||
func_802EFA20(pCtrl, 1.0f, 1.3f);
|
||||
particleEmitter_setSfx(pCtrl, SFX_2F_ORANGE_SPLAT, 16000);
|
||||
particleEmitter_setDrawMode(pCtrl, 2);
|
||||
@@ -157,97 +174,103 @@ void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) {
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
void func_80387F7C(Actor *this){
|
||||
void __chChompa_emitDeathEffects(Actor *this) {
|
||||
f32 sp2C[3];
|
||||
f32 sp20[3];
|
||||
|
||||
if(!this->marker->unk14_21) return;
|
||||
if (!this->marker->unk14_21) {
|
||||
return;
|
||||
}
|
||||
|
||||
func_8034A174(this->marker->unk44, 5, sp2C);
|
||||
func_8034A174(this->marker->unk44, 6, sp20);
|
||||
func_80387E84(sp2C, 1, ASSET_523_MODEL_PORTRAIT_CHOMPA_TEETH);
|
||||
func_80387E84(sp2C, 1, ASSET_524_MODEL_PORTRAIT_CHOMPA_HEAD);
|
||||
func_80387E84(sp20, 6, ASSET_525_MODEL_PORTRAIT_CHOMPA_PART);
|
||||
func_80387DF8(sp2C, 2, ASSET_700_SPRITE_DUST);
|
||||
func_80387DF8(sp20, 2, ASSET_700_SPRITE_DUST);
|
||||
|
||||
__chChompa_emitBones(sp2C, 1, ASSET_523_MODEL_PORTRAIT_CHOMPA_TEETH);
|
||||
__chChompa_emitBones(sp2C, 1, ASSET_524_MODEL_PORTRAIT_CHOMPA_HEAD);
|
||||
__chChompa_emitBones(sp20, 6, ASSET_525_MODEL_PORTRAIT_CHOMPA_PART);
|
||||
|
||||
__chChompa_emitDust(sp2C, 2, ASSET_700_SPRITE_DUST);
|
||||
__chChompa_emitDust(sp20, 2, ASSET_700_SPRITE_DUST);
|
||||
}
|
||||
|
||||
void func_80388028(Actor *this){
|
||||
void chChompa_update(Actor *this) {
|
||||
ActorLocal_PortraitChompa *local = (ActorLocal_PortraitChompa *) &this->local;
|
||||
f32 sp58 = time_getDelta();
|
||||
f32 tick = time_getDelta();
|
||||
f32 plyr_position[3];
|
||||
f32 plyr_dist;
|
||||
f32 sp44;
|
||||
f32 sp40;
|
||||
f32 anim_prev_progress;
|
||||
f32 anim_progress;
|
||||
|
||||
if(!this->volatile_initialized){
|
||||
if (!this->volatile_initialized) {
|
||||
this->volatile_initialized = TRUE;
|
||||
this->unk16C_0 = TRUE;
|
||||
marker_setCollisionScripts(this->marker, NULL, MMM_func_80387CF4, func_80387D1C);
|
||||
__spawnQueue_add_1((GenFunction_1)func_80387D48, reinterpret_cast(s32, this->marker));
|
||||
func_80387B14(this, (this->state < 5) ? 1 : 6);
|
||||
marker_setCollisionScripts(this->marker, NULL, __chChompa_hit, __chChompa_die);
|
||||
__spawnQueue_add_1((GenFunction_1) __chChompa_spwanPortrait, reinterpret_cast(s32, this->marker));
|
||||
chChompa_setState(this, this->state < CHOMPA_STATE_5_DYING ? CHOMPA_STATE_1_IDLE : CHOMPA_STATE_6_DEAD);
|
||||
}//L803880B4
|
||||
|
||||
player_getPosition(plyr_position);
|
||||
plyr_dist = ml_distance_vec3f(this->position, plyr_position);
|
||||
|
||||
if(this->state == 4)
|
||||
if (this->state == CHOMPA_STATE_4_BITING) {
|
||||
actor_collisionOn(this);
|
||||
else
|
||||
}
|
||||
else {
|
||||
actor_collisionOff(this);
|
||||
|
||||
|
||||
if(this->state == 1 && plyr_dist < this->scale*400.0f){
|
||||
func_80387B14(this, 2);
|
||||
}
|
||||
|
||||
if(this->state == 2){
|
||||
if(0.0f < local->unk0){
|
||||
local->unk0 -= sp58;
|
||||
if (this->state == CHOMPA_STATE_1_IDLE && plyr_dist < this->scale * 400.0f) {
|
||||
chChompa_setState(this, CHOMPA_STATE_2_GROWLING);
|
||||
}
|
||||
|
||||
if (this->state == CHOMPA_STATE_2_GROWLING) {
|
||||
if (0.0f < local->timer) {
|
||||
local->timer -= tick;
|
||||
}
|
||||
else if(plyr_dist < this->scale*300.0f){
|
||||
func_80387B14(this, 3);
|
||||
else if (plyr_dist < this->scale * 300.0f) {
|
||||
chChompa_setState(this, CHOMPA_STATE_3_WAITING_TO_BITE);
|
||||
}
|
||||
else if(this->scale*500.0f < plyr_dist){
|
||||
func_80387B14(this, 1);
|
||||
else if (this->scale * 500.0f < plyr_dist) {
|
||||
chChompa_setState(this, CHOMPA_STATE_1_IDLE);
|
||||
}
|
||||
}//L80388204
|
||||
|
||||
if(this->state == 3){
|
||||
if(ml_timer_update(&local->unk0, sp58)){
|
||||
func_80387B14(this, 4);
|
||||
if (this->state == CHOMPA_STATE_3_WAITING_TO_BITE) {
|
||||
if (ml_timer_update(&local->timer, tick)) {
|
||||
chChompa_setState(this, CHOMPA_STATE_4_BITING);
|
||||
}
|
||||
}
|
||||
|
||||
if(this->state == 4){
|
||||
skeletalAnim_getProgressRange(this->unk148, &sp44, &sp40);
|
||||
if(sp44 < 0.56 && 0.56 <= sp40){
|
||||
if (this->state == CHOMPA_STATE_4_BITING) {
|
||||
skeletalAnim_getProgressRange(this->unk148, &anim_prev_progress, &anim_progress);
|
||||
|
||||
if (anim_prev_progress < 0.56 && 0.56 <= anim_progress) {
|
||||
this->marker->id = 0x1d1;
|
||||
}
|
||||
|
||||
if(sp44 < 0.5 && 0.5 <= sp40){
|
||||
if (anim_prev_progress < 0.5 && 0.5 <= anim_progress) {
|
||||
FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000);
|
||||
}
|
||||
|
||||
if( (sp44 < 0.11 && 0.11 <= sp40)
|
||||
|| (sp44 < 0.32 && 0.32 <= sp40)
|
||||
|| (sp44 < 0.53 && 0.53 <= sp40)
|
||||
){
|
||||
if ((anim_prev_progress < 0.11 && 0.11 <= anim_progress) ||
|
||||
(anim_prev_progress < 0.32 && 0.32 <= anim_progress) ||
|
||||
(anim_prev_progress < 0.53 && 0.53 <= anim_progress)
|
||||
) {
|
||||
func_8030E6A4(SFX_6D_CROC_BITE, randf2(0.95f, 1.05f), 32000);
|
||||
}
|
||||
|
||||
if(sp44 < 0.9 && 0.9 <= sp40){
|
||||
if (anim_prev_progress < 0.9 && 0.9 <= anim_progress) {
|
||||
func_8030E6D4(SFX_2_CLAW_SWIPE);
|
||||
}
|
||||
if(skeletalAnim_getLoopCount(this->unk148) > 0){
|
||||
func_80387B14(this, 2);
|
||||
|
||||
if (skeletalAnim_getLoopCount(this->unk148) > 0) {
|
||||
chChompa_setState(this, CHOMPA_STATE_2_GROWLING);
|
||||
}
|
||||
}
|
||||
|
||||
if(this->state == 5){
|
||||
if (this->state == CHOMPA_STATE_5_DYING) {
|
||||
func_8030E6D4(SFX_D7_GRABBA_DEATH);
|
||||
func_80387F7C(this);
|
||||
func_80387B14(this, 6);
|
||||
__chChompa_emitDeathEffects(this);
|
||||
chChompa_setState(this, CHOMPA_STATE_6_DEAD);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -63,98 +63,98 @@ ActorAnimationInfo D_8038BBE0[] = {
|
||||
ActorInfo D_8038BC28 = {
|
||||
0x9C, 0x109, 0x3CD,
|
||||
0x1, NULL,
|
||||
func_802D3D54, func_80326224, actor_drawFullDepth,
|
||||
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BC4C = {
|
||||
0x9E, 0x10B, 0x3CF,
|
||||
0x1, NULL,
|
||||
func_802D3D54, func_80326224, actor_drawFullDepth,
|
||||
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BC70 = {
|
||||
0x9A, 0xCB, 0x3CC,
|
||||
0x1, NULL,
|
||||
func_802D3D54, func_80326224, actor_drawFullDepth,
|
||||
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BC94 = {
|
||||
0xA2, 0x114, 0x3D3,
|
||||
0x1, NULL,
|
||||
func_80388BDC, func_80326224, actor_drawFullDepth,
|
||||
func_80388BDC, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BCB8 = {
|
||||
0xE7, 0x265, 0x4DA,
|
||||
0x1, NULL,
|
||||
func_80389004, func_80326224, actor_drawFullDepth,
|
||||
func_80389004, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BCDC = {
|
||||
0x9D, 0x10A, 0x3CE,
|
||||
0x1, NULL,
|
||||
func_80389004, func_80326224, actor_drawFullDepth,
|
||||
func_80389004, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BD00 = {
|
||||
0xD3, 0x191, 0x50B,
|
||||
0x1, NULL,
|
||||
func_80389060, func_80326224, actor_drawFullDepth,
|
||||
func_80389060, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BD24 = {
|
||||
0x123, 0x2E8, 0x4C0,
|
||||
0x1, NULL,
|
||||
func_803890B8, func_80326224, actor_drawFullDepth,
|
||||
func_803890B8, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BD48 = {
|
||||
0x1F2, 0x2E9, 0x4C1,
|
||||
0x1, NULL,
|
||||
func_803890B8, func_80326224, actor_drawFullDepth,
|
||||
func_803890B8, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BD6C = {
|
||||
0x1F3, 0x2EA, 0x4C2,
|
||||
0x1, NULL,
|
||||
func_803890B8, func_80326224, actor_drawFullDepth,
|
||||
func_803890B8, actor_update_func_80326224, actor_drawFullDepth,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BD90 = {
|
||||
0xFE, 0x1FD, 0x43D,
|
||||
0x1, D_8038BBE0,
|
||||
func_80388FE4, func_80326224, actor_draw,
|
||||
func_80388FE4, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BDB4 = {
|
||||
0x9F, 0x10C, 0x3D0,
|
||||
0x1, NULL,
|
||||
func_803888B8, func_80326224, func_80388994,
|
||||
func_803888B8, actor_update_func_80326224, func_80388994,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BDD8 = {
|
||||
0xA0, 0x10D, 0x3D1,
|
||||
0x1, NULL,
|
||||
func_803888B8, func_80326224, func_80388994,
|
||||
func_803888B8, actor_update_func_80326224, func_80388994,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BDFC = {
|
||||
0xFF, 0x1FE, 0x43E,
|
||||
0x1, NULL,
|
||||
func_803888B8, func_80326224, func_80388994,
|
||||
func_803888B8, actor_update_func_80326224, func_80388994,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
@@ -287,7 +287,7 @@ void func_80388BDC(Actor *this) {
|
||||
f64 phi_f0;
|
||||
|
||||
func_802D3D74(this);
|
||||
mapSpecificFlags_set(1, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f)));
|
||||
mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f)));
|
||||
if (!this->volatile_initialized) {
|
||||
if (this->yaw != 0.0f) {
|
||||
this->lifetime_value = 0.5f;
|
||||
@@ -304,11 +304,11 @@ void func_80388BDC(Actor *this) {
|
||||
switch (this->state) {
|
||||
case 1:
|
||||
this->yaw = 0.0f;
|
||||
if(mapSpecificFlags_get(0)) {
|
||||
if(mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN)) {
|
||||
func_802BAFE4(0x21);
|
||||
subaddie_set_state(this, 6);
|
||||
func_80244BB0(0, 0x6A, 0x7FF8, 0.3f);
|
||||
mapSpecificFlags_set(2, 0);
|
||||
mapSpecificFlags_set(MMM_SPECIFIC_FLAG_2_UNKNOWN, FALSE);
|
||||
func_8025A6EC(COMUSIC_4_MMM_CLOCK_VERSION, -1);
|
||||
func_8025AE0C(2000, 3.0f);
|
||||
}
|
||||
@@ -350,7 +350,7 @@ void func_80388BDC(Actor *this) {
|
||||
subaddie_set_state(this, 1U);
|
||||
this->yaw = 0.0f;
|
||||
func_8030E540(SFX_7F_HEAVYDOOR_SLAM);
|
||||
mapSpecificFlags_set(0, 0);
|
||||
mapSpecificFlags_set(MMM_SPECIFIC_FLAG_0_UNKNOWN, FALSE);
|
||||
func_80244C78(0);
|
||||
if (!this->unk38_31) {
|
||||
func_8025A6EC(COMUSIC_3C_MINIGAME_LOSS, 0x7FF8);
|
||||
@@ -370,10 +370,13 @@ void func_80388FE4(Actor *this) {
|
||||
|
||||
void func_80389004(Actor *this){
|
||||
func_802D3CE8(this);
|
||||
if(!this->volatile_initialized){
|
||||
|
||||
if (!this->volatile_initialized) {
|
||||
this->volatile_initialized = TRUE;
|
||||
if(levelSpecificFlags_get(0x2e))
|
||||
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_2E_MMM_UNKNOWN)) {
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2,11 +2,17 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
Actor *func_80389350(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void func_803893A4(Actor *this);
|
||||
/* public functions */
|
||||
Actor *chPortrait_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void chPortrait_update(Actor *this);
|
||||
|
||||
/* .data */
|
||||
ActorAnimationInfo D_8038BE30[] ={
|
||||
enum chPortrait_state_e {
|
||||
PORTRAIT_STATE_1_IDLE = 1,
|
||||
PORTRAIT_STATE_2_BROKEN
|
||||
};
|
||||
|
||||
ActorAnimationInfo D_8038BE30[] = {
|
||||
{0x000, 0.0f},
|
||||
{0x23F, 10000000.0f},
|
||||
{0x23F, 2.0f},
|
||||
@@ -14,68 +20,69 @@ ActorAnimationInfo D_8038BE30[] ={
|
||||
|
||||
ActorInfo D_8038BE48 = {
|
||||
MARKER_255_PORTRAIT_OF_GRUNTY, ACTOR_382_PORTRAIT_OF_GRUNTY, ASSET_522_MODEL_PORTRAIT_OF_GRUNTY,
|
||||
0x1, D_8038BE30,
|
||||
func_803893A4, func_80326224, func_80389350,
|
||||
0x1, D_8038BE30,
|
||||
chPortrait_update, actor_update_func_80326224, chPortrait_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BE6C = {
|
||||
MARKER_257_PORTRAIT_OF_BLACKEYE, ACTOR_384_PORTRAIT_OF_BLACKEYE, ASSET_527_MODEL_PORTRAIT_OF_BLACKEYE,
|
||||
0x1, D_8038BE30,
|
||||
func_803893A4, func_80326224, func_80389350,
|
||||
0x1, D_8038BE30,
|
||||
chPortrait_update, actor_update_func_80326224, chPortrait_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BE90 = {
|
||||
MARKER_258_PORTRAIT_OF_TOWER, ACTOR_385_PORTRAIT_OF_TOWER, ASSET_528_MODEL_PORTRAIT_OF_TOWER,
|
||||
0x1, D_8038BE30,
|
||||
func_803893A4, func_80326224, func_80389350,
|
||||
0x1, D_8038BE30,
|
||||
chPortrait_update, actor_update_func_80326224, chPortrait_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BEB4 = {
|
||||
MARKER_259_PORTRAIT_OF_TREE_AND_MOON, ACTOR_386_PORTRAIT_OF_TREE_AND_MOON, ASSET_529_MODEL_PORTRAIT_OF_TREE_AND_MOON,
|
||||
0x1, D_8038BE30,
|
||||
func_803893A4, func_80326224, func_80389350,
|
||||
0x1, D_8038BE30,
|
||||
chPortrait_update, actor_update_func_80326224, chPortrait_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BED8 = {
|
||||
MARKER_25A_PORTRAIT_OF_TEEHEE, ACTOR_387_PORTRAIT_OF_TEEHEE, ASSET_52A_MODEL_PORTRAIT_OF_TEEHEE,
|
||||
0x1, D_8038BE30,
|
||||
func_803893A4, func_80326224, func_80389350,
|
||||
0x1, D_8038BE30,
|
||||
chPortrait_update, actor_update_func_80326224, chPortrait_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo D_8038BEFC = {
|
||||
MARKER_25B_PORTRAIT_OF_MINION, ACTOR_388_PORTRAIT_OF_MINION, ASSET_52B_MODEL_PORTRAIT_OF_MINION,
|
||||
0x1, D_8038BE30,
|
||||
func_803893A4, func_80326224, func_80389350,
|
||||
0x1, D_8038BE30,
|
||||
chPortrait_update, actor_update_func_80326224, chPortrait_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
|
||||
/* .code */
|
||||
Actor *func_80389350(ActorMarker* marker, Gfx** graphics, Mtx** matrix, Vtx** vertex) {
|
||||
Actor *chPortrait_draw(ActorMarker *marker, Gfx **graphics, Mtx **matrix, Vtx **vertex) {
|
||||
func_8033A45C(3, marker_getActor(marker)->unk38_31);
|
||||
return actor_draw(marker, graphics, matrix, vertex);
|
||||
}
|
||||
|
||||
void func_803893A4(Actor *this){
|
||||
if(!this->volatile_initialized){
|
||||
void chPortrait_update(Actor *this) {
|
||||
if (!this->volatile_initialized) {
|
||||
this->volatile_initialized = TRUE;
|
||||
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
actor_collisionOff(this);
|
||||
this->unk38_31 = 2;
|
||||
}
|
||||
|
||||
switch(this->state){
|
||||
case 1:
|
||||
switch (this->state) {
|
||||
case PORTRAIT_STATE_1_IDLE:
|
||||
animctrl_setAnimTimer(this->animctrl, 0.0f);
|
||||
break;
|
||||
case 2:
|
||||
if(actor_animationIsAt(this, 0.999f)){
|
||||
subaddie_set_state_with_direction(this, 1, 0.001f, 0);
|
||||
|
||||
case PORTRAIT_STATE_2_BROKEN:
|
||||
if (actor_animationIsAt(this, 0.999f)) {
|
||||
subaddie_set_state_with_direction(this, PORTRAIT_STATE_1_IDLE, 0.001f, 0);
|
||||
actor_playAnimationOnce(this);
|
||||
this->unk38_31 = 2;
|
||||
}
|
||||
@@ -83,10 +90,10 @@ void func_803893A4(Actor *this){
|
||||
}
|
||||
}
|
||||
|
||||
void func_80389484(ActorMarker * marker, f32 anim_duration){
|
||||
void chPortrait_break(ActorMarker *marker, f32 anim_duration) {
|
||||
Actor *this = marker_getActor(marker);
|
||||
|
||||
subaddie_set_state_with_direction(this, 2, 0.001f, 1);
|
||||
subaddie_set_state_with_direction(this, PORTRAIT_STATE_2_BROKEN, 0.001f, 1);
|
||||
actor_playAnimationOnce(this);
|
||||
animctrl_setDuration(this->animctrl, anim_duration);
|
||||
this->unk38_31 = 1;
|
||||
|
@@ -104,11 +104,12 @@ void func_8038966C(void){
|
||||
if((s32)(tmp_v0->flags << 4) < 0){
|
||||
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 1.4f, 32750);
|
||||
MMM_D_8038C4E0.unk1 = 2;
|
||||
if(!levelSpecificFlags_get(0x1b)){
|
||||
|
||||
if (!levelSpecificFlags_get(LEVEL_FLAG_1B_MMM_UNKNOWN)) {
|
||||
func_80324E38(0.0f, 3);
|
||||
timed_setStaticCameraToNode(0.0f, 0);
|
||||
func_80324DBC(0.0f, 0xad7, 6, NULL, NULL, func_803895D8, NULL);
|
||||
levelSpecificFlags_set(0x1b, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_1B_MMM_UNKNOWN, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
/* extern functions */
|
||||
extern void MMM_func_8038B6D4(f32* arg0, s32 arg1);
|
||||
|
||||
/* internal definitions */
|
||||
@@ -15,6 +16,7 @@ typedef struct {
|
||||
u8 unk1;
|
||||
} Struct_MMM_3420_1;
|
||||
|
||||
/* public functions */
|
||||
void organMinigame_setState(s32 arg0);
|
||||
|
||||
/* .data */
|
||||
@@ -175,7 +177,7 @@ void func_803898EC() {
|
||||
}
|
||||
|
||||
void func_80389910() {
|
||||
gcdialog_showText(0xAD5, 0xE, NULL, NULL, MMM_func_80389810, NULL);
|
||||
gcdialog_showText(ASSET_AD5_TEXT_UNKNOWN, 0xE, NULL, NULL, MMM_func_80389810, NULL);
|
||||
timedFunc_set_2(0.0f, func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
|
||||
timed_setStaticCameraToNode(2.0f, 0);
|
||||
timedFunc_set_0(2.1f, MMM_func_803898A0);
|
||||
@@ -192,13 +194,14 @@ void func_803899BC(void){
|
||||
|
||||
void organMinigame_setState(s32 next_state){
|
||||
func_8028F8F8(1, FALSE);
|
||||
if(next_state == 2){
|
||||
if(D_8038C4F0.pattern == 0){
|
||||
|
||||
if (next_state == 2) {
|
||||
if (D_8038C4F0.pattern == 0) {
|
||||
D_8038C4F0.pattern = 1;
|
||||
gcdialog_showText(0xad3, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
gcdialog_showText(ASSET_AD3_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
}
|
||||
else{//L80389A84
|
||||
gcdialog_showText(0xad6, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
else {//L80389A84
|
||||
gcdialog_showText(ASSET_AD6_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
}
|
||||
}//L80389A9C
|
||||
|
||||
@@ -215,13 +218,13 @@ void organMinigame_setState(s32 next_state){
|
||||
}//L80389AF4
|
||||
|
||||
if(next_state == 4){
|
||||
gcdialog_showText(0xadd, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
gcdialog_showText(ASSET_ADD_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
func_80387720(D_8038C4F0.motzhand_marker);
|
||||
}
|
||||
|
||||
if(next_state == 5){
|
||||
D_8038C4F0.pattern++;
|
||||
gcdialog_showText(0xad4, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
gcdialog_showText(ASSET_AD4_TEXT_UNKNOWN, 4, NULL, NULL, MMM_func_80389810, NULL);
|
||||
func_80387720(D_8038C4F0.motzhand_marker);
|
||||
}
|
||||
|
||||
@@ -246,17 +249,22 @@ void organMinigame_getKeyPosition(s32 key_indx, f32 position[3]) {
|
||||
position[0] = -145.0f;
|
||||
position[1] = 0.0f;
|
||||
position[2] = 0.0f;
|
||||
|
||||
for (iPtr = &D_8038C198[0]; iPtr <= &D_8038C198[key_indx]; iPtr++) {
|
||||
is_black_key = (iPtr->unk0 == 2 || iPtr->unk0 == 4);
|
||||
|
||||
if (is_black_key != 0) {
|
||||
position[0] += 67.0f;
|
||||
position[1] += 12.5;
|
||||
position[2] += -230.0f;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
position[0] += 170.0f;
|
||||
}
|
||||
if (iPtr == &D_8038C198[key_indx])
|
||||
|
||||
if (iPtr == &D_8038C198[key_indx]) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (is_black_key != 0) {
|
||||
position[0] -= 67.0f;
|
||||
@@ -309,30 +317,39 @@ void code3420_handleOrganGame(s32 arg0, s32 arg1) {
|
||||
D_8038C4F0.unk8 = &D_8038BF20;
|
||||
func_80250170(0, 0x6A, 0);
|
||||
D_8038C4F0.state = 0;
|
||||
|
||||
if ((map_get() == MAP_1C_MMM_CHURCH) && (arg1 == 2)) {
|
||||
D_8038C4F0.motzhand_marker = NULL;
|
||||
D_8038C4F0.pattern = 0;
|
||||
|
||||
key_position[0] = -1345.0f;
|
||||
key_position[1] = 1150.0f;
|
||||
key_position[2] = -2300.0f;
|
||||
for(iPtr = &D_8038C198[0]; iPtr->unk0; iPtr++){
|
||||
is_black_key = (iPtr->unk0 == 2 || iPtr->unk0 == 4);
|
||||
if (is_black_key) {
|
||||
key_position[0] += 122.0f;
|
||||
key_position[1] += 12.5;
|
||||
} else {
|
||||
key_position[0] += 170.0f;
|
||||
}
|
||||
iPtr->unk1 = func_80351838(key_position, iPtr->unk0, iPtr - &D_8038C198[0]);
|
||||
if (is_black_key) {
|
||||
key_position[0] -= 122.0f;
|
||||
key_position[1] -= 12.5;
|
||||
}
|
||||
|
||||
for (iPtr = &D_8038C198[0]; iPtr->unk0; iPtr++) {
|
||||
is_black_key = iPtr->unk0 == 2 || iPtr->unk0 == 4;
|
||||
|
||||
if (is_black_key) {
|
||||
key_position[0] += 122.0f;
|
||||
key_position[1] += 12.5;
|
||||
}
|
||||
else {
|
||||
key_position[0] += 170.0f;
|
||||
}
|
||||
|
||||
iPtr->unk1 = func_80351838(key_position, iPtr->unk0, iPtr - &D_8038C198[0]);
|
||||
|
||||
if (is_black_key) {
|
||||
key_position[0] -= 122.0f;
|
||||
key_position[1] -= 12.5;
|
||||
}
|
||||
}
|
||||
|
||||
if (jiggyscore_isSpawned(JIGGY_60_MMM_MOTZHAND)) {
|
||||
organMinigame_setState(7);
|
||||
return;
|
||||
}
|
||||
|
||||
organMinigame_setState(1);
|
||||
}
|
||||
}
|
||||
@@ -346,8 +363,9 @@ void organMinigame_update(void){
|
||||
f32 plyr_pos[3];
|
||||
Actor *motzhand_2;
|
||||
|
||||
|
||||
if(D_8038C4F0.state == 0) return;
|
||||
if (D_8038C4F0.state == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(func_802501A0(0, 0x6A, &sp4C)){
|
||||
func_80250170(0, 0x6A, 0);
|
||||
|
@@ -72,21 +72,21 @@ void func_8038A140(UNK_TYPE(s32) arg0) {
|
||||
if (arg0 == 2) {
|
||||
func_80324E38(0.3f, 3);
|
||||
timed_setStaticCameraToNode(0.3f, 1);
|
||||
timedFunc_set_2(0.3f, mapSpecificFlags_set, 3, 1);
|
||||
timedFunc_set_2(0.3f, mapSpecificFlags_set, MMM_SPECIFIC_FLAG_3_UNKNOWN, TRUE);
|
||||
func_80324E38(3.0f, 0);
|
||||
timed_exitStaticCamera(3.0f);
|
||||
timedFunc_set_1(3.0f, func_8038A140, 3);
|
||||
}
|
||||
if (arg0 == 3) {
|
||||
if (MMM_D_8038C510.unk8 == 1) {
|
||||
mapSpecificFlags_set(3, 1);
|
||||
mapSpecificFlags_set(MMM_SPECIFIC_FLAG_3_UNKNOWN, 1);
|
||||
}
|
||||
item_set(ITEM_0_HOURGLASS_TIMER, 75*60 - 1);
|
||||
item_set(6, 1);
|
||||
}
|
||||
if (MMM_D_8038C510.unk8 == 3) {
|
||||
item_set(6, 0);
|
||||
mapSpecificFlags_set(4, 1);
|
||||
mapSpecificFlags_set(MMM_SPECIFIC_FLAG_4_UNKNOWN, 1);
|
||||
}
|
||||
if (arg0 == 4) {
|
||||
func_8028F66C(BS_INTR_F);
|
||||
@@ -181,7 +181,7 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){
|
||||
if(arg0->unk2 == 'X'){
|
||||
MMM_func_8038A54C(arg0, 1);
|
||||
player_getPosition(sp44);
|
||||
func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp38);
|
||||
chTumblar_copyPosition(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp38);
|
||||
sp38[1] = sp44[1];
|
||||
func_8028F620(sp38, 300.0f, -1500.0f);
|
||||
return;
|
||||
@@ -192,7 +192,7 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){
|
||||
MMM_func_8038A54C(arg0, 3);
|
||||
if( iPtr->unk0[iPtr->unk4] == 0){
|
||||
func_8038A140(5);
|
||||
func_8038AF3C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10);
|
||||
chTumblar_congratulate(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10);
|
||||
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 32000);
|
||||
}
|
||||
else{
|
||||
@@ -249,13 +249,13 @@ void func_8038AA44(void){
|
||||
func_8038A750();
|
||||
if( MMM_D_8038C510.unk8 == 1
|
||||
&& MMM_D_8038C510.unkC != NULL
|
||||
&& func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
|
||||
&& chTumblar_isBanjoAbove(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
|
||||
){
|
||||
if(!levelSpecificFlags_get(0x2f)){
|
||||
levelSpecificFlags_set(0x2f, TRUE);
|
||||
if (!levelSpecificFlags_get(LEVEL_FLAG_2F_MMM_UNKNOWN)) {
|
||||
levelSpecificFlags_set(LEVEL_FLAG_2F_MMM_UNKNOWN, TRUE);
|
||||
func_8038A140(2);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
func_8038A140(3);
|
||||
}
|
||||
}
|
||||
@@ -265,9 +265,9 @@ void func_8038AA44(void){
|
||||
func_8038A140(4);
|
||||
}
|
||||
else if( MMM_D_8038C510.unkC != NULL
|
||||
&& func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
|
||||
&& chTumblar_isBanjoAbove(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
|
||||
){
|
||||
func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp28);
|
||||
chTumblar_copyPosition(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp28);
|
||||
tmp_v0 = func_8033F3C0(MMM_D_8038C510.unk0, sp28);
|
||||
if(tmp_v0){
|
||||
sp24 = func_8038A26C(tmp_v0);
|
||||
@@ -286,7 +286,7 @@ void func_8038AA44(void){
|
||||
}//L8038AB7C
|
||||
|
||||
if( MMM_D_8038C510.unk8 == 5
|
||||
&& func_8038AD38(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
|
||||
&& chTumblar_isDisappeared(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10)
|
||||
){
|
||||
func_8038A140(6);
|
||||
}
|
||||
|
@@ -3,16 +3,25 @@
|
||||
#include "variables.h"
|
||||
#include <core1/viewport.h>
|
||||
|
||||
/* extern functions */
|
||||
extern void sfxsource_setSampleRate(u8, s32);
|
||||
extern f32 func_80258640(f32[3], f32[3]);
|
||||
extern f32 ml_vec3f_horizontal_distance_zero_likely(f32[3], f32[3]);
|
||||
|
||||
/* data */
|
||||
enum chTumblar_state_e {
|
||||
TUMBLAR_STATE_0_IDLE,
|
||||
TUMBLAR_STATE_1_CONGRATULATING,
|
||||
TUMBLAR_STATE_2_BREAKING,
|
||||
TUMBLAR_STATE_3_DISAPPEARED
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
ActorMarker *unk0;
|
||||
u8 unk4;
|
||||
u8 pad5[3];
|
||||
f32 unk8;
|
||||
f32 unkC[3];
|
||||
}Struct_MMM_47D0_0;
|
||||
ActorMarker *jiggy_marker;
|
||||
u8 state;
|
||||
u8 unused[3];
|
||||
f32 timer;
|
||||
f32 velocity[3];
|
||||
} Struct_MMM_47D0_0;
|
||||
|
||||
/* .code */
|
||||
void MMM_func_8038ABC0(s32 arg0) {
|
||||
@@ -21,172 +30,198 @@ void MMM_func_8038ABC0(s32 arg0) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_8038AC04(void){
|
||||
if((*(u32*)PHYS_TO_K1(0x1D0)) - 0x356BAAAE){
|
||||
void func_8038AC04(void) {
|
||||
if ((*(u32 *) PHYS_TO_K1(0x1D0)) - 0x356BAAAE) {
|
||||
MMM_func_8038ABC0(0x820);
|
||||
}
|
||||
}
|
||||
|
||||
//BREAK???==========
|
||||
void func_8038AC40(Struct_MMM_47D0_0 *arg0, struct struct_68_s *arg1, f32 position[3], f32 rotation[3], f32 scale, BKModelBin *model_bin, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
u8 temp_v0;
|
||||
|
||||
if (arg0->unk4 != 3) {
|
||||
if ((arg0->unk4 == 0) || (arg0->unk4 == 1)) {
|
||||
void chTumblar_draw(Struct_MMM_47D0_0 *arg0, struct struct_68_s *arg1, f32 position[3], f32 rotation[3], f32 scale, BKModelBin *model_bin, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
if (arg0->state != TUMBLAR_STATE_3_DISAPPEARED) {
|
||||
if (arg0->state == TUMBLAR_STATE_0_IDLE || arg0->state == TUMBLAR_STATE_1_CONGRATULATING) {
|
||||
modelRender_setAlpha(0xFF);
|
||||
} else if (arg0->unk4 == 2) {
|
||||
modelRender_setAlpha((s32)((1 - ((f64)arg0->unk8 * 1)) * 255.0));
|
||||
}
|
||||
else if (arg0->state == TUMBLAR_STATE_2_BREAKING) {
|
||||
modelRender_setAlpha((s32)((1 - ((f64) arg0->timer * 1)) * 255.0));
|
||||
}
|
||||
|
||||
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
|
||||
modelRender_draw(gfx, mtx, position, rotation, scale, NULL, model_bin);
|
||||
}
|
||||
}
|
||||
|
||||
void func_8038AD10(s32 arg0, s32 arg1, f32 arg2[3]) {
|
||||
func_8035179C(arg1, arg2);
|
||||
void chTumblar_copyPosition(s32 arg0, s32 arg1, f32 arg2[3]) {
|
||||
func_8035179C_copyPosition(arg1, arg2);
|
||||
}
|
||||
|
||||
bool func_8038AD38(Struct_MMM_47D0_0 *arg0, s32 arg1){
|
||||
return arg0->unk4 == 3;
|
||||
bool chTumblar_isDisappeared(Struct_MMM_47D0_0 *arg0, s32 arg1) {
|
||||
return arg0->state == TUMBLAR_STATE_3_DISAPPEARED;
|
||||
}
|
||||
|
||||
bool func_8038AD4C(s32 arg0, s32 arg1) {
|
||||
bool chTumblar_isBanjoAbove(s32 arg0, s32 arg1) {
|
||||
f32 plyr_pos[3];
|
||||
f32 sp18[3];
|
||||
f32 position[3];
|
||||
|
||||
player_getPosition(plyr_pos);
|
||||
func_8035179C(arg1, sp18);
|
||||
return func_803518D4(arg1)
|
||||
&& (func_80258640(sp18, plyr_pos) < 40.0f)
|
||||
&& (player_getTransformation() == TRANSFORM_1_BANJO)
|
||||
&& (func_8028ECAC() == 0);
|
||||
func_8035179C_copyPosition(arg1, position);
|
||||
|
||||
return func_803518D4(arg1) &&
|
||||
ml_vec3f_horizontal_distance_zero_likely(position, plyr_pos) < 40.0f &&
|
||||
player_getTransformation() == TRANSFORM_1_BANJO &&
|
||||
func_8028ECAC() == 0;
|
||||
}
|
||||
|
||||
void MMM_func_8038ADF0(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) {
|
||||
u8 sp3F;
|
||||
f32 sp38;
|
||||
void chTumblar_init(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) {
|
||||
u8 sfxsource_index;
|
||||
f32 distance_to_jiggy;
|
||||
Actor *jiggy;
|
||||
f32 sp28[3];
|
||||
f32 position[3];
|
||||
|
||||
arg0->state = TUMBLAR_STATE_0_IDLE;
|
||||
arg0->timer = 0.0f;
|
||||
|
||||
arg0->velocity[0] = 0.0f;
|
||||
arg0->velocity[1] = 0.0f;
|
||||
arg0->velocity[2] = 0.0f;
|
||||
|
||||
arg0->unk4 = 0;
|
||||
arg0->unk8 = 0.0f;
|
||||
arg0->unkC[0] = 0.0f;
|
||||
arg0->unkC[1] = 0.0f;
|
||||
arg0->unkC[2] = 0.0f;
|
||||
func_8038AA30(arg0, arg1);
|
||||
func_80351A14(arg1, (Struct68DrawMethod)func_8038AC40);
|
||||
sp3F = func_80351758(arg1);
|
||||
sfxsource_setSfxId(sp3F, SFX_3EC_CCW_DOOR_OPENING);
|
||||
func_8030DD14(sp3F, 3);
|
||||
sfxsource_playSfxAtVolume(sp3F, 0.6f);
|
||||
sfxsource_setSampleRate(sp3F, 0);
|
||||
func_8030E2C4(sp3F);
|
||||
func_8035179C(arg1, sp28);
|
||||
sp38 = 500.0f;
|
||||
jiggy = actorArray_findClosestActorFromActorId(sp28, ACTOR_46_JIGGY, -1, &sp38);
|
||||
func_80351A14(arg1, (Struct68DrawMethod) chTumblar_draw);
|
||||
|
||||
sfxsource_index = func_80351758_getSfxsourceIndex(arg1);
|
||||
sfxsource_setSfxId(sfxsource_index, SFX_3EC_CCW_DOOR_OPENING);
|
||||
func_8030DD14(sfxsource_index, 3);
|
||||
sfxsource_playSfxAtVolume(sfxsource_index, 0.6f);
|
||||
sfxsource_setSampleRate(sfxsource_index, 0);
|
||||
func_8030E2C4(sfxsource_index);
|
||||
|
||||
func_8035179C_copyPosition(arg1, position);
|
||||
distance_to_jiggy = 500.0f;
|
||||
jiggy = actorArray_findClosestActorFromActorId(position, ACTOR_46_JIGGY, -1, &distance_to_jiggy);
|
||||
|
||||
if (jiggy != NULL) {
|
||||
arg0->unk0 = jiggy->marker;
|
||||
} else {
|
||||
arg0->unk0 = NULL;
|
||||
arg0->jiggy_marker = jiggy->marker;
|
||||
}
|
||||
else {
|
||||
arg0->jiggy_marker = NULL;
|
||||
}
|
||||
|
||||
if (arg0->unk0 != NULL) {
|
||||
arg0->unk0->collidable = FALSE;
|
||||
if (arg0->jiggy_marker != NULL) {
|
||||
arg0->jiggy_marker->collidable = FALSE;
|
||||
}
|
||||
|
||||
if (jiggyscore_isCollected(JIGGY_62_MMM_TUMBLAR)) {
|
||||
func_80351A04(arg1, 1);
|
||||
arg0->unk4 = 3;
|
||||
arg0->state = TUMBLAR_STATE_3_DISAPPEARED;
|
||||
}
|
||||
}
|
||||
|
||||
void func_8038AF0C(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
|
||||
mapSpecificFlags_set(1, 1);
|
||||
void __chTumblar_congratulationTextCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
|
||||
mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, TRUE);
|
||||
}
|
||||
|
||||
void func_8038AF3C(Struct_MMM_47D0_0 *arg0, s32 arg1) {
|
||||
gcdialog_showText(0xADB, 4, NULL, arg0->unk0, func_8038AF0C, NULL);
|
||||
arg0->unk4 = 1;
|
||||
void chTumblar_congratulate(Struct_MMM_47D0_0 *arg0, s32 arg1) {
|
||||
gcdialog_showText(ASSET_ADB_TEXT_UNKNOWN, 4, NULL, arg0->jiggy_marker, __chTumblar_congratulationTextCallback, NULL);
|
||||
arg0->state = TUMBLAR_STATE_1_CONGRATULATING;
|
||||
}
|
||||
|
||||
void func_8038AF90(Struct_MMM_47D0_0 *arg0, Struct68s *arg1, f32 arg2) {
|
||||
f32 sp7C[3];
|
||||
f32 sp70[3];
|
||||
f32 sp64[3];
|
||||
Actor *temp_v0_2;
|
||||
f32 sp54[3];
|
||||
f32 sp48[3];
|
||||
f32 sp40[2];
|
||||
s32 sp3C;
|
||||
u8 sp38;
|
||||
void chTumblar_update(Struct_MMM_47D0_0 *arg0, Struct68s *arg1, f32 tick) {
|
||||
f32 viewport_position[3];
|
||||
f32 viewport_rotation[3];
|
||||
f32 direction[3];
|
||||
Actor *jiggy;
|
||||
f32 position[3];
|
||||
f32 plyr_pos[3];
|
||||
f32 joystick[2];
|
||||
s32 is_banjo_above;
|
||||
u8 sfxsource_index;
|
||||
|
||||
arg0->timer += tick;
|
||||
|
||||
arg0->unk8 += arg2;
|
||||
if (arg0->unk4 == 0) {
|
||||
func_8035179C(arg1, sp54);
|
||||
func_8024E71C(0, sp40);
|
||||
sp3C = func_8038AD4C(arg0, arg1);
|
||||
if (sp3C) {
|
||||
if (arg0->state == TUMBLAR_STATE_0_IDLE) {
|
||||
func_8035179C_copyPosition(arg1, position);
|
||||
controller_getJoystick(0, joystick);
|
||||
is_banjo_above = chTumblar_isBanjoAbove(arg0, arg1);
|
||||
|
||||
if (is_banjo_above) {
|
||||
func_8028F66C(BS_INTR_D_SURF);
|
||||
}
|
||||
if (sp3C && ((sp40[0] != 0.0f) || (sp40[1] != 0.0f))) {
|
||||
viewport_getRotation_vec3f(sp70);
|
||||
sp64[0] = sp40[0];
|
||||
sp64[1] = 0.0f;
|
||||
sp64[2] = -sp40[1];
|
||||
ml_vec3f_yaw_rotate_copy(sp64, sp64, sp70[1]);
|
||||
arg0->unkC[0] += sp64[0] * 2500.0f * arg2;
|
||||
arg0->unkC[2] += sp64[2] * 2500.0f * arg2;
|
||||
} else {
|
||||
arg0->unkC[0] *= 0.7;
|
||||
arg0->unkC[2] *= 0.7;
|
||||
|
||||
if (is_banjo_above && (joystick[0] != 0.0f || joystick[1] != 0.0f)) {
|
||||
viewport_getRotation_vec3f(viewport_rotation);
|
||||
|
||||
direction[0] = joystick[0];
|
||||
direction[1] = 0.0f;
|
||||
direction[2] = -joystick[1];
|
||||
|
||||
ml_vec3f_yaw_rotate_copy(direction, direction, viewport_rotation[1]);
|
||||
arg0->velocity[0] += direction[0] * 2500.0f * tick;
|
||||
arg0->velocity[2] += direction[2] * 2500.0f * tick;
|
||||
}
|
||||
if (LENGTH_VEC3F(arg0->unkC) > 400.0f) {
|
||||
ml_vec3f_set_length(arg0->unkC, 400.0f);
|
||||
else {
|
||||
arg0->velocity[0] *= 0.7;
|
||||
arg0->velocity[2] *= 0.7;
|
||||
}
|
||||
sp54[0] += arg0->unkC[0] * arg2;
|
||||
sp54[2] += arg0->unkC[2] * arg2;
|
||||
func_80351B28(arg1, sp54);
|
||||
func_8035179C(arg1, sp54);
|
||||
if (arg0->unk0 != NULL) {
|
||||
viewport_getPosition_vec3f(sp7C);
|
||||
sp64[0] = sp54[0] - sp7C[0];
|
||||
sp64[2] = sp54[2] - sp7C[2];
|
||||
sp64[1] = 0.0f;
|
||||
ml_vec3f_normalize(sp64);
|
||||
temp_v0_2 = marker_getActor(arg0->unk0);
|
||||
temp_v0_2->position[0] = sp54[0] + (sp64[0] * 20.0f);
|
||||
temp_v0_2->position[2] = sp54[2] + (sp64[2] * 20.0f);
|
||||
|
||||
if (LENGTH_VEC3F(arg0->velocity) > 400.0f) {
|
||||
ml_vec3f_set_length(arg0->velocity, 400.0f);
|
||||
}
|
||||
} else if (arg0->unk4 == 2) {
|
||||
if (arg0->unk8 >= 1.0f) {
|
||||
arg0->unk4 = 3U;
|
||||
if (arg0->unk0 != NULL) {
|
||||
arg0->unk0->collidable = TRUE;
|
||||
|
||||
position[0] += arg0->velocity[0] * tick;
|
||||
position[2] += arg0->velocity[2] * tick;
|
||||
|
||||
func_80351B28(arg1, position);
|
||||
func_8035179C_copyPosition(arg1, position);
|
||||
|
||||
if (arg0->jiggy_marker != NULL) {
|
||||
viewport_getPosition_vec3f(viewport_position);
|
||||
|
||||
direction[0] = position[0] - viewport_position[0];
|
||||
direction[2] = position[2] - viewport_position[2];
|
||||
direction[1] = 0.0f;
|
||||
ml_vec3f_normalize(direction);
|
||||
|
||||
jiggy = marker_getActor(arg0->jiggy_marker);
|
||||
jiggy->position[0] = position[0] + (direction[0] * 20.0f);
|
||||
jiggy->position[2] = position[2] + (direction[2] * 20.0f);
|
||||
}
|
||||
}
|
||||
else if (arg0->state == TUMBLAR_STATE_2_BREAKING) {
|
||||
if (arg0->timer >= 1.0f) {
|
||||
arg0->state = TUMBLAR_STATE_3_DISAPPEARED;
|
||||
|
||||
if (arg0->jiggy_marker != NULL) {
|
||||
arg0->jiggy_marker->collidable = TRUE;
|
||||
}
|
||||
|
||||
func_80351A04(arg1, 1);
|
||||
}
|
||||
arg0->unkC[0] *= 0.7;
|
||||
arg0->unkC[2] *= 0.7;
|
||||
|
||||
arg0->velocity[0] *= 0.7;
|
||||
arg0->velocity[2] *= 0.7;
|
||||
}
|
||||
if (arg0->unk4 == 1) {
|
||||
sp38 = func_80351758(arg1);
|
||||
sfxsource_setSampleRate(sp38, 0);
|
||||
} else {
|
||||
sp38 = func_80351758(arg1);
|
||||
sfxsource_setSampleRate(sp38, (s32) ((LENGTH_VEC3F(arg0->unkC) / 400.0) * 15000.0));
|
||||
|
||||
if (arg0->state == TUMBLAR_STATE_1_CONGRATULATING) {
|
||||
sfxsource_index = func_80351758_getSfxsourceIndex(arg1);
|
||||
sfxsource_setSampleRate(sfxsource_index, 0);
|
||||
}
|
||||
player_getPosition(sp48);
|
||||
func_8035179C(arg1, sp54);
|
||||
if (!mapSpecificFlags_get(0) && (arg0->unk4 == 0) && (func_80258640(sp54, sp48) < 250.0f)){
|
||||
if(gcdialog_showText(0xADA, 0, NULL, NULL, NULL, NULL)) {
|
||||
else {
|
||||
sfxsource_index = func_80351758_getSfxsourceIndex(arg1);
|
||||
sfxsource_setSampleRate(sfxsource_index, (s32)((LENGTH_VEC3F(arg0->velocity) / 400.0) * 15000.0));
|
||||
}
|
||||
|
||||
player_getPosition(plyr_pos);
|
||||
func_8035179C_copyPosition(arg1, position);
|
||||
|
||||
if (!mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN) && arg0->state == TUMBLAR_STATE_0_IDLE && ml_vec3f_horizontal_distance_zero_likely(position, plyr_pos) < 250.0f) {
|
||||
if (gcdialog_showText(ASSET_ADA_TEXT_UNKNOWN, 0, NULL, NULL, NULL, NULL)) {
|
||||
mapSpecificFlags_set(0, TRUE);
|
||||
}
|
||||
}
|
||||
if ((arg0->unk4 == 1) && mapSpecificFlags_get(1)) {
|
||||
arg0->unk4 = 2U;
|
||||
arg0->unk8 = 0.0f;
|
||||
mapSpecificFlags_set(1, 0);
|
||||
FUNC_8030E8B4(SFX_11B_TUMBLAR_DISAPPEARING_1, 1.0f, 30000, sp54, 500, 2500);
|
||||
|
||||
if (arg0->state == TUMBLAR_STATE_1_CONGRATULATING && mapSpecificFlags_get(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN)) {
|
||||
arg0->state = TUMBLAR_STATE_2_BREAKING;
|
||||
arg0->timer = 0.0f;
|
||||
mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, FALSE);
|
||||
FUNC_8030E8B4(SFX_11B_TUMBLAR_DISAPPEARING_1, 1.0f, 30000, position, 500, 2500);
|
||||
}
|
||||
}
|
||||
|
@@ -74,7 +74,7 @@ void func_8038B630(Struct5Fs *arg0, Struct68s *arg1){
|
||||
f32 sp20;
|
||||
|
||||
sp20 = alCents2Ratio(func_80389BBC()*100);
|
||||
phi_s0 = func_80351758(arg1);
|
||||
phi_s0 = func_80351758_getSfxsourceIndex(arg1);
|
||||
func_8030E394(phi_s0);
|
||||
sfxsource_playSfxAtVolume(phi_s0, sp20);
|
||||
sfxsource_setSfxId(phi_s0, 0x3f3);
|
||||
@@ -118,7 +118,7 @@ void func_8038B790(Struct5Fs *arg0, Struct68s *arg1, f32 arg2) {
|
||||
if (arg0->unk14 <= 0.0f) {
|
||||
func_80351954(arg1);
|
||||
} else if (arg0->unk14 <= 1.0f) {
|
||||
sfxsource_setSampleRate(func_80351758(arg1), (s32)(arg0->unk14 * 32767.0f));
|
||||
sfxsource_setSampleRate(func_80351758_getSfxsourceIndex(arg1), (s32)(arg0->unk14 * 32767.0f));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2,93 +2,104 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
void func_80387280(Actor *this);
|
||||
/* public functions */
|
||||
void chFlowerpot_update(Actor *this);
|
||||
|
||||
/* .data */
|
||||
enum chFlowerpot_state_e {
|
||||
FLOWER_POT_STATE_1_IDLE = 1,
|
||||
FLOWER_POT_STATE_2_FLOWERED
|
||||
};
|
||||
|
||||
ActorAnimationInfo D_8038BA50[] = {
|
||||
{0x00, 0.0f},
|
||||
{0x00, 0.0f},
|
||||
{ASSET_A9_ANIM_FLOWER_POT, 2.0f},
|
||||
{ASSET_A9_ANIM_FLOWER_POT, 2.0f}
|
||||
};
|
||||
|
||||
ActorInfo D_8038BA68 = {
|
||||
MARKER_34_CEMETARY_POT, ACTOR_25_CEMETARY_POT, ASSET_3AE_MODEL_GRAVE_FLOWER_POT,
|
||||
0x1, D_8038BA50,
|
||||
func_80387280, func_80326224, actor_draw,
|
||||
MARKER_34_CEMETARY_POT, ACTOR_25_CEMETARY_POT, ASSET_3AE_MODEL_GRAVE_FLOWER_POT,
|
||||
0x1, D_8038BA50,
|
||||
chFlowerpot_update, actor_update_func_80326224, actor_draw,
|
||||
0, 0, 0.0f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
//chflowerpots_getRemaining
|
||||
s32 func_803871B0(void) {
|
||||
s32 chFlowerpot_getRemaining(void) {
|
||||
return levelSpecificFlags_getN(0x39, 3);
|
||||
}
|
||||
|
||||
//chflowerpots_setRemaining
|
||||
void func_803871D4(s32 arg0) {
|
||||
void chFlowerpot_setRemaining(s32 arg0) {
|
||||
levelSpecificFlags_setN(0x39, arg0, 3);
|
||||
}
|
||||
|
||||
void MMM_func_803871FC(Actor *this){
|
||||
switch(this->state){
|
||||
case 1:
|
||||
void MMM_func_803871FC(Actor *this) {
|
||||
switch (this->state) {
|
||||
case FLOWER_POT_STATE_1_IDLE:
|
||||
func_8033A45C(3, FALSE);
|
||||
break;
|
||||
case 2:
|
||||
|
||||
case FLOWER_POT_STATE_2_FLOWERED:
|
||||
func_8033A45C(3, TRUE);
|
||||
break;
|
||||
}
|
||||
|
||||
func_803255FC(this);
|
||||
}
|
||||
|
||||
void mmm_resetFlowerPots() {
|
||||
func_803871D4(5);
|
||||
void chFlowerpot_reset() {
|
||||
chFlowerpot_setRemaining(5);
|
||||
}
|
||||
|
||||
//chflowerpots_update
|
||||
void func_80387280(Actor *this){
|
||||
void chFlowerpot_update(Actor *this) {
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
if(!this->initialized){
|
||||
|
||||
if (!this->initialized) {
|
||||
this->initialized = TRUE;
|
||||
this->unk130 = MMM_func_803871FC;
|
||||
}
|
||||
|
||||
switch(this->state){
|
||||
case 1:
|
||||
switch (this->state) {
|
||||
case FLOWER_POT_STATE_1_IDLE:
|
||||
animctrl_setPlaybackType(this->animctrl, ANIMCTRL_STOPPED);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if(actor_animationIsAt(this, 0.2f)){
|
||||
FUNC_8030E8B4(SFX_12F_FUUUCK_YOUUU, 1.0f, 30000, this->position, 300, 2000);
|
||||
case FLOWER_POT_STATE_2_FLOWERED:
|
||||
if (actor_animationIsAt(this, 0.2f)) {
|
||||
FUNC_8030E8B4(SFX_12F_THAAANK_YOOOUUU, 1.0f, 30000, this->position, 300, 2000);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool MMM_func_80387340(ActorMarker *marker){
|
||||
bool chFlowerpot_eggCollision(ActorMarker *marker) {
|
||||
Actor *actor = marker_getActor(marker);
|
||||
f32 sp20[3];
|
||||
s32 sp1C;
|
||||
|
||||
if(actor->state == 2)
|
||||
return FALSE;
|
||||
f32 position[3];
|
||||
s32 remaining;
|
||||
|
||||
subaddie_set_state(actor, 2);
|
||||
if (actor->state == FLOWER_POT_STATE_2_FLOWERED) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
subaddie_set_state(actor, FLOWER_POT_STATE_2_FLOWERED);
|
||||
animctrl_setPlaybackType(actor->animctrl, ANIMCTRL_ONCE);
|
||||
sp1C = func_803871B0();
|
||||
if(sp1C != 0){
|
||||
sp1C--;
|
||||
if(sp1C == 0){
|
||||
ml_vec3f_copy(sp20, actor->position);
|
||||
sp20[1] += 80.0f;
|
||||
remaining = chFlowerpot_getRemaining();
|
||||
|
||||
if (remaining != 0) {
|
||||
remaining--;
|
||||
|
||||
if (remaining == 0) {
|
||||
ml_vec3f_copy(position, actor->position);
|
||||
position[1] += 80.0f;
|
||||
|
||||
comusic_playTrack(COMUSIC_2D_PUZZLE_SOLVED_FANFARE);
|
||||
jiggy_spawn(JIGGY_63_MMM_FLOWER_POTS, sp20);
|
||||
jiggy_spawn(JIGGY_63_MMM_FLOWER_POTS, position);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
comusic_playTrack(COMUSIC_2B_DING_B);
|
||||
}
|
||||
}
|
||||
func_803871D4(sp1C);
|
||||
|
||||
chFlowerpot_setRemaining(remaining);
|
||||
return TRUE;
|
||||
}
|
||||
|
@@ -53,10 +53,13 @@ void __chAnchorCtrl_setState(Actor *this, s32 new_state){
|
||||
void chAnchorCtrl_update(Actor *this){
|
||||
if(!this->volatile_initialized){
|
||||
this->volatile_initialized = TRUE;
|
||||
if(levelSpecificFlags_getSet(0x30, FALSE))
|
||||
|
||||
if (levelSpecificFlags_getSet(LEVEL_FLAG_30_RBB_UNKNOWN, FALSE)) {
|
||||
__chAnchorCtrl_setState(this, 2);
|
||||
else
|
||||
}
|
||||
else {
|
||||
__chAnchorCtrl_setState(this, 1);
|
||||
}
|
||||
|
||||
if(jiggyscore_isSpawned(JIGGY_53_RBB_SNORKEL))
|
||||
marker_despawn(this->marker);
|
||||
|
@@ -20,7 +20,7 @@ void __chAnchorSwitch_setState(Actor *this, s32 arg1){
|
||||
actor_collisionOff(this);
|
||||
this->position_y -= 35.0f;
|
||||
if(this->state == 1){
|
||||
levelSpecificFlags_set(0x30, TRUE);
|
||||
levelSpecificFlags_set(LEVEL_FLAG_30_RBB_UNKNOWN, TRUE);
|
||||
volatileFlag_set(VOLATILE_FLAG_E, 1);
|
||||
timedFunc_set_0(1.0f, func_803228D8);
|
||||
timedFunc_set_3(1.0f, (GenFunction_3)func_802E4078, MAP_31_RBB_RUSTY_BUCKET_BAY, 0, 0);
|
||||
|
@@ -80,7 +80,7 @@ void func_8038E998(Actor *this){
|
||||
particleEmitter_setPosition(other, this->position);
|
||||
particleEmitter_setStartingScaleRange(other, 0.25f, 0.75f);
|
||||
particleEmitter_setFinalScaleRange(other, 0.75f, 1.75f);
|
||||
particleEmitter_setParticleSpawnPositionRange(other, -50.0f, 25.0f, -50.0f, 50.0f, 25.0f, 50.0f);
|
||||
particleEmitter_setSpawnPositionRange(other, -50.0f, 25.0f, -50.0f, 50.0f, 25.0f, 50.0f);
|
||||
particleEmitter_setParticleVelocityRange(other, -50.0f, 100.0f, -50.0f, 50.0f, 200.0f, 50.0f);
|
||||
particleEmitter_setParticleLifeTimeRange(other, 0.5f, 1.0f);
|
||||
particleEmitter_emitN(other, 2);
|
||||
@@ -95,7 +95,7 @@ void func_8038EAB4(Actor *this){
|
||||
particleEmitter_setDrawMode(other, PART_EMIT_NO_LOOP);
|
||||
particleEmitter_setStartingFrameRange(other, 0, 0);
|
||||
particleEmitter_setParticleFramerateRange(other, 4.0f, 4.0f);
|
||||
particleEmitter_setParticleSpawnPositionRange(other, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f);
|
||||
particleEmitter_setSpawnPositionRange(other, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f);
|
||||
particleEmitter_setPosition(other, this->position);
|
||||
particleEmitter_setStartingScaleRange(other, 3.0f, 3.0f);
|
||||
particleEmitter_setFinalScaleRange(other, 8.0f, 8.0f);
|
||||
@@ -113,7 +113,7 @@ void func_8038EC14(Actor *this){
|
||||
particleEmitter_setPosition(other, this->position);
|
||||
particleEmitter_setStartingScaleRange(other, 1.0f, 1.5f);
|
||||
particleEmitter_setFinalScaleRange(other, 2.0f, 3.0f);
|
||||
particleEmitter_setParticleSpawnPositionRange(other, -75.0f, 25.0f, -75.0f, 75.0f, 75.0f, 75.0f);
|
||||
particleEmitter_setSpawnPositionRange(other, -75.0f, 25.0f, -75.0f, 75.0f, 75.0f, 75.0f);
|
||||
particleEmitter_setParticleVelocityRange(other, -70.0f, 50.0f, -70.0f, 70.0f, 100.0f, 70.0f);
|
||||
particleEmitter_setRGB(other, &RBB_D_80390DD0);
|
||||
particleEmitter_setParticleLifeTimeRange(other, 3.0f, 4.0f);
|
||||
@@ -122,9 +122,9 @@ void func_8038EC14(Actor *this){
|
||||
|
||||
void func_8038ED3C(Actor * actor, s32 arg1){
|
||||
ParticleEmitter *other = partEmitMgr_newEmitter(0xa);
|
||||
particleEmitter_setParticleAccelerationRange(other, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f);
|
||||
func_802EF9F8(other, 0.6f);
|
||||
func_802EFA18(other, 3);
|
||||
particleEmitter_setAccelerationRange(other, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f);
|
||||
particleEmitter_func_802EF9F8(other, 0.6f);
|
||||
particleEmitter_func_802EFA18(other, 3);
|
||||
particleEmitter_setModel(other, arg1);
|
||||
particleEmitter_setPosition(other, actor->position);
|
||||
particleEmitter_setStartingScaleRange(other, 0.05f, 0.4f);
|
||||
|
@@ -72,14 +72,14 @@ ActorInfo RBB_D_80390C3C = {
|
||||
|
||||
s32 D_80390C60[3] = {0xDE, 0xA7, 0x71};
|
||||
|
||||
struct41s D_80390C6C = {
|
||||
ParticleSettingsVelocityAcceleration D_80390C6C = {
|
||||
{ {-200.0f, 200.0f, -200.0f}, {200.0f, 500.0f, 200.0f} },
|
||||
{ {0.0f, -800.0f, 0.0f}, {0.0f, -800.0f, 0.0f} }
|
||||
};
|
||||
|
||||
s32 D_80390C9C[3] = {0xDE, 0xA7, 0x71};
|
||||
|
||||
struct43s D_80390CA8 = {
|
||||
ParticleSettingsVelocityAccelerationPosition D_80390CA8 = {
|
||||
{ {-200.0f, 0.0f, -200.0f}, {200.0f, -50.0f, 200.0f} },
|
||||
{ {0.0f, 200.0f, 0.0f}, {0.0f, 400.0f, 0.0f} },
|
||||
{ {-10.0f, -10.0f, -10.0f}, {10.0f, 10.0f, 10.0f} }
|
||||
@@ -106,7 +106,7 @@ void func_8038C39C(Actor *this){
|
||||
particleEmitter_setPosition(other, this->position);
|
||||
particleEmitter_setStartingScaleRange(other, local->unk0->unk4*1, local->unk0->unk4*3.0f);
|
||||
particleEmitter_setFinalScaleRange(other, 3.0f*local->unk0->unk4, local->unk0->unk4*7.0f);
|
||||
particleEmitter_setParticleSpawnPositionRange(other,
|
||||
particleEmitter_setSpawnPositionRange(other,
|
||||
local->unk0->unk4*-200.0f, local->unk0->unk4*100.0f, local->unk0->unk4*-200.0f,
|
||||
local->unk0->unk4*200.0f, local->unk0->unk4*100.0f, local->unk0->unk4*200.0f
|
||||
);
|
||||
@@ -128,7 +128,7 @@ void RBB_func_8038C538(Actor *this){
|
||||
particleEmitter_setPosition(other, this->position);
|
||||
particleEmitter_setStartingScaleRange(other, local->unk0->unk4*1, local->unk0->unk4*6.0f);
|
||||
particleEmitter_setFinalScaleRange(other, 0.5*local->unk0->unk4, local->unk0->unk4*3.0f);
|
||||
particleEmitter_setParticleSpawnPositionRange(other,
|
||||
particleEmitter_setSpawnPositionRange(other,
|
||||
local->unk0->unk4*-300.0f, local->unk0->unk4*100.0f, local->unk0->unk4*-300.0f,
|
||||
local->unk0->unk4*300.0f, local->unk0->unk4*300.0f, local->unk0->unk4*300.0f
|
||||
);
|
||||
@@ -146,11 +146,11 @@ void RBB_func_8038C70C(Actor *this){
|
||||
ActorLocal_RBB_5F80 *local = (ActorLocal_RBB_5F80 *) &this->local;
|
||||
ParticleEmitter *other = partEmitMgr_newEmitter(0xa);
|
||||
|
||||
func_802EF9F8(other, 0.6f);
|
||||
func_802EFA18(other, 3);
|
||||
particleEmitter_func_802EF9F8(other, 0.6f);
|
||||
particleEmitter_func_802EFA18(other, 3);
|
||||
particleEmitter_setDrawMode(other, 4);
|
||||
particleEmitter_setModel(other, 0x427);
|
||||
particleEmitter_setParticleSpawnPositionRange(other,
|
||||
particleEmitter_setSpawnPositionRange(other,
|
||||
local->unk0->unk4 * -300.0f, local->unk0->unk4 * 100.0f, local->unk0->unk4 * -300.0f,
|
||||
local->unk0->unk4 * 300.0f, local->unk0->unk4 * 200.0f, local->unk0->unk4 * 300.0f
|
||||
);
|
||||
@@ -183,7 +183,7 @@ void func_8038C8A8(Actor * this){
|
||||
particleEmitter_setPosition(other, sp24);
|
||||
particleEmitter_setStartingScaleRange(other, local->unk0->unk4*1, local->unk0->unk4*3.0f);
|
||||
particleEmitter_setFinalScaleRange(other, local->unk0->unk4*3.0f, local->unk0->unk4*6.0f);
|
||||
particleEmitter_setPositionVelocityAndAccelerationRanges(other, &D_80390CA8);
|
||||
particleEmitter_setVelocityAccelerationAndPositionRanges(other, &D_80390CA8);
|
||||
particleEmitter_setParticleLifeTimeRange(other, 1.0f, 2.0f);
|
||||
particleEmitter_setRGB(other, &D_80390C9C);
|
||||
particleEmitter_emitN(other, 5);
|
||||
|
@@ -56,7 +56,7 @@ void func_8038B900(Actor *this){
|
||||
other = func_802EDD8C(&sp48, 0.0f, -1300.0f);
|
||||
particleEmitter_setStartingScaleRange(other, 0.04f, 0.04f);
|
||||
particleEmitter_setFinalScaleRange(other, 0.18f, 0.18f);
|
||||
particleEmitter_setParticleSpawnPositionRange(other, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f);
|
||||
particleEmitter_setSpawnPositionRange(other, -10.0f, 0.0f, -10.0f, 10.0f, 20.0f, 10.0f);
|
||||
particleEmitter_setParticleVelocityRange(other, 0.0f, 31.0f, 0.0f, 0.0f, 37.0f, 0.0f);
|
||||
particleEmitter_emitN(other, 1);
|
||||
}
|
||||
@@ -105,7 +105,7 @@ void func_8038B900(Actor *this){
|
||||
}
|
||||
|
||||
if(this->state == 3){
|
||||
func_80326224(this);
|
||||
actor_update_func_80326224(this);
|
||||
if(0.99 < this->unk48){
|
||||
mapSpecificFlags_set(4, FALSE);
|
||||
marker_despawn(this->marker);
|
||||
|
@@ -58,8 +58,8 @@ ActorInfo D_8039083C = {
|
||||
f32 D_80390860[3] = {1.0f, 0.5f, 0.5f};
|
||||
|
||||
/* .code */
|
||||
f32 func_8038A4E0(void){
|
||||
return D_80390860[2*levelSpecificFlags_get(0x27) + levelSpecificFlags_get(0x28)];
|
||||
f32 func_8038A4E0(void) {
|
||||
return D_80390860[2 * levelSpecificFlags_get(LEVEL_FLAG_27_RBB_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_28_RBB_UNKNOWN)];
|
||||
}
|
||||
|
||||
void func_8038A524(Actor *this, s32 arg1){
|
||||
|
@@ -23,8 +23,8 @@ ActorInfo D_803906E0 = {
|
||||
s32 D_80390704[4] = {0x258, 0x12C, 0x12C, 0};
|
||||
|
||||
/*.code */
|
||||
f32 __chPropellor_getSpeed(void){
|
||||
return (f32) D_80390704[2*levelSpecificFlags_get(0x27) + levelSpecificFlags_get(0x28)];
|
||||
f32 __chPropellor_getSpeed(void) {
|
||||
return (f32) D_80390704[2 * levelSpecificFlags_get(LEVEL_FLAG_27_RBB_UNKNOWN) + levelSpecificFlags_get(LEVEL_FLAG_28_RBB_UNKNOWN)];
|
||||
}
|
||||
|
||||
void __chPropellor_setState(Actor *this, s32 arg1){
|
||||
@@ -50,7 +50,8 @@ void func_80389B80(Actor *this, f32 arg1){
|
||||
func_802F9DB8(local->unk0, arg1, arg1, 0.0f);
|
||||
func_802F9F80(local->unk0, 0.0f, 8999999488.0f, 0.0f);
|
||||
func_802FA060(local->unk0, 0x4650, 0x4650, 0.0f);
|
||||
if(!levelSpecificFlags_get(3) && !levelSpecificFlags_get(4)){
|
||||
|
||||
if (!levelSpecificFlags_get(LEVEL_FLAG_3_RBB_UNKNOWN) && !levelSpecificFlags_get(LEVEL_FLAG_4_RBB_UNKNOWN)) {
|
||||
func_802F9EC4(local->unk0, &this->position, 0x1f4, 0x7d0);
|
||||
func_802FA0B0(local->unk0, 1);
|
||||
}
|
||||
@@ -90,7 +91,8 @@ void chPropellor_update(Actor *this){
|
||||
local->unk4 = 0.0f;
|
||||
local->unkC = 0.0f;
|
||||
__chPropellor_setState(this, 1);
|
||||
if(levelSpecificFlags_get(local->unk8 ? 4 : 3)){
|
||||
|
||||
if (levelSpecificFlags_get(local->unk8 ? LEVEL_FLAG_4_RBB_UNKNOWN : LEVEL_FLAG_3_RBB_UNKNOWN)) {
|
||||
ncStaticCamera_setToNode(9);
|
||||
func_80324E38(0.0f, 3);
|
||||
timedFunc_set_2(0.1f, (GenFunction_2)levelSpecificFlags_set, local->unk8 ? 0x28 : 0x27, 1);
|
||||
@@ -107,10 +109,12 @@ void chPropellor_update(Actor *this){
|
||||
if( (0.0f < tmp && this->pitch <= 0.0f)
|
||||
|| (180.0f < tmp && this->pitch <= 180.0f)
|
||||
){
|
||||
if(levelSpecificFlags_get(3) || levelSpecificFlags_get(4))
|
||||
if (levelSpecificFlags_get(LEVEL_FLAG_3_RBB_UNKNOWN) || levelSpecificFlags_get(LEVEL_FLAG_4_RBB_UNKNOWN)) {
|
||||
func_8030E760(SFX_2_CLAW_SWIPE, 0.4f, 20000);
|
||||
else
|
||||
}
|
||||
else {
|
||||
func_8030E988(SFX_2_CLAW_SWIPE, 0.4f, 20000, &this->position, 500.0f, 1000.0f);
|
||||
}
|
||||
}//L80389F94
|
||||
if(this->pitch < 0.0f)
|
||||
this->pitch += 360.0f;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user