Fix Bow item always shooting silver arrows
This commit is contained in:
@@ -13,7 +13,7 @@ NothingGFX:
|
|||||||
|
|
||||||
BowsGFX:
|
BowsGFX:
|
||||||
dw $28BA, $28E9, $28E8, $28CB ; Empty bow
|
dw $28BA, $28E9, $28E8, $28CB ; Empty bow
|
||||||
dw $28BA, $284A, $2849, $28CB ; Bow and arrows
|
dw $28BA, $28BB, $24CA, $28CB ; Bow and arrows
|
||||||
dw $28BA, $28E9, $28E8, $28CB ; Empty silvers bow
|
dw $28BA, $28E9, $28E8, $28CB ; Empty silvers bow
|
||||||
dw $28BA, $28BB, $24CA, $28CB ; Silver bow and arrows
|
dw $28BA, $28BB, $24CA, $28CB ; Silver bow and arrows
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ org $0DFDAB
|
|||||||
|
|
||||||
; Partial hearts draw position
|
; Partial hearts draw position
|
||||||
org $0DF14F
|
org $0DF14F
|
||||||
SEP #$30
|
SEP #$30
|
||||||
LDA.b #$44 : STA $00
|
LDA.b #$44 : STA $00
|
||||||
LDA.b #$C7 : STA $01
|
LDA.b #$C7 : STA $01
|
||||||
LDA.b #$7E : STA $02
|
LDA.b #$7E : STA $02
|
||||||
@@ -49,6 +49,8 @@ org $2E8000
|
|||||||
|
|
||||||
HUD_Update:
|
HUD_Update:
|
||||||
{
|
{
|
||||||
|
; JSL LinkState_GameboyForm
|
||||||
|
|
||||||
JSR HUD_UpdateItemBox
|
JSR HUD_UpdateItemBox
|
||||||
|
|
||||||
.ignoreItemBox ; ALTERNATE ENTRY POINT
|
.ignoreItemBox ; ALTERNATE ENTRY POINT
|
||||||
@@ -147,7 +149,7 @@ HUD_Update:
|
|||||||
LDA #$A00C : STA $7EC7B2
|
LDA #$A00C : STA $7EC7B2
|
||||||
|
|
||||||
; Check if the user has bombs equipped
|
; Check if the user has bombs equipped
|
||||||
LDX $0202 : LDA $7EF33F, X : AND.w #$00FF
|
LDX $0202 : LDA $7EF33F, X : AND.w #$00FF
|
||||||
CPX.w #$0004 : BNE .not_bombs
|
CPX.w #$0004 : BNE .not_bombs
|
||||||
|
|
||||||
; Number of bombs Link has.
|
; Number of bombs Link has.
|
||||||
@@ -163,7 +165,7 @@ HUD_Update:
|
|||||||
|
|
||||||
.not_bombs
|
.not_bombs
|
||||||
; Check if the user has arrows equipped
|
; Check if the user has arrows equipped
|
||||||
LDX $0202 : LDA $7EF33F, X : AND.w #$00FF
|
LDX $0202 : LDA $7EF33F, X : AND.w #$00FF
|
||||||
CPX.w #$0001 : BNE .not_arrows
|
CPX.w #$0001 : BNE .not_arrows
|
||||||
|
|
||||||
; Number of Arrows Link has.
|
; Number of Arrows Link has.
|
||||||
@@ -190,7 +192,7 @@ HUD_Update:
|
|||||||
|
|
||||||
; The key digit, which is optionally drawn.
|
; The key digit, which is optionally drawn.
|
||||||
; Also check to see if the key spot is blank
|
; Also check to see if the key spot is blank
|
||||||
LDA $05 : AND.w #$00FF : ORA.w #$2400 : STA $7EC7A4
|
LDA $05 : AND.w #$00FF : ORA.w #$2400 : STA $7EC7A4
|
||||||
CMP.w #$247F : BNE .dontBlankKeyIcon
|
CMP.w #$247F : BNE .dontBlankKeyIcon
|
||||||
|
|
||||||
; If the key digit is blank, also blank out the key icon.
|
; If the key digit is blank, also blank out the key icon.
|
||||||
@@ -204,12 +206,12 @@ HUD_Update:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
Full = $3C5F
|
Full = $3C5F
|
||||||
MostlyFull = $3C4D
|
MostlyFull = $3C4D
|
||||||
KindaFull = $3C4E
|
KindaFull = $3C4E
|
||||||
HalfEmpty = $3C4F
|
HalfEmpty = $3C4F
|
||||||
AlmostEmpty = $3C5E
|
AlmostEmpty = $3C5E
|
||||||
Empty = $3C4C
|
Empty = $3C4C
|
||||||
|
|
||||||
New_MagicTilemap:
|
New_MagicTilemap:
|
||||||
dw Empty, Empty, Empty, Empty, Empty
|
dw Empty, Empty, Empty, Empty, Empty
|
||||||
@@ -234,7 +236,7 @@ MagicTilemap:
|
|||||||
dw $3C4F, $3C5F, $3C5F, $3C5F, $3C5F
|
dw $3C4F, $3C5F, $3C5F, $3C5F, $3C5F
|
||||||
dw $3C5E, $3C5F, $3C5F, $3C5F, $3C5F
|
dw $3C5E, $3C5F, $3C5F, $3C5F, $3C5F
|
||||||
dw $3C5F, $3C5F, $3C5F, $3C5F, $3C5F
|
dw $3C5F, $3C5F, $3C5F, $3C5F, $3C5F
|
||||||
; value 80
|
; value 0x80 aka 128
|
||||||
|
|
||||||
HUD_DrawMagicMeter:
|
HUD_DrawMagicMeter:
|
||||||
{
|
{
|
||||||
@@ -242,8 +244,6 @@ HUD_DrawMagicMeter:
|
|||||||
; X = ((MP & 0xFF)) + 7) & 0xFFF8)
|
; X = ((MP & 0xFF)) + 7) & 0xFFF8)
|
||||||
LDA $7EF36E : AND.w #$00FF : CLC : ADC #$0007 : AND.w #$FFF8 : TAX
|
LDA $7EF36E : AND.w #$00FF : CLC : ADC #$0007 : AND.w #$FFF8 : TAX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.draw_magic_meter
|
.draw_magic_meter
|
||||||
|
|
||||||
LDA.l (MagicTilemap)+0, X : STA $7EC76A
|
LDA.l (MagicTilemap)+0, X : STA $7EC76A
|
||||||
@@ -260,12 +260,22 @@ HUD_UpdateItemBox:
|
|||||||
{
|
{
|
||||||
SEP #$30
|
SEP #$30
|
||||||
; Dost thou haveth the the bow?
|
; Dost thou haveth the the bow?
|
||||||
LDA $7EF340 : BEQ .havethNoBow
|
LDA $7EF340 : BEQ .no_bow
|
||||||
LDX.b #$04
|
|
||||||
|
CMP.b #$03 : BCC .no_silver_arrows
|
||||||
|
|
||||||
; check how many arrows the player has
|
; check how many arrows the player has
|
||||||
LDA $7EF377 : BNE .drawBowItemIcon
|
LDA $7EF377 : BNE .drawBowItemIcon
|
||||||
LDX.b #$03
|
LDX.b #$03
|
||||||
BRA .drawBowItemIcon
|
BRA .drawBowItemIcon
|
||||||
|
|
||||||
|
.no_silver_arrows
|
||||||
|
|
||||||
|
LDX.b #$02
|
||||||
|
|
||||||
|
LDA $7EF377 : BNE .drawBowItemIcon
|
||||||
|
|
||||||
|
LDX.b #$01
|
||||||
|
|
||||||
.drawBowItemIcon
|
.drawBowItemIcon
|
||||||
; values of X correspond to how the icon will end up drawn:
|
; values of X correspond to how the icon will end up drawn:
|
||||||
@@ -275,25 +285,25 @@ HUD_UpdateItemBox:
|
|||||||
; 0x04 - silver bow with silver arrows
|
; 0x04 - silver bow with silver arrows
|
||||||
TXA : STA $7EF340
|
TXA : STA $7EF340
|
||||||
|
|
||||||
.havethNoBow
|
.no_bow
|
||||||
REP #$30
|
REP #$30
|
||||||
LDX $0202 : BEQ .noEquippedItem
|
LDX $0202 : BEQ .noEquippedItem
|
||||||
LDA $7EF33F, X : AND.w #$00FF
|
LDA $7EF33F, X : AND.w #$00FF
|
||||||
CPX.w #$0004 : BNE .bombsNotEquipped
|
CPX.w #$0004 : BNE .bombsNotEquipped
|
||||||
LDA.w #$0001
|
LDA.w #$0001
|
||||||
|
|
||||||
.bombsNotEquipped
|
.bombsNotEquipped
|
||||||
|
|
||||||
CPX.w #$0006 : BNE .bottle1NotEquipped
|
CPX.w #$0006 : BNE .bottle1NotEquipped
|
||||||
JMP .loadBottleContent
|
JMP .loadBottleContent
|
||||||
.bottle1NotEquipped
|
.bottle1NotEquipped
|
||||||
CPX.w #$000C : BNE .bottle2NotEquipped
|
CPX.w #$000C : BNE .bottle2NotEquipped
|
||||||
LDA.w #$0002
|
LDA.w #$0002
|
||||||
JMP .loadBottleContent
|
JMP .loadBottleContent
|
||||||
.bottle2NotEquipped
|
.bottle2NotEquipped
|
||||||
CPX.w #$0012 : BNE .bottle3NotEquipped
|
CPX.w #$0012 : BNE .bottle3NotEquipped
|
||||||
LDA.w #$0003
|
LDA.w #$0003
|
||||||
JMP .loadBottleContent
|
JMP .loadBottleContent
|
||||||
.bottle3NotEquipped
|
.bottle3NotEquipped
|
||||||
CPX.w #$0018 : BNE .bottleNotEquipped
|
CPX.w #$0018 : BNE .bottleNotEquipped
|
||||||
LDA.w #$0004
|
LDA.w #$0004
|
||||||
@@ -302,7 +312,7 @@ HUD_UpdateItemBox:
|
|||||||
|
|
||||||
.bottleNotEquipped
|
.bottleNotEquipped
|
||||||
CPX.w #$000D : BNE .fluteNotEquipped
|
CPX.w #$000D : BNE .fluteNotEquipped
|
||||||
LDA $030F
|
LDA $030F
|
||||||
|
|
||||||
.fluteNotEquipped
|
.fluteNotEquipped
|
||||||
|
|
||||||
@@ -334,19 +344,19 @@ HUD_UpdateHearts:
|
|||||||
; Notice no SEC was needed since carry is assumedly set.
|
; Notice no SEC was needed since carry is assumedly set.
|
||||||
SBC.w #$0008 : STA.b $00
|
SBC.w #$0008 : STA.b $00
|
||||||
LDY.w #$0004
|
LDY.w #$0004
|
||||||
JSR .drawHeart
|
JSR .drawHeart
|
||||||
INX #2
|
INX #2
|
||||||
BRA .nextHeart
|
BRA .nextHeart
|
||||||
|
|
||||||
.lessThanOneHeart
|
.lessThanOneHeart
|
||||||
CMP.w #$0005 : BCC .halfHeartOrLess
|
CMP.w #$0005 : BCC .halfHeartOrLess
|
||||||
LDY.w #$0004
|
LDY.w #$0004
|
||||||
BRA .drawHeart
|
BRA .drawHeart
|
||||||
|
|
||||||
.halfHeartOrLess
|
.halfHeartOrLess
|
||||||
CMP.w #$0001 : BCC .emptyHeart
|
CMP.w #$0001 : BCC .emptyHeart
|
||||||
LDY.w #$0002
|
LDY.w #$0002
|
||||||
BRA .drawHeart
|
BRA .drawHeart
|
||||||
|
|
||||||
.emptyHeart
|
.emptyHeart
|
||||||
RTS
|
RTS
|
||||||
@@ -367,24 +377,24 @@ HUD_UpdateHearts:
|
|||||||
|
|
||||||
HexToDecimal:
|
HexToDecimal:
|
||||||
{
|
{
|
||||||
REP #$30
|
REP #$30
|
||||||
STZ $0003
|
STZ $0003
|
||||||
LDX.w #$0000
|
LDX.w #$0000
|
||||||
LDY.w #$0002
|
LDY.w #$0002
|
||||||
.nextDigit
|
.nextDigit
|
||||||
CMP $F9F9, Y : BCC .nextLowest10sPlace
|
CMP $F9F9, Y : BCC .nextLowest10sPlace
|
||||||
SEC : SBC $F9F9, Y
|
SEC : SBC $F9F9, Y
|
||||||
INC $03, X
|
INC $03, X
|
||||||
BRA .nextDigit
|
BRA .nextDigit
|
||||||
.nextLowest10sPlace
|
.nextLowest10sPlace
|
||||||
INX : DEY #2
|
INX : DEY #2
|
||||||
BPL .nextDigit
|
BPL .nextDigit
|
||||||
STA $05
|
STA $05
|
||||||
SEP #$30
|
SEP #$30
|
||||||
LDX.b #$02
|
LDX.b #$02
|
||||||
.setNextDigitTile
|
.setNextDigitTile
|
||||||
LDA $03, X : CMP.b #$7F
|
LDA $03, X : CMP.b #$7F
|
||||||
BEQ .blankDigit
|
BEQ .blankDigit
|
||||||
ORA.b #$90
|
ORA.b #$90
|
||||||
.blankDigit
|
.blankDigit
|
||||||
STA $03, X
|
STA $03, X
|
||||||
@@ -404,11 +414,19 @@ HudItems:
|
|||||||
dw $F701, $F6F1, $F6A1, $F6B1, $F7C9, $F751
|
dw $F701, $F6F1, $F6A1, $F6B1, $F7C9, $F751
|
||||||
; flute, book, somaria, byrna, feather, bottle3
|
; flute, book, somaria, byrna, feather, bottle3
|
||||||
dw $F859, $F741, $F799, $F7A9, $F731, $F751
|
dw $F859, $F741, $F799, $F7A9, $F731, $F751
|
||||||
; deku, zora, wolf, bunny, stne
|
; deku, zora, wolf, bunny, stone, bottle4
|
||||||
dw $F6E1, $F821, $F6D1, $F7B9, $F811, $F751
|
dw $F6E1, $F821, $F6D1, $F7B9, $F811, $F751
|
||||||
}
|
}
|
||||||
|
|
||||||
; F711
|
; F711
|
||||||
|
|
||||||
|
org $0DF629
|
||||||
|
dw $20F5, $20F5, $20F5, $20F5 ; No bow
|
||||||
|
dw $28BA, $28E9, $28E8, $28CB ; Empty bow
|
||||||
|
dw $28BA, $28BB, $24CA, $28CB ; Bow and arrows
|
||||||
|
dw $28BA, $28E9, $28E8, $28CB ; Empty silvers bow
|
||||||
|
dw $28BA, $28BB, $24CA, $28CB ; Silver bow and arrows
|
||||||
|
|
||||||
; Ocarina
|
; Ocarina
|
||||||
org $0DF859
|
org $0DF859
|
||||||
dw $2CD4, $2CD5, $2CE4, $2CE5
|
dw $2CD4, $2CD5, $2CE4, $2CE5
|
||||||
@@ -457,7 +475,6 @@ org $0DF6A1
|
|||||||
org $0DF6B1
|
org $0DF6B1
|
||||||
dw $2CB0, $2CBE, $2CC0, $2CC1
|
dw $2CB0, $2CBE, $2CC0, $2CC1
|
||||||
|
|
||||||
|
|
||||||
; Mirror
|
; Mirror
|
||||||
org $0DF7C9
|
org $0DF7C9
|
||||||
dw $20F5, $20F5, $20F5, $20F5 ; No mirror
|
dw $20F5, $20F5, $20F5, $20F5 ; No mirror
|
||||||
@@ -579,29 +596,29 @@ FloorIndicatorNumberLow:
|
|||||||
org $0AFD0C
|
org $0AFD0C
|
||||||
FloorIndicator:
|
FloorIndicator:
|
||||||
{
|
{
|
||||||
REP #$30
|
REP #$30
|
||||||
LDA $04A0 : AND.w #$00FF : BEQ .hideIndicator
|
LDA $04A0 : AND.w #$00FF : BEQ .hideIndicator
|
||||||
INC A : CMP.w #$00C0 : BNE .dontDisable
|
INC A : CMP.w #$00C0 : BNE .dontDisable
|
||||||
; if the count up timer reaches 0x00BF frames, disable the floor indicator during the next frame.
|
; if the count up timer reaches 0x00BF frames, disable the floor indicator during the next frame.
|
||||||
LDA.w #$0000
|
LDA.w #$0000
|
||||||
.dontDisable
|
.dontDisable
|
||||||
STA $04A0
|
STA $04A0
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
LDA.w #$251E : STA $7EC7F0
|
LDA.w #$251E : STA $7EC7F0
|
||||||
INC A : STA $7EC832
|
INC A : STA $7EC832
|
||||||
INC A : STA $7EC830
|
INC A : STA $7EC830
|
||||||
LDA.w #$250F : STA $7EC7F2
|
LDA.w #$250F : STA $7EC7F2
|
||||||
LDX.w #$0000
|
LDX.w #$0000
|
||||||
|
|
||||||
; this confused me at first, but it's actually looking at whether $A4[1]
|
; this confused me at first, but it's actually looking at whether $A4[1]
|
||||||
; has a negative value $A3 has nothing to do with $A4
|
; has a negative value $A3 has nothing to do with $A4
|
||||||
LDA $A3 : BMI .basementFloor
|
LDA $A3 : BMI .basementFloor
|
||||||
; check which floor Link is on.
|
; check which floor Link is on.
|
||||||
LDA $A4 : BNE .notFloor1F
|
LDA $A4 : BNE .notFloor1F
|
||||||
LDA $A0 : CMP.w #$0002 : BEQ .sanctuaryRatRoom
|
LDA $A0 : CMP.w #$0002 : BEQ .sanctuaryRatRoom
|
||||||
SEP #$20
|
SEP #$20
|
||||||
; Check the world state
|
; Check the world state
|
||||||
LDA $7EF3C5 : CMP.b #$02 : BCS .noRainSound
|
LDA $7EF3C5 : CMP.b #$02 : BCS .noRainSound
|
||||||
; cause the ambient rain sound to occur (indoor version)
|
; cause the ambient rain sound to occur (indoor version)
|
||||||
LDA.b #$03 : STA $012D
|
LDA.b #$03 : STA $012D
|
||||||
.noRainSound
|
.noRainSound
|
||||||
@@ -611,12 +628,12 @@ FloorIndicator:
|
|||||||
LDA $A4 : AND.w #$00FF
|
LDA $A4 : AND.w #$00FF
|
||||||
BRA .setFloorIndicatorNumber
|
BRA .setFloorIndicatorNumber
|
||||||
.basementFloor
|
.basementFloor
|
||||||
SEP #$20
|
SEP #$20
|
||||||
; turn off any ambient sound effects
|
; turn off any ambient sound effects
|
||||||
LDA.b #$05 : STA $012D
|
LDA.b #$05 : STA $012D
|
||||||
REP #$20
|
REP #$20
|
||||||
INX #2
|
INX #2
|
||||||
LDA $A4 : ORA.w #$FF00 : EOR.w #$FFFF
|
LDA $A4 : ORA.w #$FF00 : EOR.w #$FFFF
|
||||||
.setFloorIndicatorNumber
|
.setFloorIndicatorNumber
|
||||||
|
|
||||||
ASL A : TAY
|
ASL A : TAY
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Menu_ItemIndex:
|
|||||||
; Ocarina, Book, Somaria, Byrna, Feather, Bottle3
|
; Ocarina, Book, Somaria, Byrna, Feather, Bottle3
|
||||||
db $08, $0C, $12, $0D, $07, $0B
|
db $08, $0C, $12, $0D, $07, $0B
|
||||||
; Deku, Zora, Wolf, Bunny Hood, Stone Mask, Bottle4
|
; Deku, Zora, Wolf, Bunny Hood, Stone Mask, Bottle4
|
||||||
db $11, $0F, $08, $10, $13, $0B
|
db $11, $0F, $08, $10, $13, $0B
|
||||||
|
|
||||||
; -----------------------------------------------------------------------------
|
; -----------------------------------------------------------------------------
|
||||||
; Decides which graphics is drawn
|
; Decides which graphics is drawn
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
;==============================================================================
|
;==============================================================================
|
||||||
; Sprite Properties
|
; Sprite Properties
|
||||||
;==============================================================================
|
;==============================================================================
|
||||||
!SPRID = $9E; The sprite ID you are overwriting (HEX)
|
!SPRID = $9E ; The sprite ID you are overwriting (HEX)
|
||||||
!NbrTiles = 00 ; Number of tiles used in a frame
|
!NbrTiles = 00 ; 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 = 0 ; Number of Health the sprite have
|
!Health = 0 ; Number of Health the sprite have
|
||||||
!Damage = 0 ; (08 is a whole heart), 04 is half heart
|
!Damage = 0 ; (08 is a whole heart), 04 is half heart
|
||||||
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
||||||
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
|
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
|
||||||
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
||||||
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
||||||
!Palette = 0 ; Unused in this template (can be 0 to 7)
|
!Palette = 0 ; Unused in this template (can be 0 to 7)
|
||||||
!Hitbox = 0 ; 00 to 31, can be viewed in sprite draw tool
|
!Hitbox = 0 ; 00 to 31, can be viewed in sprite draw tool
|
||||||
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
||||||
!Statis = 00 ; 00 = is sprite is alive?, (kill all enemies room)
|
!Statis = 00 ; 00 = is sprite is alive?, (kill all enemies room)
|
||||||
!CollisionLayer = 00 ; 01 = will check both layer for collision
|
!CollisionLayer = 00 ; 01 = will check both layer for collision
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
!DeflectArrow = 00 ; 01 = deflect arrows
|
!DeflectArrow = 00 ; 01 = deflect arrows
|
||||||
!WaterSprite = 00 ; 01 = can only walk shallow water
|
!WaterSprite = 00 ; 01 = can only walk shallow water
|
||||||
!Blockable = 00 ; 01 = can be blocked by link's shield?
|
!Blockable = 00 ; 01 = can be blocked by link's shield?
|
||||||
!Prize = 0 ; 00-15 = the prize pack the sprite will drop from
|
!Prize = 0 ; 00-15 = the prize pack the sprite will drop from
|
||||||
!Sound = 00 ; 01 = Play different sound when taking damage
|
!Sound = 00 ; 01 = Play different sound when taking damage
|
||||||
!Interaction = 00 ; ?? No documentation
|
!Interaction = 00 ; ?? No documentation
|
||||||
!Statue = 00 ; 01 = Sprite is statue
|
!Statue = 00 ; 01 = Sprite is statue
|
||||||
@@ -53,7 +53,10 @@ Sprite_MakuTree_Prep:
|
|||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
|
LDA.l $7EF300
|
||||||
|
BNE .intro_is_done
|
||||||
|
STZ.w $0DD0, X ; Kill the sprite
|
||||||
|
.intro_is_done
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
@@ -63,14 +66,39 @@ Sprite_MakuTree_Prep:
|
|||||||
|
|
||||||
Sprite_MakuTree_Main:
|
Sprite_MakuTree_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 MakuTree_Speak
|
dw MakuTree_Handler
|
||||||
|
dw MakuTree_MeetLink
|
||||||
|
dw MakuTree_GiveBow
|
||||||
|
|
||||||
MakuTree_Speak:
|
MakuTree_Handler:
|
||||||
{
|
{
|
||||||
%ShowSolicitedMessage($20)
|
; Check the progress flags
|
||||||
|
LDA $7EF3CB : CMP.b #$01 : BEQ .has_met_link
|
||||||
|
%GotoAction(1)
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.has_met_link
|
||||||
|
%ShowSolicitedMessage($22)
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
MakuTree_MeetLink:
|
||||||
|
{
|
||||||
|
%ShowSolicitedMessage($20) : BCC .no_talk
|
||||||
|
LDA #$01 : STA $7EF3CB
|
||||||
|
%GotoAction(2)
|
||||||
|
.no_talk
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
MakuTree_GiveBow:
|
||||||
|
{
|
||||||
|
; Give Link the Bow
|
||||||
|
LDY #$0B : JSL Link_ReceiveItem
|
||||||
|
%GotoAction(0)
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +116,7 @@ Sprite_MakuTree_Draw:
|
|||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
@@ -106,12 +134,12 @@ Sprite_MakuTree_Draw:
|
|||||||
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user