Update Maple dream logic
This commit is contained in:
@@ -7,11 +7,14 @@ MapleHandler:
|
|||||||
JSL JumpTableLocal
|
JSL JumpTableLocal
|
||||||
|
|
||||||
dw Maple_Idle
|
dw Maple_Idle
|
||||||
dw Maple_FirstResponse
|
dw Maple_HandleFirstResponse
|
||||||
|
dw Maple_DreamOrExplain
|
||||||
dw Maple_ExplainHut
|
dw Maple_ExplainHut
|
||||||
dw Maple_ExplainPendants
|
dw Maple_ExplainPendants
|
||||||
dw Maple_CheckForPendant
|
dw Maple_CheckForPendant
|
||||||
dw Maple_NoNewPendant
|
dw Maple_NoNewPendant
|
||||||
|
dw Maple_PutLinkToSleep
|
||||||
|
dw Maple_HandleDreams
|
||||||
|
|
||||||
; LDA.l $7EF351 : BEQ +
|
; LDA.l $7EF351 : BEQ +
|
||||||
; LDA.b #$02 : STA.l $7EF351
|
; LDA.b #$02 : STA.l $7EF351
|
||||||
@@ -22,25 +25,34 @@ MapleHandler:
|
|||||||
Maple_Idle:
|
Maple_Idle:
|
||||||
{
|
{
|
||||||
%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_FirstResponse:
|
Maple_HandleFirstResponse:
|
||||||
|
{
|
||||||
|
LDA.w $1CE8 : CMP.b #$02 : BNE +
|
||||||
|
STZ.w SprAction, X
|
||||||
|
RTS
|
||||||
|
+
|
||||||
|
CMP.b #$01 : BNE .next_response
|
||||||
|
LDA.b #$03 : STA.w SprAction, X
|
||||||
|
RTS
|
||||||
|
.next_response
|
||||||
|
INC.w SprAction, X
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Maple_DreamOrExplain:
|
||||||
{
|
{
|
||||||
%ShowUnconditionalMessage($01B4)
|
%ShowUnconditionalMessage($01B4)
|
||||||
LDA.w $1CE8 : BEQ .check_for_pendant
|
LDA.w $1CE8 : BEQ .check_for_pendant
|
||||||
CMP.b #$01 : BNE .another_time
|
CMP.b #$01 : BNE .another_time
|
||||||
LDA.b #$03 : STA.w SprAction, X
|
LDA.b #$04 : STA.w SprAction, X
|
||||||
RTS
|
RTS
|
||||||
.check_for_pendant
|
.check_for_pendant
|
||||||
LDA.b #$04 : STA.w SprAction, X
|
LDA.b #$05 : STA.w SprAction, X
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.another_time
|
.another_time
|
||||||
@@ -64,8 +76,28 @@ MapleHandler:
|
|||||||
|
|
||||||
Maple_CheckForPendant:
|
Maple_CheckForPendant:
|
||||||
{
|
{
|
||||||
|
print pc
|
||||||
; Check for pendant
|
; Check for pendant
|
||||||
|
LDA.l PENDANTS : AND.b #$04 : BNE .courage
|
||||||
|
LDA.l PENDANTS : AND.b #$02 : BNE .power
|
||||||
|
LDA.l PENDANTS : AND.b #$01 : BNE .wisdom
|
||||||
|
JMP .none
|
||||||
|
.courage
|
||||||
|
LDA.l Dreams : AND.b #$04 : BNE .power
|
||||||
|
LDA.b #$02 : STA.w CurrentDream : BRA +
|
||||||
|
.power
|
||||||
|
LDA.l Dreams : AND.b #$02 : BNE .wisdom
|
||||||
|
LDA.b #$01 : STA.w CurrentDream : BRA +
|
||||||
|
.wisdom
|
||||||
|
LDA.l Dreams : AND.b #$01 : BNE .none
|
||||||
|
STZ.w CurrentDream
|
||||||
|
+
|
||||||
%ShowUnconditionalMessage($01B6)
|
%ShowUnconditionalMessage($01B6)
|
||||||
|
LDA.b #$07 : STA.w SprAction, X
|
||||||
|
LDA.b #$40 : STA.w SprTimerA, X
|
||||||
|
RTS
|
||||||
|
.none
|
||||||
|
INC.w SprAction, X
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,11 +107,29 @@ MapleHandler:
|
|||||||
STZ.w SprAction, X
|
STZ.w SprAction, X
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Maple_PutLinkToSleep:
|
||||||
|
{
|
||||||
|
JSR Sprite_PutLinkToSleep
|
||||||
|
INC.w SprAction, X
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Maple_HandleDreams:
|
||||||
|
{
|
||||||
|
LDA.w SprTimerA, X : BNE +
|
||||||
|
JSR Link_HandleDreams
|
||||||
|
+
|
||||||
|
RTS
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Sprite_PutLinkToSleep:
|
Sprite_PutLinkToSleep:
|
||||||
{
|
{
|
||||||
PHX
|
PHX
|
||||||
|
LDA.b $20 : SEC : SBC.b #$14 : STA.b $20
|
||||||
|
LDA.b $22 : CLC : ADC.b #$18 : STA.b $22
|
||||||
|
|
||||||
LDA.b #$16 : STA.b $5D ; Set Link to sleeping
|
LDA.b #$16 : STA.b $5D ; Set Link to sleeping
|
||||||
LDA.b #$20 : JSL AncillaAdd_Blanket
|
LDA.b #$20 : JSL AncillaAdd_Blanket
|
||||||
LDA.b $20 : CLC : ADC.b #$04 : STA.w $0BFA,X
|
LDA.b $20 : CLC : ADC.b #$04 : STA.w $0BFA,X
|
||||||
@@ -103,27 +153,47 @@ Link_HandleDreams:
|
|||||||
|
|
||||||
Dream_Wisdom:
|
Dream_Wisdom:
|
||||||
{
|
{
|
||||||
LDA.l DREAMS : ORA.b #%00000001 : STA.l DREAMS
|
LDA.l Dreams : ORA.b #%00000001 : STA.l Dreams
|
||||||
LDX.b #$00
|
LDX.b #$00
|
||||||
JSR Link_FallIntoDungeon
|
JSR Link_WarpToRoom
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
Dream_Power:
|
Dream_Power:
|
||||||
{
|
{
|
||||||
LDA.l DREAMS : ORA.b #%00000010 : STA.l DREAMS
|
LDA.l Dreams : ORA.b #%00000010 : STA.l Dreams
|
||||||
LDX.b #$01
|
LDX.b #$01
|
||||||
JSR Link_FallIntoDungeon
|
JSR Link_WarpToRoom
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
Dream_Courage:
|
Dream_Courage:
|
||||||
{
|
{
|
||||||
LDA.l DREAMS : ORA.b #%00000100 : STA.l DREAMS
|
LDA.l Dreams : ORA.b #%00000100 : STA.l Dreams
|
||||||
|
LDX.b #$02
|
||||||
|
JSR Link_WarpToRoom
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Link_WarpToRoom:
|
||||||
|
{
|
||||||
|
LDA.b #$20 : STA.b $5C
|
||||||
|
LDA.b #$01 : STA.b LinkState
|
||||||
|
|
||||||
|
LDA.b #$15 : STA.b $11
|
||||||
|
LDA.b $A0 : STA.b $A2
|
||||||
|
STZ.b $A1
|
||||||
|
LDA.w .room, X : STA.b $A0
|
||||||
|
; STA.l $7EC000
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.room
|
||||||
|
db $61
|
||||||
|
db $00
|
||||||
|
db $31
|
||||||
|
}
|
||||||
|
|
||||||
; Takes X as argument for the entrance ID
|
; Takes X as argument for the entrance ID
|
||||||
Link_FallIntoDungeon:
|
Link_FallIntoDungeon:
|
||||||
{
|
{
|
||||||
@@ -137,9 +207,15 @@ Link_FallIntoDungeon:
|
|||||||
STZ.b $11 : STZ.b $B0
|
STZ.b $11 : STZ.b $B0
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.entrance
|
.entrance
|
||||||
db $78 ; 0x00 - Deku Dream
|
db $78 ; 0x00 - Deku Dream
|
||||||
db $79 ; 0x01 - Castle Dream
|
db $79 ; 0x01 - Castle Dream
|
||||||
db $7A ; 0x02 -
|
db $7A ; 0x02 -
|
||||||
db $81 ; 0x03
|
db $81 ; 0x03
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pushpc
|
||||||
|
org $068C9C
|
||||||
|
db $0F
|
||||||
|
pullpc
|
||||||
|
|||||||
Reference in New Issue
Block a user