add more explicit length suffices

This commit is contained in:
scawful
2024-09-18 18:43:47 -04:00
parent 25085330d1
commit 2b452cc04c
31 changed files with 250 additions and 250 deletions

View File

@@ -64,8 +64,8 @@ Sprite_Kydreeok_Prep:
LDA.b #$09 : STA.w SprBump, X ; bump damage type
; Cache the origin position of the sprite.
LDA SprX, X : STA.w SprMiscA, X
LDA SprY, X : STA.w SprMiscB, X
LDA.w SprX, X : STA.w SprMiscA, X
LDA.w SprY, X : STA.w SprMiscB, X
JSR SpawnLeftHead
; JSR SpawnCenterHead
@@ -86,12 +86,12 @@ Sprite_Kydreeok_Prep:
Sprite_Kydreeok_CheckIfDead:
{
LDA Offspring1_Id : TAY
LDA.w Offspring1_Id : TAY
LDA.w SprState, Y : BEQ .offspring1_dead
JMP .not_dead
.offspring1_dead
LDA Offspring2_Id : TAY
LDA.w Offspring2_Id : TAY
LDA.w SprState, Y : BEQ .offspring2_dead
JMP .not_dead
.offspring2_dead
@@ -149,7 +149,7 @@ Sprite_Kydreeok_Main:
%StartOnFrame(0)
%PlayAnimation(0, 2, 10)
LDA SprMiscD, X : BNE .go
LDA.w SprMiscD, X : BNE .go
LDY #$00
JSR ApplyKydreeokGraphics
JSR ApplyPalette
@@ -158,8 +158,8 @@ Sprite_Kydreeok_Main:
JSL Sprite_PlayerCantPassThrough
LDA SprTimerA, X : BNE .continue
TXA : STA Kydreeok_Id
LDA.w SprTimerA, X : BNE .continue
TXA : STA.w Kydreeok_Id
LDA #$40 : STA.w SprTimerA, X
%GotoAction(1)
.continue
@@ -178,7 +178,7 @@ Sprite_Kydreeok_Main:
JSL MoveBody
JSR StopIfOutOfBounds
LDA SprTimerA, X : BNE .continue
LDA.w SprTimerA, X : BNE .continue
%GotoAction(2)
.continue
@@ -241,14 +241,14 @@ Sprite_Kydreeok_Main:
REP #$20
; Use a range of + 0x05 because being exact equal didnt trigger consistently
LDA $20 : SBC SprCachedY : CMP.w #$FFFB : BCC .notEqualY
LDA $20 : SBC.w SprCachedY : CMP.w #$FFFB : BCC .notEqualY
SEP #$20
%GotoAction(2) ; Kydreeok_MoveXandY
BRA .notEqualX
.notEqualY
; Use a range of + 0x05 because being exact equal didnt trigger consistently
LDA $22 : SBC SprCachedX : CMP.w #$FFFB : BCC .notEqualX
LDA $22 : SBC.w SprCachedX : CMP.w #$FFFB : BCC .notEqualX
SEP #$20
%GotoAction(2) ; Kydreeok_MoveXandY
.notEqualX
@@ -277,7 +277,7 @@ Sprite_Kydreeok_Main:
LDA $1C : ORA.b #$01 : STA $1C ;turn on BG2 (Body)
; Flicker the body every other frame using the timer
LDA SprTimerA, X : AND.b #$01 : BEQ .flicker
LDA.w SprTimerA, X : AND.b #$01 : BEQ .flicker
LDA $1C : AND.b #$FE : STA $1C ;turn off BG2 (Body)
.flicker
@@ -303,7 +303,7 @@ Sprite_Kydreeok_Main:
.no_space
LDA SprTimerA, X : BNE .continue
LDA.w SprTimerA, X : BNE .continue
STZ.w $0422
STZ.w $0424
LDA $1C : ORA.b #$01 : STA $1C ;turn on BG2 (Body)
@@ -369,19 +369,19 @@ SpawnLeftHead:
LDA #$CF
JSL Sprite_SpawnDynamically : BMI .return
TYA : STA Offspring1_Id
TYA : STA.w Offspring1_Id
;store the sub-type
LDA.b #$00 : STA $0E30, Y
PHX
; code that controls where to spawn the offspring.
REP #$20
LDA SprCachedX : SEC : SBC.w #$0010
LDA.w SprCachedX : SEC : SBC.w #$0010
SEP #$20
STA.w SprX, Y : XBA : STA.w SprXH, Y
REP #$20
LDA SprCachedY : SEC : SBC.w #$000F
LDA.w SprCachedY : SEC : SBC.w #$000F
SEP #$20
STA.w SprY, Y : XBA : STA.w SprYH, Y
@@ -407,7 +407,7 @@ SpawnLeftHead:
; LDA #$CF
; JSL Sprite_SpawnDynamically : BMI .return
; TYA : STA Offspring3_Id
; TYA : STA.w Offspring3_Id
; ;store the sub-type
; LDA.b #$02 : STA $0E30, Y
@@ -415,12 +415,12 @@ SpawnLeftHead:
; PHX
; ; code that controls where to spawn the offspring.
; REP #$20
; LDA SprCachedX : CLC : ADC.w #$0004
; LDA.w SprCachedX : CLC : ADC.w #$0004
; SEP #$20
; STA.w SprX, Y : XBA : STA.w SprXH, Y
; REP #$20
; LDA SprCachedY : SEC : SBC.w #$000F
; LDA.w SprCachedY : SEC : SBC.w #$000F
; SEP #$20
; STA.w SprY, Y : XBA : STA.w SprYH, Y
@@ -445,19 +445,19 @@ SpawnRightHead:
{
LDA #$CF
JSL Sprite_SpawnDynamically : BMI .return
TYA : STA Offspring2_Id
TYA : STA.w Offspring2_Id
;store the sub-type
LDA.b #$01 : STA $0E30, Y
PHX
; code that controls where to spawn the offspring.
REP #$20
LDA SprCachedX : CLC : ADC.w #$000D
LDA.w SprCachedX : CLC : ADC.w #$000D
SEP #$20
STA.w SprX, Y : XBA : STA.w SprXH, Y
REP #$20
LDA SprCachedY : SEC : SBC.w #$000F
LDA.w SprCachedY : SEC : SBC.w #$000F
SEP #$20
STA.w SprY, Y : XBA : STA.w SprYH, Y
@@ -540,7 +540,7 @@ StopIfOutOfBounds:
{
; Set A to 00 if outside of certain bounds
REP #$20
LDA SprCachedX : CMP.w #$0118 : BCS .not_out_of_bounds_Left
LDA.w SprCachedX : CMP.w #$0118 : BCS .not_out_of_bounds_Left
SEP #$20
LDA.w SprXSpeed : CMP.b #$7F : BCC .not_out_of_bounds_Left
LDA.b #-10 : STA.w SprXSpeed : STA.w SprXRound
@@ -556,7 +556,7 @@ StopIfOutOfBounds:
SEP #$20
REP #$20
LDA SprCachedX : CMP.w #$01D8 : BCC .not_out_of_bounds_Right
LDA.w SprCachedX : CMP.w #$01D8 : BCC .not_out_of_bounds_Right
SEP #$20
LDA.w SprXSpeed : CMP.b #$80 : BCS .not_out_of_bounds_Right
LDA.b #$00 : STA.w SprXSpeed : STA.w SprXRound
@@ -573,7 +573,7 @@ StopIfOutOfBounds:
; Upper bound
REP #$20
LDA SprCachedY : CMP.w #$0020 : BCS .not_out_of_bounds_Up
LDA.w SprCachedY : CMP.w #$0020 : BCS .not_out_of_bounds_Up
SEP #$20
LDA.w SprYSpeed : CMP.b #$7F : BCC .not_out_of_bounds_Up
LDA.b #$00 : STA.w SprYSpeed : STA.w SprYRound
@@ -585,7 +585,7 @@ StopIfOutOfBounds:
SEP #$20
REP #$20
LDA SprCachedY : CMP.w #$00D0 : BCC .not_out_of_bounds_Down
LDA.w SprCachedY : CMP.w #$00D0 : BCC .not_out_of_bounds_Down
SEP #$20
LDA.w SprYSpeed : CMP.b #$80 : BCS .not_out_of_bounds_Down
LDA.b #-10 : STA.w SprYSpeed : STA.w SprYRound ; Reverse the direction

View File

@@ -38,7 +38,7 @@ Sprite_KydreeokHead_Long:
{
PHB : PHK : PLB
LDA SprAction, X : CMP #$05 : BEQ .no_head
LDA.w SprAction, X : CMP #$05 : BEQ .no_head
JSR Sprite_KydreeokHead_Draw
.no_head
@@ -168,7 +168,7 @@ Sprite_KydreeokHead_Main:
JSR KydreeokHead_RotationMove
JSR RandomlyAttack
LDA SprTimerA, X : BNE .not_done
LDA.w SprTimerA, X : BNE .not_done
%GotoAction(0)
.not_done
RTS
@@ -188,7 +188,7 @@ Sprite_KydreeokHead_Main:
JSR KydreeokHead_RotationMove
JSR RandomlyAttack
LDA SprTimerA, X : BNE .not_done
LDA.w SprTimerA, X : BNE .not_done
%GotoAction(0)
.not_done
RTS
@@ -204,7 +204,7 @@ Sprite_KydreeokHead_Main:
JSR Sprite_Twinrova_FireAttack
JSL Sprite_Move
LDA SprTimerA, X : BNE .not_done
LDA.w SprTimerA, X : BNE .not_done
LDA #$00 : STA $0DD0, X
.not_done
RTS
@@ -267,19 +267,19 @@ Sprite_KydreeokHead_Damage_Flash:
CoordinateBasedRotation:
{
LDA Neck_Index : TAY
LDA.w Neck_Index : TAY
; JSL GetRandomInt : AND #$04 : TAY
LDA X_Coords, Y : STA Neck1_OffsetX
LDA X_Coords, Y : STA Neck2_OffsetX
LDA X_Coords, Y : STA Neck3_OffsetX
LDA Y_Coords, Y : STA Neck1_OffsetY
LDA Y_Coords, Y : STA Neck2_OffsetY
LDA Y_Coords, Y : STA Neck3_OffsetY
LDA.w X_Coords, Y : STA.w Neck1_OffsetX
LDA.w X_Coords, Y : STA.w Neck2_OffsetX
LDA.w X_Coords, Y : STA.w Neck3_OffsetX
LDA.w Y_Coords, Y : STA.w Neck1_OffsetY
LDA.w Y_Coords, Y : STA.w Neck2_OffsetY
LDA.w Y_Coords, Y : STA.w Neck3_OffsetY
JSL GetRandomInt : AND #$3F : BNE .dont_increment
INC.w Neck_Index
.dont_increment
CPY #15 : BNE .not_full
LDA #0 : STA Neck_Index
LDA #0 : STA.w Neck_Index
.not_full
RTS
}
@@ -357,7 +357,7 @@ RandomlyAttack:
MoveWithBody:
{
LDA Kydreeok_Id : TAY
LDA.w Kydreeok_Id : TAY
CPX.w Offspring2_Id : BEQ .neck2_move
LDA.w SprX, Y : SEC : SBC #$0F

View File

@@ -79,7 +79,7 @@ Sprite_Kydrog_Main:
Kydrog_StartCutscene:
{
LDA #$03 : STA $012C ; Play music
LDA WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
LDA.w WALKSPEED : STA.b $57 ; Slow Link down for the cutscene
LDA.b #$08 : STA.b $49 ; Auto-movement north
LDA.b $20 ; Link's Y Position

View File

@@ -421,7 +421,7 @@ Sprite_KydrogBoss_Main:
%RandomStalfosOffspring()
; Increase the Z for a bit until he is off screen
LDA SprHeight, X : CLC : ADC.b #$04
LDA.w SprHeight, X : CLC : ADC.b #$04
STA.w SprHeight, X : CMP.b #$B0 : BCC .not_off_screen
LDA #$40 : STA.w SprTimerD, X
%GotoAction($0B)
@@ -437,17 +437,17 @@ Sprite_KydrogBoss_Main:
%RandomStalfosOffspring()
LDA SprTimerD, X : BEQ .no_track_player
LDA.w SprTimerD, X : BEQ .no_track_player
LDA $20 : STA.w SprY, X
LDA $22 : STA.w SprX, X
; PHX : JSL $01F3EC : PLX ; Light Torch
LDA SprTimerD, X : BNE .wait_a_second
LDA.w SprTimerD, X : BNE .wait_a_second
.no_track_player
; Decrease the Z for a bit until he is at level with Link
LDA SprHeight, X : SEC : SBC.b #$04 : STA.w SprHeight, X
LDA.w SprHeight, X : SEC : SBC.b #$04 : STA.w SprHeight, X
CMP.b #$04 : BCS .not_off_screen
%GotoAction(1)
.not_off_screen
@@ -465,13 +465,13 @@ Sprite_KydrogBoss_Main:
JSL GetRandomInt : AND.b #$3F : BNE +
LDA.b $0D50 : CLC : ADC.b #$08 : STA $0D50
LDA.b $0D70 : CLC : ADC.b #$02 : STA $0D70
LDA SprTimerD, X : BNE .not_done
LDA.w SprTimerD, X : BNE .not_done
%GotoAction(1)
RTS
+
LDA.b $0D40 : CLC : ADC.b #$08 : STA $0D40
LDA.b $0D60 : CLC : ADC.b #$02 : STA $0D60
LDA SprTimerD, X : BNE .not_done
LDA.w SprTimerD, X : BNE .not_done
%GotoAction(1)
.not_done
@@ -494,29 +494,29 @@ CheckForNextPhase:
.phase_one
; Check for phase two
LDA SprHealth,X : CMP.b #$20 : BCC .phase_two
LDA.w SprHealth,X : CMP.b #$20 : BCC .phase_two
RTS
.phase_two
LDA SprHealth,X : CMP.b #$20 : BCC .phase_three
LDA.w SprHealth,X : CMP.b #$20 : BCC .phase_three
LDA !KydrogPhase : CMP.b #$01 : BEQ .return
LDA #$80 : STA $0E50, X
LDA #$01 : STA SprAction, X
LDA #$01 : STA.w SprAction, X
STA !KydrogPhase
INC.w SprFlash, X
RTS
.phase_three
LDA SprHealth,X : CMP.b #$20 : BCC .phase_four
LDA.w SprHealth,X : CMP.b #$20 : BCC .phase_four
LDA !KydrogPhase : CMP.b #$02 : BEQ .return
LDA #$80 : STA $0E50, X
LDA #$02 : STA SprAction, X
LDA #$02 : STA.w SprAction, X
STA !KydrogPhase
RTS
.phase_four
LDA #$03 : STA SprAction, X
LDA #$03 : STA.w SprAction, X
STA !KydrogPhase
.return
RTS
@@ -635,8 +635,8 @@ Kydrog_ThrowBoneAtPlayer:
TYX
LDA SprX, X : CLC : ADC.b #$10 : STA.w SprX, X
LDA SprY, X : SEC : SBC.b #$04 : STA.w SprY, X
LDA.w SprX, X : CLC : ADC.b #$10 : STA.w SprX, X
LDA.w SprY, X : SEC : SBC.b #$04 : STA.w SprY, X
LDA.b #$20 : JSL Sprite_ApplySpeedTowardsPlayer

View File

@@ -147,11 +147,11 @@ Lanmola_Mound: ;0x01
; ALTERNATE ENTRY POINT
.Lanmola_SetScatterSandPosition
LDA SprXH, X : STA $0DC0, X
LDA SprYH, X : STA $0EB0, X
LDA.w SprXH, X : STA $0DC0, X
LDA.w SprYH, X : STA $0EB0, X
LDA SprX, X : STA $0DE0, X
LDA SprY, X : STA $0E70, X
LDA.w SprX, X : STA $0DE0, X
LDA.w SprY, X : STA $0E70, X
LDA.b #$4A : STA $0E00, X
@@ -196,13 +196,13 @@ Lanmola_Fly: ;0x02
.dontSwitchDirections
LDA $0DA0, X : STA $04
LDA SprXH, X : STA $05
LDA.w SprXH, X : STA $05
LDA $0DB0, X : STA $06
LDA SprYH, X : STA $07
LDA SprX, X : STA $00
LDA SprXH, X : STA $01
LDA SprY, X : STA $02
LDA SprYH, X : STA $03
LDA.w SprYH, X : STA $07
LDA.w SprX, X : STA $00
LDA.w SprXH, X : STA $01
LDA.w SprY, X : STA $02
LDA.w SprYH, X : STA $03
REP #$20

View File

@@ -292,10 +292,10 @@ Lanmola_MoveSegment:
; Store the current position, angle, and hieght of the sprite
; so that we can set the other segments to them later.
LDA SprXH, X : PHA ;high x
LDA SprYH, X : PHA ;high y
LDA SprX, X : PHA ;lower x
LDA SprY, X : PHA ;lower y
LDA.w SprXH, X : PHA ;high x
LDA.w SprYH, X : PHA ;high y
LDA.w SprX, X : PHA ;lower x
LDA.w SprY, X : PHA ;lower y
LDA $0F70, X : PHA ;height
LDA $0F : PHA ;angle

View File

@@ -86,19 +86,19 @@ Sprite_Manhandla_Prep:
Sprite_Manhandla_CheckForNextPhaseOrDeath:
{
; All three heads need to be dead before we become big chuchu
LDA Offspring1_Id : TAY
LDA.w Offspring1_Id : TAY
LDA.w SprState, Y : BEQ .offspring1_dead
JMP .not_dead
.offspring1_dead
LDA.b #$05 : STA.w $36
LDA Offspring2_Id : TAY
LDA.w Offspring2_Id : TAY
LDA.w SprState, Y : BEQ .offspring2_dead
JMP .not_dead
.offspring2_dead
LDA.b #$06 : STA.w $36
LDA Offspring3_Id : TAY
LDA.w Offspring3_Id : TAY
LDA.w SprState, Y : BEQ .offspring3_dead
JMP .not_dead
.offspring3_dead
@@ -131,36 +131,36 @@ Sprite_Manhandla_CheckForNextPhaseOrDeath:
macro SetLeftHeadPos()
REP #$20
LDA SprCachedX : SEC : SBC.w #$0016
LDA.w SprCachedX : SEC : SBC.w #$0016
SEP #$20
STA.w SprX, Y : XBA : STA.w SprXH, Y
REP #$20
LDA SprCachedY : SEC : SBC.w #$000F
LDA.w SprCachedY : SEC : SBC.w #$000F
SEP #$20
STA.w SprY, Y : XBA : STA.w SprYH, Y
endmacro
macro SetRightHeadPos()
REP #$20
LDA SprCachedX : CLC : ADC.w #$0016
LDA.w SprCachedX : CLC : ADC.w #$0016
SEP #$20
STA.w SprX, Y : XBA : STA.w SprXH, Y
REP #$20
LDA SprCachedY : SEC : SBC.w #$000F
LDA.w SprCachedY : SEC : SBC.w #$000F
SEP #$20
STA.w SprY, Y : XBA : STA.w SprYH, Y
endmacro
macro SetCenterHeadPos()
REP #$20
LDA SprCachedX
LDA.w SprCachedX
SEP #$20
STA.w SprX, Y : XBA : STA.w SprXH, Y
REP #$20
LDA SprCachedY
LDA.w SprCachedY
SEP #$20
STA.w SprY, Y : XBA : STA.w SprYH, Y
endmacro
@@ -277,11 +277,11 @@ Sprite_Manhandla_Main:
%PlayAnimation(11, 12, 10)
LDA $1C : ORA.b #$01 : STA $1C ;turn on BG2 (Body)
; Flicker the body every other frame using the timer
LDA SprTimerA, X : AND.b #$01 : BEQ .flicker
LDA.w SprTimerA, X : AND.b #$01 : BEQ .flicker
LDA $1C : AND.b #$FE : STA $1C ;turn off BG2 (Body)
.flicker
LDA SprTimerA, X : BNE .continue
LDA.w SprTimerA, X : BNE .continue
STZ.w $0422
STZ.w $0424
LDA $1C : AND.b #$FE : STA $1C ;turn off BG2 (Body)
@@ -292,7 +292,7 @@ Sprite_Manhandla_Main:
LDA #$88
JSL Sprite_SpawnDynamically : BMI .return
TYA : STA Offspring3_Id
TYA : STA.w Offspring3_Id
PHX
%SetCenterHeadPos()
@@ -423,7 +423,7 @@ Sprite_Manhandla_Move:
STZ.w SprYSpeed : STZ.w SprXSpeed ;set velocitys to 0
JSL MoveBody
JSR Manhandla_StopIfOutOfBounds
LDA SprTimerA, X : BNE .continue
LDA.w SprTimerA, X : BNE .continue
INC.w SprMiscC, X
.continue
RTS
@@ -457,7 +457,7 @@ Sprite_Manhandla_Move:
REP #$20
; Use a range of + 0x05 because being exact equal didnt trigger consistently
LDA $20 : SBC SprCachedY : CMP.w #$FFFB : BCC .notEqualY
LDA $20 : SBC.w SprCachedY : CMP.w #$FFFB : BCC .notEqualY
SEP #$20
LDA.b #$02 : STA.w SprMiscC, X
@@ -465,7 +465,7 @@ Sprite_Manhandla_Move:
.notEqualY
; Use a range of + 0x05 because being exact equal didnt trigger consistently
LDA $22 : SBC SprCachedX : CMP.w #$FFFB : BCC .notEqualX
LDA $22 : SBC.w SprCachedX : CMP.w #$FFFB : BCC .notEqualX
SEP #$20
LDA.b #$02 : STA.w SprMiscC, X
.notEqualX
@@ -490,7 +490,7 @@ Manhandla_StopIfOutOfBounds:
{
; Set A to 00 if outside of certain bounds
REP #$20
LDA SprCachedX : CMP.w #$153A : BCS .not_out_of_bounds_Left
LDA.w SprCachedX : CMP.w #$153A : BCS .not_out_of_bounds_Left
SEP #$20
LDA.w SprXSpeed : CMP.b #$7F : BCC .not_out_of_bounds_Left
LDA.b #-08 : STA.w SprXSpeed : STA.w SprXRound
@@ -499,7 +499,7 @@ Manhandla_StopIfOutOfBounds:
SEP #$20
REP #$20
LDA SprCachedX : CMP.w #$15C8 : BCC .not_out_of_bounds_Right
LDA.w SprCachedX : CMP.w #$15C8 : BCC .not_out_of_bounds_Right
SEP #$20
LDA.w SprXSpeed : CMP.b #$80 : BCS .not_out_of_bounds_Right
LDA.b #$08 : STA.w SprXSpeed : STA.w SprXRound
@@ -509,7 +509,7 @@ Manhandla_StopIfOutOfBounds:
; Upper bound
REP #$20
LDA SprCachedY : CMP.w #$0B3A : BCS .not_out_of_bounds_Up
LDA.w SprCachedY : CMP.w #$0B3A : BCS .not_out_of_bounds_Up
SEP #$20
LDA.w SprYSpeed : CMP.b #$7F : BCC .not_out_of_bounds_Up
LDA.b #$08 : STA.w SprYSpeed : STA.w SprYRound
@@ -518,7 +518,7 @@ Manhandla_StopIfOutOfBounds:
SEP #$20
REP #$20
LDA SprCachedY : CMP.w #$0BA6 : BCC .not_out_of_bounds_Down
LDA.w SprCachedY : CMP.w #$0BA6 : BCC .not_out_of_bounds_Down
SEP #$20
LDA.w SprYSpeed : CMP.b #$80 : BCS .not_out_of_bounds_Down
LDA.b #-08 : STA.w SprYSpeed : STA.w SprYRound ; Reverse the direction
@@ -854,7 +854,7 @@ SpawnLeftManhandlaHead:
{
LDA #$88
JSL Sprite_SpawnDynamically : BMI .return
TYA : STA Offspring1_Id
TYA : STA.w Offspring1_Id
PHX
%SetLeftHeadPos()
@@ -878,7 +878,7 @@ SpawnRightManhandlaHead:
{
LDA #$88
JSL Sprite_SpawnDynamically : BMI .return
TYA : STA Offspring2_Id
TYA : STA.w Offspring2_Id
PHX
%SetRightHeadPos()
@@ -901,7 +901,7 @@ SpawnCenterMandhandlaHead:
{
LDA #$88
JSL Sprite_SpawnDynamically : BMI .return
TYA : STA Offspring3_Id
TYA : STA.w Offspring3_Id
PHX
%SetCenterHeadPos()

View File

@@ -58,13 +58,13 @@ Sprite_Twinrova_Long:
Sprite_Twinrova_CheckIfDead:
{
LDA SprAction, X : CMP.b #$0A : BEQ .not_dead
LDA.w SprAction, X : CMP.b #$0A : BEQ .not_dead
; If health is negative, set back to zero
LDA SprHealth, X : CMP.b #$C3 : BCC .health_not_negative
LDA.w SprHealth, X : CMP.b #$C3 : BCC .health_not_negative
LDA.b #$00 : STA.w SprHealth, X
.health_not_negative
LDA SprHealth, X : BNE .not_dead
LDA.w SprHealth, X : BNE .not_dead
PHX
LDA.b #$04 : STA $0DD0, X ; Kill sprite boss style
LDA.b #$0A : STA.w SprAction, X ; Go to Twinrova_Dead stage
@@ -191,10 +191,10 @@ Sprite_Twinrova_Main:
Twinrova_MoveState:
{
STZ.w $0360
LDA SprHealth, X : CMP.b #$20 : BCS .phase_1
LDA.w SprHealth, X : CMP.b #$20 : BCS .phase_1
; -------------------------------------------
; Phase 2
LDA SprTimerE, X : BNE .kotake
LDA.w SprTimerE, X : BNE .kotake
LDA #$70 : STA.w SprTimerD, X
%GotoAction(8) ; Koume Mode
RTS
@@ -293,7 +293,7 @@ Sprite_Twinrova_Main:
LDA #$01 : STA $0360
LDA $0CAA : AND.b #$03 : STA $0CAA
LDA SprTimerD, X : BNE +
LDA.w SprTimerD, X : BNE +
LDA $0CAA : ORA.b #$03 : STA $0CAA
LDA.b #$40 : STA.w SprTimerD, X
LDA $AC : BEQ .fire
@@ -421,7 +421,7 @@ Sprite_Twinrova_Main:
JSR RageModeMove
LDA SprTimerD, X : BNE +
LDA.w SprTimerD, X : BNE +
LDA #$70 : STA.w SprTimerE, X
%GotoAction(1)
+
@@ -455,7 +455,7 @@ Sprite_Twinrova_Main:
JSR RestoreFloorTile
+++
LDA SprTimerD, X : BNE +
LDA.w SprTimerD, X : BNE +
%GotoAction(1)
+
RTS
@@ -479,10 +479,10 @@ Sprite_Twinrova_Main:
RageModeMove:
{
; If timer is zero, determine a new movement mode
LDA SprTimerA, X : BEQ .DetermineMovementMode
LDA.w SprTimerA, X : BEQ .DetermineMovementMode
; Execute current movement mode
LDA SprMiscA, X
LDA.w SprMiscA, X
CMP #$01 : BEQ .MoveTowardsPlayer
CMP #$02 : BEQ .RandomStrafe
CMP #$03 : BEQ .RandomDodge
@@ -660,7 +660,7 @@ Sprite_Twinrova_FireAttack:
; $1DBDD6 - TrinexxFire_AddFireGarnish
AddFireGarnish:
{
INC.w SprDelay, X : LDA SprDelay, X : AND.b #$07 : BNE .return
INC.w SprDelay, X : LDA.w SprDelay, X : AND.b #$07 : BNE .return
LDA.b #$2A : JSL Sound_SetSfx2PanLong
LDA.b #$1D : PHX : TXY : TAX : STA $00
@@ -699,7 +699,7 @@ Sprite_Twinrova_IceAttack:
; $1DBD65 - TrinexxBreath_ice_add_ice_garnish
AddIceGarnishV2:
{
INC.w SprDelay, X : LDA SprDelay, X : AND.b #$07 : BNE .return
INC.w SprDelay, X : LDA.w SprDelay, X : AND.b #$07 : BNE .return
LDA.b #$14 : JSL Sound_SetSfx3PanLong
LDA.b #$1D : PHX : TXY : TAX : STA $00
@@ -1397,11 +1397,11 @@ pullpc
NewMantlePrep:
{
LDA SprY, X : CLC : ADC.b #$07 : STA.w SprY, X
LDA SprX, X : CLC : ADC.b #$08 : STA.w SprX, X
LDA.w SprY, X : CLC : ADC.b #$07 : STA.w SprY, X
LDA.w SprX, X : CLC : ADC.b #$08 : STA.w SprX, X
LDA $7EF0DA : AND #$0F : BEQ +
LDA SprX, X : CLC : ADC.b #$28 : STA.w SprX, X
LDA.w SprX, X : CLC : ADC.b #$28 : STA.w SprX, X
+
RTL

View File

@@ -102,7 +102,7 @@ endmacro
Wolfos_DecideAction:
{
LDA SprTimerA, X : BNE .decide_new_action
LDA.w SprTimerA, X : BNE .decide_new_action
RTS
.decide_new_action
@@ -112,10 +112,10 @@ Wolfos_DecideAction:
LDA $0F ; x distance from player
STA.w SprMiscB, X
LDA SprMiscC, X
LDA.w SprMiscC, X
CMP #$10 ; Check if y distance is significant
BCS .adjust_y
LDA SprMiscB, X
LDA.w SprMiscB, X
CMP #$10 ; Check if x distance is significant
BCS .adjust_x
@@ -242,7 +242,7 @@ Sprite_Wolfos_Main:
LDA #!AttackSpeed
STA.w SprXSpeed, X
LDA SprTimerA, X : BNE +
LDA.w SprTimerA, X : BNE +
%GotoAction(2)
+
@@ -259,7 +259,7 @@ Sprite_Wolfos_Main:
LDA #-!AttackSpeed
STA.w SprXSpeed, X
LDA SprTimerA, X : BNE +
LDA.w SprTimerA, X : BNE +
%GotoAction(3)
+
@@ -273,7 +273,7 @@ Sprite_Wolfos_Main:
STZ.w SprYSpeed, X
; Run the dialogue and wait for a song of healing flag to be set
LDA SprMiscD, X : BNE .wait
LDA.w SprMiscD, X : BNE .wait
%ShowUnconditionalMessage($23)
LDA.b #$01 : STA.w SprMiscD, X
.wait
@@ -295,7 +295,7 @@ Sprite_Wolfos_Main:
{
LDA.b #16 : STA.w SprFrame, X
LDA SprTimerD, X : BNE .wait
LDA.w SprTimerD, X : BNE .wait
LDA.b #$01 : STA.w BRANDISH
%ShowUnconditionalMessage($10F)
LDA.b #$01 : STA.l $7EF358
@@ -309,7 +309,7 @@ Sprite_Wolfos_Main:
STZ.w SprXSpeed, X
STZ.w SprYSpeed, X
LDA SprTimerD, X : BNE .dismiss
LDA.w SprTimerD, X : BNE .dismiss
LDA.b #$00 : STA $0DD0, X ; kill sprite normal style
STZ.w SprAction, X
STZ.w SprHealth, X