document: Leaky from TTC
This commit is contained in:
@@ -2761,7 +2761,7 @@ enum asset_e
|
|||||||
ASSET_236_ANIM_BSPUMPKIN_REBOUND = 0x236,
|
ASSET_236_ANIM_BSPUMPKIN_REBOUND = 0x236,
|
||||||
|
|
||||||
ASSET_238_ANIM_LOGGO_IDLE = 0x238,
|
ASSET_238_ANIM_LOGGO_IDLE = 0x238,
|
||||||
|
ASSET_239_ANIM_LEAKY_IDLE = 0x239,
|
||||||
ASSET_240_ANIM_LOGGO_FLUSH = 0x240,
|
ASSET_240_ANIM_LOGGO_FLUSH = 0x240,
|
||||||
|
|
||||||
ASSET_242_ANIM_GOBI_RELAXING = 0x242,
|
ASSET_242_ANIM_GOBI_RELAXING = 0x242,
|
||||||
@@ -3987,19 +3987,20 @@ enum asset_e
|
|||||||
|
|
||||||
ASSET_8A0_SPRITE_WATER_DROP = 0x8a0,
|
ASSET_8A0_SPRITE_WATER_DROP = 0x8a0,
|
||||||
|
|
||||||
ASSET_A0B_FIRST_MEET_BLUBBER = 0xA0B,
|
ASSET_A0B_TEXT_BLUBBER_FIRST_MEET = 0xa0b,
|
||||||
ASSET_A0C_BLUBBER_HALF_GOLD = 0xA0C,
|
ASSET_A0C_TEXT_BLUBBER_HALF_GOLD = 0xa0c,
|
||||||
ASSET_A0D_BLUBBER_COMPLETE = 0xA0D,
|
ASSET_A0D_TEXT_BLUBBER_COMPLETE = 0xa0d,
|
||||||
ASSET_A0E_NIPPER_SPAWNED = 0xA0E,
|
ASSET_A0E_TEXT_NIPPER_SPAWNED = 0xa0e,
|
||||||
|
|
||||||
ASSET_A10_TEXT_TTC_NIPPER_HURT = 0xA10,
|
ASSET_A10_TEXT_TTC_NIPPER_HURT = 0xa10,
|
||||||
|
|
||||||
ASSET_A14_TEXT_CLAM_TAUNT = 0xA14,
|
ASSET_A14_TEXT_CLAM_TAUNT = 0xa14,
|
||||||
ASSET_A15_TEXT_TTC_LOCKUP_SPAWNED = 0xA15,
|
ASSET_A15_TEXT_TTC_LOCKUP_SPAWNED = 0xa15,
|
||||||
|
|
||||||
ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED = 0xa17,
|
ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED = 0xa17,
|
||||||
ASSET_A18_TEXT_TREASUREHUNT_FOLLOW_CLUES = 0xa18,
|
ASSET_A18_TEXT_TREASUREHUNT_FOLLOW_CLUES = 0xa18,
|
||||||
ASSET_A19_TEXT_TREASUREHUNT_SECOND_STEP = 0xa19,
|
ASSET_A19_TEXT_TREASUREHUNT_SECOND_STEP = 0xa19,
|
||||||
|
ASSET_A1A_TEXT_LEAKY_FIRST_MEET = 0xa1a,
|
||||||
|
|
||||||
ASSET_A1F_DIALOG_SHOCKJUMP_LEARN = VER_SELECT(0xa1f, 0x91f, 0, 0),
|
ASSET_A1F_DIALOG_SHOCKJUMP_LEARN = VER_SELECT(0xa1f, 0x91f, 0, 0),
|
||||||
ASSET_A20_DIALOG_FLY_LEARN,
|
ASSET_A20_DIALOG_FLY_LEARN,
|
||||||
|
@@ -70,7 +70,7 @@ void chBlubber_showTextCallback(ActorMarker *caller, enum asset_e text_id, s32 a
|
|||||||
Actor *this = marker_getActor(caller);
|
Actor *this = marker_getActor(caller);
|
||||||
ActorLocal_Blubber *local = (ActorLocal_Blubber*)&this->local;
|
ActorLocal_Blubber *local = (ActorLocal_Blubber*)&this->local;
|
||||||
|
|
||||||
if(text_id == ASSET_A0D_BLUBBER_COMPLETE || text_id == ASSET_A2A_BLUBBER_COMPLETE_JIGGY_COLLECTED){
|
if(text_id == ASSET_A0D_TEXT_BLUBBER_COMPLETE || text_id == ASSET_A2A_BLUBBER_COMPLETE_JIGGY_COLLECTED){
|
||||||
local->unk24 = 0;
|
local->unk24 = 0;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@@ -96,7 +96,7 @@ void chBlubber_showJiggySpawnedText(ActorMarker *marker){
|
|||||||
this->actor_specific_1_f = 0.0f;
|
this->actor_specific_1_f = 0.0f;
|
||||||
|
|
||||||
if(!mapSpecificFlags_get(CH_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;
|
text_id = jiggyscore_isCollected(JIGGY_14_TTC_BLUBBER) ? ASSET_A2A_BLUBBER_COMPLETE_JIGGY_COLLECTED : ASSET_A0D_TEXT_BLUBBER_COMPLETE;
|
||||||
gcdialog_showText(text_id, 0xf, this->position, this->marker, chBlubber_showTextCallback, chBlubber_showTextCallback2);
|
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);
|
mapSpecificFlags_set(CH_BLUBBER_MAP_FLAG_2_JIGGY_SPAWNED_TEXT_SHOWN, TRUE);
|
||||||
}
|
}
|
||||||
@@ -164,7 +164,7 @@ void chBlubber_updateFunc(Actor * this){
|
|||||||
&& !this->has_met_before
|
&& !this->has_met_before
|
||||||
&& item_getCount(ITEM_18_GOLD_BULLIONS) == 0
|
&& item_getCount(ITEM_18_GOLD_BULLIONS) == 0
|
||||||
){
|
){
|
||||||
gcdialog_showText(ASSET_A0B_FIRST_MEET_BLUBBER, 0xe, this->position, this->marker, chBlubber_showTextCallback, NULL);
|
gcdialog_showText(ASSET_A0B_TEXT_BLUBBER_FIRST_MEET, 0xe, this->position, this->marker, chBlubber_showTextCallback, NULL);
|
||||||
this->has_met_before = TRUE;
|
this->has_met_before = TRUE;
|
||||||
subaddie_set_state_forward(this, CH_BLUBBER_STATE_3_UNKNOWN);
|
subaddie_set_state_forward(this, CH_BLUBBER_STATE_3_UNKNOWN);
|
||||||
}
|
}
|
||||||
@@ -173,7 +173,7 @@ void chBlubber_updateFunc(Actor * this){
|
|||||||
&& !this->unk138_23
|
&& !this->unk138_23
|
||||||
){
|
){
|
||||||
if (item_getCount(ITEM_18_GOLD_BULLIONS) == 0) {
|
if (item_getCount(ITEM_18_GOLD_BULLIONS) == 0) {
|
||||||
gcdialog_showText(ASSET_A0C_BLUBBER_HALF_GOLD, 4, NULL, NULL, NULL, NULL);
|
gcdialog_showText(ASSET_A0C_TEXT_BLUBBER_HALF_GOLD, 4, NULL, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->unk138_23 = TRUE;
|
this->unk138_23 = TRUE;
|
||||||
|
@@ -6,33 +6,33 @@ extern void func_8028E668(f32 [3], f32, f32, f32);
|
|||||||
extern void func_8028F9DC(s32);
|
extern void func_8028F9DC(s32);
|
||||||
extern void func_803272D0(f32 arg0[3], f32 arg1, s32 arg2, int (*arg3)(Actor *));
|
extern void func_803272D0(f32 arg0[3], f32 arg1, s32 arg2, int (*arg3)(Actor *));
|
||||||
|
|
||||||
void chLeaky_update(Actor *this);
|
void chLeaky_updateFunc(Actor *this);
|
||||||
|
|
||||||
/* .data */
|
/* .data */
|
||||||
ActorAnimationInfo D_8038C700[] = {
|
ActorAnimationInfo gChLeakyAnimations[3] = {
|
||||||
{0x000, 0.0f},
|
{0x000, 0.0f},
|
||||||
{0x239, 2.5f},
|
{ASSET_239_ANIM_LEAKY_IDLE, 2.5f},
|
||||||
{0x239, 2.5f}
|
{ASSET_239_ANIM_LEAKY_IDLE, 2.5f}
|
||||||
};
|
};
|
||||||
|
|
||||||
ActorInfo D_8038C718 = {
|
ActorInfo gChLeaky = {
|
||||||
MARKER_33_LEAKY, ACTOR_1E_LEAKY, ASSET_51A_MODEL_LEAKY,
|
MARKER_33_LEAKY, ACTOR_1E_LEAKY, ASSET_51A_MODEL_LEAKY,
|
||||||
0x1, D_8038C700,
|
0x1, gChLeakyAnimations,
|
||||||
chLeaky_update, func_80326224, actor_draw,
|
chLeaky_updateFunc, func_80326224, actor_draw,
|
||||||
0, 0, 0.0f, 0
|
0, 0, 0.0f, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
/* .code */
|
/* .code */
|
||||||
bool TTC_func_80388F70(Actor *this){
|
bool chLeaky_isCurrentModelShrapnel(Actor *this){
|
||||||
return this->modelCacheIndex == ACTOR_56_SHRAPNEL;
|
return this->modelCacheIndex == ACTOR_56_SHRAPNEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80388F88(void){
|
void func_80388F88(void){
|
||||||
static f32 D_8038C73C[3] = {2500.0f, 250.0f, 4600.0f};
|
static f32 D_8038C73C[3] = {2500.0f, 250.0f, 4600.0f};
|
||||||
func_803272D0(D_8038C73C, 2000.0f, 2, TTC_func_80388F70);
|
func_803272D0(D_8038C73C, 2000.0f, 2, chLeaky_isCurrentModelShrapnel);
|
||||||
}
|
}
|
||||||
|
|
||||||
void chLeaky_update(Actor *this) {
|
void chLeaky_updateFunc(Actor *this) {
|
||||||
void *temp_v0_2;
|
void *temp_v0_2;
|
||||||
|
|
||||||
func_8028E668(this->position, 100.0f, -20.0f, 100.0f);
|
func_8028E668(this->position, 100.0f, -20.0f, 100.0f);
|
||||||
@@ -53,21 +53,23 @@ void chLeaky_update(Actor *this) {
|
|||||||
this->state = 1;
|
this->state = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this->state == 1
|
if( this->state == 1
|
||||||
&& !this->has_met_before
|
&& !this->has_met_before
|
||||||
&& func_80329530(this, 250) && !func_80329530(this, 160)
|
&& func_80329530(this, 250) && !func_80329530(this, 160)
|
||||||
&& !func_8028ECAC()
|
&& !func_8028ECAC()
|
||||||
&& gcdialog_showText(0xA1A, 0, NULL, NULL, NULL, NULL)
|
&& gcdialog_showText(ASSET_A1A_TEXT_LEAKY_FIRST_MEET, 0, NULL, NULL, NULL, NULL)
|
||||||
){
|
){
|
||||||
this->has_met_before = TRUE;
|
this->has_met_before = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (func_803114B0() == 0) {
|
if (func_803114B0() == 0) {
|
||||||
if (actor_animationIsAt(this, 0.83f)) {
|
if (actor_animationIsAt(this, 0.83f)) {
|
||||||
func_8030E878(0x109, randf2(0.775f, 0.825f), 22000, this->position, 400.0f, 1000.0f);
|
func_8030E878(SFX_109_LOGGO_LID_CLAP, randf2(0.775f, 0.825f), 22000, this->position, 400.0f, 1000.0f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (actor_animationIsAt(this, 0.01f)) {
|
if (actor_animationIsAt(this, 0.01f)) {
|
||||||
func_8030E878(0x109, randf2(1.025f, 1.075f), 18000, this->position, 400.0f, 1000.0f);
|
func_8030E878(SFX_109_LOGGO_LID_CLAP, randf2(1.025f, 1.075f), 18000, this->position, 400.0f, 1000.0f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if( actor_animationIsAt(this, 0.15f)
|
if( actor_animationIsAt(this, 0.15f)
|
||||||
@@ -75,12 +77,12 @@ void chLeaky_update(Actor *this) {
|
|||||||
|| actor_animationIsAt(this, 0.53f)
|
|| actor_animationIsAt(this, 0.53f)
|
||||||
|| actor_animationIsAt(this, 0.66f)
|
|| actor_animationIsAt(this, 0.66f)
|
||||||
){
|
){
|
||||||
func_8030E878(0x109, randf2(1.225f, 1.275f), 14000, this->position, 400.0f, 1000.0f);
|
func_8030E878(SFX_109_LOGGO_LID_CLAP, randf2(1.225f, 1.275f), 14000, this->position, 400.0f, 1000.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void __chLeaky_startCutscene(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
void chLeaky_showDoneText(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||||
Actor *this = marker_getActor(caller);
|
Actor *this = marker_getActor(caller);
|
||||||
Struct73s *temp_v0;
|
Struct73s *temp_v0;
|
||||||
subaddie_set_state(this, 2);
|
subaddie_set_state(this, 2);
|
||||||
@@ -111,6 +113,6 @@ bool chLeaky_eggCollision(ActorMarker *marker){
|
|||||||
|
|
||||||
levelSpecificFlags_set(2, TRUE);
|
levelSpecificFlags_set(2, TRUE);
|
||||||
levelSpecificFlags_set(5, TRUE);
|
levelSpecificFlags_set(5, TRUE);
|
||||||
gcdialog_showText(ASSET_A28_TEXT_LEAKY_DONE, 0x2a, this->position, this->marker, __chLeaky_startCutscene, NULL);
|
gcdialog_showText(ASSET_A28_TEXT_LEAKY_DONE, 0x2a, this->position, this->marker, chLeaky_showDoneText, NULL);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@@ -243,7 +243,7 @@ void chNipper_updateFunc(Actor *this){
|
|||||||
&& temp_v0 != 10
|
&& temp_v0 != 10
|
||||||
){
|
){
|
||||||
subaddie_set_state_with_direction(this, CH_NIPPER_STATE_SPAWNED, 0.01f, 1);
|
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)){
|
if(gcdialog_showText(ASSET_A0E_TEXT_NIPPER_SPAWNED, 0xf, this->position, this->marker, chNipper_spawnedShowTextCallback, NULL)){
|
||||||
this->has_met_before = TRUE;
|
this->has_met_before = TRUE;
|
||||||
}
|
}
|
||||||
comusic_8025AB44(COMUSIC_12_TTC_NIPPER, 5000, 300);
|
comusic_8025AB44(COMUSIC_12_TTC_NIPPER, 5000, 300);
|
||||||
|
@@ -16,7 +16,7 @@ extern ActorInfo D_8038C670;
|
|||||||
extern ActorInfo D_8038C694;
|
extern ActorInfo D_8038C694;
|
||||||
extern ActorInfo D_8038C6B8;
|
extern ActorInfo D_8038C6B8;
|
||||||
extern ActorInfo D_8038C6DC;
|
extern ActorInfo D_8038C6DC;
|
||||||
extern ActorInfo D_8038C718;
|
extern ActorInfo gChLeaky;
|
||||||
extern ActorInfo gChLockupSlow;
|
extern ActorInfo gChLockupSlow;
|
||||||
extern ActorInfo gChLockupMedium;
|
extern ActorInfo gChLockupMedium;
|
||||||
extern ActorInfo gChLockupFast;
|
extern ActorInfo gChLockupFast;
|
||||||
@@ -95,7 +95,7 @@ void TTC_func_80388AC0(void)
|
|||||||
spawnableActorList_add(&D_8038C604, actor_new, ACTOR_FLAG_NONE);
|
spawnableActorList_add(&D_8038C604, actor_new, ACTOR_FLAG_NONE);
|
||||||
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(&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(&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(&gChLeaky, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
|
||||||
spawnableActorList_add(&gChLockupSlow, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
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(&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(&gChLockupFast, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
|
||||||
|
Reference in New Issue
Block a user