document: fileprogresss related code, replaced magic numbers with constants where applicable

This commit is contained in:
Bl00D4NGEL
2024-10-01 23:48:12 +02:00
parent 18a88b3436
commit 7984c313a8
21 changed files with 218 additions and 141 deletions

View File

@@ -255,7 +255,7 @@ void func_80388FC0(Actor *this){
ActorLocal_Tiptup *local;
local = (ActorLocal_Tiptup *)&this->local;
fileProgressFlag_setN(0, local->unkA, 2);
fileProgressFlag_setN(FILEPROG_0_UNKNOWN, local->unkA, 2);
vector_free(local->unk4);
}
@@ -291,7 +291,7 @@ void chTiptup_update(Actor *this){
unqPtr->unk4 = vector_new(sizeof(Struct_BGS_2270_0s), 8);
unqPtr->unk8 = 0;
unqPtr->unk9 = 0;
unqPtr->unkA = fileProgressFlag_getN(0,2);
unqPtr->unkA = fileProgressFlag_getN(FILEPROG_0_UNKNOWN, 2);
unqPtr->unkB = 0;
unqPtr->unkC = 0.0f;
if(volatileFlag_get(VOLATILE_FLAG_2_FF_IN_MINIGAME)){

View File

@@ -8,7 +8,7 @@ typedef struct{
u8 unk3;
s16 unk4;
s16 unk6;
s16 unk8;
s16 unk8; // enum file_progress_e
s16 unkA;
}Struct_CCW_1B20_0;

View File

@@ -11,8 +11,8 @@ typedef struct {
typedef struct {
s16 map_id;
s16 unk2;
s16 unk4;
s16 unk2; // enum file_progress_e
s16 unk4; // enum file_progress_e
s16 unk6;
Struct_CCW_3310_1 *unk8;
s16 unkC;

View File

@@ -18,7 +18,7 @@ ActorInfo chXmasTree = {
Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker);
func_8033A45C(5, this->unk38_31);
func_8033A45C(6, fileProgressFlag_get(0x13) && !func_8033A0F0(5));
func_8033A45C(6, fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME) && !func_8033A0F0(5));
return actor_draw(marker, gfx, mtx, vtx);
}
@@ -100,7 +100,7 @@ void chXmasTree_update(Actor *this){
}
__spawnQueue_add_0(__chXmasTree_spawnSwitch);
__spawnQueue_add_1((GenFunction_1)__chXmasTree_spawnStar, reinterpret_cast(s32, this->marker));
if(fileProgressFlag_get(0x13)){
if(fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME)){
__chXmasTree_80386F84(this);
mapSpecificFlags_set(2, FALSE);
}
@@ -115,7 +115,7 @@ void chXmasTree_update(Actor *this){
switch(this->state){
case 1: // L80387268
__chXmasTree_80386EF4(this, 0);
if(fileProgressFlag_get(0x13)){
if(fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME)){
__chXmasTree_80386F84(this);
}
break;

View File

@@ -319,7 +319,7 @@ void func_8038AC48(LetterFloorTile *arg0) {
D_8038D720.unk8 = 2U;
D_8038D720.unkC = 0.0f;
mapSpecificFlags_set(1, TRUE);
fileProgressFlag_set(0xFA, TRUE);
fileProgressFlag_set(FILEPROG_FA_UNKNOWN, TRUE);
func_8030E2C4(D_8038D720.sfxsourceIdx);
func_8038A258(2);
} else if (var_v0 & 0xE) {
@@ -612,11 +612,11 @@ u32 func_8038B600(void) {
return var_a3;
}
void TTC_func_8038B6D4(s32 arg0, s32 secretCodeIndex, s32 arg2, enum file_progress_e prog_id, s32 prog_val, s32 prog_bit_size, enum file_progress_e arg6){
void TTC_func_8038B6D4(s32 arg0, s32 secretCodeIndex, s32 arg2, enum file_progress_e progress_flag, s32 prog_val, s32 prog_bit_size, enum file_progress_e arg6){
if( ((arg2 + 20 == secretCodesTable[secretCodeIndex].id) && volatileFlag_get(arg2))
|| arg0 == 3
){
fileProgressFlag_setN(prog_id, prog_val, prog_bit_size);
fileProgressFlag_setN(progress_flag, prog_val, prog_bit_size);
if(arg6){
fileProgressFlag_set(arg6, TRUE);
}

View File

@@ -195,7 +195,7 @@ void __baMarker_8028BAB0(enum jiggy_e jiggy_id, s32 arg1, s32 arg2, s32 arg3){
}
// arg1 - if bit 0x400000 is set, it's a volatile flag, else it's a file progress flag (for witch switches)
void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6){
void __baMarker_8028BB1C(s32 arg0, enum file_progress_e progress_flag, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6){
u32 sp24;
if(arg0 != 1)
return;
@@ -203,9 +203,9 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a
if(func_8028ECAC() == 1)
return;
// if bit 0x400000 of arg1 is set, it's a volatile flag, else it's a file progress flag (for witch switches)
if(arg1 & 0x400000){
sp24 = arg1 + 0xFFC00000; // weird truncing
// if bit 0x400000 of fileProgressFlag is set, it's a volatile flag, else it's a file progress flag (for witch switches)
if(progress_flag & 0x400000){
sp24 = progress_flag + 0xFFC00000; // weird truncing
if(!volatileFlag_get(sp24)){
volatileFlag_set(sp24, 1);
func_8030E6D4(SFX_90_SWITCH_PRESS);
@@ -214,8 +214,8 @@ void __baMarker_8028BB1C(s32 arg0, u32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 a
}
}
else{//L8028BBB8
if(!fileProgressFlag_get(arg1)){
fileProgressFlag_set(arg1, 1);
if(!fileProgressFlag_get(progress_flag)){
fileProgressFlag_set(progress_flag, 1);
func_8030E6D4(SFX_90_SWITCH_PRESS);
volatileFlag_set(VOLATILE_FLAG_BF, 1);
func_802D6264(1.0f, arg2, arg3, arg4, arg5, arg6);

View File

@@ -257,7 +257,7 @@ void chSnowman_update(Actor *this){
else if(
map_get() != MAP_27_FP_FREEZEEZY_PEAK
|| func_8038DD34(local->unk0) == 0
|| fileProgressFlag_get(0x13)
|| fileProgressFlag_get(FILEPROG_13_COMPLETED_TWINKLIES_MINIGAME)
){//L802E2318
if(0.0 < local->unk4){
if( (globalTimer_getTime() & 1)

View File

@@ -6,7 +6,7 @@
extern void func_8030DBFC(u32, f32, f32, f32);
extern bool func_80309DBC(f32[3], f32[3], f32, f32 sp54[3], s32, s32);
extern void fileProgressFlag_set(s32, bool);
extern void fileProgressFlag_set(enum file_progress_e, bool);
extern void sfxsource_set_fade_distances(u8, f32, f32);
extern void sfxsource_set_position(u8, f32[3]);
extern void func_8030E2C4(u8);

View File

@@ -428,7 +428,7 @@ void chMumbo_update(Actor *this) {
case 7: //L802D2704
chMumbo_func_802D186C(this);
if (volatileFlag_get(FILEPROG_11_HAS_MET_MUMBO) == 0) {
if (volatileFlag_get(VOLATILE_FLAG_11) == 0) {
if (map_get() == MAP_7A_GL_CRYPT) {
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
} else {
@@ -436,7 +436,7 @@ void chMumbo_update(Actor *this) {
}
if (sp48 != 0) {
gcdialog_showText(ASSET_DA7_DIALOG_MUMBO_CCW_SUMMER, 7, NULL, NULL, NULL, NULL);
volatileFlag_set(FILEPROG_11_HAS_MET_MUMBO, TRUE);
volatileFlag_set(VOLATILE_FLAG_11, TRUE);
}
}
actor_loopAnimation(this);
@@ -444,7 +444,7 @@ void chMumbo_update(Actor *this) {
case 8: //L802D2790
chMumbo_func_802D186C(this);
if (volatileFlag_get(FILEPROG_12_HAS_TRANSFORMED_BEFORE) == 0) {
if (volatileFlag_get(VOLATILE_FLAG_12) == 0) {
if (map_get() == MAP_7A_GL_CRYPT) {
sp48 = chMumbo_withinHorzDistToPlayer(0x453, 0, 0xBC);
} else {
@@ -452,7 +452,7 @@ void chMumbo_update(Actor *this) {
}
if (sp48 != 0) {
gcdialog_showText(ASSET_DA8_DIALOG_MUMBO_CCW_AUTUMN, 7, NULL, NULL, NULL, NULL);
volatileFlag_set(FILEPROG_12_HAS_TRANSFORMED_BEFORE, TRUE);
volatileFlag_set(VOLATILE_FLAG_12, TRUE);
}
}
actor_loopAnimation(this);

View File

@@ -13,7 +13,7 @@ extern void func_802EE6CC(f32[3], f32[3], s32[4], s32, f32, f32, s32, s32, s32);
extern void ml_vec3f_assign(f32[3], f32, f32, f32);
extern void func_802EE2E8(Actor *arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6);
extern void func_80319EA4(void);
extern void fileProgressFlag_set(s32, bool);
extern void fileProgressFlag_set(enum file_progress_e, bool);
void func_802D3D54(Actor *this);
void func_802D3DA4(Actor *this);
@@ -50,7 +50,7 @@ s32 D_8036768C = 0;
s32 D_80367690 = 0;
s32 D_80367694 = 0; //enum map_e
s32 D_80367698 = 0;
s32 D_8036769C = 0; //enum file_progress_e
enum file_progress_e D_8036769C = 0;
s32 D_803676A0 = 0; //enum actor_e
f32 D_803676A4 = 0.0f;
s32 D_803676A8 = 0;
@@ -59,26 +59,26 @@ u8 D_803676AC = 0;
ActorAnimationInfo D_803676B0[] = {
{0x000, 0.0f},
{0x000, 0.0f},
{0x0D4, 0.15f},
{0x0D5, 0.5f},
{ASSET_D4_ANIM_SWITCH_DOWN, 0.15f},
{ASSET_D5_ANIM_SWITCH_UP, 0.5f},
{0x000, 0.0f},
{0x000, 0.0f},
{0x0D4, 0.15f},
{0x0D5, 0.5f},
{0x0D5, 1e+8f},
{0x1E3, 0.73f},
{0x1E3, 1e+8f},
{0x1F0, 1.0f},
{0x1F1, 0.7f},
{0x1F1, 1e+8f},
{0x1F2, 1.0f},
{0x1F3, 0.4f},
{0x1F3, 1e+8f},
{ASSET_D4_ANIM_SWITCH_DOWN, 0.15f},
{ASSET_D5_ANIM_SWITCH_UP, 0.5f},
{ASSET_D5_ANIM_SWITCH_UP, 1e+8f},
{ASSET_1E3_ANIM_UNKNOWN, 0.73f},
{ASSET_1E3_ANIM_UNKNOWN, 1e+8f},
{ASSET_1F0_ANIM_UNKNOWN, 1.0f},
{ASSET_1F1_ANIM_UNKNOWN, 0.7f},
{ASSET_1F1_ANIM_UNKNOWN, 1e+8f},
{ASSET_1F2_ANIM_UNKNOWN, 1.0f},
{ASSET_1F3_ANIM_UNKNOWN, 0.4f},
{ASSET_1F3_ANIM_UNKNOWN, 1e+8f},
{0x000, 0.0f},
{0x217, 1e+8f},
{0x217, 0.3f},
{0x217, 1e+8f},
{0x217, 0.3f}
{ASSET_217_ANIM_UNKNOWN, 1e+8f},
{ASSET_217_ANIM_UNKNOWN, 0.3f},
{ASSET_217_ANIM_UNKNOWN, 1e+8f},
{ASSET_217_ANIM_UNKNOWN, 0.3f}
};
ActorInfo D_80367760 = { 0x26E, 0x2D9, 0x3B4, 0x1, NULL, func_802D3D54, func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
@@ -99,7 +99,20 @@ ActorInfo D_80367958 = { MARKER_162_BGS_WITCH_SWITCH, ACTOR_257_BGS_WITCH_SWITCH
ActorInfo D_8036797C = { MARKER_161_GV_WITCH_SWITCH, ACTOR_256_GV_WITCH_SWITCH, ASSET_4DC_MODEL_WITCH_SWITCH, 0x1, D_803676B0, func_802D4C0C, func_80326224, actor_draw, 0, 0, 0.0f, 0};
s32 D_803679A0[4] = {0x87, 0x87, 0x87, 0xA0};
s16 D_803679B0[] = {0x5, 0x90, 0xA, 0x93, 0xF,0x92, 0x14, 0x91, 0x19, 0x94, -1};
s16 D_803679B0[] = {
FILEPROG_5_BLUE_EGG_TEXT,
FILEPROG_90_PAID_TERMITE_COST,
FILEPROG_A_HONEYCOMB_TEXT,
FILEPROG_93_PAID_CROC_COST,
FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER,
FILEPROG_92_PAID_WALRUS_COST,
FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER,
FILEPROG_91_PAID_PUMPKIN_COST,
FILEPROG_19_MMM_WITCH_SWITCH_JIGGY_PRESSED,
FILEPROG_94_PAID_BEE_COST,
-1
};
Struct_core2_4C020_0 D_803679C8[] = {
{0, 600, 1200, 1900},
{-580, 0, 1550, 2200},
@@ -648,7 +661,7 @@ void func_802D4A9C(Actor *this, s32 arg1){
func_802D4928(this, arg1, 2, 3);
}
void func_802D4AC0(Actor *this, s32 arg1, s32 arg2) {
void func_802D4AC0(Actor *this, s32 arg1, enum file_progress_e arg2) {
if (fileProgressFlag_get(arg2)) {
if (arg1 & 0x800000) {
fileProgressFlag_set(arg1 + 0xFF800000, 1);

View File

@@ -15,8 +15,8 @@ ActorInfo D_80367E70= {
/* .code */
void func_802DA9A0(ActorMarker *caller, enum asset_e text_id, s32 arg2){
s32 flag;
s32 tmp;
enum file_progress_e flag;
enum file_progress_e tmp;
if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){
flag = FILEPROG_15_ENTER_MMM_TEXT;
}
@@ -32,9 +32,9 @@ void func_802DA9A0(ActorMarker *caller, enum asset_e text_id, s32 arg2){
}
void func_802DAA14(Actor *this){
s32 flag;
s32 tmp;
s32 text_id;
enum file_progress_e flag;
s32 tmp; // file_progress_e OR asset_e
enum asset_e text_id;
if(volatileFlag_get(VOLATILE_FLAG_1) || volatileFlag_get(VOLATILE_FLAG_1F_IN_CHARACTER_PARADE)){
marker_despawn(this->marker);
@@ -69,13 +69,13 @@ void func_802DAA14(Actor *this){
if(!this->has_met_before){
if(level_get() == LEVEL_A_MAD_MONSTER_MANSION){
text_id = 0xadc;
text_id = ASSET_ADC_DIALOG_UNKNOWN;
}
else{
if(map_get() == MAP_69_GL_MM_LOBBY)
tmp = 0xf66;
tmp = ASSET_F66_DIALOG_UNKNOWN;
else
tmp = 0xf67;
tmp = ASSET_F67_DIALOG_UNKNOWN;
text_id = tmp;
}
gcdialog_showText(text_id, 4, NULL, this->marker, func_802DA9A0, NULL);

View File

@@ -8,7 +8,7 @@ extern void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2);
extern s32 fileProgressFlag_get(s32);
extern s32 fileProgressFlag_getN(s32 offset, s32 numBits);
extern void func_8031FFAC(void);
extern void fileProgressFlag_set(s32 index, s32 set);
extern void fileProgressFlag_set(enum file_progress_e index, s32 set);
extern void ml_vec3h_to_vec3f(f32 *, s32);
extern NodeProp *func_80304ED0(void*, f32 *);
extern void func_8031CD44(s32, s32, f32, f32, s32);
@@ -56,9 +56,9 @@ bool cutscene_skipGameOverCutsceneCheck(void) {
sp24 = func_8024E698(0);
if (mapSpecificFlags_get(0) != 0) {
fileProgressFlag_set(0xE1, 1);
fileProgressFlag_set(FILEPROG_E1_UNKNOWN, 1);
}
if ((sp24 == 1) && fileProgressFlag_get(0xE1) && !gctransition_8030BDC0()) {
if ((sp24 == 1) && fileProgressFlag_get(FILEPROG_E1_UNKNOWN) && !gctransition_8030BDC0()) {
if (!mapSpecificFlags_get(0xC)) {
mapSpecificFlags_set(0xC, TRUE);
func_802DC528(0, 0);
@@ -302,7 +302,7 @@ void warp_gvEnterWaterPyramidUpper(s32 arg0, s32 arg1) {
}
void warp_gvEnterMazePyramid(s32 arg0, s32 arg1) {
if (fileProgressFlag_getN(0xF8, 2) == 3) {
if (fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2) == 3) {
func_8031CC8C(arg0, 0x1401);
}
}

View File

@@ -1,16 +1,17 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "enums.h"
void func_8031FFAC(void);
void fileProgressFlag_set(s32 index, s32 set);
void fileProgressFlag_set(enum file_progress_e index, s32 set);
s32 bitfield_get_bit(u8 *array, s32 index);
s32 bitfield_get_n_bits(u8 *array, s32 offset, s32 numBits);
void bitfield_set_bit(u8 *array, s32 index, s32 set);
void bitfield_set_n_bits(u8 *array, s32 startIndex, s32 set, s32 length);
void volatileFlag_clear(void);
void volatileFlag_set(s32 arg0, s32 arg1);
s32 fileProgressFlag_getN(s32 offset, s32 numBits);
void volatileFlag_set(enum volatile_flags_e index, s32 set);
s32 fileProgressFlag_getN(enum file_progress_e offset, s32 numBits);
void func_8031CE70(f32 *arg0, s32 arg1, s32 arg2);
void ml_vec3h_to_vec3f(f32 *, s32);
void func_8028F3D8(f32 *, f32, void(*)(ActorMarker *), ActorMarker *);
@@ -109,11 +110,11 @@ bool fileProgressFlag_get(enum file_progress_e index) {
return bitfield_get_bit(gFileProgressFlags.unk8, index);
}
s32 fileProgressFlag_getN(s32 offset, s32 numBits) {
s32 fileProgressFlag_getN(enum file_progress_e offset, s32 numBits) {
return bitfield_get_n_bits(gFileProgressFlags.unk8, offset, numBits);
}
s32 fileProgressFlag_getAndSet(s32 index, s32 set) {
s32 fileProgressFlag_getAndSet(enum file_progress_e index, s32 set) {
s32 ret;
ret = fileProgressFlag_get(index);
@@ -131,13 +132,13 @@ void func_8031FFAC(void) {
func_8031FEC0();
}
void fileProgressFlag_set(s32 index, s32 set) {
void fileProgressFlag_set(enum file_progress_e index, s32 set) {
bitfield_set_bit(gFileProgressFlags.unk8, index, set);
func_8031FC40();
func_8031FEC0();
}
void fileProgressFlag_setN(s32 startIndex, s32 set, s32 length) {
void fileProgressFlag_setN(enum file_progress_e startIndex, s32 set, s32 length) {
bitfield_set_n_bits(gFileProgressFlags.unk8, startIndex, set, length);
func_8031FC40();
func_8031FEC0();
@@ -243,15 +244,15 @@ void func_803203A0(void) {
*obscured_addr = func_80320320();
}
s32 volatileFlag_get(s32 index) {
s32 volatileFlag_get(enum volatile_flags_e index) {
return bitfield_get_bit(gVolatileFlags.unk8, index);
}
s32 volatileFlag_getN(s32 index, s32 numBits) {
s32 volatileFlag_getN(enum volatile_flags_e index, s32 numBits) {
return bitfield_get_n_bits(gVolatileFlags.unk8, index, numBits);
}
s32 volatileFlag_getAndSet(s32 index, s32 arg1) {
s32 volatileFlag_getAndSet(enum volatile_flags_e index, s32 arg1) {
s32 temp_v0;
temp_v0 = volatileFlag_get(index);
@@ -268,13 +269,13 @@ void volatileFlag_clear(void) {
func_803203A0();
}
void volatileFlag_set(s32 index, s32 set) {
void volatileFlag_set(enum volatile_flags_e index, s32 set) {
bitfield_set_bit(gVolatileFlags.unk8, index, set);
func_803202D0();
func_803203A0();
}
void volatileFlag_setN(s32 startIndex, s32 set, s32 length) {
void volatileFlag_setN(enum volatile_flags_e startIndex, s32 set, s32 length) {
bitfield_set_n_bits(gVolatileFlags.unk8, startIndex, set, length);
func_803202D0();
func_803203A0();

View File

@@ -6,8 +6,8 @@
typedef struct {
s16 unk0;
s16 unk2;
s16 unk0; // enum volatile_flags_e
s16 unk2; // enum file_progress_e
}Struct_B5040;
void savedata_clear(u8 *savedata);
@@ -15,43 +15,43 @@ s32 savedata_verify(s32 arg0, SaveData *savedata);
/* .data */
Struct_B5040 D_80370A20[] = {
{0x66, 0xFF},
{0x67, 0x100},
{0x68, 0x101},
{0x69, 0x102},
{0x6A, 0x103},
{0x6B, 0x104},
{0x6C, 0x105},
{0x6D, 0x106},
{0x6E, 0x107},
{0x6F, 0x108},
{0x70, 0x109},
{0x71, 0x10A},
{0x72, 0x10B},
{0x7D, 0x10C},
{0x7E, 0x10D},
{0x7F, 0x10E},
{0x80, 0x10F},
{0x81, 0x110},
{0x82, 0x111},
{0x83, 0x112},
{0x84, 0x113},
{0x85, 0x114},
{0x86, 0x115},
{0x87, 0x116},
{0x88, 0x117},
{0x89, 0x118},
{0x8A, 0x119},
{0x8B, 0x11A},
{0x8C, 0x11B},
{0x8D, 0x11C},
{0x8E, 0x11D},
{0x8F, 0x11E},
{0x90, 0x11F},
{0x91, 0x120},
{0x92, 0x121},
{0x93, 0x122},
{0x65, 0x123},
{VOLATILE_FLAG_66_SANDCASTLE_OPEN_DOOR_TWO, FILEPROG_FF_SANDCASTLE_OPEN_DOOR_TWO},
{VOLATILE_FLAG_67_SANDCASTLE_OPEN_DOOR_THREE, FILEPROG_100_SANDCASTLE_OPEN_DOOR_THREE},
{VOLATILE_FLAG_68_SANDCASTLE_OPEN_DOOR_FOUR, FILEPROG_101_SANDCASTLE_OPEN_DOOR_FOUR},
{VOLATILE_FLAG_69_SANDCASTLE_OPEN_DOOR_FIVE, FILEPROG_102_SANDCASTLE_OPEN_DOOR_FIVE},
{VOLATILE_FLAG_6A_SANDCASTLE_OPEN_DOOR_SIX, FILEPROG_103_SANDCASTLE_OPEN_DOOR_SIX},
{VOLATILE_FLAG_6B_SANDCASTLE_OPEN_DOOR_SEVEN, FILEPROG_104_SANDCASTLE_OPEN_DOOR_SEVEN},
{VOLATILE_FLAG_6C_SANDCASTLE_PUZZLE_COMPLETE_CC, FILEPROG_105_SANDCASTLE_PUZZLE_COMPLETE_CC},
{VOLATILE_FLAG_6D_SANDCASTLE_PUZZLE_COMPLETE_BGS, FILEPROG_106_SANDCASTLE_PUZZLE_COMPLETE_BGS},
{VOLATILE_FLAG_6E_SANDCASTLE_PUZZLE_COMPLETE_FP, FILEPROG_107_SANDCASTLE_PUZZLE_COMPLETE_FP},
{VOLATILE_FLAG_6F_SANDCASTLE_PUZZLE_COMPLETE_GV, FILEPROG_108_SANDCASTLE_PUZZLE_COMPLETE_GV},
{VOLATILE_FLAG_70_SANDCASTLE_PUZZLE_COMPLETE_MMM, FILEPROG_109_SANDCASTLE_PUZZLE_COMPLETE_MMM},
{VOLATILE_FLAG_71_SANDCASTLE_PUZZLE_COMPLETE_RBB, FILEPROG_10A_SANDCASTLE_PUZZLE_COMPLETE_RBB},
{VOLATILE_FLAG_72_SANDCASTLE_PUZZLE_COMPLETE_CCC, FILEPROG_10B_SANDCASTLE_PUZZLE_COMPLETE_CCC},
{VOLATILE_FLAG_7D_SANDCASTLE_RAISE_PIPES_TO_CC, FILEPROG_10C_SANDCASTLE_RAISE_PIPES_TO_CC},
{VOLATILE_FLAG_7E_SANDCASTLE_RAISE_PIPE_TO_BRENTILDA, FILEPROG_10D_SANDCASTLE_RAISE_PIPE_TO_BRENTILDA},
{VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC, FILEPROG_10E_SANDCASTLE_OPEN_CC},
{VOLATILE_FLAG_80_SANDCASTLE_REMOVE_GRILL_NEAR_BGS_JIGGY, FILEPROG_10F_SANDCASTLE_REMOVE_GRILL_NEAR_BGS_JIGGY},
{VOLATILE_FLAG_81_SANDCASTLE_CCC_JIGGY_PODIUM, FILEPROG_110_SANDCASTLE_CCC_JIGGY_PODIUM},
{VOLATILE_FLAG_82_SANDCASTLE_REMOVE_GRILL_AND_HAT_FROM_STATUE, FILEPROG_111_SANDCASTLE_REMOVE_GRILL_AND_HAT_FROM_STATUE},
{VOLATILE_FLAG_83_SANDCASTLE_REMOVE_ICE, FILEPROG_112_SANDCASTLE_REMOVE_ICE},
{VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS, FILEPROG_113_SANDCASTLE_OPEN_BGS},
{VOLATILE_FLAG_85_SANDCASTLE_REMOVE_BREAKABLE_WALLS, FILEPROG_114_SANDCASTLE_REMOVE_BREAKABLE_WALLS},
{VOLATILE_FLAG_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED, FILEPROG_115_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED},
{VOLATILE_FLAG_87_SANDCASTLE_OPEN_GV, FILEPROG_116_SANDCASTLE_OPEN_GV},
{VOLATILE_FLAG_88_SANDCASTLE_REMOVE_WEBS, FILEPROG_117_SANDCASTLE_REMOVE_WEBS},
{VOLATILE_FLAG_89_SANDCASTLE_REMOVE_GLASS_EYE, FILEPROG_118_SANDCASTLE_REMOVE_GLASS_EYE},
{VOLATILE_FLAG_8A_SANDCASTLE_FLIGHT_UNLOCKED, FILEPROG_119_SANDCASTLE_FLIGHT_UNLOCKED},
{VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP, FILEPROG_11A_SANDCASTLE_OPEN_FP},
{VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM, FILEPROG_11B_SANDCASTLE_OPEN_MMM},
{VOLATILE_FLAG_8D_SANDCASTLE_REMOVE_CRYPT_GATE, FILEPROG_11C_SANDCASTLE_REMOVE_CRYPT_GATE},
{VOLATILE_FLAG_8E_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID, FILEPROG_11D_SANDCASTLE_REMOVE_CRYPT_COFFIN_LID},
{VOLATILE_FLAG_8F_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH, FILEPROG_11E_SANDCASTLE_REMOVE_GRATE_NEAR_WATER_SWITCH},
{VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB, FILEPROG_11F_SANDCASTLE_OPEN_RBB},
{VOLATILE_FLAG_91_SANDCASTLE_REMOVE_GRILL_NEAR_RBB_JIGGY, FILEPROG_120_SANDCASTLE_REMOVE_GRILL_NEAR_RBB_JIGGY},
{VOLATILE_FLAG_92_SANDCASTLE_REMOVE_TUNNEL_GRILL_NEAR_RBB_JIGGY, FILEPROG_121_SANDCASTLE_REMOVE_TUNNEL_GRILL_NEAR_RBB_JIGGY},
{VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW, FILEPROG_122_SANDCASTLE_OPEN_CCW},
{VOLATILE_FLAG_65_CHEAT_ENTERED, FILEPROG_123_CHEAT_ENTERED},
{-1, 0x000}
};

View File

@@ -54,7 +54,18 @@ extern s32 D_80371F90 = 0x7; //bottles bonus demo count
extern s32 D_80371F94 = 1;
extern s32 D_80371F98 = 3;
extern s32 D_80371F9C = 1;
extern u16 D_80371FA0[] = { 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC };
extern u16 D_80371FA0[] = {
FILEPROG_3_MUSIC_NOTE_TEXT,
FILEPROG_4_MUMBO_TOKEN_TEXT,
FILEPROG_5_BLUE_EGG_TEXT,
FILEPROG_6_RED_FEATHER_TEXT,
FILEPROG_7_GOLD_FEATHER_TEXT,
FILEPROG_8_ORANGE_TEXT,
FILEPROG_9_GOLD_BULLION_TEXT,
FILEPROG_A_HONEYCOMB_TEXT,
FILEPROG_B_EMPTY_HONEYCOMB_TEXT,
FILEPROG_C_EXTRA_LIFE_TEXT
};
//EB030:
/* .bss */

View File

@@ -178,12 +178,12 @@ s16 D_80393454[] = {
FILEPROG_37_MMM_OPEN,
FILEPROG_38_RBB_OPEN,
FILEPROG_39_CCW_OPEN,
0
FILEPROG_0_UNKNOWN
};
s16 D_80393468[] = {
0,
0,
VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ,
VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ,
VOLATILE_FLAG_7F_SANDCASTLE_OPEN_CC,
VOLATILE_FLAG_84_SANDCASTLE_OPEN_BGS,
VOLATILE_FLAG_8B_SANDCASTLE_OPEN_FP,
@@ -191,7 +191,7 @@ s16 D_80393468[] = {
VOLATILE_FLAG_8C_SANDCASTLE_OPEN_MMM,
VOLATILE_FLAG_90_SANDCASTLE_OPEN_RBB,
VOLATILE_FLAG_93_SANDCASTLE_OPEN_CCW,
0
VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ
};
s16 D_8039347C[] = {50, 180, 260, 350, 450, 640, 765, 810, 828, 846, 864, 882}; //notedoor_notes_required_to_open
@@ -662,7 +662,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 = 0xFF;
this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f;
if (fileProgressFlag_get(this->unkF4_8 + 0x39)) {
if (fileProgressFlag_get(this->unkF4_8 + FILEPROG_39_CCW_OPEN)) {
marker_despawn(this->marker);
return;
}
@@ -681,7 +681,7 @@ void func_80387730(Actor *this) {
this->unk1C[1] = 0.0f;
this->unk1C[2] = 3.5f;
}
if (!fileProgressFlag_get(this->unkF4_8 + 0x39) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) {
if (!fileProgressFlag_get(this->unkF4_8 + FILEPROG_39_CCW_OPEN) && ability_isUnlocked(ABILITY_13_1ST_NOTEDOOR)) {
player_getPosition(spAC);
if ((ml_distance_vec3f(spAC, this->position) < 500.0f) && (func_803114C4() != 0xF64)) {
func_802FACA4(0xC);
@@ -711,7 +711,7 @@ void func_80387730(Actor *this) {
this->alpha_124_19 -= 7;
}
if (this->alpha_124_19 == 0) {
fileProgressFlag_set(this->unkF4_8 + 0x39, TRUE);
fileProgressFlag_set(this->unkF4_8 + FILEPROG_39_CCW_OPEN, TRUE);
marker_despawn(this->marker);
func_8028F918(0);
func_8028F66C(BS_INTR_35);
@@ -825,14 +825,14 @@ void func_80387F1C(void)
}
}
void func_80387F78(Actor *this, u32 flag)
void func_80387F78(Actor *this, enum file_progress_e progress_flag)
{
if (this->unk1C[0] != 2.f)
{
if (this->unk1C[0] != 0 && fileProgressFlag_get(FILEPROG_9B_LAIR_CC_WITCH_SWITCH_EYES_ACTIVE))
{
u32 flagState = fileProgressFlag_get(flag);
fileProgressFlag_set(flag, TRUE);
u32 flagState = fileProgressFlag_get(progress_flag);
fileProgressFlag_set(progress_flag, TRUE);
if (flagState == FALSE
&& !jiggyscore_isSpawned(JIGGY_35_LAIR_CC_WITCH_SWITCH)
@@ -844,7 +844,7 @@ void func_80387F78(Actor *this, u32 flag)
}
}
if (fileProgressFlag_get(flag))
if (fileProgressFlag_get(progress_flag))
{
this->position_y -= 4.5; // f64
@@ -966,12 +966,12 @@ void func_803882B0(Actor *this)
}
}
void func_80388404(enum file_progress_e flag, enum sfx_e sfx, f32 a2, s32 a3)
void func_80388404(enum file_progress_e progress_flag, enum sfx_e sfx, f32 a2, s32 a3)
{
if (fileProgressFlag_get(flag) == FALSE)
if (fileProgressFlag_get(progress_flag) == FALSE)
func_8030E6A4(sfx, a2, a3);
fileProgressFlag_set(flag, TRUE);
fileProgressFlag_set(progress_flag, TRUE);
}
void func_80388450(Actor *actor1, Actor *actor2)
@@ -1730,7 +1730,7 @@ void func_80389D08(Actor *this)
this->volatile_initialized = TRUE;
this->lifetime_value = 0;
if (fileProgressFlag_get(0xA5))
if (fileProgressFlag_get(FILEPROG_A5_LAIR_CRYPT_GATE_OPEN))
{
marker_despawn(this->marker);
return;

View File

@@ -18,7 +18,7 @@ typedef struct {
typedef struct {
u8 cost;
u8 size_bits;
u16 progress_flag;
u16 progress_flag; // enum file_progress_e
}Struct_lair_86F0_0;
void func_8038F350(Actor *this, s32 next_state);

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 (fileProgressFlag_get(phi_s0 + 0xAD)) {
if (fileProgressFlag_get(phi_s0 + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) {
phi_s1++;
}
}
@@ -44,8 +44,8 @@ void func_803900EC(ActorMarker *marker, enum asset_e text_id, s32 arg2){
sp1C = marker->id - 0x16D;
func_8028F918(0);
if (!fileProgressFlag_get(sp1C + 0xAD)) {
fileProgressFlag_set(sp1C + 0xAD, 1);
if (!fileProgressFlag_get(sp1C + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) {
fileProgressFlag_set(sp1C + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED, 1);
func_8025A6EC(COMUSIC_2B_DING_B, 28000);
}
}
@@ -63,7 +63,8 @@ void func_80390174(ActorMarker *marker, s32 arg1) {
this = marker_getActor(marker);
sp28 = this->marker->id - 0x16D;
func_8028F94C(2, this->position);
if (fileProgressFlag_get(sp28 + 0xAD)) {
if (fileProgressFlag_get(sp28 + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) {
// cheato hint texts
gcdialog_showText(sp28 + 0xF83, 0xE, this->position, this->marker, func_803900EC, lair_func_803900DC);
return;
}
@@ -106,7 +107,7 @@ void func_803902B8(Actor *this) {
}
this->unk38_0 = sp58;
sp58 = func_80259384(this->position, sp5C, 400.0f);
if (fileProgressFlag_get(sp54 + 0xAD)) {
if (fileProgressFlag_get(sp54 + FILEPROG_AD_CHEATO_BLUEEGGS_UNLOCKED)) {
func_8024E55C(0, sp3C);
sp58 &= (sp3C[FACE_BUTTON(BUTTON_B)] == 1) || func_8028EC04();
}