Remove Maku Tree dream logic, add Maple dream hut logic
This commit is contained in:
@@ -73,11 +73,6 @@ Sprite_MakuTree_Main:
|
|||||||
dw MakuTree_SpawnHeartContainer
|
dw MakuTree_SpawnHeartContainer
|
||||||
dw MakuTree_HasMetLink
|
dw MakuTree_HasMetLink
|
||||||
|
|
||||||
dw MakuTree_OfferTheDreamer
|
|
||||||
dw MakuTree_HandleResponse
|
|
||||||
dw MakuTree_HandleDreams
|
|
||||||
dw MakuTree_DreamTransition
|
|
||||||
|
|
||||||
MakuTree_Handler:
|
MakuTree_Handler:
|
||||||
{
|
{
|
||||||
; Check the progress flags
|
; Check the progress flags
|
||||||
@@ -117,103 +112,7 @@ Sprite_MakuTree_Main:
|
|||||||
{
|
{
|
||||||
%ShowSolicitedMessage($22) : BCC .no_talk
|
%ShowSolicitedMessage($22) : BCC .no_talk
|
||||||
LDA.l $7EF3D6 : ORA.b #$02 : STA.l $7EF3D6
|
LDA.l $7EF3D6 : ORA.b #$02 : STA.l $7EF3D6
|
||||||
; TODO: Activate when dreams are implemented
|
|
||||||
; LDA.l CRYSTALS : BNE .no_essences
|
|
||||||
; INC.w SprAction, X
|
|
||||||
; .no_essences
|
|
||||||
.no_talk
|
.no_talk
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
MakuTree_OfferTheDreamer:
|
|
||||||
{
|
|
||||||
%ShowSolicitedMessage($013C) : BCC .no_talk
|
|
||||||
INC.w SprAction, X
|
|
||||||
.no_talk
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
MakuTree_HandleResponse:
|
|
||||||
{
|
|
||||||
LDA.w MsgChoice : BEQ .become_dreamer
|
|
||||||
CMP.b #$01 : BEQ .said_no
|
|
||||||
RTS
|
|
||||||
.become_dreamer
|
|
||||||
INC.w SprAction, X
|
|
||||||
RTS
|
|
||||||
.said_no
|
|
||||||
%GotoAction(4)
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
MakuTree_HandleDreams:
|
|
||||||
{
|
|
||||||
; Check if Link has seen the dream
|
|
||||||
LDA.l DREAMS
|
|
||||||
CMP.b #$01 : BCC .mushroom_grotto
|
|
||||||
CMP.b #$02 : BCC .tail_palace
|
|
||||||
CMP.b #$04 : BCC .kalyxo_castle
|
|
||||||
CMP.b #$08 : BCC .zora_temple
|
|
||||||
CMP.b #$10 : BCC .glacia_estate
|
|
||||||
CMP.b #$20 : BCC .goron_mines
|
|
||||||
CMP.b #$40 : BCC .dragon_ship
|
|
||||||
|
|
||||||
; .kzt dimg
|
|
||||||
; m - Mushroom Grotto
|
|
||||||
; t - Tail Palace
|
|
||||||
; k - Kalyxo Castle
|
|
||||||
; z - Zora Temple
|
|
||||||
; i - Glacia Estate
|
|
||||||
; g - Goron Mines
|
|
||||||
; d - Dragon Ship
|
|
||||||
; CRYSTALS = $7EF37A
|
|
||||||
|
|
||||||
; TODO: Check if Link has the essence for the dream
|
|
||||||
.mushroom_grotto
|
|
||||||
LDA.b #$00 : STA.w CurrentDream
|
|
||||||
JMP .enter_dream
|
|
||||||
.tail_palace
|
|
||||||
LDA.b #$01 : STA.w CurrentDream
|
|
||||||
JMP .enter_dream
|
|
||||||
.kalyxo_castle
|
|
||||||
LDA.b #$02 : STA.w CurrentDream
|
|
||||||
JMP .enter_dream
|
|
||||||
.zora_temple
|
|
||||||
LDA.b #$03 : STA.w CurrentDream
|
|
||||||
JMP .enter_dream
|
|
||||||
.glacia_estate
|
|
||||||
LDA.b #$04 : STA.w CurrentDream
|
|
||||||
JMP .enter_dream
|
|
||||||
.goron_mines
|
|
||||||
LDA.b #$05 : STA.w CurrentDream
|
|
||||||
JMP .enter_dream
|
|
||||||
.dragon_ship
|
|
||||||
LDA.b #$06 : STA.w CurrentDream
|
|
||||||
.enter_dream
|
|
||||||
PHX
|
|
||||||
LDA.b #$16 : STA.b $5D ; Set Link to sleeping
|
|
||||||
LDA.b #$20 : JSL AncillaAdd_Blanket
|
|
||||||
LDA.b $20 : CLC : ADC.b #$04 : STA.w $0BFA,X
|
|
||||||
LDA.b $21 : STA.w $0C0E,X
|
|
||||||
LDA.b $22 : SEC : SBC.b #$08 : STA.w $0C04,X
|
|
||||||
LDA.b $23 : STA.w $0C18,X
|
|
||||||
JSL PaletteFilter_StartBlindingWhite
|
|
||||||
JSL ApplyPaletteFilter
|
|
||||||
PLX
|
|
||||||
|
|
||||||
LDA.b #$60 : STA.w SprTimerB, X
|
|
||||||
INC.w SprAction, X
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
MakuTree_DreamTransition:
|
|
||||||
{
|
|
||||||
LDA.w SprTimerB, X : BNE +
|
|
||||||
JSL Link_EnterDream
|
|
||||||
+
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +1,145 @@
|
|||||||
MapleHandler:
|
MapleHandler:
|
||||||
{
|
{
|
||||||
|
%PlayAnimation(0,1,16)
|
||||||
|
JSL Sprite_PlayerCantPassThrough
|
||||||
|
|
||||||
LDA.w SprAction, X
|
LDA.w SprAction, X
|
||||||
JSL JumpTableLocal
|
JSL JumpTableLocal
|
||||||
|
|
||||||
dw Maple_Idle
|
dw Maple_Idle
|
||||||
dw Maple_HandleDreams
|
dw Maple_FirstResponse
|
||||||
|
dw Maple_ExplainHut
|
||||||
|
dw Maple_ExplainPendants
|
||||||
|
dw Maple_CheckForPendant
|
||||||
|
dw Maple_NoNewPendant
|
||||||
|
|
||||||
|
; LDA.l $7EF351 : BEQ +
|
||||||
|
; LDA.b #$02 : STA.l $7EF351
|
||||||
|
; LDA.b #$1B : STA.w $012F
|
||||||
|
; STZ.w SprAction, X
|
||||||
|
; +
|
||||||
|
|
||||||
Maple_Idle:
|
Maple_Idle:
|
||||||
{
|
{
|
||||||
%PlayAnimation(0,1,16)
|
|
||||||
JSL Sprite_PlayerCantPassThrough
|
|
||||||
%ShowSolicitedMessage($01B3) : BCC +
|
%ShowSolicitedMessage($01B3) : BCC +
|
||||||
|
LDA.w $1CE8 : BEQ .next_response
|
||||||
|
CMP.b #$01 : BNE +
|
||||||
|
LDA.b #$02 : STA.w SprAction, X
|
||||||
|
RTS
|
||||||
|
.next_response
|
||||||
INC.w SprAction, X
|
INC.w SprAction, X
|
||||||
+
|
+
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
Maple_HandleDreams:
|
Maple_FirstResponse:
|
||||||
{
|
{
|
||||||
LDA.l $7EF351 : BEQ +
|
%ShowUnconditionalMessage($01B4)
|
||||||
LDA.b #$02 : STA.l $7EF351
|
LDA.w $1CE8 : BEQ .check_for_pendant
|
||||||
LDA.b #$1B : STA.w $012F
|
CMP.b #$01 : BNE .another_time
|
||||||
STZ.w SprAction, X
|
LDA.b #$03 : STA.w SprAction, X
|
||||||
+
|
RTS
|
||||||
|
.check_for_pendant
|
||||||
|
LDA.b #$04 : STA.w SprAction, X
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.another_time
|
||||||
|
STZ.w SprAction, X
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Maple_ExplainHut:
|
||||||
|
{
|
||||||
|
%ShowUnconditionalMessage($01B5)
|
||||||
|
STZ.w SprAction, X
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Maple_ExplainPendants:
|
||||||
|
{
|
||||||
|
%ShowUnconditionalMessage($01B8)
|
||||||
|
STZ.w SprAction, X
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Maple_CheckForPendant:
|
||||||
|
{
|
||||||
|
; Check for pendant
|
||||||
|
%ShowUnconditionalMessage($01B6)
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Maple_NoNewPendant:
|
||||||
|
{
|
||||||
|
%ShowUnconditionalMessage($01B7)
|
||||||
|
STZ.w SprAction, X
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Sprite_PutLinkToSleep:
|
||||||
|
{
|
||||||
|
PHX
|
||||||
|
LDA.b #$16 : STA.b $5D ; Set Link to sleeping
|
||||||
|
LDA.b #$20 : JSL AncillaAdd_Blanket
|
||||||
|
LDA.b $20 : CLC : ADC.b #$04 : STA.w $0BFA,X
|
||||||
|
LDA.b $21 : STA.w $0C0E,X
|
||||||
|
LDA.b $22 : SEC : SBC.b #$08 : STA.w $0C04,X
|
||||||
|
LDA.b $23 : STA.w $0C18,X
|
||||||
|
JSL PaletteFilter_StartBlindingWhite
|
||||||
|
JSL ApplyPaletteFilter
|
||||||
|
PLX
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Link_HandleDreams:
|
||||||
|
{
|
||||||
|
LDA.w CurrentDream
|
||||||
|
JSL JumpTableLocal
|
||||||
|
|
||||||
|
dw Dream_Wisdom
|
||||||
|
dw Dream_Power
|
||||||
|
dw Dream_Courage
|
||||||
|
|
||||||
|
Dream_Wisdom:
|
||||||
|
{
|
||||||
|
LDA.l DREAMS : ORA.b #%00000001 : STA.l DREAMS
|
||||||
|
LDX.b #$00
|
||||||
|
JSR Link_FallIntoDungeon
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Dream_Power:
|
||||||
|
{
|
||||||
|
LDA.l DREAMS : ORA.b #%00000010 : STA.l DREAMS
|
||||||
|
LDX.b #$01
|
||||||
|
JSR Link_FallIntoDungeon
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Dream_Courage:
|
||||||
|
{
|
||||||
|
LDA.l DREAMS : ORA.b #%00000100 : STA.l DREAMS
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
; Takes X as argument for the entrance ID
|
||||||
|
Link_FallIntoDungeon:
|
||||||
|
{
|
||||||
|
LDA.w .entrance, X
|
||||||
|
STA.w $010E
|
||||||
|
STZ.w $010F
|
||||||
|
|
||||||
|
LDA.b #$20 : STA.b $5C
|
||||||
|
LDA.b #$01 : STA.b LinkState
|
||||||
|
LDA.b #$11 : STA.b $10
|
||||||
|
STZ.b $11 : STZ.b $B0
|
||||||
|
|
||||||
|
RTS
|
||||||
|
.entrance
|
||||||
|
db $78 ; 0x00 - Deku Dream
|
||||||
|
db $79 ; 0x01 - Castle Dream
|
||||||
|
db $7A ; 0x02 -
|
||||||
|
db $81 ; 0x03
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user