diff options
Diffstat (limited to 'engine/overworld/npc_movement.asm')
-rwxr-xr-x | engine/overworld/npc_movement.asm | 169 |
1 files changed, 84 insertions, 85 deletions
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index 2cf6fea9..84e39853 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -1,25 +1,25 @@ -Func_1a3e0: ; 1a3e0 (6:63e0) +PlayerStepOutFromDoor: ; 1a3e0 (6:63e0) ld hl, wd730 res 1, [hl] - call HandleDoors - jr nc, .asm_1a406 + call IsPlayerStandingOnDoorTile + jr nc, .notStandingOnDoor ld a, $fc ld [wJoyIgnore], a ld hl, wd736 set 1, [hl] ld a, $1 - ld [wcd38], a - ld a, $80 - ld [wccd3], a + ld [wSimulatedJoypadStatesIndex], a + ld a, D_DOWN + ld [wSimulatedJoypadStatesEnd], a xor a ld [wSpriteStateData1 + 2], a - call Func_3486 + call StartSimulatingJoypadStates ret -.asm_1a406 +.notStandingOnDoor xor a - ld [wcd3a], a - ld [wcd38], a - ld [wccd3], a + ld [wWastedByteCD3A], a + ld [wSimulatedJoypadStatesIndex], a + ld [wSimulatedJoypadStatesEnd], a ld hl, wd736 res 0, [hl] res 1, [hl] @@ -27,7 +27,7 @@ Func_1a3e0: ; 1a3e0 (6:63e0) res 7, [hl] ret -Func_1a41d: ; 1a41d (6:641d) +_EndNPCMovementScript: ; 1a41d (6:641d) ld hl, wd730 res 7, [hl] ld hl, wd72e @@ -36,15 +36,15 @@ Func_1a41d: ; 1a41d (6:641d) res 0, [hl] res 1, [hl] xor a - ld [wcf17], a - ld [wcc57], a - ld [wcf10], a - ld [wcd3a], a - ld [wcd38], a - ld [wccd3], a + ld [wNPCMovementScriptSpriteOffset], a + ld [wNPCMovementScriptPointerTableNum], a + ld [wNPCMovementScriptFunctionNum], a + ld [wWastedByteCD3A], a + ld [wSimulatedJoypadStatesIndex], a + ld [wSimulatedJoypadStatesEnd], a ret -PointerTable_1a442: ; 1a442 (6:6442) +ProfOakMovementScriptPointerTable: ; 1a442 (6:6442) dw Func_1a44c dw Func_1a485 dw Func_1a4a1 @@ -58,20 +58,20 @@ Func_1a44c: ; 1a44c (6:644c) jr z, .asm_1a475 ld b, $0 ld c, a - ld hl, wcc97 + ld hl, wNPCMovementDirections2 ld a, $80 call FillMemory ld [hl], $ff - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c - ld de, wcc97 + ld de, wNPCMovementDirections2 call MoveSprite ld a, $1 - ld [wcf10], a + ld [wNPCMovementScriptFunctionNum], a jr .asm_1a47a .asm_1a475 ld a, $3 - ld [wcf10], a + ld [wNPCMovementScriptFunctionNum], a .asm_1a47a ld hl, W_FLAGS_D733 set 1, [hl] @@ -84,44 +84,44 @@ Func_1a485: ; 1a485 (6:6485) bit 0, a ret nz ld a, [wcca1] - ld [wcd38], a + ld [wSimulatedJoypadStatesIndex], a ld [$ff95], a - predef Func_f9a0 - call Func_3486 + predef ConvertNPCMovementDirectionsToJoypadMasks + call StartSimulatingJoypadStates ld a, $2 - ld [wcf10], a + ld [wNPCMovementScriptFunctionNum], a ret Func_1a4a1: ; 1a4a1 (6:64a1) - ld a, [wcd38] + ld a, [wSimulatedJoypadStatesIndex] and a ret nz Func_1a4a6: ; 1a4a6 (6:64a6) xor a - ld [wcd3b], a - ld a, [wcf13] + ld [wOverrideSimulatedJoypadStatesMask], a + ld a, [wSpriteIndex] swap a - ld [wcf17], a + ld [wNPCMovementScriptSpriteOffset], a xor a ld [wSpriteStateData2 + $06], a - ld hl, wccd3 - ld de, RLEList_1a4e9 + ld hl, wSimulatedJoypadStatesEnd + ld de, RLEList_PlayerWalkToLab call DecodeRLEList dec a - ld [wcd38], a - ld hl, wcc97 - ld de, RLEList_1a4dc + ld [wSimulatedJoypadStatesIndex], a + ld hl, wNPCMovementDirections2 + ld de, RLEList_ProfOakWalkToLab call DecodeRLEList ld hl, wd72e res 7, [hl] ld hl, wd730 set 7, [hl] ld a, $4 - ld [wcf10], a + ld [wNPCMovementScriptFunctionNum], a ret -RLEList_1a4dc: ; 1a4dc (6:64dc) +RLEList_ProfOakWalkToLab: ; 1a4dc (6:64dc) db $00, $05 db $80, $01 db $00, $05 @@ -130,16 +130,16 @@ RLEList_1a4dc: ; 1a4dc (6:64dc) db $E0, $01 db $FF -RLEList_1a4e9: ; 1a4e9 (6:64e9) - db $40, $02 - db $10, $03 - db $80, $05 - db $20, $01 - db $80, $06 +RLEList_PlayerWalkToLab: ; 1a4e9 (6:64e9) + db D_UP, $02 + db D_RIGHT, $03 + db D_DOWN, $05 + db D_LEFT, $01 + db D_DOWN, $06 db $FF Func_1a4f4: ; 1a4f4 (6:64f4) - ld a, [wcd38] + ld a, [wSimulatedJoypadStatesIndex] and a ret nz ld a, $0 @@ -149,11 +149,11 @@ Func_1a4f4: ; 1a4f4 (6:64f4) res 7, [hl] ld hl, wd72e res 7, [hl] - jp Func_314e + jp EndNPCMovementScript -PointerTable_1a510: ; 1a510 (6:6510) +PewterMuseumGuyMovementScriptPointerTable: ; 1a510 (6:6510) dw Func_1a514 - dw Func_1a56b + dw PewterMovementScriptDone Func_1a514: ; 1a514 (6:6514) ld a, BANK(Music_MuseumGuy) @@ -162,32 +162,32 @@ Func_1a514: ; 1a514 (6:6514) ld a, MUSIC_MUSEUM_GUY ld [wc0ee], a call PlaySound - ld a, [wcf13] + ld a, [wSpriteIndex] swap a - ld [wcf17], a - call Func_3486 - ld hl, wccd3 + ld [wNPCMovementScriptSpriteOffset], a + call StartSimulatingJoypadStates + ld hl, wSimulatedJoypadStatesEnd ld de, RLEList_PewterMuseumPlayer call DecodeRLEList dec a - ld [wcd38], a + ld [wSimulatedJoypadStatesIndex], a xor a ld [wd12f], a predef PewterGuys - ld hl, wcc97 + ld hl, wNPCMovementDirections2 ld de, RLEList_PewterMuseumGuy call DecodeRLEList ld hl, wd72e res 7, [hl] ld a, $1 - ld [wcf10], a + ld [wNPCMovementScriptFunctionNum], a ret RLEList_PewterMuseumPlayer: ; 1a559 (6:6559) - db $00, $01 - db $40, $03 - db $20, $0D - db $40, $06 + db 0, $01 + db D_UP, $03 + db D_LEFT, $0D + db D_UP, $06 db $FF RLEList_PewterMuseumGuy: ; 1a562 (6:6562) @@ -197,19 +197,19 @@ RLEList_PewterMuseumGuy: ; 1a562 (6:6562) db $80, $01 db $FF -Func_1a56b: ; 1a56b (6:656b) - ld a, [wcd38] +PewterMovementScriptDone: ; 1a56b (6:656b) + ld a, [wSimulatedJoypadStatesIndex] and a ret nz ld hl, wd730 res 7, [hl] ld hl, wd72e res 7, [hl] - jp Func_314e + jp EndNPCMovementScript -PointerTable_1a57d: ; 1a57d (6:657d) +PewterGymGuyMovementScriptPointerTable: ; 1a57d (6:657d) dw Func_1a581 - dw Func_1a56b + dw PewterMovementScriptDone Func_1a581: ; 1a581 (6:6581) ld a, BANK(Music_MuseumGuy) @@ -218,20 +218,20 @@ Func_1a581: ; 1a581 (6:6581) ld a, MUSIC_MUSEUM_GUY ld [wc0ee], a call PlaySound - ld a, [wcf13] + ld a, [wSpriteIndex] swap a - ld [wcf17], a + ld [wNPCMovementScriptSpriteOffset], a xor a ld [wSpriteStateData2 + $06], a - ld hl, wccd3 + ld hl, wSimulatedJoypadStatesEnd ld de, RLEList_PewterGymPlayer call DecodeRLEList dec a - ld [wcd38], a + ld [wSimulatedJoypadStatesIndex], a ld a, $1 ld [wd12f], a predef PewterGuys - ld hl, wcc97 + ld hl, wNPCMovementDirections2 ld de, RLEList_PewterGymGuy call DecodeRLEList ld hl, wd72e @@ -239,16 +239,16 @@ Func_1a581: ; 1a581 (6:6581) ld hl, wd730 set 7, [hl] ld a, $1 - ld [wcf10], a + ld [wNPCMovementScriptFunctionNum], a ret RLEList_PewterGymPlayer: ; 1a5cd (6:65cd) - db $00, $01 - db $10, $02 - db $80, $05 - db $20, $0B - db $40, $05 - db $20, $0F + db 0, $01 + db D_RIGHT, $02 + db D_DOWN, $05 + db D_LEFT, $0B + db D_UP, $05 + db D_LEFT, $0F db $FF RLEList_PewterGymGuy: ; 1a5da (6:65da) @@ -260,12 +260,11 @@ RLEList_PewterGymGuy: ; 1a5da (6:65da) db $C0, $03 db $FF -; XXX why would this function want to return on POKEMONTOWER_7? -Func_1a5e7: ; 1a5e7 (6:65e7) - ld a, [W_CURMAP] ; W_CURMAP +FreezeEnemyTrainerSprite: ; 1a5e7 (6:65e7) + ld a, [W_CURMAP] cp POKEMONTOWER_7 - ret z - ld hl, RivalIDs ; $6605 + ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them + ld hl, RivalIDs ld a, [wEngagedTrainerClass] ld b, a .loop @@ -273,11 +272,11 @@ Func_1a5e7: ; 1a5e7 (6:65e7) cp $ff jr z, .notRival cp b - ret z + ret z ; the rival leaves after battling, so don't freeze him jr .loop .notRival - ld a, [wcf13] - ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld a, [wSpriteIndex] + ld [H_SPRITEINDEX], a jp SetSpriteMovementBytesToFF RivalIDs: ; 1a605 (6:6605) |