mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Merge pull request #608 from Rangi42/master
Identify more collision-related constants and data
This commit is contained in:
commit
e96330e66a
@ -102,6 +102,18 @@ COLL_RIGHT_WALL EQU $b0
|
||||
COLL_LEFT_WALL EQU $b1
|
||||
COLL_UP_WALL EQU $b2
|
||||
COLL_DOWN_WALL EQU $b3 ; unused
|
||||
COLL_DOWN_RIGHT_WALL EQU $b4 ; unused
|
||||
COLL_DOWN_LEFT_WALL EQU $b5 ; unused
|
||||
COLL_UP_RIGHT_WALL EQU $b6 ; unused
|
||||
COLL_UP_LEFT_WALL EQU $b7 ; unused
|
||||
COLL_RIGHT_BUOY EQU $c0 ; unused
|
||||
COLL_LEFT_BUOY EQU $c1 ; unused
|
||||
COLL_UP_BUOY EQU $c2 ; unused
|
||||
COLL_DOWN_BUOY EQU $c3 ; unused
|
||||
COLL_DOWN_RIGHT_BUOY EQU $c4 ; unused
|
||||
COLL_DOWN_LEFT_BUOY EQU $c5 ; unused
|
||||
COLL_UP_RIGHT_BUOY EQU $c6 ; unused
|
||||
COLL_UP_LEFT_BUOY EQU $c7 ; unused
|
||||
COLL_FF EQU $ff ; garbage
|
||||
|
||||
; collision data type nybbles
|
||||
@ -114,4 +126,4 @@ HI_NYBBLE_WALK_ALT EQU $50
|
||||
HI_NYBBLE_WARPS EQU $70
|
||||
HI_NYBBLE_LEDGES EQU $a0
|
||||
HI_NYBBLE_SIDE_WALLS EQU $b0
|
||||
HI_NYBBLE_UNUSED_C0 EQU $c0
|
||||
HI_NYBBLE_SIDE_BUOYS EQU $c0
|
||||
|
@ -86,6 +86,14 @@ RETVAR_EXECUTE EQU (2 << 6)
|
||||
const PLAYEREVENT_JOYCHANGEFACING
|
||||
NUM_PLAYER_EVENTS EQU const_value
|
||||
|
||||
; script data sizes (see macros/scripts/maps.asm)
|
||||
SCENE_SCRIPT_SIZE EQU 4 ; scene_script
|
||||
CALLBACK_SIZE EQU 3 ; callback
|
||||
WARP_EVENT_SIZE EQU 5 ; warp_event
|
||||
COORD_EVENT_SIZE EQU 8 ; coord_event
|
||||
BG_EVENT_SIZE EQU 5 ; bg_event
|
||||
OBJECT_EVENT_SIZE EQU 13 ; object_event
|
||||
|
||||
; bg_event types
|
||||
; TryBGEvent arguments (see engine/overworld/events.asm)
|
||||
const_def
|
||||
|
@ -183,10 +183,10 @@ TileCollisionTable::
|
||||
NONTALKABLE LANDTILE ; COLL_LEFT_WALL
|
||||
NONTALKABLE LANDTILE ; COLL_UP_WALL
|
||||
NONTALKABLE LANDTILE ; COLL_DOWN_WALL
|
||||
NONTALKABLE LANDTILE ; b4
|
||||
NONTALKABLE LANDTILE ; b5
|
||||
NONTALKABLE LANDTILE ; b6
|
||||
NONTALKABLE LANDTILE ; b7
|
||||
NONTALKABLE LANDTILE ; COLL_DOWN_RIGHT_WALL
|
||||
NONTALKABLE LANDTILE ; COLL_DOWN_LEFT_WALL
|
||||
NONTALKABLE LANDTILE ; COLL_UP_RIGHT_WALL
|
||||
NONTALKABLE LANDTILE ; COLL_UP_LEFT_WALL
|
||||
NONTALKABLE LANDTILE ; b8
|
||||
NONTALKABLE LANDTILE ; b9
|
||||
NONTALKABLE LANDTILE ; ba
|
||||
@ -195,14 +195,14 @@ TileCollisionTable::
|
||||
NONTALKABLE LANDTILE ; bd
|
||||
NONTALKABLE LANDTILE ; be
|
||||
NONTALKABLE LANDTILE ; bf
|
||||
NONTALKABLE WATERTILE ; c0
|
||||
NONTALKABLE WATERTILE ; c1
|
||||
NONTALKABLE WATERTILE ; c2
|
||||
NONTALKABLE WATERTILE ; c3
|
||||
NONTALKABLE WATERTILE ; c4
|
||||
NONTALKABLE WATERTILE ; c5
|
||||
NONTALKABLE WATERTILE ; c6
|
||||
NONTALKABLE WATERTILE ; c7
|
||||
NONTALKABLE WATERTILE ; COLL_RIGHT_BUOY
|
||||
NONTALKABLE WATERTILE ; COLL_LEFT_BUOY
|
||||
NONTALKABLE WATERTILE ; COLL_UP_BUOY
|
||||
NONTALKABLE WATERTILE ; COLL_DOWN_BUOY
|
||||
NONTALKABLE WATERTILE ; COLL_DOWN_RIGHT_BUOY
|
||||
NONTALKABLE WATERTILE ; COLL_DOWN_LEFT_BUOY
|
||||
NONTALKABLE WATERTILE ; COLL_UP_RIGHT_BUOY
|
||||
NONTALKABLE WATERTILE ; COLL_UP_LEFT_BUOY
|
||||
NONTALKABLE WATERTILE ; c8
|
||||
NONTALKABLE WATERTILE ; c9
|
||||
NONTALKABLE WATERTILE ; ca
|
||||
|
@ -84,4 +84,4 @@ MapScenes::
|
||||
scene_var MOUNT_MOON_SQUARE, wMountMoonSquareSceneID
|
||||
scene_var MOBILE_TRADE_ROOM, wMobileTradeRoomSceneID
|
||||
scene_var MOBILE_BATTLE_ROOM, wMobileBattleRoomSceneID
|
||||
db -1
|
||||
db -1 ; end
|
||||
|
@ -60,7 +60,7 @@ CheckForHiddenItems:
|
||||
.next
|
||||
; Restore the bg_event pointer and increment it by the length of a bg_event.
|
||||
pop hl
|
||||
ld bc, 5
|
||||
ld bc, BG_EVENT_SIZE
|
||||
add hl, bc
|
||||
; Restore the BG event counter and decrement it. If it hits zero, there are no hidden items in range.
|
||||
ld a, [wBuffer2]
|
||||
|
@ -418,7 +418,7 @@ RunSceneScript:
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
rept 4
|
||||
rept SCENE_SCRIPT_SIZE
|
||||
add hl, de
|
||||
endr
|
||||
|
||||
|
@ -114,7 +114,10 @@ WillObjectBumpIntoTile:
|
||||
ret
|
||||
|
||||
.data_6f5b
|
||||
db DOWN_MASK, UP_MASK, RIGHT_MASK, LEFT_MASK
|
||||
db DOWN_MASK ; DOWN
|
||||
db UP_MASK ; UP
|
||||
db RIGHT_MASK ; LEFT
|
||||
db LEFT_MASK ; RIGHT
|
||||
|
||||
Function6f5f:
|
||||
ld hl, OBJECT_STANDING_TILE
|
||||
@ -137,19 +140,22 @@ Function6f5f:
|
||||
ret
|
||||
|
||||
.data_6f7b
|
||||
db UP_MASK, DOWN_MASK, LEFT_MASK, RIGHT_MASK
|
||||
db UP_MASK ; DOWN
|
||||
db DOWN_MASK ; UP
|
||||
db LEFT_MASK ; LEFT
|
||||
db RIGHT_MASK ; RIGHT
|
||||
|
||||
Function6f7f:
|
||||
ld d, a
|
||||
and $f0
|
||||
cp HI_NYBBLE_SIDE_WALLS
|
||||
jr z, .done
|
||||
cp HI_NYBBLE_UNUSED_C0
|
||||
jr z, .done
|
||||
jr z, .continue
|
||||
cp HI_NYBBLE_SIDE_BUOYS
|
||||
jr z, .continue
|
||||
xor a
|
||||
ret
|
||||
|
||||
.done
|
||||
.continue
|
||||
ld a, d
|
||||
and 7
|
||||
ld e, a
|
||||
@ -161,8 +167,14 @@ Function6f7f:
|
||||
ret
|
||||
|
||||
.data_6f99
|
||||
db 8, 4, 1, 2
|
||||
db 10, 6, 9, 5
|
||||
db RIGHT_MASK ; COLL_RIGHT_WALL/BUOY
|
||||
db LEFT_MASK ; COLL_LEFT_WALL/BUOY
|
||||
db DOWN_MASK ; COLL_UP_WALL/BUOY
|
||||
db UP_MASK ; COLL_DOWN_WALL/BUOY
|
||||
db UP_MASK | RIGHT_MASK ; COLL_DOWN_RIGHT_WALL/BUOY
|
||||
db UP_MASK | LEFT_MASK ; COLL_DOWN_LEFT_WALL/BUOY
|
||||
db DOWN_MASK | RIGHT_MASK ; COLL_UP_RIGHT_WALL/BUOY
|
||||
db DOWN_MASK | LEFT_MASK ; COLL_UP_LEFT_WALL/BUOY
|
||||
|
||||
Function6fa1:
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
@ -493,7 +505,7 @@ Unreferenced_Function7113:
|
||||
cp d
|
||||
jr nz, .check_current_coords
|
||||
ldh a, [hObjectStructIndexBuffer]
|
||||
cp $0
|
||||
cp PLAYER_OBJECT
|
||||
jr z, .next
|
||||
jr .yes
|
||||
|
||||
|
86
home/map.asm
86
home/map.asm
@ -46,8 +46,8 @@ GetCurrentMapSceneID::
|
||||
ret
|
||||
|
||||
GetMapSceneID::
|
||||
; Searches the scene script table for the map group and number loaded in bc, and returns the wram pointer in de.
|
||||
; If the map is not in the scene script table, returns carry.
|
||||
; Searches the scene_var table for the map group and number loaded in bc, and returns the wram pointer in de.
|
||||
; If the map is not in the scene_var table, returns carry.
|
||||
push bc
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
@ -59,7 +59,7 @@ GetMapSceneID::
|
||||
push hl
|
||||
ld a, [hli] ; map group, or terminator
|
||||
cp -1
|
||||
jr z, .end ; the current map is not in the scene script table
|
||||
jr z, .end ; the current map is not in the scene_var table
|
||||
cp b
|
||||
jr nz, .next ; map group did not match
|
||||
ld a, [hli] ; map number
|
||||
@ -69,7 +69,7 @@ GetMapSceneID::
|
||||
|
||||
.next
|
||||
pop hl
|
||||
ld de, 4 ; scene_script size
|
||||
ld de, 4 ; scene_var size
|
||||
add hl, de
|
||||
jr .loop
|
||||
|
||||
@ -275,7 +275,7 @@ GetDestinationWarpNumber::
|
||||
|
||||
.next
|
||||
pop hl
|
||||
ld a, 5
|
||||
ld a, WARP_EVENT_SIZE
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .okay
|
||||
@ -325,7 +325,7 @@ CopyWarpData::
|
||||
ld l, a
|
||||
ld a, c
|
||||
dec a
|
||||
ld bc, 5 ; warp size
|
||||
ld bc, WARP_EVENT_SIZE
|
||||
call AddNTimes
|
||||
ld bc, 2 ; warp number
|
||||
add hl, bc
|
||||
@ -487,7 +487,7 @@ GetMapConnection::
|
||||
ret
|
||||
|
||||
ReadMapSceneScripts::
|
||||
ld a, [hli] ; scene script count
|
||||
ld a, [hli] ; scene_script count
|
||||
ld c, a
|
||||
ld [wCurMapSceneScriptCount], a
|
||||
ld a, l
|
||||
@ -498,7 +498,7 @@ ReadMapSceneScripts::
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld bc, 4 ; scene_script size
|
||||
ld bc, SCENE_SCRIPT_SIZE
|
||||
call AddNTimes
|
||||
ret
|
||||
|
||||
@ -514,7 +514,7 @@ ReadMapCallbacks::
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld bc, 3
|
||||
ld bc, CALLBACK_SIZE
|
||||
call AddNTimes
|
||||
ret
|
||||
|
||||
@ -529,7 +529,7 @@ ReadWarps::
|
||||
ld a, c
|
||||
and a
|
||||
ret z
|
||||
ld bc, 5
|
||||
ld bc, WARP_EVENT_SIZE
|
||||
call AddNTimes
|
||||
ret
|
||||
|
||||
@ -546,7 +546,7 @@ ReadCoordEvents::
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld bc, 8
|
||||
ld bc, COORD_EVENT_SIZE
|
||||
call AddNTimes
|
||||
ret
|
||||
|
||||
@ -563,7 +563,7 @@ ReadBGEvents::
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld bc, 5
|
||||
ld bc, BG_EVENT_SIZE
|
||||
call AddNTimes
|
||||
ret
|
||||
|
||||
@ -622,7 +622,7 @@ CopyMapObjectEvents::
|
||||
push hl
|
||||
ld a, $ff
|
||||
ld [hli], a
|
||||
ld b, MAPOBJECT_E - MAPOBJECT_SPRITE
|
||||
ld b, OBJECT_EVENT_SIZE
|
||||
.loop2
|
||||
ld a, [de]
|
||||
inc de
|
||||
@ -664,14 +664,14 @@ RestoreFacingAfterWarp::
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
inc hl ; get to the warp coords
|
||||
inc hl ; get to the warp coords
|
||||
inc hl ; get to the warp coords
|
||||
rept 3 ; get to the warp coords
|
||||
inc hl
|
||||
endr
|
||||
ld a, [wWarpNumber]
|
||||
dec a
|
||||
ld c, a
|
||||
ld b, 0
|
||||
ld a, 5
|
||||
ld a, WARP_EVENT_SIZE
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
ld [wYCoord], a
|
||||
@ -981,7 +981,7 @@ RunMapCallback::
|
||||
ld l, a
|
||||
or h
|
||||
ret z
|
||||
ld de, 3
|
||||
ld de, CALLBACK_SIZE
|
||||
.loop
|
||||
ld a, [hl]
|
||||
cp b
|
||||
@ -1261,7 +1261,7 @@ UpdateBGMapRow::
|
||||
push de
|
||||
call .iteration
|
||||
pop de
|
||||
ld a, $20
|
||||
ld a, BG_MAP_WIDTH
|
||||
add e
|
||||
ld e, a
|
||||
|
||||
@ -1295,7 +1295,7 @@ UpdateBGMapColumn::
|
||||
ld [hli], a
|
||||
ld a, d
|
||||
ld [hli], a
|
||||
ld a, $20
|
||||
ld a, BG_MAP_WIDTH
|
||||
add e
|
||||
ld e, a
|
||||
jr nc, .skip
|
||||
@ -1344,11 +1344,11 @@ LoadTilesetGFX::
|
||||
|
||||
ldh a, [rVBK]
|
||||
push af
|
||||
ld a, $1
|
||||
ld a, BANK(vTiles5)
|
||||
ldh [rVBK], a
|
||||
|
||||
ld hl, wDecompressScratch + $60 tiles
|
||||
ld de, vTiles2
|
||||
ld de, vTiles5
|
||||
ld bc, $60 tiles
|
||||
call CopyBytes
|
||||
|
||||
@ -1573,12 +1573,12 @@ GetMovementPermissions::
|
||||
call .CheckHiNybble
|
||||
ret nz
|
||||
ld a, [wTileDown]
|
||||
and 7
|
||||
cp $2
|
||||
and %111
|
||||
cp COLL_UP_WALL & %111 ; COLL_UP_BUOY & %111
|
||||
jr z, .ok_down
|
||||
cp $6
|
||||
cp COLL_UP_RIGHT_WALL & %111 ; COLL_UP_RIGHT_BUOY & %111
|
||||
jr z, .ok_down
|
||||
cp $7
|
||||
cp COLL_UP_LEFT_WALL & %111 ; COLL_UP_LEFT_BUOY & %111
|
||||
ret nz
|
||||
|
||||
.ok_down
|
||||
@ -1591,12 +1591,12 @@ GetMovementPermissions::
|
||||
call .CheckHiNybble
|
||||
ret nz
|
||||
ld a, [wTileUp]
|
||||
and 7
|
||||
cp $3
|
||||
and %111
|
||||
cp COLL_DOWN_WALL & %111 ; COLL_DOWN_BUOY & %111
|
||||
jr z, .ok_up
|
||||
cp $4
|
||||
cp COLL_DOWN_RIGHT_WALL & %111 ; COLL_DOWN_RIGHT_BUOY & %111
|
||||
jr z, .ok_up
|
||||
cp $5
|
||||
cp COLL_DOWN_LEFT_WALL & %111 ; COLL_DOWN_LEFT_BUOY & %111
|
||||
ret nz
|
||||
|
||||
.ok_up
|
||||
@ -1609,12 +1609,12 @@ GetMovementPermissions::
|
||||
call .CheckHiNybble
|
||||
ret nz
|
||||
ld a, [wTileRight]
|
||||
and 7
|
||||
cp $1
|
||||
and %111
|
||||
cp COLL_LEFT_WALL & %111 ; COLL_LEFT_BUOY & %111
|
||||
jr z, .ok_right
|
||||
cp $5
|
||||
cp COLL_DOWN_LEFT_WALL & %111 ; COLL_DOWN_LEFT_BUOY & %111
|
||||
jr z, .ok_right
|
||||
cp $7
|
||||
cp COLL_UP_LEFT_WALL & %111 ; COLL_UP_LEFT_BUOY & %111
|
||||
ret nz
|
||||
|
||||
.ok_right
|
||||
@ -1627,12 +1627,12 @@ GetMovementPermissions::
|
||||
call .CheckHiNybble
|
||||
ret nz
|
||||
ld a, [wTileLeft]
|
||||
and 7
|
||||
cp $0
|
||||
and %111
|
||||
cp COLL_RIGHT_WALL & %111 ; COLL_RIGHT_BUOY & %111
|
||||
jr z, .ok_left
|
||||
cp $4
|
||||
cp COLL_DOWN_RIGHT_WALL & %111 ; COLL_DOWN_RIGHT_BUOY & %111
|
||||
jr z, .ok_left
|
||||
cp $6
|
||||
cp COLL_UP_RIGHT_WALL & %111 ; COLL_UP_RIGHT_BUOY & %111
|
||||
ret nz
|
||||
|
||||
.ok_left
|
||||
@ -1645,7 +1645,7 @@ GetMovementPermissions::
|
||||
and $f0
|
||||
cp HI_NYBBLE_SIDE_WALLS
|
||||
ret z
|
||||
cp HI_NYBBLE_UNUSED_C0
|
||||
cp HI_NYBBLE_SIDE_BUOYS
|
||||
ret
|
||||
|
||||
GetFacingTileCoord::
|
||||
@ -1799,7 +1799,7 @@ CheckIfFacingTileCoordIsBGEvent::
|
||||
|
||||
.next
|
||||
pop hl
|
||||
ld a, 5 ; BG event event length
|
||||
ld a, BG_EVENT_SIZE
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .nocarry
|
||||
@ -1814,7 +1814,7 @@ CheckIfFacingTileCoordIsBGEvent::
|
||||
.copysign
|
||||
pop hl
|
||||
ld de, wCurBGEventYCoord
|
||||
ld bc, 5 ; BG event event length
|
||||
ld bc, BG_EVENT_SIZE
|
||||
call CopyBytes
|
||||
scf
|
||||
ret
|
||||
@ -1871,7 +1871,7 @@ CheckCurrentMapCoordEvents::
|
||||
|
||||
.next
|
||||
pop hl
|
||||
ld a, $8 ; coord event size
|
||||
ld a, COORD_EVENT_SIZE
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .nocarry
|
||||
@ -1886,7 +1886,7 @@ CheckCurrentMapCoordEvents::
|
||||
.copy_coord_event
|
||||
pop hl
|
||||
ld de, wCurCoordEventSceneID
|
||||
ld bc, 8 ; coord event size
|
||||
ld bc, COORD_EVENT_SIZE
|
||||
call CopyBytes
|
||||
scf
|
||||
ret
|
||||
|
@ -76,7 +76,7 @@ HandleStoneQueue::
|
||||
jr .found_warp
|
||||
|
||||
.not_on_warp
|
||||
ld a, 5
|
||||
ld a, WARP_EVENT_SIZE
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .no_carry
|
||||
|
@ -32,7 +32,7 @@ coord_event: MACRO
|
||||
db \3, \2, \1
|
||||
db 0 ; filler
|
||||
dw \4
|
||||
db 0, 0 ; filler
|
||||
dw 0 ; filler
|
||||
ENDM
|
||||
|
||||
bg_event: MACRO
|
||||
|
Loading…
Reference in New Issue
Block a user