ref: dc396822d7e69764402fa3673eb1fee95cd3122e
parent: e671636bba211b30a15b86bf748989b6e61dcf0a
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Sun Mar 3 08:30:27 EST 2019
Identify more collision-related constants and data
--- a/constants/collision_constants.asm
+++ b/constants/collision_constants.asm
@@ -102,6 +102,18 @@
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_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
--- a/data/collision_permissions.asm
+++ b/data/collision_permissions.asm
@@ -183,10 +183,10 @@
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 @@
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
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -114,7 +114,10 @@
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 @@
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 @@
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 @@
cp d
jr nz, .check_current_coords
ldh a, [hObjectStructIndexBuffer]
- cp $0
+ cp PLAYER_OBJECT
jr z, .next
jr .yes
--- a/home/map.asm
+++ b/home/map.asm
@@ -325,9 +325,9 @@
ld l, a
ld a, c
dec a
- ld bc, 5 ; warp size
+ ld bc, $5 ; warp size
call AddNTimes
- ld bc, 2 ; warp number
+ ld bc, $2 ; warp number
add hl, bc
ld a, [hli]
cp $ff
@@ -671,7 +671,7 @@
dec a
ld c, a
ld b, 0
- ld a, 5
+ ld a, $5 ; warp size
call AddNTimes
ld a, [hli]
ld [wYCoord], a
@@ -1261,7 +1261,7 @@
push de
call .iteration
pop de
- ld a, $20
+ ld a, BG_MAP_WIDTH
add e
ld e, a
@@ -1295,7 +1295,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
and $f0
cp HI_NYBBLE_SIDE_WALLS
ret z
- cp HI_NYBBLE_UNUSED_C0
+ cp HI_NYBBLE_SIDE_BUOYS
ret
GetFacingTileCoord::