diff options
| -rw-r--r-- | constants/sprite_constants.asm | 4 | ||||
| -rw-r--r-- | engine/events.asm | 35 | ||||
| -rw-r--r-- | engine/map_objects.asm | 334 | ||||
| -rw-r--r-- | engine/movement.asm | 22 | ||||
| -rw-r--r-- | home/map_objects.asm | 4 | ||||
| -rw-r--r-- | wram.asm | 3 | 
6 files changed, 186 insertions, 216 deletions
| diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index c3f19aff6..70cc84e72 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -269,7 +269,7 @@ MAX_OUTDOOR_SPRITES EQU 23  	const_def  	const STEP_TYPE_00 -	const STEP_TYPE_STANDING +	const STEP_TYPE_SLEEP  	const STEP_TYPE_NPC_WALK  	const STEP_TYPE_03  	const STEP_TYPE_04 @@ -287,7 +287,7 @@ MAX_OUTDOOR_SPRITES EQU 23  	const STEP_TYPE_GOT_BITE  	const STEP_TYPE_ROCK_SMASH  	const STEP_TYPE_RETURN_DIG -	const STEP_TYPE_13 +	const STEP_TYPE_TRACKING_OBJECT  	const STEP_TYPE_14  	const STEP_TYPE_15  	const STEP_TYPE_16 diff --git a/engine/events.asm b/engine/events.asm index 565b60049..4dbe202cd 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -1,6 +1,5 @@  INCLUDE "includes.asm" -  SECTION "Events", ROMX, BANK[EVENTS]  OverworldLoop:: ; 966b0 @@ -23,7 +22,6 @@ OverworldLoop:: ; 966b0  	dw .done  ; 966cb -  DisableEvents: ; 966cb  	xor a  	ld [ScriptFlags3], a @@ -114,21 +112,16 @@ CheckWildEncountersScriptFlag: ; 9671e  	ret  ; 96724 -  StartMap: ; 96724  	xor a  	ld [ScriptVar], a  	xor a  	ld [ScriptRunning], a  	ld hl, MapStatus -	ld bc, $3e ; 62 +	ld bc, wMapStatusEnd - MapStatus  	call ByteFill  	callba InitCallReceiveDelay  	call ClearJoypad -	; fallthrough -; 9673e - -  EnterMap: ; 9673e  	xor a  	ld [wd453], a @@ -157,17 +150,15 @@ EnterMap: ; 9673e  	ret  ; 9676d - -Function9676d: ; 9676d +UnusedWait30Frames: ; 9676d  	ld c, 30  	call DelayFrames  	ret  ; 96773 -  HandleMap: ; 96773  	call ResetOverworldDelay -	call Function967c1 +	call HandleMapTimeAndJoypad  	callba HandleCmdQueue ; no need to farcall  	call MapEvents @@ -183,7 +174,6 @@ HandleMap: ; 96773  	ret  ; 96795 -  MapEvents: ; 96795  	ld a, [MapEventStatus]  	ld hl, .jumps @@ -206,7 +196,6 @@ MapEvents: ; 96795  	ret  ; 967af -  MaxOverworldDelay: ; 967af  	db 2  ; 967b0 @@ -226,7 +215,7 @@ NextOverworldFrame: ; 967b7  	ret  ; 967c1 -Function967c1: ; 967c1 +HandleMapTimeAndJoypad: ; 967c1  	ld a, [MapEventStatus]  	cp 1 ; no events  	ret z @@ -281,7 +270,6 @@ Function96812: ; 96812  	ret  ; 9681f -  PlayerEvents: ; 9681f  	xor a @@ -313,7 +301,6 @@ PlayerEvents: ; 9681f  	xor a  	ret -  .ok  	push af  	callba EnableScriptMode @@ -335,7 +322,6 @@ PlayerEvents: ; 9681f  	ret  ; 96867 -  CheckTrainerBattle3: ; 96867  	nop  	nop @@ -351,7 +337,6 @@ CheckTrainerBattle3: ; 96867  	ret  ; 96874 -  CheckTileEvent: ; 96874  ; Check for warps, tile triggers or wild battles. @@ -418,7 +403,6 @@ CheckTileEvent: ; 96874  	ret  ; 968c7 -  CheckWildEncounterCooldown:: ; 968c7  	ld hl, wWildEncounterCooldown  	ld a, [hl] @@ -543,7 +527,6 @@ CheckTimeEvents: ; 9693a  	ret  ; 96974 -  OWPlayerInput: ; 96974  	call PlayerMovement @@ -573,7 +556,6 @@ OWPlayerInput: ; 96974  	ret  ; 96999 -  CheckAPressOW: ; 96999  	ld a, [hJoyPressed]  	and A_BUTTON @@ -588,7 +570,6 @@ CheckAPressOW: ; 96999  	ret  ; 969ac -  PlayTalkObject: ; 969ac  	push de  	ld de, SFX_READ_TEXT_2 @@ -597,7 +578,6 @@ PlayTalkObject: ; 969ac  	ret  ; 969b5 -  TryObjectEvent: ; 969b5  	callba CheckFacingObject  	jr c, .IsObject @@ -704,7 +684,6 @@ TryObjectEvent: ; 969b5  	ret  ; 96a38 -  TryReadSign: ; 96a38  	call CheckFacingSign  	jr c, .IsSign @@ -810,7 +789,6 @@ endr  	ret  ; 96ad8 -  CheckSignFlag: ; 96ad8  	ld hl, EngineBuffer4  	ld a, [hli] @@ -829,7 +807,6 @@ CheckSignFlag: ; 96ad8  	ret  ; 96af0 -  PlayerMovement: ; 96af0  	callba DoPlayerMovement  	ld a, c @@ -896,7 +873,6 @@ PlayerMovement: ; 96af0  	ret  ; 96b30 -  CheckMenuOW: ; 96b30  	xor a  	ld [hMenuReturn], a @@ -928,7 +904,6 @@ CheckMenuOW: ; 96b30  	ret  ; 96b58 -  StartMenuScript: ; 96b58  	callasm StartMenu  	jump StartMenuCallback @@ -956,7 +931,6 @@ SelectMenuCallback: ; 96b66  	end  ; 96b79 -  CountStep: ; 96b79  	; Don't count steps in link communication rooms.  	ld a, [wLinkMode] @@ -1024,7 +998,6 @@ CountStep: ; 96b79  	ret  ; 96bd3 -  .unreferenced: ; 96bd3  	ld a, 7  	scf diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 8e3bd49f0..3c509642c 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -49,7 +49,7 @@ sprite_movement_data: macro  ; 4357 -Function4357:: ; 4357 +DeleteMapObject:: ; 4357  	push bc  	ld hl, OBJECT_MAP_OBJECT_INDEX  	add hl, bc @@ -76,14 +76,14 @@ Function4357:: ; 4357  ; 437b  Function437b: ; 437b -	call Function4386 +	call .CheckObjectStillVisible  	ret c  	call Function43f3  	call Function4427  	ret  ; 4386 -Function4386: ; 4386 +.CheckObjectStillVisible: ; 4386  	ld hl, OBJECT_FLAGS2  	add hl, bc  	res 6, [hl] @@ -143,7 +143,7 @@ Function4386: ; 4386  	add hl, bc  	bit 1, [hl]  	jr nz, .yes2 -	call Function4357 +	call DeleteMapObject  	scf  	ret @@ -167,26 +167,26 @@ Function43f3: ; 43f3  	bit 5, [hl]  	jr nz, .bit5 -	cp STEP_TYPE_STANDING +	cp STEP_TYPE_SLEEP  	jr z, .one  	jr .ok  .zero -	call Function47bc +	call ObjectMovementReset  	ld hl, OBJECT_FLAGS2  	add hl, bc  	bit 5, [hl]  	jr nz, .bit5  .one -	call Function47dd +	call MapObjectMovementPattern  	ld hl, OBJECT_STEP_TYPE  	add hl, bc  	ld a, [hl]  	and a  	ret z -	cp STEP_TYPE_STANDING +	cp STEP_TYPE_SLEEP  	ret z  .ok @@ -553,7 +553,7 @@ Function45ed: ; 45ed  	ret  ; 4600 -Function4600: ; 4600 +CopyNextCoordsTileToStandingCoordsTile: ; 4600  	ld hl, OBJECT_NEXT_MAP_X  	add hl, bc @@ -604,7 +604,7 @@ Function462a: ; 462a  	ret  ; 463f -Function463f: ; 463f +UpdateTallGrassFlags: ; 463f  	ld hl, OBJECT_FLAGS2  	add hl, bc  	bit 3, [hl] ; is current tile grass? @@ -651,7 +651,7 @@ UselessAndA: ; 4679  	ret  ; 467b -Function467b: ; 467b +EndSpriteMovement: ; 467b  	xor a  	ld hl, OBJECT_STEP_FRAME  	add hl, bc @@ -668,7 +668,7 @@ endr  	ret  ; 4690 -Function4690: ; 4690 +InitStep: ; 4690  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], a @@ -676,7 +676,6 @@ Function4690: ; 4690  	add hl, bc  	bit FIXED_FACING, [hl]  	jr nz, GetNextTile -  rept 2  	add a  endr @@ -684,7 +683,6 @@ endr  	ld hl, OBJECT_FACING  	add hl, bc  	ld [hl], a -  GetNextTile: ; 46a6  	call GetStepVector @@ -794,7 +792,7 @@ GetStepVectorSign: ; 4730  	ret    ; 129 - 255  ; 4738 -Function4738: ; 4738 +UpdatePlayerStep: ; 4738  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld a, [hl] @@ -913,7 +911,7 @@ SetValueObjectStructField28: ; 47b6  	ret  ; 47bc -Function47bc: ; 47bc +ObjectMovementReset: ; 47bc  	ld hl, OBJECT_NEXT_MAP_X  	add hl, bc  	ld d, [hl] @@ -926,15 +924,15 @@ Function47bc: ; 47bc  	ld hl, OBJECT_NEXT_TILE  	add hl, bc  	ld [hl], a -	call Function4600 -	call Function467b +	call CopyNextCoordsTileToStandingCoordsTile +	call EndSpriteMovement  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 47dd -Function47dd: ; 47dd +MapObjectMovementPattern: ; 47dd  	call ClearObjectStructField28  	call GetSpriteMovementFunction  	ld a, [hl] @@ -944,34 +942,35 @@ Function47dd: ; 47dd  ; 47e9  .Pointers ; 47e9 -	dw .Null_00 ; 00 -	dw .RandomWalkY ; 01 -	dw .RandomWalkX ; 02 -	dw .RandomWalkXY ; 03 -	dw .RandomSpin1 ; 04 -	dw .RandomSpin2 ; 05 -	dw .Standing ; 06 -	dw .ObeyDPad ; 07 -	dw .Movement08 ; 08 -	dw .Movement09 ; 09 -	dw .Movement0a ; 0a -	dw .Movement0b ; 0b -	dw .Movement0c ; 0c -	dw .Movement0d ; 0d -	dw .Movement0e ; 0e -	dw .Follow ; 0f -	dw .Script ; 10 -	dw .Strength ; 11 -	dw .FollowNotExact ; 12 -	dw .MovementShadow ; 13 -	dw .MovementEmote ; 14 -	dw .MovementBigStanding ; 15 -	dw .MovementBouncing ; 16 -	dw .MovementScreenShake ; 17 -	dw .MovementSpinClockwise ; 18 -	dw .MovementSpinCounterclockwise ; 19 -	dw .MovementBoulderDust ; 1a -	dw .MovementShakingGrass ; 1b +	jumptable_start +	jumptable .Null_00 ; 00 +	jumptable .RandomWalkY ; 01 +	jumptable .RandomWalkX ; 02 +	jumptable .RandomWalkXY ; 03 +	jumptable .RandomSpin1 ; 04 +	jumptable .RandomSpin2 ; 05 +	jumptable .Standing ; 06 +	jumptable .ObeyDPad ; 07 +	jumptable .Movement08 ; 08 +	jumptable .Movement09 ; 09 +	jumptable .Movement0a ; 0a +	jumptable .Movement0b ; 0b +	jumptable .Movement0c ; 0c +	jumptable .Movement0d ; 0d +	jumptable .Movement0e ; 0e +	jumptable .Follow ; 0f +	jumptable .Script ; 10 +	jumptable .Strength ; 11 +	jumptable .FollowNotExact ; 12 +	jumptable .MovementShadow ; 13 +	jumptable .MovementEmote ; 14 +	jumptable .MovementBigStanding ; 15 +	jumptable .MovementBouncing ; 16 +	jumptable .MovementScreenShake ; 17 +	jumptable .MovementSpinClockwise ; 18 +	jumptable .MovementSpinCounterclockwise ; 19 +	jumptable .MovementBoulderDust ; 1a +	jumptable .MovementShakingGrass ; 1b  ; 4821  .Null_00: ; 4821 @@ -1030,7 +1029,7 @@ Function47dd: ; 47dd  .Standing: ; 4869  	call Function462a -	call Function467b +	call EndSpriteMovement  	ld hl, OBJECT_ACTION  	add hl, bc  	ld [hl], PERSON_ACTION_STAND @@ -1110,14 +1109,14 @@ Function47dd: ; 47dd  	ld a, [hl]  	and %00000011  	or 0 -	call Function4690 +	call InitStep  	call Function6ec1  	jr c, .ok2  	ld de, SFX_STRENGTH  	call PlaySFX  	call SpawnStrengthBoulderDust -	call Function463f +	call UpdateTallGrassFlags  	ld hl, OBJECT_STEP_TYPE  	add hl, bc  	ld [hl], STEP_TYPE_0F @@ -1211,7 +1210,7 @@ Function47dd: ; 47dd  ; 4958  .MovementBigStanding: ; 4958 -	call Function467b +	call EndSpriteMovement  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], STANDING @@ -1225,7 +1224,7 @@ Function47dd: ; 47dd  ; 496e  .MovementBouncing: ; 496e -	call Function467b +	call EndSpriteMovement  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], STANDING @@ -1253,7 +1252,7 @@ Function47dd: ; 47dd  ; 4996  .MovementSpinInit: ; 4996 -	call Function467b +	call EndSpriteMovement  	call IncrementObjectMovementByteIndex  .MovementSpinRepeat: ; 499c  	ld hl, OBJECT_ACTION @@ -1329,12 +1328,12 @@ Function47dd: ; 47dd  	add hl, de  	ld a, [hl]  	and 3 -	ld d, $e +	ld d, 1 * 8 + 6  	cp DOWN  	jr z, .ok_13  	cp UP  	jr z, .ok_13 -	ld d, $c +	ld d, 1 * 8 + 4  .ok_13  	ld hl, OBJECT_SPRITE_Y_OFFSET @@ -1345,12 +1344,12 @@ Function47dd: ; 47dd  	ld [hl], 0  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_13 +	ld [hl], STEP_TYPE_TRACKING_OBJECT  	ret  ; 4a21  .MovementEmote: ; 4a21 -	call Function467b +	call EndSpriteMovement  	call ._MovementShadow_Grass_Emote_BoulderDust  	ld hl, OBJECT_ACTION  	add hl, bc @@ -1360,18 +1359,18 @@ Function47dd: ; 47dd  	ld [hl], 0  	ld hl, OBJECT_SPRITE_Y_OFFSET  	add hl, bc -	ld [hl], -$10 +	ld [hl], -2 * 8  	ld hl, OBJECT_SPRITE_X_OFFSET  	add hl, bc  	ld [hl], 0  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_13 +	ld [hl], STEP_TYPE_TRACKING_OBJECT  	ret  ; 4a46  .MovementBoulderDust: ; 4a46 -	call Function467b +	call EndSpriteMovement  	call ._MovementShadow_Grass_Emote_BoulderDust  	ld hl, OBJECT_ACTION  	add hl, bc @@ -1405,7 +1404,7 @@ endr  	ld [hl], e  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_13 +	ld [hl], STEP_TYPE_TRACKING_OBJECT  	ret  ; 4a81 @@ -1418,7 +1417,7 @@ endr  ; 4a89  .MovementShakingGrass: ; 4a89 -	call Function467b +	call EndSpriteMovement  	call ._MovementShadow_Grass_Emote_BoulderDust  	ld hl, OBJECT_ACTION  	add hl, bc @@ -1432,7 +1431,7 @@ endr  	ld [hl], a  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_13 +	ld [hl], STEP_TYPE_TRACKING_OBJECT  	ret  ; 4aa8 @@ -1454,7 +1453,7 @@ endr  ; 4abc  .MovementScreenShake: ; 4abc -	call Function467b +	call EndSpriteMovement  	ld hl, OBJECT_ACTION  	add hl, bc  	ld [hl], PERSON_ACTION_00 @@ -1493,11 +1492,11 @@ endr  ; 4af0  .RandomWalkContinue: ; 4af0 -	call Function4690 +	call InitStep  	call Function6ec1 ; check whether the object can move in that direction  	jr c, .NewDuration -	call Function463f +	call UpdateTallGrassFlags  	ld hl, OBJECT_ACTION  	add hl, bc  	ld [hl], PERSON_ACTION_STEP @@ -1519,7 +1518,7 @@ endr  	ret  .NewDuration: ; 4b17 -	call Function467b +	call EndSpriteMovement  	call Function462a  RandomStepDuration_Slow: ; 4b1d  	call Random @@ -1550,32 +1549,33 @@ SetRandomStepDuration: ; 4b2d  Pointers4b45: ; 4b45  ; These pointers use OBJECT_STEP_TYPE.  See constants/sprite_constants.asm -	dw Function47bc ; 00 -	dw Function47dd ; 01 -	dw Function4e2b ; 02 npc walk -	dw Function4ddd ; 03 -	dw Function4e21 ; 04 -	dw Function4e0c ; 05 -	dw Function4e56 ; 06 player walk -	dw Function4e47 ; 07 -	dw Function4b86 ; 08 npc jump step -	dw Function4bbf ; 09 player jump step -	dw Function4e83 ; 0a half step -	dw Function4dff ; 0b -	dw Function4c18 ; 0c teleport from -	dw Function4c89 ; 0d teleport to -	dw Function4d14 ; 0e skyfall -	dw Function4ecd ; 0f -	dw Function4d7e ; 10 -	dw Function4daf ; 11 -	dw Function4dc8 ; 12 -	dw Function4f04 ; 13 -	dw Function4f33 ; 14 -	dw Function4f33 ; 15 -	dw Function4f77 ; 16 -	dw Function4f7a ; 17 -	dw Function4df0 ; 18 -	dw Function4f83 ; 19 +	jumptable_start +	jumptable ObjectMovementReset ; 00 +	jumptable MapObjectMovementPattern ; 01 +	jumptable NPCStep ; 02 npc walk +	jumptable Function4ddd ; 03 +	jumptable Function4e21 ; 04 +	jumptable Function4e0c ; 05 +	jumptable PlayerStep ; 06 player walk +	jumptable Function4e47 ; 07 +	jumptable NPCJump ; 08 npc jump step +	jumptable PlayerJump ; 09 player jump step +	jumptable PlayerOrNPCHalfStep ; 0a half step +	jumptable Function4dff ; 0b +	jumptable TeleportFrom ; 0c teleport from +	jumptable TeleportTo ; 0d teleport to +	jumptable Skyfall ; 0e skyfall +	jumptable Function4ecd ; 0f +	jumptable GotBiteStep ; 10 +	jumptable RockSmashStep ; 11 +	jumptable ReturnDigStep ; 12 +	jumptable Function4f04 ; 13 +	jumptable Function4f33 ; 14 +	jumptable Function4f33 ; 15 +	jumptable Function4f77 ; 16 +	jumptable Function4f7a ; 17 +	jumptable Function4df0 ; 18 +	jumptable SkyfallTop ; 19  ; 4b79  Function4b79: ; 4b79 @@ -1585,11 +1585,11 @@ Function4b79: ; 4b79  	ret nz  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4b86 -Function4b86: ; 4b86 +NPCJump: ; 4b86  	call Object28AnonymousJumptable  ; anonymous jumptable  	dw Function4b8d @@ -1603,7 +1603,7 @@ Function4b8d: ; 4b8d  	add hl, bc  	dec [hl]  	ret nz -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	call GetNextTile  	ld hl, OBJECT_FLAGS2  	add hl, bc @@ -1619,34 +1619,34 @@ Function4ba9: ; 4ba9  	add hl, bc  	dec [hl]  	ret nz -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4bbf -Function4bbf: ; 4bbf +PlayerJump: ; 4bbf  	call Object28AnonymousJumptable  ; anonymous jumptable -	dw Function4bca -	dw Function4bd2 -	dw Function4bf2 -	dw Function4bfd +	dw .initjump +	dw .stepjump +	dw .initland +	dw .stepland  ; 4bca -Function4bca: ; 4bca +.initjump: ; 4bca  	ld hl, wPlayerStepFlags  	set 7, [hl]  	call IncrementObjectStructField28 -Function4bd2: ; 4bd2 +.stepjump: ; 4bd2  	call UpdateJumpPosition -	call Function4738 +	call UpdatePlayerStep  	ld hl, OBJECT_STEP_DURATION  	add hl, bc  	dec [hl]  	ret nz -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	ld hl, OBJECT_FLAGS2  	add hl, bc  	res 3, [hl] @@ -1657,28 +1657,28 @@ Function4bd2: ; 4bd2  	ret  ; 4bf2 -Function4bf2: ; 4bf2 +.initland: ; 4bf2  	call GetNextTile  	ld hl, wPlayerStepFlags  	set 7, [hl]  	call IncrementObjectStructField28 -Function4bfd: ; 4bfd +.stepland: ; 4bfd  	call UpdateJumpPosition -	call Function4738 +	call UpdatePlayerStep  	ld hl, OBJECT_STEP_DURATION  	add hl, bc  	dec [hl]  	ret nz  	ld hl, wPlayerStepFlags  	set 6, [hl] -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4c18 -Function4c18: ; 4c18 +TeleportFrom: ; 4c18  	call Object28AnonymousJumptable  ; anonymous jumptable  	dw Function4c23 @@ -1745,11 +1745,11 @@ Function4c5d: ; 4c5d  	ld [hl], 0  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4c89 -Function4c89: ; 4c89 +TeleportTo: ; 4c89  	call Object28AnonymousJumptable  ; anonymous jumptable  	dw Function4c9a @@ -1837,11 +1837,11 @@ Function4d01: ; 4d01  	ld [hl], 0  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4d14 -Function4d14: ; 4d14 +Skyfall: ; 4d14  	call Object28AnonymousJumptable  ; anonymous jumptable  	dw Function4d1f @@ -1902,11 +1902,11 @@ Function4d6b: ; 4d6b  	ld [hl], 0  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4d7e -Function4d7e: ; 4d7e +GotBiteStep: ; 4d7e  	call Object28AnonymousJumptable  ; anonymous jumptable  	dw Function4d85 @@ -1936,11 +1936,11 @@ Function4d94: ; 4d94  	ld [hl], 0  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4daf -Function4daf: ; 4daf +RockSmashStep: ; 4daf  	call Function4db5  	jp Function4b79  ; 4db5 @@ -1961,7 +1961,7 @@ Function4db5: ; 4db5  	ret  ; 4dc8 -Function4dc8: ; 4dc8 +ReturnDigStep: ; 4dc8  	ld hl, OBJECT_STEP_DURATION  	add hl, bc  	ld a, [hl] @@ -1987,7 +1987,7 @@ Function4ddd: ; 4ddd  	ret nz  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4df0 @@ -1999,7 +1999,7 @@ Function4df0: ; 4df0  	add hl, bc  	dec [hl]  	ret nz -	jp Function4357 +	jp DeleteMapObject  ; 4dff  Function4dff: ; 4dff @@ -2009,7 +2009,7 @@ Function4dff: ; 4dff  	ret nz  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4e0c @@ -2028,27 +2028,27 @@ Function4e13: ; 4e13  	ld [hl], a  	call IncrementObjectStructField28  Function4e21: ; 4e21 -	call Function4fb2 +	call MobileFn_4fb2  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], STANDING  	ret  ; 4e2b -Function4e2b: ; 4e2b -	call Function4fb2 +NPCStep: ; 4e2b +	call MobileFn_4fb2  	call AddStepVector  	ld hl, OBJECT_STEP_DURATION  	add hl, bc  	dec [hl]  	ret nz -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], STANDING  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4e47 @@ -2058,24 +2058,24 @@ Function4e47: ; 4e47  	add hl, bc  	dec [hl]  	ret nz -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	jp RandomStepDuration_Slow  ; 4e56 -Function4e56: ; 4e56 +PlayerStep: ; 4e56  ; AnimateStep?  	call Object28AnonymousJumptable  ; anonymous jumptable -	dw Function4e5d -	dw Function4e65 +	dw .init +	dw .step  ; 4e5d -Function4e5d: ; 4e5d +.init: ; 4e5d  	ld hl, wPlayerStepFlags  	set 7, [hl]  	call IncrementObjectStructField28 -Function4e65: ; 4e65 -	call Function4738 +.step: ; 4e65 +	call UpdatePlayerStep  	ld hl, OBJECT_STEP_DURATION  	add hl, bc  	dec [hl] @@ -2083,26 +2083,26 @@ Function4e65: ; 4e65  	ld hl, wPlayerStepFlags  	set 6, [hl] -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], STANDING  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4e83 -Function4e83: ; 4e83 +PlayerOrNPCHalfStep: ; 4e83  	call Object28AnonymousJumptable  ; anonymous jumptable -	dw Function4e8e -	dw Function4ea4 -	dw Function4ead -	dw Function4ec0 +	dw .init1 +	dw .step1 +	dw .init2 +	dw .step2  ; 4e8e -Function4e8e: ; 4e8e +.init1: ; 4e8e  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], STANDING @@ -2114,14 +2114,14 @@ Function4e8e: ; 4e8e  	add hl, bc  	ld [hl], 2  	call IncrementObjectStructField28 -Function4ea4: ; 4ea4 +.step1: ; 4ea4  	ld hl, OBJECT_STEP_DURATION  	add hl, bc  	dec [hl]  	ret nz  	call IncrementObjectStructField28 -Function4ead: ; 4ead -	ld hl, OBJECT_29 +.init2: ; 4ead +	ld hl, OBJECT_29 ; new facing  	add hl, bc  	ld a, [hl]  	ld hl, OBJECT_FACING @@ -2129,16 +2129,16 @@ Function4ead: ; 4ead  	ld [hl], a  	ld hl, OBJECT_STEP_DURATION  	add hl, bc -	ld [hl], $2 +	ld [hl], 2  	call IncrementObjectStructField28 -Function4ec0: ; 4ec0 +.step2: ; 4ec0  	ld hl, OBJECT_STEP_DURATION  	add hl, bc  	dec [hl]  	ret nz  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4ecd @@ -2164,13 +2164,13 @@ Function4ecd: ; 4ecd  	ld hl, OBJECT_FLAGS2  	add hl, bc  	res 2, [hl] -	call Function4600 +	call CopyNextCoordsTileToStandingCoordsTile  	ld hl, OBJECT_DIRECTION_WALKING  	add hl, bc  	ld [hl], STANDING  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4f04 @@ -2206,7 +2206,7 @@ Function4f04: ; 4f04  	ret nz  .nope -	jp Function4357 +	jp DeleteMapObject  ; 4f33  Function4f33: ; 4f33 @@ -2245,7 +2245,7 @@ Function4f43: ; 4f43  	ret  .ok -	call Function4357 +	call DeleteMapObject  	ret  ; 4f6c @@ -2267,12 +2267,12 @@ Function4f77: ; 4f77  Function4f7a: ; 4f7a  	call Object28AnonymousJumptable  ; anonymous jumptable -	dw Function4f83 -	dw Function4f83 -	dw Function4f83 +	dw SkyfallTop +	dw SkyfallTop +	dw SkyfallTop  ; 4f83 -Function4f83: ; 4f83 +SkyfallTop: ; 4f83  	call Object28AnonymousJumptable  ; anonymous jumptable  	dw Function4f8a @@ -2302,15 +2302,11 @@ Function4f99: ; 4f99  	ld [hl], 0  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 4fb2 -Function4fb2: ; 4fb2 -	ret -; 4fb3 - -Function4fb3: ; 4fb3 +MobileFn_4fb2: mobile  	ld hl, OBJECT_29  	add hl, bc  	inc [hl] @@ -2839,7 +2835,7 @@ Function5688: ; 5688  	ld hl, OBJECT_NEXT_TILE  	add hl, bc  	ld [hl], a -	callba Function463f ; no need to farcall +	callba UpdateTallGrassFlags ; no need to farcall  	ret  ; 56a3 @@ -2996,12 +2992,12 @@ Function56cd: ; 56cd  ; 576a  Function576a:: ; 576a -	call Function5771 +	call .ResetStepVector  	call Function5781  	ret  ; 5771 -Function5771: ; 5771 +.ResetStepVector: ; 5771  	xor a  	ld [wPlayerStepVectorX], a  	ld [wPlayerStepVectorY], a diff --git a/engine/movement.asm b/engine/movement.asm index 40f3d7b27..fc297cfee 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -193,7 +193,7 @@ Movement_fish_cast_rod: ; 51ab  	ld [hl], PERSON_ACTION_FISHING  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 51b8 @@ -219,7 +219,7 @@ Movement_step_end: ; 51c1  	ld hl, OBJECT_STEP_TYPE  	add hl, bc -	ld [hl], STEP_TYPE_STANDING +	ld [hl], STEP_TYPE_SLEEP  	ret  ; 51db @@ -248,7 +248,7 @@ Movement_48: ; 51db  ; 51fd  Movement_remove_person: ; 51fd -	call Function4357 +	call DeleteMapObject  	ld hl, wObjectFollow_Leader  	ld a, [hMapObjectIndexBuffer]  	cp [hl] @@ -726,7 +726,7 @@ Movement_half_step_right: ; 53fc  	jr HalfStep  HalfStep: ; 5400 -	ld hl, OBJECT_29 +	ld hl, OBJECT_29 ; new facing  	add hl, bc  	ld [hl], a @@ -741,8 +741,8 @@ HalfStep: ; 5400  ; 5412  NormalStep: ; 5412 -	call Function4690 -	call Function463f +	call InitStep +	call UpdateTallGrassFlags  	ld hl, OBJECT_ACTION  	add hl, bc  	ld [hl], PERSON_ACTION_STEP @@ -778,8 +778,8 @@ NormalStep: ; 5412  ; 5446  TurningStep: ; 5446 -	call Function4690 -	call Function463f +	call InitStep +	call UpdateTallGrassFlags  	ld hl, OBJECT_ACTION  	add hl, bc @@ -804,8 +804,8 @@ TurningStep: ; 5446  SlideStep: ; 5468 -	call Function4690 -	call Function463f +	call InitStep +	call UpdateTallGrassFlags  	ld hl, OBJECT_ACTION  	add hl, bc @@ -830,7 +830,7 @@ SlideStep: ; 5468  JumpStep: ; 548a -	call Function4690 +	call InitStep  	ld hl, OBJECT_31  	add hl, bc  	ld [hl], $0 diff --git a/home/map_objects.asm b/home/map_objects.asm index 67a6c52d5..855e0af39 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -369,7 +369,7 @@ Function1967:: ; 1967  	call Function1985  	pop af  	call GetObjectStruct -	callba Function4357 +	callba DeleteMapObject  	ret  ; 1985 @@ -435,7 +435,7 @@ Function19b8:: ; 19b8  .ok  	ld a, b  	call GetObjectStruct -	callba Function4357 +	callba DeleteMapObject  	ret  ; 19e9 @@ -2417,7 +2417,8 @@ wReceiveCallDelay_StartTime:: ds 3  	ds 3  wBugContestMinsRemaining:: ds 1  wBugContestSecsRemaining:: ds 1 -	ds 4 +	ds 2 +wMapStatusEnd:: ds 2 ; d470  wCrystalData::  PlayerGender:: ; d472 | 
