refac: rename TTC_ prefixed functions to chXXX to conform to naming scheme
This commit is contained in:
@@ -13,29 +13,29 @@ typedef struct {
|
||||
s32 throw_target_radius;
|
||||
NodeProp* gold_bullion_throw_target_node_prop;
|
||||
s32 unk24; // bullions left to collect ? (changes from 4 to 0)
|
||||
}ActorLocal_Blubber;
|
||||
} ActorLocal_Blubber;
|
||||
|
||||
void TTC_Blubber_updateFunc(Actor *this);
|
||||
void TTC_Blubber_update2Func(Actor *this);
|
||||
Actor *TTC_Blubber_drawFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void chBlubber_updateFunc(Actor *this);
|
||||
void chBlubber_update2Func(Actor *this);
|
||||
Actor *chBlubber_drawFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
|
||||
enum ttc_blubber_map_flags_e {
|
||||
TTC_BLUBBER_MAP_FLAG_0_UNKNOWN = 0,
|
||||
TTC_BLUBBER_MAP_FLAG_1_UNKNOWN = 1, // If this is not set some things will not run like showing the jiggy collected text
|
||||
TTC_BLUBBER_MAP_FLAG_2_JIGGY_SPAWNED_TEXT_SHOWN = 2, // Jiggy collected text shown
|
||||
TTC_BLUBBER_MAP_FLAG_3_SHOW_JIGGY_SPAWNED_TEXT_FLAG = 3
|
||||
enum ch_blubber_map_flags_e {
|
||||
CH_BLUBBER_MAP_FLAG_0_UNKNOWN = 0,
|
||||
CH_BLUBBER_MAP_FLAG_1_UNKNOWN = 1, // If this is not set some things will not run like showing the jiggy collected text
|
||||
CH_BLUBBER_MAP_FLAG_2_JIGGY_SPAWNED_TEXT_SHOWN = 2, // Jiggy collected text shown
|
||||
CH_BLUBBER_MAP_FLAG_3_SHOW_JIGGY_SPAWNED_TEXT_FLAG = 3
|
||||
};
|
||||
|
||||
enum ttc_blubber_states_e {
|
||||
TTC_BLUBBER_STATE_1_UNKNOWN = 1, // initial state (80387A84)
|
||||
TTC_BLUBBER_STATE_2_UNKNOWN = 2, // 80387B10
|
||||
TTC_BLUBBER_STATE_3_UNKNOWN = 3,
|
||||
TTC_BLUBBER_STATE_4_UNKNOWN = 4, // 80387C04
|
||||
TTC_BLUBBER_STATE_5_UNKNOWN = 5 // 80387CD4
|
||||
enum ch_blubber_states_e {
|
||||
CH_BLUBBER_STATE_1_UNKNOWN = 1, // initial state (80387A84)
|
||||
CH_BLUBBER_STATE_2_UNKNOWN = 2, // 80387B10
|
||||
CH_BLUBBER_STATE_3_UNKNOWN = 3,
|
||||
CH_BLUBBER_STATE_4_UNKNOWN = 4, // 80387C04
|
||||
CH_BLUBBER_STATE_5_UNKNOWN = 5 // 80387CD4
|
||||
};
|
||||
|
||||
/* .data */
|
||||
ActorAnimationInfo TTC_BLUBBER_ACTOR_ANIMATIONS[6] = {
|
||||
ActorAnimationInfo gChBlubberAnimations[6] = {
|
||||
{0x00, 0.0f},
|
||||
{ASSET_B5_ANIM_BLUBBER_WALK, 2.0f},
|
||||
{ASSET_B6_ANIM_BLUBBER_CRY, 2.0f},
|
||||
@@ -44,15 +44,15 @@ ActorAnimationInfo TTC_BLUBBER_ACTOR_ANIMATIONS[6] = {
|
||||
{ASSET_B8_ANIM_BLUBBER_RUN, 0.8f}
|
||||
};
|
||||
|
||||
ActorInfo TTC_BLUBBER_ACTOR = {
|
||||
ActorInfo gChBlubber = {
|
||||
MARKER_A3_BLUBBER, ACTOR_115_BLUBBER, ASSET_370_MODEL_BLUBBER,
|
||||
0x1, TTC_BLUBBER_ACTOR_ANIMATIONS,
|
||||
TTC_Blubber_updateFunc, TTC_Blubber_update2Func, TTC_Blubber_drawFunc,
|
||||
0x1, gChBlubberAnimations,
|
||||
chBlubber_updateFunc, chBlubber_update2Func, chBlubber_drawFunc,
|
||||
0, 0x399, 1.8f, 0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void TTC_Blubber_initiliaze(Actor *this){
|
||||
void chBlubber_initiliaze(Actor *this){
|
||||
ActorLocal_Blubber *local = (ActorLocal_Blubber *)&this->local;
|
||||
|
||||
animctrl_setTransitionDuration(this->animctrl, 0.2f);
|
||||
@@ -66,7 +66,7 @@ void TTC_Blubber_initiliaze(Actor *this){
|
||||
func_8032A82C(this, 0x14C);
|
||||
}
|
||||
|
||||
void TTC_Blubber_showTextCallback(ActorMarker *caller, enum asset_e text_id, s32 arg1){
|
||||
void chBlubber_showTextCallback(ActorMarker *caller, enum asset_e text_id, s32 arg1){
|
||||
Actor *this = marker_getActor(caller);
|
||||
ActorLocal_Blubber *local = (ActorLocal_Blubber*)&this->local;
|
||||
|
||||
@@ -74,11 +74,11 @@ void TTC_Blubber_showTextCallback(ActorMarker *caller, enum asset_e text_id, s32
|
||||
local->unk24 = 0;
|
||||
}
|
||||
else{
|
||||
subaddie_set_state_with_direction(this, TTC_BLUBBER_STATE_2_UNKNOWN, 0, 1);
|
||||
subaddie_set_state_with_direction(this, CH_BLUBBER_STATE_2_UNKNOWN, 0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Blubber_showTextCallback2(ActorMarker *caller, enum asset_e text_id, s32 arg1){
|
||||
void chBlubber_showTextCallback2(ActorMarker *caller, enum asset_e text_id, s32 arg1){
|
||||
f32 sp24[3];
|
||||
|
||||
if(nodeProp_findPositionFromActorId(ACTOR_14B_TTC_BLUBBER_UNKNOWN, sp24)){
|
||||
@@ -87,31 +87,31 @@ void TTC_Blubber_showTextCallback2(ActorMarker *caller, enum asset_e text_id, s3
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Blubber_showJiggySpawnedText(ActorMarker *marker){
|
||||
void chBlubber_showJiggySpawnedText(ActorMarker *marker){
|
||||
Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
|
||||
enum asset_e text_id;
|
||||
|
||||
subaddie_set_state(this, TTC_BLUBBER_STATE_4_UNKNOWN);
|
||||
subaddie_set_state(this, CH_BLUBBER_STATE_4_UNKNOWN);
|
||||
actor_loopAnimation(this);
|
||||
this->actor_specific_1_f = 0.0f;
|
||||
|
||||
if(!mapSpecificFlags_get(TTC_BLUBBER_MAP_FLAG_2_JIGGY_SPAWNED_TEXT_SHOWN)) {
|
||||
if(!mapSpecificFlags_get(CH_BLUBBER_MAP_FLAG_2_JIGGY_SPAWNED_TEXT_SHOWN)) {
|
||||
text_id = jiggyscore_isCollected(JIGGY_14_TTC_BLUBBER) ? ASSET_A2A_BLUBBER_COMPLETE_JIGGY_COLLECTED : ASSET_A0D_BLUBBER_COMPLETE;
|
||||
gcdialog_showText(text_id, 0xf, this->position, this->marker, TTC_Blubber_showTextCallback, TTC_Blubber_showTextCallback2);
|
||||
mapSpecificFlags_set(TTC_BLUBBER_MAP_FLAG_2_JIGGY_SPAWNED_TEXT_SHOWN, TRUE);
|
||||
gcdialog_showText(text_id, 0xf, this->position, this->marker, chBlubber_showTextCallback, chBlubber_showTextCallback2);
|
||||
mapSpecificFlags_set(CH_BLUBBER_MAP_FLAG_2_JIGGY_SPAWNED_TEXT_SHOWN, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Blubber_checkJiggySpawnedTextAndAdvanceState(Actor *this){
|
||||
if( !mapSpecificFlags_get(TTC_BLUBBER_MAP_FLAG_1_UNKNOWN) ) return;
|
||||
if( mapSpecificFlags_get(TTC_BLUBBER_MAP_FLAG_3_SHOW_JIGGY_SPAWNED_TEXT_FLAG) ) return;
|
||||
void chBlubber_checkJiggySpawnedTextAndAdvanceState(Actor *this){
|
||||
if( !mapSpecificFlags_get(CH_BLUBBER_MAP_FLAG_1_UNKNOWN) ) return;
|
||||
if( mapSpecificFlags_get(CH_BLUBBER_MAP_FLAG_3_SHOW_JIGGY_SPAWNED_TEXT_FLAG) ) return;
|
||||
|
||||
this->yaw_ideal = (f32) func_80329784(this);
|
||||
mapSpecificFlags_set(TTC_BLUBBER_MAP_FLAG_3_SHOW_JIGGY_SPAWNED_TEXT_FLAG, TRUE);
|
||||
mapSpecificFlags_set(CH_BLUBBER_MAP_FLAG_3_SHOW_JIGGY_SPAWNED_TEXT_FLAG, TRUE);
|
||||
func_8028F918(2);
|
||||
timed_setStaticCameraToNode(0.0f, 4);
|
||||
timedFunc_set_1(1.0f, (GenFunction_1)TTC_Blubber_showJiggySpawnedText, (s32)this->marker);
|
||||
subaddie_set_state_with_direction(this, TTC_BLUBBER_STATE_1_UNKNOWN, 0.0f, 1);
|
||||
timedFunc_set_1(1.0f, (GenFunction_1)chBlubber_showJiggySpawnedText, (s32)this->marker);
|
||||
subaddie_set_state_with_direction(this, CH_BLUBBER_STATE_1_UNKNOWN, 0.0f, 1);
|
||||
}
|
||||
|
||||
void func_8038771C(Actor *this){
|
||||
@@ -131,7 +131,7 @@ void func_80387774(Actor **this_ptr){
|
||||
&& bacarry_get_markerId() == MARKER_37_GOLD_BULLION
|
||||
&& player_throwCarriedObject()
|
||||
) {
|
||||
func_8028FA34(!mapSpecificFlags_get(TTC_BLUBBER_MAP_FLAG_0_UNKNOWN) ? ACTOR_149_TTC_BLUBBER_UNKNOWN : ACTOR_14A_TTC_BLUBBER_UNKNOWN, *this_ptr);
|
||||
func_8028FA34(!mapSpecificFlags_get(CH_BLUBBER_MAP_FLAG_0_UNKNOWN) ? ACTOR_149_TTC_BLUBBER_UNKNOWN : ACTOR_14A_TTC_BLUBBER_UNKNOWN, *this_ptr);
|
||||
(*this_ptr)->has_met_before = TRUE;
|
||||
}
|
||||
|
||||
@@ -145,17 +145,17 @@ void func_80387830(Actor *this , f32 arg1, f32 arg2){
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Blubber_updateFunc(Actor * this){
|
||||
void chBlubber_updateFunc(Actor * this){
|
||||
ActorLocal_Blubber *local;
|
||||
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
func_8028E668(this->position, 90.0f, -10.0f, 110.0f);
|
||||
if(!mapSpecificFlags_get(TTC_BLUBBER_MAP_FLAG_1_UNKNOWN) && !func_80329530(this, 2500))
|
||||
if(!mapSpecificFlags_get(CH_BLUBBER_MAP_FLAG_1_UNKNOWN) && !func_80329530(this, 2500))
|
||||
return;
|
||||
|
||||
if(!this->volatile_initialized){
|
||||
if(this->state == TTC_BLUBBER_STATE_3_UNKNOWN){
|
||||
subaddie_set_state_with_direction(this, TTC_BLUBBER_STATE_2_UNKNOWN, 0.0f, 1);
|
||||
if(this->state == CH_BLUBBER_STATE_3_UNKNOWN){
|
||||
subaddie_set_state_with_direction(this, CH_BLUBBER_STATE_2_UNKNOWN, 0.0f, 1);
|
||||
}
|
||||
this->volatile_initialized = TRUE;
|
||||
}//L80387970
|
||||
@@ -164,12 +164,12 @@ void TTC_Blubber_updateFunc(Actor * this){
|
||||
&& !this->has_met_before
|
||||
&& item_getCount(ITEM_18_GOLD_BULLIONS) == 0
|
||||
){
|
||||
gcdialog_showText(ASSET_A0B_FIRST_MEET_BLUBBER, 0xe, this->position, this->marker, TTC_Blubber_showTextCallback, NULL);
|
||||
gcdialog_showText(ASSET_A0B_FIRST_MEET_BLUBBER, 0xe, this->position, this->marker, chBlubber_showTextCallback, NULL);
|
||||
this->has_met_before = TRUE;
|
||||
subaddie_set_state_forward(this, TTC_BLUBBER_STATE_3_UNKNOWN);
|
||||
subaddie_set_state_forward(this, CH_BLUBBER_STATE_3_UNKNOWN);
|
||||
}
|
||||
|
||||
if( mapSpecificFlags_get(TTC_BLUBBER_MAP_FLAG_0_UNKNOWN)
|
||||
if( mapSpecificFlags_get(CH_BLUBBER_MAP_FLAG_0_UNKNOWN)
|
||||
&& !this->unk138_23
|
||||
){
|
||||
if (item_getCount(ITEM_18_GOLD_BULLIONS) == 0) {
|
||||
@@ -181,26 +181,26 @@ void TTC_Blubber_updateFunc(Actor * this){
|
||||
}//L80387A54
|
||||
|
||||
switch(this->state){//D_8038CD40
|
||||
case TTC_BLUBBER_STATE_1_UNKNOWN:
|
||||
case CH_BLUBBER_STATE_1_UNKNOWN:
|
||||
if(!this->initialized){
|
||||
actor_collisionOff(this);
|
||||
TTC_Blubber_initiliaze(this);
|
||||
chBlubber_initiliaze(this);
|
||||
}
|
||||
func_80387774(&this);
|
||||
|
||||
if(subaddie_maybe_set_state_position_direction(this, TTC_BLUBBER_STATE_2_UNKNOWN, 0.0f, 1, 0.007f))
|
||||
if(subaddie_maybe_set_state_position_direction(this, CH_BLUBBER_STATE_2_UNKNOWN, 0.0f, 1, 0.007f))
|
||||
break;
|
||||
|
||||
func_80328FB0(this, 3.0f);
|
||||
func_8038771C(this);
|
||||
func_80387830(this, 0.14f, 0.68f);
|
||||
TTC_Blubber_checkJiggySpawnedTextAndAdvanceState(this);
|
||||
chBlubber_checkJiggySpawnedTextAndAdvanceState(this);
|
||||
break;
|
||||
|
||||
case TTC_BLUBBER_STATE_2_UNKNOWN:
|
||||
case CH_BLUBBER_STATE_2_UNKNOWN:
|
||||
func_80387774(&this);
|
||||
if( actor_animationIsAt(this, 0.99f)
|
||||
&& subaddie_maybe_set_state_position_direction(this, TTC_BLUBBER_STATE_1_UNKNOWN, 0.0f, 1, 0.78f)
|
||||
&& subaddie_maybe_set_state_position_direction(this, CH_BLUBBER_STATE_1_UNKNOWN, 0.0f, 1, 0.78f)
|
||||
){
|
||||
this->actor_specific_1_f = 4.0f;
|
||||
break;
|
||||
@@ -218,18 +218,18 @@ void TTC_Blubber_updateFunc(Actor * this){
|
||||
FUNC_8030E8B4(SFX_83_BLUBBER_CRYING, 0.91f, 17000, this->position, 1250, 2500);
|
||||
}
|
||||
|
||||
TTC_Blubber_checkJiggySpawnedTextAndAdvanceState(this);
|
||||
chBlubber_checkJiggySpawnedTextAndAdvanceState(this);
|
||||
break;
|
||||
|
||||
case TTC_BLUBBER_STATE_3_UNKNOWN:
|
||||
case CH_BLUBBER_STATE_3_UNKNOWN:
|
||||
break;
|
||||
|
||||
case TTC_BLUBBER_STATE_4_UNKNOWN:
|
||||
case CH_BLUBBER_STATE_4_UNKNOWN:
|
||||
{
|
||||
func_80328FB0(this, 3.0f);
|
||||
local = (ActorLocal_Blubber*)&this->local;
|
||||
if(actor_animationIsAt(this, 0.99f) && !local->unk24){
|
||||
subaddie_set_state(this, TTC_BLUBBER_STATE_5_UNKNOWN);
|
||||
subaddie_set_state(this, CH_BLUBBER_STATE_5_UNKNOWN);
|
||||
this->actor_specific_1_f = 8.0f;
|
||||
}
|
||||
}
|
||||
@@ -245,14 +245,14 @@ void TTC_Blubber_updateFunc(Actor * this){
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_BLUBBER_STATE_5_UNKNOWN:
|
||||
case CH_BLUBBER_STATE_5_UNKNOWN:
|
||||
local = (ActorLocal_Blubber*)&this->local;
|
||||
func_8032A95C(this, local->unkE, 0x21c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Blubber_update2Func(Actor *this){
|
||||
void chBlubber_update2Func(Actor *this){
|
||||
func_80343DEC(this);
|
||||
if(0.99 <= this->unk48){
|
||||
func_8028F918(0);
|
||||
@@ -262,7 +262,7 @@ void TTC_Blubber_update2Func(Actor *this){
|
||||
func_80387830(this, 0.5f, 0.97f);
|
||||
}
|
||||
|
||||
Actor *TTC_Blubber_drawFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor *chBlubber_drawFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
func_8033A45C(4, 0);
|
||||
return actor_draw(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
@@ -6,26 +6,25 @@ extern void spawnQueue_bundle_f32(s32, s32, s32, s32);
|
||||
extern f32 func_80257204(f32, f32, f32, f32);
|
||||
extern ActorProp * func_80320EB0(ActorMarker *, f32, s32);
|
||||
|
||||
void TTC_Clam_updateFunc(Actor *this);
|
||||
void chClam_updateFunc(Actor *this);
|
||||
|
||||
/* .data */
|
||||
ActorAnimationInfo TTC_CLAM_ANIMATIONS[4] = {
|
||||
ActorAnimationInfo gChClamAnimations[4] = {
|
||||
{0x00, 0.0f},
|
||||
{ASSET_AA_ANIM_CLAM_IDLE, 2.0f},
|
||||
{ASSET_24_ANIM_CLAM_HOP, 1.0f},
|
||||
{ASSET_AB_ANIM_CLAM_EAT, 0.6f}
|
||||
};
|
||||
|
||||
ActorInfo TTC_CLAM_ACTOR = {
|
||||
ActorInfo gChClam = {
|
||||
MARKER_15_CLAM, ACTOR_69_CLAM, ASSET_351_MODEL_CLAM,
|
||||
0x1, TTC_CLAM_ANIMATIONS,
|
||||
TTC_Clam_updateFunc, func_80326224, actor_draw,
|
||||
0x1, gChClamAnimations,
|
||||
chClam_updateFunc, func_80326224, actor_draw,
|
||||
4500, 0x366, 1.6f, 0
|
||||
};
|
||||
|
||||
|
||||
/* .code */
|
||||
void TTC_Clam_playSfx(enum sfx_e sfx_id, f32 volume, s32 sampleRate, f32 position[3], f32 minFadeDistance, f32 maxFadeDistance){
|
||||
void chClam_playSfx(enum sfx_e sfx_id, f32 volume, s32 sampleRate, f32 position[3], f32 minFadeDistance, f32 maxFadeDistance){
|
||||
if(func_803114B0()){
|
||||
sampleRate -= 10000;
|
||||
if(sampleRate < 0)
|
||||
@@ -35,13 +34,13 @@ void TTC_Clam_playSfx(enum sfx_e sfx_id, f32 volume, s32 sampleRate, f32 positio
|
||||
func_8030E878(sfx_id, volume, sampleRate, position, minFadeDistance, maxFadeDistance);
|
||||
}
|
||||
|
||||
void TTC_Clam_func_80386454(Actor *this){
|
||||
void chClam_func_80386454(Actor *this){
|
||||
subaddie_set_state_with_direction(this, 1, 0.01f, 1);
|
||||
actor_loopAnimation(this);
|
||||
animctrl_setDuration(this->animctrl, randf2(1.9f, 2.1f));
|
||||
}
|
||||
|
||||
bool TTC_Clam_updateFuncTarget(Actor *this, f32 arg1) {
|
||||
bool chClam_updateFuncTarget(Actor *this, f32 arg1) {
|
||||
f32 egg_dist;
|
||||
f32 red_feather_dist;
|
||||
f32 pad;
|
||||
@@ -89,13 +88,13 @@ bool TTC_Clam_updateFuncTarget(Actor *this, f32 arg1) {
|
||||
if ((volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11) < this->actor_specific_1_f) {
|
||||
this->actor_specific_1_f = (volatileFlag_get(VOLATILE_FLAG_C1_IN_FINAL_CHARACTER_PARADE) != 0) ? 0.0f : 17.0f;
|
||||
} else if (sp38 == 0) {
|
||||
TTC_Clam_playSfx(SFX_AE_YUMYUM_TALKING, randf2(0.9f, 1.0f), 22000, this->position, 500.0f, 2000.0f);
|
||||
chClam_playSfx(SFX_AE_YUMYUM_TALKING, randf2(0.9f, 1.0f), 22000, this->position, 500.0f, 2000.0f);
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
|
||||
bool TTC_Clam_rotateTowardTarget(Actor *this, s32 arg1) {
|
||||
bool chClam_rotateTowardTarget(Actor *this, s32 arg1) {
|
||||
f32 temp_f0_2;
|
||||
s32 position;
|
||||
s32 sp2C;
|
||||
@@ -105,7 +104,7 @@ bool TTC_Clam_rotateTowardTarget(Actor *this, s32 arg1) {
|
||||
|
||||
animctrl_setDuration(this->animctrl, 1.0f);
|
||||
sp2C = (s32) ((f64) (60.0f / (f32) func_8033DD90()) * 0.5);
|
||||
if ((this->unk1C[0] != 0.0f) || !__TTC_Clam_updateFuncTarget(this, sp2C)) {
|
||||
if ((this->unk1C[0] != 0.0f) || !chClam_updateFuncTarget(this, sp2C)) {
|
||||
if (((f64) animctrl_getAnimTimer(this->animctrl) < 0.1) && ((f64) randf() < 0.5)) {
|
||||
if (this->unk1C[0] != 0.0f) {
|
||||
arg1 *= 2;
|
||||
@@ -137,7 +136,7 @@ bool TTC_Clam_rotateTowardTarget(Actor *this, s32 arg1) {
|
||||
}
|
||||
|
||||
|
||||
void TTC_Clam_particalEmitterInit(ParticleEmitter *pCtrl, f32 position[3]){
|
||||
void chClam_particalEmitterInit(ParticleEmitter *pCtrl, f32 position[3]){
|
||||
particleEmitter_setPosition(pCtrl, position);
|
||||
func_802EF9F8(pCtrl, 0.7f);
|
||||
func_802EFA18(pCtrl, 3);
|
||||
@@ -149,7 +148,7 @@ void TTC_Clam_particalEmitterInit(ParticleEmitter *pCtrl, f32 position[3]){
|
||||
particleEmitter_setDrawMode(pCtrl, 2);
|
||||
}
|
||||
|
||||
void __chClam_emitLargeShellParticles(f32 position[3], s32 count){
|
||||
void chClam_emitLargeShellParticles(f32 position[3], s32 count){
|
||||
static struct41s D_8038C3F4 = {
|
||||
{{-50.0f, 750.0f, -50.0f}, {120.0f, 900.0f, 120.0f}},
|
||||
{{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}}
|
||||
@@ -157,7 +156,7 @@ void __chClam_emitLargeShellParticles(f32 position[3], s32 count){
|
||||
ParticleEmitter *pCtrl;
|
||||
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
TTC_Clam_particalEmitterInit(pCtrl, position);
|
||||
chClam_particalEmitterInit(pCtrl, position);
|
||||
particleEmitter_setModel(pCtrl, ASSET_37C_MODEL_CLAM_LARGE_SHELL_PIECE);
|
||||
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038C3F4);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
|
||||
@@ -165,7 +164,7 @@ void __chClam_emitLargeShellParticles(f32 position[3], s32 count){
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
void TTC_Clam_emitEyeParticles(f32 position[3], s32 count){
|
||||
void chClam_emitEyeParticles(f32 position[3], s32 count){
|
||||
static struct41s D_8038C424 = {
|
||||
{{-80.0f, 400.0f, -80.0f}, {160.0f, 860.0f, 160.0f}},
|
||||
{{ 0.0f, -1400.0f, 0.0f}, { 0.0f, -1400.0f, 0.0f}}
|
||||
@@ -173,7 +172,7 @@ void TTC_Clam_emitEyeParticles(f32 position[3], s32 count){
|
||||
ParticleEmitter *pCtrl;
|
||||
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
TTC_Clam_particalEmitterInit(pCtrl, position);
|
||||
chClam_particalEmitterInit(pCtrl, position);
|
||||
particleEmitter_setModel(pCtrl, ASSET_37D_MODEL_CLAM_EYE);
|
||||
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038C424);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
|
||||
@@ -181,7 +180,7 @@ void TTC_Clam_emitEyeParticles(f32 position[3], s32 count){
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
void TTC_Clam_emitSmallShellParticles(f32 position[3], s32 count){
|
||||
void chClam_emitSmallShellParticles(f32 position[3], s32 count){
|
||||
static struct41s D_8038C454 = {
|
||||
{{-200.0f, 850.0f, -200.0f}, {400.0f, 1000.0f, 400.0f}},
|
||||
{{ 0.0f, -1800.0f, 0.0f}, { 0.0f, -1800.0f, 0.0f}}
|
||||
@@ -189,7 +188,7 @@ void TTC_Clam_emitSmallShellParticles(f32 position[3], s32 count){
|
||||
ParticleEmitter *pCtrl;
|
||||
|
||||
pCtrl = partEmitMgr_newEmitter(count);
|
||||
TTC_Clam_particalEmitterInit(pCtrl, position);
|
||||
chClam_particalEmitterInit(pCtrl, position);
|
||||
particleEmitter_setModel(pCtrl, ASSET_37E_MODEL_CLAM_SMALL_SHELL_PIECE);
|
||||
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038C454);
|
||||
particleEmitter_setAngularVelocityRange(pCtrl, -800.0f, -800.0f, -800.0f, 800.0f, 800.0f, 800.0f);
|
||||
@@ -197,7 +196,7 @@ void TTC_Clam_emitSmallShellParticles(f32 position[3], s32 count){
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
void TTC_Clam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite_id, s32 count){
|
||||
void chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite_id, s32 count){
|
||||
static ParticleScaleAndLifetimeRanges D_8038C484 = {
|
||||
{0.2f, 0.35f},
|
||||
{0.0f, 0.0f},
|
||||
@@ -222,22 +221,22 @@ void TTC_Clam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
void TTC_Clam_takeDamage(ActorMarker *this_marker, ActorMarker *other_marker){
|
||||
void chClam_takeDamage(ActorMarker *this_marker, ActorMarker *other_marker){
|
||||
Actor *this;
|
||||
|
||||
this = marker_getActor(this_marker);
|
||||
this->marker->collidable = FALSE;
|
||||
this->unk138_27 = TRUE;
|
||||
TTC_Clam_playSfx(SFX_1D_HITTING_AN_ENEMY_1, 1.0f, 26000, this->position, 1500.0f, 2000.0f);
|
||||
TTC_Clam_playSfx(SFX_115_BUZZBOMB_DEATH, 1.2f, 26000, this->position, 1500.0f, 2000.0f);
|
||||
TTC_Clam_emitLargeShellParticles(this->position, 2);
|
||||
TTC_Clam_emitEyeParticles(this->position, 2);
|
||||
TTC_Clam_emitSmallShellParticles(this->position, 0xC);
|
||||
chClam_playSfx(SFX_1D_HITTING_AN_ENEMY_1, 1.0f, 26000, this->position, 1500.0f, 2000.0f);
|
||||
chClam_playSfx(SFX_115_BUZZBOMB_DEATH, 1.2f, 26000, this->position, 1500.0f, 2000.0f);
|
||||
chClam_emitLargeShellParticles(this->position, 2);
|
||||
chClam_emitEyeParticles(this->position, 2);
|
||||
chClam_emitSmallShellParticles(this->position, 0xC);
|
||||
func_803115C4(0xa14);
|
||||
marker_despawn(this->marker);
|
||||
}
|
||||
|
||||
void TTC_Clam_playerDropsItem(s32 index, enum item_e item_id){
|
||||
void chClam_playerDropsItem(s32 index, enum item_e item_id){
|
||||
f32 position[3];
|
||||
|
||||
player_getPosition(position);
|
||||
@@ -246,7 +245,7 @@ void TTC_Clam_playerDropsItem(s32 index, enum item_e item_id){
|
||||
item_dec(item_id);
|
||||
}
|
||||
|
||||
void TTC_Clam_attackOther(ActorMarker *this_marker, ActorMarker *other_marker){
|
||||
void chClam_attackOther(ActorMarker *this_marker, ActorMarker *other_marker){
|
||||
|
||||
if(func_80297C6C() == 3) return;
|
||||
|
||||
@@ -255,13 +254,13 @@ void TTC_Clam_attackOther(ActorMarker *this_marker, ActorMarker *other_marker){
|
||||
}
|
||||
|
||||
if(item_getCount(ITEM_D_EGGS) != 0)
|
||||
TTC_Clam_playerDropsItem(0xe, ITEM_D_EGGS);
|
||||
chClam_playerDropsItem(0xe, ITEM_D_EGGS);
|
||||
|
||||
if(item_getCount(ITEM_F_RED_FEATHER) != 0)
|
||||
TTC_Clam_playerDropsItem(0xf, ITEM_F_RED_FEATHER);
|
||||
chClam_playerDropsItem(0xf, ITEM_F_RED_FEATHER);
|
||||
}
|
||||
|
||||
void TTC_Clam_updateFunc(Actor *this){
|
||||
void chClam_updateFunc(Actor *this){
|
||||
ActorProp *sp4C = func_80320EB0(this->marker, 30.0f, 1);
|
||||
f32 sp48;
|
||||
s32 sp44;
|
||||
@@ -274,7 +273,7 @@ void TTC_Clam_updateFunc(Actor *this){
|
||||
|
||||
if(!this->volatile_initialized){
|
||||
this->volatile_initialized = TRUE;
|
||||
marker_setCollisionScripts(this->marker, NULL, TTC_Clam_attackOther, TTC_Clam_takeDamage);
|
||||
marker_setCollisionScripts(this->marker, NULL, chClam_attackOther, chClam_takeDamage);
|
||||
}
|
||||
|
||||
if(this->state != 3){
|
||||
@@ -298,11 +297,11 @@ void TTC_Clam_updateFunc(Actor *this){
|
||||
|
||||
switch(this->state){
|
||||
case 1://L80387170
|
||||
if(__TTC_Clam_rotateTowardTarget(this, 140)){
|
||||
if(chClam_rotateTowardTarget(this, 140)){
|
||||
subaddie_set_state_with_direction(this, 2, 0.01f, 1);
|
||||
actor_playAnimationOnce(this);
|
||||
animctrl_setDuration(this->animctrl, 1.0f);
|
||||
TTC_Clam_playSfx(SFX_3F2_UNKNOWN, randf2(1.0f, 1.1f), 22000, this->position, 1500.0f, 2000.0f);
|
||||
chClam_playSfx(SFX_3F2_UNKNOWN, randf2(1.0f, 1.1f), 22000, this->position, 1500.0f, 2000.0f);
|
||||
}
|
||||
else{
|
||||
animctrl_setDuration(this->animctrl, 2.0f);
|
||||
@@ -313,13 +312,13 @@ void TTC_Clam_updateFunc(Actor *this){
|
||||
this->position_y += this->velocity_y;
|
||||
this->velocity_y += -5.0f;
|
||||
if(actor_animationIsAt(this, 0.63f)){
|
||||
TTC_Clam_playSfx(SFX_80_YUMYUM_CLACK, 1.0f, 20000, this->position, 1500.0f, 2000.0f);
|
||||
chClam_playSfx(SFX_80_YUMYUM_CLACK, 1.0f, 20000, this->position, 1500.0f, 2000.0f);
|
||||
}
|
||||
|
||||
if(this->position_y <= sp48){
|
||||
this->position_y = sp48;
|
||||
if(actor_animationIsAt(this, 0.99f) || 0.98 < animctrl_getAnimTimer(this->animctrl)){
|
||||
TTC_Clam_func_80386454(this);
|
||||
chClam_func_80386454(this);
|
||||
}
|
||||
}
|
||||
else{//L803872D4
|
||||
@@ -335,12 +334,12 @@ void TTC_Clam_updateFunc(Actor *this){
|
||||
}
|
||||
|
||||
if(3.0f <= this->velocity_x){
|
||||
TTC_Clam_func_80386454(this);
|
||||
chClam_func_80386454(this);
|
||||
break;
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.8f) && 2.0f == this->velocity_x){
|
||||
TTC_Clam_playSfx(SFX_4B_GULPING, randf2(0.8f, 0.9f), 22000, this->position, 700.0f, 2000.0f);
|
||||
chClam_playSfx(SFX_4B_GULPING, randf2(0.8f, 0.9f), 22000, this->position, 700.0f, 2000.0f);
|
||||
break;
|
||||
}//L803873C4
|
||||
|
||||
@@ -348,15 +347,15 @@ void TTC_Clam_updateFunc(Actor *this){
|
||||
|
||||
if(!this->marker->unk14_21) break;
|
||||
|
||||
TTC_Clam_playSfx(SFX_4C_LIP_SMACK, 1.0f, 20000, this->position, 500.0f, 2000.0f);
|
||||
chClam_playSfx(SFX_4C_LIP_SMACK, 1.0f, 20000, this->position, 500.0f, 2000.0f);
|
||||
func_8034A174(this->marker->unk44, 5, sp38);
|
||||
|
||||
switch(this->unk38_31){
|
||||
case MARKER_60_BLUE_EGG_COLLECTIBLE:
|
||||
TTC_Clam_emitEatencollectibleParticles(sp38, ASSET_718_SPRITE_SPARKLE_WHITE_2, 8);
|
||||
chClam_emitEatencollectibleParticles(sp38, ASSET_718_SPRITE_SPARKLE_WHITE_2, 8);
|
||||
break;
|
||||
case MARKER_B5_RED_FEATHER_COLLECTIBLE:
|
||||
TTC_Clam_emitEatencollectibleParticles(sp38, ASSET_715_SPRITE_SPARKLE_RED, 8);
|
||||
chClam_emitEatencollectibleParticles(sp38, ASSET_715_SPRITE_SPARKLE_RED, 8);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@@ -9,11 +9,19 @@ typedef struct {
|
||||
s32 open_ticks_counter;
|
||||
} ActorLocal_Lockup;
|
||||
|
||||
Actor *TTC_Lockup_drawFunc(ActorMarker *this, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void TTC_Lockup_updateFunc(Actor *this);
|
||||
Actor *chLockup_drawFunc(ActorMarker *this, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void chLock_updateFunc(Actor *this);
|
||||
|
||||
enum ch_lockup_states_e {
|
||||
CH_LOCKUP_STATE_CLOSED = 1, // L803896F0
|
||||
CH_LOCKUP_STATE_OPENING = 2, // L803897DC
|
||||
CH_LOCKUP_STATE_OPEN = 3, // L80389864
|
||||
CH_LOCKUP_STATE_CLOSING = 4, // L803898F4
|
||||
CH_LOCKUP_STATE_CLOSING2 = 5 // L803898F4
|
||||
};
|
||||
|
||||
/* .data */
|
||||
ActorAnimationInfo TTC_LOCKUP_ANIMATIONS[6] ={
|
||||
ActorAnimationInfo gChLockupAnimations[6] ={
|
||||
{0, 0.0f},
|
||||
{ASSET_BC_ANIM_LOCKUP, 8000000.0f},
|
||||
{ASSET_BC_ANIM_LOCKUP, 4.0f},
|
||||
@@ -22,61 +30,53 @@ ActorAnimationInfo TTC_LOCKUP_ANIMATIONS[6] ={
|
||||
{ASSET_BC_ANIM_LOCKUP, 8000000.0f}
|
||||
};
|
||||
|
||||
ActorInfo TTC_LOCKUP_ACTOR_SLOW = {
|
||||
ActorInfo gChLockupSlow = {
|
||||
MARKER_A4_LOCKUP_SLOW, ACTOR_151_LOCKUP_SLOW, ASSET_3D4_MODEL_LOCKUP,
|
||||
1, TTC_LOCKUP_ANIMATIONS,
|
||||
TTC_Lockup_updateFunc, func_80326224, TTC_Lockup_drawFunc,
|
||||
1, gChLockupAnimations,
|
||||
chLock_updateFunc, func_80326224, chLockup_drawFunc,
|
||||
2500, 0x366, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo TTC_LOCKUP_ACTOR_MEDIUM = {
|
||||
ActorInfo gChLockupMedium = {
|
||||
MARKER_F6_LOCKUP_MEDIUM, ACTOR_152_LOCKUP_MEDIUM, ASSET_3D4_MODEL_LOCKUP,
|
||||
1, TTC_LOCKUP_ANIMATIONS,
|
||||
TTC_Lockup_updateFunc, func_80326224, TTC_Lockup_drawFunc,
|
||||
1, gChLockupAnimations,
|
||||
chLock_updateFunc, func_80326224, chLockup_drawFunc,
|
||||
2500, 0x366, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo TTC_LOCKUP_ACTOR_FAST = {
|
||||
ActorInfo gChLockupFast = {
|
||||
MARKER_F7_LOCKUP_FAST, ACTOR_153_LOCKUP_FAST, ASSET_3D4_MODEL_LOCKUP,
|
||||
1, TTC_LOCKUP_ANIMATIONS,
|
||||
TTC_Lockup_updateFunc, func_80326224, TTC_Lockup_drawFunc,
|
||||
1, gChLockupAnimations,
|
||||
chLock_updateFunc, func_80326224, chLockup_drawFunc,
|
||||
2500, 0x366, 0.0f, 0
|
||||
};
|
||||
|
||||
s32 TTC_LOCKUP_CLOSE_COLOR[4] = {120, 120, 120, 120};
|
||||
s32 TTC_LOCKUP_CLOSE_VELOCITY[3] = {0,0,0};
|
||||
|
||||
enum ttc_lockup_states_e {
|
||||
TTC_LOCKUP_STATE_CLOSED = 1, // lockup closed (L803896F0)
|
||||
TTC_LOCKUP_STATE_OPENING = 2, // lockup opened (L803897DC)
|
||||
TTC_LOCKUP_STATE_OPEN = 3, // L80389864
|
||||
TTC_LOCKUP_STATE_CLOSING = 4, // L803898F4
|
||||
TTC_LOCKUP_STATE_CLOSING2 = 5 // L803898F4
|
||||
};
|
||||
s32 CH_LOCKUP_CLOSE_COLOR[4] = {120, 120, 120, 120};
|
||||
s32 CH_LOCKUP_CLOSE_VELOCITY[3] = {0,0,0};
|
||||
|
||||
/* .code */
|
||||
Actor *TTC_Lockup_drawFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor *chLockup_drawFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor * actor = marker_getActor(marker);
|
||||
func_8033A45C(3, actor->unk38_31);
|
||||
func_8033A45C(4, actor->unk38_31);
|
||||
actor_draw(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
void TTC_Lockup_close(Actor *this){
|
||||
subaddie_set_state_with_direction(this, TTC_LOCKUP_STATE_CLOSED, 0.2f, 1);
|
||||
void chLockup_close(Actor *this){
|
||||
subaddie_set_state_with_direction(this, CH_LOCKUP_STATE_CLOSED, 0.2f, 1);
|
||||
this->marker->collidable = FALSE;
|
||||
this->unk38_31 = 0;
|
||||
FUNC_8030E8B4(SFX_6C_LOCKUP_CLOSING, 1.0f, 32000, this->position, 1250, 2500);
|
||||
}
|
||||
|
||||
void TTC_Lockup_open(Actor *this){
|
||||
void chLockup_open(Actor *this){
|
||||
func_80389468();
|
||||
subaddie_set_state_with_direction(this, TTC_LOCKUP_STATE_OPENING, 0.2f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_LOCKUP_STATE_OPENING, 0.2f, 1);
|
||||
this->unk38_31 = 1;
|
||||
FUNC_8030E8B4(SFX_6B_LOCKUP_OPENING, 1.0f, 32000, this->position, 1250, 2500);
|
||||
}
|
||||
|
||||
void TTC_Lockup_updateFunc(Actor *this){
|
||||
void chLock_updateFunc(Actor *this){
|
||||
ActorLocal_Lockup *local = (ActorLocal_Lockup *)&this->local;
|
||||
s32 tmp_v1;
|
||||
int i;
|
||||
@@ -97,10 +97,10 @@ void TTC_Lockup_updateFunc(Actor *this){
|
||||
}
|
||||
|
||||
switch(this->state){
|
||||
case TTC_LOCKUP_STATE_CLOSED:
|
||||
case CH_LOCKUP_STATE_CLOSED:
|
||||
if(!this->initialized){
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
subaddie_set_state_with_direction(this, TTC_LOCKUP_STATE_CLOSED, 0.2f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_LOCKUP_STATE_CLOSED, 0.2f, 1);
|
||||
this->marker->collidable = FALSE;
|
||||
this->unk38_31 = 0;
|
||||
this->initialized = TRUE;
|
||||
@@ -115,24 +115,24 @@ void TTC_Lockup_updateFunc(Actor *this){
|
||||
|
||||
if(!(local->closed_ticks_counter < tmp_v1)){
|
||||
local->closed_ticks_counter = 0;
|
||||
TTC_Lockup_open(this);
|
||||
chLockup_open(this);
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_LOCKUP_STATE_OPENING:
|
||||
case CH_LOCKUP_STATE_OPENING:
|
||||
if(subaddie_playerIsWithinSphere(this, 400) && func_8028FB48(0x8000000)){
|
||||
func_8028F428(0xA, this->marker);
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.5f)){
|
||||
subaddie_set_state_with_direction(this, TTC_LOCKUP_STATE_OPEN, 0.5f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_LOCKUP_STATE_OPEN, 0.5f, 1);
|
||||
}
|
||||
if(0.15 < animctrl_getAnimTimer(this->animctrl)){
|
||||
this->marker->collidable = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_LOCKUP_STATE_OPEN:
|
||||
case CH_LOCKUP_STATE_OPEN:
|
||||
local->open_ticks_counter++;
|
||||
tmp_v1 = (this->modelCacheIndex == ACTOR_151_LOCKUP_SLOW) ? 0x1E :
|
||||
(this->modelCacheIndex == ACTOR_152_LOCKUP_MEDIUM) ? 0x14 :
|
||||
@@ -141,17 +141,17 @@ void TTC_Lockup_updateFunc(Actor *this){
|
||||
|
||||
if(!(local->open_ticks_counter < tmp_v1)){
|
||||
local->open_ticks_counter = 0;
|
||||
subaddie_set_state_with_direction(this, TTC_LOCKUP_STATE_CLOSING, 0.5f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_LOCKUP_STATE_CLOSING, 0.5f, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_LOCKUP_STATE_CLOSING:
|
||||
case TTC_LOCKUP_STATE_CLOSING2:
|
||||
case CH_LOCKUP_STATE_CLOSING:
|
||||
case CH_LOCKUP_STATE_CLOSING2:
|
||||
if(this->marker->unk14_21 && actor_animationIsAt(this, 0.99f)){
|
||||
TTC_Lockup_close(this);
|
||||
chLockup_close(this);
|
||||
for(i = 5; i < 0xe; i++){
|
||||
func_8034A174(this->marker->unk44, i, this->unk1C);
|
||||
func_802EE6CC(this->unk1C, TTC_LOCKUP_CLOSE_VELOCITY, TTC_LOCKUP_CLOSE_COLOR, 1, 0.4f, 50.0f, 0xb4, 0xa0, 0);
|
||||
func_802EE6CC(this->unk1C, CH_LOCKUP_CLOSE_VELOCITY, CH_LOCKUP_CLOSE_COLOR, 1, 0.4f, 50.0f, 0xb4, 0xa0, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@@ -2,12 +2,21 @@
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
void TTC_Nipper_updateFunc(Actor *this);
|
||||
Actor *TTC_Nipper_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void chNipper_updateFunc(Actor *this);
|
||||
Actor *chNipper_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
|
||||
enum ch_nipper_states_e {
|
||||
CH_NIPPER_STATE_1_UNKNOWN = 1, // L80388578
|
||||
CH_NIPPER_STATE_2_UNKNOWN = 2, // L8038872C
|
||||
CH_NIPPER_STATE_3_UNKNOWN = 3, // L803887B4
|
||||
CH_NIPPER_STATE_DIEING = 4, // L80388910
|
||||
CH_NIPPER_STATE_SPAWNED = 5, // L80388938
|
||||
CH_NIPPER_STATE_DEAD = 6, // L803889A8
|
||||
CH_NIPPER_STATE_7_UNKNOWN = 7 // already dead? L80388A20
|
||||
};
|
||||
|
||||
/* .data */
|
||||
ActorAnimationInfo TTC_NIPPER_ANIMATIONS[8] = {
|
||||
ActorAnimationInfo gChNipperAnimations[8] = {
|
||||
{0x00, 0.0f},
|
||||
{ASSET_C0_ANIM_NIPPER_IDLE, 2.0f},
|
||||
{ASSET_BD_ANIM_NIPPER_VULNERABLE, 1.5f},
|
||||
@@ -18,25 +27,15 @@ ActorAnimationInfo TTC_NIPPER_ANIMATIONS[8] = {
|
||||
{0x00, 0.0f}
|
||||
};
|
||||
|
||||
ActorInfo TTC_NIPPER_ACTOR = {
|
||||
ActorInfo gChNipper = {
|
||||
MARKER_A5_NIPPER, ACTOR_117_NIPPER, ASSET_3D5_MODEL_NIPPER,
|
||||
0x1, TTC_NIPPER_ANIMATIONS,
|
||||
TTC_Nipper_updateFunc, func_80326224, TTC_Nipper_animFunc,
|
||||
0x1, gChNipperAnimations,
|
||||
chNipper_updateFunc, func_80326224, chNipper_animFunc,
|
||||
0, 0x299, 10.0f, 0
|
||||
};
|
||||
|
||||
enum ttc_nipper_states_e {
|
||||
TTC_NIPPER_STATE_1_UNKNOWN = 1, // L80388578
|
||||
TTC_NIPPER_STATE_2_UNKNOWN = 2, // L8038872C
|
||||
TTC_NIPPER_STATE_3_UNKNOWN = 3, // L803887B4
|
||||
TTC_NIPPER_STATE_DIEING = 4, // L80388910
|
||||
TTC_NIPPER_STATE_SPAWNED = 5, // L80388938
|
||||
TTC_NIPPER_STATE_DEAD = 6, // L803889A8
|
||||
TTC_NIPPER_STATE_7_UNKNOWN = 7 // already dead? L80388A20
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void TTC_Nipper_drawParticlesAtPosition(f32 *position, s32 count) {
|
||||
void chNipper_drawParticlesAtPosition(f32 *position, s32 count) {
|
||||
static s32 D_8038C5A4[3] = {180, 180, 180};
|
||||
static ParticleScaleAndLifetimeRanges D_8038C5B0 = {
|
||||
{0.1f, 0.5f},
|
||||
@@ -65,7 +64,7 @@ void TTC_Nipper_drawParticlesAtPosition(f32 *position, s32 count) {
|
||||
particleEmitter_emitN(pCtrl, count);
|
||||
}
|
||||
|
||||
Actor *TTC_Nipper_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
Actor *chNipper_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
Actor *this;
|
||||
|
||||
this = marker_getActor(marker);
|
||||
@@ -73,8 +72,8 @@ Actor *TTC_Nipper_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx)
|
||||
return actor_draw(marker, gfx, mtx, vtx);
|
||||
}
|
||||
|
||||
void TTC_Nipper_setAnimationDuration(Actor *this) {
|
||||
subaddie_set_state_looped(this, TTC_NIPPER_STATE_3_UNKNOWN);
|
||||
void chNipper_setAnimationDuration(Actor *this) {
|
||||
subaddie_set_state_looped(this, CH_NIPPER_STATE_3_UNKNOWN);
|
||||
this->unk1C[0] = 0.0f;
|
||||
switch((s32)this->lifetime_value){
|
||||
case 120:
|
||||
@@ -91,18 +90,18 @@ void TTC_Nipper_setAnimationDuration(Actor *this) {
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Nipper_spawnedShowTextCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||
void chNipper_spawnedShowTextCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||
Actor *this;
|
||||
this = marker_getActor(caller);
|
||||
TTC_Nipper_setAnimationDuration(this);
|
||||
chNipper_setAnimationDuration(this);
|
||||
ncStaticCamera_exit();
|
||||
comusic_8025AB44(COMUSIC_12_TTC_NIPPER, -1, 300);
|
||||
}
|
||||
|
||||
void TTC_Nipper_playDeathAnimation(Actor *this) {
|
||||
void chNipper_playDeathAnimation(Actor *this) {
|
||||
s32 i;
|
||||
|
||||
subaddie_set_state_with_direction(this, TTC_NIPPER_STATE_DIEING, 0.01f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_NIPPER_STATE_DIEING, 0.01f, 1);
|
||||
actor_playAnimationOnce(this);
|
||||
for(i = 0; i < 3; i ++){
|
||||
FUNC_8030E8B4(SFX_79_TICKER_DEATH, 0.5f, 17000, this->position, 1500, 3000);
|
||||
@@ -125,11 +124,11 @@ bool func_80388088(Actor *this){
|
||||
return BOOL(-35.0f < sp2C && sp2C < 35.0f);
|
||||
}
|
||||
|
||||
bool TTC_Nipper_shouldShowActor(Actor *this){
|
||||
bool chNipper_shouldShowActor(Actor *this){
|
||||
return BOOL(func_80329530(this, 1300) && func_80388088(this));
|
||||
}
|
||||
|
||||
void TTC_Nipper_dieFunc(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
void chNipper_dieFunc(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
Actor *this;
|
||||
s32 i;
|
||||
|
||||
@@ -137,7 +136,7 @@ void TTC_Nipper_dieFunc(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
func_8032B4DC(this, other_marker, 7);
|
||||
|
||||
if (this->lifetime_value == 40.0f) {
|
||||
subaddie_set_state_with_direction(this, TTC_NIPPER_STATE_DEAD, 0.01f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_NIPPER_STATE_DEAD, 0.01f, 1);
|
||||
actor_playAnimationOnce(this);
|
||||
for(i = 0; i < 3; i++){
|
||||
FUNC_8030E8B4(SFX_78_EAGLECRY, 0.7f, 20000, this->position, 1500, 3000);
|
||||
@@ -150,18 +149,18 @@ void TTC_Nipper_dieFunc(ActorMarker *this_marker, ActorMarker *other_marker) {
|
||||
}
|
||||
|
||||
if (this->lifetime_value == 80.0f) {
|
||||
TTC_Nipper_playDeathAnimation(this);
|
||||
chNipper_playDeathAnimation(this);
|
||||
this->lifetime_value = 40.0f;
|
||||
return;
|
||||
}
|
||||
|
||||
TTC_Nipper_playDeathAnimation(this);
|
||||
chNipper_playDeathAnimation(this);
|
||||
this->lifetime_value = 80.0f;
|
||||
gcdialog_showText(ASSET_A10_TEXT_TTC_NIPPER_HURT, 4, NULL, NULL, NULL, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
bool TTC_Nipper_determineMarkeId(ActorMarker * this_marker, ActorMarker * other_marker){
|
||||
bool chNipper_determineMarkeId(ActorMarker * this_marker, ActorMarker * other_marker){
|
||||
if(this_marker->unk40_31 == 1){
|
||||
this_marker->id = 0x16C;
|
||||
}
|
||||
@@ -171,7 +170,7 @@ bool TTC_Nipper_determineMarkeId(ActorMarker * this_marker, ActorMarker * other_
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TTC_Nipper_ow2Func(ActorMarker * this_marker, ActorMarker *other_marker){
|
||||
void chNipper_ow2Func(ActorMarker * this_marker, ActorMarker *other_marker){
|
||||
Actor *this;
|
||||
|
||||
if(other_marker->id == 1){
|
||||
@@ -185,7 +184,7 @@ void TTC_Nipper_ow2Func(ActorMarker * this_marker, ActorMarker *other_marker){
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Nipper_owFunc(ActorMarker * this_marker, ActorMarker *other_marker){
|
||||
void chNipper_owFunc(ActorMarker * this_marker, ActorMarker *other_marker){
|
||||
Actor *this = marker_getActor(this_marker);
|
||||
if( !this->unk138_23
|
||||
&& this->has_met_before
|
||||
@@ -195,7 +194,7 @@ void TTC_Nipper_owFunc(ActorMarker * this_marker, ActorMarker *other_marker){
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Nipper_updateFunc(Actor *this){
|
||||
void chNipper_updateFunc(Actor *this){
|
||||
f32 particlePosition[3];
|
||||
s32 sp48;
|
||||
s32 xVelocity;
|
||||
@@ -210,7 +209,7 @@ void TTC_Nipper_updateFunc(Actor *this){
|
||||
func_8032BC18(this);
|
||||
}
|
||||
|
||||
if(this->state != TTC_NIPPER_STATE_7_UNKNOWN){
|
||||
if(this->state != CH_NIPPER_STATE_7_UNKNOWN){
|
||||
if(0.0f == this->velocity_x && xVelocity){
|
||||
comusic_8025AB44(COMUSIC_12_TTC_NIPPER, -1, 5000);
|
||||
func_8032BB88(this, 0, 4000);
|
||||
@@ -226,32 +225,32 @@ void TTC_Nipper_updateFunc(Actor *this){
|
||||
}
|
||||
|
||||
switch(this->state){
|
||||
case TTC_NIPPER_STATE_1_UNKNOWN:
|
||||
case CH_NIPPER_STATE_1_UNKNOWN:
|
||||
if(!this->initialized){
|
||||
animctrl_setTransitionDuration(this->animctrl, 0.35f);
|
||||
subaddie_set_state_with_direction(this, TTC_NIPPER_STATE_1_UNKNOWN, 0.01f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_NIPPER_STATE_1_UNKNOWN, 0.01f, 1);
|
||||
this->lifetime_value = 120.0f;
|
||||
this->marker->propPtr->unk8_3 = TRUE;
|
||||
marker_setCollisionScripts(this->marker, TTC_Nipper_owFunc, TTC_Nipper_ow2Func, TTC_Nipper_dieFunc);
|
||||
func_803300C0(this->marker, TTC_Nipper_determineMarkeId);
|
||||
marker_setCollisionScripts(this->marker, chNipper_owFunc, chNipper_ow2Func, chNipper_dieFunc);
|
||||
func_803300C0(this->marker, chNipper_determineMarkeId);
|
||||
this->initialized = TRUE;
|
||||
}
|
||||
|
||||
if(TTC_Nipper_shouldShowActor(this)){
|
||||
if(chNipper_shouldShowActor(this)){
|
||||
temp_v0 = func_8028ECAC();
|
||||
if( !this->has_met_before
|
||||
&& temp_v0 != 1
|
||||
&& temp_v0 != 10
|
||||
){
|
||||
subaddie_set_state_with_direction(this, TTC_NIPPER_STATE_SPAWNED, 0.01f, 1);
|
||||
if(gcdialog_showText(ASSET_A0E_NIPPER_SPAWNED, 0xf, this->position, this->marker, TTC_Nipper_spawnedShowTextCallback, NULL)){
|
||||
subaddie_set_state_with_direction(this, CH_NIPPER_STATE_SPAWNED, 0.01f, 1);
|
||||
if(gcdialog_showText(ASSET_A0E_NIPPER_SPAWNED, 0xf, this->position, this->marker, chNipper_spawnedShowTextCallback, NULL)){
|
||||
this->has_met_before = TRUE;
|
||||
}
|
||||
comusic_8025AB44(COMUSIC_12_TTC_NIPPER, 5000, 300);
|
||||
ncStaticCamera_setToNode(11);
|
||||
}
|
||||
else{
|
||||
TTC_Nipper_setAnimationDuration(this);
|
||||
chNipper_setAnimationDuration(this);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -265,27 +264,27 @@ void TTC_Nipper_updateFunc(Actor *this){
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_NIPPER_STATE_2_UNKNOWN:
|
||||
if(!TTC_Nipper_shouldShowActor(this)){
|
||||
subaddie_set_state_looped(this, TTC_NIPPER_STATE_1_UNKNOWN);
|
||||
case CH_NIPPER_STATE_2_UNKNOWN:
|
||||
if(!chNipper_shouldShowActor(this)){
|
||||
subaddie_set_state_looped(this, CH_NIPPER_STATE_1_UNKNOWN);
|
||||
break;
|
||||
}
|
||||
|
||||
if(this->lifetime_value <= this->unk38_31){
|
||||
TTC_Nipper_setAnimationDuration(this);
|
||||
chNipper_setAnimationDuration(this);
|
||||
break;
|
||||
}
|
||||
this->unk38_31++;
|
||||
break;
|
||||
|
||||
case TTC_NIPPER_STATE_3_UNKNOWN:
|
||||
case CH_NIPPER_STATE_3_UNKNOWN:
|
||||
if(actor_animationIsAt(this, 0.5f) && this->marker->unk14_21){
|
||||
func_8034A174(this->marker->unk44, 6, particlePosition);
|
||||
TTC_Nipper_drawParticlesAtPosition(particlePosition, 2);
|
||||
chNipper_drawParticlesAtPosition(particlePosition, 2);
|
||||
}
|
||||
else if(actor_animationIsAt(this, 0.95f) && this->marker->unk14_21){//L80388800
|
||||
func_8034A174(this->marker->unk44, 5, particlePosition);
|
||||
TTC_Nipper_drawParticlesAtPosition(particlePosition, 2);
|
||||
chNipper_drawParticlesAtPosition(particlePosition, 2);
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.99f)){
|
||||
@@ -293,7 +292,7 @@ void TTC_Nipper_updateFunc(Actor *this){
|
||||
}
|
||||
|
||||
if(2.0f <= this->unk1C[0]){
|
||||
subaddie_set_state_looped(this, TTC_NIPPER_STATE_2_UNKNOWN);
|
||||
subaddie_set_state_looped(this, CH_NIPPER_STATE_2_UNKNOWN);
|
||||
this->unk38_31 = 0;
|
||||
break;
|
||||
}
|
||||
@@ -307,13 +306,13 @@ void TTC_Nipper_updateFunc(Actor *this){
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_NIPPER_STATE_DIEING:
|
||||
case CH_NIPPER_STATE_DIEING:
|
||||
if(actor_animationIsAt(this, 0.99f)){
|
||||
TTC_Nipper_setAnimationDuration(this);
|
||||
chNipper_setAnimationDuration(this);
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_NIPPER_STATE_SPAWNED:
|
||||
case CH_NIPPER_STATE_SPAWNED:
|
||||
if( actor_animationIsAt(this, 0.2f)
|
||||
|| actor_animationIsAt(this, 0.2f)
|
||||
|| actor_animationIsAt(this, 0.6f)
|
||||
@@ -323,7 +322,7 @@ void TTC_Nipper_updateFunc(Actor *this){
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_NIPPER_STATE_DEAD:
|
||||
case CH_NIPPER_STATE_DEAD:
|
||||
this->marker->collidable = FALSE;
|
||||
if(actor_animationIsAt(this, 0.6f)){
|
||||
FUNC_8030E8B4(SFX_7C_CHEBOOF, 0.9f, 20000, this->position, 1500, 3000);
|
||||
@@ -331,15 +330,14 @@ void TTC_Nipper_updateFunc(Actor *this){
|
||||
}
|
||||
|
||||
if(actor_animationIsAt(this, 0.99f)){
|
||||
subaddie_set_state_with_direction(this, TTC_NIPPER_STATE_7_UNKNOWN, 0.01f, 1);
|
||||
subaddie_set_state_with_direction(this, CH_NIPPER_STATE_7_UNKNOWN, 0.01f, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
case TTC_NIPPER_STATE_7_UNKNOWN:
|
||||
case CH_NIPPER_STATE_7_UNKNOWN:
|
||||
this->marker->collidable = FALSE;
|
||||
break;
|
||||
|
||||
}//L80388A30
|
||||
}
|
||||
}
|
||||
|
||||
bool func_80388A44(s16 arg0[3]){
|
||||
@@ -351,5 +349,5 @@ bool func_80388A44(s16 arg0[3]){
|
||||
sp1C[2] = (f32) arg0[2];
|
||||
|
||||
nipper = actorArray_findClosestActorFromActorId(sp1C, ACTOR_117_NIPPER, -1, NULL);
|
||||
return nipper->state == TTC_NIPPER_STATE_7_UNKNOWN;
|
||||
return nipper->state == CH_NIPPER_STATE_7_UNKNOWN;
|
||||
}
|
||||
|
@@ -7,15 +7,15 @@ extern void func_8028F45C(s32, f32[3]);
|
||||
|
||||
typedef struct {
|
||||
s32 unk0;
|
||||
}ActorLocal_TreasureHunt;
|
||||
} ActorLocal_TreasureHunt;
|
||||
|
||||
void TTC_Treasurehunt_updateFunc(Actor *this);
|
||||
Actor *TTC_Treasurehunt_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
void chTreasurehunt_updateFunc(Actor *this);
|
||||
Actor *chTreasurehunt_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
|
||||
|
||||
extern u32 TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
extern u32 CH_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
|
||||
/* .data */
|
||||
f32 TTC_TREASUREHUNT_STEP_POSITIONS[6][3] = {
|
||||
f32 CH_TREASUREHUNT_STEP_POSITIONS[6][3] = {
|
||||
{2904.0f, 2458.0f, -7351.0f},
|
||||
{-7007.0f, 2013.0f, 401.0f},
|
||||
{-3388.0f, 1519.0f, 5939.0f},
|
||||
@@ -24,9 +24,9 @@ f32 TTC_TREASUREHUNT_STEP_POSITIONS[6][3] = {
|
||||
{7667.0f, 717.0f, 1676.0f}
|
||||
};
|
||||
|
||||
f32 TTC_TREASUREHUNT_STEP_RED_X_YAWS[6] = { 300.0f, 180.0f, 220.0f, 270.0f, 330.0f, 255.0f };
|
||||
s32 TTC_TREASUREHUNT_STEP_YAWS[6] = { 0x6E, 0xD2, 0x10E, 0x145, 0x14A, 0 };
|
||||
s32 TTC_TREASUREHUNT_STEP_ACTORS[6] = {
|
||||
f32 CH_TREASUREHUNT_STEP_RED_X_YAWS[6] = { 300.0f, 180.0f, 220.0f, 270.0f, 330.0f, 255.0f };
|
||||
s32 CH_TREASUREHUNT_STEP_YAWS[6] = { 0x6E, 0xD2, 0x10E, 0x145, 0x14A, 0 };
|
||||
s32 CH_TREASUREHUNT_STEP_ACTORS[6] = {
|
||||
ACTOR_53_RED_ARROW,
|
||||
ACTOR_53_RED_ARROW,
|
||||
ACTOR_53_RED_ARROW,
|
||||
@@ -35,30 +35,30 @@ s32 TTC_TREASUREHUNT_STEP_ACTORS[6] = {
|
||||
ACTOR_46_JIGGY
|
||||
};
|
||||
|
||||
ActorInfo TTC_TREASUREHUNT_ACTOR_RED_ARROW = {
|
||||
ActorInfo gChTreasurehuntRedArrow = {
|
||||
MARKER_62_RED_ARROW, ACTOR_53_RED_ARROW, ASSET_3E9_MODEL_RED_ARROW,
|
||||
0, NULL,
|
||||
TTC_Treasurehunt_updateFunc, func_80326224, TTC_Treasurehunt_animFunc,
|
||||
chTreasurehunt_updateFunc, func_80326224, chTreasurehunt_animFunc,
|
||||
0, 0x400, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo TTC_TREASUREHUNT_ACTOR_RED_QUESTION_MARK = {
|
||||
ActorInfo gChTreasurehuntRedQuestionMark = {
|
||||
MARKER_63_RED_QUESTION_MARK, ACTOR_54_RED_QUESTION_MARK, ASSET_3EB_MODEL_RED_QUESTION_MARK,
|
||||
0, NULL,
|
||||
TTC_Treasurehunt_updateFunc, func_80326224, TTC_Treasurehunt_animFunc,
|
||||
chTreasurehunt_updateFunc, func_80326224, chTreasurehunt_animFunc,
|
||||
0, 0x400, 0.0f, 0
|
||||
};
|
||||
|
||||
ActorInfo TTC_TREASUREHUNT_ACTOR_RED_X = {
|
||||
ActorInfo gChTreasurehuntRedX = {
|
||||
MARKER_64_RED_X, ACTOR_55_RED_X, ASSET_3EA_MODEL_RED_X,
|
||||
0, NULL,
|
||||
TTC_Treasurehunt_updateFunc, func_80326224, TTC_Treasurehunt_animFunc,
|
||||
chTreasurehunt_updateFunc, func_80326224, chTreasurehunt_animFunc,
|
||||
0, 0x400, 0.0f, 0
|
||||
};
|
||||
|
||||
s32 TTC_TREASUREHUNT_PARTICLE_RGB[3] = {160, 120, 20};
|
||||
s32 CH_TREASUREHUNT_PARTICLE_RGB[3] = {160, 120, 20};
|
||||
|
||||
ParticleScaleAndLifetimeRanges TTC_TREASUREHUNT_PARTICLE_SCALE_AND_LIFETIME_RANGES = {
|
||||
ParticleScaleAndLifetimeRanges CH_TREASUREHUNT_PARTICLE_SCALE_AND_LIFETIME_RANGES = {
|
||||
{1.1f, 1.5f},
|
||||
{4.0f, 4.6f},
|
||||
{0.0f, 0.01f},
|
||||
@@ -66,20 +66,20 @@ ParticleScaleAndLifetimeRanges TTC_TREASUREHUNT_PARTICLE_SCALE_AND_LIFETIME_RANG
|
||||
0.0f, 0.01f
|
||||
};
|
||||
|
||||
struct42s TTC_TREASUREHUNT_VELOCITY_RANGES = {
|
||||
struct42s CH_TREASUREHUNT_VELOCITY_RANGES = {
|
||||
{{-230.0f, 30.0f, -230.0f}, {230.0f, 110.0f, 230.0f}},
|
||||
{{-60.0f, 0.0f, -60.0f}, {60.0f, 30.0f, 60.0f}},
|
||||
};
|
||||
|
||||
/* .code */
|
||||
bool TTC_Treasurehunt_isActiveHitboxBeakBusterHitbox(void) {
|
||||
bool chTreasurehunt_isActiveHitboxBeakBusterHitbox(void) {
|
||||
enum comusic_e comusic_id;
|
||||
s32 music_volume;
|
||||
|
||||
if (player_getActiveHitbox(0) == HITBOX_1_BEAK_BUSTER) {
|
||||
comusic_id = COMUSIC_2B_DING_B;
|
||||
music_volume = 28000;
|
||||
if (TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP == 5) {
|
||||
if (CH_TREASUREHUNT_PUZZLE_CURRENT_STEP == 5) {
|
||||
comusic_id = COMUSIC_2D_PUZZLE_SOLVED_FANFARE;
|
||||
music_volume = 0x7FFF;
|
||||
}
|
||||
@@ -89,32 +89,32 @@ bool TTC_Treasurehunt_isActiveHitboxBeakBusterHitbox(void) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_spawnRedXForNextStep(void) {
|
||||
void chTreasurehunt_spawnRedXForNextStep(void) {
|
||||
Actor *actor;
|
||||
ActorLocal_TreasureHunt *local;
|
||||
|
||||
actor = actor_spawnWithYaw_f32(ACTOR_55_RED_X, TTC_TREASUREHUNT_STEP_POSITIONS[TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP], 0);
|
||||
actor = actor_spawnWithYaw_f32(ACTOR_55_RED_X, CH_TREASUREHUNT_STEP_POSITIONS[CH_TREASUREHUNT_PUZZLE_CURRENT_STEP], 0);
|
||||
local = (ActorLocal_TreasureHunt *)&actor->local;
|
||||
actor->yaw = TTC_TREASUREHUNT_STEP_RED_X_YAWS[TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP];
|
||||
local->unk0 = TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
actor->yaw = CH_TREASUREHUNT_STEP_RED_X_YAWS[CH_TREASUREHUNT_PUZZLE_CURRENT_STEP];
|
||||
local->unk0 = CH_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
actor->lifetime_value = 0.0f;
|
||||
actor->state = 0;
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_spawnActorForNextStep(void) {
|
||||
void chTreasurehunt_spawnActorForNextStep(void) {
|
||||
Actor *actor;
|
||||
ActorLocal_TreasureHunt *local;
|
||||
|
||||
actor = actor_spawnWithYaw_f32((TTC_TREASUREHUNT_STEP_ACTORS - 1)[TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP], TTC_TREASUREHUNT_STEP_POSITIONS[TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP - 1], 0);
|
||||
actor = actor_spawnWithYaw_f32((CH_TREASUREHUNT_STEP_ACTORS - 1)[CH_TREASUREHUNT_PUZZLE_CURRENT_STEP], CH_TREASUREHUNT_STEP_POSITIONS[CH_TREASUREHUNT_PUZZLE_CURRENT_STEP - 1], 0);
|
||||
local = (ActorLocal_TreasureHunt *)&actor->local;
|
||||
actor->yaw = TTC_TREASUREHUNT_STEP_YAWS[TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP - 1];
|
||||
local->unk0 = TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
actor->yaw = CH_TREASUREHUNT_STEP_YAWS[CH_TREASUREHUNT_PUZZLE_CURRENT_STEP - 1];
|
||||
local->unk0 = CH_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
actor->lifetime_value = 0.0f;
|
||||
actor->state = 0;
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_checkStepProgress(s32 currentStep){
|
||||
if(TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP == currentStep && TTC_Treasurehunt_isActiveHitboxBeakBusterHitbox()){
|
||||
void chTreasurehunt_checkStepProgress(s32 currentStep){
|
||||
if(CH_TREASUREHUNT_PUZZLE_CURRENT_STEP == currentStep && chTreasurehunt_isActiveHitboxBeakBusterHitbox()){
|
||||
if(currentStep == 0 && !jiggyscore_isCollected(JIGGY_11_TTC_RED_X)){
|
||||
gcdialog_showText(ASSET_A18_TEXT_TREASUREHUNT_FOLLOW_CLUES, 4, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
@@ -122,64 +122,64 @@ void TTC_Treasurehunt_checkStepProgress(s32 currentStep){
|
||||
gcdialog_showText(ASSET_A19_TEXT_TREASUREHUNT_SECOND_STEP, 4, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP++;
|
||||
__spawnQueue_add_0(TTC_Treasurehunt_spawnActorForNextStep);
|
||||
__spawnQueue_add_0(TTC_Treasurehunt_spawnRedXForNextStep);
|
||||
CH_TREASUREHUNT_PUZZLE_CURRENT_STEP++;
|
||||
__spawnQueue_add_0(chTreasurehunt_spawnActorForNextStep);
|
||||
__spawnQueue_add_0(chTreasurehunt_spawnRedXForNextStep);
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_checkStepProgress0(ActorMarker *this, ActorMarker *arg1){\
|
||||
TTC_Treasurehunt_checkStepProgress(0);
|
||||
void chTreasurehunt_checkStepProgress0(ActorMarker *this, ActorMarker *arg1){\
|
||||
chTreasurehunt_checkStepProgress(0);
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_checkStepProgress1(ActorMarker *this, ActorMarker *arg1){\
|
||||
TTC_Treasurehunt_checkStepProgress(1);
|
||||
void chTreasurehunt_checkStepProgress1(ActorMarker *this, ActorMarker *arg1){\
|
||||
chTreasurehunt_checkStepProgress(1);
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_checkStepProgress2(ActorMarker *this, ActorMarker *arg1){\
|
||||
TTC_Treasurehunt_checkStepProgress(2);
|
||||
void chTreasurehunt_checkStepProgress2(ActorMarker *this, ActorMarker *arg1){\
|
||||
chTreasurehunt_checkStepProgress(2);
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_checkStepProgress3(ActorMarker *this, ActorMarker *arg1){\
|
||||
TTC_Treasurehunt_checkStepProgress(3);
|
||||
void chTreasurehunt_checkStepProgress3(ActorMarker *this, ActorMarker *arg1){\
|
||||
chTreasurehunt_checkStepProgress(3);
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_checkStepProgress4(ActorMarker *this, ActorMarker *arg1){\
|
||||
TTC_Treasurehunt_checkStepProgress(4);
|
||||
void chTreasurehunt_checkStepProgress4(ActorMarker *this, ActorMarker *arg1){\
|
||||
chTreasurehunt_checkStepProgress(4);
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_checkStepProgress5(s16 arg0[3], s32 arg1){
|
||||
void chTreasurehunt_checkStepProgress5(s16 arg0[3], s32 arg1){
|
||||
static ParticleEmitter *particleEmitter;
|
||||
static f32 particleTargetPosition[3];
|
||||
|
||||
if(TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP == 5 && TTC_Treasurehunt_isActiveHitboxBeakBusterHitbox()){
|
||||
if(CH_TREASUREHUNT_PUZZLE_CURRENT_STEP == 5 && chTreasurehunt_isActiveHitboxBeakBusterHitbox()){
|
||||
particleTargetPosition[0] = (f32)arg0[0];
|
||||
particleTargetPosition[1] = (f32)arg0[1];
|
||||
particleTargetPosition[2] = (f32)arg0[2];
|
||||
particleTargetPosition[1] = mapModel_getFloorY(particleTargetPosition);
|
||||
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_f32, 0xF4, reinterpret_cast(s32, particleTargetPosition[0]), reinterpret_cast(s32, particleTargetPosition[1]), reinterpret_cast(s32, particleTargetPosition[2]));
|
||||
particleEmitter = partEmitMgr_newEmitter(3);
|
||||
particleEmitter_setRGB(particleEmitter, TTC_TREASUREHUNT_PARTICLE_RGB);
|
||||
particleEmitter_setRGB(particleEmitter, CH_TREASUREHUNT_PARTICLE_RGB);
|
||||
particleEmitter_setSprite(particleEmitter, ASSET_700_SPRITE_DUST);
|
||||
particleEmitter_setStartingFrameRange(particleEmitter, 0, 7);
|
||||
particleEmitter_setPosition(particleEmitter, particleTargetPosition);
|
||||
particleEmitter_setPositionAndVelocityRanges(particleEmitter, &TTC_TREASUREHUNT_VELOCITY_RANGES);
|
||||
particleEmitter_setScaleAndLifetimeRanges(particleEmitter, &TTC_TREASUREHUNT_PARTICLE_SCALE_AND_LIFETIME_RANGES);
|
||||
particleEmitter_setPositionAndVelocityRanges(particleEmitter, &CH_TREASUREHUNT_VELOCITY_RANGES);
|
||||
particleEmitter_setScaleAndLifetimeRanges(particleEmitter, &CH_TREASUREHUNT_PARTICLE_SCALE_AND_LIFETIME_RANGES);
|
||||
particleEmitter_emitN(particleEmitter, 5);
|
||||
particleTargetPosition[2] += 300.0f;
|
||||
gcpausemenu_80314AC8(0);
|
||||
timedFunc_set_2(0.1f, (GenFunction_2) func_8028F45C, 9, (s32)&particleTargetPosition);
|
||||
timedFunc_set_1(0.1f, (GenFunction_1) gcpausemenu_80314AC8, 1);
|
||||
gcdialog_showText(ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED, 4, NULL, NULL, NULL, NULL);
|
||||
TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP++;
|
||||
CH_TREASUREHUNT_PUZZLE_CURRENT_STEP++;
|
||||
}
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_resetProgress(void){
|
||||
TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP = 0;
|
||||
void chTreasurehunt_resetProgress(void){
|
||||
CH_TREASUREHUNT_PUZZLE_CURRENT_STEP = 0;
|
||||
}
|
||||
|
||||
void TTC_Treasurehunt_updateFunc(Actor *this){
|
||||
void chTreasurehunt_updateFunc(Actor *this){
|
||||
f32 tick = time_getDelta();
|
||||
ActorLocal_TreasureHunt *local = (ActorLocal_TreasureHunt*)&this->local;
|
||||
f64 tmp_f12;
|
||||
@@ -198,7 +198,7 @@ void TTC_Treasurehunt_updateFunc(Actor *this){
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if(local->unk0 < TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP){
|
||||
if(local->unk0 < CH_TREASUREHUNT_PUZZLE_CURRENT_STEP){
|
||||
this->state = 2;
|
||||
}
|
||||
break;
|
||||
@@ -212,7 +212,7 @@ void TTC_Treasurehunt_updateFunc(Actor *this){
|
||||
this->depth_mode = 2;
|
||||
}
|
||||
|
||||
Actor *TTC_Treasurehunt_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
Actor *chTreasurehunt_animFunc(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
f32 sp4C[3];
|
||||
f32 sp40[3];
|
||||
f32 sp3C;
|
||||
|
@@ -5,9 +5,9 @@
|
||||
#include "SnS.h"
|
||||
#include "actor.h"
|
||||
|
||||
extern ActorInfo TTC_CLAM_ACTOR;
|
||||
extern ActorInfo TTC_BLUBBER_ACTOR;
|
||||
extern ActorInfo TTC_NIPPER_ACTOR;
|
||||
extern ActorInfo gChClam;
|
||||
extern ActorInfo gChBlubber;
|
||||
extern ActorInfo gChNipper;
|
||||
extern ActorInfo D_8038C5E0;
|
||||
extern ActorInfo D_8038C604;
|
||||
extern ActorInfo D_8038C628;
|
||||
@@ -17,12 +17,12 @@ extern ActorInfo D_8038C694;
|
||||
extern ActorInfo D_8038C6B8;
|
||||
extern ActorInfo D_8038C6DC;
|
||||
extern ActorInfo D_8038C718;
|
||||
extern ActorInfo TTC_LOCKUP_ACTOR_SLOW;
|
||||
extern ActorInfo TTC_LOCKUP_ACTOR_MEDIUM;
|
||||
extern ActorInfo TTC_LOCKUP_ACTOR_FAST;
|
||||
extern ActorInfo TTC_TREASUREHUNT_ACTOR_RED_ARROW;
|
||||
extern ActorInfo TTC_TREASUREHUNT_ACTOR_RED_QUESTION_MARK;
|
||||
extern ActorInfo TTC_TREASUREHUNT_ACTOR_RED_X;
|
||||
extern ActorInfo gChLockupSlow;
|
||||
extern ActorInfo gChLockupMedium;
|
||||
extern ActorInfo gChLockupFast;
|
||||
extern ActorInfo gChTreasurehuntRedArrow;
|
||||
extern ActorInfo gChTreasurehuntRedQuestionMark;
|
||||
extern ActorInfo gChTreasurehuntRedX;
|
||||
extern ActorInfo gChTreasureInfo;
|
||||
|
||||
void TTC_func_80388C78(Actor *this);
|
||||
@@ -93,15 +93,15 @@ void TTC_func_80388AC0(void)
|
||||
{
|
||||
spawnableActorList_add(&D_8038C5E0, actor_new, ACTOR_FLAG_NONE);
|
||||
spawnableActorList_add(&D_8038C604, actor_new, ACTOR_FLAG_NONE);
|
||||
spawnableActorList_add(&TTC_NIPPER_ACTOR, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_20 | ACTOR_FLAG_UNKNOWN_26);
|
||||
spawnableActorList_add(&TTC_BLUBBER_ACTOR, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_26);
|
||||
spawnableActorList_add(&gChNipper, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_20 | ACTOR_FLAG_UNKNOWN_26);
|
||||
spawnableActorList_add(&gChBlubber, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_26);
|
||||
spawnableActorList_add(&D_8038C718, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
|
||||
spawnableActorList_add(&TTC_LOCKUP_ACTOR_SLOW, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
||||
spawnableActorList_add(&TTC_LOCKUP_ACTOR_MEDIUM, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
||||
spawnableActorList_add(&TTC_LOCKUP_ACTOR_FAST, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
||||
spawnableActorList_add(&TTC_TREASUREHUNT_ACTOR_RED_ARROW, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&TTC_TREASUREHUNT_ACTOR_RED_QUESTION_MARK, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&TTC_TREASUREHUNT_ACTOR_RED_X, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&gChLockupSlow, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
||||
spawnableActorList_add(&gChLockupMedium, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
||||
spawnableActorList_add(&gChLockupFast, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
||||
spawnableActorList_add(&gChTreasurehuntRedArrow, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&gChTreasurehuntRedQuestionMark, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&gChTreasurehuntRedX, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&gChTreasureInfo, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_25);
|
||||
spawnableActorList_add(&D_8038C628, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
|
||||
spawnableActorList_add(&D_8038C64C, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
@@ -109,7 +109,7 @@ void TTC_func_80388AC0(void)
|
||||
spawnableActorList_add(&D_8038C694, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&D_8038C6B8, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&D_8038C6DC, actor_new, ACTOR_FLAG_UNKNOWN_10);
|
||||
spawnableActorList_add(&TTC_CLAM_ACTOR, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_25);
|
||||
spawnableActorList_add(&gChClam, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_25);
|
||||
}
|
||||
|
||||
void TTC_func_80388C78(Actor *this){
|
||||
|
@@ -80,7 +80,7 @@ ActorInfo D_80365F00 = { 0xE6, 0x197, 0x532, 0x1, D_80365ED0, func_802C4C14, fun
|
||||
|
||||
/* .bss */
|
||||
s32 mm_hut_smash_count;
|
||||
u32 TTC_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
u32 CH_TREASUREHUNT_PUZZLE_CURRENT_STEP;
|
||||
struct FF_StorageStruct* D_8037DCB8;
|
||||
s32 D_8037DCBC;
|
||||
u8 D_8037DCC0[7];
|
||||
|
@@ -54,7 +54,7 @@ void func_803216D0(enum map_e map){
|
||||
mm_resetHuts();
|
||||
break;
|
||||
case MAP_7_TTC_TREASURE_TROVE_COVE:
|
||||
TTC_Treasurehunt_resetProgress();
|
||||
chTreasurehunt_resetProgress();
|
||||
break;
|
||||
case MAP_1B_MMM_MAD_MONSTER_MANSION:
|
||||
mmm_resetFlowerPots();
|
||||
|
@@ -291,12 +291,12 @@ extern void warp_lairEnterLairFromSMLevel(s32, s32);
|
||||
|
||||
extern void func_802C1674(s32, s32);
|
||||
extern void func_802C169C(s32, s32);
|
||||
extern void TTC_Treasurehunt_checkStepProgress0(s32, s32);
|
||||
extern void TTC_Treasurehunt_checkStepProgress1(s32, s32);
|
||||
extern void TTC_Treasurehunt_checkStepProgress2(s32, s32);
|
||||
extern void TTC_Treasurehunt_checkStepProgress3(s32, s32);
|
||||
extern void TTC_Treasurehunt_checkStepProgress4(s32, s32);
|
||||
extern void TTC_Treasurehunt_checkStepProgress5(s32, s32);
|
||||
extern void chTreasurehunt_checkStepProgress0(s32, s32);
|
||||
extern void chTreasurehunt_checkStepProgress1(s32, s32);
|
||||
extern void chTreasurehunt_checkStepProgress2(s32, s32);
|
||||
extern void chTreasurehunt_checkStepProgress3(s32, s32);
|
||||
extern void chTreasurehunt_checkStepProgress4(s32, s32);
|
||||
extern void chTreasurehunt_checkStepProgress5(s32, s32);
|
||||
extern void chMumbo_detransformWarn(s32, s32);
|
||||
extern void chMumbo_detransformTrigger(s32, s32);
|
||||
extern void func_8033443C(s32, s32);
|
||||
@@ -413,8 +413,8 @@ Method_core2_AD110 D_8036FE5C[] ={
|
||||
func_8033443C, func_8033443C, func_8033443C, func_8033443C,
|
||||
func_8033443C, func_8033443C, func_8033443C, func_8033443C,
|
||||
func_8033443C, func_8033443C, func_8033443C, func_8033443C,
|
||||
func_8033443C, TTC_Treasurehunt_checkStepProgress0, TTC_Treasurehunt_checkStepProgress1, TTC_Treasurehunt_checkStepProgress2,
|
||||
TTC_Treasurehunt_checkStepProgress3, TTC_Treasurehunt_checkStepProgress4, TTC_Treasurehunt_checkStepProgress5, chMumbo_detransformWarn,
|
||||
func_8033443C, chTreasurehunt_checkStepProgress0, chTreasurehunt_checkStepProgress1, chTreasurehunt_checkStepProgress2,
|
||||
chTreasurehunt_checkStepProgress3, chTreasurehunt_checkStepProgress4, chTreasurehunt_checkStepProgress5, chMumbo_detransformWarn,
|
||||
chMumbo_detransformTrigger, func_8033443C, func_8033443C, func_8033443C,
|
||||
func_8033443C, func_8033443C, func_8033443C, func_8033443C,
|
||||
func_8033443C, func_8033443C, func_8033443C, func_8033443C,
|
||||
|
Reference in New Issue
Block a user