Files
banjo-kazooie/src/core2/code_CF3E0.c
2023-08-09 16:08:13 +02:00

127 lines
3.4 KiB
C

#include <ultra64.h>
#include "functions.h"
#include "variables.h"
typedef KEY_VALUE_PAIR(s16, s16) unkD_80372730;
unkD_80372730 D_80372730[] = {
{ FILEPROG_AB_SWIM_OILY_WATER, 0xBA1},
{ FILEPROG_AC_DIVE_OILY_WATER, 0xBA2},
{ FILEPROG_AA_HAS_TOUCHED_CCW_BRAMBLE_FIELD, 0xCE6},
{ FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ FILEPROG_A9_HAS_TOUCHED_RBB_OVEN, 0xBA0},
{ FILEPROG_10_HAS_TOUCHED_SAND_EEL_SAND, 0xA7E},
{ FILEPROG_14_HAS_TOUCHED_FP_ICY_WATER, 0xC11},
{ FILEPROG_F_HAS_TOUCHED_PIRAHANA_WATER, 0xC85},
{ FILEPROG_86_HAS_TOUCHED_MMM_THORN_HEDGE, 0xAE1},
{ FILEPROG_DD_HAS_TOUCHED_CCW_ICY_WATER, 0xCE7},
{ FILEPROG_3_MUSIC_NOTE_TEXT, 0xD9C},
{ FILEPROG_4_MUMBO_TOKEN_TEXT, 0xD9D},
{ FILEPROG_5_BLUE_EGG_TEXT, 0xD9E},
{ FILEPROG_6_RED_FEATHER_TEXT, 0xD9F},
{ FILEPROG_7_GOLD_FEATHER_TEXT, 0xDA0},
{ FILEPROG_8_ORANGE_TEXT, 0xB46},
{ FILEPROG_9_GOLD_BULLION_TEXT, 0xA21},
{ FILEPROG_A_HONEYCOMB_TEXT, 0xDA1},
{ FILEPROG_B_EMPTY_HONEYCOMB_TEXT, 0xDA2},
{ FILEPROG_C_EXTRA_LIFE_TEXT, 0xDA3},
{ FILEPROG_BE_CHEATO_BLUEEGGS, 0xFA8},
{ FILEPROG_BF_CHEATO_REDFEATHERS, 0xFA9},
{ FILEPROG_C0_CHEATO_GOLDFEATHERS, 0xFAA},
{0x95, 0xB50},
{ FILEPROG_A7_NEAR_PUZZLE_PODIUM_TEXT, 0xF7B},
{ -1, -1}
};
unkD_80372730 D_80372798[] = {
{0x9E, 0xBA3},
{0x9F, 0xCE8},
{0xA0, 0x1032},
{0xA1, 0x1033},
{0xA2, 0x1034},
{0xA3, 0x1035},
{0xA4, 0x1036},
{0xA5, 0x1037},
{0xA6, 0x1038},
{0xA7, 0x1039},
{0xA8, 0x103A},
{0xA9, 0x103B},
{0xAA, 0x103C},
{0xAB, 0x103D},
{0xAC, 0xA88},
{0xAD, 0xAE2},
{0xAE, 0xC8B},
{0xAF, 0xC8C},
{0xB0, 0xFBD},
{0xC2, 0xE36},
{0xC5, 0xDB6},
{ -1, -1}
};
static s32 __findIndex(unkD_80372730 *arg0, s32 arg1) {
s32 phi_v1 = 0;
while (arg0[phi_v1].key >= 0) {
if (arg1 == arg0[phi_v1].key) {
return phi_v1;
}
phi_v1++;
}
return -1;
}
s32 func_803563B8(enum file_progress_e arg0, s32 arg1) {
s32 index;
if (fileProgressFlag_get(arg0) != 0) {
return 0;
} else {
index = __findIndex(D_80372730, arg0);
if (index != -1) {
if (func_80311480(D_80372730[index].value, arg1, 0, 0, 0, 0) != 0) {
fileProgressFlag_set(arg0, 1);
}
return fileProgressFlag_get(arg0);
}
return 0;
}
}
void func_8035644C(enum file_progress_e arg0){
func_803563B8(arg0, 0);
}
void func_8035646C(s32 arg0) {
func_803563B8(arg0, 4);
}
s32 func_8035648C(s32 arg0, s32 arg1) {
s32 index;
if (func_803203FC() != 0) {
return 0;
} else {
index = __findIndex(D_80372798, arg0);
if (index != -1) {
if (func_80311480(D_80372798[index].value, arg1, 0, 0, 0, 0) != 0) {
func_803204E4(arg0, 1);
}
return func_803203FC(arg0);
}
return 0;
}
}
void func_80356520(s32 arg0) {
func_8035648C(arg0, 0);
}
void func_80356540(s32 arg0) {
func_8035648C(arg0, 4);
}
void func_80356560(s32 arg0) {
func_8035648C(arg0, 0xE);
}