StepTypesJumptable: ; 4b1e dw ObjectMovementReset dw MapObjectMovementPattern dw Function4e02 dw Function4db4 dw Function4df8 dw Function4de3 dw Function4e2d dw Function4e1e dw Function4b5d dw Function4b96 dw Function4e5a dw Function4dd6 dw Function4bef dw Function4c60 dw Function4ceb dw Function4ea4 dw Function4d55 dw Function4d86 dw Function4d9f dw Function4edb dw Function4f0a dw Function4f0a dw Function4f4e dw Function4f51 dw Function4dc7 Function4b50: ; 4b50 (1:4b50) ld hl, $a add hl, bc dec [hl] ret nz ld hl, $9 add hl, bc ld [hl], $1 ret Function4b5d: ; 4b5d (1:4b5d) call Object28AnonymousJumptable dw Function4b64 dw Function4b80 Function4b64: call AddStepVector call Function4f7d ld hl, $a add hl, bc dec [hl] ret nz call CopyNextCoordsTileToStandingCoordsTile call GetNextTile ld hl, $5 add hl, bc res 3, [hl] call IncrementObjectStructField28 ret Function4b80: call AddStepVector call Function4f7d ld hl, $a add hl, bc dec [hl] ret nz call CopyNextCoordsTileToStandingCoordsTile ld hl, $9 add hl, bc ld [hl], $1 ret Function4b96: ; 4b96 (1:4b96) call Object28AnonymousJumptable dw Function4ba1 dw Function4ba9 dw Function4bc9 dw Function4bd4 Function4ba1: ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 Function4ba9: call Function4f7d call UpdatePlayerStep ld hl, $a add hl, bc dec [hl] ret nz call CopyNextCoordsTileToStandingCoordsTile ld hl, $5 add hl, bc res 3, [hl] ld hl, wPlayerStepFlags set 6, [hl] set 4, [hl] call IncrementObjectStructField28 ret Function4bc9: call GetNextTile ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 Function4bd4: call Function4f7d call UpdatePlayerStep ld hl, $a add hl, bc dec [hl] ret nz ld hl, wPlayerStepFlags set 6, [hl] call CopyNextCoordsTileToStandingCoordsTile ld hl, $9 add hl, bc ld [hl], $1 ret Function4bef: ; 4bef (1:4bef) call Object28AnonymousJumptable dw Function4bfa dw Function4c09 dw Function4c19 dw Function4c34 Function4bfa: ld hl, $c add hl, bc ld [hl], $0 ld hl, $a add hl, bc ld [hl], $10 call IncrementObjectStructField28 Function4c09: ld hl, $b add hl, bc ld [hl], $4 ld hl, $a add hl, bc dec [hl] ret nz call IncrementObjectStructField28 ret Function4c19: ld hl, $c add hl, bc ld [hl], $0 ld hl, $1f add hl, bc ld [hl], $10 ld hl, $a add hl, bc ld [hl], $10 ld hl, $5 add hl, bc res 3, [hl] call IncrementObjectStructField28 Function4c34: ld hl, $b add hl, bc ld [hl], $4 ld hl, $1f add hl, bc inc [hl] ld a, [hl] ld d, $60 call Sine ld a, h sub $60 ld hl, $1a add hl, bc ld [hl], a ld hl, $a add hl, bc dec [hl] ret nz ld hl, $c add hl, bc ld [hl], $0 ld hl, $9 add hl, bc ld [hl], $1 ret Function4c60: ; 4c60 (1:4c60) call Object28AnonymousJumptable dw Function4c71 dw Function4c81 dw Function4c8a dw Function4ca0 dw Function4cc2 dw Function4ccc dw Function4cd8 Function4c71: ld hl, $b add hl, bc ld [hl], $0 ld hl, $a add hl, bc ld [hl], $10 call IncrementObjectStructField28 ret Function4c81: ld hl, $a add hl, bc dec [hl] ret nz call IncrementObjectStructField28 Function4c8a: ld hl, $c add hl, bc ld [hl], $0 ld hl, $1f add hl, bc ld [hl], $0 ld hl, $a add hl, bc ld [hl], $10 call IncrementObjectStructField28 ret Function4ca0: ld hl, $b add hl, bc ld [hl], $4 ld hl, $1f add hl, bc inc [hl] ld a, [hl] ld d, $60 call Sine ld a, h sub $60 ld hl, $1a add hl, bc ld [hl], a ld hl, $a add hl, bc dec [hl] ret nz call IncrementObjectStructField28 Function4cc2: ld hl, $a add hl, bc ld [hl], $10 call IncrementObjectStructField28 ret Function4ccc: ld hl, $b add hl, bc ld [hl], $4 ld hl, $a add hl, bc dec [hl] ret nz Function4cd8: ld hl, $c add hl, bc ld [hl], $0 ld hl, $1a add hl, bc ld [hl], $0 ld hl, $9 add hl, bc ld [hl], $1 ret Function4ceb: ; 4ceb (1:4ceb) call Object28AnonymousJumptable dw Function4cf6 dw Function4d05 dw Function4d26 dw Function4d42 Function4cf6: ld hl, $b add hl, bc ld [hl], $0 ld hl, $a add hl, bc ld [hl], $10 call IncrementObjectStructField28 Function4d05: ld hl, $a add hl, bc dec [hl] ret nz ld hl, $b add hl, bc ld [hl], $2 ld hl, $c add hl, bc ld [hl], $0 ld hl, $1f add hl, bc ld [hl], $0 ld hl, $a add hl, bc ld [hl], $10 call IncrementObjectStructField28 Function4d26: ld hl, $1f add hl, bc inc [hl] ld a, [hl] ld d, $60 call Sine ld a, h sub $60 ld hl, $1a add hl, bc ld [hl], a ld hl, $a add hl, bc dec [hl] ret nz call IncrementObjectStructField28 Function4d42: ld hl, $c add hl, bc ld [hl], $0 ld hl, $1a add hl, bc ld [hl], $0 ld hl, $9 add hl, bc ld [hl], $1 ret Function4d55: ; 4d55 (1:4d55) call Object28AnonymousJumptable dw Function4d5c dw Function4d6b Function4d5c: ld hl, $a add hl, bc ld [hl], $8 ld hl, $1a add hl, bc ld [hl], $0 call IncrementObjectStructField28 Function4d6b: ld hl, $1a add hl, bc ld a, [hl] xor $1 ld [hl], a ld hl, $a add hl, bc dec [hl] ret nz ld hl, $1a add hl, bc ld [hl], $0 ld hl, $9 add hl, bc ld [hl], $1 ret Function4d86: ; 4d86 (1:4d86) call Function4d8c jp Function4b50 Function4d8c: ; 4d8c (1:4d8c) ld hl, $a add hl, bc ld a, [hl] and $1 ld a, $1 jr z, .asm_4d99 ld a, $0 .asm_4d99 ld hl, $b add hl, bc ld [hl], a ret Function4d9f: ; 4d9f (1:4d9f) ld hl, $a add hl, bc ld a, [hl] and $1 ld a, $4 jr z, .asm_4dac ld a, $5 .asm_4dac ld hl, $b add hl, bc ld [hl], a jp Function4b50 Function4db4: ; 4db4 (1:4db4) ld hl, $7 add hl, bc ld [hl], $ff ld hl, $a add hl, bc dec [hl] ret nz ld hl, $9 add hl, bc ld [hl], $1 ret Function4dc7: ; 4dc7 (1:4dc7) ld hl, $7 add hl, bc ld [hl], $ff ld hl, $a add hl, bc dec [hl] ret nz jp DeleteMapObject Function4dd6: ; 4dd6 (1:4dd6) ld hl, $a add hl, bc dec [hl] ret nz ld hl, $9 add hl, bc ld [hl], $1 ret Function4de3: ; 4de3 (1:4de3) call Object28AnonymousJumptable dw Function4dea dw Function4df8 Function4dea: call RestoreDefaultMovement call GetInitialFacing ld hl, $8 add hl, bc ld [hl], a call IncrementObjectStructField28 Function4df8: ; 4df8 (1:4df8) call Function4f5a ld hl, $7 add hl, bc ld [hl], $ff ret Function4e02: ; 4e02 (1:4e02) call Function4f5a call AddStepVector ld hl, $a add hl, bc dec [hl] ret nz call CopyNextCoordsTileToStandingCoordsTile ld hl, $7 add hl, bc ld [hl], $ff ld hl, $9 add hl, bc ld [hl], $1 ret Function4e1e: ; 4e1e (1:4e1e) call AddStepVector ld hl, $a add hl, bc dec [hl] ret nz call CopyNextCoordsTileToStandingCoordsTile jp Function4af6 Function4e2d: ; 4e2d (1:4e2d) call Object28AnonymousJumptable dw Function4e34 dw Function4e3c Function4e34: ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 Function4e3c: call UpdatePlayerStep ld hl, $a add hl, bc dec [hl] ret nz ld hl, wPlayerStepFlags set 6, [hl] call CopyNextCoordsTileToStandingCoordsTile ld hl, $7 add hl, bc ld [hl], $ff ld hl, $9 add hl, bc ld [hl], $1 ret Function4e5a: ; 4e5a (1:4e5a) call Object28AnonymousJumptable dw Function4e65 dw Function4e7b dw Function4e84 dw Function4e97 Function4e65: ld hl, $7 add hl, bc ld [hl], $ff ld hl, $c add hl, bc ld a, [hl] ld [hl], $2 ld hl, $a add hl, bc ld [hl], $2 call IncrementObjectStructField28 Function4e7b: ld hl, $a add hl, bc dec [hl] ret nz call IncrementObjectStructField28 Function4e84: ld hl, $1d add hl, bc ld a, [hl] ld hl, $8 add hl, bc ld [hl], a ld hl, $a add hl, bc ld [hl], $2 call IncrementObjectStructField28 Function4e97: ld hl, $a add hl, bc dec [hl] ret nz ld hl, $9 add hl, bc ld [hl], $1 ret Function4ea4: ; 4ea4 (1:4ea4) call AddStepVector ld hl, $a add hl, bc dec [hl] ret nz push bc ld hl, $10 add hl, bc ld d, [hl] ld hl, $11 add hl, bc ld e, [hl] ld hl, $1 add hl, bc ld a, [hl] ld b, a farcall CopyDECoordsToMapObject pop bc ld hl, $5 add hl, bc res 2, [hl] call CopyNextCoordsTileToStandingCoordsTile ld hl, $7 add hl, bc ld [hl], $ff ld hl, $9 add hl, bc ld [hl], $1 ret Function4edb: ; 4edb (1:4edb) ld hl, $1d add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $0 add hl, de ld a, [hl] and a jr z, .asm_4f07 ld hl, $17 add hl, de ld a, [hl] ld hl, $17 add hl, bc ld [hl], a ld hl, $18 add hl, de ld a, [hl] ld hl, $18 add hl, bc ld [hl], a ld hl, $a add hl, bc ld a, [hl] and a ret z dec [hl] ret nz .asm_4f07 jp DeleteMapObject Function4f0a: ; 4f0a (1:4f0a) call Object28AnonymousJumptable dw Function4f11 dw Function4f1a Function4f11: xor a ld hl, $1d add hl, bc ld [hl], a call IncrementObjectStructField28 Function4f1a: ld hl, $1d add hl, bc ld d, [hl] ld a, [wPlayerStepVectorY] sub d ld [wPlayerStepVectorY], a ld hl, $a add hl, bc dec [hl] jr z, .asm_4f3f ld a, [hl] call Function4f43 ld hl, $1d add hl, bc ld [hl], a ld d, a ld a, [wPlayerStepVectorY] add d ld [wPlayerStepVectorY], a ret .asm_4f3f call DeleteMapObject ret Function4f43: ; 4f43 (1:4f43) ld hl, $1e add hl, bc and $1 ld a, [hl] ret z cpl inc a ret Function4f4e: ; 4f4e (1:4f4e) call Object28AnonymousJumptable Function4f51: ; 4f51 (1:4f51) call Object28AnonymousJumptable dw Function4f5a dw Function4f5a dw Function4f5a Function4f5a: ; 4f5a (1:4f5a) ret Function4f5b: ld hl, $1d add hl, bc inc [hl] ld a, [hl] srl a srl a and $7 ld l, a ld h, $0 ld de, .data add hl, de ld a, [hl] ld hl, $1a add hl, bc ld [hl], a ret .data db 0, -1, -2, -3, -4, -3, -2, -1 Function4f7d: ; 4f7d (1:4f7d) call GetStepVector ld a, h ld hl, $1f add hl, bc ld e, [hl] add e ld [hl], a nop srl e ld d, $0 ld hl, .data add hl, de ld a, [hl] ld hl, $1a add hl, bc ld [hl], a ret .data db -4, -6, -8, -10, -11, -12, -12, -12 db -11, -10, -9, -8, -6, -4, 0, 0 Function4fa8: ld a, [wce87] ld hl, wce88 ld [hl], a ld a, $3e ld [wce87], a ld a, [hl] ret