Change HeadPos macros into functions
This commit is contained in:
@@ -52,11 +52,9 @@ Sprite_Manhandla_Long:
|
||||
}
|
||||
|
||||
pushpc
|
||||
|
||||
; Sprite_DoTheDeath#PrepareEnemyDrop.post_death_stuff
|
||||
org $06FA25
|
||||
LDA.w $0E20, X : CMP.b #$88
|
||||
|
||||
pullpc
|
||||
|
||||
; =========================================================
|
||||
@@ -121,7 +119,7 @@ Sprite_Manhandla_CheckForNextPhaseOrDeath:
|
||||
|
||||
; =========================================================
|
||||
|
||||
macro SetLeftHeadPos()
|
||||
SetLeftHeadPos:
|
||||
REP #$20
|
||||
LDA.w SprCachedX : SEC : SBC.w #$0016
|
||||
SEP #$20
|
||||
@@ -131,9 +129,9 @@ macro SetLeftHeadPos()
|
||||
LDA.w SprCachedY : SEC : SBC.w #$000F
|
||||
SEP #$20
|
||||
STA.w SprY, Y : XBA : STA.w SprYH, Y
|
||||
endmacro
|
||||
RTS
|
||||
|
||||
macro SetRightHeadPos()
|
||||
SetRightHeadPos:
|
||||
REP #$20
|
||||
LDA.w SprCachedX : CLC : ADC.w #$0016
|
||||
SEP #$20
|
||||
@@ -143,9 +141,9 @@ macro SetRightHeadPos()
|
||||
LDA.w SprCachedY : SEC : SBC.w #$000F
|
||||
SEP #$20
|
||||
STA.w SprY, Y : XBA : STA.w SprYH, Y
|
||||
endmacro
|
||||
RTS
|
||||
|
||||
macro SetCenterHeadPos()
|
||||
SetCenterHeadPos:
|
||||
REP #$20
|
||||
LDA.w SprCachedX
|
||||
SEP #$20
|
||||
@@ -155,7 +153,7 @@ macro SetCenterHeadPos()
|
||||
LDA.w SprCachedY
|
||||
SEP #$20
|
||||
STA.w SprY, Y : XBA : STA.w SprYH, Y
|
||||
endmacro
|
||||
RTS
|
||||
|
||||
Sprite_Manhandla_Main:
|
||||
{
|
||||
@@ -257,7 +255,7 @@ Sprite_Manhandla_Main:
|
||||
LDY.w Offspring3_Id
|
||||
LDA.w SprType, Y : CMP.b #$88 : BNE .not_head3
|
||||
LDA.w SprState, Y : BEQ .offspring3_dead
|
||||
%SetCenterHeadPos()
|
||||
JSR SetCenterHeadPos
|
||||
.offspring3_dead
|
||||
.not_head3
|
||||
|
||||
@@ -285,27 +283,19 @@ Sprite_Manhandla_Main:
|
||||
LDA #$88
|
||||
JSL Sprite_SpawnDynamically : BMI .return
|
||||
TYA : STA.w Offspring3_Id
|
||||
|
||||
PHX
|
||||
%SetCenterHeadPos()
|
||||
|
||||
JSR SetCenterHeadPos
|
||||
LDA.b #$08 : STA.w SprSubtype, Y
|
||||
STA.w SprAction, Y
|
||||
LDA.b #$20 : STA.w SprHealth, Y
|
||||
LDA.b #$07 : STA.w SprNbrOAM, Y
|
||||
|
||||
LDA.w SprY, Y : CLC : ADC.b #$20 : STA.w SprY, Y
|
||||
LDA.b #$10 : STA.w SprTimerC, Y
|
||||
|
||||
TYX
|
||||
|
||||
STZ.w SprYRound, X
|
||||
STZ.w SprXRound, X
|
||||
PLX
|
||||
|
||||
|
||||
.return
|
||||
|
||||
.continue
|
||||
RTS
|
||||
}
|
||||
@@ -329,53 +319,46 @@ Sprite_Manhandla_Main:
|
||||
LDY.w Offspring1_Id
|
||||
LDA.w SprType, Y : CMP.b #$88 : BNE .not_head
|
||||
LDA.w SprState, Y : BEQ .offspring1_dead
|
||||
%SetLeftHeadPos()
|
||||
JSR SetLeftHeadPos
|
||||
.offspring1_dead
|
||||
.not_head
|
||||
|
||||
LDY.w Offspring2_Id
|
||||
LDA.w SprType, Y : CMP.b #$88 : BNE .not_head2
|
||||
LDA.w SprState, Y : BEQ .offspring2_dead
|
||||
%SetRightHeadPos()
|
||||
JSR SetRightHeadPos
|
||||
.offspring2_dead
|
||||
.not_head2
|
||||
|
||||
LDY.w Offspring3_Id
|
||||
LDA.w SprType, Y : CMP.b #$88 : BNE .not_head3
|
||||
LDA.w SprState, Y : BEQ .offspring3_dead
|
||||
%SetCenterHeadPos()
|
||||
JSR SetCenterHeadPos
|
||||
.offspring3_dead
|
||||
.not_head3
|
||||
|
||||
PLX
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
BigChuchu_Emerge:
|
||||
{
|
||||
%PlayAnimation(9, 12, 10)
|
||||
|
||||
JSL Sprite_DamageFlash_Long
|
||||
|
||||
LDA.w SprTimerA, X : BNE +
|
||||
LDA.b #$02 : STA.w SprMiscD, X ; Set phase flag
|
||||
LDA.b #$20 : STA.w SprTimerA, X
|
||||
%GotoAction($05)
|
||||
+
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
BigChuchu_Flower:
|
||||
{
|
||||
%PlayAnimation(12, 12, 1)
|
||||
|
||||
JSL Sprite_DamageFlash_Long
|
||||
|
||||
LDA.w SprTimerC, X : BEQ +
|
||||
LDA.w SprY, X : DEC : STA.w SprY, X
|
||||
+
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
@@ -391,11 +374,8 @@ Sprite_Manhandla_Main:
|
||||
ChuchuBlast:
|
||||
{
|
||||
%PlayAnimation(3, 4, 4)
|
||||
|
||||
JSL Sprite_Move
|
||||
|
||||
%DoDamageToPlayerSameLayerOnContact()
|
||||
|
||||
RTS
|
||||
}
|
||||
}
|
||||
@@ -579,9 +559,6 @@ Sprite_Manhandla_Draw:
|
||||
|
||||
RTS
|
||||
|
||||
|
||||
; =========================================================
|
||||
|
||||
.start_index
|
||||
db $00, $02, $04, $08, $0C, $10, $14, $17, $1A, $1D, $23, $29, $33
|
||||
.nbr_of_tiles
|
||||
@@ -719,7 +696,6 @@ Sprite_BigChuchu_Draw:
|
||||
|
||||
RTS
|
||||
|
||||
; =======================================================
|
||||
.start_index
|
||||
db $00, $09, $12, $1B, $1C
|
||||
.nbr_of_tiles
|
||||
@@ -761,12 +737,8 @@ Chuchu_SpawnBlast:
|
||||
PHX
|
||||
LDA.b #$88
|
||||
JSL Sprite_SpawnDynamically : BMI .return
|
||||
|
||||
LDA.b #$0A : STA.w SprSubtype, Y
|
||||
STA.w SprAction, Y
|
||||
|
||||
LDA.b #$0A : STA.w SprSubtype, Y : STA.w SprAction, Y
|
||||
JSL GetRandomInt : AND.b #$01 : TAX
|
||||
|
||||
LDA.w .speed_and_offset_x, X : STA.w SprXSpeed, Y
|
||||
LDA.w SprX, Y : CLC : ADC.w .speed_and_offset_x, X : STA.w SprX, Y
|
||||
STA.w SprXRound, Y
|
||||
@@ -779,12 +751,10 @@ Chuchu_SpawnBlast:
|
||||
LDA.b #$10 : STA.w SprTimerB, Y
|
||||
LDA.b #$00 : STA.w SprNbrOAM, Y
|
||||
LDA.b #$03 : STA.w SprHitbox, Y
|
||||
|
||||
.return
|
||||
PLX
|
||||
RTS
|
||||
|
||||
|
||||
.speed_and_offset_x
|
||||
db -16, 16
|
||||
|
||||
@@ -797,43 +767,27 @@ Mothula_SpawnBeams:
|
||||
LDA.b #$36 ; SFX3.36
|
||||
JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan
|
||||
|
||||
LDA.b #$02
|
||||
STA.w $0FB5
|
||||
LDA.b #$02 : STA.w $0FB5
|
||||
|
||||
.next_spawn
|
||||
LDA.b #$89 ; SPRITE 89
|
||||
JSL Sprite_SpawnDynamically
|
||||
BMI .no_space
|
||||
|
||||
JSL Sprite_SpawnDynamically : BMI .no_space
|
||||
JSL Sprite_SetSpawnedCoordinates
|
||||
|
||||
LDA.b $02 : SEC : SBC.b $04
|
||||
|
||||
CLC : ADC.b #$03 : STA.w SprY,Y
|
||||
|
||||
LDA.b #$10 : STA.w SprTimerA,Y : STA.w SprBulletproof,Y
|
||||
|
||||
PHX
|
||||
|
||||
LDX.w $0FB5
|
||||
|
||||
LDA.b $00 : CLC : ADC.w .speed_and_offset_x,X
|
||||
STA.w SprX,Y
|
||||
|
||||
LDA.b $00 : CLC : ADC.w .speed_and_offset_x,X : STA.w SprX,Y
|
||||
LDA.w .speed_and_offset_x,X : STA.w SprXSpeed,Y
|
||||
|
||||
LDA.w .speed_y,X
|
||||
STA.w SprYSpeed,Y
|
||||
|
||||
LDA.b #$00
|
||||
STA.w SprHeight,Y
|
||||
|
||||
LDA.w .speed_y,X : STA.w SprYSpeed,Y
|
||||
LDA.b #$00 : STA.w SprHeight,Y
|
||||
PLX
|
||||
|
||||
.no_space
|
||||
DEC.w $0FB5
|
||||
BPL .next_spawn
|
||||
|
||||
RTS
|
||||
.speed_and_offset_x
|
||||
db -20, 0, 20
|
||||
@@ -847,21 +801,17 @@ SpawnLeftManhandlaHead:
|
||||
LDA #$88
|
||||
JSL Sprite_SpawnDynamically : BMI .return
|
||||
TYA : STA.w Offspring1_Id
|
||||
|
||||
PHX
|
||||
%SetLeftHeadPos()
|
||||
; store the sub-type
|
||||
JSR SetLeftHeadPos
|
||||
LDA.b #$03 : STA.w SprSubtype, Y
|
||||
STA.w SprAction, Y
|
||||
LDA.b #$14 : STA.w SprHealth, Y
|
||||
LDA.b #$90 : STA.w SprTileDie, Y
|
||||
LDA.w SprGfxProps : ORA.b #$80 : STA.w SprGfxProps, Y
|
||||
TYX
|
||||
|
||||
STZ.w SprYRound, X
|
||||
STZ.w SprXRound, X
|
||||
PLX
|
||||
|
||||
.return
|
||||
RTS
|
||||
}
|
||||
@@ -871,17 +821,14 @@ SpawnRightManhandlaHead:
|
||||
LDA #$88
|
||||
JSL Sprite_SpawnDynamically : BMI .return
|
||||
TYA : STA.w Offspring2_Id
|
||||
|
||||
PHX
|
||||
%SetRightHeadPos()
|
||||
|
||||
JSR SetRightHeadPos
|
||||
LDA.b #$02
|
||||
STA.w SprSubtype, Y
|
||||
LDA.b #$14 : STA.w SprHealth, Y
|
||||
LDA.b #$90 : STA.w SprTileDie, Y
|
||||
LDA.w SprGfxProps : AND.b #$80 : STA.w SprGfxProps, Y
|
||||
TYX
|
||||
|
||||
STZ.w SprYRound, X
|
||||
STZ.w SprXRound, X
|
||||
PLX
|
||||
@@ -894,18 +841,14 @@ SpawnCenterMandhandlaHead:
|
||||
LDA #$88
|
||||
JSL Sprite_SpawnDynamically : BMI .return
|
||||
TYA : STA.w Offspring3_Id
|
||||
|
||||
PHX
|
||||
%SetCenterHeadPos()
|
||||
|
||||
JSR SetCenterHeadPos
|
||||
LDA.b #$01
|
||||
STA.w SprSubtype, Y
|
||||
LDA.b #$14 : STA.w SprHealth, Y
|
||||
LDA.b #$90 : STA.w SprTileDie, Y
|
||||
LDA.w SprGfxProps : AND.b #$80 : STA.w SprGfxProps, Y
|
||||
|
||||
TYX
|
||||
|
||||
STZ.w SprYRound, X
|
||||
STZ.w SprXRound, X
|
||||
PLX
|
||||
@@ -916,10 +859,8 @@ SpawnCenterMandhandlaHead:
|
||||
ApplyManhandlaPalette:
|
||||
{
|
||||
REP #$20 ;Set A in 16bit mode
|
||||
|
||||
; note, this uses adresses like 7EC300 and not 7EC500 because the game
|
||||
; will fade the colors into 7EC500 based on the colors found in 7EC300
|
||||
|
||||
LDA #$7FFF : STA $7EC5E2 ;BG2
|
||||
LDA #$08D9 : STA $7EC5E4
|
||||
LDA #$1E07 : STA $7EC5E6
|
||||
@@ -927,11 +868,8 @@ ApplyManhandlaPalette:
|
||||
LDA #$14A5 : STA $7EC5EA
|
||||
LDA #$133F : STA $7EC5EC
|
||||
LDA #$19DF : STA $7EC5EE
|
||||
|
||||
INC $15
|
||||
|
||||
SEP #$20 ;Set A in 8bit mode
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
@@ -941,7 +879,7 @@ ApplyManhandlaGraphics:
|
||||
REP #$20 ; A = 16, XY = 8
|
||||
LDX #$80 : STX $2100 ; turn the screen off (required)
|
||||
LDX #$80 : STX $2115 ; Set the video port register every time we write it increase by 1
|
||||
LDA #$5000 : STA $2116 ; Destination of the DMA $5800 in vram <- this need to be divided by 2
|
||||
LDA #$5000 : STA $2116 ; Destination of the DMA $5800 in vram, need to be divided by 2
|
||||
LDA #$1801 : STA $4300 ; DMA Transfer Mode and destination register
|
||||
; "001 => 2 registers write once (2 bytes: p, p+1)"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user