Update WaterOctorok action logic

This commit is contained in:
scawful
2024-10-06 15:34:39 -04:00
parent c37860bd83
commit ee20f2143b

View File

@@ -227,6 +227,7 @@ Sprite_WaterOctorok_Main:
dw WaterOctorok_FaceUp dw WaterOctorok_FaceUp
dw WaterOctorok_FaceLeft dw WaterOctorok_FaceLeft
dw WaterOctorok_FaceRight dw WaterOctorok_FaceRight
dw WaterOctorok_FaceHidden
WaterOctorok_FaceDown: WaterOctorok_FaceDown:
{ {
@@ -254,6 +255,13 @@ Sprite_WaterOctorok_Main:
%PlayAnimation(6,7,10) %PlayAnimation(6,7,10)
RTS RTS
} }
WaterOctorok_FaceHidden:
{
%StartOnFrame(8)
%PlayAnimation(8,8,10)
RTS
}
} }
Sprite_WaterOctorok_Attack: Sprite_WaterOctorok_Attack:
@@ -279,8 +287,8 @@ Sprite_WaterOctorok_Attack:
JSL GetDistance8bit_Long JSL GetDistance8bit_Long
CMP.b #$40 CMP.b #$40
BCC .not_close_enough ; LD < 64 BCC .not_close_enough ; LD < 64
INC.w SprMiscG, X INC.w SprMiscG, X
%SetTimerA($10) %SetTimerA($10)
.not_close_enough .not_close_enough
RTS RTS
} }
@@ -292,8 +300,8 @@ Sprite_WaterOctorok_Attack:
INC.w SprMiscG, X INC.w SprMiscG, X
%SetTimerA($20) %SetTimerA($20)
JSL Sprite_DirectionToFacePlayer JSL Sprite_DirectionToFacePlayer
; Set the Direction ; LDA.w SprMiscC, X : AND.b #$03 : TAY
; LDA.w Sprite_Octorok_Move_direction, Y : STA.w SprAction, X
+ +
RTS RTS
} }
@@ -313,6 +321,7 @@ Sprite_WaterOctorok_Attack:
WaterOctorok_Hiding: WaterOctorok_Hiding:
{ {
LDA.w SprTimerA, X : BNE + LDA.w SprTimerA, X : BNE +
LDA.b #$04 : STA.w SprAction, X
STZ.w SprMiscG, X STZ.w SprMiscG, X
%SetTimerA($40) %SetTimerA($40)
+ +
@@ -328,7 +337,6 @@ Octorok_ShootSingle:
PHA PHA
JSR Octorok_SpawnRock JSR Octorok_SpawnRock
PLA PLA
.bide_time .bide_time
LSR A LSR A
LSR A LSR A
@@ -391,43 +399,24 @@ Octorok_Shoot4Ways:
Octorok_SpawnRock: Octorok_SpawnRock:
{ {
LDA.b #$07 : JSL SpriteSFX_QueueSFX2WithPan LDA.b #$07 : JSL SpriteSFX_QueueSFX2WithPan
LDA.b #$0C : JSL Sprite_SpawnDynamically : BMI .fired_a_blank LDA.b #$0C : JSL Sprite_SpawnDynamically : BMI .fired_a_blank
PHX PHX
LDA.w SprMiscC,X LDA.w SprMiscC,X
TAX TAX
LDA.b $00 LDA.b $00 : CLC : ADC.w .offset_x_low,X : STA.w $0D10,Y
CLC LDA.b $01 : ADC.w .offset_x_high,X : STA.w $0D30,Y
ADC.w .offset_x_low,X LDA.b $02 : CLC : ADC.w .offset_y_low,X : STA.w $0D00,Y
STA.w $0D10,Y LDA.b $03 : ADC.w .offset_y_high,X : STA.w $0D20,Y
LDA.b $01
ADC.w .offset_x_high,X
STA.w $0D30,Y
LDA.b $02
CLC
ADC.w .offset_y_low,X
STA.w $0D00,Y
LDA.b $03
ADC.w .offset_y_high,X
STA.w $0D20,Y
LDA.w SprMiscC,Y LDA.w SprMiscC,Y
TAX TAX
LDA.w .rock_speed_x,X LDA.w .rock_speed_x,X : STA.w $0D50,Y
STA.w $0D50,Y LDA.w .rock_speed_y,X : STA.w $0D40,Y
LDA.w .rock_speed_y,X
STA.w $0D40,Y
PLX PLX
.fired_a_blank .fired_a_blank
RTS RTS
@@ -487,7 +476,7 @@ Sprite_Octorok_Draw:
STA $0E STA $0E
.on_screen_y .on_screen_y
PLX ; Pullback Animation Index Offset (without the *2 not 16bit anymore) PLX ; Pullback Animation Index Offset
INY INY
LDA .chr, X : STA ($90), Y LDA .chr, X : STA ($90), Y
INY INY
@@ -507,9 +496,9 @@ Sprite_Octorok_Draw:
; ========================================================= ; =========================================================
.start_index .start_index
db $00, $01, $02, $03, $04, $05, $06, $07 db $00, $01, $02, $03, $04, $05, $06, $07, $08
.nbr_of_tiles .nbr_of_tiles
db 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, 0
.chr .chr
db $80 db $80
db $80 db $80
@@ -519,6 +508,7 @@ Sprite_Octorok_Draw:
db $A2 db $A2
db $A0 db $A0
db $A2 db $A2
db $AA ; Water Octorok
.properties .properties
db $2D db $2D
db $6D db $6D
@@ -528,4 +518,5 @@ Sprite_Octorok_Draw:
db $2D db $2D
db $6D db $6D
db $6D db $6D
db $3D ; Water Octorok
} }