You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
@@ -55,7 +55,7 @@ CGBLayoutJumptable:
|
||||
dw _CGB_PlayerOrMonFrontpicPals
|
||||
dw _CGB_TradeTube
|
||||
dw _CGB_TrainerOrMonFrontpicPals
|
||||
dw _CGB_Unused1D
|
||||
dw _CGB_LevelSelectionMenuToDChange
|
||||
assert_table_length NUM_CGB_LAYOUTS
|
||||
|
||||
_CGB_BattleGrayscale:
|
||||
@@ -585,7 +585,7 @@ _CGB_LevelSelectionMenu:
|
||||
ld bc, 1 palettes
|
||||
ld a, BANK(wOBPals1)
|
||||
call FarCopyWRAM
|
||||
; load daytime-based ToD symbol pals (pal1)
|
||||
; load daytime-based ToD symbol pals (pal1)
|
||||
ld a, [wTimeOfDay]
|
||||
maskbits NUM_DAYTIMES
|
||||
ld bc, 1 palettes
|
||||
@@ -624,6 +624,86 @@ _CGB_LevelSelectionMenu:
|
||||
ldh [hCGBPalUpdate], a
|
||||
ret
|
||||
|
||||
_CGB_LevelSelectionMenuToDChange:
|
||||
; load daytime-based ToD symbol pals (pal1)
|
||||
ld a, [wTimeOfDay]
|
||||
maskbits NUM_DAYTIMES
|
||||
ld bc, 1 palettes
|
||||
ld hl, LevelSelectionMenuTimeOfDaySymbolsPals
|
||||
call AddNTimes
|
||||
ld de, wOBPals1 + 1 palettes
|
||||
ld bc, 1 palettes
|
||||
ld a, BANK(wOBPals1)
|
||||
call FarCopyWRAM
|
||||
|
||||
; load fading background pals
|
||||
ld hl, .PalsOffsets
|
||||
ld a, [wLevelSelectionMenuStartingToD]
|
||||
maskbits NUM_DAYTIMES
|
||||
ld d, a
|
||||
ld a, [wLevelSelectionMenuToDFadeStep]
|
||||
ld e, a
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp d
|
||||
jr nz, .next1
|
||||
inc a ; cp $ff
|
||||
jr z, .done
|
||||
ld a, [hli]
|
||||
cp e
|
||||
jr z, .match
|
||||
jr .next2
|
||||
.next1
|
||||
inc hl
|
||||
.next2
|
||||
inc hl
|
||||
jr .loop
|
||||
|
||||
.match
|
||||
ld e, [hl]
|
||||
ld a, [wPlayerGender]
|
||||
bit PLAYERGENDER_FEMALE_F, a
|
||||
jr z, .male
|
||||
ld hl, LevelSelectionMenuFemalePals
|
||||
jr .got_pals
|
||||
.male
|
||||
ld hl, LevelSelectionMenuMalePals
|
||||
.got_pals
|
||||
ld a, e
|
||||
ld bc, 6 palettes
|
||||
call AddNTimes
|
||||
ld de, wBGPals1
|
||||
ld bc, 6 palettes
|
||||
ld a, BANK(wBGPals1)
|
||||
call FarCopyWRAM
|
||||
|
||||
.done
|
||||
; apply and commit pals
|
||||
call ApplyPals
|
||||
ld a, TRUE
|
||||
ldh [hCGBPalUpdate], a
|
||||
ret
|
||||
|
||||
.PalsOffsets:
|
||||
; wLevelSelectionMenuStartingToD, wLevelSelectionMenuToDFadeStep, offset from LevelSelectionMenu*Pals
|
||||
db MORN_F, 0, 0
|
||||
db DAY_F, 0, 1
|
||||
db NITE_F, 0, 2
|
||||
db EVE_F, 0, 3
|
||||
db MORN_F, 1, 4
|
||||
db MORN_F, 2, 5
|
||||
db MORN_F, 3, 1
|
||||
db DAY_F, 1, 6
|
||||
db DAY_F, 2, 7
|
||||
db DAY_F, 3, 3
|
||||
db EVE_F, 1, 8
|
||||
db EVE_F, 2, 9
|
||||
db EVE_F, 3, 2
|
||||
db NITE_F, 1, 10
|
||||
db NITE_F, 2, 11
|
||||
db NITE_F, 3, 0
|
||||
db $ff
|
||||
|
||||
_CGB_UnownPuzzle:
|
||||
ld hl, FourPals_UnownPuzzle
|
||||
call CopyFourPalettes
|
||||
|
@@ -155,9 +155,8 @@ GameMenu_WorldMap:
|
||||
cp CLEARED_LEVEL
|
||||
jr nz, .save_and_return
|
||||
; if CLEARED_LEVEL:
|
||||
; show post-level screen, clear level, unlock levels, advance ToD, request appropriate LSM events
|
||||
; show post-level screen, clear level, unlock levels, request appropriate LSM events
|
||||
farcall ClearedLevelScreen
|
||||
call AdvanceTimeOfDay
|
||||
ld hl, wLevelSelectionMenuEntryEventQueue
|
||||
set LSMEVENT_ANIMATE_TIME_OF_DAY, [hl]
|
||||
ld a, [wLastUnlockedLevelsCount]
|
||||
|
@@ -118,6 +118,89 @@ LevelSelectionMenu::
|
||||
call LevelSelectionMenu_DrawStageTrophies
|
||||
call LevelSelectionMenu_RefreshTextboxAttrs
|
||||
|
||||
ld a, [wLevelSelectionMenuEntryEventQueue]
|
||||
bit LSMEVENT_ANIMATE_TIME_OF_DAY, a
|
||||
jp z, .main_loop
|
||||
|
||||
call LevelSelectionMenu_Delay10Frames
|
||||
|
||||
ld bc, SPRITEOAMSTRUCT_LENGTH
|
||||
ld e, 3 * TILE_WIDTH
|
||||
.tod_symbol_upwards_loop
|
||||
farcall PlaySpriteAnimationsAndDelayFrame
|
||||
ld hl, wShadowOAM + $4 * SPRITEOAMSTRUCT_LENGTH + SPRITEOAMSTRUCT_YCOORD
|
||||
dec [hl]
|
||||
add hl, bc
|
||||
dec [hl]
|
||||
add hl, bc
|
||||
dec [hl]
|
||||
add hl, bc
|
||||
dec [hl]
|
||||
dec e
|
||||
jr nz, .tod_symbol_upwards_loop
|
||||
|
||||
ld a, [wTimeOfDay]
|
||||
ld [wLevelSelectionMenuStartingToD], a
|
||||
|
||||
cp NITE_F
|
||||
ld e, -4
|
||||
jr z, .change_tod_symbol
|
||||
cp EVE_F
|
||||
ld e, -2
|
||||
jr z, .change_tod_symbol
|
||||
cp DAY_F
|
||||
ld e, 4
|
||||
jr z, .change_tod_symbol
|
||||
ld e, 2
|
||||
.change_tod_symbol
|
||||
ld hl, wShadowOAM + $4 * SPRITEOAMSTRUCT_LENGTH + SPRITEOAMSTRUCT_TILE_ID
|
||||
ld bc, SPRITEOAMSTRUCT_LENGTH
|
||||
ld d, 2 * 2
|
||||
.change_tod_symbol_loop
|
||||
ld a, [hl]
|
||||
add e
|
||||
ld [hl], a
|
||||
add hl, bc
|
||||
dec d
|
||||
jr nz, .change_tod_symbol_loop
|
||||
|
||||
call AdvanceTimeOfDay
|
||||
|
||||
xor a
|
||||
ld [wLevelSelectionMenuToDFadeStep], a
|
||||
ld b, CGB_LEVEL_SELECTION_MENU_TOD_CHANGE
|
||||
call GetCGBLayout
|
||||
call LevelSelectionMenu_Delay4Frames
|
||||
ld a, 1
|
||||
ld [wLevelSelectionMenuToDFadeStep], a
|
||||
ld b, CGB_LEVEL_SELECTION_MENU_TOD_CHANGE
|
||||
call GetCGBLayout
|
||||
call LevelSelectionMenu_Delay4Frames
|
||||
ld a, 2
|
||||
ld [wLevelSelectionMenuToDFadeStep], a
|
||||
ld b, CGB_LEVEL_SELECTION_MENU_TOD_CHANGE
|
||||
call GetCGBLayout
|
||||
call LevelSelectionMenu_Delay4Frames
|
||||
ld a, 3
|
||||
ld [wLevelSelectionMenuToDFadeStep], a
|
||||
ld b, CGB_LEVEL_SELECTION_MENU_TOD_CHANGE
|
||||
call GetCGBLayout
|
||||
|
||||
ld bc, SPRITEOAMSTRUCT_LENGTH
|
||||
ld e, 3 * TILE_WIDTH
|
||||
.tod_symbol_downwards_loop
|
||||
farcall PlaySpriteAnimationsAndDelayFrame
|
||||
ld hl, wShadowOAM + $4 * SPRITEOAMSTRUCT_LENGTH + SPRITEOAMSTRUCT_YCOORD
|
||||
inc [hl]
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
dec e
|
||||
jr nz, .tod_symbol_downwards_loop
|
||||
|
||||
.main_loop
|
||||
farcall PlaySpriteAnimations
|
||||
call DelayFrame
|
||||
@@ -1030,13 +1113,16 @@ LevelSelectionMenu_GetNewPage:
|
||||
ld a, 1
|
||||
ret
|
||||
|
||||
LevelSelectionMenu_Delay4Frames:
|
||||
ld a, 4
|
||||
jr LevelSelectionMenu_Delay10Frames.loop
|
||||
|
||||
LevelSelectionMenu_Delay10Frames:
|
||||
; Delay 10 frames while playing sprite anims
|
||||
ld a, 10
|
||||
.loop
|
||||
push af
|
||||
farcall PlaySpriteAnimations
|
||||
call DelayFrame
|
||||
farcall PlaySpriteAnimationsAndDelayFrame
|
||||
pop af
|
||||
dec a
|
||||
jr nz, .loop
|
||||
|
Reference in New Issue
Block a user