ref: 79ea091ff627d5e3613799698b5bf1ea95f45148
parent: 68d4a534836c5ddcccc4e5b61e8e755ac13388c4
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Thu Jan 24 16:41:14 EST 2019
Use and define more WRAM constants
--- a/constants/map_object_constants.asm
+++ b/constants/map_object_constants.asm
@@ -70,6 +70,9 @@
const OBJ_FLAGS2_2 ; 2
const OVERHEAD_F ; 3
const USE_OBP1_F ; 4
+ const OBJ_FLAGS2_5 ; 5
+ const OBJ_FLAGS2_6 ; 6
+ const OBJ_FLAGS2_7 ; 7
LOW_PRIORITY EQU 1 << LOW_PRIORITY_F
HIGH_PRIORITY EQU 1 << HIGH_PRIORITY_F
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -94,6 +94,13 @@
DAY_CARE_WITHDRAW EQU 2
DAY_CARE_DEPOSIT EQU 3
+; wPlayerStepFlags:: ; d150
+ const_def 4
+ const PLAYERSTEP_MIDAIR_F ; 4
+ const PLAYERSTEP_CONTINUE_F ; 5
+ const PLAYERSTEP_STOP_F ; 6
+ const PLAYERSTEP_START_F ; 7
+
; wInitListType:: ; d263
INIT_ENEMYOT_LIST EQU 1
INIT_BAG_ITEM_LIST EQU 2
@@ -126,14 +133,27 @@
; wPlayerGender:: ; d472
PLAYERGENDER_FEMALE_F EQU 0
+; wMapStatus:: ; d432
+ const_def
+ const MAPSTATUS_START ; 0
+ const MAPSTATUS_ENTER ; 1
+ const MAPSTATUS_HANDLE ; 2
+ const MAPSTATUS_DONE ; 3
+
+; wMapEventStatus:: ; d433
+ const_def
+ const MAPEVENTS_ON ; 0
+ const MAPEVENTS_OFF ; 1
+
; wScriptFlags:: ; d434
SCRIPT_RUNNING EQU 2
; wScriptMode:: ; d437
-SCRIPT_OFF EQU 0
-SCRIPT_READ EQU 1
-SCRIPT_WAIT_MOVEMENT EQU 2
-SCRIPT_WAIT EQU 3
+ const_def
+ const SCRIPT_OFF
+ const SCRIPT_READ
+ const SCRIPT_WAIT_MOVEMENT
+ const SCRIPT_WAIT
; wSpawnAfterChampion:: ; d4b5
SPAWN_LANCE EQU 1
--- a/engine/overworld/events.asm
+++ b/engine/overworld/events.asm
@@ -4,7 +4,7 @@
SECTION "Events", ROMX
OverworldLoop::
- xor a
+ xor a ; MAPSTATUS_START
ld [wMapStatus], a
.loop
ld a, [wMapStatus]
@@ -11,12 +11,13 @@
ld hl, .jumps
rst JumpTable
ld a, [wMapStatus]
- cp 3 ; done
+ cp MAPSTATUS_DONE
jr nz, .loop
.done
ret
.jumps
+; entries correspond to MAPSTATUS_* constants
dw StartMap
dw EnterMap
dw HandleMap
@@ -130,7 +131,7 @@
xor a ; end map entry
ldh [hMapEntryMethod], a
- ld a, 2 ; HandleMap
+ ld a, MAPSTATUS_HANDLE
ld [wMapStatus], a
ret
@@ -147,7 +148,7 @@
; Not immediately entering a connected map will cause problems.
ld a, [wMapStatus]
- cp 2 ; HandleMap
+ cp MAPSTATUS_HANDLE
ret nz
call HandleMapObjects
@@ -163,6 +164,7 @@
ret
.jumps
+; entries correspond to MAPEVENTS_* constants
dw .events
dw .no_events
@@ -193,7 +195,7 @@
HandleMapTimeAndJoypad:
ld a, [wMapEventStatus]
- cp 1 ; no events
+ cp MAPEVENTS_OFF
ret z
call UpdateTime
@@ -215,26 +217,26 @@
CheckPlayerState:
ld a, [wPlayerStepFlags]
- bit 5, a ; in the middle of step
+ bit PLAYERSTEP_CONTINUE_F, a
jr z, .events
- bit 6, a ; stopping step
+ bit PLAYERSTEP_STOP_F, a
jr z, .noevents
- bit 4, a ; in midair
+ bit PLAYERSTEP_MIDAIR_F, a
jr nz, .noevents
call EnableEvents
.events
- ld a, 0 ; events
+ ld a, MAPEVENTS_ON
ld [wMapEventStatus], a
ret
.noevents
- ld a, 1 ; no events
+ ld a, MAPEVENTS_OFF
ld [wMapEventStatus], a
ret
_CheckObjectEnteringVisibleRange:
ld hl, wPlayerStepFlags
- bit 6, [hl]
+ bit PLAYERSTEP_STOP_F, [hl]
ret z
farcall CheckObjectEnteringVisibleRange
ret
--- a/engine/overworld/map_objects.asm
+++ b/engine/overworld/map_objects.asm
@@ -36,7 +36,7 @@
.CheckObjectStillVisible:
ld hl, OBJECT_FLAGS2
add hl, bc
- res 6, [hl]
+ res OBJ_FLAGS2_6, [hl]
ld a, [wXCoord]
ld e, a
ld hl, OBJECT_NEXT_MAP_X
@@ -62,7 +62,7 @@
.ok
ld hl, OBJECT_FLAGS2
add hl, bc
- set 6, [hl]
+ set OBJ_FLAGS2_6, [hl]
ld a, [wXCoord]
ld e, a
ld hl, OBJECT_INIT_X
@@ -99,7 +99,7 @@
.yes2
ld hl, OBJECT_FLAGS2
add hl, bc
- set 6, [hl]
+ set OBJ_FLAGS2_6, [hl]
and a
ret
@@ -111,7 +111,7 @@
jr z, .zero
ld hl, OBJECT_FLAGS2
add hl, bc
- bit 5, [hl]
+ bit OBJ_FLAGS2_5, [hl]
jr nz, .bit5
cp STEP_TYPE_SLEEP
jr z, .one
@@ -121,7 +121,7 @@
call ObjectMovementReset
ld hl, OBJECT_FLAGS2
add hl, bc
- bit 5, [hl]
+ bit OBJ_FLAGS2_5, [hl]
jr nz, .bit5
.one
call MapObjectMovementPattern
@@ -147,9 +147,9 @@
jr nz, SetFacingStanding
ld hl, OBJECT_FLAGS2
add hl, bc
- bit 6, [hl]
+ bit OBJ_FLAGS2_6, [hl]
jr nz, SetFacingStanding
- bit 5, [hl]
+ bit OBJ_FLAGS2_5, [hl]
jr nz, asm_4448
ld de, ObjectActionPairPointers ; use first column
jr _HandleObjectAction
@@ -399,7 +399,7 @@
add e
ld [wPlayerStepVectorY], a
ld hl, wPlayerStepFlags
- set 5, [hl]
+ set PLAYERSTEP_CONTINUE_F, [hl]
ret
Unreferenced_Function4759:
@@ -657,8 +657,8 @@
jr z, .on_pit
ld hl, OBJECT_FLAGS2
add hl, bc
- bit 2, [hl]
- res 2, [hl]
+ bit OBJ_FLAGS2_2, [hl]
+ res OBJ_FLAGS2_2, [hl]
jr z, .ok
ld hl, OBJECT_RANGE
add hl, bc
@@ -1124,7 +1124,7 @@
call GetNextTile
ld hl, OBJECT_FLAGS2
add hl, bc
- res 3, [hl]
+ res OVERHEAD_F, [hl]
call IncrementObjectStructField1c
ret
@@ -1151,7 +1151,7 @@
.initjump
ld hl, wPlayerStepFlags
- set 7, [hl]
+ set PLAYERSTEP_START_F, [hl]
call IncrementObjectStructField1c
.stepjump
call UpdateJumpPosition
@@ -1163,10 +1163,10 @@
call CopyNextCoordsTileToStandingCoordsTile
ld hl, OBJECT_FLAGS2
add hl, bc
- res 3, [hl]
+ res OVERHEAD_F, [hl]
ld hl, wPlayerStepFlags
- set 6, [hl]
- set 4, [hl]
+ set PLAYERSTEP_STOP_F, [hl]
+ set PLAYERSTEP_MIDAIR_F, [hl]
call IncrementObjectStructField1c
ret
@@ -1173,7 +1173,7 @@
.initland
call GetNextTile
ld hl, wPlayerStepFlags
- set 7, [hl]
+ set PLAYERSTEP_START_F, [hl]
call IncrementObjectStructField1c
.stepland
call UpdateJumpPosition
@@ -1183,7 +1183,7 @@
dec [hl]
ret nz
ld hl, wPlayerStepFlags
- set 6, [hl]
+ set PLAYERSTEP_STOP_F, [hl]
call CopyNextCoordsTileToStandingCoordsTile
ld hl, OBJECT_STEP_TYPE
add hl, bc
@@ -1229,7 +1229,7 @@
ld [hl], 16
ld hl, OBJECT_FLAGS2
add hl, bc
- res 3, [hl]
+ res OVERHEAD_F, [hl]
call IncrementObjectStructField1c
.DoSpinRise:
ld hl, OBJECT_ACTION
@@ -1559,7 +1559,7 @@
.init
ld hl, wPlayerStepFlags
- set 7, [hl]
+ set PLAYERSTEP_START_F, [hl]
call IncrementObjectStructField1c
.step
call UpdatePlayerStep
@@ -1568,7 +1568,7 @@
dec [hl]
ret nz
ld hl, wPlayerStepFlags
- set 6, [hl]
+ set PLAYERSTEP_STOP_F, [hl]
call CopyNextCoordsTileToStandingCoordsTile
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
@@ -1646,7 +1646,7 @@
pop bc
ld hl, OBJECT_FLAGS2
add hl, bc
- res 2, [hl]
+ res OBJ_FLAGS2_2, [hl]
call CopyNextCoordsTileToStandingCoordsTile
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
@@ -2408,7 +2408,7 @@
ld [wPlayerStepVectorX], a
ld [wPlayerStepVectorY], a
ld [wPlayerStepFlags], a
- ld a, -1
+ ld a, STANDING
ld [wPlayerStepDirection], a
ret
@@ -2558,7 +2558,7 @@
pop bc
ld hl, OBJECT_FLAGS2
add hl, bc
- res 5, [hl]
+ res OBJ_FLAGS2_5, [hl]
xor a
ret
@@ -2567,7 +2567,7 @@
ret c
ld hl, OBJECT_FLAGS2
add hl, bc
- set 5, [hl]
+ set OBJ_FLAGS2_5, [hl]
xor a
ret
@@ -2580,7 +2580,7 @@
jr z, .next
ld hl, OBJECT_FLAGS2
add hl, bc
- set 5, [hl]
+ set OBJ_FLAGS2_5, [hl]
.next
ld hl, OBJECT_STRUCT_LENGTH
add hl, bc
@@ -2610,7 +2610,7 @@
call GetObjectStruct
ld hl, OBJECT_FLAGS2
add hl, bc
- res 5, [hl]
+ res OBJ_FLAGS2_5, [hl]
ret
Function58b9::
@@ -2623,7 +2623,7 @@
jr z, .next
ld hl, OBJECT_FLAGS2
add hl, bc
- res 5, [hl]
+ res OBJ_FLAGS2_5, [hl]
.next
ld hl, OBJECT_STRUCT_LENGTH
add hl, bc
@@ -2641,7 +2641,7 @@
ret c
ld hl, OBJECT_FLAGS2
add hl, bc
- res 5, [hl]
+ res OBJ_FLAGS2_5, [hl]
ret
Function58e3:
@@ -2865,7 +2865,7 @@
ld hl, OBJECT_FLAGS2
add hl, bc
ld e, [hl]
- bit 7, e
+ bit OBJ_FLAGS2_7, e
jr z, .skip2
or PRIORITY
.skip2
--- a/engine/overworld/player_step.asm
+++ b/engine/overworld/player_step.asm
@@ -2,11 +2,11 @@
ld a, [wPlayerStepFlags]
and a
ret z
- bit 7, a ; starting step
+ bit PLAYERSTEP_START_F, a
jr nz, .update_overworld_map
- bit 6, a ; finishing step
+ bit PLAYERSTEP_STOP_F, a
jr nz, .update_player_coords
- bit 5, a ; ongoing step
+ bit PLAYERSTEP_CONTINUE_F, a
jr nz, .finish
ret
--- a/engine/overworld/scripting.asm
+++ b/engine/overworld/scripting.asm
@@ -1399,7 +1399,7 @@
ld [wBattleScriptFlags], a
ld a, MAPSETUP_RELOADMAP
ldh [hMapEntryMethod], a
- ld a, $1
+ ld a, MAPSTATUS_ENTER
call LoadMapStatus
call StopScript
ret
@@ -2473,11 +2473,11 @@
ld [wXCoord], a
call GetScriptByte
ld [wYCoord], a
- ld a, -1
+ ld a, SPAWN_N_A
ld [wDefaultSpawnpoint], a
ld a, MAPSETUP_WARP
ldh [hMapEntryMethod], a
- ld a, 1
+ ld a, MAPSTATUS_ENTER
call LoadMapStatus
call StopScript
ret
@@ -2486,11 +2486,11 @@
call GetScriptByte
call GetScriptByte
call GetScriptByte
- ld a, -1
+ ld a, SPAWN_N_A
ld [wDefaultSpawnpoint], a
ld a, MAPSETUP_BADWARP
ldh [hMapEntryMethod], a
- ld a, 1
+ ld a, MAPSTATUS_ENTER
call LoadMapStatus
call StopScript
ret
@@ -2611,7 +2611,7 @@
call GetScriptByte
ldh [hMapEntryMethod], a
- ld a, 1
+ ld a, MAPSTATUS_ENTER
call LoadMapStatus
call StopScript
ret
@@ -2793,7 +2793,7 @@
farcall RedCredits
ReturnFromCredits:
call Script_endall
- ld a, $3
+ ld a, MAPSTATUS_DONE
call LoadMapStatus
call StopScript
ret
--- a/wram.asm
+++ b/wram.asm
@@ -1966,8 +1966,10 @@
wSpriteFlags:: db ; d13e
-wHandlePlayerStep:: dw ; d13f
+wHandlePlayerStep:: db ; d13f
+ ds 1
+
wPartyMenuActionText:: db ; d141
wItemAttributeParamBuffer:: db ; d142
@@ -1992,14 +1994,8 @@
; Player movement
wPlayerStepVectorX:: db ; d14e
wPlayerStepVectorY:: db ; d14f
-wPlayerStepFlags:: db ; d150
-wPlayerStepDirection:: ; d151
-; bit 7: Start step
-; bit 6: Stop step
-; bit 5: Doing step
-; bit 4: In midair
-; bits 0-3: unused
- db
+wPlayerStepFlags:: db ; d150
+wPlayerStepDirection:: db ; d151
wBGMapAnchor:: dw ; d152
@@ -2278,10 +2274,7 @@
wd431:: db
wMapStatus:: db ; d432
-wMapEventStatus:: ; d433
-; 0: do map events
-; 1: do background events
- db
+wMapEventStatus:: db ; d433
wScriptFlags:: ; d434
; bit 3: priority jump