diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm index a183e8ca52a..f2890f9be5c 100644 --- a/constants/collision_constants.asm +++ b/constants/collision_constants.asm @@ -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 diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm index e44c2825b4d..cb46f549ab7 100644 --- a/constants/map_object_constants.asm +++ b/constants/map_object_constants.asm @@ -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 diff --git a/data/collision/collision_permissions.asm b/data/collision/collision_permissions.asm index 188338ca927..9c0eb1a75a8 100644 --- a/data/collision/collision_permissions.asm +++ b/data/collision/collision_permissions.asm @@ -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 diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index 78a4b746c81..e20c1838a3c 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -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 diff --git a/engine/events/overworld.asm b/engine/events/overworld.asm index 5945d66cb99..98b415b6a79 100644 --- a/engine/events/overworld.asm +++ b/engine/events/overworld.asm @@ -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 diff --git a/engine/overworld/cmd_queue.asm b/engine/overworld/cmd_queue.asm index cd8c5e4aa02..2881205cf1a 100644 --- a/engine/overworld/cmd_queue.asm +++ b/engine/overworld/cmd_queue.asm @@ -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 diff --git a/engine/overworld/events.asm b/engine/overworld/events.asm index 4505adf30a2..5c36665c640 100644 --- a/engine/overworld/events.asm +++ b/engine/overworld/events.asm @@ -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 diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm index 7a0f307a64f..1e8c226a54d 100644 --- a/engine/overworld/map_objects.asm +++ b/engine/overworld/map_objects.asm @@ -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 diff --git a/engine/overworld/map_setup.asm b/engine/overworld/map_setup.asm index e70f9ab7b98..b9e908286c0 100644 --- a/engine/overworld/map_setup.asm +++ b/engine/overworld/map_setup.asm @@ -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 diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index c8b111f32bc..3be90a929fd 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -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 diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index a47bdc44d3f..1b1f9e173e4 100644 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -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 diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm index 0c392484400..50d7f84a553 100644 --- a/engine/overworld/player_movement.asm +++ b/engine/overworld/player_movement.asm @@ -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] diff --git a/engine/overworld/tile_events.asm b/engine/overworld/tile_events.asm index d5d07c1565f..d7ec90f730c 100644 --- a/engine/overworld/tile_events.asm +++ b/engine/overworld/tile_events.asm @@ -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 diff --git a/home/map.asm b/home/map.asm index 2d0519c8137..91213c91da2 100644 --- a/home/map.asm +++ b/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] diff --git a/home/map_objects.asm b/home/map_objects.asm index 48ee5b0585b..399090a8393 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -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 diff --git a/macros/ram.asm b/macros/ram.asm index aa05d8325a4..2585272f98d 100644 --- a/macros/ram.asm +++ b/macros/ram.asm @@ -306,7 +306,7 @@ MACRO object_struct \1Action:: db \1StepFrame:: db \1Facing:: db -\1Tile:: db +\1TileCollision:: db \1LastTile:: db \1MapX:: db \1MapY:: db diff --git a/ram/wram.asm b/ram/wram.asm index 38be291f74f..7e34d268178 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -2208,7 +2208,7 @@ wWalkingDirection:: db wFacingDirection:: db wWalkingX:: db wWalkingY:: db -wWalkingTile:: db +wWalkingTileCollision:: db ds 6 wPlayerTurningDirection:: db