Fix inaccurate denotations to the concepts of tile, tile collision, and collision permission (#1078)
This commit is contained in:
@@ -5,7 +5,7 @@ DEF WALL_TILE EQU $0f
|
||||
DEF TALK EQU $10
|
||||
|
||||
; collision data types (see data/tilesets/*_collision.asm)
|
||||
; TileCollisionTable indexes (see data/collision/collision_permissions.asm)
|
||||
; CollisionPermissionTable indexes (see data/collision/collision_permissions.asm)
|
||||
DEF COLL_FLOOR EQU $00
|
||||
DEF COLL_01 EQU $01 ; garbage
|
||||
DEF COLL_03 EQU $03 ; garbage
|
||||
|
@@ -14,7 +14,7 @@ DEF OBJECT_STEP_DURATION rb ; 0a
|
||||
DEF OBJECT_ACTION rb ; 0b
|
||||
DEF OBJECT_STEP_FRAME rb ; 0c
|
||||
DEF OBJECT_FACING rb ; 0d
|
||||
DEF OBJECT_TILE rb ; 0e
|
||||
DEF OBJECT_TILE_COLLISION rb ; 0e
|
||||
DEF OBJECT_LAST_TILE rb ; 0f
|
||||
DEF OBJECT_MAP_X rb ; 10
|
||||
DEF OBJECT_MAP_Y rb ; 11
|
||||
|
@@ -1,6 +1,6 @@
|
||||
TileCollisionTable::
|
||||
CollisionPermissionTable::
|
||||
; entries correspond to COLL_* constants
|
||||
table_width 1, TileCollisionTable
|
||||
table_width 1, CollisionPermissionTable
|
||||
db LAND_TILE ; COLL_FLOOR
|
||||
db LAND_TILE ; COLL_01
|
||||
db LAND_TILE ; 02
|
||||
|
@@ -1727,7 +1727,7 @@ This bug is why the Lapras in [maps/UnionCaveB2F.asm](https://github.com/pret/po
|
||||
cp PLAYER_SURF_PIKA
|
||||
jr z, .fail
|
||||
call GetFacingTileCoord
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
cp WATER_TILE
|
||||
- jr z, .facingwater
|
||||
+ jr nz, .fail
|
||||
@@ -2144,7 +2144,7 @@ If `[wWalkingDirection]` is `STANDING` (`$FF`), this will check `[.EdgeWarps + $
|
||||
ld d, 0
|
||||
ld hl, .EdgeWarps
|
||||
add hl, de
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
cp [hl]
|
||||
jr nz, .not_warp
|
||||
|
||||
|
@@ -356,7 +356,7 @@ SurfFunction:
|
||||
cp PLAYER_SURF_PIKA
|
||||
jr z, .alreadyfail
|
||||
call GetFacingTileCoord
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
cp WATER_TILE
|
||||
jr nz, .cannotsurf
|
||||
call CheckDirection
|
||||
@@ -494,7 +494,7 @@ TrySurfOW::
|
||||
|
||||
; Must be facing water.
|
||||
ld a, [wFacingTileID]
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
cp WATER_TILE
|
||||
jr nz, .quit
|
||||
|
||||
@@ -686,7 +686,7 @@ Script_UsedWaterfall:
|
||||
.CheckContinueWaterfall:
|
||||
xor a
|
||||
ld [wScriptVar], a
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
call CheckWaterfallTile
|
||||
ret z
|
||||
farcall StubbedTrainerRankings_Waterfall
|
||||
@@ -1449,7 +1449,7 @@ FishFunction:
|
||||
cp PLAYER_SURF_PIKA
|
||||
jr z, .fail
|
||||
call GetFacingTileCoord
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
cp WATER_TILE
|
||||
jr z, .facingwater
|
||||
.fail
|
||||
@@ -1693,7 +1693,7 @@ BikeFunction:
|
||||
jr .nope
|
||||
|
||||
.ok
|
||||
call GetPlayerTile
|
||||
call GetPlayerTilePermission
|
||||
and $f ; lo nybble only
|
||||
jr nz, .nope ; not FLOOR_TILE
|
||||
xor a
|
||||
|
@@ -272,7 +272,7 @@ CmdQueue_StoneTable:
|
||||
cp SPRITEMOVEDATA_STRENGTH_BOULDER
|
||||
jr nz, .next
|
||||
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
call CheckPitTile
|
||||
|
@@ -346,7 +346,7 @@ CheckTileEvent:
|
||||
ret
|
||||
|
||||
.warp_tile
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
call CheckPitTile
|
||||
jr nz, .not_pit
|
||||
ld a, PLAYEREVENT_FALL
|
||||
@@ -1186,7 +1186,7 @@ CanEncounterWildMonInThisTile::
|
||||
jr nc, .no
|
||||
|
||||
.ice_check
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
call CheckIceTile
|
||||
jr z, .no
|
||||
scf
|
||||
@@ -1257,7 +1257,7 @@ ChooseWildEncounter_BugContest::
|
||||
ret
|
||||
|
||||
TryWildEncounter_BugContest:
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
call CheckSuperTallGrassTile
|
||||
ld b, 40 percent
|
||||
jr z, .ok
|
||||
|
@@ -195,14 +195,14 @@ CopyCoordsTileToLastCoordsTile:
|
||||
ld hl, OBJECT_LAST_MAP_Y
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld hl, OBJECT_LAST_TILE
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
call SetTallGrassFlags
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
call UselessAndA
|
||||
@@ -228,12 +228,12 @@ UpdateTallGrassFlags:
|
||||
add hl, bc
|
||||
bit OVERHEAD_F, [hl]
|
||||
jr z, .ok
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
call SetTallGrassFlags
|
||||
.ok
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
call UselessAndA
|
||||
@@ -321,9 +321,9 @@ GetNextTile:
|
||||
ld [hl], a
|
||||
ld e, a
|
||||
push bc
|
||||
call GetCoordTile
|
||||
call GetCoordTileCollision
|
||||
pop bc
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ret
|
||||
@@ -502,9 +502,9 @@ StepFunction_Reset:
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
push bc
|
||||
call GetCoordTile
|
||||
call GetCoordTileCollision
|
||||
pop bc
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
call CopyCoordsTileToLastCoordsTile
|
||||
@@ -656,7 +656,7 @@ MovementFunction_Strength:
|
||||
dw .stop
|
||||
|
||||
.start:
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
call CheckPitTile
|
||||
@@ -2278,9 +2278,9 @@ UpdateObjectTile:
|
||||
ld hl, OBJECT_MAP_Y
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
call GetCoordTile
|
||||
call GetCoordTileCollision
|
||||
pop bc
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
farcall UpdateTallGrassFlags ; no need to farcall
|
||||
|
@@ -97,11 +97,11 @@ SkipUpdateMapSprites:
|
||||
|
||||
CheckUpdatePlayerSprite:
|
||||
nop
|
||||
call .CheckBiking
|
||||
call .CheckForcedBiking
|
||||
jr c, .ok
|
||||
call .CheckSurfing
|
||||
jr c, .ok
|
||||
call .CheckSurfing2
|
||||
call .ResetSurfingOrBikingState
|
||||
jr c, .ok
|
||||
ret
|
||||
|
||||
@@ -109,7 +109,7 @@ CheckUpdatePlayerSprite:
|
||||
call UpdatePlayerSprite
|
||||
ret
|
||||
|
||||
.CheckBiking:
|
||||
.CheckForcedBiking:
|
||||
and a
|
||||
ld hl, wBikeFlags
|
||||
bit BIKEFLAGS_ALWAYS_ON_BIKE_F, [hl]
|
||||
@@ -119,7 +119,7 @@ CheckUpdatePlayerSprite:
|
||||
scf
|
||||
ret
|
||||
|
||||
.CheckSurfing2:
|
||||
.ResetSurfingOrBikingState:
|
||||
ld a, [wPlayerState]
|
||||
cp PLAYER_NORMAL
|
||||
jr z, .nope
|
||||
|
@@ -668,7 +668,7 @@ NormalStep:
|
||||
add hl, bc
|
||||
ld [hl], OBJECT_ACTION_STEP
|
||||
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
call CheckSuperTallGrassTile
|
||||
|
@@ -70,11 +70,11 @@ WillObjectBumpIntoWater:
|
||||
add hl, bc
|
||||
bit OAM_PRIORITY, [hl]
|
||||
jp nz, WillObjectRemainOnWater
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld d, a
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
and a ; LAND_TILE
|
||||
jr z, WillObjectBumpIntoTile
|
||||
scf
|
||||
@@ -83,17 +83,17 @@ WillObjectBumpIntoWater:
|
||||
WillObjectBumpIntoLand:
|
||||
call CanObjectLeaveTile
|
||||
ret c
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
cp WATER_TILE
|
||||
jr z, WillObjectBumpIntoTile
|
||||
scf
|
||||
ret
|
||||
|
||||
WillObjectBumpIntoTile:
|
||||
ld hl, OBJECT_TILE
|
||||
ld hl, OBJECT_TILE_COLLISION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
call GetSideWallDirectionMask
|
||||
@@ -210,13 +210,13 @@ WillObjectRemainOnWater:
|
||||
inc e
|
||||
|
||||
.continue
|
||||
call GetCoordTile
|
||||
call GetTileCollision
|
||||
call GetCoordTileCollision
|
||||
call GetTilePermission
|
||||
pop de
|
||||
and a ; LAND_TILE
|
||||
jr nz, .not_land
|
||||
call GetCoordTile
|
||||
call GetTileCollision
|
||||
call GetCoordTileCollision
|
||||
call GetTilePermission
|
||||
and a ; LAND_TILE
|
||||
jr nz, .not_land
|
||||
xor a
|
||||
|
@@ -114,7 +114,7 @@ DoPlayerMovement::
|
||||
; Tiles such as waterfalls and warps move the player
|
||||
; in a given direction, overriding input.
|
||||
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
ld c, a
|
||||
call CheckWhirlpoolTile
|
||||
jr c, .not_whirlpool
|
||||
@@ -270,7 +270,7 @@ DoPlayerMovement::
|
||||
cp 2
|
||||
jr z, .bump
|
||||
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
call CheckIceTile
|
||||
jr nc, .ice
|
||||
|
||||
@@ -352,7 +352,7 @@ DoPlayerMovement::
|
||||
ret
|
||||
|
||||
.TryJump:
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
ld e, a
|
||||
and $f0
|
||||
cp HI_NYBBLE_LEDGES
|
||||
@@ -398,7 +398,7 @@ DoPlayerMovement::
|
||||
ld d, 0
|
||||
ld hl, .EdgeWarps
|
||||
add hl, de
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
cp [hl]
|
||||
jr nz, .not_warp
|
||||
|
||||
@@ -592,7 +592,7 @@ DoPlayerMovement::
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [hl]
|
||||
ld [wWalkingTile], a
|
||||
ld [wWalkingTileCollision], a
|
||||
ret
|
||||
|
||||
MACRO player_action
|
||||
@@ -603,7 +603,7 @@ ENDM
|
||||
|
||||
.action_table:
|
||||
.action_table_1
|
||||
player_action STANDING, FACE_CURRENT, 0, 0, wPlayerTile
|
||||
player_action STANDING, FACE_CURRENT, 0, 0, wPlayerTileCollision
|
||||
.action_table_1_end
|
||||
player_action RIGHT, FACE_RIGHT, 1, 0, wTileRight
|
||||
player_action LEFT, FACE_LEFT, -1, 0, wTileLeft
|
||||
@@ -693,7 +693,7 @@ ENDM
|
||||
and d
|
||||
jr nz, .NotWalkable
|
||||
|
||||
ld a, [wWalkingTile]
|
||||
ld a, [wWalkingTileCollision]
|
||||
call .CheckWalkable
|
||||
jr c, .NotWalkable
|
||||
|
||||
@@ -714,7 +714,7 @@ ENDM
|
||||
and d
|
||||
jr nz, .NotSurfable
|
||||
|
||||
ld a, [wWalkingTile]
|
||||
ld a, [wWalkingTileCollision]
|
||||
call .CheckSurfable
|
||||
jr c, .NotSurfable
|
||||
|
||||
@@ -735,7 +735,7 @@ ENDM
|
||||
.CheckWalkable:
|
||||
; Return 0 if tile a is land. Otherwise, return carry.
|
||||
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
and a ; LAND_TILE
|
||||
ret z
|
||||
scf
|
||||
@@ -745,7 +745,7 @@ ENDM
|
||||
; Return 0 if tile a is water, or 1 if land.
|
||||
; Otherwise, return carry.
|
||||
|
||||
call GetTileCollision
|
||||
call GetTilePermission
|
||||
cp WATER_TILE
|
||||
jr z, .Water
|
||||
|
||||
@@ -789,7 +789,7 @@ CheckStandingOnIce::
|
||||
jr z, .not_ice
|
||||
cp $f0
|
||||
jr z, .not_ice
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
call CheckIceTile
|
||||
jr nc, .yep
|
||||
ld a, [wPlayerState]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
CheckWarpCollision::
|
||||
; Is this tile a warp?
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
cp COLL_PIT
|
||||
jr z, .warp
|
||||
cp COLL_PIT_68
|
||||
@@ -18,7 +18,7 @@ CheckWarpCollision::
|
||||
CheckDirectionalWarp::
|
||||
; If this is a directional warp, clear carry (press the designated button to warp).
|
||||
; Else, set carry (immediate warp).
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
cp COLL_WARP_CARPET_DOWN
|
||||
jr z, .directional
|
||||
cp COLL_WARP_CARPET_LEFT
|
||||
@@ -37,7 +37,7 @@ CheckDirectionalWarp::
|
||||
CheckWarpFacingDown:
|
||||
ld de, 1
|
||||
ld hl, .blocks
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
call IsInArray
|
||||
ret
|
||||
|
||||
@@ -54,7 +54,7 @@ CheckWarpFacingDown:
|
||||
db -1
|
||||
|
||||
CheckGrassCollision::
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
ld hl, .blocks
|
||||
ld de, 1
|
||||
call IsInArray
|
||||
@@ -90,7 +90,7 @@ CheckCutCollision:
|
||||
db -1
|
||||
|
||||
GetWarpSFX::
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
ld de, SFX_ENTER_DOOR
|
||||
cp COLL_DOOR
|
||||
ret z
|
||||
|
16
home/map.asm
16
home/map.asm
@@ -1518,12 +1518,12 @@ GetMovementPermissions::
|
||||
ld d, a
|
||||
ld a, [wPlayerMapY]
|
||||
ld e, a
|
||||
call GetCoordTile
|
||||
ld [wPlayerTile], a
|
||||
call GetCoordTileCollision
|
||||
ld [wPlayerTileCollision], a
|
||||
call .CheckHiNybble
|
||||
ret nz
|
||||
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
and 7
|
||||
ld hl, .MovementPermissionsData
|
||||
add l
|
||||
@@ -1555,13 +1555,13 @@ GetMovementPermissions::
|
||||
|
||||
push de
|
||||
inc e
|
||||
call GetCoordTile
|
||||
call GetCoordTileCollision
|
||||
ld [wTileDown], a
|
||||
call .Down
|
||||
|
||||
pop de
|
||||
dec e
|
||||
call GetCoordTile
|
||||
call GetCoordTileCollision
|
||||
ld [wTileUp], a
|
||||
call .Up
|
||||
ret
|
||||
@@ -1574,13 +1574,13 @@ GetMovementPermissions::
|
||||
|
||||
push de
|
||||
dec d
|
||||
call GetCoordTile
|
||||
call GetCoordTileCollision
|
||||
ld [wTileLeft], a
|
||||
call .Left
|
||||
|
||||
pop de
|
||||
inc d
|
||||
call GetCoordTile
|
||||
call GetCoordTileCollision
|
||||
ld [wTileRight], a
|
||||
call .Right
|
||||
ret
|
||||
@@ -1708,7 +1708,7 @@ GetFacingTileCoord::
|
||||
db 1, 0
|
||||
dw wTileRight
|
||||
|
||||
GetCoordTile::
|
||||
GetCoordTileCollision::
|
||||
; Get the collision byte for tile d, e
|
||||
call GetBlockLocation
|
||||
ld a, [hl]
|
||||
|
@@ -71,34 +71,34 @@ DoesSpriteHaveFacings::
|
||||
pop de
|
||||
ret
|
||||
|
||||
GetPlayerTile::
|
||||
ld a, [wPlayerTile]
|
||||
call GetTileCollision
|
||||
GetPlayerTilePermission::
|
||||
ld a, [wPlayerTileCollision]
|
||||
call GetTilePermission
|
||||
ld b, a
|
||||
ret
|
||||
|
||||
CheckOnWater::
|
||||
ld a, [wPlayerTile]
|
||||
call GetTileCollision
|
||||
ld a, [wPlayerTileCollision]
|
||||
call GetTilePermission
|
||||
sub WATER_TILE
|
||||
ret z
|
||||
and a
|
||||
ret
|
||||
|
||||
GetTileCollision::
|
||||
; Get the collision type of tile a.
|
||||
GetTilePermission::
|
||||
; Get the permission of tile collision a.
|
||||
|
||||
push de
|
||||
push hl
|
||||
|
||||
ld hl, TileCollisionTable
|
||||
ld hl, CollisionPermissionTable
|
||||
ld e, a
|
||||
ld d, 0
|
||||
add hl, de
|
||||
|
||||
ldh a, [hROMBank]
|
||||
push af
|
||||
ld a, BANK(TileCollisionTable)
|
||||
ld a, BANK(CollisionPermissionTable)
|
||||
rst Bankswitch
|
||||
ld e, [hl]
|
||||
pop af
|
||||
@@ -189,7 +189,7 @@ CheckWaterfallTile::
|
||||
ret
|
||||
|
||||
CheckStandingOnEntrance::
|
||||
ld a, [wPlayerTile]
|
||||
ld a, [wPlayerTileCollision]
|
||||
cp COLL_DOOR
|
||||
ret z
|
||||
cp COLL_DOOR_79
|
||||
|
@@ -306,7 +306,7 @@ MACRO object_struct
|
||||
\1Action:: db
|
||||
\1StepFrame:: db
|
||||
\1Facing:: db
|
||||
\1Tile:: db
|
||||
\1TileCollision:: db
|
||||
\1LastTile:: db
|
||||
\1MapX:: db
|
||||
\1MapY:: db
|
||||
|
@@ -2208,7 +2208,7 @@ wWalkingDirection:: db
|
||||
wFacingDirection:: db
|
||||
wWalkingX:: db
|
||||
wWalkingY:: db
|
||||
wWalkingTile:: db
|
||||
wWalkingTileCollision:: db
|
||||
ds 6
|
||||
wPlayerTurningDirection:: db
|
||||
|
||||
|
Reference in New Issue
Block a user