summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorengineer124 <engineer124engineer124@gmail.com>2023-10-22 17:19:13 +1100
committerengineer124 <engineer124engineer124@gmail.com>2023-10-22 17:19:13 +1100
commit9d8554e05a77ff97e0057c948bfa82b7925b7403 (patch)
treecee4364c89110f68c355006656516d079868c179 /src/code
parent9c2c3f1bb834b4793b58368fc4c6c0aec2df858b (diff)
parent1e19cfe8697afc2d3a2cce0489da0980aaf6efd7 (diff)
Merge branch 'main' into sys_math3d_bss
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_kankyo.c28
-rw-r--r--src/code/z_player_lib.c2
-rw-r--r--src/code/z_schedule.c70
3 files changed, 71 insertions, 29 deletions
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index 30ea04e16..6dda9090d 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -702,9 +702,35 @@ s32 Environment_IsSceneUpsideDown(PlayState* play) {
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdateSun.s")
+void func_800F88C4(u16 weekEventFlag);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F88C4.s")
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/func_800F8970.s")
+void func_800F8970(void) {
+ if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_27_40) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(9, 31))) {
+ SET_WEEKEVENTREG(WEEKEVENTREG_27_40);
+ func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_UPPER_CLOCKTOWN);
+ }
+
+ if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_27_80) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(10, 3))) {
+ SET_WEEKEVENTREG(WEEKEVENTREG_27_80);
+ func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_NORTH_CLOCKTOWN);
+ }
+
+ if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_01) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(10, 35))) {
+ SET_WEEKEVENTREG(WEEKEVENTREG_28_01);
+ func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_UPPER_CLOCKTOWN);
+ }
+
+ if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_02) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(10, 53))) {
+ SET_WEEKEVENTREG(WEEKEVENTREG_28_02);
+ func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_LOWER_CLOCKTOWN);
+ }
+
+ if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_04) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(11, 25))) {
+ SET_WEEKEVENTREG(WEEKEVENTREG_28_04);
+ func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_LOWER_CLOCKTOWN);
+ }
+}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_kankyo/Environment_UpdatePostmanEvents.s")
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 3a5d69a34..6c33a5565 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -2515,7 +2515,7 @@ u8 D_801C0B1C[] = {
Gfx* D_801C0B20[] = {
object_mask_truth_DL_0001A0, // PLAYER_MASK_TRUTH
- object_mask_kerfay_DL_000D40, // PLAYER_MASK_KAFEIS_MASK
+ gKafeisMaskDL, // PLAYER_MASK_KAFEIS_MASK
object_mask_yofukasi_DL_000490, // PLAYER_MASK_ALL_NIGHT
object_mask_rabit_DL_000610, // PLAYER_MASK_BUNNY
object_mask_ki_tan_DL_0004A0, // PLAYER_MASK_KEATON
diff --git a/src/code/z_schedule.c b/src/code/z_schedule.c
index fdefb0f42..38bcb58c3 100644
--- a/src/code/z_schedule.c
+++ b/src/code/z_schedule.c
@@ -4,7 +4,7 @@
(temp) = (hour)*60.0f; \
(temp) += (minute); \
(dest) = (temp) * (0x10000 / 60 / 24.0f); \
- (dest) = SCHEDULE_CONVERT_TIME(dest);
+ (dest) = SCHEDULE_CONVERT_TIME(dest)
s32 Schedule_CheckFlagS(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckFlagS* cmd = (ScheduleCmdCheckFlagS*)*script;
@@ -239,34 +239,50 @@ s32 Schedule_BranchL(PlayState* play, u8** script, ScheduleOutput* output) {
return false;
}
-static s32 (*sScheduleCmdFuncs[])(PlayState*, u8**, ScheduleOutput*) = {
- Schedule_CheckFlagS, Schedule_CheckFlagL, Schedule_CheckTimeRangeS, Schedule_CheckTimeRangeL,
- Schedule_ReturnValueL, Schedule_ReturnNone, Schedule_ReturnEmpty, Schedule_Nop,
- Schedule_CheckMiscS, Schedule_ReturnValueS, Schedule_CheckNotInSceneS, Schedule_CheckNotInSceneL,
- Schedule_CheckNotInDayS, Schedule_CheckNotInDayL, Schedule_ReturnTime, Schedule_CheckBeforeTimeS,
- Schedule_CheckBeforeTimeL, Schedule_BranchS, Schedule_BranchL,
+typedef s32 (*ScheduleCmdFunc)(PlayState*, u8**, ScheduleOutput*);
+
+static ScheduleCmdFunc sScheduleCmdFuncs[] = {
+ Schedule_CheckFlagS, // SCHEDULE_CMD_ID_CHECK_FLAG_S
+ Schedule_CheckFlagL, // SCHEDULE_CMD_ID_CHECK_FLAG_L
+ Schedule_CheckTimeRangeS, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S
+ Schedule_CheckTimeRangeL, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L
+ Schedule_ReturnValueL, // SCHEDULE_CMD_ID_RET_VAL_L
+ Schedule_ReturnNone, // SCHEDULE_CMD_ID_RET_NONE
+ Schedule_ReturnEmpty, // SCHEDULE_CMD_ID_RET_EMPTY
+ Schedule_Nop, // SCHEDULE_CMD_ID_NOP
+ Schedule_CheckMiscS, // SCHEDULE_CMD_ID_CHECK_MISC_S
+ Schedule_ReturnValueS, // SCHEDULE_CMD_ID_RET_VAL_S
+ Schedule_CheckNotInSceneS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S
+ Schedule_CheckNotInSceneL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L
+ Schedule_CheckNotInDayS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S
+ Schedule_CheckNotInDayL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L
+ Schedule_ReturnTime, // SCHEDULE_CMD_ID_RET_TIME
+ Schedule_CheckBeforeTimeS, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S
+ Schedule_CheckBeforeTimeL, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L
+ Schedule_BranchS, // SCHEDULE_CMD_ID_BRANCH_S
+ Schedule_BranchL, // SCHEDULE_CMD_ID_BRANCH_L
};
static u8 sScheduleCmdSizes[] = {
- sizeof(ScheduleCmdCheckFlagS),
- sizeof(ScheduleCmdCheckFlagL),
- sizeof(ScheduleCmdCheckTimeRangeS),
- sizeof(ScheduleCmdCheckTimeRangeL),
- sizeof(ScheduleCmdReturnValueL),
- sizeof(ScheduleCmdBase),
- sizeof(ScheduleCmdBase),
- sizeof(ScheduleCmdNop),
- sizeof(ScheduleCmdCheckMiscS),
- sizeof(ScheduleCmdReturnValueS),
- sizeof(ScheduleCmdCheckNotInSceneS),
- sizeof(ScheduleCmdCheckNotInSceneL),
- sizeof(ScheduleCmdCheckNotInDayS),
- sizeof(ScheduleCmdCheckNotInDayL),
- sizeof(ScheduleCmdReturnTime),
- sizeof(ScheduleCmdCheckBeforeTimeS),
- sizeof(ScheduleCmdCheckBeforeTimeL),
- sizeof(ScheduleCmdBranchS),
- sizeof(ScheduleCmdBranchL),
+ sizeof(ScheduleCmdCheckFlagS), // SCHEDULE_CMD_ID_CHECK_FLAG_S
+ sizeof(ScheduleCmdCheckFlagL), // SCHEDULE_CMD_ID_CHECK_FLAG_L
+ sizeof(ScheduleCmdCheckTimeRangeS), // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S
+ sizeof(ScheduleCmdCheckTimeRangeL), // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L
+ sizeof(ScheduleCmdReturnValueL), // SCHEDULE_CMD_ID_RET_VAL_L
+ sizeof(ScheduleCmdBase), // SCHEDULE_CMD_ID_RET_NONE
+ sizeof(ScheduleCmdBase), // SCHEDULE_CMD_ID_RET_EMPTY
+ sizeof(ScheduleCmdNop), // SCHEDULE_CMD_ID_NOP
+ sizeof(ScheduleCmdCheckMiscS), // SCHEDULE_CMD_ID_CHECK_MISC_S
+ sizeof(ScheduleCmdReturnValueS), // SCHEDULE_CMD_ID_RET_VAL_S
+ sizeof(ScheduleCmdCheckNotInSceneS), // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S
+ sizeof(ScheduleCmdCheckNotInSceneL), // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L
+ sizeof(ScheduleCmdCheckNotInDayS), // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S
+ sizeof(ScheduleCmdCheckNotInDayL), // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L
+ sizeof(ScheduleCmdReturnTime), // SCHEDULE_CMD_ID_RET_TIME
+ sizeof(ScheduleCmdCheckBeforeTimeS), // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S
+ sizeof(ScheduleCmdCheckBeforeTimeL), // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L
+ sizeof(ScheduleCmdBranchS), // SCHEDULE_CMD_ID_BRANCH_S
+ sizeof(ScheduleCmdBranchL), // SCHEDULE_CMD_ID_BRANCH_L
};
s32 Schedule_RunScript(PlayState* play, u8* script, ScheduleOutput* output) {
@@ -275,7 +291,7 @@ s32 Schedule_RunScript(PlayState* play, u8* script, ScheduleOutput* output) {
do {
size = sScheduleCmdSizes[*script];
- stop = (*sScheduleCmdFuncs[*script])(play, &script, output);
+ stop = sScheduleCmdFuncs[*script](play, &script, output);
script += size;
} while (!stop);