Set Game State: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
__FORCETOC__ | __FORCETOC__ | ||
{{todo| | {{todo|Also investigate this opcode in DR2}} | ||
The 0x33 opcode is a multipurpose opcode that is used several times in the game with different effects depending on the arguments. It has 4 arguments that are as follows: | The 0x33 opcode is a multipurpose opcode that is used several times in the game with different effects depending on the arguments. It has 4 arguments that are as follows: | ||
* Argument 1: Mode | * Argument 1: Mode |
Revision as of 23:46, 23 March 2018
To do: Also investigate this opcode in DR2 |
The 0x33 opcode is a multipurpose opcode that is used several times in the game with different effects depending on the arguments. It has 4 arguments that are as follows:
- Argument 1: Mode
- Argument 2: Unknown
- Argument 3: Optional Reset Counter (for arg4 values above 255)
- Argument 4: Variable
The article itself will be split into sections based on the mode argument, since this is what determines the effect 0x33 has on the game. Argument 4 is typically the variable of a mode and changing this changes the effect of the mode.
Mode 0 : Time of Day
Mode 0 is used to control the "Time of Day" display on the HUD. Argument 4 is the only argument which should be used in this mode as other arguments could cause unintended effects.
Argument 4 | Effect |
---|---|
0 | Daytime |
1 | Nighttime |
2 | Morning |
3 | Midnight |
4 | Time Unknown |
5 | Blue slash replaces the time; Normal nighttime theme |
6 and onward | White block covers the time; Normal daytime theme |
Modes 5 and 6 : Wait
Modes 5 and 6 appear to be wait functions. Put simply, the game will wait at a designated point in the code for this amount of frames:
Arg4 + (Arg3 * 255)
Mode 8: Map Load Player Placement
Mode 8 is used to determine where the player will appear in the next map loaded. The meaning of argument 4 depends on the map being loaded. For instance, when exiting classroom 1-A, this code is run:
0x33|8, 0, 0, 2
This tells the game that when the next map loads, the player should be positioned outside room 1-A. The "position IDs" for each room are currently unknown and so must be researched and documented.