Use and define more WRAM constants

This commit is contained in:
Rangi
2019-01-24 21:41:14 -05:00
parent 68d4a53483
commit 79ea091ff6
7 changed files with 85 additions and 67 deletions

View File

@@ -4,19 +4,20 @@ INCLUDE "constants.asm"
SECTION "Events", ROMX
OverworldLoop::
xor a
xor a ; MAPSTATUS_START
ld [wMapStatus], a
.loop
ld a, [wMapStatus]
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 @@ EnterMap:
xor a ; end map entry
ldh [hMapEntryMethod], a
ld a, 2 ; HandleMap
ld a, MAPSTATUS_HANDLE
ld [wMapStatus], a
ret
@@ -147,7 +148,7 @@ HandleMap:
; 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 @@ MapEvents:
ret
.jumps
; entries correspond to MAPEVENTS_* constants
dw .events
dw .no_events
@@ -193,7 +195,7 @@ NextOverworldFrame:
HandleMapTimeAndJoypad:
ld a, [wMapEventStatus]
cp 1 ; no events
cp MAPEVENTS_OFF
ret z
call UpdateTime
@@ -215,26 +217,26 @@ HandleMapBackground:
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

View File

@@ -36,7 +36,7 @@ Function437b:
.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 @@ Function437b:
.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 @@ Function437b:
.yes2
ld hl, OBJECT_FLAGS2
add hl, bc
set 6, [hl]
set OBJ_FLAGS2_6, [hl]
and a
ret
@@ -111,7 +111,7 @@ Function437b:
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 @@ Function437b:
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 @@ Function437b:
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 @@ UpdatePlayerStep:
add e
ld [wPlayerStepVectorY], a
ld hl, wPlayerStepFlags
set 5, [hl]
set PLAYERSTEP_CONTINUE_F, [hl]
ret
Unreferenced_Function4759:
@@ -657,8 +657,8 @@ MapObjectMovementPattern:
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 @@ NPCJump:
call GetNextTile
ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
res OVERHEAD_F, [hl]
call IncrementObjectStructField1c
ret
@@ -1151,7 +1151,7 @@ PlayerJump:
.initjump
ld hl, wPlayerStepFlags
set 7, [hl]
set PLAYERSTEP_START_F, [hl]
call IncrementObjectStructField1c
.stepjump
call UpdateJumpPosition
@@ -1163,17 +1163,17 @@ PlayerJump:
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
.initland
call GetNextTile
ld hl, wPlayerStepFlags
set 7, [hl]
set PLAYERSTEP_START_F, [hl]
call IncrementObjectStructField1c
.stepland
call UpdateJumpPosition
@@ -1183,7 +1183,7 @@ PlayerJump:
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 @@ TeleportFrom:
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 @@ PlayerStep:
.init
ld hl, wPlayerStepFlags
set 7, [hl]
set PLAYERSTEP_START_F, [hl]
call IncrementObjectStructField1c
.step
call UpdatePlayerStep
@@ -1568,7 +1568,7 @@ PlayerStep:
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 @@ StepType0f:
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 @@ HandleNPCStep::
ld [wPlayerStepVectorX], a
ld [wPlayerStepVectorY], a
ld [wPlayerStepFlags], a
ld a, -1
ld a, STANDING
ld [wPlayerStepDirection], a
ret
@@ -2558,7 +2558,7 @@ SetFlagsForMovement_1::
pop bc
ld hl, OBJECT_FLAGS2
add hl, bc
res 5, [hl]
res OBJ_FLAGS2_5, [hl]
xor a
ret
@@ -2567,7 +2567,7 @@ Function586e:
ret c
ld hl, OBJECT_FLAGS2
add hl, bc
set 5, [hl]
set OBJ_FLAGS2_5, [hl]
xor a
ret
@@ -2580,7 +2580,7 @@ Function587a:
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 @@ _SetFlagsForMovement_2::
call GetObjectStruct
ld hl, OBJECT_FLAGS2
add hl, bc
res 5, [hl]
res OBJ_FLAGS2_5, [hl]
ret
Function58b9::
@@ -2623,7 +2623,7 @@ Function58b9::
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 @@ Function58d8:
ret c
ld hl, OBJECT_FLAGS2
add hl, bc
res 5, [hl]
res OBJ_FLAGS2_5, [hl]
ret
Function58e3:
@@ -2865,7 +2865,7 @@ InitSprites:
ld hl, OBJECT_FLAGS2
add hl, bc
ld e, [hl]
bit 7, e
bit OBJ_FLAGS2_7, e
jr z, .skip2
or PRIORITY
.skip2

View File

@@ -2,11 +2,11 @@ _HandlePlayerStep::
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

View File

@@ -1399,7 +1399,7 @@ Script_reloadmap:
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 @@ Script_warp:
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 @@ Script_warp:
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 @@ Script_newloadmap:
call GetScriptByte
ldh [hMapEntryMethod], a
ld a, 1
ld a, MAPSTATUS_ENTER
call LoadMapStatus
call StopScript
ret
@@ -2793,7 +2793,7 @@ Script_credits:
farcall RedCredits
ReturnFromCredits:
call Script_endall
ld a, $3
ld a, MAPSTATUS_DONE
call LoadMapStatus
call StopScript
ret