Add PlayerTransform, CheckNewRButtonPress fns
This commit is contained in:
@@ -1000,7 +1000,7 @@ ApplyGoldstarDamageClass:
|
||||
|
||||
CheckForSwitchToGoldstar:
|
||||
{
|
||||
%CheckNewR_ButtonPress() : BEQ .continue
|
||||
JSL CheckNewRButtonPress : BEQ .continue
|
||||
LDA.l $7EF342 : CMP.b #$02 : BNE .continue
|
||||
LDA.w GoldstarOrHookshot : CMP.b #$01 : BEQ .set_hookshot
|
||||
LDA.b #$01 : STA.w GoldstarOrHookshot
|
||||
|
||||
@@ -108,14 +108,14 @@ LinkState_GameboyForm:
|
||||
LDA $02B2 : CMP.b #$06 : BEQ .already_gbc
|
||||
LDA $0FFF : BEQ .return ; not in dark world
|
||||
.transform
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
LDA #$3B : STA $BC ; change link's sprite
|
||||
LDA #$06 : STA $02B2
|
||||
JSL UpdateGbcPalette
|
||||
BRA .return
|
||||
|
||||
.already_gbc
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
LDA #$10 : STA $BC
|
||||
STZ $02B2
|
||||
JSL Palette_ArmorAndGloves
|
||||
|
||||
@@ -1,19 +1,3 @@
|
||||
; =========================================================
|
||||
; Macros
|
||||
|
||||
macro PlayerTransform()
|
||||
LDY.b #$04 : LDA.b #$23
|
||||
JSL AddTransformationCloud
|
||||
LDA.b #$14 : STA.w $0CF8
|
||||
JSL $0DBB67 ; Link_CalculateSFXPan
|
||||
ORA.w $0CF8
|
||||
STA $012E
|
||||
endmacro
|
||||
|
||||
macro CheckNewR_ButtonPress()
|
||||
LDA.b $F6 : BIT.b #$10
|
||||
endmacro
|
||||
|
||||
; =========================================================
|
||||
; Change Link's sprite by setting $BC to the gfx bank
|
||||
|
||||
@@ -51,8 +35,7 @@ org $09F7B5 : JSL ForceResetMask_SaveAndQuit
|
||||
org $3A8000
|
||||
StartupMasks:
|
||||
{
|
||||
; from vanilla:
|
||||
; bring the screen into force blank after NMI
|
||||
; vanilla: bring the screen into force blank after NMI
|
||||
LDA.b #$80 : STA $13
|
||||
|
||||
; set links sprite bank
|
||||
@@ -60,6 +43,17 @@ StartupMasks:
|
||||
RTL
|
||||
}
|
||||
|
||||
PlayerTransform:
|
||||
{
|
||||
LDY.b #$04 : LDA.b #$23
|
||||
JSL AddTransformationCloud
|
||||
LDA.b #$14 : STA.w $0CF8
|
||||
JSL $0DBB67 ; Link_CalculateSFXPan
|
||||
ORA.w $0CF8
|
||||
STA $012E
|
||||
RTL
|
||||
}
|
||||
|
||||
ResetToLinkGraphics:
|
||||
{
|
||||
LDA $0FFF : BNE +
|
||||
@@ -197,13 +191,11 @@ Palette_ArmorAndGloves:
|
||||
; =========================================================
|
||||
; Overworld Palette Persist
|
||||
|
||||
Overworld_CgramAuxToMain_Override:
|
||||
Overworld_CgramAuxToMain:
|
||||
{
|
||||
; Copies the auxiliary CGRAM buffer to the main one
|
||||
; Causes NMI to reupload the palette.
|
||||
|
||||
REP #$20
|
||||
|
||||
LDX.b #$00
|
||||
|
||||
.loop
|
||||
@@ -217,16 +209,21 @@ Overworld_CgramAuxToMain_Override:
|
||||
LDA !CurrentMask : BNE .has_mask_palette
|
||||
LDA $7EC4C0, X : STA $7EC6C0, X
|
||||
.has_mask_palette
|
||||
INX #2 : CPX.b #$40 : BNE .loop
|
||||
INX #2 : CPX.b #$40 : BNE .loop
|
||||
|
||||
SEP #$20
|
||||
|
||||
; tell NMI to upload new CGRAM data
|
||||
INC $15
|
||||
|
||||
RTL
|
||||
}
|
||||
|
||||
pushpc
|
||||
org $02C769 ; Overworld_CgramAuxToMain
|
||||
JSL Overworld_CgramAuxToMain
|
||||
RTS
|
||||
pullpc
|
||||
|
||||
; =========================================================
|
||||
|
||||
LinkState_ResetMaskAnimated:
|
||||
@@ -245,7 +242,7 @@ LinkState_ResetMaskAnimated:
|
||||
LDA.w $0202 : SEC : SBC.b #$13 : BEQ .no_transform
|
||||
|
||||
.transform
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
JSL ResetToLinkGraphics
|
||||
|
||||
.gbc_form
|
||||
@@ -254,24 +251,14 @@ LinkState_ResetMaskAnimated:
|
||||
RTL
|
||||
}
|
||||
|
||||
pushpc
|
||||
|
||||
; =========================================================
|
||||
|
||||
org $02C769
|
||||
Overworld_CgramAuxToMain:
|
||||
JSL Overworld_CgramAuxToMain_Override
|
||||
RTS
|
||||
|
||||
; =========================================================
|
||||
; Change which mask forms have access to the sword.
|
||||
; =========================================================
|
||||
|
||||
pushpc
|
||||
; Link_CheckForSwordSwing
|
||||
org $079CD9
|
||||
JSL LinkItem_CheckForSwordSwing_Masks
|
||||
|
||||
org $079CD9 : JSL LinkItem_CheckForSwordSwing_Masks
|
||||
pullpc
|
||||
|
||||
LinkItem_CheckForSwordSwing_Masks:
|
||||
{
|
||||
LDA !CurrentMask : BEQ .return
|
||||
@@ -293,11 +280,11 @@ Link_TransformMask:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
PHA ; save mask ID
|
||||
%CheckNewR_ButtonPress() : BEQ .return
|
||||
JSL CheckNewRButtonPress : BEQ .return
|
||||
LDA $6C : BNE .return ; in a doorway
|
||||
LDA $0FFC : BNE .return ; can't open menu
|
||||
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
PLA ; restore mask ID
|
||||
TAY
|
||||
CPY !CurrentMask : BEQ .unequip ; check if mask is on
|
||||
@@ -321,8 +308,6 @@ Link_TransformMask:
|
||||
db $00, $35, $36, $38, $37, $39, $3A, $3B
|
||||
}
|
||||
|
||||
; =========================================================
|
||||
|
||||
Link_TransformMoosh:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
@@ -331,13 +316,13 @@ Link_TransformMoosh:
|
||||
JMP .done
|
||||
++
|
||||
LDA.w !CurrentMask : CMP.b #$07 : BNE +
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
JSL ResetToLinkGraphics
|
||||
PLB : RTL
|
||||
+
|
||||
LDA.b #$07 : STA.w !CurrentMask
|
||||
LDA.b #$33 : STA $BC
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
JSL Palette_ArmorAndGloves
|
||||
.done
|
||||
PLB
|
||||
@@ -391,8 +376,6 @@ PrepareQuakeSpell:
|
||||
RTL
|
||||
}
|
||||
|
||||
; =========================================================
|
||||
|
||||
HandleMovement:
|
||||
{
|
||||
LDA $F0 : AND #$08 : BEQ .not_up
|
||||
@@ -752,8 +735,6 @@ Ancilla_Move_X:
|
||||
BRL Ancilla_RestoreIndex
|
||||
}
|
||||
|
||||
; ---------------------------------------------------------
|
||||
|
||||
Ancilla_Move_Y:
|
||||
{
|
||||
LDA.w $0C22, X
|
||||
@@ -790,8 +771,6 @@ Ancilla_Move_Y:
|
||||
RTS
|
||||
}
|
||||
|
||||
; =========================================================
|
||||
|
||||
Ancilla_Move_Z:
|
||||
{
|
||||
LDA.w AnciZSpeed, X
|
||||
|
||||
@@ -44,14 +44,14 @@ LinkState_CheckForMinishForm:
|
||||
CMP.b #$00 : BEQ .transform
|
||||
CMP.b #$06 : BCC .return ; don't transform if not human
|
||||
.transform
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
|
||||
LDA #$39 : STA $BC ; Change link's sprite
|
||||
LDA #$05 : STA $02B2 ; Set the current mask form
|
||||
BRA .return
|
||||
|
||||
.already_minish
|
||||
%PlayerTransform()
|
||||
JSL PlayerTransform
|
||||
JSL ResetToLinkGraphics
|
||||
|
||||
.return
|
||||
|
||||
@@ -471,7 +471,7 @@ Menu_MagicBag:
|
||||
JSR Menu_DeleteCursor_AltEntry
|
||||
INC.w $020B
|
||||
LDA.w $020B : CMP.b #$06 : BCS .zero
|
||||
BRA .continue
|
||||
BRA .continue
|
||||
|
||||
.move_down
|
||||
.move_left
|
||||
@@ -479,8 +479,8 @@ Menu_MagicBag:
|
||||
LDX.w Menu_MagicBagCursorPositions-2, Y
|
||||
JSR Menu_DeleteCursor_AltEntry
|
||||
LDA.w $020B : CMP.b #$00 : BEQ .continue
|
||||
DEC.w $020B
|
||||
BRA .continue
|
||||
DEC.w $020B
|
||||
BRA .continue
|
||||
.zero
|
||||
STZ.w $020B
|
||||
.continue
|
||||
|
||||
Reference in New Issue
Block a user