You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
Implementation of basic navigation and movement across linear spaces (#24)
This commit is contained in:
@@ -15,12 +15,13 @@ BoardMenuScript::
|
||||
; save after opentext to reanchor map first
|
||||
; save before processing variables like wCurTurn due to BoardMenuScript reentry after game reset
|
||||
farcall AutoSaveGameInOverworld
|
||||
ld hl, wCurTurn
|
||||
inc [hl]
|
||||
ld hl, wTurnData
|
||||
ld bc, wTurnDataEnd - wTurnData
|
||||
xor a
|
||||
jp ByteFill
|
||||
call ByteFill
|
||||
ld hl, wCurTurn
|
||||
inc [hl]
|
||||
jp LoadCurSpaceData
|
||||
|
||||
.Die:
|
||||
callasm BoardMenu_Die
|
||||
|
29
engine/board/movement.asm
Executable file
29
engine/board/movement.asm
Executable file
@@ -0,0 +1,29 @@
|
||||
StepTowardsNextSpace::
|
||||
ld a, [wCurSpaceNextSpace]
|
||||
call LoadTempSpaceData
|
||||
ld a, [wTempSpaceXCoord]
|
||||
ld c, a
|
||||
ld a, [wXCoord]
|
||||
cp c
|
||||
jr z, .check_y
|
||||
ld a, D_RIGHT
|
||||
jr c, .done
|
||||
ld a, D_LEFT
|
||||
jr .done
|
||||
|
||||
.check_y
|
||||
ld a, [wTempSpaceYCoord]
|
||||
ld c, a
|
||||
ld a, [wYCoord]
|
||||
cp c
|
||||
jr z, .arrived
|
||||
ld a, D_DOWN
|
||||
jr c, .done
|
||||
ld a, D_UP
|
||||
jr .done
|
||||
|
||||
.arrived
|
||||
xor a
|
||||
.done
|
||||
ld [wCurInput], a
|
||||
ret
|
@@ -27,12 +27,18 @@ ArriveToRegularSpaceScript:
|
||||
end
|
||||
|
||||
ArriveToRegularSpace:
|
||||
; load new space
|
||||
ld a, [wCurSpaceNextSpace]
|
||||
ld [wCurSpace], a
|
||||
call LoadCurSpaceData
|
||||
; decrease wSpacesLeft and copy to hScriptVar
|
||||
ld hl, wSpacesLeft
|
||||
dec [hl]
|
||||
ld a, [hl]
|
||||
ld [hScriptVar], a
|
||||
; if landed, clear spaces left sprites
|
||||
and a
|
||||
jp nz, UpdateSecondarySprites
|
||||
ret nz
|
||||
ld hl, wDisplaySecondarySprites
|
||||
res SECONDARYSPRITES_SPACES_LEFT_F, [hl]
|
||||
ret
|
||||
|
@@ -71,10 +71,6 @@ AskTeachTMHM:
|
||||
ret
|
||||
|
||||
ChooseMonToLearnTMHM:
|
||||
ld hl, wStringBuffer2
|
||||
ld de, wTMHMMoveNameBackup
|
||||
ld bc, MOVE_NAME_LENGTH - 1
|
||||
call CopyBytes
|
||||
call ClearBGPalettes
|
||||
ChooseMonToLearnTMHM_NoRefresh:
|
||||
farcall LoadPartyMenuGFX
|
||||
@@ -95,10 +91,6 @@ ChooseMonToLearnTMHM_NoRefresh:
|
||||
pop bc ; now contains the former contents of af
|
||||
jr z, .egg
|
||||
push bc
|
||||
ld hl, wTMHMMoveNameBackup
|
||||
ld de, wStringBuffer2
|
||||
ld bc, MOVE_NAME_LENGTH - 1
|
||||
call CopyBytes
|
||||
pop af ; now contains the original contents of af
|
||||
ret
|
||||
|
||||
|
@@ -11,19 +11,25 @@ DoPlayerMovement::
|
||||
ret
|
||||
|
||||
.GetDPad:
|
||||
ldh a, [hCurBoardEvent]
|
||||
cp BOARDEVENT_HANDLE_BOARD
|
||||
jr nz, .not_auto_in_board
|
||||
|
||||
; compute direction according to space layout and save to wCurInput
|
||||
farcall StepTowardsNextSpace
|
||||
ret
|
||||
|
||||
.not_auto_in_board
|
||||
ldh a, [hJoyDown]
|
||||
ld [wCurInput], a
|
||||
|
||||
; Standing downhill instead moves down.
|
||||
|
||||
ld hl, wBikeFlags
|
||||
bit BIKEFLAGS_DOWNHILL_F, [hl]
|
||||
ret z
|
||||
|
||||
ld c, a
|
||||
and D_PAD
|
||||
ret nz
|
||||
|
||||
ld a, c
|
||||
or D_DOWN
|
||||
ld [wCurInput], a
|
||||
|
Reference in New Issue
Block a user