From 568708afd3dc33cfac0ad5a453a3b08a4ce5e18f Mon Sep 17 00:00:00 2001 From: aerinon Date: Mon, 10 Apr 2023 12:18:52 -0600 Subject: [PATCH] Fix Kholdstare shell collision at Lanmo 2 or other tiles where the shell could limit movement. --- .../bugfix/kholdstare_shell_collision.asm | 51 +++++++++++++++++++ doorrando/doorrando.asm | 1 + 2 files changed, 52 insertions(+) create mode 100644 doorrando/bugfix/kholdstare_shell_collision.asm diff --git a/doorrando/bugfix/kholdstare_shell_collision.asm b/doorrando/bugfix/kholdstare_shell_collision.asm new file mode 100644 index 0000000..cfbf7a4 --- /dev/null +++ b/doorrando/bugfix/kholdstare_shell_collision.asm @@ -0,0 +1,51 @@ +pushpc + +org $9E9463 +JSL CheckKholdShellCoordinates +BCC Sprite_A3_KholdstareShell_link_not_close +BRA Sprite_A3_KholdstareShell_link_close +NOP #13 + +Sprite_A3_KholdstareShell_link_close = $9E9478 +Sprite_A3_KholdstareShell_link_not_close = $9E9480 + +pullpc + +CheckKholdShellCoordinates: + +LDA.w $0D30, X +XBA +LDA.w $0D10, X ; full 16 bit X coordinate of sprite + +REP #$21 +SBC.w #$0020 +CMP.b $22 +BCS .not_colliding + +ADC.w #$0040 +CMP.b $22 +BCC .not_colliding + +SEP #$20 +LDA.w $0D20, X +XBA +LDA.w $0D00, X ; full 16 bit Y coordinate of sprite + +REP #$21 +SBC.w #$001F ; could go to 27 and let link squeeze in at Lanmo 2 (please adjust the following one) +CMP.b $20 +BCS .not_colliding + +ADC.w #$0037 +CMP.b $20 +BCC .not_colliding + +SEP #$20 ; collision detected +SEC +RTL + +.not_colliding +SEP #$30 +CLC +RTL + diff --git a/doorrando/doorrando.asm b/doorrando/doorrando.asm index 6511dd2..08bdccd 100644 --- a/doorrando/doorrando.asm +++ b/doorrando/doorrando.asm @@ -58,6 +58,7 @@ incsrc math.asm incsrc hudadditions.asm incsrc dr_lobby.asm incsrc entrance_fixes.asm +incsrc bugfix/kholdstare_shell_collision.asm warnpc $A79C00 incsrc doortables.asm