From 26eb4b5d78b3a5e64590896271927e7af415e406 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Tue, 27 Sep 2022 15:14:48 -0500 Subject: [PATCH] TTC 100% --- src/TTC/ch/lockup.c | 2 +- src/TTC/ch/treasure.c | 2 +- src/TTC/code_0.c | 40 +++++++++++++++++++++++++++++++++------- src/TTC/code_10A0.c | 11 +++++++++-- src/TTC/code_19D0.c | 26 +++++++++++++++++++++----- src/TTC/code_26D0.c | 18 +++++++++--------- src/TTC/code_2B80.c | 33 ++++++++++++++------------------- src/TTC/code_3040.c | 4 +++- src/TTC/code_3E30.c | 5 ++--- subyaml/TTC.us.v10.yaml | 11 ++++++++--- 10 files changed, 101 insertions(+), 51 deletions(-) diff --git a/src/TTC/ch/lockup.c b/src/TTC/ch/lockup.c index 859096ef..bbf729fb 100644 --- a/src/TTC/ch/lockup.c +++ b/src/TTC/ch/lockup.c @@ -145,7 +145,7 @@ void func_80389600(Actor *this){ func_80389530(this); for(i = 5; i < 0xe; i++){ func_8034A174(this->marker->unk44, i, this->unk1C); - func_802EE6CC(this->unk1C, &D_8038C80C, &D_8038C7FC, 1, 0.4f, 50.0f, 0xb4, 0xa0, 0); + func_802EE6CC(this->unk1C, D_8038C80C, D_8038C7FC, 1, 0.4f, 50.0f, 0xb4, 0xa0, 0); } } break; diff --git a/src/TTC/ch/treasure.c b/src/TTC/ch/treasure.c index ac1527ee..63735118 100644 --- a/src/TTC/ch/treasure.c +++ b/src/TTC/ch/treasure.c @@ -22,7 +22,7 @@ ActorInfo gChTreasureInfo = { /* .code */ void __chtreasure_die(ActorMarker *marker, ActorMarker *otherMarker){ Actor *this = marker_getActor(marker); - func_802C3F04(func_802C4140, 0x4C, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, this->position[1]), reinterpret_cast(s32, this->position[2])); + func_802C3F04((GenMethod_4) func_802C4140, 0x4C, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, this->position[1]), reinterpret_cast(s32, this->position[2])); func_802EE278(this, 3, 0xf, 0x3C, 0.2f, 1.2f); func_803115C4(0xA19); jiggySpawn(JIGGY_11_TTC_RED_X, this->position); diff --git a/src/TTC/code_0.c b/src/TTC/code_0.c index 0ba21528..521e9fba 100644 --- a/src/TTC/code_0.c +++ b/src/TTC/code_0.c @@ -9,19 +9,20 @@ extern ActorProp * func_80320EB0(ActorMarker *, f32, s32); void func_80386FDC(Actor *this); /* .data */ -extern ActorAnimationInfo D_8038C3B0[]; +ActorAnimationInfo D_8038C3B0[] = { + {0x00, 0.0f}, + {0xAA, 2.0f}, + {0x24, 1.0f}, + {0xAB, 0.6f} +}; -extern ActorInfo D_8038C3D0 = { +ActorInfo D_8038C3D0 = { MARKER_15_CLAM, ACTOR_69_CLAM, ASSET_351_MODEL_CLAM, 0x1, D_8038C3B0, func_80386FDC, func_80326224, func_80325888, 4500, 0x366, 1.6f, 0 }; -extern struct41s *D_8038C3F4; -extern struct41s *D_8038C424; -extern struct41s *D_8038C454; -extern struct31s *D_8038C484; -extern struct41s *D_8038C4AC; + /* .code */ void func_803863F0(enum sfx_e sfx_id, f32 arg1, s32 arg2, f32 position[3], f32 arg4, f32 arg5){ @@ -148,6 +149,10 @@ void func_80386A9C(ParticleEmitter *pCtrl, f32 position[3]){ } void func_80386B54(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}} + }; ParticleEmitter *pCtrl; pCtrl = partEmitList_pushNew(count); @@ -160,6 +165,10 @@ void func_80386B54(f32 position[3], s32 count){ } void func_80386C08(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}} + }; ParticleEmitter *pCtrl; pCtrl = partEmitList_pushNew(count); @@ -172,6 +181,10 @@ void func_80386C08(f32 position[3], s32 count){ } void func_80386CBC(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}} + }; ParticleEmitter *pCtrl; pCtrl = partEmitList_pushNew(count); @@ -184,6 +197,19 @@ void func_80386CBC(f32 position[3], s32 count){ } void func_80386D68(f32 position[3], enum asset_e sprite_id, s32 count){ + static struct31s D_8038C484 = { + {0.2f, 0.35f}, + {0.0f, 0.0f}, + {0.0f, 0.01f}, + {0.45f, 0.45f}, + 0.0f, 0.5f + }; + + static struct41s D_8038C4AC = { + {{-340.0f, 100.0f, -340.0f}, {340.0f, 250.0f, 340.0f}}, + {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}} + }; + ParticleEmitter *pCtrl; pCtrl = partEmitList_pushNew(count); diff --git a/src/TTC/code_10A0.c b/src/TTC/code_10A0.c index f31f9e8a..1e151e90 100644 --- a/src/TTC/code_10A0.c +++ b/src/TTC/code_10A0.c @@ -20,9 +20,16 @@ void func_80387CF4(Actor *this); Actor *func_80387D6C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); /* .data */ -extern ActorAnimationInfo D_8038C4E0[]; +ActorAnimationInfo D_8038C4E0[] = { + {0x00, 0.0f}, + {0xB5, 2.0f}, + {0xB6, 2.0f}, + {0xB6, 2.0f}, + {0xB7, 1.4f}, + {0xB8, 0.8f} +}; -extern ActorInfo D_8038C510 = { +ActorInfo D_8038C510 = { MARKER_A3_BLUBBER, ACTOR_115_BLUBBER, ASSET_370_MODEL_BLUBBER, 0x1, D_8038C4E0, func_803878CC, func_80387CF4, func_80387D6C, diff --git a/src/TTC/code_19D0.c b/src/TTC/code_19D0.c index 14546c8d..477c0486 100644 --- a/src/TTC/code_19D0.c +++ b/src/TTC/code_19D0.c @@ -7,20 +7,36 @@ Actor *func_80387EB0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); /* .data */ -extern ActorAnimationInfo D_8038C540[]; +ActorAnimationInfo D_8038C540[] = { + {0x00, 0.0f}, + {0xC0, 2.0f}, + {0xBD, 1.5f}, + {0xBF, 1.2f}, + {0xBE, 1.3f}, + {0xC0, 2.0f}, + {0x133, 3.0f}, + {0x00, 0.0f} +}; -extern ActorInfo D_8038C580 = { +ActorInfo D_8038C580 = { MARKER_A5_NIPPER, ACTOR_117_NIPPER, ASSET_3D5_MODEL_NIPPER, 0x1, D_8038C540, func_80388434, func_80326224, func_80387EB0, 0, 0x299, 10.0f, 0 }; -extern s32 D_8038C5A4[3]; -extern struct31s D_8038C5B0; + /* .code */ void func_80387DC0(f32 *position, s32 count) { + static s32 D_8038C5A4[3] = {180, 180, 180}; + static struct31s D_8038C5B0 = { + {0.1f, 0.5f}, + {1.4f, 2.8f}, + {0.0f, 0.01f}, + {0.5f, 1.4f}, + 0.0f, 0.01f + }; ParticleEmitter *pCtrl; pCtrl = partEmitList_pushNew(count); @@ -325,6 +341,6 @@ bool func_80388A44(s16 arg0[3]){ sp1C[1] = (f32) arg0[1]; sp1C[2] = (f32) arg0[2]; - nipper = func_80326D68(&sp1C, ACTOR_117_NIPPER, -1, NULL); + nipper = func_80326D68(sp1C, ACTOR_117_NIPPER, -1, NULL); return nipper->state == 7; } diff --git a/src/TTC/code_26D0.c b/src/TTC/code_26D0.c index 443e88b2..c98359f5 100644 --- a/src/TTC/code_26D0.c +++ b/src/TTC/code_26D0.c @@ -31,56 +31,56 @@ void func_802D3D54(Actor *this); void func_80388D8C(Actor *this); /* .data */ -extern ActorInfo D_8038C5E0 = { +ActorInfo D_8038C5E0 = { 0xA1, 0x10E, 0x3D2, 0x1, NULL, func_802D3D54, func_80326224, func_80325E78, 0, 0, 0.0f, 0 }; -extern ActorInfo D_8038C604 = { +ActorInfo D_8038C604 = { MARKER_EA_LIGHTHOUSE_DOOR, ACTOR_13E_LIGHTHOUSE_DOOR, ASSET_3D6_MODEL_LIGHTHOUSE_DOOR, 0x1, NULL, func_802D3D54, func_80326224, func_80325E78, 0, 0, 0.0f, 0 }; -extern ActorInfo D_8038C628 = { +ActorInfo D_8038C628 = { MARKER_167_SHARKFOOD_ISLAND, ACTOR_25C_SHARKFOOD_ISLAND, ASSET_50A_MODEL_SHARKFOOD_ISLAND, 0x1, NULL, func_80388D8C, func_80326224, func_80325E78, 0, 0, 0.0f, 0 }; -extern ActorInfo D_8038C64C = { +ActorInfo D_8038C64C = { 0x267, 0x2E2, 0x3BD, 0x1, NULL, func_80388D34, func_80326224, func_80325E78, 0, 0, 0.0f, 0 }; -extern ActorInfo D_8038C670 = { +ActorInfo D_8038C670 = { 0x26A, 0x2DF, 0x3BE, 0x1, NULL, func_80388C78, func_80326224, func_80325E78, 0, 0, 0.0f, 0 }; -extern ActorInfo D_8038C694 = { +ActorInfo D_8038C694 = { 0x268, 0x2E0, 0x3B6, 0x1, NULL, func_80388C78, func_80326224, func_80325E78, 0, 0, 0.0f, 0 }; -extern ActorInfo D_8038C6B8 = { +ActorInfo D_8038C6B8 = { 0x269, 0x2E1, 0x3B7, 0x1, NULL, func_80388C78, func_80326224, func_80325E78, 0, 0, 0.0f, 0 }; -extern ActorInfo D_8038C6DC = { +ActorInfo D_8038C6DC = { MARKER_1D5_PALM_TREE, ACTOR_31E_PALM_TREE, ASSET_3A9_MODEL_PALM_TREE, 0x1, NULL, func_80388CB8, func_80326224, func_80325E78, @@ -135,7 +135,7 @@ void func_80388D04(s32 arg0){ void func_80388D34(Actor *this){ func_80388C78(this); if(!this->unk16C_4){ - func_802C3C88(func_80388D04, this->marker); + func_802C3C88((GenMethod_1)func_80388D04, (s32)this->marker); this->unk16C_4 = TRUE; } } diff --git a/src/TTC/code_2B80.c b/src/TTC/code_2B80.c index 79d6933f..09ba576e 100644 --- a/src/TTC/code_2B80.c +++ b/src/TTC/code_2B80.c @@ -9,31 +9,26 @@ extern void func_803272D0(f32 arg0[3], f32 arg1, s32 arg2, int (*arg3)(Actor *)) void func_80388FBC(Actor *this); /* .data */ -extern ActorAnimationInfo D_8038C700[]; +ActorAnimationInfo D_8038C700[] = { + {0x000, 0.0f}, + {0x239, 2.5f}, + {0x239, 2.5f} +}; -extern ActorInfo D_8038C718 = { +ActorInfo D_8038C718 = { MARKER_33_LEAKY, ACTOR_1E_LEAKY, ASSET_51A_MODEL_LEAKY, 0x1, D_8038C700, func_80388FBC, func_80326224, func_80325888, 0, 0, 0.0f, 0 }; -extern f32 D_8038C73C[3]; - -/* .rodata */ -extern f32 D_8038CDD0; -extern f32 D_8038CDD4; -extern f32 D_8038CDD8; -extern f32 D_8038CDDC; -extern f32 D_8038CDE0; -extern f32 D_8038CDE4; - /* .code */ bool func_80388F70(Actor *this){ return this->modelCacheIndex == 0x56; } void func_80388F88(void){ + static f32 D_8038C73C[3] = {2500.0f, 250.0f, 4600.0f}; func_803272D0(D_8038C73C, 2000.0f, 2, func_80388F70); } @@ -46,7 +41,7 @@ void func_80388FBC(Actor *this) { this->marker->propPtr->unk8_3 = FALSE; if (levelSpecificFlags_get(5) != 0) { levelSpecificFlags_set(5, 0); - timedFunc_set_1(0.5f, func_8025A70C, 0x2D); + timedFunc_set_1(0.5f, (TFQM1)func_8025A70C, COMUSIC_2D_PUZZLE_SOLVED_FANFARE); } if (levelSpecificFlags_get(2) != 0) { temp_v0_2 = func_8034C5AC(300); @@ -68,11 +63,11 @@ void func_80388FBC(Actor *this) { } if (func_803114B0() == 0) { if (actor_animationIsAt(this, 0.83f)) { - func_8030E878(0x109, randf2(D_8038CDD0, D_8038CDD4), 22000, this->position, 400.0f, 1000.0f); + func_8030E878(0x109, randf2(0.775f, 0.825f), 22000, this->position, 400.0f, 1000.0f); return; } if (actor_animationIsAt(this, 0.01f)) { - func_8030E878(0x109, randf2(D_8038CDD8, D_8038CDDC), 18000, this->position, 400.0f, 1000.0f); + func_8030E878(0x109, randf2(1.025f, 1.075f), 18000, this->position, 400.0f, 1000.0f); return; } if( actor_animationIsAt(this, 0.15f) @@ -80,17 +75,17 @@ void func_80388FBC(Actor *this) { || actor_animationIsAt(this, 0.53f) || actor_animationIsAt(this, 0.66f) ){ - func_8030E878(0x109, randf2(D_8038CDE0, D_8038CDE4), 14000, this->position, 400.0f, 1000.0f); + func_8030E878(0x109, randf2(1.225f, 1.275f), 14000, this->position, 400.0f, 1000.0f); } } } void func_80389288(ActorMarker *caller, enum asset_e text_id, s32 arg2){ Actor *this = marker_getActor(caller); - s32 temp_v0; + Struct73s *temp_v0; func_80328A84(this, 2); temp_v0 = func_8034C5AC(300); - if(temp_v0){ + if(temp_v0 != NULL){ func_8034E7B8(temp_v0, -600, 4.0f, 2, 10.0f); } @@ -118,4 +113,4 @@ bool func_80389364(ActorMarker *marker){ levelSpecificFlags_set(5, TRUE); func_80311480(0xa28, 0x2a, this->position, this->marker, func_80389288, NULL); return TRUE; -} \ No newline at end of file +} diff --git a/src/TTC/code_3040.c b/src/TTC/code_3040.c index 31d0a08d..942a7198 100644 --- a/src/TTC/code_3040.c +++ b/src/TTC/code_3040.c @@ -5,7 +5,9 @@ extern s32 D_80276CB0; /* .data */ -extern s32 D_8038C754; +s32 D_8038C750 = 0x0016D2FD; +s32 D_8038C754 = 0xFB70B01D; +s32 D_8038C758 = 0x0004EFAC; /* .bss */ struct { diff --git a/src/TTC/code_3E30.c b/src/TTC/code_3E30.c index b9d71f07..0a82111c 100644 --- a/src/TTC/code_3E30.c +++ b/src/TTC/code_3E30.c @@ -6,6 +6,7 @@ /* extern */ extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e); +extern BKModel *func_80309744(s32); extern u8 D_8037DCC0[7]; @@ -271,7 +272,7 @@ void func_8038AC48(Struct_TTC_3E30_1 *arg0) { temp_s5 = func_803203FC(2); phi_s7 = FALSE; sp3C = func_8038BD10(arg0); - for(i_ptr = &D_8038CA6C; i_ptr->unk0 != 0; i_ptr++){ + for(i_ptr = D_8038CA6C; i_ptr->unk0 != 0; i_ptr++){ phi_s1 = (D_8038D720.unk8 == 0) ? 1 : 0; if (!temp_s5) { for(i = 1; i < 4; i++){ @@ -373,8 +374,6 @@ void func_8038AFC8(void){ func_8038B5B4(); } - - void func_8038B04C(void){ if(D_8038D720.unk0){ func_8038A258(0); diff --git a/subyaml/TTC.us.v10.yaml b/subyaml/TTC.us.v10.yaml index 598e7782..10f695a3 100644 --- a/subyaml/TTC.us.v10.yaml +++ b/subyaml/TTC.us.v10.yaml @@ -38,7 +38,12 @@ segments: - [0x35D0, c, code_35D0] #DONE - [0x3E30, c, code_3E30] #DONE - [0x5BD0, c, ch/treasure] #DONE - - [0x00005FC0, bin, ttc_data_5FC0] + - [0x00005FC0, .data, code_0] + - [0x000060F0, .data, code_10A0] + - [0x00006150, .data, code_19D0] + - [0x000061F0, .data, code_26D0] + - [0x00006310, .data, code_2B80] + - [0x00006360, .data, code_3040] - [0x00006370, .data, ch/lockup] - [0x00006430, .data, code_35D0] - [0x00006590, .data, code_3E30] @@ -47,9 +52,9 @@ segments: - [0x00006950, .rodata, code_10A0] - [0x00006980, .rodata, code_19D0] - [0x000069A0, .rodata, code_26D0] - - [0x000069E0, bin, ttc_data_69E0] + - [0x000069E0, .rodata, code_2B80] - [0x00006A00, .rodata, ch/lockup] - - [0x00006A30, .rodata, code_35D0] #- [0x6A30, bin, ttc_data_6A30] # + - [0x00006A30, .rodata, code_35D0] - [0x00006A60, .rodata, code_3E30] - [0x000072B0, .rodata, ch/treasure] - [0x7300, .bss, code_3040]