mirror of
https://github.com/zeldaret/mm.git
synced 2024-11-23 12:59:44 +00:00
A higher level language for schedule scripts (#1462)
* schedule script * start something * tokenize * make a tree * start to emit macros * start to handle args * handle branch targets * cleanup a bit * script to convert the current schedule scripts to the new language * Add schedule compilation to Makefile * Fix bug on compiler if the script doesn't have an extra empty line * Allow to have `else`s without braces * convert a lot of schedules * door * en_tk * fix some checks being the wrong way around * borkens * door borken schedules * kafei schedule * postman schedule * Implement `if_since_time_*` command * Allow `if`s to not have an `else` * Implement some debugging options * fix another one from door * D_808675D0 * door D_8086775C * don't print else if there isn't one * start supporting labels * rewrite comment handling * add branch support * emit debugging information * postman and one door * the remaining scripts * add tokens for the non _s/_l versions * meh * Add built schedules * Remove _s/_l suffixes from almost every command * TokenProperties * Move macros and length into TokenProperties * move short and long to TokenType * rename member * some cleanups * fatalError * Write various notes on the compiler * more errors and comments * debug flags * Move the built schedules to the build folder * manually cleanup control flow of many schedule scripts * cleanup postman schedule * start write up * write more stuff * write a little more * Start writing about the commands * 2 more commands * more * almost everything, except returns * hopefully finish documenting the commands * cleanup * formal grammar * Table of contents * typo * Rename schc.py * remove todo * Warn if a if_before_time/if_since_time is negated * Add colors to warnings and errors * delete rebuild schedules script * version * Apply suggestions from code review Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * suggestions on md file * compiler review * invented is invented * ScheduleScript typedef * fix * Convert Anju's schedule to the new format * simplify anju's schedule * forgot to remove `_s`/`_l` * bss * Rework schc to allow multiple scripts per file * Migrate all the schedules to the new format * update language specification * Update docs/schedule_scripting_language.md Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update docs/schedule_scripting_language.md Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --------- Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
This commit is contained in:
parent
2c600ddd3d
commit
5db52cfd39
1
.gitignore
vendored
1
.gitignore
vendored
@ -39,6 +39,7 @@ graphs/
|
||||
tools/**/*dSYM/
|
||||
tools/decomp-permuter/
|
||||
tools/mips_to_c/
|
||||
*.schl.inc
|
||||
|
||||
# Assets
|
||||
*.png
|
||||
|
14
Makefile
14
Makefile
@ -125,6 +125,9 @@ ZAPD := tools/ZAPD/ZAPD.out
|
||||
FADO := tools/fado/fado.elf
|
||||
MAKEYAR := $(PYTHON) tools/buildtools/makeyar.py
|
||||
CHECKSUMMER := $(PYTHON) tools/buildtools/checksummer.py
|
||||
SCHC := tools/buildtools/schc.py
|
||||
|
||||
SCHC_FLAGS :=
|
||||
|
||||
OPTFLAGS := -O2 -g3
|
||||
ASFLAGS := -march=vr4300 -32 -Iinclude
|
||||
@ -189,6 +192,7 @@ TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),build/$f) \
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS) $(ASSET_BIN_DIRS_C_FILES),$(wildcard $(dir)/*.c))
|
||||
S_FILES := $(shell grep -F "build/asm" spec | sed 's/.*build\/// ; s/\.o\".*/.s/') \
|
||||
$(shell grep -F "build/data" spec | sed 's/.*build\/// ; s/\.o\".*/.s/')
|
||||
SCHEDULE_FILES:= $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.schl))
|
||||
BASEROM_FILES := $(shell grep -F "build/baserom" spec | sed 's/.*build\/// ; s/\.o\".*//')
|
||||
ARCHIVES_O := $(shell grep -F ".yar.o" spec | sed 's/.*include "// ; s/\.o\".*/.o/')
|
||||
O_FILES := $(foreach f,$(S_FILES:.s=.o),build/$f) \
|
||||
@ -198,6 +202,8 @@ O_FILES := $(foreach f,$(S_FILES:.s=.o),build/$f) \
|
||||
|
||||
OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | grep -o '[^"]*_reloc.o' )
|
||||
|
||||
SCHEDULE_INC_FILES := $(foreach f,$(SCHEDULE_FILES:.schl=.schl.inc),build/$f)
|
||||
|
||||
# Automatic dependency files
|
||||
# (Only asm_processor dependencies and reloc dependencies are handled for now)
|
||||
DEP_FILES := $(O_FILES:.o=.asmproc.d) $(OVL_RELOC_FILES:.o=.d)
|
||||
@ -295,7 +301,10 @@ $(OVL_RELOC_FILES): | o_files
|
||||
asset_files: $(TEXTURE_FILES_OUT) $(ASSET_FILES_OUT)
|
||||
$(O_FILES): | asset_files
|
||||
|
||||
.PHONY: o_files asset_files
|
||||
schedule_inc_files: $(SCHEDULE_INC_FILES)
|
||||
$(O_FILES): | schedule_inc_files
|
||||
|
||||
.PHONY: o_files asset_files schedule_inc_files
|
||||
|
||||
#### Main commands ####
|
||||
|
||||
@ -428,6 +437,9 @@ build/assets/%.bin.inc.c: assets/%.bin
|
||||
build/assets/%.jpg.inc.c: assets/%.jpg
|
||||
$(ZAPD) bren -eh -i $< -o $@
|
||||
|
||||
build/%.schl.inc: %.schl
|
||||
$(SCHC) $(SCHC_FLAGS) -o $@ $<
|
||||
|
||||
-include $(DEP_FILES)
|
||||
|
||||
# Print target for debugging
|
||||
|
925
docs/schedule_scripting_language.md
Normal file
925
docs/schedule_scripting_language.md
Normal file
@ -0,0 +1,925 @@
|
||||
# Schedule scripting language
|
||||
|
||||
The Schedule scripting language is a high level language that was made to help
|
||||
reading and modifying the schedule scripts used by various actors.
|
||||
|
||||
It should be noted that the language discussed on this document was invented
|
||||
and made up by the community. There's no presence of higher level abstraction
|
||||
on the game ROM, neither it was used by the original development team at
|
||||
Nintendo.
|
||||
|
||||
- [Schedule scripting language](#schedule-scripting-language)
|
||||
- [Features of the schedule system](#features-of-the-schedule-system)
|
||||
- [Short and long commands](#short-and-long-commands)
|
||||
- [How a schedule script looks like](#how-a-schedule-script-looks-like)
|
||||
- [Syntax](#syntax)
|
||||
- [Compiling](#compiling)
|
||||
- [Commands](#commands)
|
||||
- [Generics and non-generics](#generics-and-non-generics)
|
||||
- [Command arguments](#command-arguments)
|
||||
- [Conditional checks](#conditional-checks)
|
||||
- [`if_week_event_reg`](#if_week_event_reg)
|
||||
- [`if_week_event_reg` arguments](#if_week_event_reg-arguments)
|
||||
- [`if_week_event_reg` example](#if_week_event_reg-example)
|
||||
- [`if_week_event_reg` non-generics](#if_week_event_reg-non-generics)
|
||||
- [`if_time_range`](#if_time_range)
|
||||
- [`if_time_range` arguments](#if_time_range-arguments)
|
||||
- [`if_time_range` example](#if_time_range-example)
|
||||
- [`if_time_range` non-generics](#if_time_range-non-generics)
|
||||
- [`if_misc`](#if_misc)
|
||||
- [`if_misc` arguments](#if_misc-arguments)
|
||||
- [`if_misc` example](#if_misc-example)
|
||||
- [`if_misc` non-generics](#if_misc-non-generics)
|
||||
- [`if_scene`](#if_scene)
|
||||
- [`if_scene` arguments](#if_scene-arguments)
|
||||
- [`if_scene` example](#if_scene-example)
|
||||
- [`if_scene` non-generics](#if_scene-non-generics)
|
||||
- [`if_day`](#if_day)
|
||||
- [`if_day` arguments](#if_day-arguments)
|
||||
- [`if_day` example](#if_day-example)
|
||||
- [`if_day` non-generics](#if_day-non-generics)
|
||||
- [`if_before_time`](#if_before_time)
|
||||
- [`if_before_time` arguments](#if_before_time-arguments)
|
||||
- [`if_before_time` example](#if_before_time-example)
|
||||
- [`if_before_time` non-generics](#if_before_time-non-generics)
|
||||
- [`if_before_time` notes](#if_before_time-notes)
|
||||
- [`if_since_time`](#if_since_time)
|
||||
- [`if_since_time` arguments](#if_since_time-arguments)
|
||||
- [`if_since_time` example](#if_since_time-example)
|
||||
- [`if_since_time` non-generics](#if_since_time-non-generics)
|
||||
- [`if_since_time` notes](#if_since_time-notes)
|
||||
- [Unconditional branches](#unconditional-branches)
|
||||
- [`branch`](#branch)
|
||||
- [`branch` arguments](#branch-arguments)
|
||||
- [`branch` example](#branch-example)
|
||||
- [`branch` non-generics](#branch-non-generics)
|
||||
- [`else`](#else)
|
||||
- [`else` example](#else-example)
|
||||
- [Return commands](#return-commands)
|
||||
- [`return_s`](#return_s)
|
||||
- [`return_s` arguments](#return_s-arguments)
|
||||
- [`return_s` example](#return_s-example)
|
||||
- [`return_l`](#return_l)
|
||||
- [`return_l` arguments](#return_l-arguments)
|
||||
- [`return_l` example](#return_l-example)
|
||||
- [`return_none`](#return_none)
|
||||
- [`return_none` arguments](#return_none-arguments)
|
||||
- [`return_none` example](#return_none-example)
|
||||
- [`return_empty`](#return_empty)
|
||||
- [`return_empty` arguments](#return_empty-arguments)
|
||||
- [`return_empty` example](#return_empty-example)
|
||||
- [`return_time`](#return_time)
|
||||
- [`return_time` arguments](#return_time-arguments)
|
||||
- [`return_time` example](#return_time-example)
|
||||
- [Other commands](#other-commands)
|
||||
- [`nop`](#nop)
|
||||
- [`nop` arguments](#nop-arguments)
|
||||
- [`nop` example](#nop-example)
|
||||
- [Operators](#operators)
|
||||
- [`not`](#not)
|
||||
- [`not` example](#not-example)
|
||||
- [Labels](#labels)
|
||||
- [Formal grammar](#formal-grammar)
|
||||
- [Tokens](#tokens)
|
||||
|
||||
## Features of the schedule system
|
||||
|
||||
The Schedule system is a very simple scripting language, it is composed of a
|
||||
series of commands that can check the state of the game and return a value
|
||||
depending on said state. This system can't declare variables, hold its own
|
||||
state or modify the game's state.
|
||||
|
||||
A schedule script can check the state of the following:
|
||||
|
||||
- Current in-game [day](#if_day).
|
||||
- If a [WeekEventReg flag](#if_week_event_reg) is set or not.
|
||||
- Current time is in a specified [time range](#if_time_range).
|
||||
- Current time is [before](#if_before_time)/[after](#if_since_time) a specified
|
||||
time.
|
||||
- Some other [miscellaneous](#if_misc) checks (see the `ScheduleCheckMisc`
|
||||
enum).
|
||||
|
||||
All of those checks act as conditional branches into some other command. The
|
||||
schedule system also supports unconditional branches.
|
||||
|
||||
The schedule script is run until a return command is executed. There are various
|
||||
return commands that allow different things:
|
||||
|
||||
- [Return none](#return_none): The schedule finished without returning a value.
|
||||
- [Return empty](#return_empty): The schedule finished without changing the
|
||||
previous value.
|
||||
- [Return s](#return_s): The script returns a value that's 1 byte long.
|
||||
- [Return l](#return_l): The script returns a value that's 2 bytes long (Note
|
||||
this is bugged and will be truncated to 1 byte).
|
||||
- [Return time](#return_time): Returns a time range and a 1 byte value.
|
||||
|
||||
Running an unknown command or branching to the middle of a command is undefined
|
||||
behaviour.
|
||||
|
||||
A low level schedule script can be compared to a multi byte assembly language,
|
||||
on which each command occupies 1 byte plus a variable number of arguments.
|
||||
|
||||
### Short and long commands
|
||||
|
||||
Due to the commands themselves using a variable amount of bytes it is possible
|
||||
to do some small optimizations, like if a branch distance (which is the amount
|
||||
of bytes the interpreter should skip if a check evaluates to true) can fit on a
|
||||
signed byte then a **short** (noted with the `_S` suffix) command is used,
|
||||
otherwise a **long** version (noted with the `_L` suffix) of the command is used
|
||||
instead.
|
||||
|
||||
A long command uses two bytes to store the branch distance, meaning the command
|
||||
itself will be one byte longer.
|
||||
|
||||
There are no commands that use more than 2 bytes to store the branch distance.
|
||||
|
||||
The short and long distinction also exists for the returned value, in case the
|
||||
user wants to return a value that wouldn't fit on a single unsigned byte and
|
||||
requires an unsigned short (two bytes) instead. Please note that the vanilla
|
||||
built-in system interpreter has a bug on which the upper byte of a long returned
|
||||
value will be discarded, so please ensure your returned values always fit on the
|
||||
0-255 range.
|
||||
|
||||
## How a schedule script looks like
|
||||
|
||||
An extracted schedule script is just an array of raw data. A macroified version
|
||||
looks like this:
|
||||
|
||||
```c
|
||||
static ScheduleScript D_80BD3DB0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x21 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x0B - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
/* 0x0B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x20 - 0x0F),
|
||||
/* 0x0F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 23, 0, 0x1D - 0x15),
|
||||
/* 0x15 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x1C - 0x19),
|
||||
/* 0x19 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_VAL_L(3),
|
||||
/* 0x20 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x21 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x37 - 0x25),
|
||||
/* 0x25 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x36 - 0x29),
|
||||
/* 0x29 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x30 - 0x2F),
|
||||
/* 0x2F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x30 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 2),
|
||||
/* 0x36 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x37 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
```
|
||||
|
||||
Having these scripts as arrays like this has two major flaws:
|
||||
|
||||
- The control flow is not clear at a first glance (this is especially problematic
|
||||
for larger scripts).
|
||||
- The branch distances are hardcoded into each command, making the script itself
|
||||
hard to modify.
|
||||
|
||||
As a solution, the high level Schedule script language uses a C-like syntax to
|
||||
better represent the control flow. The above script can be written as the
|
||||
following:
|
||||
|
||||
```c
|
||||
D_80BD3DB0 {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_day (3) {
|
||||
return_l (1)
|
||||
} else if_day (2) {
|
||||
if_time_range (21, 0, 23, 0) {
|
||||
return_l (3)
|
||||
} else if_week_event_reg (WEEKEVENTREG_HAD_MIDNIGHT_MEETING) {
|
||||
return_none
|
||||
} else {
|
||||
return_l (1)
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_OMOYA) {
|
||||
if_day (3) {
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Syntax
|
||||
|
||||
The syntax is simple, it consists on the name of the schedule script followed
|
||||
by a succession of commands. Some commands require arguments (by using
|
||||
parentheses) and some (conditional checks) can have bodies with subcommands and
|
||||
an optional `else` with its corresponding body with subcommands.
|
||||
|
||||
Like in C, both whitespace and newlines are not part of the language and they
|
||||
get ignored during compilation. At the same time, this language accepts both C
|
||||
and C++ styles of comments, known as block comments (`/**/`) and line comments
|
||||
(`//`).
|
||||
|
||||
Each top-level schedule script consists on its name, followed by a list of
|
||||
commands delimited by braces (`{` and `}`). A schedule script must always have
|
||||
at least one command on its body.
|
||||
|
||||
A command's body is delimited by braces (`{` and `}`). A body must follow either
|
||||
a [conditional check](#conditional-checks) command or an `else`, meaning
|
||||
top-level bodies are not allowed. At the same time a conditional check must be
|
||||
followed by a body. An `else` must be followed by either a body or another
|
||||
conditional check command.
|
||||
|
||||
Even if this language's syntax is inspired by C, there are a few key differences:
|
||||
|
||||
- Commands are not separated by semicolons (`;`). Instead whitespace is used as
|
||||
separation.
|
||||
- Instead of having a single `if` conditional of which its parameters should
|
||||
evaluate to non-zero, this language uses
|
||||
[conditional checks](#conditional-checks). These are commands that receive
|
||||
parameters and have a body with parameters that would be executed if the
|
||||
command itself evaluated to true. This commands may be followed by an `else`,
|
||||
which has its own body.
|
||||
- There's no concept of functions, variables, loops, scopes, etc.
|
||||
- Each schedule script could be seen as a function itself, but said script
|
||||
can't "call" another scripts.
|
||||
|
||||
## Compiling
|
||||
|
||||
Compiling a high level schedule script should produce an array for each script
|
||||
in the file. Each array should contain a series of macros that can be
|
||||
`#include`d by a C preprocessor, like in the following example:
|
||||
|
||||
File: `build/src/overlays/actors/ovl_En_Ah/scheduleScripts.schl.inc`
|
||||
|
||||
```c
|
||||
static ScheduleScript D_80BD3DB0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x21 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x0B - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
/* 0x0B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x20 - 0x0F),
|
||||
/* 0x0F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 23, 0, 0x1D - 0x15),
|
||||
/* 0x15 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x1C - 0x19),
|
||||
/* 0x19 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_VAL_L(3),
|
||||
/* 0x20 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x21 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x37 - 0x25),
|
||||
/* 0x25 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x36 - 0x29),
|
||||
/* 0x29 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x30 - 0x2F),
|
||||
/* 0x2F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x30 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 2),
|
||||
/* 0x36 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x37 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
```
|
||||
|
||||
In the actor's C code:
|
||||
|
||||
```c
|
||||
#include "build/src/overlays/actors/ovl_En_Ah/scheduleScripts.schl.inc"
|
||||
```
|
||||
|
||||
## Commands
|
||||
|
||||
Commands are the fundamental (and almost only) building block of this language.
|
||||
A schedule script file must always contain at least one script, and a schedule
|
||||
script must always have at least one command. It's undefined behaviour if the
|
||||
script's control flow doesn't always lead to a return command.
|
||||
|
||||
To see how the command arguments work, please see the
|
||||
[corresponding section](#command-arguments).
|
||||
|
||||
Commands can be categorized in 4 major types:
|
||||
[Conditional checks](#conditional-checks),
|
||||
[unconditional branches](#unconditional-branches),
|
||||
[return commands](#return-commands) and
|
||||
[other commands](#other-commands).
|
||||
|
||||
### Generics and non-generics
|
||||
|
||||
Schedule scripts use both [short and long commands](#short-and-long-commands)
|
||||
for most of the [conditional checks](#conditional-checks) and
|
||||
[unconditional branches](#unconditional-branches) commands, making it optimal
|
||||
space-wise, but terrible to worry about when actually writing a schedule script
|
||||
from the user's point of view.
|
||||
|
||||
Due to this, this high level language allows for generic versions of those
|
||||
commands (a.k.a. suffix-less versions) that allow not having to worry about how
|
||||
many commands the body of a check has (and the byte length of them).
|
||||
|
||||
The rest of this section will mostly refer to the generic versions of the
|
||||
commands. The non-generic versions of each command are available to be used too,
|
||||
but their use is not recommended.
|
||||
|
||||
### Command arguments
|
||||
|
||||
Some commands require arguments. Arguments are used by checking commands to
|
||||
check something specific of the state of the game (what's the current day? what's
|
||||
the current scene? etc.) and take a decision based on it (branch to another
|
||||
command).
|
||||
|
||||
Arguments are enclosed in parentheses (`(` and `)`) and passed verbatim to the
|
||||
generated output, allowing a compiler for this language to not need to recognize
|
||||
any identifier used in arguments, allowing to use any custom identifier
|
||||
(specially useful for schedule result enums). Note this behaviour may
|
||||
change in a future version of the language.
|
||||
|
||||
### Conditional checks
|
||||
|
||||
Conditional checks commands are commands that take a decision based on
|
||||
the state of the game, allowing it to decide which set of subcommands to
|
||||
execute.
|
||||
|
||||
All conditional checks require an argument and a body of subcommands. A
|
||||
conditional check can optionally be followed by an `else`.
|
||||
|
||||
If the condition of a command is not satisfied and that command has
|
||||
an `else`, then control jumps to the body of that `else`. If
|
||||
there's no `else` and the condition isn't satisfied then control just
|
||||
falls through into the next command.
|
||||
|
||||
#### `if_week_event_reg`
|
||||
|
||||
Checks if the passed WeekEventReg flag is set, and execute the body of the
|
||||
command if it is set.
|
||||
|
||||
##### `if_week_event_reg` arguments
|
||||
|
||||
- Argument 0: A WeekEventReg flag. `WEEKEVENTREG_` macros are preferred.
|
||||
|
||||
##### `if_week_event_reg` example
|
||||
|
||||
```c
|
||||
if_week_event_reg (WEEKEVENTREG_61_02) {
|
||||
return_s (31)
|
||||
}
|
||||
return_s (30)
|
||||
```
|
||||
|
||||
##### `if_week_event_reg` non-generics
|
||||
|
||||
`if_week_event_reg_s` and `if_week_event_reg_l`
|
||||
|
||||
#### `if_time_range`
|
||||
|
||||
Checks if the current time is between the passed time range.
|
||||
|
||||
##### `if_time_range` arguments
|
||||
|
||||
- Argument 0: Hour component of the start time
|
||||
- Argument 1: Minute component of the start time
|
||||
- Argument 2: Hour component of the end time
|
||||
- Argument 3: Minute component of the end time
|
||||
|
||||
##### `if_time_range` example
|
||||
|
||||
```c
|
||||
// Checks if the current time is between 18:00 ~ 6:00
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
```
|
||||
|
||||
##### `if_time_range` non-generics
|
||||
|
||||
`if_time_range_s` and `if_time_range_l`
|
||||
|
||||
#### `if_misc`
|
||||
|
||||
Checks if the passed miscellaneous argument is true.
|
||||
|
||||
##### `if_misc` arguments
|
||||
|
||||
- Argument 0: A value of the `ScheduleCheckMisc` enum.
|
||||
|
||||
##### `if_misc` example
|
||||
|
||||
```c
|
||||
if_misc (SCHEDULE_CHECK_MISC_MASK_ROMANI) {
|
||||
return_s (33)
|
||||
} else {
|
||||
return_s (34)
|
||||
}
|
||||
```
|
||||
|
||||
##### `if_misc` non-generics
|
||||
|
||||
`if_misc_s`. Note there's no long version of this command. It is advised to
|
||||
minimize the amount of commands used on a `ìf_misc` body and `else`'s body.
|
||||
|
||||
#### `if_scene`
|
||||
|
||||
Checks if the current scene matches the one passed as argument.
|
||||
|
||||
##### `if_scene` arguments
|
||||
|
||||
- Argument 0: A value of the `SceneId` enum.
|
||||
|
||||
##### `if_scene` example
|
||||
|
||||
```c
|
||||
if_scene (SCENE_SECOM) {
|
||||
return_s (7)
|
||||
}
|
||||
```
|
||||
|
||||
##### `if_scene` non-generics
|
||||
|
||||
`if_scene_s` and `if_scene_l`
|
||||
|
||||
#### `if_day`
|
||||
|
||||
Checks if the current day matches the passed argument.
|
||||
|
||||
##### `if_day` arguments
|
||||
|
||||
- Argument 0: The day to check. For example, passing `1` will check for day 1.
|
||||
|
||||
##### `if_day` example
|
||||
|
||||
```c
|
||||
if_day (3) {
|
||||
return_l (1)
|
||||
}
|
||||
```
|
||||
|
||||
##### `if_day` non-generics
|
||||
|
||||
`if_day_s` and `if_day_l`
|
||||
|
||||
#### `if_before_time`
|
||||
|
||||
Checks if the current time is before the time passed as argument.
|
||||
|
||||
##### `if_before_time` arguments
|
||||
|
||||
- Argument 0: The hour component of the time.
|
||||
- Argument 1: The minute component of the time.
|
||||
|
||||
##### `if_before_time` example
|
||||
|
||||
```c
|
||||
if_before_time (8, 0) {
|
||||
return_s (19)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
```
|
||||
|
||||
##### `if_before_time` non-generics
|
||||
|
||||
`if_before_time_s` and `if_before_time_l`
|
||||
|
||||
##### `if_before_time` notes
|
||||
|
||||
This command performs the opposite check of `if_since_time`.
|
||||
|
||||
#### `if_since_time`
|
||||
|
||||
Checks if the current time is after or equal to the time passed as argument.
|
||||
|
||||
##### `if_since_time` arguments
|
||||
|
||||
- Argument 0: The hour component of the time.
|
||||
- Argument 1: The minute component of the time.
|
||||
|
||||
##### `if_since_time` example
|
||||
|
||||
```c
|
||||
if_since_time (13, 0) {
|
||||
return_s (9)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
```
|
||||
|
||||
##### `if_since_time` non-generics
|
||||
|
||||
`if_since_time_s` and `if_since_time_l`
|
||||
|
||||
##### `if_since_time` notes
|
||||
|
||||
This command performs the contrary check to `if_before_time`.
|
||||
|
||||
### Unconditional branches
|
||||
|
||||
Unconditional branches are basically the equivalent of C's `goto`s. They require
|
||||
a [label](#labels) to know where to branch to.
|
||||
|
||||
#### `branch`
|
||||
|
||||
Unconditionally transfer control to the passed label.
|
||||
|
||||
##### `branch` arguments
|
||||
|
||||
- Argument 0: The label to branch to.
|
||||
|
||||
##### `branch` example
|
||||
|
||||
```c
|
||||
if_day (3) {
|
||||
if_since_time (10, 0) {
|
||||
label_0x8:
|
||||
return_none
|
||||
} else {
|
||||
branch (label_0xF)
|
||||
}
|
||||
} else {
|
||||
if_time_range (10, 0, 20, 0) {
|
||||
branch (label_0x8)
|
||||
} else {
|
||||
label_0xF:
|
||||
return_s (21)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
##### `branch` non-generics
|
||||
|
||||
`branch_s` and `branch_l`
|
||||
|
||||
### `else`
|
||||
|
||||
An `else` signals which commands should be executed in case a
|
||||
[conditional check](#conditional-checks) does not evaluates to true. The `else`
|
||||
signals this by either having those instructions inside its own body (marked by
|
||||
braces) or by not having those braces but being immediately followed by another
|
||||
conditional check command, similar to C's `else if`.
|
||||
|
||||
#### `else` example
|
||||
|
||||
The following two scripts are equivalent:
|
||||
|
||||
```c
|
||||
if_time_range (9, 50, 18, 1) {
|
||||
return_time (9, 50, 18, 1, 1)
|
||||
} else {
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 2)
|
||||
} else {
|
||||
return_l (0)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```c
|
||||
if_time_range (9, 50, 18, 1) {
|
||||
return_time (9, 50, 18, 1, 1)
|
||||
} else if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 2)
|
||||
} else {
|
||||
return_l (0)
|
||||
}
|
||||
```
|
||||
|
||||
### Return commands
|
||||
|
||||
A return command signals the end of the script and halts its execution.
|
||||
|
||||
A return command allows to optionally return a value and/or a time range to the
|
||||
calling actor so it can change behavior accordingly.
|
||||
|
||||
A schedule script with a control flow that leads to no return command is
|
||||
undefined behaviour.
|
||||
|
||||
#### `return_s`
|
||||
|
||||
Allows to return a short (one byte) value.
|
||||
|
||||
##### `return_s` arguments
|
||||
|
||||
- Argument 0: The value to return. It must fit in a `u8`.
|
||||
|
||||
##### `return_s` example
|
||||
|
||||
```c
|
||||
if_time_range (8, 0, 12, 0) {
|
||||
return_s (EN_NB_SCH_1)
|
||||
}
|
||||
```
|
||||
|
||||
#### `return_l`
|
||||
|
||||
Allows to return a long (two bytes) value.
|
||||
|
||||
Please note that the vanilla interpreter for the schedule scripts has a bug on
|
||||
which the upper byte of a long returned value will be discarded (will be
|
||||
truncated to a `u8`), so please ensure your returned values always fit in the
|
||||
0-255 range.
|
||||
|
||||
##### `return_l` arguments
|
||||
|
||||
- Argument 0: The value to return. It must fit in a `u16`.
|
||||
|
||||
##### `return_l` example
|
||||
|
||||
```c
|
||||
if_scene (SCENE_TOWN) {
|
||||
return_l (1)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
```
|
||||
|
||||
#### `return_none`
|
||||
|
||||
The schedule finished without returning a value. The internal `hasResult`
|
||||
member of the `ScheduleOutput` struct will be set to `false`.
|
||||
|
||||
##### `return_none` arguments
|
||||
|
||||
No arguments.
|
||||
|
||||
##### `return_none` example
|
||||
|
||||
```c
|
||||
if_week_event_reg (WEEKEVENTREG_HAD_MIDNIGHT_MEETING) {
|
||||
return_none
|
||||
}
|
||||
```
|
||||
|
||||
#### `return_empty`
|
||||
|
||||
The schedule finished without changing the previous value. The internal `hasResult`
|
||||
member of the `ScheduleOutput` struct will be set to `true`.
|
||||
|
||||
##### `return_empty` arguments
|
||||
|
||||
No arguments.
|
||||
|
||||
##### `return_empty` example
|
||||
|
||||
```c
|
||||
if_time_range (15, 50, 16, 15) {
|
||||
return_empty
|
||||
}
|
||||
```
|
||||
|
||||
#### `return_time`
|
||||
|
||||
Returns a time range and a 1 byte value.
|
||||
|
||||
##### `return_time` arguments
|
||||
|
||||
- Argument 0: Hour component of the start time
|
||||
- Argument 1: Minute component of the start time
|
||||
- Argument 2: Hour component of the end time
|
||||
- Argument 3: Minute component of the end time
|
||||
- Argument 4: A value to return. It must fit in a `u8`
|
||||
|
||||
##### `return_time` example
|
||||
|
||||
```c
|
||||
if_time_range (0, 0, 6, 0) {
|
||||
return_time (0, 0, 6, 0, TOILET_HAND_SCH_AVAILABLE)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
```
|
||||
|
||||
### Other commands
|
||||
|
||||
#### `nop`
|
||||
|
||||
No operation. Doesn't perform an action or a check.
|
||||
|
||||
##### `nop` arguments
|
||||
|
||||
- Argument 0: Unknown meaning.
|
||||
- Argument 1: Unknown meaning.
|
||||
- Argument 2: Unknown meaning.
|
||||
|
||||
##### `nop` example
|
||||
|
||||
```c
|
||||
nop (0, 1, 2)
|
||||
```
|
||||
|
||||
### Operators
|
||||
|
||||
Operators can be applied to some commands.
|
||||
|
||||
Currently only one operator is allowed on the language, the [`not`](#not) operator.
|
||||
|
||||
#### `not`
|
||||
|
||||
A `not` is a special kind of command that doesn't get compiled into the actual
|
||||
low level script, instead it changes the meaning of the check that's right next
|
||||
to it by inverting the logic of the check. In other words, the subcommands of a
|
||||
conditional check command will be executed if the check of said command
|
||||
evaluates to false instead of true.
|
||||
|
||||
A `not` must always be followed by a [conditional check command](#conditional-checks).
|
||||
|
||||
##### `not` example
|
||||
|
||||
The following two scripts are equivalent:
|
||||
|
||||
```c
|
||||
if_week_event_reg (WEEKEVENTREG_51_08) {
|
||||
if_since_time (22, 0) {
|
||||
return_s (12)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_s (12)
|
||||
}
|
||||
```
|
||||
|
||||
```c
|
||||
not if_week_event_reg (WEEKEVENTREG_51_08) {
|
||||
return_s (12)
|
||||
} else {
|
||||
if_since_time (22, 0) {
|
||||
return_s (12)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Labels
|
||||
|
||||
A label is a special kind of command that doesn't get compiled into the actual
|
||||
low level script, instead it is used as a marker to be used for
|
||||
[`branch`es](#branch).
|
||||
|
||||
A label is defined as an alphanumeric identifier (a to z, digits and
|
||||
underscores) followed by a colon (`:`). The colon is not considered part of the
|
||||
label's name.
|
||||
|
||||
A label must always be followed by another command that isn't another label.
|
||||
|
||||
## Formal grammar
|
||||
|
||||
This section presents the formal grammar for the Schedule scripting language.
|
||||
|
||||
```yac
|
||||
<scriptFile> : <functionList>
|
||||
;
|
||||
|
||||
<functionList> : <functionScript>
|
||||
| <functionList> <functionScript>
|
||||
;
|
||||
|
||||
<functionScript> : IDENTIFIER '{' <cmdList> '}'
|
||||
;
|
||||
|
||||
<cmdList> : <labeledCmd>
|
||||
| <cmdList> <labeledCmd>
|
||||
;
|
||||
|
||||
<labeledCmd> : <command>
|
||||
| IDENTIFIER ':' <command>
|
||||
;
|
||||
|
||||
<command> : <conditionalCmd>
|
||||
| <unconditionalCmd>
|
||||
| <returnCmd>
|
||||
| <miscCmd>
|
||||
;
|
||||
|
||||
<conditionalCmd> : <conditionalExprBody> <else>
|
||||
| <conditionalExprBody>
|
||||
;
|
||||
|
||||
<unconditionalCmd> : <tokenBranch> <args>
|
||||
;
|
||||
|
||||
<returnCmd> : RETURN_S <args>
|
||||
| RETURN_L <args>
|
||||
| RETURN_NONE
|
||||
| RETURN_EMPTY
|
||||
| RETURN_TIME <args>
|
||||
;
|
||||
|
||||
<miscCmd> : NOP <args>
|
||||
;
|
||||
|
||||
<conditionalExprBody> : NOT <conditionalExpr> <body>
|
||||
| <conditionalExpr> <body>
|
||||
;
|
||||
|
||||
<conditionalExpr> : <tokenIfWeekEventReg> <args>
|
||||
| <tokenIfTimeRange> <args>
|
||||
| <tokenIfMisc> <args>
|
||||
| <tokenIfScene> <args>
|
||||
| <tokenIfDay> <args>
|
||||
| <tokenIfBeforeTime> <args>
|
||||
| <tokenIfSinceTime> <args>
|
||||
;
|
||||
|
||||
<else> : ELSE <body>
|
||||
| ELSE <conditionalCmd>
|
||||
;
|
||||
|
||||
<tokenIfWeekEventReg> : IF_WEEK_EVENT_REG
|
||||
| IF_WEEK_EVENT_REG_S
|
||||
| IF_WEEK_EVENT_REG_L
|
||||
;
|
||||
|
||||
<tokenIfTimeRange> : IF_TIME_RANGE
|
||||
| IF_TIME_RANGE_S
|
||||
| IF_TIME_RANGE_L
|
||||
;
|
||||
|
||||
<tokenIfMisc> : IF_MISC
|
||||
| IF_MISC_S
|
||||
;
|
||||
|
||||
<tokenIfScene> : IF_SCENE
|
||||
| IF_SCENE_S
|
||||
| IF_SCENE_L
|
||||
;
|
||||
|
||||
<tokenIfDay> : IF_DAY
|
||||
| IF_DAY_S
|
||||
| IF_DAY_L
|
||||
;
|
||||
|
||||
<tokenIfBeforeTime> : IF_BEFORE_TIME
|
||||
| IF_BEFORE_TIME_S
|
||||
| IF_BEFORE_TIME_L
|
||||
;
|
||||
|
||||
<tokenIfSinceTime> : IF_SINCE_TIME
|
||||
| IF_SINCE_TIME_S
|
||||
| IF_SINCE_TIME_L
|
||||
;
|
||||
|
||||
<tokenBranch> : BRANCH
|
||||
| BRANCH_S
|
||||
| BRANCH_L
|
||||
;
|
||||
|
||||
<body> : '{' '}'
|
||||
| '{' <cmdList> '}'
|
||||
;
|
||||
|
||||
<args> : '(' ')'
|
||||
| '(' <args_list> ')'
|
||||
;
|
||||
|
||||
<args_list> : <arg_elem>
|
||||
| <args_list> ',' <arg_elem>
|
||||
;
|
||||
|
||||
<arg_elem> : NO_PARENTHESIS
|
||||
| <args>
|
||||
;
|
||||
```
|
||||
|
||||
### Tokens
|
||||
|
||||
The presented grammar expects a few tokens.
|
||||
|
||||
First column is the corresponding token and right is a regular expression to
|
||||
match said token.
|
||||
|
||||
```regex
|
||||
IDENTIFIER [a-zA-Z0-9_]+
|
||||
|
||||
IF_WEEK_EVENT_REG if_week_event_reg
|
||||
IF_WEEK_EVENT_REG_S if_week_event_reg_s
|
||||
IF_WEEK_EVENT_REG_L if_week_event_reg_l
|
||||
IF_TIME_RANGE if_time_range
|
||||
IF_TIME_RANGE_S if_time_range_s
|
||||
IF_TIME_RANGE_L if_time_range_l
|
||||
IF_MISC if_misc
|
||||
IF_MISC_S if_misc_s
|
||||
IF_SCENE if_scene
|
||||
IF_SCENE_S if_scene_s
|
||||
IF_SCENE_L if_scene_l
|
||||
IF_DAY if_day
|
||||
IF_DAY_S if_day_s
|
||||
IF_DAY_L if_day_l
|
||||
IF_BEFORE_TIME if_before_time
|
||||
IF_BEFORE_TIME_S if_before_time_s
|
||||
IF_BEFORE_TIME_L if_before_time_l
|
||||
IF_SINCE_TIME if_since_time
|
||||
IF_SINCE_TIME_S if_since_time_s
|
||||
IF_SINCE_TIME_L if_since_time_l
|
||||
|
||||
BRANCH branch
|
||||
BRANCH_S branch_s
|
||||
BRANCH_L branch_l
|
||||
|
||||
RETURN_S return_s
|
||||
RETURN_L return_l
|
||||
RETURN_NONE return_none
|
||||
RETURN_EMPTY return_empty
|
||||
RETURN_TIME return_time
|
||||
|
||||
NOP nop
|
||||
|
||||
ELSE else
|
||||
NOT not
|
||||
|
||||
NO_PARENTHESIS [^\(\)]+
|
||||
```
|
@ -181,6 +181,7 @@ def main():
|
||||
else:
|
||||
files = glob.glob("src/**/*.c", recursive=True)
|
||||
extra_files = glob.glob("assets/**/*.xml", recursive=True)
|
||||
extra_files += glob.glob("src/**/*.schl", recursive=True)
|
||||
|
||||
format_files(files, extra_files, nb_jobs)
|
||||
|
||||
|
@ -518,8 +518,6 @@ void Inventory_IncrementSkullTokenCount(s16 sceneIndex);
|
||||
s16 Inventory_GetSkullTokenCount(s16 sceneIndex);
|
||||
void Inventory_SaveLotteryCodeGuess(PlayState* play);
|
||||
|
||||
s32 Schedule_RunScript(PlayState* play, u8* script, ScheduleOutput* output);
|
||||
|
||||
uintptr_t KaleidoManager_FaultAddrConv(uintptr_t address, void* param);
|
||||
void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl);
|
||||
void KaleidoManager_ClearOvl(KaleidoMgrOverlay* ovl);
|
||||
|
@ -37,6 +37,7 @@ extern ObjectId gObjectTableSize;
|
||||
extern RomFile gObjectTable[OBJECT_ID_MAX];
|
||||
|
||||
extern SceneTableEntry gSceneTable[SCENE_MAX];
|
||||
|
||||
extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[2];
|
||||
extern KaleidoMgrOverlay* gKaleidoMgrCurOvl;
|
||||
|
||||
|
@ -27,6 +27,8 @@
|
||||
* - HandleSchedule: Holds the actual logic of how to actually follow the schedule based on the processed output, called by FollowSchedule
|
||||
*/
|
||||
|
||||
struct PlayState;
|
||||
|
||||
// Macro to convert the time format used in the save struct into the format used in Schedule
|
||||
#define SCHEDULE_CONVERT_TIME(time) ((s32)((time) - 0x10000 / 360 * 90))
|
||||
|
||||
@ -256,4 +258,8 @@ typedef struct {
|
||||
#define SCHEDULE_CMD_BRANCH_L(offset) \
|
||||
SCHEDULE_CMD_ID_BRANCH_L, SCHEDULE_PACK_S16(offset)
|
||||
|
||||
typedef u8 ScheduleScript;
|
||||
|
||||
s32 Schedule_RunScript(struct PlayState* play, ScheduleScript* script, ScheduleOutput* output);
|
||||
|
||||
#endif
|
||||
|
@ -285,7 +285,7 @@ static u8 sScheduleCmdSizes[] = {
|
||||
sizeof(ScheduleCmdBranchL), // SCHEDULE_CMD_ID_BRANCH_L
|
||||
};
|
||||
|
||||
s32 Schedule_RunScript(PlayState* play, u8* script, ScheduleOutput* output) {
|
||||
s32 Schedule_RunScript(PlayState* play, ScheduleScript* script, ScheduleOutput* output) {
|
||||
u8 size;
|
||||
s32 stop;
|
||||
|
||||
|
29
src/overlays/actors/ovl_En_Ah/scheduleScripts.schl
Normal file
29
src/overlays/actors/ovl_En_Ah/scheduleScripts.schl
Normal file
@ -0,0 +1,29 @@
|
||||
D_80BD3DB0 {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_day (3) {
|
||||
return_l (1)
|
||||
} else if_day (2) {
|
||||
if_time_range (21, 0, 23, 0) {
|
||||
return_l (3)
|
||||
} else if_week_event_reg (WEEKEVENTREG_HAD_MIDNIGHT_MEETING) {
|
||||
return_none
|
||||
} else {
|
||||
return_l (1)
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_OMOYA) {
|
||||
if_day (3) {
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -18,25 +18,7 @@ void EnAh_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
void func_80BD3768(EnAh* this, PlayState* play);
|
||||
|
||||
static u8 D_80BD3DB0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x21 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x0B - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
/* 0x0B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x20 - 0x0F),
|
||||
/* 0x0F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 23, 0, 0x1D - 0x15),
|
||||
/* 0x15 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x1C - 0x19),
|
||||
/* 0x19 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_VAL_L(3),
|
||||
/* 0x20 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x21 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x37 - 0x25),
|
||||
/* 0x25 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x36 - 0x29),
|
||||
/* 0x29 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x30 - 0x2F),
|
||||
/* 0x2F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x30 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 2),
|
||||
/* 0x36 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x37 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Ah/scheduleScripts.schl.inc"
|
||||
|
||||
s32 D_80BD3DE8[] = { 0x0E28FF0C, 0x10000000 };
|
||||
|
||||
|
25
src/overlays/actors/ovl_En_Al/scheduleScripts.schl
Normal file
25
src/overlays/actors/ovl_En_Al/scheduleScripts.schl
Normal file
@ -0,0 +1,25 @@
|
||||
D_80BDFC70 {
|
||||
if_day (3) {
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
if_time_range (8, 0, 10, 0) {
|
||||
return_l (1)
|
||||
} else if_time_range (10, 0, 10, 55) {
|
||||
return_time (10, 0, 10, 55, 1)
|
||||
} else if_time_range (10, 55, 11, 45) {
|
||||
if_day (2) {
|
||||
return_time (10, 55, 11, 45, 1)
|
||||
} else {
|
||||
return_time (10, 55, 11, 45, 3)
|
||||
}
|
||||
} else if_time_range (11, 45, 20, 0) {
|
||||
return_time (11, 45, 20, 0, 1)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
}
|
@ -17,23 +17,7 @@ void EnAl_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
void func_80BDF6C4(EnAl* this, PlayState* play);
|
||||
|
||||
static u8 D_80BDFC70[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x11 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x0B - 0x0A),
|
||||
/* 0x0A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0B */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 2),
|
||||
/* 0x11 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(8, 0, 10, 0, 0x46 - 0x17),
|
||||
/* 0x17 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 0, 10, 55, 0x40 - 0x1D),
|
||||
/* 0x1D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 55, 11, 45, 0x30 - 0x23),
|
||||
/* 0x23 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 45, 20, 0, 0x2A - 0x29),
|
||||
/* 0x29 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x2A */ SCHEDULE_CMD_RET_TIME(11, 45, 20, 0, 1),
|
||||
/* 0x30 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x3A - 0x34),
|
||||
/* 0x34 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 45, 1),
|
||||
/* 0x3A */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 45, 3),
|
||||
/* 0x40 */ SCHEDULE_CMD_RET_TIME(10, 0, 10, 55, 1),
|
||||
/* 0x46 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Al/scheduleScripts.schl.inc"
|
||||
|
||||
s32 D_80BDFCBC[] = {
|
||||
0x09000017, 0x0E27A50C, 0x09000018, 0x0E27A60C, 0x09000017, 0x0E27A70C, 0x09000018, 0x0E27A80C,
|
||||
|
233
src/overlays/actors/ovl_En_An/scheduleScripts.schl
Normal file
233
src/overlays/actors/ovl_En_An/scheduleScripts.schl
Normal file
@ -0,0 +1,233 @@
|
||||
sScheduleScript {
|
||||
if_day (1) {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 10, 55) {
|
||||
return_time (6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE)
|
||||
} else if_time_range (10, 55, 11, 10) {
|
||||
return_time (10, 55, 11, 10, ANJU_SCH_WALKING_40)
|
||||
} else if_time_range (11, 10, 11, 30) {
|
||||
return_time (11, 10, 11, 30, ANJU_SCH_COOKING)
|
||||
} else if_time_range (11, 30, 11, 50) {
|
||||
return_time (11, 30, 11, 50, ANJU_SCH_WALKING_42)
|
||||
} else if_time_range (11, 50, 11, 55) {
|
||||
return_time (11, 50, 11, 55, ANJU_SCH_DOOR_26)
|
||||
} else if_time_range (11, 55, 12, 0) {
|
||||
return_time (11, 55, 12, 0, ANJU_SCH_WALKING_43)
|
||||
} else if_time_range (12, 0, 12, 15) {
|
||||
return_time (12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANNY)
|
||||
} else if_time_range (12, 15, 12, 20) {
|
||||
return_time (12, 15, 12, 20, ANJU_SCH_WALKING_44)
|
||||
} else if_time_range (12, 20, 12, 25) {
|
||||
return_time (12, 20, 12, 25, ANJU_SCH_DOOR_27)
|
||||
} else if_time_range (12, 25, 12, 55) {
|
||||
return_time (12, 25, 12, 55, ANJU_SCH_WALKING_45)
|
||||
} else if_time_range (12, 55, 13, 0) {
|
||||
return_time (12, 55, 13, 0, ANJU_SCH_DOOR_28)
|
||||
} else if_time_range (13, 15, 13, 20) {
|
||||
return_time (13, 15, 13, 20, ANJU_SCH_DOOR_29)
|
||||
} else if_time_range (13, 20, 13, 50) {
|
||||
return_time (13, 20, 13, 50, ANJU_SCH_WALKING_46)
|
||||
} else if_time_range (13, 50, 14, 8) {
|
||||
return_time (13, 50, 14, 8, ANJU_SCH_RECEPTIONIST_IDLE)
|
||||
} else if_time_range (14, 8, 14, 18) {
|
||||
return_time (14, 8, 14, 18, ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN)
|
||||
} else if_time_range (14, 18, 16, 10) {
|
||||
return_time (14, 18, 16, 10, ANJU_SCH_RECEPTIONIST_IDLE)
|
||||
} else if_time_range (16, 10, 16, 30) {
|
||||
return_time (16, 10, 16, 30, ANJU_SCH_ATTEND_GORON)
|
||||
} else if_time_range (16, 30, 19, 50) {
|
||||
return_time (16, 30, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE)
|
||||
} else if_time_range (19, 50, 20, 20) {
|
||||
return_time (19, 50, 20, 20, ANJU_SCH_WALKING_47)
|
||||
} else if_time_range (20, 20, 20, 30) {
|
||||
return_time (20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME)
|
||||
} else if_time_range (20, 30, 21, 5) {
|
||||
return_time (20, 30, 21, 5, ANJU_SCH_WALKING_48)
|
||||
} else if_time_range (21, 5, 21, 10) {
|
||||
return_time (21, 5, 21, 10, ANJU_SCH_DOOR_30)
|
||||
} else if_week_event_reg (WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING) {
|
||||
if_time_range (23, 10, 23, 15) {
|
||||
return_time (23, 10, 23, 15, ANJU_SCH_DOOR_31)
|
||||
} else if_time_range (23, 15, 0, 0) {
|
||||
return_time (23, 15, 0, 0, ANJU_SCH_WALKING_49)
|
||||
} else if_time_range (0, 0, 6, 0) {
|
||||
if_week_event_reg (WEEKEVENTREG_HAD_MIDNIGHT_MEETING) {
|
||||
return_none
|
||||
} else {
|
||||
return_time (0, 0, 6, 0, ANJU_SCH_MIDNIGHT_MEETING)
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (2) {
|
||||
if_week_event_reg (WEEKEVENTREG_HAD_MIDNIGHT_MEETING) {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 10, 55) {
|
||||
return_time (6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE)
|
||||
} else if_time_range (10, 55, 11, 10) {
|
||||
return_time (10, 55, 11, 10, ANJU_SCH_WALKING_40)
|
||||
} else if_time_range (11, 10, 11, 30) {
|
||||
return_time (11, 10, 11, 30, ANJU_SCH_COOKING)
|
||||
} else if_time_range (11, 30, 11, 50) {
|
||||
return_time (11, 30, 11, 50, ANJU_SCH_WALKING_42)
|
||||
} else if_time_range (11, 50, 11, 55) {
|
||||
return_time (11, 50, 11, 55, ANJU_SCH_DOOR_26)
|
||||
} else if_time_range (11, 55, 12, 0) {
|
||||
return_time (11, 55, 12, 0, ANJU_SCH_WALKING_43)
|
||||
} else if_time_range (12, 0, 12, 15) {
|
||||
return_time (12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANNY)
|
||||
} else if_time_range (12, 15, 12, 20) {
|
||||
return_time (12, 15, 12, 20, ANJU_SCH_WALKING_44)
|
||||
} else if_time_range (12, 20, 12, 25) {
|
||||
return_time (12, 20, 12, 25, ANJU_SCH_DOOR_27)
|
||||
} else if_time_range (12, 25, 12, 55) {
|
||||
return_time (12, 25, 12, 55, ANJU_SCH_WALKING_45)
|
||||
} else if_time_range (12, 55, 13, 0) {
|
||||
return_time (12, 55, 13, 0, ANJU_SCH_DOOR_28)
|
||||
} else if_time_range (13, 15, 13, 20) {
|
||||
return_time (13, 15, 13, 20, ANJU_SCH_DOOR_29)
|
||||
} else if_time_range (13, 20, 13, 50) {
|
||||
return_time (13, 20, 13, 50, ANJU_SCH_WALKING_46)
|
||||
} else if_time_range (13, 50, 19, 50) {
|
||||
return_time (13, 50, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE)
|
||||
} else if_time_range (19, 50, 20, 20) {
|
||||
return_time (19, 50, 20, 20, ANJU_SCH_WALKING_47)
|
||||
} else if_time_range (20, 20, 20, 30) {
|
||||
return_time (20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME)
|
||||
} else if_time_range (20, 30, 21, 5) {
|
||||
return_time (20, 30, 21, 5, ANJU_SCH_WALKING_48)
|
||||
} else if_time_range (21, 5, 21, 10) {
|
||||
return_time (21, 5, 21, 10, ANJU_SCH_DOOR_30)
|
||||
} else if_time_range (21, 30, 23, 0) {
|
||||
return_time (21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_YADOYA) {
|
||||
if_time_range (11, 3, 11, 9) {
|
||||
return_time (11, 3, 11, 9, ANJU_SCH_DOOR_32)
|
||||
} else if_time_range (11, 9, 11, 29) {
|
||||
return_time (11, 9, 11, 29, ANJU_SCH_WALKING_50)
|
||||
} else if_time_range (11, 29, 11, 39) {
|
||||
return_time (11, 29, 11, 39, ANJU_SCH_DOOR_33)
|
||||
} else if_time_range (17, 24, 17, 30) {
|
||||
return_time (17, 24, 17, 30, ANJU_SCH_DOOR_34)
|
||||
} else if_time_range (17, 30, 17, 55) {
|
||||
return_time (17, 30, 17, 55, ANJU_SCH_WALKING_51)
|
||||
} else if_time_range (17, 55, 18, 0) {
|
||||
return_time (17, 55, 18, 0, ANJU_SCH_DOOR_35)
|
||||
} else if_time_range (18, 0, 19, 50) {
|
||||
return_time (18, 0, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE)
|
||||
} else if_time_range (19, 50, 20, 20) {
|
||||
return_time (19, 50, 20, 20, ANJU_SCH_WALKING_47)
|
||||
} else if_time_range (20, 20, 20, 30) {
|
||||
return_time (20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME)
|
||||
} else if_time_range (20, 30, 21, 0) {
|
||||
return_time (20, 30, 21, 0, ANJU_SCH_WALKING_48)
|
||||
} else if_time_range (21, 0, 21, 5) {
|
||||
return_time (21, 0, 21, 5, ANJU_SCH_DOOR_30)
|
||||
} else if_time_range (21, 30, 23, 0) {
|
||||
return_time (21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (11, 29, 11, 39) {
|
||||
return_time (11, 29, 11, 39, ANJU_SCH_DOOR_37)
|
||||
} else if_time_range (11, 39, 12, 25) {
|
||||
return_time (11, 39, 12, 25, ANJU_SCH_WALKING_54)
|
||||
} else if_time_range (12, 25, 13, 15) {
|
||||
return_time (12, 25, 13, 15, ANJU_SCH_WALKING_55)
|
||||
} else if_time_range (15, 55, 16, 45) {
|
||||
return_time (15, 55, 16, 45, ANJU_SCH_WALKING_58)
|
||||
} else if_time_range (16, 45, 17, 24) {
|
||||
return_time (16, 45, 17, 24, ANJU_SCH_WALKING_59)
|
||||
} else if_time_range (17, 24, 17, 30) {
|
||||
return_time (17, 24, 17, 30, ANJU_SCH_DOOR_38)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (11, 39, 12, 25) {
|
||||
return_time (11, 39, 12, 25, ANJU_SCH_WALKING_60)
|
||||
} else if_time_range (12, 25, 13, 15) {
|
||||
return_time (12, 25, 13, 15, ANJU_SCH_WALKING_61)
|
||||
} else if_time_range (15, 55, 16, 45) {
|
||||
return_time (15, 55, 16, 45, ANJU_SCH_WALKING_62)
|
||||
} else if_time_range (16, 45, 17, 24) {
|
||||
return_time (16, 45, 17, 24, ANJU_SCH_WALKING_63)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_ALLEY) {
|
||||
if_time_range (13, 15, 13, 45) {
|
||||
return_time (13, 15, 13, 45, ANJU_SCH_WALKING_56)
|
||||
} else if_time_range (13, 45, 15, 25) {
|
||||
return_time (13, 45, 15, 25, ANJU_SCH_LAUNDRY_POOL_SIT)
|
||||
} else if_time_range (15, 25, 15, 55) {
|
||||
return_time (15, 25, 15, 55, ANJU_SCH_WALKING_57)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (3) {
|
||||
if_week_event_reg (WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES) {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 11, 0) {
|
||||
return_time (6, 0, 11, 0, ANJU_SCH_SWEEPING)
|
||||
} else if_time_range (11, 0, 11, 25) {
|
||||
return_time (11, 0, 11, 25, ANJU_SCH_WALKING_52)
|
||||
} else if_time_range (11, 25, 11, 30) {
|
||||
return_time (11, 25, 11, 30, ANJU_SCH_DOOR_36)
|
||||
} else if_time_range (11, 30, 11, 50) {
|
||||
return_time (11, 30, 11, 50, ANJU_SCH_WALKING_53)
|
||||
} else if_time_range (11, 50, 12, 0) {
|
||||
return_time (11, 50, 12, 0, ANJU_SCH_DOOR_39)
|
||||
} else if_time_range (18, 0, 5, 0) {
|
||||
return_time (18, 0, 5, 0, ANJU_SCH_WAITING_FOR_KAFEI)
|
||||
} else if_time_range (5, 0, 6, 0) {
|
||||
return_time (5, 0, 6, 0, ANJU_SCH_WAITING_FOR_KAFEI)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 11, 0) {
|
||||
return_time (6, 0, 11, 0, ANJU_SCH_SWEEPING)
|
||||
} else if_time_range (11, 0, 11, 25) {
|
||||
return_time (11, 0, 11, 25, ANJU_SCH_WALKING_52)
|
||||
} else if_time_range (11, 25, 11, 30) {
|
||||
return_time (11, 25, 11, 30, ANJU_SCH_DOOR_36)
|
||||
} else if_time_range (11, 30, 11, 50) {
|
||||
return_time (11, 30, 11, 50, ANJU_SCH_WALKING_53)
|
||||
} else if_time_range (11, 50, 12, 0) {
|
||||
return_time (11, 50, 12, 0, ANJU_SCH_DOOR_39)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_OMOYA) {
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, ANJU_SCH_RANCH)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -158,442 +158,7 @@ typedef enum AnjuScheduleResult {
|
||||
/* 64 */ ANJU_SCH_MAX
|
||||
} AnjuScheduleResult;
|
||||
|
||||
static u8 sScheduleScript[] = {
|
||||
/* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005),
|
||||
/* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A),
|
||||
/* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x14A - 0x011),
|
||||
/* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018),
|
||||
/* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F),
|
||||
/* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026),
|
||||
/* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D),
|
||||
/* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034),
|
||||
/* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B),
|
||||
/* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042),
|
||||
/* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049),
|
||||
/* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050),
|
||||
/* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057),
|
||||
/* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E),
|
||||
/* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065),
|
||||
/* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C),
|
||||
/* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073),
|
||||
/* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079),
|
||||
/* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F),
|
||||
/* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085),
|
||||
/* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B),
|
||||
/* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091),
|
||||
/* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097),
|
||||
/* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D),
|
||||
/* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1),
|
||||
/* 0x0A1 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8),
|
||||
/* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE),
|
||||
/* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4),
|
||||
/* 0x0B4 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9),
|
||||
/* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_MIDNIGHT_MEETING),
|
||||
/* 0x0BF */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_WALKING_49),
|
||||
/* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_DOOR_31),
|
||||
/* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30),
|
||||
/* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_WALKING_48),
|
||||
/* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME),
|
||||
/* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47),
|
||||
/* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE),
|
||||
/* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_ATTEND_GORON),
|
||||
/* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_RECEPTIONIST_IDLE),
|
||||
/* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN),
|
||||
/* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_RECEPTIONIST_IDLE),
|
||||
/* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_WALKING_46),
|
||||
/* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_DOOR_29),
|
||||
/* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_DOOR_28),
|
||||
/* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_WALKING_45),
|
||||
/* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_DOOR_27),
|
||||
/* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_WALKING_44),
|
||||
/* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANNY),
|
||||
/* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_WALKING_43),
|
||||
/* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_DOOR_26),
|
||||
/* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_42),
|
||||
/* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING),
|
||||
/* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_WALKING_40),
|
||||
/* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE),
|
||||
/* 0x150 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156),
|
||||
/* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B),
|
||||
/* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160),
|
||||
/* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167),
|
||||
/* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D),
|
||||
/* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173),
|
||||
/* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179),
|
||||
/* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F),
|
||||
/* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185),
|
||||
/* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B),
|
||||
/* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191),
|
||||
/* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197),
|
||||
/* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D),
|
||||
/* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3),
|
||||
/* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9),
|
||||
/* 0x1A9 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM),
|
||||
/* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_DOOR_30),
|
||||
/* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_WALKING_48),
|
||||
/* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME),
|
||||
/* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47),
|
||||
/* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE),
|
||||
/* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_DOOR_35),
|
||||
/* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_WALKING_51),
|
||||
/* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_DOOR_34),
|
||||
/* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_DOOR_33),
|
||||
/* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_WALKING_50),
|
||||
/* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_DOOR_32),
|
||||
/* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6),
|
||||
/* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC),
|
||||
/* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202),
|
||||
/* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208),
|
||||
/* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E),
|
||||
/* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214),
|
||||
/* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A),
|
||||
/* 0x21A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_DOOR_38),
|
||||
/* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_WALKING_59),
|
||||
/* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_WALKING_58),
|
||||
/* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_WALKING_55),
|
||||
/* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_WALKING_54),
|
||||
/* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_DOOR_37),
|
||||
/* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243),
|
||||
/* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249),
|
||||
/* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F),
|
||||
/* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255),
|
||||
/* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B),
|
||||
/* 0x25B */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_WALKING_63),
|
||||
/* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_WALKING_62),
|
||||
/* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_WALKING_61),
|
||||
/* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_WALKING_60),
|
||||
/* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278),
|
||||
/* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E),
|
||||
/* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284),
|
||||
/* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A),
|
||||
/* 0x28A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_WALKING_57),
|
||||
/* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_LAUNDRY_POOL_SIT),
|
||||
/* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_WALKING_56),
|
||||
/* 0x29D */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3),
|
||||
/* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA),
|
||||
/* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1),
|
||||
/* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8),
|
||||
/* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF),
|
||||
/* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6),
|
||||
/* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD),
|
||||
/* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4),
|
||||
/* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB),
|
||||
/* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1),
|
||||
/* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7),
|
||||
/* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED),
|
||||
/* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3),
|
||||
/* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9),
|
||||
/* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF),
|
||||
/* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305),
|
||||
/* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B),
|
||||
/* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311),
|
||||
/* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317),
|
||||
/* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D),
|
||||
/* 0x31D */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM),
|
||||
/* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30),
|
||||
/* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_WALKING_48),
|
||||
/* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME),
|
||||
/* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47),
|
||||
/* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE),
|
||||
/* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_WALKING_46),
|
||||
/* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_DOOR_29),
|
||||
/* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_DOOR_28),
|
||||
/* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_WALKING_45),
|
||||
/* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_DOOR_27),
|
||||
/* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_WALKING_44),
|
||||
/* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANNY),
|
||||
/* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_WALKING_43),
|
||||
/* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_DOOR_26),
|
||||
/* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_42),
|
||||
/* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING),
|
||||
/* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_WALKING_40),
|
||||
/* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE),
|
||||
/* 0x390 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396),
|
||||
/* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A),
|
||||
/* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E),
|
||||
/* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4),
|
||||
/* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA),
|
||||
/* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0),
|
||||
/* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6),
|
||||
/* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC),
|
||||
/* 0x3BC */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_DOOR_39),
|
||||
/* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_53),
|
||||
/* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_DOOR_36),
|
||||
/* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_WALKING_52),
|
||||
/* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING),
|
||||
/* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF),
|
||||
/* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5),
|
||||
/* 0x3E5 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_RANCH),
|
||||
/* 0x3EC */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1),
|
||||
/* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7),
|
||||
/* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD),
|
||||
/* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403),
|
||||
/* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409),
|
||||
/* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F),
|
||||
/* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415),
|
||||
/* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B),
|
||||
/* 0x41B */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_WAITING_FOR_KAFEI),
|
||||
/* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_WAITING_FOR_KAFEI),
|
||||
/* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_DOOR_39),
|
||||
/* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_53),
|
||||
/* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_DOOR_36),
|
||||
/* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_WALKING_52),
|
||||
/* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING),
|
||||
/* 0x446 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x447 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
/**
|
||||
* The schedule script is roughly equivalent to the following pseudo-code:
|
||||
|
||||
s32 scheduleScript(PlayState* play) {
|
||||
if (gSaveContext.save.day == 1) {
|
||||
if (play->sceneId == SCENE_YADOYA) {
|
||||
if ((6, 0) <= NOW <= (10, 55)) {
|
||||
return ANJU_SCH_RECEPTIONIST_IDLE;
|
||||
} else if ((10, 55) <= NOW <= (11, 10)) {
|
||||
return ANJU_SCH_WALKING_40;
|
||||
} else if ((11, 10) <= NOW <= (11, 30)) {
|
||||
return ANJU_SCH_COOKING;
|
||||
} else if ((11, 30) <= NOW <= (11, 50)) {
|
||||
return ANJU_SCH_WALKING_42;
|
||||
} else if ((11, 50) <= NOW <= (11, 55)) {
|
||||
return ANJU_SCH_DOOR_26;
|
||||
} else if ((11, 55) <= NOW <= (12, 0)) {
|
||||
return ANJU_SCH_WALKING_43;
|
||||
} else if ((12, 0) <= NOW <= (12, 15)) {
|
||||
return ANJU_SCH_GIVE_LUNCH_TO_GRANNY;
|
||||
} else if ((12, 15) <= NOW <= (12, 20)) {
|
||||
return ANJU_SCH_WALKING_44;
|
||||
} else if ((12, 20) <= NOW <= (12, 25)) {
|
||||
return ANJU_SCH_DOOR_27;
|
||||
} else if ((12, 25) <= NOW <= (12, 55)) {
|
||||
return ANJU_SCH_WALKING_45;
|
||||
} else if ((12, 55) <= NOW <= (13, 0)) {
|
||||
return ANJU_SCH_DOOR_28;
|
||||
} else if ((13, 15) <= NOW <= (13, 20)) {
|
||||
return ANJU_SCH_DOOR_29;
|
||||
} else if ((13, 20) <= NOW <= (13, 50)) {
|
||||
return ANJU_SCH_WALKING_46;
|
||||
} else if ((13, 50) <= NOW <= (14, 8)) {
|
||||
return ANJU_SCH_RECEPTIONIST_IDLE;
|
||||
} else if ((14, 8) <= NOW <= (14, 18)) {
|
||||
return ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN;
|
||||
} else if ((14, 18) <= NOW <= (16, 10)) {
|
||||
return ANJU_SCH_RECEPTIONIST_IDLE;
|
||||
} else if ((16, 10) <= NOW <= (16, 30)) {
|
||||
return ANJU_SCH_ATTEND_GORON;
|
||||
} else if ((16, 30) <= NOW <= (19, 50)) {
|
||||
return ANJU_SCH_RECEPTIONIST_IDLE;
|
||||
} else if ((19, 50) <= NOW <= (20, 20)) {
|
||||
return ANJU_SCH_WALKING_47;
|
||||
} else if ((20, 20) <= NOW <= (20, 30)) {
|
||||
return ANJU_SCH_WAITING_CLOSING_TIME;
|
||||
} else if ((20, 30) <= NOW <= (21, 5)) {
|
||||
return ANJU_SCH_WALKING_48;
|
||||
} else if ((21, 5) <= NOW <= (21, 10)) {
|
||||
return ANJU_SCH_DOOR_30;
|
||||
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) {
|
||||
if ((23, 10) <= NOW <= (23, 15)) {
|
||||
return ANJU_SCH_DOOR_31;
|
||||
} else if ((23, 15) <= NOW <= (0, 0)) {
|
||||
return ANJU_SCH_WALKING_49;
|
||||
} else if ((0, 0) <= NOW <= (6, 0)) {
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) {
|
||||
return None;
|
||||
}
|
||||
return ANJU_SCH_MIDNIGHT_MEETING;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (gSaveContext.save.day == 2) {
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) {
|
||||
if (play->sceneId == SCENE_YADOYA) {
|
||||
if ((6, 0) <= NOW <= (10, 55)) {
|
||||
return ANJU_SCH_RECEPTIONIST_IDLE;
|
||||
} else if ((10, 55) <= NOW <= (11, 10)) {
|
||||
return ANJU_SCH_WALKING_40;
|
||||
} else if ((11, 10) <= NOW <= (11, 30)) {
|
||||
return ANJU_SCH_COOKING;
|
||||
} else if ((11, 30) <= NOW <= (11, 50)) {
|
||||
return ANJU_SCH_WALKING_42;
|
||||
} else if ((11, 50) <= NOW <= (11, 55)) {
|
||||
return ANJU_SCH_DOOR_26;
|
||||
} else if ((11, 55) <= NOW <= (12, 0)) {
|
||||
return ANJU_SCH_WALKING_43;
|
||||
} else if ((12, 0) <= NOW <= (12, 15)) {
|
||||
return ANJU_SCH_GIVE_LUNCH_TO_GRANNY;
|
||||
} else if ((12, 15) <= NOW <= (12, 20)) {
|
||||
return ANJU_SCH_WALKING_44;
|
||||
} else if ((12, 20) <= NOW <= (12, 25)) {
|
||||
return ANJU_SCH_DOOR_27;
|
||||
} else if ((12, 25) <= NOW <= (12, 55)) {
|
||||
return ANJU_SCH_WALKING_45;
|
||||
} else if ((12, 55) <= NOW <= (13, 0)) {
|
||||
return ANJU_SCH_DOOR_28;
|
||||
} else if ((13, 15) <= NOW <= (13, 20)) {
|
||||
return ANJU_SCH_DOOR_29;
|
||||
} else if ((13, 20) <= NOW <= (13, 50)) {
|
||||
return ANJU_SCH_WALKING_46;
|
||||
} else if ((13, 50) <= NOW <= (19, 50)) {
|
||||
return ANJU_SCH_RECEPTIONIST_IDLE;
|
||||
} else if ((19, 50) <= NOW <= (20, 20)) {
|
||||
return ANJU_SCH_WALKING_47;
|
||||
} else if ((20, 20) <= NOW <= (20, 30)) {
|
||||
return ANJU_SCH_WAITING_CLOSING_TIME;
|
||||
} else if ((20, 30) <= NOW <= (21, 5)) {
|
||||
return ANJU_SCH_WALKING_48;
|
||||
} else if ((21, 5) <= NOW <= (21, 10)) {
|
||||
return ANJU_SCH_DOOR_30;
|
||||
} else if ((21, 30) <= NOW <= (23, 0)) {
|
||||
return ANJU_SCH_TALKING_WITH_MOM;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_YADOYA) {
|
||||
if ((11, 3) <= NOW <= (11, 9)) {
|
||||
return ANJU_SCH_DOOR_32;
|
||||
} else if ((11, 9) <= NOW <= (11, 29)) {
|
||||
return ANJU_SCH_WALKING_50;
|
||||
} else if ((11, 29) <= NOW <= (11, 39)) {
|
||||
return ANJU_SCH_DOOR_33;
|
||||
} else if ((17, 24) <= NOW <= (17, 30)) {
|
||||
return ANJU_SCH_DOOR_34;
|
||||
} else if ((17, 30) <= NOW <= (17, 55)) {
|
||||
return ANJU_SCH_WALKING_51;
|
||||
} else if ((17, 55) <= NOW <= (18, 0)) {
|
||||
return ANJU_SCH_DOOR_35;
|
||||
} else if ((18, 0) <= NOW <= (19, 50)) {
|
||||
return ANJU_SCH_RECEPTIONIST_IDLE;
|
||||
} else if ((19, 50) <= NOW <= (20, 20)) {
|
||||
return ANJU_SCH_WALKING_47;
|
||||
} else if ((20, 20) <= NOW <= (20, 30)) {
|
||||
return ANJU_SCH_WAITING_CLOSING_TIME;
|
||||
} else if ((20, 30) <= NOW <= (21, 0)) {
|
||||
return ANJU_SCH_WALKING_48;
|
||||
} else if ((21, 0) <= NOW <= (21, 5)) {
|
||||
return ANJU_SCH_DOOR_30;
|
||||
} else if ((21, 30) <= NOW <= (23, 0)) {
|
||||
return ANJU_SCH_TALKING_WITH_MOM;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_TOWN) {
|
||||
if ((11, 29) <= NOW <= (11, 39)) {
|
||||
return ANJU_SCH_DOOR_37;
|
||||
} else if ((11, 39) <= NOW <= (12, 25)) {
|
||||
return ANJU_SCH_WALKING_54;
|
||||
} else if ((12, 25) <= NOW <= (13, 15)) {
|
||||
return ANJU_SCH_WALKING_55;
|
||||
} else if ((15, 55) <= NOW <= (16, 45)) {
|
||||
return ANJU_SCH_WALKING_58;
|
||||
} else if ((16, 45) <= NOW <= (17, 24)) {
|
||||
return ANJU_SCH_WALKING_59;
|
||||
} else if ((17, 24) <= NOW <= (17, 30)) {
|
||||
return ANJU_SCH_DOOR_38;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_CLOCKTOWER) {
|
||||
if ((11, 39) <= NOW <= (12, 25)) {
|
||||
return ANJU_SCH_WALKING_60;
|
||||
} else if ((12, 25) <= NOW <= (13, 15)) {
|
||||
return ANJU_SCH_WALKING_61;
|
||||
} else if ((15, 55) <= NOW <= (16, 45)) {
|
||||
return ANJU_SCH_WALKING_62;
|
||||
} else if ((16, 45) <= NOW <= (17, 24)) {
|
||||
return ANJU_SCH_WALKING_63;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_ALLEY) {
|
||||
if ((13, 15) <= NOW <= (13, 45)) {
|
||||
return ANJU_SCH_WALKING_56;
|
||||
} else if ((13, 45) <= NOW <= (15, 25)) {
|
||||
return ANJU_SCH_LAUNDRY_POOL_SIT;
|
||||
} else if ((15, 25) <= NOW <= (15, 55)) {
|
||||
return ANJU_SCH_WALKING_57;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (gSaveContext.save.day == 3) {
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) {
|
||||
if (play->sceneId == SCENE_YADOYA) {
|
||||
if ((6, 0) <= NOW <= (11, 0)) {
|
||||
return ANJU_SCH_SWEEPING;
|
||||
} else if ((11, 0) <= NOW <= (11, 25)) {
|
||||
return ANJU_SCH_WALKING_52;
|
||||
} else if ((11, 25) <= NOW <= (11, 30)) {
|
||||
return ANJU_SCH_DOOR_36;
|
||||
} else if ((11, 30) <= NOW <= (11, 50)) {
|
||||
return ANJU_SCH_WALKING_53;
|
||||
} else if ((11, 50) <= NOW <= (12, 0)) {
|
||||
return ANJU_SCH_DOOR_39;
|
||||
} else if ((18, 0) <= NOW <= (5, 0)) {
|
||||
return ANJU_SCH_WAITING_FOR_KAFEI;
|
||||
} else if ((5, 0) <= NOW <= (6, 0)) {
|
||||
return ANJU_SCH_WAITING_FOR_KAFEI;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_YADOYA) {
|
||||
if ((6, 0) <= NOW <= (11, 0)) {
|
||||
return ANJU_SCH_SWEEPING;
|
||||
} else if ((11, 0) <= NOW <= (11, 25)) {
|
||||
return ANJU_SCH_WALKING_52;
|
||||
} else if ((11, 25) <= NOW <= (11, 30)) {
|
||||
return ANJU_SCH_DOOR_36;
|
||||
} else if ((11, 30) <= NOW <= (11, 50)) {
|
||||
return ANJU_SCH_WALKING_53;
|
||||
} else if ((11, 50) <= NOW <= (12, 0)) {
|
||||
return ANJU_SCH_DOOR_39;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_OMOYA) {
|
||||
if ((18, 0) <= NOW <= (6, 0)) {
|
||||
return ANJU_SCH_RANCH;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
}
|
||||
*/
|
||||
#include "build/src/overlays/actors/ovl_En_An/scheduleScripts.schl.inc"
|
||||
|
||||
static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = {
|
||||
-1, // ANJU_SCH_NONE
|
||||
|
17
src/overlays/actors/ovl_En_Baba/scheduleScripts.schl
Normal file
17
src/overlays/actors/ovl_En_Baba/scheduleScripts.schl
Normal file
@ -0,0 +1,17 @@
|
||||
sSchedule {
|
||||
if_day (1) {
|
||||
if_scene (SCENE_BACKTOWN) {
|
||||
if_time_range (0, 0, 0, 30) {
|
||||
return_time (0, 0, 0, 30, BOMB_SHOP_LADY_SCH_FOLLOW_TIME_PATH)
|
||||
} else if_since_time (0, 30) {
|
||||
return_l (BOMB_SHOP_LADY_SCH_KNOCKED_OVER)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -129,17 +129,7 @@ static DamageTable sDamageTable = {
|
||||
/* Powder Keg */ DMG_ENTRY(1, 0x0),
|
||||
};
|
||||
|
||||
static u8 sSchedule[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(1, 0x1D - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_BACKTOWN, 0x1C - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 0, 30, 0x16 - 0x0E),
|
||||
/* 0x0E */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(0, 30, 0x15 - 0x12),
|
||||
/* 0x12 */ SCHEDULE_CMD_RET_VAL_L(BOMB_SHOP_LADY_SCH_KNOCKED_OVER),
|
||||
/* 0x15 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x16 */ SCHEDULE_CMD_RET_TIME(0, 0, 0, 30, BOMB_SHOP_LADY_SCH_FOLLOW_TIME_PATH),
|
||||
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Baba/scheduleScripts.schl.inc"
|
||||
|
||||
static s32 sSearchTimePathLimit[] = { -1, -1, 0 };
|
||||
|
||||
|
11
src/overlays/actors/ovl_En_Bjt/scheduleScripts.schl
Normal file
11
src/overlays/actors/ovl_En_Bjt/scheduleScripts.schl
Normal file
@ -0,0 +1,11 @@
|
||||
sScheduleScript {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_time_range (0, 0, 6, 0) {
|
||||
return_time (0, 0, 6, 0, TOILET_HAND_SCH_AVAILABLE)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -29,13 +29,7 @@ typedef enum {
|
||||
/* 1 */ TOILET_HAND_SCH_AVAILABLE
|
||||
} ToiletHandScheduleResult;
|
||||
|
||||
static u8 sScheduleScript[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x11 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B - 0x0A),
|
||||
/* 0x0A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0B */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, TOILET_HAND_SCH_AVAILABLE),
|
||||
/* 0x11 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Bjt/scheduleScripts.schl.inc"
|
||||
|
||||
static u8 sMsgEventScript[] = {
|
||||
0x0E, 0x29, 0x48, 0x0C, 0x0E, 0x00, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x52, 0x00, 0x5F, 0x2C, 0x29, 0x4A, 0x0C, 0x2F,
|
||||
|
344
src/overlays/actors/ovl_En_Door/scheduleScripts.schl
Normal file
344
src/overlays/actors/ovl_En_Door/scheduleScripts.schl
Normal file
@ -0,0 +1,344 @@
|
||||
D_808675D0 {
|
||||
if_day (3) {
|
||||
not if_time_range (6, 0, 23, 0) {
|
||||
not if_time_range (0, 0, 6, 0) {
|
||||
return_s (7)
|
||||
}
|
||||
}
|
||||
}
|
||||
return_none
|
||||
}
|
||||
|
||||
D_808675E4 {
|
||||
if_before_time (9, 0) {
|
||||
return_s (9)
|
||||
} else if_before_time (12, 0) {
|
||||
branch (label_0x1D)
|
||||
} else {
|
||||
if_day (1) {
|
||||
branch (label_0x0E)
|
||||
|
||||
label_0x0E:
|
||||
if_before_time (13, 0) {
|
||||
branch (label_0x1C)
|
||||
} else if_before_time (15, 0) {
|
||||
branch (label_0x1D)
|
||||
} else if_before_time (0, 0) {
|
||||
branch (label_0x1C)
|
||||
} else {
|
||||
return_s (9)
|
||||
}
|
||||
|
||||
label_0x1C:
|
||||
return_none
|
||||
|
||||
label_0x1D:
|
||||
return_s (8)
|
||||
} else if_day (2) {
|
||||
if_week_event_reg (WEEKEVENTREG_28_08) {
|
||||
if_before_time (13, 0) {
|
||||
branch (label_0x1C)
|
||||
} else if_before_time (17, 0) {
|
||||
branch (label_0x1D)
|
||||
} else if_before_time (0, 0) {
|
||||
branch (label_0x1C)
|
||||
} else {
|
||||
return_s (9)
|
||||
}
|
||||
} else if_since_time (13, 0) {
|
||||
return_s (9)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_before_time (13, 0) {
|
||||
branch (label_0x1C)
|
||||
} else if_before_time (13, 0) {
|
||||
branch (label_0x1D)
|
||||
} else if_before_time (18, 0) {
|
||||
return_s (9)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
D_80867634 {
|
||||
if_time_range (6, 0, 23, 0) {
|
||||
return_none
|
||||
} else {
|
||||
return_s (28)
|
||||
}
|
||||
}
|
||||
|
||||
D_80867640 {
|
||||
if_time_range (21, 0, 22, 0) {
|
||||
return_s (11)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_8086764C {
|
||||
not if_time_range (22, 0, 5, 0) {
|
||||
return_s (10)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80867658 {
|
||||
if_day (2) {
|
||||
not if_week_event_reg (WEEKEVENTREG_28_08) {
|
||||
return_s (12)
|
||||
} else if_time_range (15, 10, 22, 0) {
|
||||
return_none
|
||||
} else {
|
||||
return_s (12)
|
||||
}
|
||||
}
|
||||
if_day (3) {
|
||||
if_since_time (13, 0) {
|
||||
not if_week_event_reg (WEEKEVENTREG_51_08) {
|
||||
return_s (12)
|
||||
} else if_since_time (22, 0) {
|
||||
return_s (12)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
}
|
||||
return_s (12)
|
||||
}
|
||||
|
||||
D_80867684 {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_80867688 {
|
||||
if_since_time (22, 0) {
|
||||
return_s (15)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80867690 {
|
||||
if_since_time (22, 0) {
|
||||
return_s (16)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80867698 {
|
||||
if_since_time (22, 0) {
|
||||
return_s (17)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_808676A0 {
|
||||
if_time_range (10, 0, 21, 0) {
|
||||
return_none
|
||||
} else if_time_range (22, 0, 5, 0) {
|
||||
if_misc (SCHEDULE_CHECK_MISC_MASK_ROMANI) {
|
||||
return_s (33)
|
||||
} else {
|
||||
return_s (34)
|
||||
}
|
||||
} else {
|
||||
return_s (18)
|
||||
}
|
||||
}
|
||||
|
||||
D_808676B8 {
|
||||
not if_misc (SCHEDULE_CHECK_MISC_ROOM_KEY) {
|
||||
if_day (3) {
|
||||
if_before_time (8, 0) {
|
||||
return_s (19)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (8, 0, 20, 30) {
|
||||
return_none
|
||||
} else {
|
||||
return_s (19)
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_808676D0 {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_808676D4 {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_808676D8 {
|
||||
if_day (3) {
|
||||
if_since_time (18, 0) {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
return_s (20)
|
||||
}
|
||||
|
||||
D_808676E4 {
|
||||
not if_misc (SCHEDULE_CHECK_MISC_ROOM_KEY) {
|
||||
return_s (22)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_808676EC {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_808676F0 {
|
||||
if_day (3) {
|
||||
if_since_time (10, 0) {
|
||||
label_0x8:
|
||||
return_none
|
||||
} else {
|
||||
branch (label_0xF)
|
||||
}
|
||||
} else {
|
||||
if_time_range (10, 0, 20, 0) {
|
||||
branch (label_0x8)
|
||||
} else {
|
||||
label_0xF:
|
||||
return_s (21)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
D_80867704 {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_80867708 {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_8086770C {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_80867710 {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_80867714 {
|
||||
if_since_time (20, 0) {
|
||||
return_s (23)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_8086771C {
|
||||
if_day (1) {
|
||||
if_since_time (2, 30) {
|
||||
return_s (24)
|
||||
} else {
|
||||
label_0x0A:
|
||||
return_none
|
||||
}
|
||||
} else if_day (3) {
|
||||
if_since_time (20, 0) {
|
||||
return_s (12)
|
||||
} else {
|
||||
branch (label_0x0A)
|
||||
}
|
||||
} else {
|
||||
branch (label_0x0A)
|
||||
}
|
||||
}
|
||||
|
||||
D_80867734 {
|
||||
if_since_time (20, 0) {
|
||||
return_s (25)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_8086773C {
|
||||
if_since_time (20, 0) {
|
||||
return_s (26)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80867744 {
|
||||
not if_day (2) {
|
||||
branch (label_0x08)
|
||||
} else {
|
||||
if_week_event_reg (WEEKEVENTREG_99_80) {
|
||||
branch (label_0x0E)
|
||||
} else {
|
||||
label_0x08:
|
||||
if_before_time (20, 0) {
|
||||
branch (label_0x14)
|
||||
} else {
|
||||
return_s (27)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
label_0x0E:
|
||||
if_before_time (18, 0) {
|
||||
branch (label_0x14)
|
||||
} else {
|
||||
return_s (27)
|
||||
}
|
||||
|
||||
label_0x14:
|
||||
return_none
|
||||
}
|
||||
|
||||
D_8086775C {
|
||||
not if_week_event_reg (WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE) {
|
||||
not if_week_event_reg (WEEKEVENTREG_75_20) {
|
||||
not if_week_event_reg (WEEKEVENTREG_14_04) {
|
||||
return_s (29)
|
||||
} else not if_week_event_reg (WEEKEVENTREG_59_01) {
|
||||
if_week_event_reg (WEEKEVENTREG_61_02) {
|
||||
return_s (31)
|
||||
} else {
|
||||
return_s (30)
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return_none
|
||||
}
|
||||
|
||||
D_80867778 {
|
||||
return_s (32)
|
||||
}
|
||||
|
||||
D_8086777C{
|
||||
return_none
|
||||
}
|
||||
|
||||
D_80867780 {
|
||||
return_none
|
||||
}
|
||||
|
||||
D_80867784 {
|
||||
if_since_time (22, 0) {
|
||||
return_s (35)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -36,240 +36,9 @@ void func_80867144(EnDoor* this, PlayState* play);
|
||||
void func_808670F0(EnDoor* this, PlayState* play);
|
||||
void func_80866A5C(EnDoor* this, PlayState* play);
|
||||
|
||||
u8 D_808675D0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x12 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 23, 0, 0x12 - 0x0A),
|
||||
/* 0x0A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x12 - 0x10),
|
||||
/* 0x10 */ SCHEDULE_CMD_RET_VAL_S(7),
|
||||
/* 0x12 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Door/scheduleScripts.schl.inc"
|
||||
|
||||
u8 D_808675E4[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(9, 0, 0x4B - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(12, 0, 0x1D - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(1, 0x1F - 0x0C),
|
||||
/* 0x0C */ SCHEDULE_CMD_BRANCH_S(0x0),
|
||||
/* 0x0E */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(13, 0, 0x1C - 0x12),
|
||||
/* 0x12 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(15, 0, 0x1D - 0x16),
|
||||
/* 0x16 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(0, 0, 0x1C - 0x1A),
|
||||
/* 0x1A */ SCHEDULE_CMD_RET_VAL_S(9),
|
||||
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_VAL_S(8),
|
||||
/* 0x1F */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x3C - 0x23),
|
||||
/* 0x23 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_28_08, 0x2E - 0x27),
|
||||
/* 0x27 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(13, 0, 0x2D - 0x2B),
|
||||
/* 0x2B */ SCHEDULE_CMD_RET_VAL_S(9),
|
||||
/* 0x2D */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x2E */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(13, 0, 0x1C - 0x32),
|
||||
/* 0x32 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(17, 0, 0x1D - 0x36),
|
||||
/* 0x36 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(0, 0, 0x1C - 0x3A),
|
||||
/* 0x3A */ SCHEDULE_CMD_RET_VAL_S(9),
|
||||
/* 0x3C */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(13, 0, 0x1C - 0x40),
|
||||
/* 0x40 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(13, 0, 0x1D - 0x44),
|
||||
/* 0x44 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(18, 0, 0x49 - 0x48),
|
||||
/* 0x48 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x49 */ SCHEDULE_CMD_RET_VAL_S(9),
|
||||
/* 0x4B */ SCHEDULE_CMD_RET_VAL_S(9),
|
||||
};
|
||||
|
||||
u8 D_80867634[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 23, 0, 0x8 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_S(28),
|
||||
/* 0x8 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867640[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 22, 0, 0x7 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x7 */ SCHEDULE_CMD_RET_VAL_S(11),
|
||||
};
|
||||
|
||||
u8 D_8086764C[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(22, 0, 5, 0, 0x8 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_S(10),
|
||||
/* 0x8 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867658[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x13 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_28_08, 0x0A - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_RET_VAL_S(12),
|
||||
/* 0x0A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 10, 22, 0, 0x12 - 0x10),
|
||||
/* 0x10 */ SCHEDULE_CMD_RET_VAL_S(12),
|
||||
/* 0x12 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x13 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x28 - 0x17),
|
||||
/* 0x17 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(13, 0, 0x28 - 0x1B),
|
||||
/* 0x1B */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_51_08, 0x21 - 0x1F),
|
||||
/* 0x1F */ SCHEDULE_CMD_RET_VAL_S(12),
|
||||
/* 0x21 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(22, 0, 0x27 - 0x25),
|
||||
/* 0x25 */ SCHEDULE_CMD_RET_VAL_S(12),
|
||||
/* 0x27 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x28 */ SCHEDULE_CMD_RET_VAL_S(12),
|
||||
};
|
||||
|
||||
u8 D_80867684[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867688[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(22, 0, 0x6 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_RET_VAL_S(15),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867690[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(22, 0, 0x6 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_RET_VAL_S(16),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867698[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(22, 0, 0x6 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_RET_VAL_S(17),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_808676A0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 0, 21, 0, 0x15 - 0x06),
|
||||
/* 0x06 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(22, 0, 5, 0, 0x0E - 0x0C),
|
||||
/* 0x0C */ SCHEDULE_CMD_RET_VAL_S(18),
|
||||
/* 0x0E */ SCHEDULE_CMD_CHECK_MISC_S(SCHEDULE_CHECK_MISC_MASK_ROMANI, 0x13 - 0x11),
|
||||
/* 0x11 */ SCHEDULE_CMD_RET_VAL_S(34),
|
||||
/* 0x13 */ SCHEDULE_CMD_RET_VAL_S(33),
|
||||
/* 0x15 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_808676B8[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_MISC_S(SCHEDULE_CHECK_MISC_ROOM_KEY, 0x17 - 0x03),
|
||||
/* 0x03 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x0E - 0x07),
|
||||
/* 0x07 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(8, 0, 0x0C - 0x0B),
|
||||
/* 0x0B */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0C */ SCHEDULE_CMD_RET_VAL_S(19),
|
||||
/* 0x0E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(8, 0, 20, 30, 0x16 - 0x14),
|
||||
/* 0x14 */ SCHEDULE_CMD_RET_VAL_S(19),
|
||||
/* 0x16 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x17 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_808676D0[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_808676D4[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_808676D8[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x9 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(18, 0, 0x9 - 0x8),
|
||||
/* 0x8 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x9 */ SCHEDULE_CMD_RET_VAL_S(20),
|
||||
};
|
||||
|
||||
u8 D_808676E4[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_MISC_S(SCHEDULE_CHECK_MISC_ROOM_KEY, 0x5 - 0x3),
|
||||
/* 0x3 */ SCHEDULE_CMD_RET_VAL_S(22),
|
||||
/* 0x5 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_808676EC[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_808676F0[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x9 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(10, 0, 0xF - 0x8),
|
||||
/* 0x8 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 0, 20, 0, 0x8 - 0xF),
|
||||
/* 0xF */ SCHEDULE_CMD_RET_VAL_S(21),
|
||||
};
|
||||
|
||||
u8 D_80867704[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867708[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_8086770C[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867710[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867714[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(20, 0, 0x6 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_RET_VAL_S(23),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_8086771C[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(1, 0x0B - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(2, 30, 0x0A - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_RET_VAL_S(24),
|
||||
/* 0x0A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x0A - 0x0F),
|
||||
/* 0x0F */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(20, 0, 0x0A - 0x13),
|
||||
/* 0x13 */ SCHEDULE_CMD_RET_VAL_S(12),
|
||||
};
|
||||
|
||||
u8 D_80867734[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(20, 0, 0x6 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_RET_VAL_S(25),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_8086773C[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(20, 0, 0x6 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_RET_VAL_S(26),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867744[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x08 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_99_80, 0x0E - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(20, 0, 0x14 - 0x0C),
|
||||
/* 0x0C */ SCHEDULE_CMD_RET_VAL_S(27),
|
||||
/* 0x0E */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(18, 0, 0x14 - 0x12),
|
||||
/* 0x12 */ SCHEDULE_CMD_RET_VAL_S(27),
|
||||
/* 0x14 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_8086775C[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_CLEARED_STONE_TOWER_TEMPLE, 0x1B - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_75_20, 0x1B - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_14_04, 0x0E - 0x0C),
|
||||
/* 0x0C */ SCHEDULE_CMD_RET_VAL_S(29),
|
||||
/* 0x0E */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_59_01, 0x1A - 0x12),
|
||||
/* 0x12 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_61_02, 0x18 - 0x16),
|
||||
/* 0x16 */ SCHEDULE_CMD_RET_VAL_S(30),
|
||||
/* 0x18 */ SCHEDULE_CMD_RET_VAL_S(31),
|
||||
/* 0x1A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1B */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867778[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_VAL_S(32),
|
||||
};
|
||||
|
||||
u8 D_8086777C[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867780[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8 D_80867784[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(22, 0, 0x6 - 0x4),
|
||||
/* 0x4 */ SCHEDULE_CMD_RET_VAL_S(35),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
u8* D_8086778C[] = {
|
||||
ScheduleScript* D_8086778C[] = {
|
||||
D_808675D0, D_808675E4, D_80867634, D_80867640, D_8086764C, D_80867658, D_80867684, D_80867688,
|
||||
D_80867690, D_80867698, D_808676A0, D_808676B8, D_808676D0, D_808676D4, D_808676D8, D_808676E4,
|
||||
D_808676EC, D_808676F0, D_80867704, D_80867708, D_8086770C, D_80867710, D_80867714, D_8086771C,
|
||||
|
121
src/overlays/actors/ovl_En_Gm/scheduleScripts.schl
Normal file
121
src/overlays/actors/ovl_En_Gm/scheduleScripts.schl
Normal file
@ -0,0 +1,121 @@
|
||||
D_80951820 {
|
||||
if_day (1) {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 9, 0) {
|
||||
return_time (6, 0, 9, 0, 6)
|
||||
} else if_time_range (9, 0, 9, 10) {
|
||||
return_time (9, 0, 9, 10, 24)
|
||||
} else if_time_range (9, 10, 9, 15) {
|
||||
return_time (9, 10, 9, 15, 15)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (9, 10, 9, 15) {
|
||||
return_time (9, 10, 9, 15, 9)
|
||||
} else if_time_range (9, 15, 10, 0) {
|
||||
return_time (9, 15, 10, 0, 21)
|
||||
} else if_time_range (10, 0, 10, 5) {
|
||||
return_time (10, 0, 10, 5, 10)
|
||||
} else if_time_range (12, 15, 12, 20) {
|
||||
return_time (12, 15, 12, 20, 11)
|
||||
} else if_time_range (12, 20, 12, 50) {
|
||||
return_time (12, 20, 12, 50, 22)
|
||||
} else if_time_range (12, 50, 12, 55) {
|
||||
return_time (12, 50, 12, 55, 12)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_SONCHONOIE) {
|
||||
if_time_range (10, 0, 10, 5) {
|
||||
return_time (10, 0, 10, 5, 16)
|
||||
} else if_time_range (10, 5, 10, 10) {
|
||||
return_time (10, 5, 10, 10, 25)
|
||||
} else if_time_range (10, 10, 10, 30) {
|
||||
return_time (10, 10, 10, 30, 1)
|
||||
} else if_time_range (10, 30, 10, 40) {
|
||||
return_time (10, 30, 10, 40, 26)
|
||||
} else if_time_range (10, 40, 10, 45) {
|
||||
return_time (10, 40, 10, 45, 18)
|
||||
} else if_time_range (10, 45, 10, 55) {
|
||||
return_time (10, 45, 10, 55, 27)
|
||||
} else if_time_range (10, 55, 11, 45) {
|
||||
return_time (10, 55, 11, 45, 2)
|
||||
} else if_time_range (11, 45, 11, 55) {
|
||||
return_time (11, 45, 11, 55, 28)
|
||||
} else if_time_range (11, 55, 12, 0) {
|
||||
return_time (11, 55, 12, 0, 19)
|
||||
} else if_time_range (12, 0, 12, 15) {
|
||||
return_time (12, 0, 12, 15, 29)
|
||||
} else if_time_range (12, 15, 12, 20) {
|
||||
return_time (12, 15, 12, 20, 17)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_MILK_BAR) {
|
||||
if_time_range (12, 55, 13, 0) {
|
||||
return_time (12, 55, 13, 0, 20)
|
||||
} else if_time_range (13, 0, 13, 25) {
|
||||
return_time (13, 0, 13, 25, 30)
|
||||
} else if_time_range (13, 25, 21, 5) {
|
||||
return_time (13, 25, 21, 5, 3)
|
||||
} else if_time_range (21, 55, 5, 5) {
|
||||
return_time (21, 55, 5, 5, 5)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (2) {
|
||||
if_week_event_reg (WEEKEVENTREG_50_01) {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 18, 0) {
|
||||
return_time (6, 0, 18, 0, 7)
|
||||
} else if_time_range (18, 0, 6, 0) {
|
||||
return_time (0, 0, 0, 0, 8)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 18, 0) {
|
||||
return_time (6, 0, 18, 0, 7)
|
||||
} else if_time_range (18, 0, 21, 0) {
|
||||
return_time (18, 0, 21, 0, 6)
|
||||
} else if_time_range (21, 0, 21, 10) {
|
||||
return_time (21, 0, 21, 10, 24)
|
||||
} else if_time_range (21, 10, 21, 15) {
|
||||
return_time (21, 10, 21, 15, 15)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (21, 10, 21, 15) {
|
||||
return_time (21, 10, 21, 15, 13)
|
||||
} else if_time_range (21, 15, 21, 25) {
|
||||
return_time (21, 15, 21, 25, 23)
|
||||
} else if_time_range (21, 25, 21, 30) {
|
||||
return_time (21, 25, 21, 30, 14)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_MILK_BAR) {
|
||||
if_time_range (21, 30, 21, 45) {
|
||||
return_time (21, 30, 21, 45, 20)
|
||||
} else if_time_range (21, 45, 22, 10) {
|
||||
return_time (21, 45, 22, 10, 30)
|
||||
} else if_time_range (22, 10, 6, 0) {
|
||||
return_time (22, 10, 6, 0, 5)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -19,103 +19,7 @@ void EnGm_Draw(Actor* thisx, PlayState* play);
|
||||
void func_80950CDC(EnGm* this, PlayState* play);
|
||||
void func_80950DB8(EnGm* this, PlayState* play);
|
||||
|
||||
static u8 D_80951820[] = {
|
||||
/* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x13B - 0x005),
|
||||
/* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x02E - 0x009),
|
||||
/* 0x009 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 9, 0, 0x028 - 0x00F),
|
||||
/* 0x00F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 0, 9, 10, 0x022 - 0x015),
|
||||
/* 0x015 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 10, 9, 15, 0x01C - 0x01B),
|
||||
/* 0x01B */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x01C */ SCHEDULE_CMD_RET_TIME(9, 10, 9, 15, 15),
|
||||
/* 0x022 */ SCHEDULE_CMD_RET_TIME(9, 0, 9, 10, 24),
|
||||
/* 0x028 */ SCHEDULE_CMD_RET_TIME(6, 0, 9, 0, 6),
|
||||
/* 0x02E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x07B - 0x032),
|
||||
/* 0x032 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 10, 9, 15, 0x075 - 0x038),
|
||||
/* 0x038 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 15, 10, 0, 0x06F - 0x03E),
|
||||
/* 0x03E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 0, 10, 5, 0x069 - 0x044),
|
||||
/* 0x044 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 15, 12, 20, 0x063 - 0x04A),
|
||||
/* 0x04A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 50, 0x05D - 0x050),
|
||||
/* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 50, 12, 55, 0x057 - 0x056),
|
||||
/* 0x056 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x057 */ SCHEDULE_CMD_RET_TIME(12, 50, 12, 55, 12),
|
||||
/* 0x05D */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 50, 22),
|
||||
/* 0x063 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, 11),
|
||||
/* 0x069 */ SCHEDULE_CMD_RET_TIME(10, 0, 10, 5, 10),
|
||||
/* 0x06F */ SCHEDULE_CMD_RET_TIME(9, 15, 10, 0, 21),
|
||||
/* 0x075 */ SCHEDULE_CMD_RET_TIME(9, 10, 9, 15, 9),
|
||||
/* 0x07B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_SONCHONOIE, 0x105 - 0x080),
|
||||
/* 0x080 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 0, 10, 5, 0x0FF - 0x086),
|
||||
/* 0x086 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 5, 10, 10, 0x0F9 - 0x08C),
|
||||
/* 0x08C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 10, 10, 30, 0x0F3 - 0x092),
|
||||
/* 0x092 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 30, 10, 40, 0x0ED - 0x098),
|
||||
/* 0x098 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 40, 10, 45, 0x0E7 - 0x09E),
|
||||
/* 0x09E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 45, 10, 55, 0x0E1 - 0x0A4),
|
||||
/* 0x0A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 55, 11, 45, 0x0DB - 0x0AA),
|
||||
/* 0x0AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 45, 11, 55, 0x0D5 - 0x0B0),
|
||||
/* 0x0B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 55, 12, 0, 0x0CF - 0x0B6),
|
||||
/* 0x0B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 0, 12, 15, 0x0C9 - 0x0BC),
|
||||
/* 0x0BC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 15, 12, 20, 0x0C3 - 0x0C2),
|
||||
/* 0x0C2 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0C3 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, 17),
|
||||
/* 0x0C9 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, 29),
|
||||
/* 0x0CF */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, 19),
|
||||
/* 0x0D5 */ SCHEDULE_CMD_RET_TIME(11, 45, 11, 55, 28),
|
||||
/* 0x0DB */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 45, 2),
|
||||
/* 0x0E1 */ SCHEDULE_CMD_RET_TIME(10, 45, 10, 55, 27),
|
||||
/* 0x0E7 */ SCHEDULE_CMD_RET_TIME(10, 40, 10, 45, 18),
|
||||
/* 0x0ED */ SCHEDULE_CMD_RET_TIME(10, 30, 10, 40, 26),
|
||||
/* 0x0F3 */ SCHEDULE_CMD_RET_TIME(10, 10, 10, 30, 1),
|
||||
/* 0x0F9 */ SCHEDULE_CMD_RET_TIME(10, 5, 10, 10, 25),
|
||||
/* 0x0FF */ SCHEDULE_CMD_RET_TIME(10, 0, 10, 5, 16),
|
||||
/* 0x105 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_MILK_BAR, 0x13A - 0x109),
|
||||
/* 0x109 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x134 - 0x10F),
|
||||
/* 0x10F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 0, 13, 25, 0x12E - 0x115),
|
||||
/* 0x115 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 25, 21, 5, 0x128 - 0x11B),
|
||||
/* 0x11B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 55, 5, 5, 0x122 - 0x121),
|
||||
/* 0x121 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x122 */ SCHEDULE_CMD_RET_TIME(21, 55, 5, 5, 5),
|
||||
/* 0x128 */ SCHEDULE_CMD_RET_TIME(13, 25, 21, 5, 3),
|
||||
/* 0x12E */ SCHEDULE_CMD_RET_TIME(13, 0, 13, 25, 30),
|
||||
/* 0x134 */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, 20),
|
||||
/* 0x13A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x13B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x1EB - 0x140),
|
||||
/* 0x140 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_50_01, 0x1CD - 0x145),
|
||||
/* 0x145 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x17A - 0x149),
|
||||
/* 0x149 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 18, 0, 0x174 - 0x14F),
|
||||
/* 0x14F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 21, 0, 0x16E - 0x155),
|
||||
/* 0x155 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 10, 0x168 - 0x15B),
|
||||
/* 0x15B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 10, 21, 15, 0x162 - 0x161),
|
||||
/* 0x161 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x162 */ SCHEDULE_CMD_RET_TIME(21, 10, 21, 15, 15),
|
||||
/* 0x168 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 10, 24),
|
||||
/* 0x16E */ SCHEDULE_CMD_RET_TIME(18, 0, 21, 0, 6),
|
||||
/* 0x174 */ SCHEDULE_CMD_RET_TIME(6, 0, 18, 0, 7),
|
||||
/* 0x17A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x1A3 - 0x17E),
|
||||
/* 0x17E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 10, 21, 15, 0x19D - 0x184),
|
||||
/* 0x184 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 15, 21, 25, 0x197 - 0x18A),
|
||||
/* 0x18A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 25, 21, 30, 0x191 - 0x190),
|
||||
/* 0x190 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x191 */ SCHEDULE_CMD_RET_TIME(21, 25, 21, 30, 14),
|
||||
/* 0x197 */ SCHEDULE_CMD_RET_TIME(21, 15, 21, 25, 23),
|
||||
/* 0x19D */ SCHEDULE_CMD_RET_TIME(21, 10, 21, 15, 13),
|
||||
/* 0x1A3 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_MILK_BAR, 0x1CC - 0x1A7),
|
||||
/* 0x1A7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 21, 45, 0x1C6 - 0x1AD),
|
||||
/* 0x1AD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 45, 22, 10, 0x1C0 - 0x1B3),
|
||||
/* 0x1B3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(22, 10, 6, 0, 0x1BA - 0x1B9),
|
||||
/* 0x1B9 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1BA */ SCHEDULE_CMD_RET_TIME(22, 10, 6, 0, 5),
|
||||
/* 0x1C0 */ SCHEDULE_CMD_RET_TIME(21, 45, 22, 10, 30),
|
||||
/* 0x1C6 */ SCHEDULE_CMD_RET_TIME(21, 30, 21, 45, 20),
|
||||
/* 0x1CC */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1CD */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x1EA - 0x1D1),
|
||||
/* 0x1D1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 18, 0, 0x1E4 - 0x1D7),
|
||||
/* 0x1D7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x1DE - 0x1DD),
|
||||
/* 0x1DD */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1DE */ SCHEDULE_CMD_RET_TIME(0, 0, 0, 0, 8),
|
||||
/* 0x1E4 */ SCHEDULE_CMD_RET_TIME(6, 0, 18, 0, 7),
|
||||
/* 0x1EA */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1EB */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Gm/scheduleScripts.schl.inc"
|
||||
|
||||
static s32 D_80951A0C[] = {
|
||||
-1, 1, 4, 1, -1, 1, -1, -1, -1, 0, 2, 3, 5, 6, 8, 1, 0, 8, 3, 6, 0, 1, 4, 7, 0, 1, 2, 4, 5, 7, 1,
|
||||
|
51
src/overlays/actors/ovl_En_Ig/scheduleScripts.schl
Normal file
51
src/overlays/actors/ovl_En_Ig/scheduleScripts.schl
Normal file
@ -0,0 +1,51 @@
|
||||
D_80BF3260 {
|
||||
if_day (1) {
|
||||
if_scene (SCENE_TOWN) {
|
||||
if_time_range (15, 25, 15, 45) {
|
||||
return_time (15, 25, 15, 45, 10)
|
||||
} else if_time_range (15, 45, 15, 50) {
|
||||
return_time (15, 45, 15, 50, 5)
|
||||
} else if_week_event_reg (WEEKEVENTREG_RECEIVED_ROOM_KEY) {
|
||||
if_time_range (16, 50, 16, 55) {
|
||||
return_time (16, 50, 16, 55, 6)
|
||||
} else if_time_range (16, 55, 17, 15) {
|
||||
return_time (16, 55, 17, 15, 11)
|
||||
} else if_time_range (17, 15, 18, 0) {
|
||||
return_time (17, 15, 6, 0, 2)
|
||||
} else if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 4)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_YADOYA) {
|
||||
if_time_range (15, 45, 15, 50) {
|
||||
return_time (15, 45, 15, 50, 7)
|
||||
} else if_time_range (15, 50, 16, 10) {
|
||||
return_time (15, 50, 16, 10, 12)
|
||||
} else if_time_range (16, 10, 16, 30) {
|
||||
return_time (16, 10, 16, 30, 3)
|
||||
} else if_week_event_reg (WEEKEVENTREG_RECEIVED_ROOM_KEY) {
|
||||
if_time_range (16, 30, 16, 50) {
|
||||
return_time (16, 30, 16, 50, 14)
|
||||
} else if_time_range (16, 50, 16, 55) {
|
||||
return_time (16, 50, 16, 55, 9)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (16, 30, 16, 50) {
|
||||
return_time (16, 30, 16, 50, 13)
|
||||
} else if_time_range (16, 50, 16, 55) {
|
||||
return_time (16, 50, 16, 55, 8)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -19,45 +19,7 @@ void EnIg_Draw(Actor* thisx, PlayState* play);
|
||||
void func_80BF2AF8(EnIg* this, PlayState* play);
|
||||
void func_80BF2BD4(EnIg* this, PlayState* play);
|
||||
|
||||
static u8 D_80BF3260[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0xB6 - 0x05),
|
||||
/* 0x05 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x57 - 0x09),
|
||||
/* 0x09 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 45, 0x51 - 0x0F),
|
||||
/* 0x0F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 45, 15, 50, 0x4B - 0x15),
|
||||
/* 0x15 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_RECEIVED_ROOM_KEY, 0x1A - 0x19),
|
||||
/* 0x19 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 50, 16, 55, 0x45 - 0x20),
|
||||
/* 0x20 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 55, 17, 15, 0x3F - 0x26),
|
||||
/* 0x26 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 15, 18, 0, 0x39 - 0x2C),
|
||||
/* 0x2C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x33 - 0x32),
|
||||
/* 0x32 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x33 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 4),
|
||||
/* 0x39 */ SCHEDULE_CMD_RET_TIME(17, 15, 6, 0, 2),
|
||||
/* 0x3F */ SCHEDULE_CMD_RET_TIME(16, 55, 17, 15, 11),
|
||||
/* 0x45 */ SCHEDULE_CMD_RET_TIME(16, 50, 16, 55, 6),
|
||||
/* 0x4B */ SCHEDULE_CMD_RET_TIME(15, 45, 15, 50, 5),
|
||||
/* 0x51 */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 45, 10),
|
||||
/* 0x57 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0xB5 - 0x5B),
|
||||
/* 0x5B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 45, 15, 50, 0xAF - 0x61),
|
||||
/* 0x61 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 50, 16, 10, 0xA9 - 0x67),
|
||||
/* 0x67 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0xA3 - 0x6D),
|
||||
/* 0x6D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_RECEIVED_ROOM_KEY, 0x8A - 0x71),
|
||||
/* 0x71 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 16, 50, 0x84 - 0x77),
|
||||
/* 0x77 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 50, 16, 55, 0x7E - 0x7D),
|
||||
/* 0x7D */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x7E */ SCHEDULE_CMD_RET_TIME(16, 50, 16, 55, 8),
|
||||
/* 0x84 */ SCHEDULE_CMD_RET_TIME(16, 30, 16, 50, 13),
|
||||
/* 0x8A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 16, 50, 0x9D - 0x90),
|
||||
/* 0x90 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 50, 16, 55, 0x97 - 0x96),
|
||||
/* 0x96 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x97 */ SCHEDULE_CMD_RET_TIME(16, 50, 16, 55, 9),
|
||||
/* 0x9D */ SCHEDULE_CMD_RET_TIME(16, 30, 16, 50, 14),
|
||||
/* 0xA3 */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, 3),
|
||||
/* 0xA9 */ SCHEDULE_CMD_RET_TIME(15, 50, 16, 10, 12),
|
||||
/* 0xAF */ SCHEDULE_CMD_RET_TIME(15, 45, 15, 50, 7),
|
||||
/* 0xB5 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0xB6 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Ig/scheduleScripts.schl.inc"
|
||||
|
||||
static s32 D_80BF3318[] = { -1, -1, 3, 1, 3, 1, 2, 0, 3, 5, 0, 3, 1, 2, 4 };
|
||||
|
||||
|
17
src/overlays/actors/ovl_En_Ja/scheduleScripts.schl
Normal file
17
src/overlays/actors/ovl_En_Ja/scheduleScripts.schl
Normal file
@ -0,0 +1,17 @@
|
||||
D_80BC35F0 {
|
||||
if_day (3) {
|
||||
return_none
|
||||
} else if_time_range (6, 0, 18, 0) {
|
||||
if_scene (SCENE_TOWN) {
|
||||
return_l (1)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
return_l (2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
}
|
@ -21,17 +21,7 @@ void func_80BC2EA4(EnJa* this);
|
||||
void func_80BC32D8(EnJa* this, PlayState* play);
|
||||
void func_80BC3594(EnJa* this, PlayState* play);
|
||||
|
||||
static u8 D_80BC35F0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x05 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x05 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 18, 0, 0x13 - 0x0B),
|
||||
/* 0x0B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x12 - 0x0F),
|
||||
/* 0x0F */ SCHEDULE_CMD_RET_VAL_L(2),
|
||||
/* 0x12 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x13 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x1A - 0x17),
|
||||
/* 0x17 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
/* 0x1A */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Ja/scheduleScripts.schl.inc"
|
||||
|
||||
s32 D_80BC360C[] = {
|
||||
0x0E29370C, 0x170E2938, 0x0C180E29, 0x390C170E, 0x293A0C09, 0x0000180E, 0x293B0C09, 0x00001000,
|
||||
|
51
src/overlays/actors/ovl_En_Nb/scheduleScripts.schl
Normal file
51
src/overlays/actors/ovl_En_Nb/scheduleScripts.schl
Normal file
@ -0,0 +1,51 @@
|
||||
sScheduleScript {
|
||||
if_day (3) {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_time_range (6, 0, 18, 0) {
|
||||
return_l (EN_NB_SCH_3)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_OMOYA) {
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_l (EN_NB_SCH_4)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
if_scene (SCENE_YADOYA) {
|
||||
if_day (1) {
|
||||
if_time_range (8, 0, 12, 0) {
|
||||
return_l (EN_NB_SCH_1)
|
||||
} else if_time_range (12, 0, 12, 15) {
|
||||
return_l (EN_NB_SCH_2)
|
||||
} else if_time_range (12, 15, 18, 0) {
|
||||
return_l (EN_NB_SCH_1)
|
||||
} else {
|
||||
return_l (EN_NB_SCH_3)
|
||||
}
|
||||
} else {
|
||||
if_week_event_reg (WEEKEVENTREG_HAD_MIDNIGHT_MEETING) {
|
||||
if_time_range (8, 0, 12, 0) {
|
||||
return_s (EN_NB_SCH_1)
|
||||
} else if_time_range (12, 0, 12, 15) {
|
||||
return_s (EN_NB_SCH_2)
|
||||
} else if_time_range (12, 15, 18, 0) {
|
||||
return_s (EN_NB_SCH_1)
|
||||
} else {
|
||||
return_l (EN_NB_SCH_3)
|
||||
}
|
||||
} else if_time_range (8, 0, 18, 0) {
|
||||
return_l (EN_NB_SCH_1)
|
||||
} else {
|
||||
return_l (EN_NB_SCH_3)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
}
|
@ -36,39 +36,7 @@ typedef enum EnNbScheduleResult {
|
||||
/* 4 */ EN_NB_SCH_4
|
||||
} EnNbScheduleResult;
|
||||
|
||||
static u8 sScheduleScript[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x21 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x12 - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 18, 0, 0x0F - 0x0E),
|
||||
/* 0x0E */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0F */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_3),
|
||||
/* 0x12 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x20 - 0x16),
|
||||
/* 0x16 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x1D - 0x1C),
|
||||
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_4),
|
||||
/* 0x20 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x21 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x72 - 0x25),
|
||||
/* 0x25 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(1, 0x47 - 0x29),
|
||||
/* 0x29 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(8, 0, 12, 0, 0x44 - 0x2F),
|
||||
/* 0x2F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 0, 12, 15, 0x41 - 0x35),
|
||||
/* 0x35 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 15, 18, 0, 0x3E - 0x3B),
|
||||
/* 0x3B */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_3),
|
||||
/* 0x3E */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_1),
|
||||
/* 0x41 */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_2),
|
||||
/* 0x44 */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_1),
|
||||
/* 0x47 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x57 - 0x4B),
|
||||
/* 0x4B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(8, 0, 18, 0, 0x54 - 0x51),
|
||||
/* 0x51 */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_3),
|
||||
/* 0x54 */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_1),
|
||||
/* 0x57 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(8, 0, 12, 0, 0x70 - 0x5D),
|
||||
/* 0x5D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 0, 12, 15, 0x6E - 0x63),
|
||||
/* 0x63 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 15, 18, 0, 0x6C - 0x69),
|
||||
/* 0x69 */ SCHEDULE_CMD_RET_VAL_L(EN_NB_SCH_3),
|
||||
/* 0x6C */ SCHEDULE_CMD_RET_VAL_S(EN_NB_SCH_1),
|
||||
/* 0x6E */ SCHEDULE_CMD_RET_VAL_S(EN_NB_SCH_2),
|
||||
/* 0x70 */ SCHEDULE_CMD_RET_VAL_S(EN_NB_SCH_1),
|
||||
/* 0x72 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Nb/scheduleScripts.schl.inc"
|
||||
|
||||
u8 D_80BC1464[] = {
|
||||
0x1B, 0x04, 0x08, 0x00, 0x6A, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x0E,
|
||||
|
482
src/overlays/actors/ovl_En_Pm/scheduleScripts.schl
Normal file
482
src/overlays/actors/ovl_En_Pm/scheduleScripts.schl
Normal file
@ -0,0 +1,482 @@
|
||||
D_80AFAD80 {
|
||||
if_day (1) {
|
||||
if_time_range (9, 0, 12, 0) {
|
||||
label_0x117:
|
||||
if_scene (SCENE_ICHIBA) {
|
||||
if_time_range (9, 0, 9, 3) {
|
||||
return_time (9, 0, 9, 3, 1)
|
||||
} else if_time_range (9, 3, 9, 17) {
|
||||
return_time (9, 3, 9, 17, 38)
|
||||
} else if_time_range (11, 43, 11, 57) {
|
||||
return_time (11, 43, 11, 57, 52)
|
||||
} else if_time_range (11, 57, 12, 0) {
|
||||
return_time (11, 57, 12, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (9, 3, 9, 17) {
|
||||
return_time (9, 3, 9, 17, 39)
|
||||
} else if_time_range (9, 17, 9, 31) {
|
||||
return_time (9, 17, 9, 31, 40)
|
||||
} else if_time_range (9, 31, 9, 35) {
|
||||
return_time (9, 31, 9, 35, 3)
|
||||
} else if_time_range (9, 35, 9, 49) {
|
||||
return_time (9, 35, 9, 49, 41)
|
||||
} else if_time_range (10, 57, 11, 11) {
|
||||
return_time (10, 57, 11, 11, 47)
|
||||
} else if_time_range (11, 11, 11, 25) {
|
||||
return_time (11, 11, 11, 25, 48)
|
||||
} else if_time_range (11, 25, 11, 29) {
|
||||
return_time (11, 25, 11, 29, 7)
|
||||
} else if_time_range (11, 29, 11, 43) {
|
||||
return_time (11, 29, 11, 43, 50)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_BACKTOWN) {
|
||||
if_time_range (9, 49, 10, 3) {
|
||||
return_time (9, 49, 10, 3, 42)
|
||||
} else if_time_range (10, 3, 10, 7) {
|
||||
return_time (10, 3, 10, 7, 4)
|
||||
} else if_time_range (10, 7, 10, 21) {
|
||||
return_time (10, 7, 10, 21, 43)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (10, 21, 10, 35) {
|
||||
return_time (10, 21, 10, 35, 44)
|
||||
} else if_time_range (10, 35, 10, 39) {
|
||||
return_time (10, 35, 10, 39, 5)
|
||||
} else if_time_range (10, 39, 10, 53) {
|
||||
return_time (10, 39, 10, 53, 45)
|
||||
} else if_time_range (10, 53, 10, 57) {
|
||||
return_time (10, 53, 10, 57, 6)
|
||||
} else if_time_range (10, 57, 11, 11) {
|
||||
return_time (10, 57, 11, 11, 46)
|
||||
} else if_time_range (11, 11, 11, 25) {
|
||||
return_time (11, 11, 11, 25, 49)
|
||||
} else if_time_range (11, 25, 11, 29) {
|
||||
return_time (11, 25, 11, 29, 7)
|
||||
} else if_time_range (11, 29, 11, 43) {
|
||||
return_time (11, 29, 11, 43, 51)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (12, 0, 13, 1) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_time (12, 0, 13, 1, 9)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (13, 1, 15, 0) {
|
||||
if_scene (SCENE_ICHIBA) {
|
||||
if_time_range (13, 1, 13, 4) {
|
||||
return_time (13, 1, 13, 4, 1)
|
||||
} else if_time_range (13, 4, 13, 21) {
|
||||
return_time (13, 4, 13, 21, 53)
|
||||
} else if_time_range (14, 48, 14, 56) {
|
||||
return_time (14, 48, 14, 56, 62)
|
||||
} else if_time_range (14, 56, 15, 0) {
|
||||
return_time (14, 56, 15, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (13, 4, 13, 21) {
|
||||
return_time (13, 4, 13, 21, 54)
|
||||
} else if_time_range (13, 21, 13, 39) {
|
||||
return_time (13, 21, 13, 39, 55)
|
||||
} else if_time_range (14, 38, 14, 48) {
|
||||
return_time (14, 38, 14, 48, 60)
|
||||
} else if_time_range (14, 48, 14, 56) {
|
||||
return_time (14, 48, 14, 56, 61)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (13, 39, 13, 56) {
|
||||
return_time (13, 39, 13, 56, 56)
|
||||
} else if_time_range (13, 56, 14, 0) {
|
||||
return_time (13, 56, 14, 0, 10)
|
||||
} else if_time_range (14, 26, 14, 30) {
|
||||
return_time (14, 26, 14, 30, 11)
|
||||
} else if_time_range (14, 30, 14, 38) {
|
||||
return_time (14, 30, 14, 38, 59)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_YADOYA) {
|
||||
if_time_range (13, 56, 14, 0) {
|
||||
return_time (13, 56, 14, 0, 12)
|
||||
} else if_time_range (14, 0, 14, 8) {
|
||||
return_time (14, 0, 14, 8, 57)
|
||||
} else if_time_range (14, 8, 14, 18) {
|
||||
return_time (14, 8, 14, 18, 16)
|
||||
} else if_time_range (14, 18, 14, 26) {
|
||||
return_time (14, 18, 14, 26, 58)
|
||||
} else if_time_range (14, 26, 14, 30) {
|
||||
return_time (14, 26, 14, 30, 13)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (15, 0, 0, 5) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_time (15, 0, 0, 5, 8)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (2) {
|
||||
if_week_event_reg (WEEKEVENTREG_28_08) {
|
||||
if_time_range (9, 0, 12, 0) {
|
||||
branch (label_0x117)
|
||||
} else if_time_range (12, 0, 13, 1) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_time (12, 0, 13, 1, 21)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (13, 1, 17, 0) {
|
||||
label_0x315:
|
||||
if_scene (SCENE_ICHIBA) {
|
||||
if_time_range (13, 1, 13, 4) {
|
||||
return_time (13, 1, 13, 4, 1)
|
||||
} else if_time_range (13, 4, 13, 15) {
|
||||
return_time (13, 4, 13, 15, 63)
|
||||
} else if_time_range (16, 35, 16, 57) {
|
||||
return_time (16, 35, 16, 57, 73)
|
||||
} else if_time_range (16, 57, 17, 0) {
|
||||
return_time (16, 57, 17, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (13, 4, 13, 15) {
|
||||
return_time (13, 4, 13, 15, 64)
|
||||
} else if_time_range (13, 15, 13, 30) {
|
||||
return_time (13, 15, 13, 30, 65)
|
||||
} else if_time_range (13, 52, 14, 45) {
|
||||
return_time (13, 52, 14, 45, 67)
|
||||
} else if_time_range (16, 15, 16, 35) {
|
||||
return_time (16, 15, 16, 35, 72)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (13, 30, 13, 52) {
|
||||
return_time (13, 30, 13, 52, 66)
|
||||
} else if_time_range (13, 52, 14, 50) {
|
||||
return_time (13, 52, 14, 50, 68)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_ALLEY) {
|
||||
if_time_range (14, 45, 15, 5) {
|
||||
return_time (14, 45, 15, 5, 70)
|
||||
} else if_day (2) {
|
||||
if_time_range (15, 5, 15, 20) {
|
||||
return_time (15, 5, 15, 20, 23)
|
||||
} else if_time_range (15, 20, 15, 25) {
|
||||
return_time (15, 20, 15, 25, 80)
|
||||
} else if_time_range (15, 25, 15, 40) {
|
||||
return_time (15, 25, 15, 40, 17)
|
||||
} else if_time_range (15, 40, 16, 15) {
|
||||
return_time (15, 40, 16, 15, 81)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (15, 5, 15, 20) {
|
||||
return_time (15, 5, 15, 20, 23)
|
||||
} else if_time_range (15, 20, 15, 50) {
|
||||
return_time (15, 20, 15, 50, 25)
|
||||
} else if_time_range (15, 50, 16, 15) {
|
||||
return_time (15, 50, 16, 15, 71)
|
||||
} else {
|
||||
return_l (0)
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (17, 0, 0, 5) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_time (17, 0, 0, 5, 8)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (9, 0, 12, 0) {
|
||||
branch (label_0x117)
|
||||
} else if_time_range (12, 0, 13, 1) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_time (12, 0, 13, 1, 20)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (13, 1, 15, 0) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_l (14)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (0, 0, 2, 0) {
|
||||
if_scene (SCENE_ICHIBA) {
|
||||
if_time_range (0, 0, 0, 4) {
|
||||
return_time (0, 0, 0, 4, 1)
|
||||
} else if_time_range (0, 4, 0, 31) {
|
||||
return_time (0, 4, 0, 31, 74)
|
||||
} else if_time_range (1, 29, 1, 56) {
|
||||
return_time (1, 29, 1, 56, 79)
|
||||
} else if_time_range (1, 56, 2, 0) {
|
||||
return_time (1, 56, 2, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (0, 4, 0, 31) {
|
||||
return_time (0, 4, 0, 31, 75)
|
||||
} else if_time_range (0, 31, 0, 58) {
|
||||
return_time (0, 31, 0, 58, 76)
|
||||
} else if_time_range (0, 58, 1, 2) {
|
||||
return_time (0, 58, 1, 2, 18)
|
||||
} else if_time_range (1, 2, 1, 29) {
|
||||
return_time (1, 2, 1, 29, 77)
|
||||
} else if_time_range (1, 29, 1, 56) {
|
||||
return_time (1, 29, 1, 56, 78)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (3) {
|
||||
if_week_event_reg (WEEKEVENTREG_28_08) {
|
||||
if_time_range (9, 0, 12, 0) {
|
||||
branch (label_0x117)
|
||||
} else if_time_range (12, 0, 13, 1) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_l (20)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (13, 1, 15, 0) {
|
||||
branch (label_0x446)
|
||||
} else if_time_range (18, 0, 6, 0) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_l (24)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_week_event_reg (WEEKEVENTREG_28_10) {
|
||||
if_time_range (9, 0, 12, 0) {
|
||||
branch (label_0x117)
|
||||
} else if_time_range (12, 0, 13, 1) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_time (12, 0, 13, 1, 21)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (13, 1, 17, 0) {
|
||||
branch (label_0x315)
|
||||
} else if_time_range (18, 0, 6, 0) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_l (24)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (9, 0, 12, 0) {
|
||||
branch (label_0x117)
|
||||
} else if_time_range (12, 0, 13, 1) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_l (22)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (13, 1, 15, 0) {
|
||||
label_0x446:
|
||||
if_scene (SCENE_ICHIBA) {
|
||||
if_time_range (13, 0, 13, 1) {
|
||||
return_time (13, 0, 13, 1, 1)
|
||||
} else if_time_range (13, 5, 13, 15) {
|
||||
return_time (13, 5, 13, 15, 38)
|
||||
} else if_time_range (14, 45, 14, 55) {
|
||||
return_time (14, 45, 14, 55, 52)
|
||||
} else if_time_range (14, 55, 15, 0) {
|
||||
return_time (14, 55, 15, 0, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (13, 5, 13, 15) {
|
||||
return_time (13, 5, 13, 15, 39)
|
||||
} else if_time_range (13, 15, 13, 25) {
|
||||
return_time (13, 15, 13, 25, 40)
|
||||
} else if_time_range (13, 25, 13, 35) {
|
||||
return_time (13, 25, 13, 35, 41)
|
||||
} else if_time_range (14, 15, 14, 25) {
|
||||
return_time (14, 15, 14, 25, 47)
|
||||
} else if_time_range (14, 25, 14, 35) {
|
||||
return_time (14, 25, 14, 35, 48)
|
||||
} else if_time_range (14, 35, 14, 45) {
|
||||
return_time (14, 35, 14, 45, 50)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_BACKTOWN) {
|
||||
if_time_range (13, 35, 13, 45) {
|
||||
return_time (13, 35, 13, 45, 42)
|
||||
} else if_time_range (13, 45, 13, 55) {
|
||||
return_time (13, 45, 13, 55, 43)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (13, 55, 14, 5) {
|
||||
return_time (13, 55, 14, 5, 44)
|
||||
} else if_time_range (14, 5, 14, 15) {
|
||||
return_time (14, 5, 14, 15, 45)
|
||||
} else if_time_range (14, 15, 14, 25) {
|
||||
return_time (14, 15, 14, 25, 46)
|
||||
} else if_time_range (14, 25, 14, 35) {
|
||||
return_time (14, 25, 14, 35, 49)
|
||||
} else if_time_range (14, 35, 14, 45) {
|
||||
return_time (14, 35, 14, 45, 51)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (18, 0, 6, 0) {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
return_l (24)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80AFB30C {
|
||||
if_scene (SCENE_POSTHOUSE) {
|
||||
if_time_range (0, 0, 0, 10) {
|
||||
return_time (0, 0, 0, 10, 82)
|
||||
} else if_time_range (0, 10, 0, 13) {
|
||||
return_l (27)
|
||||
} else if_time_range (0, 13, 0, 23) {
|
||||
return_time (0, 13, 0, 23, 83)
|
||||
} else if_time_range (0, 23, 0, 26) {
|
||||
return_time (0, 23, 0, 26, 32)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_ICHIBA) {
|
||||
if_time_range (0, 23, 0, 26) {
|
||||
return_time (0, 23, 0, 26, 33)
|
||||
} else if_time_range (0, 26, 0, 36) {
|
||||
return_time (0, 26, 0, 36, 84)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (0, 26, 0, 36) {
|
||||
return_time (0, 26, 0, 36, 85)
|
||||
} else if_time_range (0, 36, 0, 46) {
|
||||
return_time (0, 36, 0, 46, 86)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (0, 46, 0, 56) {
|
||||
return_time (0, 46, 0, 56, 87)
|
||||
} else if_time_range (0, 56, 0, 59) {
|
||||
return_time (0, 56, 0, 59, 34)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_MILK_BAR) {
|
||||
if_time_range (0, 56, 0, 59) {
|
||||
return_time (0, 56, 0, 59, 36)
|
||||
} else if_time_range (0, 59, 1, 9) {
|
||||
return_time (0, 59, 1, 9, 88)
|
||||
} else if_time_range (1, 9, 1, 40) {
|
||||
return_time (1, 9, 1, 40, 28)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80AFB3C0 {
|
||||
if_scene (SCENE_TOWN) {
|
||||
if_time_range (0, 10, 0, 13) {
|
||||
return_time (0, 10, 0, 13, 35)
|
||||
} else if_time_range (0, 13, 0, 23) {
|
||||
return_time (0, 13, 0, 23, 90)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_MILK_BAR) {
|
||||
if_time_range (0, 0, 0, 10) {
|
||||
return_time (0, 0, 0, 10, 89)
|
||||
} else if_time_range (0, 10, 0, 13) {
|
||||
return_time (0, 10, 0, 13, 37)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80AFB3FC {
|
||||
if_scene (SCENE_TOWN) {
|
||||
if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 29)
|
||||
} else if_time_range (5, 0, 5, 10) {
|
||||
return_time (5, 0, 5, 10, 91)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
|
||||
D_80AFB41C {
|
||||
if_scene (SCENE_TOWN) {
|
||||
if_time_range (0, 0, 0, 10) {
|
||||
return_time (0, 0, 0, 10, 91)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -20,366 +20,7 @@ void EnPm_Draw(Actor* thisx, PlayState* play);
|
||||
void func_80AFA4D0(EnPm* this, PlayState* play);
|
||||
void func_80AFA5FC(EnPm* this, PlayState* play);
|
||||
|
||||
static u8 D_80AFAD80[] = {
|
||||
/* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x240 - 0x005),
|
||||
/* 0x005 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(9, 0, 12, 0, 0x117 - 0x00C),
|
||||
/* 0x00C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 13, 1, 0x10C - 0x013),
|
||||
/* 0x013 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 1, 15, 0, 0x02B - 0x019),
|
||||
/* 0x019 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 0, 0, 5, 0x020 - 0x01F),
|
||||
/* 0x01F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x020 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x02A - 0x024),
|
||||
/* 0x024 */ SCHEDULE_CMD_RET_TIME(15, 0, 0, 5, 8),
|
||||
/* 0x02A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x02B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ICHIBA, 0x060 - 0x02F),
|
||||
/* 0x02F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 1, 13, 4, 0x05A - 0x035),
|
||||
/* 0x035 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 4, 13, 21, 0x054 - 0x03B),
|
||||
/* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 48, 14, 56, 0x04E - 0x041),
|
||||
/* 0x041 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 56, 15, 0, 0x048 - 0x047),
|
||||
/* 0x047 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x048 */ SCHEDULE_CMD_RET_TIME(14, 56, 15, 0, 2),
|
||||
/* 0x04E */ SCHEDULE_CMD_RET_TIME(14, 48, 14, 56, 62),
|
||||
/* 0x054 */ SCHEDULE_CMD_RET_TIME(13, 4, 13, 21, 53),
|
||||
/* 0x05A */ SCHEDULE_CMD_RET_TIME(13, 1, 13, 4, 1),
|
||||
/* 0x060 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x095 - 0x064),
|
||||
/* 0x064 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 4, 13, 21, 0x08F - 0x06A),
|
||||
/* 0x06A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 21, 13, 39, 0x089 - 0x070),
|
||||
/* 0x070 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 38, 14, 48, 0x083 - 0x076),
|
||||
/* 0x076 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 48, 14, 56, 0x07D - 0x07C),
|
||||
/* 0x07C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x07D */ SCHEDULE_CMD_RET_TIME(14, 48, 14, 56, 61),
|
||||
/* 0x083 */ SCHEDULE_CMD_RET_TIME(14, 38, 14, 48, 60),
|
||||
/* 0x089 */ SCHEDULE_CMD_RET_TIME(13, 21, 13, 39, 55),
|
||||
/* 0x08F */ SCHEDULE_CMD_RET_TIME(13, 4, 13, 21, 54),
|
||||
/* 0x095 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x0CA - 0x099),
|
||||
/* 0x099 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 39, 13, 56, 0x0C4 - 0x09F),
|
||||
/* 0x09F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 56, 14, 0, 0x0BE - 0x0A5),
|
||||
/* 0x0A5 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 26, 14, 30, 0x0B8 - 0x0AB),
|
||||
/* 0x0AB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 30, 14, 38, 0x0B2 - 0x0B1),
|
||||
/* 0x0B1 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0B2 */ SCHEDULE_CMD_RET_TIME(14, 30, 14, 38, 59),
|
||||
/* 0x0B8 */ SCHEDULE_CMD_RET_TIME(14, 26, 14, 30, 11),
|
||||
/* 0x0BE */ SCHEDULE_CMD_RET_TIME(13, 56, 14, 0, 10),
|
||||
/* 0x0C4 */ SCHEDULE_CMD_RET_TIME(13, 39, 13, 56, 56),
|
||||
/* 0x0CA */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x10B - 0x0CE),
|
||||
/* 0x0CE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 56, 14, 0, 0x105 - 0x0D4),
|
||||
/* 0x0D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 0, 14, 8, 0x0FF - 0x0DA),
|
||||
/* 0x0DA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 8, 14, 18, 0x0F9 - 0x0E0),
|
||||
/* 0x0E0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 14, 26, 0x0F3 - 0x0E6),
|
||||
/* 0x0E6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 26, 14, 30, 0x0ED - 0x0EC),
|
||||
/* 0x0EC */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0ED */ SCHEDULE_CMD_RET_TIME(14, 26, 14, 30, 13),
|
||||
/* 0x0F3 */ SCHEDULE_CMD_RET_TIME(14, 18, 14, 26, 58),
|
||||
/* 0x0F9 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, 16),
|
||||
/* 0x0FF */ SCHEDULE_CMD_RET_TIME(14, 0, 14, 8, 57),
|
||||
/* 0x105 */ SCHEDULE_CMD_RET_TIME(13, 56, 14, 0, 12),
|
||||
/* 0x10B */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x10C */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x116 - 0x110),
|
||||
/* 0x110 */ SCHEDULE_CMD_RET_TIME(12, 0, 13, 1, 9),
|
||||
/* 0x116 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x117 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ICHIBA, 0x14C - 0x11B),
|
||||
/* 0x11B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 0, 9, 3, 0x146 - 0x121),
|
||||
/* 0x121 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 3, 9, 17, 0x140 - 0x127),
|
||||
/* 0x127 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 43, 11, 57, 0x13A - 0x12D),
|
||||
/* 0x12D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 57, 12, 0, 0x134 - 0x133),
|
||||
/* 0x133 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x134 */ SCHEDULE_CMD_RET_TIME(11, 57, 12, 0, 2),
|
||||
/* 0x13A */ SCHEDULE_CMD_RET_TIME(11, 43, 11, 57, 52),
|
||||
/* 0x140 */ SCHEDULE_CMD_RET_TIME(9, 3, 9, 17, 38),
|
||||
/* 0x146 */ SCHEDULE_CMD_RET_TIME(9, 0, 9, 3, 1),
|
||||
/* 0x14C */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x1B1 - 0x150),
|
||||
/* 0x150 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 3, 9, 17, 0x1AB - 0x156),
|
||||
/* 0x156 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 17, 9, 31, 0x1A5 - 0x15C),
|
||||
/* 0x15C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 31, 9, 35, 0x19F - 0x162),
|
||||
/* 0x162 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 35, 9, 49, 0x199 - 0x168),
|
||||
/* 0x168 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 57, 11, 11, 0x193 - 0x16E),
|
||||
/* 0x16E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 11, 11, 25, 0x18D - 0x174),
|
||||
/* 0x174 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 29, 0x187 - 0x17A),
|
||||
/* 0x17A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 43, 0x181 - 0x180),
|
||||
/* 0x180 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x181 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 43, 50),
|
||||
/* 0x187 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 29, 7),
|
||||
/* 0x18D */ SCHEDULE_CMD_RET_TIME(11, 11, 11, 25, 48),
|
||||
/* 0x193 */ SCHEDULE_CMD_RET_TIME(10, 57, 11, 11, 47),
|
||||
/* 0x199 */ SCHEDULE_CMD_RET_TIME(9, 35, 9, 49, 41),
|
||||
/* 0x19F */ SCHEDULE_CMD_RET_TIME(9, 31, 9, 35, 3),
|
||||
/* 0x1A5 */ SCHEDULE_CMD_RET_TIME(9, 17, 9, 31, 40),
|
||||
/* 0x1AB */ SCHEDULE_CMD_RET_TIME(9, 3, 9, 17, 39),
|
||||
/* 0x1B1 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_BACKTOWN, 0x1DA - 0x1B5),
|
||||
/* 0x1B5 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 49, 10, 3, 0x1D4 - 0x1BB),
|
||||
/* 0x1BB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 3, 10, 7, 0x1CE - 0x1C1),
|
||||
/* 0x1C1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 7, 10, 21, 0x1C8 - 0x1C7),
|
||||
/* 0x1C7 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1C8 */ SCHEDULE_CMD_RET_TIME(10, 7, 10, 21, 43),
|
||||
/* 0x1CE */ SCHEDULE_CMD_RET_TIME(10, 3, 10, 7, 4),
|
||||
/* 0x1D4 */ SCHEDULE_CMD_RET_TIME(9, 49, 10, 3, 42),
|
||||
/* 0x1DA */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1DE),
|
||||
/* 0x1DE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 21, 10, 35, 0x239 - 0x1E4),
|
||||
/* 0x1E4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 35, 10, 39, 0x233 - 0x1EA),
|
||||
/* 0x1EA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 39, 10, 53, 0x22D - 0x1F0),
|
||||
/* 0x1F0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 53, 10, 57, 0x227 - 0x1F6),
|
||||
/* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 57, 11, 11, 0x221 - 0x1FC),
|
||||
/* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 11, 11, 25, 0x21B - 0x202),
|
||||
/* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 29, 0x215 - 0x208),
|
||||
/* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 43, 0x20F - 0x20E),
|
||||
/* 0x20E */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x20F */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 43, 51),
|
||||
/* 0x215 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 29, 7),
|
||||
/* 0x21B */ SCHEDULE_CMD_RET_TIME(11, 11, 11, 25, 49),
|
||||
/* 0x221 */ SCHEDULE_CMD_RET_TIME(10, 57, 11, 11, 46),
|
||||
/* 0x227 */ SCHEDULE_CMD_RET_TIME(10, 53, 10, 57, 6),
|
||||
/* 0x22D */ SCHEDULE_CMD_RET_TIME(10, 39, 10, 53, 45),
|
||||
/* 0x233 */ SCHEDULE_CMD_RET_TIME(10, 35, 10, 39, 5),
|
||||
/* 0x239 */ SCHEDULE_CMD_RET_TIME(10, 21, 10, 35, 44),
|
||||
/* 0x23F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x240 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x414 - 0x245),
|
||||
/* 0x245 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_28_08, 0x2EF - 0x24A),
|
||||
/* 0x24A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(9, 0, 12, 0, 0x117 - 0x251),
|
||||
/* 0x251 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 13, 1, 0x2E4 - 0x258),
|
||||
/* 0x258 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 1, 15, 0, 0x2DC - 0x25E),
|
||||
/* 0x25E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 2, 0, 0x265 - 0x264),
|
||||
/* 0x264 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x265 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ICHIBA, 0x29A - 0x269),
|
||||
/* 0x269 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 0, 4, 0x294 - 0x26F),
|
||||
/* 0x26F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 4, 0, 31, 0x28E - 0x275),
|
||||
/* 0x275 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 29, 1, 56, 0x288 - 0x27B),
|
||||
/* 0x27B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 56, 2, 0, 0x282 - 0x281),
|
||||
/* 0x281 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x282 */ SCHEDULE_CMD_RET_TIME(1, 56, 2, 0, 2),
|
||||
/* 0x288 */ SCHEDULE_CMD_RET_TIME(1, 29, 1, 56, 79),
|
||||
/* 0x28E */ SCHEDULE_CMD_RET_TIME(0, 4, 0, 31, 74),
|
||||
/* 0x294 */ SCHEDULE_CMD_RET_TIME(0, 0, 0, 4, 1),
|
||||
/* 0x29A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x2DB - 0x29E),
|
||||
/* 0x29E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 4, 0, 31, 0x2D5 - 0x2A4),
|
||||
/* 0x2A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 31, 0, 58, 0x2CF - 0x2AA),
|
||||
/* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 58, 1, 2, 0x2C9 - 0x2B0),
|
||||
/* 0x2B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 2, 1, 29, 0x2C3 - 0x2B6),
|
||||
/* 0x2B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 29, 1, 56, 0x2BD - 0x2BC),
|
||||
/* 0x2BC */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x2BD */ SCHEDULE_CMD_RET_TIME(1, 29, 1, 56, 78),
|
||||
/* 0x2C3 */ SCHEDULE_CMD_RET_TIME(1, 2, 1, 29, 77),
|
||||
/* 0x2C9 */ SCHEDULE_CMD_RET_TIME(0, 58, 1, 2, 18),
|
||||
/* 0x2CF */ SCHEDULE_CMD_RET_TIME(0, 31, 0, 58, 76),
|
||||
/* 0x2D5 */ SCHEDULE_CMD_RET_TIME(0, 4, 0, 31, 75),
|
||||
/* 0x2DB */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x2DC */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x2E3 - 0x2E0),
|
||||
/* 0x2E0 */ SCHEDULE_CMD_RET_VAL_L(14),
|
||||
/* 0x2E3 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x2E4 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x2EE - 0x2E8),
|
||||
/* 0x2E8 */ SCHEDULE_CMD_RET_TIME(12, 0, 13, 1, 20),
|
||||
/* 0x2EE */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x2EF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(9, 0, 12, 0, 0x117 - 0x2F6),
|
||||
/* 0x2F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 13, 1, 0x409 - 0x2FD),
|
||||
/* 0x2FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 1, 17, 0, 0x315 - 0x303),
|
||||
/* 0x303 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 0, 0, 5, 0x30A - 0x309),
|
||||
/* 0x309 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x30A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x314 - 0x30E),
|
||||
/* 0x30E */ SCHEDULE_CMD_RET_TIME(17, 0, 0, 5, 8),
|
||||
/* 0x314 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x315 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ICHIBA, 0x34A - 0x319),
|
||||
/* 0x319 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 1, 13, 4, 0x344 - 0x31F),
|
||||
/* 0x31F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 4, 13, 15, 0x33E - 0x325),
|
||||
/* 0x325 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 35, 16, 57, 0x338 - 0x32B),
|
||||
/* 0x32B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 57, 17, 0, 0x332 - 0x331),
|
||||
/* 0x331 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x332 */ SCHEDULE_CMD_RET_TIME(16, 57, 17, 0, 2),
|
||||
/* 0x338 */ SCHEDULE_CMD_RET_TIME(16, 35, 16, 57, 73),
|
||||
/* 0x33E */ SCHEDULE_CMD_RET_TIME(13, 4, 13, 15, 63),
|
||||
/* 0x344 */ SCHEDULE_CMD_RET_TIME(13, 1, 13, 4, 1),
|
||||
/* 0x34A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x37F - 0x34E),
|
||||
/* 0x34E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 4, 13, 15, 0x379 - 0x354),
|
||||
/* 0x354 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 30, 0x373 - 0x35A),
|
||||
/* 0x35A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 52, 14, 45, 0x36D - 0x360),
|
||||
/* 0x360 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 15, 16, 35, 0x367 - 0x366),
|
||||
/* 0x366 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x367 */ SCHEDULE_CMD_RET_TIME(16, 15, 16, 35, 72),
|
||||
/* 0x36D */ SCHEDULE_CMD_RET_TIME(13, 52, 14, 45, 67),
|
||||
/* 0x373 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 30, 65),
|
||||
/* 0x379 */ SCHEDULE_CMD_RET_TIME(13, 4, 13, 15, 64),
|
||||
/* 0x37F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x39C - 0x383),
|
||||
/* 0x383 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 30, 13, 52, 0x396 - 0x389),
|
||||
/* 0x389 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 52, 14, 50, 0x390 - 0x38F),
|
||||
/* 0x38F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x390 */ SCHEDULE_CMD_RET_TIME(13, 52, 14, 50, 68),
|
||||
/* 0x396 */ SCHEDULE_CMD_RET_TIME(13, 30, 13, 52, 66),
|
||||
/* 0x39C */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x408 - 0x3A0),
|
||||
/* 0x3A0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 45, 15, 5, 0x402 - 0x3A6),
|
||||
/* 0x3A6 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x3DB - 0x3AA),
|
||||
/* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 5, 15, 20, 0x3D5 - 0x3B0),
|
||||
/* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 20, 15, 25, 0x3CF - 0x3B6),
|
||||
/* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 40, 0x3C9 - 0x3BC),
|
||||
/* 0x3BC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 40, 16, 15, 0x3C3 - 0x3C2),
|
||||
/* 0x3C2 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x3C3 */ SCHEDULE_CMD_RET_TIME(15, 40, 16, 15, 81),
|
||||
/* 0x3C9 */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 40, 17),
|
||||
/* 0x3CF */ SCHEDULE_CMD_RET_TIME(15, 20, 15, 25, 80),
|
||||
/* 0x3D5 */ SCHEDULE_CMD_RET_TIME(15, 5, 15, 20, 23),
|
||||
/* 0x3DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 5, 15, 20, 0x3FC - 0x3E1),
|
||||
/* 0x3E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 20, 15, 50, 0x3F6 - 0x3E7),
|
||||
/* 0x3E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 50, 16, 15, 0x3F0 - 0x3ED),
|
||||
/* 0x3ED */ SCHEDULE_CMD_RET_VAL_L(0),
|
||||
/* 0x3F0 */ SCHEDULE_CMD_RET_TIME(15, 50, 16, 15, 71),
|
||||
/* 0x3F6 */ SCHEDULE_CMD_RET_TIME(15, 20, 15, 50, 25),
|
||||
/* 0x3FC */ SCHEDULE_CMD_RET_TIME(15, 5, 15, 20, 23),
|
||||
/* 0x402 */ SCHEDULE_CMD_RET_TIME(14, 45, 15, 5, 70),
|
||||
/* 0x408 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x409 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x413 - 0x40D),
|
||||
/* 0x40D */ SCHEDULE_CMD_RET_TIME(12, 0, 13, 1, 21),
|
||||
/* 0x413 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x414 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x588 - 0x419),
|
||||
/* 0x419 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_28_08, 0x55D - 0x41E),
|
||||
/* 0x41E */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_28_10, 0x52F - 0x423),
|
||||
/* 0x423 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(9, 0, 12, 0, 0x117 - 0x42A),
|
||||
/* 0x42A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 13, 1, 0x527 - 0x431),
|
||||
/* 0x431 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 1, 15, 0, 0x446 - 0x437),
|
||||
/* 0x437 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x43E - 0x43D),
|
||||
/* 0x43D */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x43E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x445 - 0x442),
|
||||
/* 0x442 */ SCHEDULE_CMD_RET_VAL_L(24),
|
||||
/* 0x445 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x446 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ICHIBA, 0x47B - 0x44A),
|
||||
/* 0x44A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 0, 13, 1, 0x475 - 0x450),
|
||||
/* 0x450 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 5, 13, 15, 0x46F - 0x456),
|
||||
/* 0x456 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 45, 14, 55, 0x469 - 0x45C),
|
||||
/* 0x45C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 55, 15, 0, 0x463 - 0x462),
|
||||
/* 0x462 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x463 */ SCHEDULE_CMD_RET_TIME(14, 55, 15, 0, 2),
|
||||
/* 0x469 */ SCHEDULE_CMD_RET_TIME(14, 45, 14, 55, 52),
|
||||
/* 0x46F */ SCHEDULE_CMD_RET_TIME(13, 5, 13, 15, 38),
|
||||
/* 0x475 */ SCHEDULE_CMD_RET_TIME(13, 0, 13, 1, 1),
|
||||
/* 0x47B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x4C8 - 0x47F),
|
||||
/* 0x47F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 5, 13, 15, 0x4C2 - 0x485),
|
||||
/* 0x485 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 25, 0x4BC - 0x48B),
|
||||
/* 0x48B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 25, 13, 35, 0x4B6 - 0x491),
|
||||
/* 0x491 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 15, 14, 25, 0x4B0 - 0x497),
|
||||
/* 0x497 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 25, 14, 35, 0x4AA - 0x49D),
|
||||
/* 0x49D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 35, 14, 45, 0x4A4 - 0x4A3),
|
||||
/* 0x4A3 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x4A4 */ SCHEDULE_CMD_RET_TIME(14, 35, 14, 45, 50),
|
||||
/* 0x4AA */ SCHEDULE_CMD_RET_TIME(14, 25, 14, 35, 48),
|
||||
/* 0x4B0 */ SCHEDULE_CMD_RET_TIME(14, 15, 14, 25, 47),
|
||||
/* 0x4B6 */ SCHEDULE_CMD_RET_TIME(13, 25, 13, 35, 41),
|
||||
/* 0x4BC */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 25, 40),
|
||||
/* 0x4C2 */ SCHEDULE_CMD_RET_TIME(13, 5, 13, 15, 39),
|
||||
/* 0x4C8 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_BACKTOWN, 0x4E5 - 0x4CC),
|
||||
/* 0x4CC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 35, 13, 45, 0x4DF - 0x4D2),
|
||||
/* 0x4D2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 13, 55, 0x4D9 - 0x4D8),
|
||||
/* 0x4D8 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x4D9 */ SCHEDULE_CMD_RET_TIME(13, 45, 13, 55, 43),
|
||||
/* 0x4DF */ SCHEDULE_CMD_RET_TIME(13, 35, 13, 45, 42),
|
||||
/* 0x4E5 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x526 - 0x4E9),
|
||||
/* 0x4E9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 55, 14, 5, 0x520 - 0x4EF),
|
||||
/* 0x4EF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 5, 14, 15, 0x51A - 0x4F5),
|
||||
/* 0x4F5 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 15, 14, 25, 0x514 - 0x4FB),
|
||||
/* 0x4FB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 25, 14, 35, 0x50E - 0x501),
|
||||
/* 0x501 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 35, 14, 45, 0x508 - 0x507),
|
||||
/* 0x507 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x508 */ SCHEDULE_CMD_RET_TIME(14, 35, 14, 45, 51),
|
||||
/* 0x50E */ SCHEDULE_CMD_RET_TIME(14, 25, 14, 35, 49),
|
||||
/* 0x514 */ SCHEDULE_CMD_RET_TIME(14, 15, 14, 25, 46),
|
||||
/* 0x51A */ SCHEDULE_CMD_RET_TIME(14, 5, 14, 15, 45),
|
||||
/* 0x520 */ SCHEDULE_CMD_RET_TIME(13, 55, 14, 5, 44),
|
||||
/* 0x526 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x527 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x52E - 0x52B),
|
||||
/* 0x52B */ SCHEDULE_CMD_RET_VAL_L(22),
|
||||
/* 0x52E */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x52F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(9, 0, 12, 0, 0x117 - 0x536),
|
||||
/* 0x536 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 0, 13, 1, 0x552 - 0x53C),
|
||||
/* 0x53C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 1, 17, 0, 0x315 - 0x543),
|
||||
/* 0x543 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x54A - 0x549),
|
||||
/* 0x549 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x54A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x551 - 0x54E),
|
||||
/* 0x54E */ SCHEDULE_CMD_RET_VAL_L(24),
|
||||
/* 0x551 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x552 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x55C - 0x556),
|
||||
/* 0x556 */ SCHEDULE_CMD_RET_TIME(12, 0, 13, 1, 21),
|
||||
/* 0x55C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x55D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(9, 0, 12, 0, 0x117 - 0x564),
|
||||
/* 0x564 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 0, 13, 1, 0x580 - 0x56A),
|
||||
/* 0x56A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 1, 15, 0, 0x446 - 0x571),
|
||||
/* 0x571 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x578 - 0x577),
|
||||
/* 0x577 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x578 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x57F - 0x57C),
|
||||
/* 0x57C */ SCHEDULE_CMD_RET_VAL_L(24),
|
||||
/* 0x57F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x580 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x587 - 0x584),
|
||||
/* 0x584 */ SCHEDULE_CMD_RET_VAL_L(20),
|
||||
/* 0x587 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x588 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
static u8 D_80AFB30C[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_POSTHOUSE, 0x32 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 0, 10, 0x2C - 0x0A),
|
||||
/* 0x0A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 10, 0, 13, 0x29 - 0x10),
|
||||
/* 0x10 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 13, 0, 23, 0x23 - 0x16),
|
||||
/* 0x16 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 23, 0, 26, 0x1D - 0x1C),
|
||||
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_TIME(0, 23, 0, 26, 32),
|
||||
/* 0x23 */ SCHEDULE_CMD_RET_TIME(0, 13, 0, 23, 83),
|
||||
/* 0x29 */ SCHEDULE_CMD_RET_VAL_L(27),
|
||||
/* 0x2C */ SCHEDULE_CMD_RET_TIME(0, 0, 0, 10, 82),
|
||||
/* 0x32 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ICHIBA, 0x4F - 0x36),
|
||||
/* 0x36 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 23, 0, 26, 0x49 - 0x3C),
|
||||
/* 0x3C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 26, 0, 36, 0x43 - 0x42),
|
||||
/* 0x42 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x43 */ SCHEDULE_CMD_RET_TIME(0, 26, 0, 36, 84),
|
||||
/* 0x49 */ SCHEDULE_CMD_RET_TIME(0, 23, 0, 26, 33),
|
||||
/* 0x4F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x6C - 0x53),
|
||||
/* 0x53 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 26, 0, 36, 0x66 - 0x59),
|
||||
/* 0x59 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 36, 0, 46, 0x60 - 0x5F),
|
||||
/* 0x5F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x60 */ SCHEDULE_CMD_RET_TIME(0, 36, 0, 46, 86),
|
||||
/* 0x66 */ SCHEDULE_CMD_RET_TIME(0, 26, 0, 36, 85),
|
||||
/* 0x6C */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x89 - 0x70),
|
||||
/* 0x70 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 46, 0, 56, 0x83 - 0x76),
|
||||
/* 0x76 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 56, 0, 59, 0x7D - 0x7C),
|
||||
/* 0x7C */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x7D */ SCHEDULE_CMD_RET_TIME(0, 56, 0, 59, 34),
|
||||
/* 0x83 */ SCHEDULE_CMD_RET_TIME(0, 46, 0, 56, 87),
|
||||
/* 0x89 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_MILK_BAR, 0xB2 - 0x8D),
|
||||
/* 0x8D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 56, 0, 59, 0xAC - 0x93),
|
||||
/* 0x93 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 59, 1, 9, 0xA6 - 0x99),
|
||||
/* 0x99 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 9, 1, 40, 0xA0 - 0x9F),
|
||||
/* 0x9F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0xA0 */ SCHEDULE_CMD_RET_TIME(1, 9, 1, 40, 28),
|
||||
/* 0xA6 */ SCHEDULE_CMD_RET_TIME(0, 59, 1, 9, 88),
|
||||
/* 0xAC */ SCHEDULE_CMD_RET_TIME(0, 56, 0, 59, 36),
|
||||
/* 0xB2 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
static u8 D_80AFB3C0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x1D - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 10, 0, 13, 0x17 - 0x0A),
|
||||
/* 0x0A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 13, 0, 23, 0x11 - 0x10),
|
||||
/* 0x10 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x11 */ SCHEDULE_CMD_RET_TIME(0, 13, 0, 23, 90),
|
||||
/* 0x17 */ SCHEDULE_CMD_RET_TIME(0, 10, 0, 13, 35),
|
||||
/* 0x1D */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_MILK_BAR, 0x3A - 0x21),
|
||||
/* 0x21 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 0, 10, 0x34 - 0x27),
|
||||
/* 0x27 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 10, 0, 13, 0x2E - 0x2D),
|
||||
/* 0x2D */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x2E */ SCHEDULE_CMD_RET_TIME(0, 10, 0, 13, 37),
|
||||
/* 0x34 */ SCHEDULE_CMD_RET_TIME(0, 0, 0, 10, 89),
|
||||
/* 0x3A */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
static u8 D_80AFB3FC[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x1D - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x17 - 0x0A),
|
||||
/* 0x0A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 5, 10, 0x11 - 0x10),
|
||||
/* 0x10 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x11 */ SCHEDULE_CMD_RET_TIME(5, 0, 5, 10, 91),
|
||||
/* 0x17 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 29),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
|
||||
static u8 D_80AFB41C[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x11 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 0, 10, 0x0B - 0x0A),
|
||||
/* 0x0A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0B */ SCHEDULE_CMD_RET_TIME(0, 0, 0, 10, 91),
|
||||
/* 0x11 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Pm/scheduleScripts.schl.inc"
|
||||
|
||||
static s32 D_80AFB430[] = {
|
||||
-1, 0, 4, 1, 0, 0, 1, 4, -1, -1, 15, 5, 0, 3, -1, -1, 1, 2, 11, 3, -1, -1, -1, 0, 0, 0, 0, 0, 1, 12, -1,
|
||||
@ -1987,7 +1628,7 @@ void func_80AFA438(EnPm* this, PlayState* play) {
|
||||
}
|
||||
|
||||
void func_80AFA4D0(EnPm* this, PlayState* play) {
|
||||
static u8* D_80AFB900[] = {
|
||||
static ScheduleScript* D_80AFB900[] = {
|
||||
D_80AFAD80, D_80AFB30C, D_80AFB3C0, D_80AFB3FC, D_80AFB41C,
|
||||
};
|
||||
u16 time = CURRENT_TIME;
|
||||
|
39
src/overlays/actors/ovl_En_Pst/scheduleScripts.schl
Normal file
39
src/overlays/actors/ovl_En_Pst/scheduleScripts.schl
Normal file
@ -0,0 +1,39 @@
|
||||
D_80B2C200 {
|
||||
if_time_range (9, 31, 9, 35) {
|
||||
return_l (POSTBOX_SCH_CHECKED_BY_POSTMAN)
|
||||
} else {
|
||||
return_l (POSTBOX_SCH_AVAILABLE)
|
||||
}
|
||||
}
|
||||
|
||||
D_80B2C20C {
|
||||
if_time_range (10, 3, 10, 7) {
|
||||
return_l (POSTBOX_SCH_CHECKED_BY_POSTMAN)
|
||||
} else {
|
||||
return_l (POSTBOX_SCH_AVAILABLE)
|
||||
}
|
||||
}
|
||||
|
||||
D_80B2C218 {
|
||||
if_time_range (10, 35, 10, 39) {
|
||||
return_l (POSTBOX_SCH_CHECKED_BY_POSTMAN)
|
||||
} else {
|
||||
return_l (POSTBOX_SCH_AVAILABLE)
|
||||
}
|
||||
}
|
||||
|
||||
D_80B2C224 {
|
||||
if_time_range (10, 53, 10, 57) {
|
||||
return_l (POSTBOX_SCH_CHECKED_BY_POSTMAN)
|
||||
} else {
|
||||
return_l (POSTBOX_SCH_AVAILABLE)
|
||||
}
|
||||
}
|
||||
|
||||
D_80B2C230 {
|
||||
if_time_range (11, 25, 11, 29) {
|
||||
return_l (POSTBOX_SCH_CHECKED_BY_POSTMAN)
|
||||
} else {
|
||||
return_l (POSTBOX_SCH_AVAILABLE)
|
||||
}
|
||||
}
|
@ -28,35 +28,7 @@ typedef enum {
|
||||
/* 1 */ POSTBOX_BEHAVIOUR_TAKE_ITEM
|
||||
} PostboxBehaviour;
|
||||
|
||||
static u8 D_80B2C200[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 31, 9, 35, 0x9 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_AVAILABLE),
|
||||
/* 0x9 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_CHECKED_BY_POSTMAN),
|
||||
};
|
||||
|
||||
static u8 D_80B2C20C[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 3, 10, 7, 0x9 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_AVAILABLE),
|
||||
/* 0x9 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_CHECKED_BY_POSTMAN),
|
||||
};
|
||||
|
||||
static u8 D_80B2C218[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 35, 10, 39, 0x9 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_AVAILABLE),
|
||||
/* 0x9 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_CHECKED_BY_POSTMAN),
|
||||
};
|
||||
|
||||
static u8 D_80B2C224[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 53, 10, 57, 0x9 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_AVAILABLE),
|
||||
/* 0x9 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_CHECKED_BY_POSTMAN),
|
||||
};
|
||||
|
||||
static u8 D_80B2C230[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 29, 0x9 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_AVAILABLE),
|
||||
/* 0x9 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_CHECKED_BY_POSTMAN),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Pst/scheduleScripts.schl.inc"
|
||||
|
||||
s32 D_80B2C23C[] = {
|
||||
0x0E27840C, 0x0E00FF2B, 0x00000031, 0x00392800, 0x0A122C27, 0xA40C2F00, 0x000C1012,
|
||||
@ -371,7 +343,7 @@ void EnPst_HandleSchedule(EnPst* this, PlayState* play) {
|
||||
}
|
||||
|
||||
void EnPst_FollowSchedule(EnPst* this, PlayState* play) {
|
||||
static u8* sScheduleScripts[] = {
|
||||
static ScheduleScript* sScheduleScripts[] = {
|
||||
D_80B2C200, D_80B2C20C, D_80B2C218, D_80B2C224, D_80B2C230,
|
||||
};
|
||||
s16 params = this->actor.params;
|
||||
|
65
src/overlays/actors/ovl_En_Suttari/scheduleScripts.schl
Normal file
65
src/overlays/actors/ovl_En_Suttari/scheduleScripts.schl
Normal file
@ -0,0 +1,65 @@
|
||||
D_80BAE820 {
|
||||
if_day (2) {
|
||||
if_week_event_reg (WEEKEVENTREG_RECOVERED_STOLEN_BOMB_BAG) {
|
||||
return_none
|
||||
} else if_scene (SCENE_ICHIBA) {
|
||||
if_time_range (0, 0, 0, 25) {
|
||||
return_time (0, 0, 0, 25, 13)
|
||||
} else if_time_range (0, 25, 0, 30) {
|
||||
return_time (0, 25, 0, 30, 6)
|
||||
} else if_time_range (1, 15, 1, 20) {
|
||||
return_time (1, 15, 1, 20, 7)
|
||||
} else if_time_range (1, 20, 1, 45) {
|
||||
return_time (1, 20, 1, 45, 14)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_AYASHIISHOP) {
|
||||
if_time_range (0, 25, 0, 30) {
|
||||
return_time (0, 25, 0, 30, 8)
|
||||
} else if_time_range (0, 30, 0, 45) {
|
||||
return_time (0, 30, 0, 45, 10)
|
||||
} else if_time_range (0, 45, 1, 0) {
|
||||
return_time (0, 45, 1, 0, 2)
|
||||
} else if_time_range (1, 0, 1, 15) {
|
||||
return_time (1, 0, 1, 15, 11)
|
||||
} else if_time_range (1, 15, 1, 20) {
|
||||
return_time (1, 15, 1, 20, 9)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (1) {
|
||||
if_scene (SCENE_BACKTOWN) {
|
||||
if_time_range (18, 0, 0, 20) {
|
||||
return_time (18, 0, 0, 20, 3)
|
||||
} else if_time_range (0, 20, 0, 30) {
|
||||
return_time (0, 20, 0, 30, 15)
|
||||
} else if_since_time (0, 30) {
|
||||
return_l (4)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (3) {
|
||||
if_scene (SCENE_IKANA) {
|
||||
if_time_range (18, 0, 19, 0) {
|
||||
return_time (18, 0, 19, 0, 12)
|
||||
} else if_time_range (19, 0, 19, 25) {
|
||||
return_l (5)
|
||||
} else if_time_range (19, 25, 0, 0) {
|
||||
return_time (19, 25, 0, 0, 1)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -142,55 +142,7 @@ static TrackOptionsSet sTrackOptions = {
|
||||
{ 0x1770, 4, 1, 6 },
|
||||
};
|
||||
|
||||
static u8 D_80BAE820[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x80 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_RECOVERED_STOLEN_BOMB_BAG, 0x7F - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ICHIBA, 0x3D - 0x0C),
|
||||
/* 0x0C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 0, 25, 0x37 - 0x12),
|
||||
/* 0x12 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 25, 0, 30, 0x31 - 0x18),
|
||||
/* 0x18 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 15, 1, 20, 0x2B - 0x1E),
|
||||
/* 0x1E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 20, 1, 45, 0x25 - 0x24),
|
||||
/* 0x24 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x25 */ SCHEDULE_CMD_RET_TIME(1, 20, 1, 45, 14),
|
||||
/* 0x2B */ SCHEDULE_CMD_RET_TIME(1, 15, 1, 20, 7),
|
||||
/* 0x31 */ SCHEDULE_CMD_RET_TIME(0, 25, 0, 30, 6),
|
||||
/* 0x37 */ SCHEDULE_CMD_RET_TIME(0, 0, 0, 25, 13),
|
||||
/* 0x3D */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_AYASHIISHOP, 0x7E - 0x41),
|
||||
/* 0x41 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 25, 0, 30, 0x78 - 0x47),
|
||||
/* 0x47 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 30, 0, 45, 0x72 - 0x4D),
|
||||
/* 0x4D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 45, 1, 0, 0x6C - 0x53),
|
||||
/* 0x53 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 0, 1, 15, 0x66 - 0x59),
|
||||
/* 0x59 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(1, 15, 1, 20, 0x60 - 0x5F),
|
||||
/* 0x5F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x60 */ SCHEDULE_CMD_RET_TIME(1, 15, 1, 20, 9),
|
||||
/* 0x66 */ SCHEDULE_CMD_RET_TIME(1, 0, 1, 15, 11),
|
||||
/* 0x6C */ SCHEDULE_CMD_RET_TIME(0, 45, 1, 0, 2),
|
||||
/* 0x72 */ SCHEDULE_CMD_RET_TIME(0, 30, 0, 45, 10),
|
||||
/* 0x78 */ SCHEDULE_CMD_RET_TIME(0, 25, 0, 30, 8),
|
||||
/* 0x7E */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x7F */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x80 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(1, 0xA9 - 0x84),
|
||||
/* 0x84 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_BACKTOWN, 0xA8 - 0x88),
|
||||
/* 0x88 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 0, 20, 0xA2 - 0x8E),
|
||||
/* 0x8E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 20, 0, 30, 0x9C - 0x94),
|
||||
/* 0x94 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(0, 30, 0x9B - 0x98),
|
||||
/* 0x98 */ SCHEDULE_CMD_RET_VAL_L(4),
|
||||
/* 0x9B */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x9C */ SCHEDULE_CMD_RET_TIME(0, 20, 0, 30, 15),
|
||||
/* 0xA2 */ SCHEDULE_CMD_RET_TIME(18, 0, 0, 20, 3),
|
||||
/* 0xA8 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0xA9 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0xD4 - 0xAD),
|
||||
/* 0xAD */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_IKANA, 0xD3 - 0xB1),
|
||||
/* 0xB1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 0, 0xCD - 0xB7),
|
||||
/* 0xB7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 0, 19, 25, 0xCA - 0xBD),
|
||||
/* 0xBD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 25, 0, 0, 0xC4 - 0xC3),
|
||||
/* 0xC3 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0xC4 */ SCHEDULE_CMD_RET_TIME(19, 25, 0, 0, 1),
|
||||
/* 0xCA */ SCHEDULE_CMD_RET_VAL_L(5),
|
||||
/* 0xCD */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 0, 12),
|
||||
/* 0xD3 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0xD4 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Suttari/scheduleScripts.schl.inc"
|
||||
|
||||
static s32 D_80BAE8F8[] = {
|
||||
-1, -1, -1, -1, -1, -1, 1, 2, 0, 3, 1, 2, 0, 0, 3, 0,
|
||||
|
27
src/overlays/actors/ovl_En_Tab/scheduleScripts.schl
Normal file
27
src/overlays/actors/ovl_En_Tab/scheduleScripts.schl
Normal file
@ -0,0 +1,27 @@
|
||||
D_80BE18D0 {
|
||||
if_day (3) {
|
||||
if_scene (SCENE_MILK_BAR) {
|
||||
if_time_range (9, 50, 18, 1) {
|
||||
return_time (9, 50, 18, 1, 1)
|
||||
} else if_time_range (18, 0, 6, 0) {
|
||||
return_time (18, 0, 6, 0, 2)
|
||||
} else {
|
||||
return_l (0)
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
if_scene (SCENE_MILK_BAR) {
|
||||
if_time_range (9, 50, 21, 5) {
|
||||
return_time (9, 50, 21, 5, 1)
|
||||
} else if_time_range (21, 55, 5, 5) {
|
||||
return_time (21, 55, 5, 5, 2)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
}
|
@ -20,23 +20,7 @@ void EnTab_Draw(Actor* thisx, PlayState* play);
|
||||
void func_80BE127C(EnTab* this, PlayState* play);
|
||||
void func_80BE1348(EnTab* this, PlayState* play);
|
||||
|
||||
static u8 D_80BE18D0[] = {
|
||||
/* 0x00 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(3, 0x24 - 0x04),
|
||||
/* 0x04 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_MILK_BAR, 0x23 - 0x08),
|
||||
/* 0x08 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 50, 18, 1, 0x1D - 0x0E),
|
||||
/* 0x0E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x17 - 0x14),
|
||||
/* 0x14 */ SCHEDULE_CMD_RET_VAL_L(0),
|
||||
/* 0x17 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 2),
|
||||
/* 0x1D */ SCHEDULE_CMD_RET_TIME(9, 50, 18, 1, 1),
|
||||
/* 0x23 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x24 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_MILK_BAR, 0x41 - 0x28),
|
||||
/* 0x28 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(9, 50, 21, 5, 0x3B - 0x2E),
|
||||
/* 0x2E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 55, 5, 5, 0x35 - 0x34),
|
||||
/* 0x34 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x35 */ SCHEDULE_CMD_RET_TIME(21, 55, 5, 5, 2),
|
||||
/* 0x3B */ SCHEDULE_CMD_RET_TIME(9, 50, 21, 5, 1),
|
||||
/* 0x41 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Tab/scheduleScripts.schl.inc"
|
||||
|
||||
s32 D_80BE1914[] = {
|
||||
0x003A0200, 0x080E2AF9, 0x0C113A02, 0x100E2AFA, 0x0C150900, 0x000E2AFB,
|
||||
|
133
src/overlays/actors/ovl_En_Test3/scheduleScripts.schl
Normal file
133
src/overlays/actors/ovl_En_Test3/scheduleScripts.schl
Normal file
@ -0,0 +1,133 @@
|
||||
sScheduleScript {
|
||||
if_day (1) {
|
||||
if_scene (SCENE_ALLEY) {
|
||||
if_time_range (6, 50, 7, 20) {
|
||||
return_time (6, 50, 7, 20, 15)
|
||||
} else if_before_time (7, 30) {
|
||||
return_none
|
||||
} else if_week_event_reg (WEEKEVENTREG_51_04) {
|
||||
return_s (10)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_CLOCKTOWER) {
|
||||
if_time_range (6, 0, 6, 30) {
|
||||
return_time (6, 0, 6, 30, 13)
|
||||
} else if_time_range (6, 30, 6, 35) {
|
||||
return_s (1)
|
||||
} else if_time_range (6, 35, 6, 50) {
|
||||
return_time (6, 35, 6, 50, 14)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_day (2) {
|
||||
if_week_event_reg (WEEKEVENTREG_51_02) {
|
||||
if_scene (SCENE_ALLEY) {
|
||||
if_before_time (13, 0) {
|
||||
branch (label_0x050)
|
||||
} else if_time_range (15, 5, 15, 25) {
|
||||
return_time (15, 5, 15, 25, 16)
|
||||
} else if_time_range (15, 25, 15, 40) {
|
||||
return_s (1)
|
||||
} else if_time_range (15, 40, 16, 0) {
|
||||
return_time (15, 40, 16, 0, 17)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_AYASHIISHOP) {
|
||||
if_time_range (15, 55, 16, 10) {
|
||||
return_time (15, 55, 16, 10, 12)
|
||||
} else if_time_range (16, 10, 22, 10) {
|
||||
return_s (3)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
branch (label_0x050)
|
||||
|
||||
label_0x050:
|
||||
if_week_event_reg (WEEKEVENTREG_51_04) {
|
||||
return_l (10)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
} else if_day (3) {
|
||||
if_week_event_reg (WEEKEVENTREG_RECOVERED_STOLEN_BOMB_BAG) {
|
||||
label_0x12C:
|
||||
if_scene (SCENE_AYASHIISHOP) {
|
||||
if_week_event_reg (WEEKEVENTREG_51_08) {
|
||||
return_s (4)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
if_week_event_reg (WEEKEVENTREG_SAKON_DEAD) {
|
||||
branch (label_0x12C)
|
||||
} else if_scene (SCENE_SECOM) {
|
||||
return_s (7)
|
||||
} else if_week_event_reg (WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT) {
|
||||
if_scene (SCENE_IKANA) {
|
||||
if_week_event_reg (WEEKEVENTREG_90_02) {
|
||||
return_none
|
||||
} else {
|
||||
return_s (9)
|
||||
}
|
||||
} else if_scene (SCENE_TOWN) {
|
||||
if_time_range (4, 0, 4, 10) {
|
||||
return_time (4, 0, 4, 10, 11)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_YADOYA) {
|
||||
if_time_range (4, 10, 4, 30) {
|
||||
return_time (4, 10, 4, 30, 18)
|
||||
} else if_week_event_reg (WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES) {
|
||||
if_time_range (4, 30, 6, 0) {
|
||||
return_s (8)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_time_range (4, 30, 4, 45) {
|
||||
return_time (4, 30, 4, 45, 19)
|
||||
} else if_time_range (4, 45, 6, 0) {
|
||||
return_s (6)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_scene (SCENE_IKANA) {
|
||||
not if_week_event_reg (WEEKEVENTREG_51_08) {
|
||||
return_s (5)
|
||||
} else if_week_event_reg (WEEKEVENTREG_61_08) {
|
||||
return_s (5)
|
||||
} else if_week_event_reg (WEEKEVENTREG_51_10) {
|
||||
if_time_range (19, 0, 19, 10) {
|
||||
return_time (19, 0, 19, 10, 20)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else if_before_time (19, 0) {
|
||||
return_s (5)
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -82,94 +82,7 @@ void func_80A4084C(EnTest3* this, PlayState* play);
|
||||
void func_80A40908(EnTest3* this, PlayState* play);
|
||||
void func_80A40A6C(EnTest3* this, PlayState* play);
|
||||
|
||||
static u8 sScheduleScript[] = {
|
||||
/* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(1, 0x046 - 0x004),
|
||||
/* 0x004 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x020 - 0x008),
|
||||
/* 0x008 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 50, 7, 20, 0x01A - 0x00E),
|
||||
/* 0x00E */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(7, 30, 0x019 - 0x012),
|
||||
/* 0x012 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_51_04, 0x017 - 0x016),
|
||||
/* 0x016 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x017 */ SCHEDULE_CMD_RET_VAL_S(10),
|
||||
/* 0x019 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x01A */ SCHEDULE_CMD_RET_TIME(6, 50, 7, 20, 15),
|
||||
/* 0x020 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x045 - 0x024),
|
||||
/* 0x024 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 6, 30, 0x03F - 0x02A),
|
||||
/* 0x02A */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 30, 6, 35, 0x03D - 0x030),
|
||||
/* 0x030 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 35, 6, 50, 0x037 - 0x036),
|
||||
/* 0x036 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x037 */ SCHEDULE_CMD_RET_TIME(6, 35, 6, 50, 14),
|
||||
/* 0x03D */ SCHEDULE_CMD_RET_VAL_S(1),
|
||||
/* 0x03F */ SCHEDULE_CMD_RET_TIME(6, 0, 6, 30, 13),
|
||||
/* 0x045 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x046 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x09B - 0x04A),
|
||||
/* 0x04A */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_51_02, 0x058 - 0x04E),
|
||||
/* 0x04E */ SCHEDULE_CMD_BRANCH_S(0x0),
|
||||
/* 0x050 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_51_04, 0x055 - 0x054),
|
||||
/* 0x054 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x055 */ SCHEDULE_CMD_RET_VAL_L(10),
|
||||
/* 0x058 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x081 - 0x05C),
|
||||
/* 0x05C */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(13, 0, 0x050 - 0x060),
|
||||
/* 0x060 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 5, 15, 25, 0x07B - 0x066),
|
||||
/* 0x066 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 40, 0x079 - 0x06C),
|
||||
/* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 40, 16, 0, 0x073 - 0x072),
|
||||
/* 0x072 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x073 */ SCHEDULE_CMD_RET_TIME(15, 40, 16, 0, 17),
|
||||
/* 0x079 */ SCHEDULE_CMD_RET_VAL_S(1),
|
||||
/* 0x07B */ SCHEDULE_CMD_RET_TIME(15, 5, 15, 25, 16),
|
||||
/* 0x081 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_AYASHIISHOP, 0x09A - 0x085),
|
||||
/* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 10, 0x094 - 0x08B),
|
||||
/* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 22, 10, 0x092 - 0x091),
|
||||
/* 0x091 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x092 */ SCHEDULE_CMD_RET_VAL_S(3),
|
||||
/* 0x094 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 10, 12),
|
||||
/* 0x09A */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x09B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x138 - 0x0A0),
|
||||
/* 0x0A0 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_RECOVERED_STOLEN_BOMB_BAG, 0x12C - 0x0A5),
|
||||
/* 0x0A5 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_SAKON_DEAD, 0x12C - 0x0AA),
|
||||
/* 0x0AA */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_SECOM, 0x0B0 - 0x0AE),
|
||||
/* 0x0AE */ SCHEDULE_CMD_RET_VAL_S(7),
|
||||
/* 0x0B0 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT, 0x0DD - 0x0B4),
|
||||
/* 0x0B4 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_IKANA, 0x0DC - 0x0B8),
|
||||
/* 0x0B8 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_51_08, 0x0BE - 0x0BC),
|
||||
/* 0x0BC */ SCHEDULE_CMD_RET_VAL_S(5),
|
||||
/* 0x0BE */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_61_08, 0x0DA - 0x0C2),
|
||||
/* 0x0C2 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_51_10, 0x0CD - 0x0C6),
|
||||
/* 0x0C6 */ SCHEDULE_CMD_CHECK_BEFORE_TIME_S(19, 0, 0x0CB - 0x0CA),
|
||||
/* 0x0CA */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0CB */ SCHEDULE_CMD_RET_VAL_S(5),
|
||||
/* 0x0CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 0, 19, 10, 0x0D4 - 0x0D3),
|
||||
/* 0x0D3 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0D4 */ SCHEDULE_CMD_RET_TIME(19, 0, 19, 10, 20),
|
||||
/* 0x0DA */ SCHEDULE_CMD_RET_VAL_S(5),
|
||||
/* 0x0DC */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0DD */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_IKANA, 0x0E8 - 0x0E1),
|
||||
/* 0x0E1 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_90_02, 0x0E7 - 0x0E5),
|
||||
/* 0x0E5 */ SCHEDULE_CMD_RET_VAL_S(9),
|
||||
/* 0x0E7 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0E8 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x0F9 - 0x0EC),
|
||||
/* 0x0EC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(4, 0, 4, 10, 0x0F3 - 0x0F2),
|
||||
/* 0x0F2 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x0F3 */ SCHEDULE_CMD_RET_TIME(4, 0, 4, 10, 11),
|
||||
/* 0x0F9 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x12B - 0x0FD),
|
||||
/* 0x0FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(4, 10, 4, 30, 0x125 - 0x103),
|
||||
/* 0x103 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x11C - 0x107),
|
||||
/* 0x107 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(4, 30, 4, 45, 0x116 - 0x10D),
|
||||
/* 0x10D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(4, 45, 6, 0, 0x114 - 0x113),
|
||||
/* 0x113 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x114 */ SCHEDULE_CMD_RET_VAL_S(6),
|
||||
/* 0x116 */ SCHEDULE_CMD_RET_TIME(4, 30, 4, 45, 19),
|
||||
/* 0x11C */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(4, 30, 6, 0, 0x123 - 0x122),
|
||||
/* 0x122 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x123 */ SCHEDULE_CMD_RET_VAL_S(8),
|
||||
/* 0x125 */ SCHEDULE_CMD_RET_TIME(4, 10, 4, 30, 18),
|
||||
/* 0x12B */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x12C */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_AYASHIISHOP, 0x137 - 0x130),
|
||||
/* 0x130 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_51_08, 0x135 - 0x134),
|
||||
/* 0x134 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x135 */ SCHEDULE_CMD_RET_VAL_S(4),
|
||||
/* 0x137 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x138 */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Test3/scheduleScripts.schl.inc"
|
||||
|
||||
ActorInit En_Test3_InitVars = {
|
||||
/**/ ACTOR_EN_TEST3,
|
||||
|
10
src/overlays/actors/ovl_En_Tk/scheduleScripts.schl
Normal file
10
src/overlays/actors/ovl_En_Tk/scheduleScripts.schl
Normal file
@ -0,0 +1,10 @@
|
||||
D_80AEF800 {
|
||||
//! Uses long command, even when it isn't required
|
||||
if_time_range_l (6, 0, 18, 0) {
|
||||
return_time (6, 0, 18, 0, 1)
|
||||
//! trailing return
|
||||
return_none
|
||||
} else {
|
||||
return_none
|
||||
}
|
||||
}
|
@ -62,12 +62,7 @@ void func_80AEF5F4(Actor* thisx, PlayState* play);
|
||||
|
||||
static s32 D_80AF0050;
|
||||
|
||||
static u8 D_80AEF800[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 18, 0, 0x8 - 0x7),
|
||||
/* 0x7 */ SCHEDULE_CMD_RET_NONE(),
|
||||
/* 0x8 */ SCHEDULE_CMD_RET_TIME(6, 0, 18, 0, 1),
|
||||
/* 0xE */ SCHEDULE_CMD_RET_NONE(),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_En_Tk/scheduleScripts.schl.inc"
|
||||
|
||||
ActorInit En_Tk_InitVars = {
|
||||
/**/ ACTOR_EN_TK,
|
||||
|
7
src/overlays/actors/ovl_Obj_Shutter/scheduleScripts.schl
Normal file
7
src/overlays/actors/ovl_Obj_Shutter/scheduleScripts.schl
Normal file
@ -0,0 +1,7 @@
|
||||
sScheduleScript {
|
||||
if_time_range (10, 0, 20, 0) {
|
||||
return_l (1)
|
||||
} else {
|
||||
return_l (2)
|
||||
}
|
||||
}
|
@ -34,11 +34,7 @@ void ObjShutter_Init(Actor* thisx, PlayState* play) {
|
||||
void ObjShutter_Destroy(Actor* thisx, PlayState* play) {
|
||||
}
|
||||
|
||||
static u8 sScheduleScript[] = {
|
||||
/* 0x0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(10, 0, 20, 0, 0x9 - 0x6),
|
||||
/* 0x6 */ SCHEDULE_CMD_RET_VAL_L(2),
|
||||
/* 0x9 */ SCHEDULE_CMD_RET_VAL_L(1),
|
||||
};
|
||||
#include "build/src/overlays/actors/ovl_Obj_Shutter/scheduleScripts.schl.inc"
|
||||
|
||||
void ObjShutter_Update(Actor* thisx, PlayState* play2) {
|
||||
ObjShutter* this = THIS;
|
||||
|
1035
tools/buildtools/schc.py
Executable file
1035
tools/buildtools/schc.py
Executable file
File diff suppressed because it is too large
Load Diff
@ -1888,8 +1888,8 @@
|
||||
0x801C56CC:("D_801C56CC","UNK_TYPE1","",0x1),
|
||||
0x801C56F8:("D_801C56F8","UNK_PTR","",0x4),
|
||||
0x801C5720:("sSceneEntranceTable","SceneEntranceTableEnty","[110]",0x528),
|
||||
0x801C5C50:("D_801C5C50","UNK_PTR","",0x4),
|
||||
0x801C5C9C:("D_801C5C9C","UNK_TYPE1","",0x1),
|
||||
0x801C5C50:("sScheduleCmdFuncs","UNK_PTR","",0x4),
|
||||
0x801C5C9C:("sScheduleCmdSizes","UNK_TYPE1","",0x1),
|
||||
0x801C5CB0:("D_801C5CB0","UNK_PTR","",0x4),
|
||||
0x801C5CD0:("sMtxFClear","MtxF","",0x40),
|
||||
0x801C5D10:("D_801C5D10","UNK_TYPE1","",0x1),
|
||||
|
@ -176,7 +176,7 @@ def disassemble_unk_script(data_file, offset):
|
||||
script_len = calc_length(data_file, offset);
|
||||
script_len_num_digits = 0 if script_len == 1 else int(math.ceil(math.log(script_len - 1, 16)))
|
||||
|
||||
out = "static u8 sScheduleScript[] = {\n"
|
||||
out = "static ScheduleScript sScheduleScript[] = {\n"
|
||||
|
||||
# Keep trying to disassemble until it hits a terminator and no commands branch past it
|
||||
while any([branch >= off for branch in branch_targets]) or cmd not in [0x04, 0x05, 0x06, 0x09]:
|
||||
|
Loading…
Reference in New Issue
Block a user