Refactor Time System: Introduce TimeState struct and modularize RunClock
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
struct Sprite $7E0BA0
|
struct Sprite $7E0BA0
|
||||||
{
|
{
|
||||||
.BulletProof: skip 16
|
.BulletProof: skip 16
|
||||||
@@ -61,3 +60,16 @@ struct Sprite $7E0BA0
|
|||||||
}
|
}
|
||||||
endstruct
|
endstruct
|
||||||
|
|
||||||
|
struct TimeState $7EE000
|
||||||
|
{
|
||||||
|
.Hours: skip 1
|
||||||
|
.Minutes: skip 1
|
||||||
|
.Speed: skip 1
|
||||||
|
.Padding: skip 13 ; Pad to $7EE010
|
||||||
|
.BlueVal: skip 2
|
||||||
|
.GreenVal: skip 2
|
||||||
|
.RedVal: skip 2
|
||||||
|
.TempColor: skip 2
|
||||||
|
.SubColor: skip 2
|
||||||
|
}
|
||||||
|
endstruct
|
||||||
@@ -43,7 +43,7 @@ HouseTag_Main:
|
|||||||
|
|
||||||
HouseTag_TelepathicPlea:
|
HouseTag_TelepathicPlea:
|
||||||
{
|
{
|
||||||
LDA.b #$08 : STA $7EE000 ; Set the time to 8:00am
|
LDA.b #$08 : STA.l TimeState.Hours ; Set the time to 8:00am
|
||||||
LDA.b #$03 : STA.w $012C ; Play the deku tree music
|
LDA.b #$03 : STA.w $012C ; Play the deku tree music
|
||||||
|
|
||||||
; Set Link's coordinates to this specific position.
|
; Set Link's coordinates to this specific position.
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ UpdateBunnyPalette:
|
|||||||
.loop
|
.loop
|
||||||
LDA.l bunny_palette, X
|
LDA.l bunny_palette, X
|
||||||
PHX
|
PHX
|
||||||
STA.l !SubPalColor
|
STA.l TimeState.SubColor
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
PLX
|
PLX
|
||||||
STA $7EC6E0, X
|
STA $7EC6E0, X
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ UpdateDekuPalette:
|
|||||||
.loop
|
.loop
|
||||||
LDA.l deku_palette, X
|
LDA.l deku_palette, X
|
||||||
PHX
|
PHX
|
||||||
STA.l !SubPalColor
|
STA.l TimeState.SubColor
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
PLX
|
PLX
|
||||||
STA $7EC6E0, X
|
STA $7EC6E0, X
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ UpdateWolfPalette:
|
|||||||
.loop
|
.loop
|
||||||
LDA.l WolfPalette, X
|
LDA.l WolfPalette, X
|
||||||
PHX
|
PHX
|
||||||
STA.l !SubPalColor
|
STA.l TimeState.SubColor
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
PLX
|
PLX
|
||||||
STA $7EC6E0, X
|
STA $7EC6E0, X
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ UpdateZoraPalette:
|
|||||||
.loop
|
.loop
|
||||||
LDA.l zora_palette, X
|
LDA.l zora_palette, X
|
||||||
PHX
|
PHX
|
||||||
STA.l !SubPalColor
|
STA.l TimeState.SubColor
|
||||||
JSL ColorSubEffect
|
JSL ColorSubEffect
|
||||||
PLX
|
PLX
|
||||||
STA $7EC6E0, X
|
STA $7EC6E0, X
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ PlaytimeLabel:
|
|||||||
Menu_DrawHourDigit:
|
Menu_DrawHourDigit:
|
||||||
{
|
{
|
||||||
SEP #$30
|
SEP #$30
|
||||||
LDA.l $7EE000
|
LDA.l TimeState.Hours
|
||||||
ASL A : ASL A
|
ASL A : ASL A
|
||||||
TAX
|
TAX
|
||||||
REP #$30
|
REP #$30
|
||||||
@@ -71,7 +71,7 @@ Menu_DrawHourDigit:
|
|||||||
Menu_DrawMinuteDigit:
|
Menu_DrawMinuteDigit:
|
||||||
{
|
{
|
||||||
SEP #$30
|
SEP #$30
|
||||||
LDA.l $7EE001
|
LDA.l TimeState.Minutes
|
||||||
ASL A : ASL A
|
ASL A : ASL A
|
||||||
TAX
|
TAX
|
||||||
REP #$30
|
REP #$30
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
incsrc "Util/macros.asm"
|
incsrc "Util/macros.asm"
|
||||||
|
incsrc "Core/structs.asm"
|
||||||
|
|
||||||
incsrc "Overworld/ZSCustomOverworld.asm"
|
incsrc "Overworld/ZSCustomOverworld.asm"
|
||||||
%log_end("ZSCustomOverworld.asm", !LOG_OVERWORLD)
|
%log_end("ZSCustomOverworld.asm", !LOG_OVERWORLD)
|
||||||
|
|||||||
@@ -3176,7 +3176,7 @@ CheckForChangeGraphicsTransitionLoad:
|
|||||||
|
|
||||||
; Where ZS saves the array of palettes
|
; Where ZS saves the array of palettes
|
||||||
LDA.w Pool_BGColorTable, X
|
LDA.w Pool_BGColorTable, X
|
||||||
STA.l $7EE018
|
STA.l TimeState.SubColor
|
||||||
JSL Oracle_BackgroundFix
|
JSL Oracle_BackgroundFix
|
||||||
; STA.l $7EC300 : STA.l $7EC500
|
; STA.l $7EC300 : STA.l $7EC500
|
||||||
; STA.l $7EC540 : STA.l $7EC340
|
; STA.l $7EC540 : STA.l $7EC340
|
||||||
@@ -3238,7 +3238,7 @@ CheckForChangeGraphicsTransitionLoad:
|
|||||||
|
|
||||||
; Set transparent color. only set the buffer so it fades in right
|
; Set transparent color. only set the buffer so it fades in right
|
||||||
; during mosaic transition.
|
; during mosaic transition.
|
||||||
STA.l $7EE018
|
STA.l TimeState.SubColor
|
||||||
JSL Oracle_MosaicFix
|
JSL Oracle_MosaicFix
|
||||||
;STA.l $7EC300 : STA.l $7EC340
|
;STA.l $7EC300 : STA.l $7EC340
|
||||||
|
|
||||||
@@ -3351,7 +3351,7 @@ Palette_MultiLoad_NonBuffer:
|
|||||||
.copyColors
|
.copyColors
|
||||||
; We're loading A from the address set up in the calling function.
|
; We're loading A from the address set up in the calling function.
|
||||||
LDA.b [$00]
|
LDA.b [$00]
|
||||||
STA.l $7EE018
|
STA.l TimeState.SubColor
|
||||||
BEQ +
|
BEQ +
|
||||||
JSL Oracle_ColorSubEffect
|
JSL Oracle_ColorSubEffect
|
||||||
+
|
+
|
||||||
@@ -3845,7 +3845,7 @@ ReplaceBGColor:
|
|||||||
|
|
||||||
; Set the BG color buffer.
|
; Set the BG color buffer.
|
||||||
PLA
|
PLA
|
||||||
STA.l $7EE018
|
STA.l TimeState.SubColor
|
||||||
JSL Oracle_BackgroundFix ; $3482DD ; Background Fix
|
JSL Oracle_BackgroundFix ; $3482DD ; Background Fix
|
||||||
; STA.l $7EC300 : STA.l $7EC340 ; Set the BG color.
|
; STA.l $7EC300 : STA.l $7EC340 ; Set the BG color.
|
||||||
; STA.l $7EC500 : STA.l $7EC540
|
; STA.l $7EC500 : STA.l $7EC540
|
||||||
@@ -3858,7 +3858,7 @@ ReplaceBGColor:
|
|||||||
|
|
||||||
; Set the BG color.
|
; Set the BG color.
|
||||||
PLA
|
PLA
|
||||||
STA.l $7EE018
|
STA.l TimeState.SubColor
|
||||||
JSL Oracle_BackgroundFix
|
JSL Oracle_BackgroundFix
|
||||||
; STA.l $7EC500
|
; STA.l $7EC500
|
||||||
; STA.l $7EC540
|
; STA.l $7EC540
|
||||||
@@ -3956,7 +3956,7 @@ InitColorLoad2:
|
|||||||
.storeColor
|
.storeColor
|
||||||
|
|
||||||
; Set transparent color.
|
; Set transparent color.
|
||||||
STA.l $7EE018 ; Set temp color for tinting
|
STA.l TimeState.SubColor ; Set temp color for tinting
|
||||||
JSL Oracle_BackgroundFix ; Apply tint and write to buffers
|
JSL Oracle_BackgroundFix ; Apply tint and write to buffers
|
||||||
|
|
||||||
INC.b $15
|
INC.b $15
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user