shithub: pokecrystal

Download patch

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