shithub: pokecrystal

Download patch

ref: 1637d915d422d633a883788774a893ce6fa78849
parent: 3dcbe0ff55465d3c90490947b1585f2437027986
author: PikalaxALT <PikalaxALT@gmail.com>
date: Sun Jan 10 21:28:09 EST 2016

Restored StandingTile and introduced LastTile

--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -1423,7 +1423,7 @@
 	dw Music_ToggleNoise ; music noise sampling
 	dw Music_Panning ; force panning
 	dw Music_Volume ; volume
-	dw Music_Tone ; tune
+	dw Music_Tone ; tone
 	dw MusicE7 ; unused
 	dw MusicE8 ; unused
 	dw Music_TempoRelative ; global tempo
--- a/engine/events.asm
+++ b/engine/events.asm
@@ -378,7 +378,7 @@
 	ret
 
 .warp_tile
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call CheckPitTile
 	jr nz, .not_pit
 	ld a, PLAYEREVENT_FALL
--- a/engine/events_2.asm
+++ b/engine/events_2.asm
@@ -161,7 +161,7 @@
 	jr nc, .no
 
 .ice_check
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call CheckIceTile
 	jr z, .no
 	scf
@@ -235,7 +235,7 @@
 ; 97d64
 
 TryWildEncounter_BugContest: ; 97d64
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call CheckSuperTallGrassTile
 	ld b, 40 percent
 	jr z, .ok
--- a/engine/npc_movement.asm
+++ b/engine/npc_movement.asm
@@ -234,7 +234,7 @@
 	call CheckCounterTile
 	jr nz, .asm_6ff1
 
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	sub d
 	cpl
 	inc a
@@ -241,7 +241,7 @@
 	add d
 	ld d, a
 
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	sub e
 	cpl
 	inc a
@@ -482,9 +482,9 @@
 ; 7113
 
 Function7113: ; unreferenced
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	ld d, a
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	ld e, a
 	ld bc, ObjectStructs
 	xor a
--- a/engine/player_movement.asm
+++ b/engine/player_movement.asm
@@ -118,7 +118,7 @@
 ; Tiles such as waterfalls and warps move the player
 ; in a given direction, overriding input.
 
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	ld c, a
 	call CheckWhirlpoolTile
 	jr c, .asm_800c4
@@ -277,7 +277,7 @@
 	cp 2
 	jr z, .bump
 
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call CheckIceTile
 	jr nc, .ice
 
@@ -362,7 +362,7 @@
 ; 801f3
 
 .TryJump: ; 801f3
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	ld e, a
 	and $f0
 	cp $a0 ; ledge
@@ -413,7 +413,7 @@
 	ld d, 0
 	ld hl, .EdgeWarps
 	add hl, de
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	cp [hl]
 	jr nz, .not_warp
 
@@ -615,7 +615,7 @@
 ;	tile collision pointer
 .table1
 	db STANDING, FACE_CURRENT, 0, 0
-	dw PlayerNextTile
+	dw PlayerStandingTile
 .table2
 	db RIGHT, FACE_RIGHT,  1,  0
 	dw TileRight
@@ -634,13 +634,13 @@
 	ld a, 0
 	ld [hMapObjectIndexBuffer], a
 ; Load the next X coordinate into d
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	ld d, a
 	ld a, [WalkingX]
 	add d
 	ld d, a
 ; Load the next Y coordinate into e
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	ld e, a
 	ld a, [WalkingY]
 	add e
@@ -817,7 +817,7 @@
 	jr z, .not_ice
 	cp $f0
 	jr z, .not_ice
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call CheckIceTile
 	jr nc, .yep
 	ld a, [PlayerState]
--- a/engine/tile_events.asm
+++ b/engine/tile_events.asm
@@ -1,6 +1,6 @@
 CheckWarpCollision:: ; 1499a
 ; Is this tile a warp?
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	cp $60
 	jr z, .warp
 	cp $68
@@ -19,7 +19,7 @@
 CheckDirectionalWarp:: ; 149af
 ; If this is a directional warp, clear carry (press the designated button to warp).
 ; Else, set carry (immediate warp).
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	cp $70 ; Warp on down
 	jr z, .not_warp
 	cp $76 ; Warp on left
@@ -39,7 +39,7 @@
 CheckWarpFacingDown: ; 149c6
 	ld de, 1
 	ld hl, .blocks
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call IsInArray
 	ret
 ; 149d3
@@ -58,7 +58,7 @@
 ; 149dd
 
 CheckGrassCollision:: ; 149dd
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	ld hl, .blocks
 	ld de, 1
 	call IsInArray
@@ -98,7 +98,7 @@
 ; 14a07
 
 Function14a07:: ; 14a07
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	ld de, $1f
 	cp $71 ; door
 	ret z
--- a/engine/warp_connection.asm
+++ b/engine/warp_connection.asm
@@ -349,7 +349,7 @@
 	ret
 
 .down
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	sub 4
 	ld b, a
 	ld a, [MapHeight]
@@ -360,7 +360,7 @@
 	ret
 
 .up
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	sub 4
 	cp -1
 	jr z, .ok
@@ -368,7 +368,7 @@
 	ret
 
 .left
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	sub $4
 	cp -1
 	jr z, .ok
@@ -376,7 +376,7 @@
 	ret
 
 .right
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	sub 4
 	ld b, a
 	ld a, [MapWidth]
--- a/home.asm
+++ b/home.asm
@@ -1462,11 +1462,11 @@
 	add hl, bc
 	ld e, [hl]
 
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	cp d
 	jr z, .CheckY
 
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	cp e
 	jr z, .CheckX
 
@@ -1474,7 +1474,7 @@
 	ret
 
 .CheckY
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	sub e
 	jr z, .NotFacing
 	jr nc, .Above
@@ -1492,7 +1492,7 @@
 	jr .CheckFacing
 
 .CheckX
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	sub d
 	jr z, .NotFacing
 	jr nc, .Left
--- a/home/map.asm
+++ b/home/map.asm
@@ -256,10 +256,10 @@
 ; 2266
 
 .GetDestinationWarpNumber ; 2266
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	sub $4
 	ld e, a
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	sub $4
 	ld d, a
 	ld a, [wCurrMapWarpCount]
@@ -1568,16 +1568,16 @@
 	call .LeftRight
 	call .UpDown
 ; get coords of current tile
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	ld d, a
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	ld e, a
 	call GetCoordTile
-	ld [PlayerNextTile], a
+	ld [PlayerStandingTile], a
 	call .CheckHiNybble
 	ret nz
 
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	and 7
 	ld hl, .MovementPermissionsData
 	add l
@@ -1597,9 +1597,9 @@
 ; 294d
 
 .UpDown
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	ld d, a
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	ld e, a
 
 	push de
@@ -1617,9 +1617,9 @@
 ; 296c
 
 .LeftRight
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	ld d, a
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	ld e, a
 
 	push de
@@ -1744,10 +1744,10 @@
 	ld h, [hl]
 	ld l, a
 
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	add d
 	ld d, a
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	add e
 	ld e, a
 	ld a, [hl]
@@ -1922,10 +1922,10 @@
 	call CheckTriggers
 	ld b, a
 ; Load your current coordinates into de.  This will be used to check if your position is in the xy-trigger table for the current map.
-	ld a, [PlayerNextMapX]
+	ld a, [PlayerStandingMapX]
 	sub 4
 	ld d, a
-	ld a, [PlayerNextMapY]
+	ld a, [PlayerStandingMapY]
 	sub 4
 	ld e, a
 
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -79,8 +79,8 @@
 
 
 
-Function184a:: ; 184a
-	ld a, [PlayerNextTile]
+GetPlayerStandingTile:: ; 184a
+	ld a, [PlayerStandingTile]
 	call GetTileCollision
 	ld b, a
 	ret
@@ -87,7 +87,7 @@
 ; 1852
 
 CheckOnWater:: ; 1852
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call GetTileCollision
 	sub 1
 	ret z
@@ -125,17 +125,6 @@
 
 
 CheckGrassTile:: ; 1875
-	; and %00110111
-	; cp $10
-	; ret c
-	; cp $30
-	; jr nc, .okay
-	; scf
-	; ret
-	; .okay
-	; xor a
-	; ret
-
 	ld d, a
 	and $f0
 	cp $10
@@ -222,7 +211,7 @@
 ; 18c3
 
 CheckStandingOnEntrance:: ; 18c3
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	cp $71 ; door
 	ret z
 	cp $79
--- a/main.asm
+++ b/main.asm
@@ -821,23 +821,23 @@
 	ld a, [XCoord]
 	add 4
 	ld d, a
-	ld hl, PlayerNextMapX
+	ld hl, PlayerStandingMapX
 	sub [hl]
 	ld [hl], d
 	ld hl, MapObjects + MAPOBJECT_X_COORD
 	ld [hl], d
-	ld hl, PlayerMapX
+	ld hl, PlayerLastMapX
 	ld [hl], d
 	ld d, a
 	ld a, [YCoord]
 	add 4
 	ld e, a
-	ld hl, PlayerNextMapY
+	ld hl, PlayerStandingMapY
 	sub [hl]
 	ld [hl], e
 	ld hl, MapObjects + MAPOBJECT_Y_COORD
 	ld [hl], e
-	ld hl, PlayerMapY
+	ld hl, PlayerLastMapY
 	ld [hl], e
 	ld e, a
 	ld a, [wObjectFollow_Leader]
@@ -2808,7 +2808,7 @@
 .CheckContinueWaterfall: ; cb38
 	xor a
 	ld [ScriptVar], a
-	ld a, [PlayerNextTile]
+	ld a, [PlayerStandingTile]
 	call CheckWaterfallTile
 	ret z
 	callba MobileFn_1060c1
@@ -3804,7 +3804,7 @@
 	jr .done
 
 .CantGetOffBike
-	ld hl, UnknownScript_0xd171
+	ld hl, Script_CantGetOffBike
 	jr .done
 
 .CannotUseBike
@@ -3835,8 +3835,8 @@
 	jr .nope
 
 .ok
-	call Function184a
-	and $f
+	call GetPlayerStandingTile
+	and $f ; can't use our bike in a wall or on water
 	jr nz, .nope
 	xor a
 	ret
@@ -3849,7 +3849,7 @@
 	reloadmappart
 	special UpdateTimePals
 	writecode VAR_MOVEMENT, PLAYER_BIKE
-	writetext UnknownText_0xd17c
+	writetext GotOnTheBikeText
 	waitbutton
 	closetext
 	special ReplaceKrisSprite
@@ -3861,7 +3861,7 @@
 	special ReplaceKrisSprite
 	end
 
-Functiond156: ; unreferenced
+; XXX
 	nop
 	ret
 
@@ -3869,7 +3869,7 @@
 	reloadmappart
 	special UpdateTimePals
 	writecode VAR_MOVEMENT, PLAYER_NORMAL
-	writetext UnknownText_0xd181
+	writetext GotOffTheBikeText
 	waitbutton
 
 FinishGettingOffBike:
@@ -3882,23 +3882,23 @@
 	writecode VAR_MOVEMENT, PLAYER_NORMAL
 	jump FinishGettingOffBike
 
-UnknownScript_0xd171: ; 0xd171
-	writetext UnknownText_0xd177
+Script_CantGetOffBike: ; 0xd171
+	writetext .CantGetOffBikeText
 	waitbutton
 	closetext
 	end
 
-UnknownText_0xd177: ; 0xd177
+.CantGetOffBikeText: ; 0xd177
 	; You can't get off here!
 	text_jump UnknownText_0x1c099a
 	db "@"
 
-UnknownText_0xd17c: ; 0xd17c
+GotOnTheBikeText: ; 0xd17c
 	; got on the @ .
 	text_jump UnknownText_0x1c09b2
 	db "@"
 
-UnknownText_0xd181: ; 0xd181
+GotOffTheBikeText: ; 0xd181
 	; got off the @ .
 	text_jump UnknownText_0x1c09c7
 	db "@"
@@ -7265,47 +7265,7 @@
 INCLUDE "tilesets/palette_maps.asm"
 
 TileCollisionTable:: ; 4ce1f
-; 00 land
-; 01 water
-; 0f wall
-; 11 talkable water
-; 1f talkable wall
-
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE
-	db NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + WALLTILE, NULL + WALLTILE, TALK + WALLTILE, NULL + LANDTILE, TALK + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WATRTILE
-	db NULL + WALLTILE, NULL + WALLTILE, TALK + WALLTILE, NULL + LANDTILE, TALK + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WATRTILE
-	db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE
-	db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE
-
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-
-	db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE
-	db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-
-	db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE
-	db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE
-	db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE
+INCLUDE "tilesets/collision.asm"
 
 EmptyAllSRAMBanks: ; 4cf1f
 	ld a, $0
--- /dev/null
+++ b/tilesets/collision.asm
@@ -1,0 +1,264 @@
+
+; 00 land
+; 01 water
+; 0f wall
+; 11 talkable water
+; 1f talkable wall
+NONTALKABLE EQUS "db"
+TALKABLE EQUS "db TALK +"
+	NONTALKABLE LANDTILE ; 00
+	NONTALKABLE LANDTILE ; 01
+	NONTALKABLE LANDTILE ; 02
+	NONTALKABLE LANDTILE ; 03
+	NONTALKABLE LANDTILE ; 04
+	NONTALKABLE LANDTILE ; 05
+	NONTALKABLE LANDTILE ; 06
+	NONTALKABLE WATRTILE ; 07
+	NONTALKABLE LANDTILE ; 08
+	NONTALKABLE LANDTILE ; 09
+	NONTALKABLE LANDTILE ; 0a
+	NONTALKABLE LANDTILE ; 0b
+	NONTALKABLE LANDTILE ; 0c
+	NONTALKABLE LANDTILE ; 0d
+	NONTALKABLE LANDTILE ; 0e
+	NONTALKABLE WATRTILE ; 0f
+	NONTALKABLE LANDTILE ; 10
+	NONTALKABLE LANDTILE ; 11
+	   TALKABLE WATRTILE ; 12
+	NONTALKABLE LANDTILE ; 13
+	NONTALKABLE LANDTILE ; 14
+	   TALKABLE WATRTILE ; 15
+	NONTALKABLE LANDTILE ; 16
+	NONTALKABLE LANDTILE ; 17
+	NONTALKABLE LANDTILE ; 18
+	NONTALKABLE LANDTILE ; 19
+	   TALKABLE WATRTILE ; 1a
+	NONTALKABLE LANDTILE ; 1b
+	NONTALKABLE LANDTILE ; 1c
+	   TALKABLE WATRTILE ; 1d
+	NONTALKABLE LANDTILE ; 1e
+	NONTALKABLE LANDTILE ; 1f
+	NONTALKABLE WALLTILE ; 20
+	NONTALKABLE WALLTILE ; 21
+	   TALKABLE WALLTILE ; 22
+	NONTALKABLE LANDTILE ; 23
+	   TALKABLE WALLTILE ; 24
+	NONTALKABLE WALLTILE ; 25
+	NONTALKABLE WALLTILE ; 26
+	NONTALKABLE WATRTILE ; 27
+	NONTALKABLE WALLTILE ; 28
+	NONTALKABLE WALLTILE ; 29
+	   TALKABLE WALLTILE ; 2a
+	NONTALKABLE LANDTILE ; 2b
+	   TALKABLE WALLTILE ; 2c
+	NONTALKABLE WALLTILE ; 2d
+	NONTALKABLE WALLTILE ; 2e
+	NONTALKABLE WATRTILE ; 2f
+	NONTALKABLE WALLTILE ; 30
+	NONTALKABLE WALLTILE ; 31
+	NONTALKABLE WALLTILE ; 32
+	NONTALKABLE WALLTILE ; 33
+	NONTALKABLE WALLTILE ; 34
+	NONTALKABLE WALLTILE ; 35
+	NONTALKABLE WALLTILE ; 36
+	NONTALKABLE WALLTILE ; 37
+	NONTALKABLE WALLTILE ; 38
+	NONTALKABLE WALLTILE ; 39
+	NONTALKABLE WALLTILE ; 3a
+	NONTALKABLE WALLTILE ; 3b
+	NONTALKABLE WALLTILE ; 3c
+	NONTALKABLE WALLTILE ; 3d
+	NONTALKABLE WALLTILE ; 3e
+	NONTALKABLE WALLTILE ; 3f
+	NONTALKABLE LANDTILE ; 40
+	NONTALKABLE LANDTILE ; 41
+	NONTALKABLE LANDTILE ; 42
+	NONTALKABLE LANDTILE ; 43
+	NONTALKABLE LANDTILE ; 44
+	NONTALKABLE LANDTILE ; 45
+	NONTALKABLE LANDTILE ; 46
+	NONTALKABLE LANDTILE ; 47
+	NONTALKABLE LANDTILE ; 48
+	NONTALKABLE LANDTILE ; 49
+	NONTALKABLE LANDTILE ; 4a
+	NONTALKABLE LANDTILE ; 4b
+	NONTALKABLE LANDTILE ; 4c
+	NONTALKABLE LANDTILE ; 4d
+	NONTALKABLE LANDTILE ; 4e
+	NONTALKABLE LANDTILE ; 4f
+	NONTALKABLE LANDTILE ; 50
+	NONTALKABLE LANDTILE ; 51
+	NONTALKABLE LANDTILE ; 52
+	NONTALKABLE LANDTILE ; 53
+	NONTALKABLE LANDTILE ; 54
+	NONTALKABLE LANDTILE ; 55
+	NONTALKABLE LANDTILE ; 56
+	NONTALKABLE LANDTILE ; 57
+	NONTALKABLE LANDTILE ; 58
+	NONTALKABLE LANDTILE ; 59
+	NONTALKABLE LANDTILE ; 5a
+	NONTALKABLE LANDTILE ; 5b
+	NONTALKABLE LANDTILE ; 5c
+	NONTALKABLE LANDTILE ; 5d
+	NONTALKABLE LANDTILE ; 5e
+	NONTALKABLE LANDTILE ; 5f
+	NONTALKABLE LANDTILE ; 60
+	NONTALKABLE LANDTILE ; 61
+	NONTALKABLE WATRTILE ; 62
+	NONTALKABLE LANDTILE ; 63
+	NONTALKABLE LANDTILE ; 64
+	NONTALKABLE LANDTILE ; 65
+	NONTALKABLE LANDTILE ; 66
+	NONTALKABLE LANDTILE ; 67
+	NONTALKABLE LANDTILE ; 68
+	NONTALKABLE LANDTILE ; 69
+	NONTALKABLE WATRTILE ; 6a
+	NONTALKABLE LANDTILE ; 6b
+	NONTALKABLE LANDTILE ; 6c
+	NONTALKABLE LANDTILE ; 6d
+	NONTALKABLE LANDTILE ; 6e
+	NONTALKABLE LANDTILE ; 6f
+	NONTALKABLE LANDTILE ; 70
+	NONTALKABLE LANDTILE ; 71
+	NONTALKABLE LANDTILE ; 72
+	NONTALKABLE LANDTILE ; 73
+	NONTALKABLE LANDTILE ; 74
+	NONTALKABLE LANDTILE ; 75
+	NONTALKABLE LANDTILE ; 76
+	NONTALKABLE LANDTILE ; 77
+	NONTALKABLE LANDTILE ; 78
+	NONTALKABLE LANDTILE ; 79
+	NONTALKABLE LANDTILE ; 7a
+	NONTALKABLE LANDTILE ; 7b
+	NONTALKABLE LANDTILE ; 7c
+	NONTALKABLE LANDTILE ; 7d
+	NONTALKABLE LANDTILE ; 7e
+	NONTALKABLE LANDTILE ; 7f
+	NONTALKABLE WATRTILE ; 80
+	NONTALKABLE WATRTILE ; 81
+	NONTALKABLE WATRTILE ; 82
+	NONTALKABLE WATRTILE ; 83
+	NONTALKABLE WATRTILE ; 84
+	NONTALKABLE LANDTILE ; 85
+	NONTALKABLE LANDTILE ; 86
+	NONTALKABLE LANDTILE ; 87
+	NONTALKABLE WATRTILE ; 88
+	NONTALKABLE WATRTILE ; 89
+	NONTALKABLE WATRTILE ; 8a
+	NONTALKABLE WATRTILE ; 8b
+	NONTALKABLE WATRTILE ; 8c
+	NONTALKABLE LANDTILE ; 8d
+	NONTALKABLE LANDTILE ; 8e
+	NONTALKABLE LANDTILE ; 8f
+	NONTALKABLE WATRTILE ; 90
+	NONTALKABLE WATRTILE ; 91
+	NONTALKABLE WATRTILE ; 92
+	NONTALKABLE WATRTILE ; 93
+	NONTALKABLE WATRTILE ; 94
+	NONTALKABLE WATRTILE ; 95
+	NONTALKABLE WATRTILE ; 96
+	NONTALKABLE WATRTILE ; 97
+	NONTALKABLE WATRTILE ; 98
+	NONTALKABLE WATRTILE ; 99
+	NONTALKABLE WATRTILE ; 9a
+	NONTALKABLE WATRTILE ; 9b
+	NONTALKABLE WATRTILE ; 9c
+	NONTALKABLE WATRTILE ; 9d
+	NONTALKABLE WATRTILE ; 9e
+	NONTALKABLE WATRTILE ; 9f
+	NONTALKABLE LANDTILE ; a0
+	NONTALKABLE LANDTILE ; a1
+	NONTALKABLE LANDTILE ; a2
+	NONTALKABLE LANDTILE ; a3
+	NONTALKABLE LANDTILE ; a4
+	NONTALKABLE LANDTILE ; a5
+	NONTALKABLE LANDTILE ; a6
+	NONTALKABLE LANDTILE ; a7
+	NONTALKABLE LANDTILE ; a8
+	NONTALKABLE LANDTILE ; a9
+	NONTALKABLE LANDTILE ; aa
+	NONTALKABLE LANDTILE ; ab
+	NONTALKABLE LANDTILE ; ac
+	NONTALKABLE LANDTILE ; ad
+	NONTALKABLE LANDTILE ; ae
+	NONTALKABLE LANDTILE ; af
+	NONTALKABLE LANDTILE ; b0
+	NONTALKABLE LANDTILE ; b1
+	NONTALKABLE LANDTILE ; b2
+	NONTALKABLE LANDTILE ; b3
+	NONTALKABLE LANDTILE ; b4
+	NONTALKABLE LANDTILE ; b5
+	NONTALKABLE LANDTILE ; b6
+	NONTALKABLE LANDTILE ; b7
+	NONTALKABLE LANDTILE ; b8
+	NONTALKABLE LANDTILE ; b9
+	NONTALKABLE LANDTILE ; ba
+	NONTALKABLE LANDTILE ; bb
+	NONTALKABLE LANDTILE ; bc
+	NONTALKABLE LANDTILE ; bd
+	NONTALKABLE LANDTILE ; be
+	NONTALKABLE LANDTILE ; bf
+	NONTALKABLE WALLTILE ; c0
+	NONTALKABLE WALLTILE ; c1
+	NONTALKABLE WALLTILE ; c2
+	NONTALKABLE WALLTILE ; c3
+	NONTALKABLE WALLTILE ; c4
+	NONTALKABLE WALLTILE ; c5
+	NONTALKABLE WALLTILE ; c6
+	NONTALKABLE WALLTILE ; c7
+	NONTALKABLE WALLTILE ; c8
+	NONTALKABLE WALLTILE ; c9
+	NONTALKABLE WALLTILE ; ca
+	NONTALKABLE WALLTILE ; cb
+	NONTALKABLE WALLTILE ; cc
+	NONTALKABLE WALLTILE ; cd
+	NONTALKABLE WALLTILE ; ce
+	NONTALKABLE WALLTILE ; cf
+	NONTALKABLE LANDTILE ; d0
+	NONTALKABLE LANDTILE ; d1
+	NONTALKABLE LANDTILE ; d2
+	NONTALKABLE LANDTILE ; d3
+	NONTALKABLE LANDTILE ; d4
+	NONTALKABLE LANDTILE ; d5
+	NONTALKABLE LANDTILE ; d6
+	NONTALKABLE LANDTILE ; d7
+	NONTALKABLE LANDTILE ; d8
+	NONTALKABLE LANDTILE ; d9
+	NONTALKABLE LANDTILE ; da
+	NONTALKABLE LANDTILE ; db
+	NONTALKABLE LANDTILE ; dc
+	NONTALKABLE LANDTILE ; dd
+	NONTALKABLE LANDTILE ; de
+	NONTALKABLE LANDTILE ; df
+	NONTALKABLE LANDTILE ; e0
+	NONTALKABLE LANDTILE ; e1
+	NONTALKABLE LANDTILE ; e2
+	NONTALKABLE LANDTILE ; e3
+	NONTALKABLE LANDTILE ; e4
+	NONTALKABLE LANDTILE ; e5
+	NONTALKABLE LANDTILE ; e6
+	NONTALKABLE LANDTILE ; e7
+	NONTALKABLE LANDTILE ; e8
+	NONTALKABLE LANDTILE ; e9
+	NONTALKABLE LANDTILE ; ea
+	NONTALKABLE LANDTILE ; eb
+	NONTALKABLE LANDTILE ; ec
+	NONTALKABLE LANDTILE ; ed
+	NONTALKABLE LANDTILE ; ee
+	NONTALKABLE LANDTILE ; ef
+	NONTALKABLE LANDTILE ; f0
+	NONTALKABLE LANDTILE ; f1
+	NONTALKABLE LANDTILE ; f2
+	NONTALKABLE LANDTILE ; f3
+	NONTALKABLE LANDTILE ; f4
+	NONTALKABLE LANDTILE ; f5
+	NONTALKABLE LANDTILE ; f6
+	NONTALKABLE LANDTILE ; f7
+	NONTALKABLE LANDTILE ; f8
+	NONTALKABLE LANDTILE ; f9
+	NONTALKABLE LANDTILE ; fa
+	NONTALKABLE LANDTILE ; fb
+	NONTALKABLE LANDTILE ; fc
+	NONTALKABLE LANDTILE ; fd
+	NONTALKABLE LANDTILE ; fe
+	NONTALKABLE WATRTILE ; ff
--- a/wram.asm
+++ b/wram.asm
@@ -2399,12 +2399,12 @@
 \1Action:: ds 1
 \1ObjectStepFrame:: ds 1
 \1Facing:: ds 1
-\1NextTile:: ds 1     ; collision
 \1StandingTile:: ds 1 ; collision
-\1NextMapX:: ds 1
-\1NextMapY:: ds 1
-\1MapX:: ds 1
-\1MapY:: ds 1
+\1LastTile:: ds 1     ; collision
+\1StandingMapX:: ds 1
+\1StandingMapY:: ds 1
+\1LastMapX:: ds 1
+\1LastMapY:: ds 1
 \1ObjectInitX:: ds 1
 \1ObjectInitY:: ds 1
 \1Radius:: ds 1