Update Sprite_SetupHitBox labels, add alt entry for pos1 args

This commit is contained in:
scawful
2024-12-13 10:14:45 -05:00
parent f9060d7c15
commit 82193a9003
2 changed files with 61 additions and 38 deletions

View File

@@ -366,42 +366,65 @@ Link_CheckNewY_ButtonPress_Long:
Link_SetupHitBox: Link_SetupHitBox:
{ {
LDA.b #$08 : STA $02 : STA $03 LDA.b #$08 : STA $02 : STA $03
LDA $22 : CLC : ADC.b #$04 : STA $00 LDA.b LinkX : CLC : ADC.b #$04 : STA.b pos1_x_low
LDA $23 : ADC.b #$00 : STA $08 LDA.b LinkXH : ADC.b #$00 : STA.b pos1_x_high
LDA $20 : ADC.b #$08 : STA $01 LDA.b LinkY : ADC.b #$08 : STA.b pos1_y_low
LDA $21 : ADC.b #$00 : STA $09 LDA.b LinkYH : ADC.b #$00 : STA.b pos1_y_high
RTL RTL
} }
; =========================================================
Sprite_SetupHitBox: Sprite_SetupHitBox:
{ {
PHB : PHK : PLB PHB : PHK : PLB
LDA.w SprHeight, X : BMI .too_high LDA.w SprHeight, X : BMI .too_high
PHY PHY
LDA.w SprHitbox, X : AND.b #$1F : TAY LDA.w SprHitbox, X : AND.b #$1F : TAY
LDA.w SprX, X : CLC : ADC.w .offset_x_low, Y : STA.b $04 LDA.w SprX, X : CLC : ADC.w .offset_x_low, Y : STA.b pos2_x_low
LDA.w SprXH, X : ADC.w .offset_x_high, Y : STA.b $0A LDA.w SprXH, X : ADC.w .offset_x_high, Y : STA.b pos2_x_high
LDA.w SprY, X : CLC : ADC.w .offset_y_low, Y LDA.w SprY, X : CLC : ADC.w .offset_y_low, Y
PHP PHP
SEC : SBC.w SprHeight, X : STA.b $05 SEC : SBC.w SprHeight, X : STA.b pos2_y_low
LDA.w SprYH, X : SBC.b #$00 LDA.w SprYH, X : SBC.b #$00
PLP PLP
ADC.w .offset_y_high, Y : STA.b $0B ADC.w .offset_y_high, Y : STA.b pos2_y_high
LDA.w .width, Y : STA.b $06 LDA.w .width, Y : STA.b pos2_size
LDA.w .height, Y : STA.b $07 LDA.w .height, Y : STA.b pos2_height
PLY PLY
PLB PLB
RTL RTL
.too_high .too_high
LDA.b #$80 : STA.b $0A LDA.b #$80 : STA.b pos2_x_high
PLB PLB
RTL RTL
.offset_x_low Sprite_SetupHitBox_Alt:
PHB : PHK : PLB
LDA.w SprHeight, X : BMI .too_high
PHY
LDA.w SprHitbox, X : AND.b #$1F : TAY
LDA.w SprX, X : CLC : ADC.w .offset_x_low, Y : STA.b pos1_x_low
LDA.w SprXH, X : ADC.w .offset_x_high, Y : STA.b pos1_x_high
LDA.w SprY, X : CLC : ADC.w .offset_y_low, Y
PHP
SEC : SBC.w SprHeight, X : STA.b pos1_y_low
LDA.w SprYH, X : SBC.b #$00
PLP
ADC.w .offset_y_high, Y : STA.b pos1_y_high
LDA.w .width, Y : STA.b pos1_size
LDA.w .height, Y : STA.b pos1_height
PLY
PLB
RTL
.too_high
LDA.b #$80 : STA.b pos1_x_high
PLB
RTL
.offset_x_low
db 2 ; 0x00 db 2 ; 0x00
db 3 ; 0x01 db 3 ; 0x01
db 0 ; 0x02 db 0 ; 0x02
@@ -436,9 +459,7 @@ Sprite_SetupHitBox:
db -2 ; 0x1E db -2 ; 0x1E
db 4 ; 0x1F db 4 ; 0x1F
; --------------------------------------------------------- .offset_x_high
.offset_x_high
db 0 ; 0x00 db 0 ; 0x00
db 0 ; 0x01 db 0 ; 0x01
db 0 ; 0x02 db 0 ; 0x02
@@ -473,9 +494,7 @@ Sprite_SetupHitBox:
db -1 ; 0x1E db -1 ; 0x1E
db 0 ; 0x1F db 0 ; 0x1F
; --------------------------------------------------------- .width
.width
db 12 ; 0x00 db 12 ; 0x00
db 1 ; 0x01 db 1 ; 0x01
db 16 ; 0x02 db 16 ; 0x02
@@ -510,9 +529,7 @@ Sprite_SetupHitBox:
db 4 ; 0x1E db 4 ; 0x1E
db 8 ; 0x1F db 8 ; 0x1F
; --------------------------------------------------------- .offset_y_low
.offset_y_low
db 0 ; 0x00 db 0 ; 0x00
db 3 ; 0x01 db 3 ; 0x01
db 4 ; 0x02 db 4 ; 0x02
@@ -547,9 +564,7 @@ Sprite_SetupHitBox:
db -8 ; 0x1E db -8 ; 0x1E
db 10 ; 0x1F db 10 ; 0x1F
; --------------------------------------------------------- .offset_y_high
.offset_y_high
db 0 ; 0x00 db 0 ; 0x00
db 0 ; 0x01 db 0 ; 0x01
db 0 ; 0x02 db 0 ; 0x02
@@ -584,9 +599,7 @@ Sprite_SetupHitBox:
db -1 ; 0x1E db -1 ; 0x1E
db 0 ; 0x1F db 0 ; 0x1F
; --------------------------------------------------------- .height
.height
db 14 ; 0x00 db 14 ; 0x00
db 1 ; 0x01 db 1 ; 0x01
db 16 ; 0x02 db 16 ; 0x02

View File

@@ -433,16 +433,26 @@ Sprite_Decelerate_X = $05E657
Sprite_Decelerate_Y = $05E666 Sprite_Decelerate_Y = $05E666
; ========================================================= ; =========================================================
; args:
; pos1_low = $00
; pos1_size = $02
; pos2_low = $04
; pos2_size = $06
; pos1_high = $08
; pos2_high = $0A
; ans_low = $0F
; ans_high = $0C
; returns carry clear if there was no overlap ; returns carry clear if there was no overlap
; args:
pos1_x_low = $00
pos1_y_low = $01
pos1_size = $02
pos1_height = $03
pos2_x_low = $04
pos2_y_low = $05
pos2_size = $06
pos2_height = $07
pos1_x_high = $08
pos1_y_high = $09
pos2_x_high = $0A
pos2_y_high = $0B
ans_low = $0F
ans_high = $0C
CheckIfHitBoxesOverlap = $0683E6 CheckIfHitBoxesOverlap = $0683E6
; ========================================================= ; =========================================================