Turn in Triforce pieces support

This commit is contained in:
Kevin Cathcart
2019-08-27 23:47:21 -04:00
parent 07e1c3ffcd
commit d47b771f16
5 changed files with 162 additions and 3 deletions

63
elder.asm Normal file
View File

@@ -0,0 +1,63 @@
NewElderCode:
{
LDA $8A : CMP #$1B : BEQ .newCodeContinue
;Restore Jump we can keep the RTL so JML
JML $05F0CD
.newCodeContinue
PHB : PHK : PLB
LDA.b #$07 : STA $0F50, X ;Palette
JSR Elder_Draw
JSL Sprite_PlayerCantPassThrough
JSR Elder_Code
PLB
RTL
Elder_Draw:
{
LDA.b #$02 : STA $06 : STZ $07 ;Number of Tiles
LDA $0DC0, X : ASL #04
ADC.b #.animation_states : STA $08
LDA.b #.animation_states>>8 : ADC.b #$00 : STA $09
JSL Sprite_DrawMultiple_player_deferred
JSL Sprite_DrawShadowLong
RTS
.animation_states
;Frame0
dw 0, -9 : db $C6, $00, $00, $02
dw 0, 0 : db $C8, $00, $00, $02
;Frame1
dw 0, -8 : db $C6, $00, $00, $02
dw 0, 0 : db $CA, $40, $00, $02
}
Elder_Code:
{
LDA GoalItemRequirement : BEQ .despawn
LDA TurnInGoalItems : BNE +
.despawn
STZ $0DD0, X ; despawn self
RTS
+
LDA.b #$96
LDY.b #$01
JSL Sprite_ShowSolicitedMessageIfPlayerFacing : BCC .dont_show
LDA !GOAL_COUNTER
CMP GoalItemRequirement : !BLT +
JSL.l ActivateGoal
+
.dont_show
.done
LDA $1A : LSR #5 : AND.b #$01 : STA $0DC0, X
RTS
}

View File

@@ -2349,3 +2349,88 @@ Dungeon_OpenKeyedObject_bigChest:
org $01EC38 ; <- 0EC38 - bank01.asm : 13809 (.smallChest)
Dungeon_OpenKeyedObject_smallChest:
;================================================================================
;================================================================================
; Murahdahla (The brother who re-assembles the triforce pieces)
;--------------------------------------------------------------------------------
org $06C092 ; bank06.asm:1864 (JSL Sprite_ElderLong) [22 CD F0 05]
JSL NewElderCode
;--------------------------------------------------------------------------------
; Add him to Castle Map post-rain, and post aga1
;--------------------------------------------------------------------------------
org $09D0AC
db #$18, #$0F, #$43, #$FF;remove heart from tree adjancent map [LW1]
db #$12, #$19, #$16 ;add sahasrala in castle Y, X, Sprite ID
org $09C937
db #$B0, #$D0 ;change [LW1] map 01C pointers
org $09D421
db #$18, #$0F, #$45, #$FF;remove heart from tree adjancent map [LW2]
db #$12, #$19, #$16 ;add sahasrala in castle Y, X, Sprite ID
org $09CA57
db #$25, #$D4 ;change [LW2] map 01C pointers
;--------------------------------------------------------------------------------
; Expanded trinexx sheet gfx.
;--------------------------------------------------------------------------------
org $00CFC0+178 : db #$33
org $00D09F+178 : db #$90
org $00D17E+178 : db #$00
; Use above sheet in Hyrule castle courtyard after rain state.
org $00DB9E ; Hyrule Castle GFX Sprite Sheet 4 on [LW1]
db #$3F
org $00DC0A ; Hyrule Castle GFX Sprite Sheet 4 on [LW2]
db #$3F
;--------------------------------------------------------------------------------
; Updated evil barrier animation table
;--------------------------------------------------------------------------------
org $1DF0E1;Evil Barrier new draw code
dw 0, 0 : db $CC, $00, $00, $02
dw -29, 3 : db $EA, $00, $00, $00
dw -29, 11 : db $FA, $00, $00, $00
dw 37, 3 : db $EA, $40, $00, $00
dw 37, 11 : db $FA, $40, $00, $00
dw -24, -2 : db $CE, $00, $00, $02
dw -8, -2 : db $CE, $00, $00, $02
dw 8, -2 : db $CE, $40, $00, $02
dw 24, -2 : db $CE, $40, $00, $02
dw 0, 0 : db $EC, $00, $00, $02
dw -29, 3 : db $EB, $00, $00, $00
dw -29, 11 : db $FB, $00, $00, $00
dw 37, 3 : db $EB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
dw 0, 0 : db $EC, $00, $00, $02
dw 0, 0 : db $EC, $00, $00, $02
dw 0, 0 : db $EC, $00, $00, $02
dw 0, 0 : db $EC, $00, $00, $02
dw 0, 0 : db $EC, $00, $00, $02
dw -29, 3 : db $EB, $00, $00, $00
dw -29, 11 : db $FB, $00, $00, $00
dw 37, 3 : db $EB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
dw -24, -2 : db $CE, $80, $00, $02
dw -8, -2 : db $CE, $80, $00, $02
dw 8, -2 : db $CE, $C0, $00, $02
dw 24, -2 : db $CE, $C0, $00, $02
dw 0, 0 : db $CC, $00, $00, $02
dw -29, 3 : db $EA, $00, $00, $00
dw -29, 11 : db $FA, $00, $00, $00
dw 37, 3 : db $EA, $40, $00, $00
dw 37, 11 : db $FA, $40, $00, $00
dw 0, 0 : db $CC, $00, $00, $02
dw 0, 0 : db $CC, $00, $00, $02
dw 0, 0 : db $CC, $00, $00, $02
dw 0, 0 : db $CC, $00, $00, $02
dw -29, 3 : db $EB, $00, $00, $00
dw -29, 11 : db $FB, $00, $00, $00
dw 37, 3 : db $EB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
dw 37, 11 : db $FB, $40, $00, $00
;================================================================================

View File

@@ -31,6 +31,7 @@
; #$65 - Progressive Bow
; #$6A - Goal Item (Single/Triforce)
; #$6B - Goal Item (Multi/Power Star)
; #$6C - Goal Item (Multi/Triforce Piece)
; #$6D- Server Request
; #$6E - Server Request (Dungeon Drop)
; #$70 - Maps
@@ -162,7 +163,10 @@ ProcessEventItems:
LDA GoalItemRequirement : BEQ ++
LDA !GOAL_COUNTER : INC : STA !GOAL_COUNTER
CMP GoalItemRequirement : !BLT ++ : JSL.l ActivateGoal : ++
CMP GoalItemRequirement : !BLT ++
LDA TurnInGoalItems : BNE ++
JSL.l ActivateGoal
++
LDX.b #$01 : BRA .done
+
@@ -309,7 +313,10 @@ AddReceivedItemExpandedGetItem:
.multi_collect
LDA GoalItemRequirement : BEQ ++
LDA !GOAL_COUNTER : INC : STA !GOAL_COUNTER
CMP GoalItemRequirement : !BLT ++ : JSL.l ActivateGoal : ++
CMP GoalItemRequirement : !BLT ++ :
LDA TurnInGoalItems : BNE ++
JSL.l ActivateGoal
++
BRL .done
+ CMP.b #$6D : BNE + ; Server Request
JSL ItemGetServiceRequest

BIN
sheet178.gfx Normal file

Binary file not shown.

View File

@@ -911,8 +911,12 @@ db #$00 ; #$00 = Locked (Default) - #$01 = Restart
org $308193 ; PC 0x180193
ServerRequestMode:
db #$00 ; #$00 = Off (Default) - #$01 = Synchronous - #$02 = Asychronous
;---------------------------------------------------------------------------------
org $308194 ; PC 0x180194
TurnInGoalItems:
db #$01 ; #$00 = Instant win if last goal item collected. $01 must turn in goal items
;--------------------------------------------------------------------------------
; 0x180194 - 0x1801FF (unused)
; 0x180195 - 0x1801FF (unused)
;================================================================================
org $308200 ; PC 0x180200 - 0x18020F
RedClockAmount: