file_progress_e documentation

This commit is contained in:
Banjo Kazooie
2023-02-18 21:00:18 -06:00
parent 1aff1a433a
commit d0112a6d4a
86 changed files with 1162 additions and 1155 deletions

View File

@@ -8,16 +8,16 @@ typedef struct {
s32 unk0;
} ActorLocal_lair_5640;
void func_8038BCF0(Actor *this);
void chBrentilda_update(Actor *this);
/* .data */
ActorAnimationInfo D_80393710[] ={
ActorAnimationInfo chBrentildaAnimations[] ={
{0, 0.0f},
{0x26B, 4.0f},
{0x26C, 4.0f},
{0x26B, 4.0f},
};
ActorInfo D_80393730 = { 0x1E0, 0x348, 0x539, 0x1, D_80393710, func_8038BCF0, func_80326224, func_80325888, 2000, 0, 2.0f, 0};
ActorInfo chBrentilda = { 0x1E0, 0x348, 0x539, 0x1, chBrentildaAnimations, chBrentilda_update, func_80326224, func_80325888, 2000, 0, 2.0f, 0};
/* .code */
void func_8038BA30(ActorMarker *marker, enum asset_e text_id, s32 arg2){
@@ -34,7 +34,7 @@ void lair_func_8038BA88(ActorMarker *marker, enum asset_e text_id, s32 arg2){
this = marker_getActor(marker);
item_set(ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL));
func_80320004(this->unkF4_8 + 0xE8, TRUE);
fileProgressFlag_set(this->unkF4_8 - 1 + FILEPROG_E9_TALKED_TO_BRENTILDA_1, TRUE);
}
void func_8038BADC(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
@@ -42,7 +42,7 @@ void func_8038BADC(ActorMarker *marker, enum asset_e text_id, s32 arg2) {
this = marker_getActor(marker);
if (text_id == ((ActorLocal_lair_5640 *)&this->local)->unk0 + 2) {
if (!func_8031FF1C(this->unkF4_8 + 0xE8)) {
if (!fileProgressFlag_get(this->unkF4_8 - 1 + FILEPROG_E9_TALKED_TO_BRENTILDA_1)) {
if (item_getCount(ITEM_14_HEALTH) < item_getCount(ITEM_15_HEALTH_TOTAL)) {
func_80311480(0x10A2, 0xF, this->position, this->marker, func_8038BADC, lair_func_8038BA88);
return;
@@ -68,8 +68,8 @@ void func_8038BC24(void) {
s32 phi_s0;
s32 phi_s1;
if (func_8031FF1C(0x5C) && !func_803203FC(0x62)) {
func_8034A8BC(func_8031FF44(0xD3, 8));
if (fileProgressFlag_get(FILEPROG_5C_FF_PATTERN_SET) && !func_803203FC(0x62)) {
func_8034A8BC(fileProgressFlag_getN(FILEPROG_D3_FF_PATTERN, 8));
for(phi_s1 = 0; phi_s1 < func_8031A45C(3); phi_s1++){
phi_s0 = 0x26 + 2*phi_s1;
temp_v0 = randi2(0, 3);
@@ -84,7 +84,7 @@ void func_8038BC24(void) {
}
void func_8038BCF0(Actor *this) {
void chBrentilda_update(Actor *this) {
s32 sp78[6];
s32 sp74;
ActorLocal_lair_5640 *local;
@@ -100,9 +100,9 @@ void func_8038BCF0(Actor *this) {
marker_setFreeMethod(this->marker, func_8038BBC0);
actor_collisionOff(this);
this->unk10_12 = 2;
if (!func_8031FF1C(0x5C)) {
func_80320044(0xD3, randi2(0, 0x100), 8);
func_80320004(0x5C, TRUE);
if (!fileProgressFlag_get(FILEPROG_5C_FF_PATTERN_SET)) {
fileProgressFlag_setN(FILEPROG_D3_FF_PATTERN, randi2(0, 0x100), 8);
fileProgressFlag_set(FILEPROG_5C_FF_PATTERN_SET, TRUE);
}
func_8038BC24();
actor_setOpacity(this, 0x40);
@@ -178,9 +178,9 @@ void func_8038BCF0(Actor *this) {
&& (func_8028ECAC() == 0)
&& func_8028F20C()
&& !func_803114B0()) {
if (!func_8031FF1C(0x96)) {
func_80311480(0x10A1, 0xA, this->position, this->marker, func_8038BADC, NULL);
func_80320004(0x96, TRUE);
if (!fileProgressFlag_get(FILEPROG_96_MET_BRENTILDA)) {
func_80311480(ASSET_10A1_DIALOG_BRENTILDA_MEET, 0xA, this->position, this->marker, func_8038BADC, NULL);
fileProgressFlag_set(FILEPROG_96_MET_BRENTILDA, TRUE);
func_80328A84(this, 2);
return;
}

View File

@@ -20,8 +20,8 @@ extern void *func_8034C2C4(ActorMarker *, s32);
void lair_func_803863F0(Actor *this);
void lair_func_803864B0(Actor *this);
void chFloorCobweb_update(Actor *this);
void chWallCobweb_update(Actor *this);
void lair_func_80386550(Actor *this);
Actor *func_8038664C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80386D78(Actor *this);
@@ -64,7 +64,7 @@ extern ActorInfo D_80393560;
extern ActorInfo D_80393584;
extern ActorInfo D_803947B0;
extern ActorInfo D_803947D4;
extern ActorInfo D_80393730;
extern ActorInfo chBrentilda;
extern ActorInfo D_80394A80;
extern ActorInfo D_80394AB0;
extern ActorInfo D_80394870;
@@ -125,10 +125,10 @@ ActorInfo D_80392E68 = { 0x11D, 0x223, 0x4B0, 0x1, D_80392CB0, func_80389784, fu
ActorInfo D_80392E8C = { 0x232, 0x23C, 0x4B8, 0x1, D_80392CB0, func_803897AC, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392EB0 = { 0x23F, 0x246, 0x534, 0x1, D_80392CB0, func_80386D20, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392ED4 = { 0x241, 0x248, 0x540, 0x1, D_80392CB0, func_80386780, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392EF8 = { 0x109, 0x20D, 0x4A1, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85};
ActorInfo D_80392EF8 = { MARKER_109_BREAKABLE_BRICK_WALL, ACTOR_20D_BREAKABLE_BRICK_WALL, ASSET_4A1_MODEL_BREAKABLE_BRICK_WALL, 0x1, D_80392CB0, lair_func_80386550, func_80326224, func_80325888, 0, 0, 0.0f, 0x85};
ActorInfo D_80392F1C = { 0x264, 0x2E5, 0x550, 0x19, D_80392CB0, func_80388524, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_80392F40 = { 0x224, 0x230, 0x4BF, 0xB, D_80392CB0, lair_func_803863F0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F64 = { 0x225, 0x231, 0x4D5, 0xE, D_80392CB0, lair_func_803864B0, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F40 = { MARKER_224_BREAKABLE_FLOOR_COBWEB, ACTOR_230_BREAKABLE_FLOOR_COBWEB, ASSET_4BF_MODEL_FLOOR_COBWEB, 0xB, D_80392CB0, chFloorCobweb_update, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F64 = { MARKER_225_BREAKABLE_WALL_COBWEB, ACTOR_231_BREAKABLE_WALL_COBWEB, ASSET_4D5_MODEL_WALL_COBWEB, 0xE, D_80392CB0, chWallCobweb_update, func_80326224, func_80325888, 0, 0, 0.0f, 0x88};
ActorInfo D_80392F88 = { 0x111, 0x215, 0x4A4, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392FAC = { 0x112, 0x216, 0x4A5, 0x1, NULL, func_80388FC8, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
ActorInfo D_80392FD0 = { 0x114, 0x218, 0x4A6, 0x1, NULL, lair_func_80389204, func_80326224, func_80325E78, 0, 0, 0.0f, 0};
@@ -152,7 +152,7 @@ ActorInfo D_80393234 = { 0x10B, 0x20F, 0x4B4, 0x1, NULL, func_80388524, func_803
ActorInfo D_80393258 = { 0x10C, 0x210, 0x4AE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x84};
ActorInfo D_8039327C = { 0x10E, 0x212, 0x4A7, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x7F};
ActorInfo D_803932A0 = { 0x120, 0x226, 0x4BC, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x87};
ActorInfo D_803932C4 = { 0x122, 0x228, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C};
ActorInfo D_803932C4 = { 0x122, ACTOR_228_MMM_ENTRANCE_DOOR, 0x4BE, 0x1, NULL, func_80388524, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8C};
ActorInfo D_803932E8 = { 0x10F, 0x213, 0x4A8, 0x1, NULL, func_803875F0, func_80326224, func_80325E78, 0, 0, 0.0f, 0x80};
ActorInfo D_8039330C = { 0x118, 0x21E, 0x4B1, 0x1, NULL, lair_func_8038A084, func_80326224, func_80325E78, 0, 0, 0.0f, 0x8F};
ActorInfo D_80393330 = { 0x119, 0x21F, 0x4B6, 0x1, NULL, func_8038A0A4, func_80326224, func_80325E78, 0, 0, 0.0f, 0x92};
@@ -170,15 +170,15 @@ struct31s D_8039342C = {
0.0f, 0.0f
};
s16 D_80393454[] = {
BKPROG_31_MM_OPEN,
BKPROG_32_TTC_OPEN,
BKPROG_33_CC_OPEN,
BKPROG_34_BGS_OPEN,
BKPROG_35_FP_OPEN,
BKPROG_36_GV_OPEN,
BKPROG_37_MMM_OPEN,
BKPROG_38_RBB_OPEN,
BKPROG_39_CCW_OPEN,
FILEPROG_31_MM_OPEN,
FILEPROG_32_TTC_OPEN,
FILEPROG_33_CC_OPEN,
FILEPROG_34_BGS_OPEN,
FILEPROG_35_FP_OPEN,
FILEPROG_36_GV_OPEN,
FILEPROG_37_MMM_OPEN,
FILEPROG_38_RBB_OPEN,
FILEPROG_39_CCW_OPEN,
0
};
@@ -214,13 +214,13 @@ s32 D_80393504[4] = {0x87, 0x87, 0x87, 0xB4};
//chcobweb
void lair_func_803863F0(Actor *this)
void chFloorCobweb_update(Actor *this)
{
if(!this->initialized)
{
func_802D3CE8(this);
if (func_8031FF1C(this->unkF4_8 == 1 ? 0xCB : 0xCC))
if (fileProgressFlag_get(this->unkF4_8 == 1 ? FILEPROG_CB_LAIR_COBWEB_OVER_FLIGHTPAD_BROKEN : FILEPROG_CC_LAIR_COBWEB_OVER_GREEN_CAULDRON_BROKEN))
{
marker_despawn(this->marker);
return;
@@ -238,13 +238,13 @@ void lair_func_803863F0(Actor *this)
}
//chbigyellowcobweb
void lair_func_803864B0(Actor *this)
void chWallCobweb_update(Actor *this)
{
if (!this->initialized)
{
func_802D3CE8(this);
if (func_8031FF1C(0xCA))
if (fileProgressFlag_get(FILEPROG_CA_COBWEB_BLOCKING_PURPLE_CAULDRON_BROKEN))
{
marker_despawn(this->marker);
return;
@@ -267,7 +267,7 @@ void lair_func_80386550(Actor *this)
{
func_802D3CE8(this);
if (func_8031FF1C(this->unkF4_8 == 1 ? 0xC8 : 0xC9))
if (fileProgressFlag_get(this->unkF4_8 == 1 ? FILEPROG_C8_LAIR_BRICKWALL_TO_WADINGBOOTS_BROKEN : FILEPROG_C9_LAIR_BRICKWALL_TO_SHOCKJUMP_PAD_BROKEN))
{
marker_despawn(this->marker);
return;
@@ -334,7 +334,7 @@ ParticleEmitter *func_803866D8(s32 a0)
void func_80386780(Actor *this)
{
func_802D4AC0(this, 0x8000C6, 0xC7);
func_802D4AC0(this, 0x800000 | FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED, FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE);
}
void func_803867A8(Actor *this) {
@@ -365,8 +365,8 @@ void func_803867A8(Actor *this) {
this->unk158[1] = func_803866D8(1);
if (func_803203FC(0x86)) {
ability_unlock(ABILITY_D_SHOCK_JUMP);
func_80320004(0xC6, TRUE);
func_80320004(0xC7, TRUE);
fileProgressFlag_set(FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED, TRUE);
fileProgressFlag_set(FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE, TRUE);
}
}
if ((this->unk1C[1] - 150.0f) <= this->position[1]) {
@@ -424,10 +424,10 @@ void func_803867A8(Actor *this) {
particleEmitter_emitN(sp44, 1);
}
}
} else if (func_8031FF1C(0xC6)) {
} else if (fileProgressFlag_get(FILEPROG_C6_LAIR_JUMP_PAD_SWITCH_PRESSED)) {
this->position_y = this->unk1C[1];
if (func_8031FF1C(0xC7)) {
if (fileProgressFlag_get(FILEPROG_C7_LAIR_JUMP_PAD_ACTIVE)) {
this->unk38_31 = 0;
this->alpha_124_19 = 0xFF;
}
@@ -525,7 +525,7 @@ void func_803870DC(Actor *this) {
f32 sp64[3];
s32 temp_s7;
phi_v1 = func_8031FF1C(D_80393454[this->unkF4_8 - 1])
phi_v1 = fileProgressFlag_get(D_80393454[this->unkF4_8 - 1])
|| (D_80393468[this->unkF4_8 - 1] != 0 && func_803203FC(D_80393468[this->unkF4_8 - 1]));
if (!this->unk16C_4) {
@@ -605,7 +605,7 @@ void func_803875F0(Actor * this)
if (!this->unk16C_4)
{
if (func_8031FF1C(0x1E))
if (fileProgressFlag_get(FILEPROG_1E_LAIR_GRATE_TO_BGS_PUZZLE_OPEN))
{
marker_despawn(this->marker);
return;
@@ -615,7 +615,7 @@ void func_803875F0(Actor * this)
{
this->unk1C_y = this->position_y;
func_802BAFE4(0x2A);
func_80320004(0x1E, TRUE);
fileProgressFlag_set(FILEPROG_1E_LAIR_GRATE_TO_BGS_PUZZLE_OPEN, TRUE);
this->unk16C_4 = TRUE;
this->unk38_31 = 0x0C;
}
@@ -663,7 +663,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 = 0xFF;
this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f;
if (func_8031FF1C(this->unkF4_8 + 0x39)) {
if (fileProgressFlag_get(this->unkF4_8 + 0x39)) {
marker_despawn(this->marker);
return;
}
@@ -682,7 +682,7 @@ void func_80387730(Actor *this) {
this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f;
}
if (!func_8031FF1C(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) {
if (!fileProgressFlag_get(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) {
player_getPosition(spAC);
if ((ml_distance_vec3f(spAC, this->position) < 500.0f) && (func_803114C4() != 0xF64)) {
func_802FACA4(0xC);
@@ -712,7 +712,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 -= 7;
}
if (this->alpha_124_19 == 0) {
func_80320004(this->unkF4_8 + 0x39, TRUE);
fileProgressFlag_set(this->unkF4_8 + 0x39, TRUE);
marker_despawn(this->marker);
func_8028F918(0);
func_8028F66C(BS_INTR_35);
@@ -830,22 +830,22 @@ void func_80387F78(Actor *this, u32 flag)
{
if (this->unk1C[0] != 2.f)
{
if (this->unk1C[0] != 0 && func_8031FF1C(0x9B))
if (this->unk1C[0] != 0 && fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{
u32 flagState = func_8031FF1C(flag);
func_80320004(flag, TRUE);
u32 flagState = fileProgressFlag_get(flag);
fileProgressFlag_set(flag, TRUE);
if (flagState == FALSE
&& !jiggyscore_isSpawned(JIGGY_35_LAIR_CC_WITCH_SWITCH)
&& func_8031FF1C(0x9C)
&& func_8031FF1C(0x9D))
&& fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED)
&& fileProgressFlag_get(FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED))
{
func_8025A6EC(0x2D, 0x7FFF);
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 0x7FFF);
timedFunc_set_0(0.9f, func_80387F1C);
}
}
if (func_8031FF1C(flag))
if (fileProgressFlag_get(flag))
{
this->position_y -= 4.5; // f64
@@ -873,19 +873,19 @@ void func_803880BC(Actor *this)
__spawnQueue_add_1((GenMethod_1)func_80387E94, reinterpret_cast(s32, this->marker));
if (func_803203FC(0xBC) && !func_8031FF1C(0x9A))
if (func_803203FC(0xBC) && !fileProgressFlag_get(FILEPROG_9A_CC_WITCH_SWITCH_PRESSED))
FUNC_8030E624(SFX_3F6_UNKNOWN, 0.75f, 30000);
}
if (func_8031FF1C(0x9B))
if (fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{
if (!func_8031FF1C(0x9C))
if (!fileProgressFlag_get(FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED))
{
this->position_y = this->unk1C[1];
actor_collisionOn(this);
}
if (this->unk100 != NULL && !func_8031FF1C(0x9D))
if (this->unk100 != NULL && !fileProgressFlag_get(FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED))
{
Actor *actor = marker_getActor(this->unk100);
actor->position_y = this->unk1C[1];
@@ -893,14 +893,14 @@ void func_803880BC(Actor *this)
}
}
if (func_803203FC(0xBC) && !func_8031FF1C(0x9B))
if (func_803203FC(0xBC) && !fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{
this->position_y += 1.7;
if (this->position_y >= this->unk1C[1])
{
this->position_y = this->unk1C[1];
func_80320004(0x9B, TRUE);
fileProgressFlag_set(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE, TRUE);
}
if (this->unk100 != NULL)
@@ -910,13 +910,13 @@ void func_803880BC(Actor *this)
}
}
func_80387F78(this, 0x9C);
func_80387F78(this, FILEPROG_9C_LAIR_CC_WITCH_SWITCH_LEFT_EYE_PRESSED);
}
void func_8038824C(Actor *this)
{
func_802D3CE8(this);
func_80387F78(this, 0x9D);
func_80387F78(this, FILEPROG_9D_LAIR_CC_WITCH_SWITCH_RIGHT_EYE_PRESSED);
}
@@ -939,7 +939,7 @@ void func_803882B0(Actor *this)
this->unk16C_4 = TRUE;
if (func_8031FF1C(0x48))
if (fileProgressFlag_get(FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN))
this->pitch = 90.f;
this->unk60 = 0;
@@ -962,17 +962,17 @@ void func_803882B0(Actor *this)
if (this->pitch > 90.f)
{
this->pitch = 90.f;
func_80320004(0x48, TRUE);
fileProgressFlag_set(FILEPROG_48_FP_WITCH_SWITCH_ADVENT_DOOR_OPEN, TRUE);
func_802D48B8(this);
}
}
void func_80388404(enum bkprog_e flag, enum sfx_e sfx, f32 a2, s32 a3)
void func_80388404(enum file_progress_e flag, enum sfx_e sfx, f32 a2, s32 a3)
{
if (func_8031FF1C(flag) == FALSE)
if (fileProgressFlag_get(flag) == FALSE)
func_8030E6A4(sfx, a2, a3);
func_80320004(flag, TRUE);
fileProgressFlag_set(flag, TRUE);
}
void func_80388450(Actor *actor1, Actor *actor2)
@@ -1015,63 +1015,63 @@ void func_80388524(Actor *this) {
if (!this->initialized) {
if (!sp34) {
switch(this->modelCacheIndex){
case 0x2E5://L80388630
if (!func_8031FF1C(0xE2) && func_8038EAE0(0xA)) {
func_80320004(0xE2, TRUE);
case ACTOR_2E5_DOOR_OF_GRUNTY://L80388630
if (!fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) && func_8038EAE0(0xA)) {
fileProgressFlag_set(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN, TRUE);
}
break;
case 0x20e: //L80388660
if (!func_8031FF1C(0x31) && func_8038EAE0(1)) {
func_80320004(0x31, TRUE);
case ACTOR_20E_MM_ENTRANCE_DOOR: //L80388660
if (!fileProgressFlag_get(FILEPROG_31_MM_OPEN) && func_8038EAE0(1)) {
fileProgressFlag_set(FILEPROG_31_MM_OPEN, TRUE);
}
break;
case 0x226: //L80388690
if (!func_8031FF1C(0x36) && func_8038EAE0(6)) {
func_80320004(0x36, TRUE);
case ACTOR_226_GV_ENTRANCE: //L80388690
if (!fileProgressFlag_get(FILEPROG_36_GV_OPEN) && func_8038EAE0(6)) {
fileProgressFlag_set(FILEPROG_36_GV_OPEN, TRUE);
}
break;
case 0x212: //L803886C0
if (!func_8031FF1C(0x33) && func_8038EAE0(3)) {
func_80320004(0x33, TRUE);
case ACTOR_212_CC_ENTRANCE_BARS: //L803886C0
if (!fileProgressFlag_get(FILEPROG_33_CC_OPEN) && func_8038EAE0(3)) {
fileProgressFlag_set(FILEPROG_33_CC_OPEN, TRUE);
}
break;
case 0x211: //L803886F0
if (!func_8031FF1C(0x32) && func_8038EAE0(2)) {
func_80320004(0x32, TRUE);
case ACTOR_211_TCC_ENTRANCE_CHEST_LID: //L803886F0
if (!fileProgressFlag_get(FILEPROG_32_TTC_OPEN) && func_8038EAE0(2)) {
fileProgressFlag_set(FILEPROG_32_TTC_OPEN, TRUE);
}
break;
case 0x210: //L80388720
if (!func_8031FF1C(0x34) && func_8038EAE0(4)) {
func_80320004(0x34, TRUE);
case ACTOR_210_BGS_ENTRANCE_DOOR: //L80388720
if (!fileProgressFlag_get(FILEPROG_34_BGS_OPEN) && func_8038EAE0(4)) {
fileProgressFlag_set(FILEPROG_34_BGS_OPEN, TRUE);
}
break;
case 0x20f: //L80388750
if (!func_8031FF1C(0x38) && func_8038EAE0(8)) {
func_80320004(0x38, TRUE);
case ACTOR_20F_RBB_ENTRANCE_DOOR: //L80388750
if (!fileProgressFlag_get(FILEPROG_38_RBB_OPEN) && func_8038EAE0(8)) {
fileProgressFlag_set(FILEPROG_38_RBB_OPEN, TRUE);
}
break;
case 0x228: //L80388780
if (!func_8031FF1C(0x37) && func_8038EAE0(7)) {
func_80320004(0x37, TRUE);
case ACTOR_228_MMM_ENTRANCE_DOOR: //L80388780
if (!fileProgressFlag_get(FILEPROG_37_MMM_OPEN) && func_8038EAE0(7)) {
fileProgressFlag_set(FILEPROG_37_MMM_OPEN, TRUE);
}
break;
case 0x234: //L803887B0
if (!func_8031FF1C(0x39) && func_8038EAE0(9)) {
func_80320004(0x39, TRUE);
case ACTOR_234_CCW_ENTRANCE_DOOR: //L803887B0
if (!fileProgressFlag_get(FILEPROG_39_CCW_OPEN) && func_8038EAE0(9)) {
fileProgressFlag_set(FILEPROG_39_CCW_OPEN, TRUE);
}
break;
case 0x235: //L803887E0
if (!func_8031FF1C(0x35) && func_8038EAE0(5)) {
func_80320004(0x35, TRUE);
case ACTOR_235_FP_ENTANCE_DOOR: //L803887E0
if (!fileProgressFlag_get(FILEPROG_35_FP_OPEN) && func_8038EAE0(5)) {
fileProgressFlag_set(FILEPROG_35_FP_OPEN, TRUE);
}
break;
}//L80388808
@@ -1081,71 +1081,71 @@ void func_80388524(Actor *this) {
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
switch(this->modelCacheIndex){
case 0x2E5: //L80388880
if (func_8031FF1C(0xE2) && (this->state == 0x19)) {
case ACTOR_2E5_DOOR_OF_GRUNTY: //L80388880
if (fileProgressFlag_get(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN) && (this->state == 0x19)) {
func_80328B8C(this, 0x1B, 0.999f, 1);
}
break;
case 0x20e://L803888C0
if(func_8031FF1C(0x31)){
case ACTOR_20E_MM_ENTRANCE_DOOR://L803888C0
if(fileProgressFlag_get(FILEPROG_31_MM_OPEN)){
this->yaw = 270.0f;
}
break;
case 0x226://L803888DC
if(func_8031FF1C(0x36)){
case ACTOR_226_GV_ENTRANCE://L803888DC
if(fileProgressFlag_get(FILEPROG_36_GV_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 300.0f;
break;
case 0x212://L80388914
if(func_8031FF1C(0x33)){
case ACTOR_212_CC_ENTRANCE_BARS://L80388914
if(fileProgressFlag_get(FILEPROG_33_CC_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 365.0f;
break;
case 0x211://L80388948
if(func_8031FF1C(0x32)){
case ACTOR_211_TCC_ENTRANCE_CHEST_LID://L80388948
if(fileProgressFlag_get(FILEPROG_32_TTC_OPEN)){
this->pitch = 90.0f;
}
break;
case 0x210://L8038896C
if(func_8031FF1C(0x34)){
case ACTOR_210_BGS_ENTRANCE_DOOR://L8038896C
if(fileProgressFlag_get(FILEPROG_34_BGS_OPEN)){
this->yaw = 90.0f;
}
break;
case 0x20f://L80388990
if(func_8031FF1C(0x38)){
case ACTOR_20F_RBB_ENTRANCE_DOOR://L80388990
if(fileProgressFlag_get(FILEPROG_38_RBB_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 290.0f;
break;
case 0x228://L803889C8
if(func_8031FF1C(0x37)){
case ACTOR_228_MMM_ENTRANCE_DOOR://L803889C8
if(fileProgressFlag_get(FILEPROG_37_MMM_OPEN)){
this->yaw = 90.0f;
}
break;
case 0x234://L803889EC
if(func_8031FF1C(0x39)){
case ACTOR_234_CCW_ENTRANCE_DOOR://L803889EC
if(fileProgressFlag_get(FILEPROG_39_CCW_OPEN)){
marker_despawn(this->marker);
return;
}
this->unk1C[1] = this->position[1] + 270.0f;
break;
case 0x235://L80388A24
case ACTOR_235_FP_ENTANCE_DOOR://L80388A24
sp30 = actorArray_findActorFromActorId(0x236);
if(func_8031FF1C(0x35)){
if(fileProgressFlag_get(FILEPROG_35_FP_OPEN)){
marker_despawn(this->marker);
marker_despawn(sp30->marker);
return;
@@ -1180,7 +1180,7 @@ void func_80388524(Actor *this) {
}
if (actor_animationIsAt(this, 0.97f)) {
func_80328B8C(this, 0x1B, 0.999f, 1);
func_80320004(0xE2, 1);
fileProgressFlag_set(FILEPROG_E2_DOOR_OF_GRUNTY_OPEN, 1);
func_8030E6D4(SFX_6C_LOCKUP_CLOSING);
}
if (animctrl_getAnimTimer(this->animctrl) < 0.68) {
@@ -1251,7 +1251,7 @@ void func_80388524(Actor *this) {
}
break;
case 0x228://L80388E84
case ACTOR_228_MMM_ENTRANCE_DOOR://L80388E84
this->yaw += 1.4;
if (this->yaw > 90.0f) {
this->yaw = 90.0f;
@@ -1259,16 +1259,16 @@ void func_80388524(Actor *this) {
}
break;
case 0x234://L80388ED4
case ACTOR_234_CCW_ENTRANCE_DOOR://L80388ED4
this->position[1] += 3.2;
if (this->unk1C[1] <= this->position[1]) {
func_80388404(0x39, SFX_6C_LOCKUP_CLOSING, 1.0f, 20000);
func_80388404(FILEPROG_39_CCW_OPEN, SFX_6C_LOCKUP_CLOSING, 1.0f, 20000);
lair_func_80388278(this);
marker_despawn(this->marker);
}
break;
case 0x235://L80388F34
case ACTOR_235_FP_ENTANCE_DOOR://L80388F34
{
sp28 = actorArray_findActorFromActorId(0x236);
this->unk1C[0] += 3.6;
@@ -1276,7 +1276,7 @@ void func_80388524(Actor *this) {
lair_func_80388278(this);
marker_despawn(this->marker);
marker_despawn(sp28->marker);
func_80320004(0x35, TRUE);
fileProgressFlag_set(FILEPROG_35_FP_OPEN, TRUE);
return;
}
func_80388450(this, sp28);
@@ -1313,7 +1313,7 @@ void func_80388FC8(Actor *this)
if (!this->unk16C_4)
{
if (func_8031FF1C(this->modelCacheIndex == 0x215 ? BKPROG_1F_CC_LOBBY_PIPE_1_RAISED : BKPROG_20_CC_LOBBY_PIPE_2_RAISED))
if (fileProgressFlag_get(this->modelCacheIndex == 0x215 ? FILEPROG_1F_CC_LOBBY_PIPE_1_RAISED : FILEPROG_20_CC_LOBBY_PIPE_2_RAISED))
{
this->position_y = this->unk1C[1];
return;
@@ -1327,7 +1327,7 @@ void func_80388FC8(Actor *this)
if (1); // oof
}
func_80320004(this->modelCacheIndex == 0x215 ? BKPROG_1F_CC_LOBBY_PIPE_1_RAISED : BKPROG_20_CC_LOBBY_PIPE_2_RAISED, TRUE);
fileProgressFlag_set(this->modelCacheIndex == 0x215 ? FILEPROG_1F_CC_LOBBY_PIPE_1_RAISED : FILEPROG_20_CC_LOBBY_PIPE_2_RAISED, TRUE);
this->unk16C_4 = 1;
this->unk38_31 = 12;
@@ -1390,7 +1390,7 @@ void lair_func_80389204(Actor *this)
if (!this->unk16C_4)
{
if (func_8031FF1C(BKPROG_21_CC_LOBBY_PIPE_3_RAISED))
if (fileProgressFlag_get(FILEPROG_21_CC_LOBBY_PIPE_3_RAISED))
{
this->position_y = this->unk1C[1];
return;
@@ -1399,7 +1399,7 @@ void lair_func_80389204(Actor *this)
if (mapSpecificFlags_get(2))
{
func_802BAFE4(0x2C);
func_80320004(BKPROG_21_CC_LOBBY_PIPE_3_RAISED, TRUE);
fileProgressFlag_set(FILEPROG_21_CC_LOBBY_PIPE_3_RAISED, TRUE);
this->unk16C_4 = 1;
this->unk38_31 = 12;
@@ -1476,7 +1476,7 @@ void lair_func_803894B0(Actor *this)
this->unk16C_4 = TRUE;
this->unk1C[0] = 0;
if (func_8031FF1C(BKPROG_A1_STATUE_HAT_OPEN))
if (fileProgressFlag_get(FILEPROG_A1_STATUE_HAT_OPEN))
{
marker_despawn(this->marker);
return;
@@ -1490,7 +1490,7 @@ void lair_func_803894B0(Actor *this)
if (--this->unk1C[0] == 0)
{
func_80320004(0xA1, TRUE);
fileProgressFlag_set(FILEPROG_A1_STATUE_HAT_OPEN, TRUE);
timed_playSfx(0.5f, SFX_3F9_UNKNOWN, 1.f, 32000);
FUNC_8030E624(SFX_114_BRICKWALL_BREAKING, 0.8f, 32000);
func_802EE2E8(this, 0xB, 0x19, 0x000, 0.6f, 1.8f, 3.f);
@@ -1519,22 +1519,22 @@ void func_80389714(Actor *this)
void func_80389734(Actor *this)
{
func_802D4AC0(this, 0x800022, 0x23);
func_802D4AC0(this, 0x800000 | FILEPROG_22_WATER_SWITCH_1_PRESSED, FILEPROG_23_LAIR_WATER_LEVEL_1);
}
void func_8038975C(Actor *this)
{
func_802D4AC0(this, 0x800024, 0x25);
func_802D4AC0(this, 0x800000 | FILEPROG_24_WATER_SWITCH_2_PRESSED, FILEPROG_25_LAIR_WATER_LEVEL_2);
}
void func_80389784(Actor *this)
{
func_802D4AC0(this, 0x800026, 0x27);
func_802D4AC0(this, 0x800000 | FILEPROG_26_WATER_SWITCH_3_PRESSED, FILEPROG_27_LAIR_WATER_LEVEL_3);
}
void func_803897AC(Actor *this)
{
func_802D4AC0(this, 0x800053, 0x54);
func_802D4AC0(this, 0x800000 | FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED, FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE);
}
void func_803897D4(s32 arg0)
@@ -1562,7 +1562,7 @@ void func_8038982C(Actor *this)
this->initialized = TRUE;
if (!func_8031FF1C(BKPROG_9E_CRYPT_COFFIN_LID_OPEN))
if (!fileProgressFlag_get(FILEPROG_9E_CRYPT_COFFIN_LID_OPEN))
__spawnQueue_add_1((GenMethod_1)func_803897D4, reinterpret_cast(s32, this->marker));
}
}
@@ -1579,7 +1579,7 @@ void func_80389898(Actor *this)
{
func_80328AC8(this, 0x13);
actor_playAnimationOnce(this);
func_80320004(BKPROG_9E_CRYPT_COFFIN_LID_OPEN, TRUE);
fileProgressFlag_set(FILEPROG_9E_CRYPT_COFFIN_LID_OPEN, TRUE);
}
break;
@@ -1605,7 +1605,7 @@ void func_80389934(Actor *this)
this->unk16C_4 = TRUE;
if (func_8031FF1C(BKPROG_A2_GV_LOBBY_COFFIN_OPEN))
if (fileProgressFlag_get(FILEPROG_A2_GV_LOBBY_COFFIN_OPEN))
func_80328B8C(this, 0x18, 0.999f, 1);
}
@@ -1618,7 +1618,7 @@ void func_80389934(Actor *this)
this->unk1C[0] = 25;
func_80328AC8(this, 0x16);
func_80320004(BKPROG_A2_GV_LOBBY_COFFIN_OPEN, TRUE);
fileProgressFlag_set(FILEPROG_A2_GV_LOBBY_COFFIN_OPEN, TRUE);
}
break;
@@ -1731,7 +1731,7 @@ void func_80389D08(Actor *this)
this->unk16C_4 = TRUE;
this->unk60 = 0;
if (func_8031FF1C(0xA5))
if (fileProgressFlag_get(0xA5))
{
marker_despawn(this->marker);
return;
@@ -1799,47 +1799,47 @@ Actor *func_80389E10(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
return this;
}
void func_80389FA8(Actor *this, enum bkprog_e flag)
void func_80389FA8(Actor *this, enum file_progress_e flag)
{
if (!this->initialized)
{
func_802D3D54(this);
if (func_8031FF1C(flag))
if (fileProgressFlag_get(flag))
marker_despawn(this->marker);
}
}
void func_80389FF4(Actor *this)
{
func_80389FA8(this, BKPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN);
func_80389FA8(this, FILEPROG_C2_GRATE_TO_RBB_PUZZLE_OPEN);
}
void func_8038A014(Actor *this)
{
func_80389FA8(this, BKPROG_C3_ICE_BALL_TO_CHEATO_BROKEN);
func_80389FA8(this, FILEPROG_C3_ICE_BALL_TO_CHEATO_BROKEN);
}
void func_8038A034(Actor *this)
{
this->depth_mode = 2;
func_80389FA8(this, BKPROG_C4_STATUE_EYE_BROKEN);
func_80389FA8(this, FILEPROG_C4_STATUE_EYE_BROKEN);
}
void func_8038A064(Actor *this)
{
func_80389FA8(this, BKPROG_C5_RAREWARE_BOX_BROKEN);
func_80389FA8(this, FILEPROG_C5_RAREWARE_BOX_BROKEN);
}
void lair_func_8038A084(Actor *this)
{
func_80389FA8(this, BKPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN);
func_80389FA8(this, FILEPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN);
}
void func_8038A0A4(Actor *this)
{
func_80389FA8(this, BKPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN);
func_80389FA8(this, FILEPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN);
}
void lair_func_8038A0C4(void)
@@ -1888,7 +1888,7 @@ void lair_func_8038A0C4(void)
spawnableActorList_add(&D_80393378, actor_new, 0x8640);
spawnableActorList_add(&D_803947B0, actor_new, 0xA1480);
spawnableActorList_add(&D_803947D4, actor_new, 0xA1480);
spawnableActorList_add(&D_80393730, actor_new, 0x140);
spawnableActorList_add(&chBrentilda, actor_new, 0x140);
spawnableActorList_add(&D_80394A80, actor_new, 0);
spawnableActorList_add(&D_80394AB0, actor_new, 0x44);
spawnableActorList_add(&D_80392EB0, actor_new, 0x8608);

View File

@@ -4,7 +4,7 @@
extern void func_8028F4B8(f32[3], f32, f32);
extern void func_8028F66C(s32);
extern void func_802D6310(f32, enum map_e, s32, s32, enum bkprog_e);
extern void func_802D6310(f32, enum map_e, s32, s32, enum file_progress_e);
extern void func_802EE354(Actor *, s32, s32, s32, f32, f32, f32, s32[4], s32, s32);
extern void func_80324CFC(f32, enum comusic_e, s32);
extern void func_8034DF30(s32, f32[4], f32[4], f32);
@@ -19,8 +19,8 @@ typedef struct {
s16 unk6;
}Struct_lair_42A0_0;
void func_8038AE2C(Actor *this);
Actor *func_8038B898(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chWarpCauldron_update(Actor *this);
Actor *chWarpCauldron_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
/* .data */
ActorAnimationInfo D_80393520[] = {
@@ -33,8 +33,8 @@ ActorAnimationInfo D_80393520[] = {
{0x28F, 5.167f},
{0x290, 6.26f}
};
ActorInfo D_80393560 = { 0x231, 0x23B, 0x4DF, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0};
ActorInfo D_80393584 = { 0x244, 0x2DB, 0x450, 1, D_80393520, func_8038AE2C, func_80326224, func_8038B898, 0, 0, 3.0f, 0};
ActorInfo D_80393560 = { MARKER_231_DINGPOT, ACTOR_23B_DINGPOT, ASSET_4DF_MODEL_WARP_CAULDRON, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0};
ActorInfo D_80393584 = { MARKER_244_WARP_CAULDRON, ACTOR_2DB_WARP_CAULDRON, ASSET_450_MODEL_DINGPOT, 1, D_80393520, chWarpCauldron_update, func_80326224, chWarpCauldron_draw, 0, 0, 3.0f, 0};
f32 D_803935A8[][2][3] = {
{{1.0f, 1.0f, 1.0f}, {1.0f, 0.0f, 1.0f}},
{{1.0f, 1.0f, 1.0f}, {0.0f, 1.0f, 1.0f}},
@@ -71,11 +71,11 @@ bool func_8038A690(Actor *this) {
}
}
enum bkprog_e func_8038A6DC(Actor *this){
return this->unkF4_8 + 0x48;
enum file_progress_e chWarpCauldron_getFileProgressFlagIndex(Actor *this){
return this->unkF4_8 -1 + 0x49;
}
enum bkprog_e func_8038A6EC(Actor *this){
enum file_progress_e chWarpCauldron_getPairedFileProgressFlagIndex(Actor *this){
return ((this->unkF4_8 - 1) ^ 1) + 0x49;
}
@@ -129,8 +129,8 @@ void func_8038A96C(Actor *this, s32 arg1) {
f32 sp38[4];
if( ( (arg1 != 3) || ( (this->unk1C[1] == 0.0f) && (this->marker->unk14_21 == 1)))
&& (this->modelCacheIndex == 0x23B)
&& ((arg1 != 0) || func_8031FF1C(func_8038A6DC(this)))
&& (this->modelCacheIndex == ACTOR_23B_DINGPOT)
&& ((arg1 != 0) || fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this)))
){
sp5C = func_8034C2C4(this->marker, 0x1C3);
if(sp5C != 0){
@@ -145,7 +145,7 @@ void func_8038A96C(Actor *this, s32 arg1) {
func_8034DF30(sp5C, sp38, sp38, 0.3f);
}
else{
func_8034DF30(sp5C, sp48, sp38, func_8031FF1C(func_8038A6DC(this)) ? 0.3 : 3.0);
func_8034DF30(sp5C, sp48, sp38, fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this)) ? 0.3 : 3.0);
}
}
}
@@ -178,12 +178,12 @@ void func_8038AC7C(Actor *this) {
if(
(func_803114C4() != 0xFAD)
&& func_80329530(this, 1200)
&& !func_8031FF1C(0xFC)
&& !fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)
) {
this->unk60 += time_getDelta();
if (35.0 < this->unk60) {
sp2C = (func_8031FF1C(0xCF)) ? 0xFB7 : 0xFAE;
sp28 = (func_8031FF1C(0xCF)) ? 0xFBC : 0xFB7;
sp2C = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFB7 : 0xFAE;
sp28 = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFBC : 0xFB7;
if (func_80311480(sp2C + this->unk38_31, 0, NULL, NULL, NULL, NULL)) {
this->unk38_31++;
this->unk60 = 0.0f;
@@ -196,8 +196,8 @@ void func_8038AC7C(Actor *this) {
}
void func_8038ADC0(ActorMarker *marker, enum asset_e text_id, s32 arg2){
func_80320004(0xF3, TRUE);
void __chWarpCauldron_dingpotDialogCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2){
fileProgressFlag_set(FILEPROG_F3_MET_DINGPOT, TRUE);
}
bool lair_func_8038ADF0(s32 arg0, s32 arg1) {
@@ -209,7 +209,7 @@ bool lair_func_8038ADF0(s32 arg0, s32 arg1) {
return phi_v1 < 70;
}
void func_8038AE2C(Actor *this) {
void chWarpCauldron_update(Actor *this) {
f32 sp54[3];
s32 sp50;
s32 sp4C;
@@ -227,10 +227,10 @@ void func_8038AE2C(Actor *this) {
this->marker->propPtr->unk8_3 = TRUE;
this->unk1C[1] = 0.0f;
this->velocity[0] = this->yaw;
if (this->modelCacheIndex == 0x2DB) {
if (func_8031FF1C(0xF3)) {
sp4C = (func_8031FF1C(0xCF)) ? 0xFB7 : 0xFAE;
phi_v0 = (func_8031FF1C(0xCF)) ? 0xFBC : 0xFB7;
if (this->modelCacheIndex == ACTOR_2DB_WARP_CAULDRON) {
if (fileProgressFlag_get(FILEPROG_F3_MET_DINGPOT)) {
sp4C = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFB7 : 0xFAE;
phi_v0 = (fileProgressFlag_get(FILEPROG_CF_HAS_ENTERED_FINAL_FIGHT)) ? 0xFBC : 0xFB7;
this->unk60 = 35.0f;
this->unk38_31 = randi2(0, phi_v0 - sp4C);
}
@@ -238,7 +238,7 @@ void func_8038AE2C(Actor *this) {
func_80328B8C(this, 6, 0.99f, 1);
func_802D09B8(this, 2);
}
if (func_8031FF1C(func_8038A6DC(this))) {
if (fileProgressFlag_get(chWarpCauldron_getFileProgressFlagIndex(this))) {
func_8038A704(this);
func_802D09B8(this, 2);
func_8038A96C(this, 2);
@@ -254,10 +254,10 @@ void func_8038AE2C(Actor *this) {
this->unk10_12 = 1;
func_8038AB90(this, 5, 1, 0, 0.0f);
}
if (!func_8031FF1C(0xF5) && func_8031FF1C(func_8038A6EC(this))) {
if (!fileProgressFlag_get(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET) && fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))) {
if (func_802D677C(-1) != map_get()) {
func_80311480(0xF7A, 4, NULL, NULL, NULL, NULL);
func_80320004(0xF5, 1);
fileProgressFlag_set(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET, 1);
}
}
}
@@ -275,12 +275,12 @@ void func_8038AE2C(Actor *this) {
func_8038A96C(this, 1);
func_802BAFE4(D_80393620[this->unkF4_8 - 1].unk3);
func_802D09B8(this, 2);
phi_a0 = (func_8031FF1C(func_8038A6EC(this)) != 0) ? SFX_107_CAULDRON_ACTIVATION_1 : SFX_108_CAULDRON_ACTIVATION_2;
func_8030E510(phi_a0, 0x7D00);
if (!func_8031FF1C(0xF5) && !func_8031FF1C(func_8038A6EC(this))) {
phi_a0 = (fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this)) != 0) ? SFX_107_CAULDRON_ACTIVATION_1 : SFX_108_CAULDRON_ACTIVATION_2;
func_8030E510(phi_a0, 32000);
if (!fileProgressFlag_get(FILEPROG_F5_COMPLETED_A_WARP_CAULDRON_SET) && !fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))) {
func_80311480(0xF79, 4, NULL, NULL, NULL, NULL);
}
if (func_8031FF1C(func_8038A6EC(this))){
if (fileProgressFlag_get(chWarpCauldron_getPairedFileProgressFlagIndex(this))){
switch(this->unkF4_8){
case 2://L8038B204
func_802D6310(2.0f, MAP_6A_GL_TTC_AND_CC_PUZZLE, 0x62, 0x22, 0);
@@ -326,7 +326,7 @@ void func_8038AE2C(Actor *this) {
this->unk38_0 = (sp3C & 1) ? TRUE : FALSE;
if (actor_animationIsAt(this, 0.95f)) {
func_8038A704(this);
func_80320004(func_8038A6DC(this), 1);
fileProgressFlag_set(chWarpCauldron_getFileProgressFlagIndex(this), 1);
func_8028F918(0);
this->unk1C[2] = 4.0f;
}
@@ -338,7 +338,7 @@ void func_8038AE2C(Actor *this) {
this->unk1C[2] = this->unk1C[2] - 1.0f;
} else {
func_8038AB90(this, 5, 1, 0, 0.0f);
func_8038AB90(this, 4, 2, 0xA6, 2.6f);
func_8038AB90(this, 4, 2, SFX_A6_MAGICAL_FINISH, 2.6f);
}
func_8038A96C(this, 3);
break;
@@ -384,14 +384,14 @@ void func_8038AE2C(Actor *this) {
break;
case 6: //L8038B64C
if (func_8038A690(this) && !func_8031FF1C(0xF3)) {
func_80311480(0xFAD, 0xA, this->position, NULL, func_8038ADC0, NULL);
if (func_8038A690(this) && !fileProgressFlag_get(FILEPROG_F3_MET_DINGPOT)) {
func_80311480(0xFAD, 0xA, this->position, NULL, __chWarpCauldron_dingpotDialogCallback, NULL);
}
this->unk38_0 = TRUE;
sp3C = 0;
if (func_8031FF1C(0xFC)){
if(jiggyscore_total() == 0x64){
if (fileProgressFlag_get(FILEPROG_FC_DEFEAT_GRUNTY)){
if(jiggyscore_total() == 100){
sp3C = 1;
}
}
@@ -429,12 +429,12 @@ void func_8038AE2C(Actor *this) {
this->unk1C[1] = (f32)this->marker->unk14_21;
}
Actor *func_8038B898(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *chWarpCauldron_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Actor *this;
s32 sp3C[4];
this = marker_getActor(marker);
if(this->modelCacheIndex == 0x23B) {
if(this->modelCacheIndex == ACTOR_23B_DINGPOT) {
func_8033A45C(3, this->unk38_0 ? TRUE : FALSE);
func_8033A45C(4, this->unk38_0 ? FALSE : TRUE);
}

View File

@@ -678,7 +678,7 @@ void lair_func_8038CF18(void)
}
else
{
if (func_8031FF1C(BKPROG_A6_FURNACE_FUN_COMPLETE))
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE))
func_8038D670(FFA_8_FURNACE_FUN_COMPLETE);
else
func_8038D670(FFA_1_UNK);
@@ -1012,11 +1012,11 @@ void func_8038D670(enum FF_Action next_state) {
break;
case FFA_8_FURNACE_FUN_COMPLETE: //L8038DC00
if (func_8031FF1C(0xA6) == 0) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE) == 0) {
func_8025A55C(0, 0x1388, 0xB);
func_8025AB00();
func_8025A70C(JINGLE_DOOR_OF_GRUNTY_OPENED);
func_80320004(0xA6, TRUE);
fileProgressFlag_set(FILEPROG_A6_FURNACE_FUN_COMPLETE, TRUE);
func_803204E4(0, FALSE);
func_803204E4(0xA6, TRUE);
func_803204E4(0xA7, TRUE);
@@ -1238,9 +1238,9 @@ void lair_func_8038E0B0(void) {
func_802FACA4(0x14);
func_802FACA4(0x16);
if (sp38 != FFTT_0_NIL) {
sp28 = sp38 + 0x54;
if (!func_8031FF1C(sp28) && func_80311480(sp38 + 0x101E, 0, NULL, NULL, NULL, NULL)) {
func_80320004(sp28, TRUE);
sp28 = sp38 - 1 + FILEPROG_55_FF_BK_SQUARE_INSTRUCTIONS;
if (!fileProgressFlag_get(sp28) && func_80311480(sp38 + 0x101E, 0, NULL, NULL, NULL, NULL)) {
fileProgressFlag_set(sp28, TRUE);
}
if ((sp38 == FFTT_6_SKULL) && (item_getCount(ITEM_16_LIFE) == 1)) {
func_80356540(0xAB);

View File

@@ -16,9 +16,9 @@ typedef struct {
}ActorLocal_lair_86F0;
typedef struct {
u8 unk0;
u8 unk1;
u16 unk2;
u8 cost;
u8 size_bits;
u16 progress_flag;
}Struct_lair_86F0_0;
void func_8038F350(Actor *this, s32 next_state);
@@ -28,17 +28,17 @@ void lair_func_8038F924(Actor *this);
ActorInfo D_803947B0 = { 0x1EB, 0x3B7, 0x48B, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0};
ActorInfo D_803947D4 = { 0x1EB, 0x3BC, 0x538, 0x1, NULL, lair_func_8038F924, func_80326224, func_80325888, 0, 0, 0.0f, 0};
Struct_lair_86F0_0 D_803947F8[0xb] ={
{0x01, 0x1, 0x5D},
{0x02, 0x2, 0x5E},
{0x05, 0x3, 0x60},
{0x07, 0x3, 0x63},
{0x08, 0x4, 0x66},
{0x09, 0x4, 0x6A},
{0x0A, 0x4, 0x6E},
{0x0C, 0x4, 0x72},
{0x0F, 0x4, 0x76},
{0x19, 0x5, 0x7A},
{0x04, 0x3, 0x7F}
{ 1, 0x1, FILEPROG_5D_MM_PUZZLE_PIECES_PLACED},
{ 2, 0x2, FILEPROG_5E_TCC_PUZZLE_PIECES_PLACED},
{ 5, 0x3, FILEPROG_60_CC_PUZZLE_PIECES_PLACED},
{ 7, 0x3, FILEPROG_63_BGS_PUZZLE_PIECES_PLACED},
{ 8, 0x4, FILEPROG_66_FP_PUZZLE_PIECES_PLACED},
{ 9, 0x4, FILEPROG_6A_GV_PUZZLE_PIECES_PLACED},
{10, 0x4, FILEPROG_6E_MMM_PUZZLE_PIECES_PLACED},
{12, 0x4, FILEPROG_72_RBB_PUZZLE_PIECES_PLACED},
{15, 0x4, FILEPROG_76_CCW_PUZZLE_PIECES_PLACED},
{25, 0x5, FILEPROG_7A_DOG_PUZZLE_PIECES_PLACED},
{ 4, 0x3, FILEPROG_7F_DOUBLE_HEALTH_PUZZLE_PIECES_PLACED}
};
s32 D_80394824[3] = {0xff, 0xff, 0};
struct31s D_80394830 = {
@@ -51,11 +51,11 @@ struct31s D_80394830 = {
/* .code */
bool func_8038EAE0(s32 arg0) {
return func_8031FF44(D_803947F8[arg0 -1].unk2, D_803947F8[arg0 -1].unk1) == D_803947F8[arg0 -1].unk0;
return fileProgressFlag_getN(D_803947F8[arg0 -1].progress_flag, D_803947F8[arg0 -1].size_bits) == D_803947F8[arg0 -1].cost;
}
s32 func_8038EB24(Actor *this){
return (this->unkF4_8 != 0 && this->unkF4_8 < 0xC) ? D_803947F8[this->unkF4_8 - 1].unk0 : 0;
return (this->unkF4_8 != 0 && this->unkF4_8 < 0xC) ? D_803947F8[this->unkF4_8 - 1].cost : 0;
}
bool func_8038EB58(Actor *this){
@@ -72,7 +72,7 @@ s32 func_8038EB84(Actor *this){
void func_8038EB94(void){
func_802FAFD4(ITEM_14_HEALTH, 0x417);
func_802FAFC0(ITEM_14_HEALTH, COMUSIC_2B_DING_B);
func_80320004(BKPROG_B9_DOUBLE_HEALTH, TRUE);
fileProgressFlag_set(FILEPROG_B9_DOUBLE_HEALTH, TRUE);
func_80347958();
func_803463D4(ITEM_14_HEALTH, 0);
gcpausemenu_80314AC8(1);
@@ -83,7 +83,7 @@ void func_8038EBEC(ActorMarker *marker) {
u32 temp_t6;
this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
if (this->unkF4_8 < 0xAU) {
if (this->unkF4_8 < 0xA) {
levelSpecificFlags_set(func_8038EB84(this), TRUE);
return;
}
@@ -189,7 +189,7 @@ void func_8038EF58(ActorMarker *marker) {
func_8028E6EC(2);
func_8028F918(0);
func_8028F94C(4, sp24);
func_8038F350(this, func_8031FF1C(0x17) ? 4 : 3);
func_8038F350(this, fileProgressFlag_get(FILEPROG_17_HAS_HAD_ENOUGH_JIGSAW_PIECES) ? 4 : 3);
}
void func_8038EFD8(Actor *this) {
@@ -260,18 +260,18 @@ void func_8038F250(Actor *this){
if( (this->unkF4_8 >= 2)
&& (local->unk4 > 0)
&& !func_8038EB58(this)
&& !func_8031FF1C(0xDF)
&& !fileProgressFlag_get(FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES)
) {
if (func_80311480(0xF7C, 2, NULL, NULL, NULL, NULL)) {
func_80320004(0xDF, TRUE);
fileProgressFlag_set(FILEPROG_DF_CAN_REMOVE_ALL_PUZZLE_PIECES, TRUE);
}
} else if ((this->unkF4_8 >= 3)
&& (local->unk4 >= 2)
&& !func_8038EB58(this)
&& !func_8031FF1C(0xE0)
&& !fileProgressFlag_get(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES)
){
if(func_80311480(0xF7D, 2, NULL, NULL, NULL, NULL)) {
func_80320004(0xE0, TRUE);
fileProgressFlag_set(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES, TRUE);
}
}
}
@@ -300,13 +300,13 @@ void func_8038F350(Actor *this, s32 next_state){
func_803115C4(0xF80);
func_803115C4(0xF7F);
if (item_getCount(ITEM_26_JIGGY_TOTAL) > 0) {
func_80311480(func_8031FF1C(0x16) ? 0xF5A : 0xF59, 6, sp50, this->marker, func_8038F078, NULL);
func_80320004(0x17, 1);
func_80311480(fileProgressFlag_get(FILEPROG_16_STOOD_ON_JIGSAW_PODIUM) ? 0xF5A : 0xF59, 6, sp50, this->marker, func_8038F078, NULL);
fileProgressFlag_set(FILEPROG_17_HAS_HAD_ENOUGH_JIGSAW_PIECES, 1);
} else {
func_80311480(0xF58, 6, sp50, this->marker, func_8038F078, NULL);
}
func_80320004(0x16, 1);
func_80320004(0xA7, 1);
fileProgressFlag_set(FILEPROG_16_STOOD_ON_JIGSAW_PODIUM, 1);
fileProgressFlag_set(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 1);
break;
case 8: //L8038F4AC
@@ -317,7 +317,7 @@ void func_8038F350(Actor *this, s32 next_state){
func_8038F1EC(this, temp_s1, 0);
local->unk4--;
local->unk0 &= ~(1 << temp_s1);
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1);
fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_803463F4(ITEM_26_JIGGY_TOTAL, 1);
}
break;
@@ -330,7 +330,7 @@ void func_8038F350(Actor *this, s32 next_state){
temp_s1 = func_8038F0EC(this);
func_8038F1EC(this, temp_s1, 1);
local->unk0 |= (1 << temp_s1);
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1);
fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_803463F4(ITEM_26_JIGGY_TOTAL, -1);
func_8038F250(this);
}
@@ -353,7 +353,7 @@ void func_8038F350(Actor *this, s32 next_state){
local->unk0 |= (1 << temp_s1);
func_803463F4(ITEM_26_JIGGY_TOTAL, -1);
}
func_80320044(D_803947F8[this->unkF4_8 - 1].unk2, local->unk4, D_803947F8[this->unkF4_8 - 1].unk1);
fileProgressFlag_setN(D_803947F8[this->unkF4_8 - 1].progress_flag, local->unk4, D_803947F8[this->unkF4_8 - 1].size_bits);
func_8038F250(this);
}
break;
@@ -391,12 +391,12 @@ void lair_func_8038F894(Actor *this, s32 arg1) {
return;
}
func_8025A70C(COMUSIC_2C_BUZZER);
if (func_8031FF1C(0xDE) != 0) {
if (fileProgressFlag_get(FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES) != 0) {
func_8038F350(this, 1);
return;
}
func_80311480(0xFBC, 4, NULL, NULL, NULL, NULL);
func_80320004(0xDE, 1);
fileProgressFlag_set(FILEPROG_DE_USED_ALL_YOUR_PUZZLE_PIECES, 1);
}
void lair_func_8038F924(Actor *this) {
@@ -417,7 +417,7 @@ void lair_func_8038F924(Actor *this) {
if (!this->unk16C_4) {
// temp_v0 = &D_803947F8[this->unkF4_8 - 1];
sp64 = func_8031FF44(D_803947F8[this->unkF4_8 - 1].unk2, D_803947F8[this->unkF4_8 - 1].unk1);
sp64 = fileProgressFlag_getN(D_803947F8[this->unkF4_8 - 1].progress_flag, D_803947F8[this->unkF4_8 - 1].size_bits);
local->unk0 = 0;
local->unk4 = 0;
local->unk8 = (func_8038ECA8(this->marker)) ? 0xff : 1;
@@ -432,11 +432,11 @@ void lair_func_8038F924(Actor *this) {
this->unk16C_4 = TRUE;
if (this->unkF4_8 == 9) {
this->unk1C[0] = 8.0f;
if (!func_8031FF1C(0x53)) {
if (!fileProgressFlag_get(FILEPROG_53_CCW_PUZZLE_PODIUM_SWITCH_PRESSED)) {
marker_despawn(this->marker);
return;
}
if (!func_8031FF1C(0x54)) {
if (!fileProgressFlag_get(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE)) {
func_802C9334(0x20, this);
func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 0x7FFF);
func_80324D2C(2.1f, COMUSIC_43_ENTER_LEVEL_GLITTER);
@@ -445,7 +445,7 @@ void lair_func_8038F924(Actor *this) {
}
}
if ((this->unkF4_8 == 9) && !func_8031FF1C(0x54)) {
if ((this->unkF4_8 == 9) && !fileProgressFlag_get(FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE)) {
this->yaw += this->unk1C[0];
while(this->yaw >= 360.0f){
this->yaw -= 360.0f;
@@ -477,13 +477,13 @@ void lair_func_8038F924(Actor *this) {
this->unk138_24 = TRUE;
}
if (func_80329530(this, 300)) {
if ((this->unkF4_8 == 0xA) && !func_8031FF1C(0xF6)) {
phi_a0 = (item_getCount(ITEM_26_JIGGY_TOTAL) < D_803947F8[this->unkF4_8 - 1].unk0) ? 0xFAB : 0xFC0;
if ((this->unkF4_8 == 0xA) && !fileProgressFlag_get(FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM)) {
phi_a0 = (item_getCount(ITEM_26_JIGGY_TOTAL) < D_803947F8[this->unkF4_8 - 1].cost) ? 0xFAB : 0xFC0;
if (func_80311480(phi_a0, 0, NULL, NULL, NULL, NULL)) {
func_80320004(0xF6, TRUE);
fileProgressFlag_set(FILEPROG_F6_SEEN_DOOR_OF_GRUNTY_PUZZLE_PODIUM, TRUE);
}
} else if (this->unkF4_8 == 1) {
func_8035644C(0xA7);
func_8035644C(FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT);
}
}
if (func_8038ECA8(this->marker) && this->unk138_24 && !func_8038EB58(this) && (func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT)) {
@@ -497,7 +497,7 @@ void lair_func_8038F924(Actor *this) {
lair_func_8038F894(this, 5);
} else if (sp7C[FACE_BUTTON(BUTTON_B)] == 1) {
func_8038F350(this, 1);
} else if ((sp6C[0] == 1) && func_8031FF1C(0xE0)) {
} else if ((sp6C[SIDE_BUTTON(BUTTON_Z)] == 1) && fileProgressFlag_get(FILEPROG_E0_CAN_PLACE_ALL_PUZZLE_PIECES)) {
lair_func_8038F894(this, 6);
} else if (sp7C[FACE_BUTTON(BUTTON_C_DOWN)] == 1) {
if (local->unk4) {

View File

@@ -28,7 +28,7 @@ s32 func_80390084(void) {
s32 phi_s1;
for(phi_s0 = 0, phi_s1 = 0; phi_s0 < 3; phi_s0++){
if (func_8031FF1C(phi_s0 + 0xAD)) {
if (fileProgressFlag_get(phi_s0 + 0xAD)) {
phi_s1++;
}
}
@@ -44,8 +44,8 @@ void func_803900EC(ActorMarker *marker, enum asset_e text_id, s32 arg2){
sp1C = marker->unk14_20 - 0x16D;
func_8028F918(0);
if (!func_8031FF1C(sp1C + 0xAD)) {
func_80320004(sp1C + 0xAD, 1);
if (!fileProgressFlag_get(sp1C + 0xAD)) {
fileProgressFlag_set(sp1C + 0xAD, 1);
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
}
}
@@ -63,7 +63,7 @@ void func_80390174(ActorMarker *marker, s32 arg1) {
this = marker_getActor(marker);
sp28 = this->marker->unk14_20 - 0x16D;
func_8028F94C(2, this->position);
if (func_8031FF1C(sp28 + 0xAD)) {
if (fileProgressFlag_get(sp28 + 0xAD)) {
func_80311480(sp28 + 0xF83, 0xE, this->position, this->marker, func_803900EC, lair_func_803900DC);
return;
}
@@ -106,7 +106,7 @@ void func_803902B8(Actor *this) {
}
this->unk38_0 = sp58;
sp58 = func_80259384(this->position, sp5C, 400.0f);
if (func_8031FF1C(sp54 + 0xAD)) {
if (fileProgressFlag_get(sp54 + 0xAD)) {
func_8024E55C(0, sp3C);
sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04();
}

View File

@@ -73,7 +73,7 @@ void func_803920E0(Actor *this, enum sfx_e sfx_id, f32 arg2, f32 arg3, s32 arg4,
void func_8039217C(Actor *this) {
if (!this->initialized) {
this->initialized = TRUE;
if (func_8031FF1C(0xA6)) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker);
return;
}

View File

@@ -53,13 +53,13 @@ void func_80392690(ActorMarker *marker, enum asset_e text_id, s32 arg2){
void func_80392700(Actor *this) {
if (mapSpecificFlags_get(4)) {
if (func_8031FF1C(0xF4)) {
if (fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE)) {
func_80311480(0x1031, 0xF, this->position, this->marker, func_80392664, func_80392610);
} else {
func_802BC280();
set_camera_to_node(0x1F);
func_80311480(0x102C, 0xE, this->position, this->marker, func_80392664, func_80392610);
func_80320004(0xF4, 1);
fileProgressFlag_set(FILEPROG_F4_ENTER_FF_CUTSCENE, TRUE);
}
mapSpecificFlags_set(4, 0);
}
@@ -91,13 +91,13 @@ void func_80392700(Actor *this) {
void func_80392918(Actor *this) {
if (!this->unk16C_4) {
if ((func_8031FF1C(0xF4) != 0) && (func_8028E4A4() == 2)) {
if (fileProgressFlag_get(FILEPROG_F4_ENTER_FF_CUTSCENE) && (func_8028E4A4() == 2)) {
mapSpecificFlags_set(4, 1);
}
this->unk4C = 400.0f;
this->marker->unk2C_2 = FALSE;
this->unk16C_4 = TRUE;
if (func_8031FF1C(0xA6) != 0) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker);
}
return;

View File

@@ -31,7 +31,7 @@ void func_80392B6C(Actor *this) {
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
if (func_8031FF1C(0xA6) != 0) {
if (fileProgressFlag_get(FILEPROG_A6_FURNACE_FUN_COMPLETE)) {
marker_despawn(this->marker);
return;
}