This commit is contained in:
Banjo Kazooie
2022-09-27 15:14:48 -05:00
parent b2d397c634
commit 26eb4b5d78
10 changed files with 101 additions and 51 deletions

View File

@@ -145,7 +145,7 @@ void func_80389600(Actor *this){
func_80389530(this); func_80389530(this);
for(i = 5; i < 0xe; i++){ for(i = 5; i < 0xe; i++){
func_8034A174(this->marker->unk44, i, this->unk1C); 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; break;

View File

@@ -22,7 +22,7 @@ ActorInfo gChTreasureInfo = {
/* .code */ /* .code */
void __chtreasure_die(ActorMarker *marker, ActorMarker *otherMarker){ void __chtreasure_die(ActorMarker *marker, ActorMarker *otherMarker){
Actor *this = marker_getActor(marker); 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_802EE278(this, 3, 0xf, 0x3C, 0.2f, 1.2f);
func_803115C4(0xA19); func_803115C4(0xA19);
jiggySpawn(JIGGY_11_TTC_RED_X, this->position); jiggySpawn(JIGGY_11_TTC_RED_X, this->position);

View File

@@ -9,19 +9,20 @@ extern ActorProp * func_80320EB0(ActorMarker *, f32, s32);
void func_80386FDC(Actor *this); void func_80386FDC(Actor *this);
/* .data */ /* .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, MARKER_15_CLAM, ACTOR_69_CLAM, ASSET_351_MODEL_CLAM,
0x1, D_8038C3B0, 0x1, D_8038C3B0,
func_80386FDC, func_80326224, func_80325888, func_80386FDC, func_80326224, func_80325888,
4500, 0x366, 1.6f, 0 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 */ /* .code */
void func_803863F0(enum sfx_e sfx_id, f32 arg1, s32 arg2, f32 position[3], f32 arg4, f32 arg5){ 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){ 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; ParticleEmitter *pCtrl;
pCtrl = partEmitList_pushNew(count); pCtrl = partEmitList_pushNew(count);
@@ -160,6 +165,10 @@ void func_80386B54(f32 position[3], s32 count){
} }
void func_80386C08(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; ParticleEmitter *pCtrl;
pCtrl = partEmitList_pushNew(count); pCtrl = partEmitList_pushNew(count);
@@ -172,6 +181,10 @@ void func_80386C08(f32 position[3], s32 count){
} }
void func_80386CBC(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; ParticleEmitter *pCtrl;
pCtrl = partEmitList_pushNew(count); 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){ 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; ParticleEmitter *pCtrl;
pCtrl = partEmitList_pushNew(count); pCtrl = partEmitList_pushNew(count);

View File

@@ -20,9 +20,16 @@ void func_80387CF4(Actor *this);
Actor *func_80387D6C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *func_80387D6C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .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, MARKER_A3_BLUBBER, ACTOR_115_BLUBBER, ASSET_370_MODEL_BLUBBER,
0x1, D_8038C4E0, 0x1, D_8038C4E0,
func_803878CC, func_80387CF4, func_80387D6C, func_803878CC, func_80387CF4, func_80387D6C,

View File

@@ -7,20 +7,36 @@ Actor *func_80387EB0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */ /* .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, MARKER_A5_NIPPER, ACTOR_117_NIPPER, ASSET_3D5_MODEL_NIPPER,
0x1, D_8038C540, 0x1, D_8038C540,
func_80388434, func_80326224, func_80387EB0, func_80388434, func_80326224, func_80387EB0,
0, 0x299, 10.0f, 0 0, 0x299, 10.0f, 0
}; };
extern s32 D_8038C5A4[3];
extern struct31s D_8038C5B0;
/* .code */ /* .code */
void func_80387DC0(f32 *position, s32 count) { 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; ParticleEmitter *pCtrl;
pCtrl = partEmitList_pushNew(count); pCtrl = partEmitList_pushNew(count);
@@ -325,6 +341,6 @@ bool func_80388A44(s16 arg0[3]){
sp1C[1] = (f32) arg0[1]; sp1C[1] = (f32) arg0[1];
sp1C[2] = (f32) arg0[2]; 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; return nipper->state == 7;
} }

View File

@@ -31,56 +31,56 @@ void func_802D3D54(Actor *this);
void func_80388D8C(Actor *this); void func_80388D8C(Actor *this);
/* .data */ /* .data */
extern ActorInfo D_8038C5E0 = { ActorInfo D_8038C5E0 = {
0xA1, 0x10E, 0x3D2, 0xA1, 0x10E, 0x3D2,
0x1, NULL, 0x1, NULL,
func_802D3D54, func_80326224, func_80325E78, func_802D3D54, func_80326224, func_80325E78,
0, 0, 0.0f, 0 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, MARKER_EA_LIGHTHOUSE_DOOR, ACTOR_13E_LIGHTHOUSE_DOOR, ASSET_3D6_MODEL_LIGHTHOUSE_DOOR,
0x1, NULL, 0x1, NULL,
func_802D3D54, func_80326224, func_80325E78, func_802D3D54, func_80326224, func_80325E78,
0, 0, 0.0f, 0 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, MARKER_167_SHARKFOOD_ISLAND, ACTOR_25C_SHARKFOOD_ISLAND, ASSET_50A_MODEL_SHARKFOOD_ISLAND,
0x1, NULL, 0x1, NULL,
func_80388D8C, func_80326224, func_80325E78, func_80388D8C, func_80326224, func_80325E78,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_8038C64C = { ActorInfo D_8038C64C = {
0x267, 0x2E2, 0x3BD, 0x267, 0x2E2, 0x3BD,
0x1, NULL, 0x1, NULL,
func_80388D34, func_80326224, func_80325E78, func_80388D34, func_80326224, func_80325E78,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_8038C670 = { ActorInfo D_8038C670 = {
0x26A, 0x2DF, 0x3BE, 0x26A, 0x2DF, 0x3BE,
0x1, NULL, 0x1, NULL,
func_80388C78, func_80326224, func_80325E78, func_80388C78, func_80326224, func_80325E78,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_8038C694 = { ActorInfo D_8038C694 = {
0x268, 0x2E0, 0x3B6, 0x268, 0x2E0, 0x3B6,
0x1, NULL, 0x1, NULL,
func_80388C78, func_80326224, func_80325E78, func_80388C78, func_80326224, func_80325E78,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_8038C6B8 = { ActorInfo D_8038C6B8 = {
0x269, 0x2E1, 0x3B7, 0x269, 0x2E1, 0x3B7,
0x1, NULL, 0x1, NULL,
func_80388C78, func_80326224, func_80325E78, func_80388C78, func_80326224, func_80325E78,
0, 0, 0.0f, 0 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, MARKER_1D5_PALM_TREE, ACTOR_31E_PALM_TREE, ASSET_3A9_MODEL_PALM_TREE,
0x1, NULL, 0x1, NULL,
func_80388CB8, func_80326224, func_80325E78, func_80388CB8, func_80326224, func_80325E78,
@@ -135,7 +135,7 @@ void func_80388D04(s32 arg0){
void func_80388D34(Actor *this){ void func_80388D34(Actor *this){
func_80388C78(this); func_80388C78(this);
if(!this->unk16C_4){ if(!this->unk16C_4){
func_802C3C88(func_80388D04, this->marker); func_802C3C88((GenMethod_1)func_80388D04, (s32)this->marker);
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
} }
} }

View File

@@ -9,31 +9,26 @@ extern void func_803272D0(f32 arg0[3], f32 arg1, s32 arg2, int (*arg3)(Actor *))
void func_80388FBC(Actor *this); void func_80388FBC(Actor *this);
/* .data */ /* .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, MARKER_33_LEAKY, ACTOR_1E_LEAKY, ASSET_51A_MODEL_LEAKY,
0x1, D_8038C700, 0x1, D_8038C700,
func_80388FBC, func_80326224, func_80325888, func_80388FBC, func_80326224, func_80325888,
0, 0, 0.0f, 0 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 */ /* .code */
bool func_80388F70(Actor *this){ bool func_80388F70(Actor *this){
return this->modelCacheIndex == 0x56; return this->modelCacheIndex == 0x56;
} }
void func_80388F88(void){ void func_80388F88(void){
static f32 D_8038C73C[3] = {2500.0f, 250.0f, 4600.0f};
func_803272D0(D_8038C73C, 2000.0f, 2, func_80388F70); func_803272D0(D_8038C73C, 2000.0f, 2, func_80388F70);
} }
@@ -46,7 +41,7 @@ void func_80388FBC(Actor *this) {
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
if (levelSpecificFlags_get(5) != 0) { if (levelSpecificFlags_get(5) != 0) {
levelSpecificFlags_set(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) { if (levelSpecificFlags_get(2) != 0) {
temp_v0_2 = func_8034C5AC(300); temp_v0_2 = func_8034C5AC(300);
@@ -68,11 +63,11 @@ void func_80388FBC(Actor *this) {
} }
if (func_803114B0() == 0) { if (func_803114B0() == 0) {
if (actor_animationIsAt(this, 0.83f)) { 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; return;
} }
if (actor_animationIsAt(this, 0.01f)) { 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; return;
} }
if( actor_animationIsAt(this, 0.15f) if( actor_animationIsAt(this, 0.15f)
@@ -80,17 +75,17 @@ void func_80388FBC(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(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){ void func_80389288(ActorMarker *caller, enum asset_e text_id, s32 arg2){
Actor *this = marker_getActor(caller); Actor *this = marker_getActor(caller);
s32 temp_v0; Struct73s *temp_v0;
func_80328A84(this, 2); func_80328A84(this, 2);
temp_v0 = func_8034C5AC(300); temp_v0 = func_8034C5AC(300);
if(temp_v0){ if(temp_v0 != NULL){
func_8034E7B8(temp_v0, -600, 4.0f, 2, 10.0f); func_8034E7B8(temp_v0, -600, 4.0f, 2, 10.0f);
} }

View File

@@ -5,7 +5,9 @@
extern s32 D_80276CB0; extern s32 D_80276CB0;
/* .data */ /* .data */
extern s32 D_8038C754; s32 D_8038C750 = 0x0016D2FD;
s32 D_8038C754 = 0xFB70B01D;
s32 D_8038C758 = 0x0004EFAC;
/* .bss */ /* .bss */
struct { struct {

View File

@@ -6,6 +6,7 @@
/* extern */ /* extern */
extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e); extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e);
extern BKModel *func_80309744(s32);
extern u8 D_8037DCC0[7]; extern u8 D_8037DCC0[7];
@@ -271,7 +272,7 @@ void func_8038AC48(Struct_TTC_3E30_1 *arg0) {
temp_s5 = func_803203FC(2); temp_s5 = func_803203FC(2);
phi_s7 = FALSE; phi_s7 = FALSE;
sp3C = func_8038BD10(arg0); 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; phi_s1 = (D_8038D720.unk8 == 0) ? 1 : 0;
if (!temp_s5) { if (!temp_s5) {
for(i = 1; i < 4; i++){ for(i = 1; i < 4; i++){
@@ -373,8 +374,6 @@ void func_8038AFC8(void){
func_8038B5B4(); func_8038B5B4();
} }
void func_8038B04C(void){ void func_8038B04C(void){
if(D_8038D720.unk0){ if(D_8038D720.unk0){
func_8038A258(0); func_8038A258(0);

View File

@@ -38,7 +38,12 @@ segments:
- [0x35D0, c, code_35D0] #DONE - [0x35D0, c, code_35D0] #DONE
- [0x3E30, c, code_3E30] #DONE - [0x3E30, c, code_3E30] #DONE
- [0x5BD0, c, ch/treasure] #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] - [0x00006370, .data, ch/lockup]
- [0x00006430, .data, code_35D0] - [0x00006430, .data, code_35D0]
- [0x00006590, .data, code_3E30] - [0x00006590, .data, code_3E30]
@@ -47,9 +52,9 @@ segments:
- [0x00006950, .rodata, code_10A0] - [0x00006950, .rodata, code_10A0]
- [0x00006980, .rodata, code_19D0] - [0x00006980, .rodata, code_19D0]
- [0x000069A0, .rodata, code_26D0] - [0x000069A0, .rodata, code_26D0]
- [0x000069E0, bin, ttc_data_69E0] - [0x000069E0, .rodata, code_2B80]
- [0x00006A00, .rodata, ch/lockup] - [0x00006A00, .rodata, ch/lockup]
- [0x00006A30, .rodata, code_35D0] #- [0x6A30, bin, ttc_data_6A30] # - [0x00006A30, .rodata, code_35D0]
- [0x00006A60, .rodata, code_3E30] - [0x00006A60, .rodata, code_3E30]
- [0x000072B0, .rodata, ch/treasure] - [0x000072B0, .rodata, ch/treasure]
- [0x7300, .bss, code_3040] - [0x7300, .bss, code_3040]