Update sprites library
This commit is contained in:
@@ -130,11 +130,11 @@ macro StopIfTooClose()
|
|||||||
endmacro
|
endmacro
|
||||||
|
|
||||||
macro RandomStalfosOffspring()
|
macro RandomStalfosOffspring()
|
||||||
JSL GetRandomInt : AND.b #$7F : BNE +
|
JSL GetRandomInt : AND.b #$7F : BNE +
|
||||||
PHX : JSR Sprite_Offspring_Spawn : PLX
|
PHX : JSR Sprite_Offspring_Spawn : PLX
|
||||||
+
|
+
|
||||||
|
|
||||||
JSL GetRandomInt : AND.b #$7F : BNE +
|
JSL GetRandomInt : AND.b #$7F : BNE +
|
||||||
PHX : JSR Sprite_Offspring_SpawnHead : PLX
|
PHX : JSR Sprite_Offspring_SpawnHead : PLX
|
||||||
+
|
+
|
||||||
endmacro
|
endmacro
|
||||||
@@ -145,20 +145,17 @@ Sprite_KydrogBoss_Main:
|
|||||||
JSL UseImplicitRegIndexedLocalJumpTable; Goto the SprAction we are currently in
|
JSL UseImplicitRegIndexedLocalJumpTable; Goto the SprAction we are currently in
|
||||||
|
|
||||||
dw KydrogBoss_Init ; 00
|
dw KydrogBoss_Init ; 00
|
||||||
|
|
||||||
dw KydrogBoss_WalkState ; 01
|
dw KydrogBoss_WalkState ; 01
|
||||||
|
|
||||||
dw KydrogBoss_WalkForward ; 02
|
dw KydrogBoss_WalkForward ; 02
|
||||||
dw KydrogBoss_WalkLeft ; 03
|
dw KydrogBoss_WalkLeft ; 03
|
||||||
dw KydrogBoss_WalkRight ; 04
|
dw KydrogBoss_WalkRight ; 04
|
||||||
dw KydrogBoss_WalkBackward ; 05
|
dw KydrogBoss_WalkBackward ; 05
|
||||||
|
|
||||||
dw KydrogBoss_TakeDamage ; 06
|
dw KydrogBoss_TakeDamage ; 06
|
||||||
dw KydrogBoss_TauntPlayer ; 07
|
dw KydrogBoss_TauntPlayer ; 07
|
||||||
dw KydrogBoss_SummonStalfos ; 08
|
dw KydrogBoss_SummonStalfos ; 08
|
||||||
|
|
||||||
dw KydrogBoss_Death ; 09
|
dw KydrogBoss_Death ; 09
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
KydrogBoss_Init:
|
KydrogBoss_Init:
|
||||||
{
|
{
|
||||||
@@ -177,8 +174,6 @@ Sprite_KydrogBoss_Main:
|
|||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
KydrogBoss_WalkState:
|
KydrogBoss_WalkState:
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -196,8 +191,6 @@ Sprite_KydrogBoss_Main:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
.no_offspring
|
.no_offspring
|
||||||
; \return $0E is low byte of player_y_pos - sprite_y_pos
|
|
||||||
; \return $0F is low byte of player_x_pos - sprite_x_pos
|
|
||||||
LDA #$50 : STA $09, X
|
LDA #$50 : STA $09, X
|
||||||
JSL Sprite_DirectionToFacePlayer
|
JSL Sprite_DirectionToFacePlayer
|
||||||
TYA : CMP.b #$02 : BCC .WalkRight
|
TYA : CMP.b #$02 : BCC .WalkRight
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
!SPRID = $A0; The sprite ID you are overwriting (HEX)
|
!SPRID = $A0 ; The sprite ID you are overwriting (HEX)
|
||||||
!NbrTiles = 00 ; Number of tiles used in a frame
|
!NbrTiles = 06 ; Number of tiles used in a frame
|
||||||
!Harmless = 01 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
|
!Harmless = 01 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
|
||||||
!HVelocity = 00 ; Is your sprite going super fast? put 01 if it is
|
!HVelocity = 00 ; Is your sprite going super fast? put 01 if it is
|
||||||
!Health = 00 ; Number of Health the sprite have
|
!Health = 00 ; Number of Health the sprite have
|
||||||
@@ -36,8 +36,8 @@ Sprite_DekuScrub_Long:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
JSR Sprite_DekuScrub_Draw ; Call the draw code
|
JSR Sprite_DekuScrub_Draw ; Call the draw code
|
||||||
JSL Sprite_CheckActive ; Check if game is not paused
|
JSL Sprite_CheckActive ; Check if game is not paused
|
||||||
BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive
|
BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive
|
||||||
|
|
||||||
JSR Sprite_DekuScrub_Main ; Call the main sprite code
|
JSR Sprite_DekuScrub_Main ; Call the main sprite code
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ Sprite_DekuScrub_Prep:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
LDA.l $7EF301
|
LDA.l $7EF301
|
||||||
BEQ .PlayIntro
|
BEQ .PlayIntro
|
||||||
STZ.w $0DD0, X ; Kill the sprite
|
STZ.w $0DD0, X ; Kill the sprite
|
||||||
.PlayIntro
|
.PlayIntro
|
||||||
|
|
||||||
@@ -65,8 +65,8 @@ Sprite_DekuScrub_Prep:
|
|||||||
|
|
||||||
Sprite_DekuScrub_Main:
|
Sprite_DekuScrub_Main:
|
||||||
{
|
{
|
||||||
LDA.w SprAction, X; Load the SprAction
|
LDA.w SprAction, X ; Load the SprAction
|
||||||
JSL UseImplicitRegIndexedLocalJumpTable; Goto the SprAction we are currently in
|
JSL UseImplicitRegIndexedLocalJumpTable ; Goto the SprAction we are currently in
|
||||||
|
|
||||||
dw EstadoInactivo
|
dw EstadoInactivo
|
||||||
dw QuiereCuracion
|
dw QuiereCuracion
|
||||||
@@ -86,8 +86,8 @@ Sprite_DekuScrub_Main:
|
|||||||
QuiereCuracion:
|
QuiereCuracion:
|
||||||
{
|
{
|
||||||
%PlayAnimation(0, 1, 16)
|
%PlayAnimation(0, 1, 16)
|
||||||
LDA $FE : BEQ .ninguna_cancion
|
LDA $FE : BEQ .ninguna_cancion
|
||||||
STZ $FE
|
STZ $FE
|
||||||
LDA.b #$C0 : STA.w SprTimerD, X
|
LDA.b #$C0 : STA.w SprTimerD, X
|
||||||
%GotoAction(2)
|
%GotoAction(2)
|
||||||
.ninguna_cancion
|
.ninguna_cancion
|
||||||
@@ -98,7 +98,7 @@ Sprite_DekuScrub_Main:
|
|||||||
{
|
{
|
||||||
%PlayAnimation(0, 1, 16)
|
%PlayAnimation(0, 1, 16)
|
||||||
|
|
||||||
LDA.w SprTimerD, X : BNE +
|
LDA.w SprTimerD, X : BNE +
|
||||||
%ShowUnconditionalMessage($141)
|
%ShowUnconditionalMessage($141)
|
||||||
LDA.b #$C0 : STA.w SprTimerD, X
|
LDA.b #$C0 : STA.w SprTimerD, X
|
||||||
|
|
||||||
@@ -111,9 +111,9 @@ Sprite_DekuScrub_Main:
|
|||||||
{
|
{
|
||||||
LDA.w SprTimerD, X : BNE +
|
LDA.w SprTimerD, X : BNE +
|
||||||
|
|
||||||
LDY #$0F : STZ $02E9
|
LDY #$0F : STZ $02E9
|
||||||
JSL Link_ReceiveItem
|
JSL Link_ReceiveItem
|
||||||
LDA #$01 : STA.l $7EF301
|
LDA #$01 : STA.l $7EF301
|
||||||
LDA.b #$00 : STA $0DD0, X
|
LDA.b #$00 : STA $0DD0, X
|
||||||
+
|
+
|
||||||
RTS
|
RTS
|
||||||
@@ -123,79 +123,78 @@ Sprite_DekuScrub_Main:
|
|||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
Sprite_DekuScrub_Draw:
|
Sprite_DekuScrub_Draw:
|
||||||
JSL Sprite_PrepOamCoord
|
{
|
||||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
JSL Sprite_PrepOamCoord
|
||||||
|
JSL Sprite_OAM_AllocateDeferToPlayer
|
||||||
|
|
||||||
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
||||||
LDA .start_index, Y : STA $06
|
LDA .start_index, Y : STA $06
|
||||||
|
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
||||||
LDY.b #$00
|
LDY.b #$00
|
||||||
.nextTile
|
.nextTile
|
||||||
|
|
||||||
PHX ; Save current Tile Index?
|
PHX ; Save current Tile Index?
|
||||||
|
|
||||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||||
|
|
||||||
PHA ; Keep the value with animation index offset?
|
PHA ; Keep the value with animation index offset?
|
||||||
|
|
||||||
ASL A : TAX
|
ASL A : TAX
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||||
AND.w #$0100 : STA $0E
|
AND.w #$0100 : STA $0E
|
||||||
INY
|
INY
|
||||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||||
CLC : ADC #$0010 : CMP.w #$0100
|
CLC : ADC #$0010 : CMP.w #$0100
|
||||||
SEP #$20
|
SEP #$20
|
||||||
BCC .on_screen_y
|
BCC .on_screen_y
|
||||||
|
|
||||||
LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way
|
LDA.b #$F0 : STA ($90), Y ;Put the sprite out of the way
|
||||||
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 (without the *2 not 16bit anymore)
|
||||||
INY
|
INY
|
||||||
LDA .chr, X : STA ($90), Y
|
LDA .chr, X : STA ($90), Y
|
||||||
INY
|
INY
|
||||||
LDA .properties, X : STA ($90), Y
|
LDA .properties, X : STA ($90), Y
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
TYA : LSR #2 : TAY
|
TYA : LSR #2 : TAY
|
||||||
|
|
||||||
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||||
|
|
||||||
PLY : INY
|
PLY : INY
|
||||||
|
|
||||||
PLX : DEX : BPL .nextTile
|
PLX : DEX : BPL .nextTile
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
.start_index
|
.start_index
|
||||||
db $00, $04
|
db $00, $04
|
||||||
.nbr_of_tiles
|
.nbr_of_tiles
|
||||||
db 3, 3
|
db 3, 3
|
||||||
.x_offsets
|
.x_offsets
|
||||||
dw 4, -4, -4, 4
|
dw 4, -4, -4, 4
|
||||||
dw 4, -4, -4, 4
|
dw 4, -4, -4, 4
|
||||||
.y_offsets
|
.y_offsets
|
||||||
dw 0, 0, -8, -8
|
dw 0, 0, -8, -8
|
||||||
dw 0, 0, -8, -8
|
dw 0, 0, -8, -8
|
||||||
.chr
|
.chr
|
||||||
db $2C, $2C, $0C, $0C
|
db $2C, $2C, $0C, $0C
|
||||||
db $2E, $2E, $0E, $0E
|
db $2E, $2E, $0E, $0E
|
||||||
.properties
|
.properties
|
||||||
db $33, $73, $33, $73
|
db $33, $73, $33, $73
|
||||||
db $33, $73, $33, $73
|
db $33, $73, $33, $73
|
||||||
.sizes
|
.sizes
|
||||||
db $02, $02, $02, $02
|
db $02, $02, $02, $02
|
||||||
db $02, $02, $02, $02
|
db $02, $02, $02, $02
|
||||||
|
}
|
||||||
@@ -1,40 +1,5 @@
|
|||||||
;==============================================================================
|
;==============================================================================
|
||||||
; Farore Sprite
|
; Farore Sprite Properties
|
||||||
;
|
|
||||||
;==============================================================================
|
|
||||||
|
|
||||||
InCutScene = $7EF303
|
|
||||||
|
|
||||||
org $0083F8
|
|
||||||
LDA InCutScene : BEQ .notInCutscene
|
|
||||||
STZ $F0
|
|
||||||
STZ $F2
|
|
||||||
STZ $F4
|
|
||||||
STZ $F6
|
|
||||||
STZ $F8
|
|
||||||
STZ $FA ; kill all input
|
|
||||||
|
|
||||||
.notInCutscene
|
|
||||||
|
|
||||||
RTS
|
|
||||||
|
|
||||||
warnpc $00841E
|
|
||||||
|
|
||||||
incsrc sprite_macros.asm
|
|
||||||
incsrc sprite_functions_hooks.asm
|
|
||||||
|
|
||||||
;==============================================================================
|
|
||||||
|
|
||||||
org $298000
|
|
||||||
incsrc sprite_new_table.asm
|
|
||||||
|
|
||||||
;==============================================================================
|
|
||||||
|
|
||||||
org $308000
|
|
||||||
incsrc sprite_new_functions.asm
|
|
||||||
|
|
||||||
;==============================================================================
|
|
||||||
; Sprite Properties
|
|
||||||
;==============================================================================
|
;==============================================================================
|
||||||
!SPRID = $73; The sprite ID you are overwriting (HEX)
|
!SPRID = $73; The sprite ID you are overwriting (HEX)
|
||||||
!NbrTiles = 2 ; Number of tiles used in a frame
|
!NbrTiles = 2 ; Number of tiles used in a frame
|
||||||
|
|||||||
53
Sprites/sprites.asm
Normal file
53
Sprites/sprites.asm
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
InCutScene = $7EF303
|
||||||
|
|
||||||
|
org $0083F8
|
||||||
|
LDA InCutScene : BEQ .notInCutscene
|
||||||
|
STZ $F0
|
||||||
|
STZ $F2
|
||||||
|
STZ $F4
|
||||||
|
STZ $F6
|
||||||
|
STZ $F8
|
||||||
|
STZ $FA ; kill all input
|
||||||
|
|
||||||
|
.notInCutscene
|
||||||
|
|
||||||
|
RTS
|
||||||
|
|
||||||
|
warnpc $00841E
|
||||||
|
|
||||||
|
incsrc ZSpriteLib/sprite_macros.asm
|
||||||
|
incsrc ZSpriteLib/sprite_functions_hooks.asm
|
||||||
|
|
||||||
|
;==============================================================================
|
||||||
|
|
||||||
|
org $298000
|
||||||
|
incsrc ZSpriteLib/sprite_new_table.asm
|
||||||
|
|
||||||
|
;==============================================================================
|
||||||
|
|
||||||
|
org $308000
|
||||||
|
incsrc ZSpriteLib/sprite_new_functions.asm
|
||||||
|
|
||||||
|
incsrc "Sprites/farore.asm"
|
||||||
|
print "End of farore.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Sprites/Kydrog/kydrog.asm"
|
||||||
|
print "End of kydrog.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Sprites/Kydrog/kydrog_boss.asm"
|
||||||
|
print "End of kydrog_boss.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Sprites/maku_tree.asm"
|
||||||
|
print "End of maku_tree.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Sprites/mask_salesman.asm"
|
||||||
|
print "End of mask_salesman.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Sprites/deku_scrub.asm"
|
||||||
|
print "End of deku_scrub.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Sprites/anti_kirby.asm"
|
||||||
|
print "End of anti_kirby.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Sprites/VillageDog/village_dog.asm"
|
||||||
|
print "End of village_dog.asm ", pc
|
||||||
0
Sprites/zora_prince.asm
Normal file
0
Sprites/zora_prince.asm
Normal file
Reference in New Issue
Block a user