You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
Create a fourth time of day (#2)
This commit is contained in:
@@ -637,9 +637,8 @@ StartTrainerBattle_LoadPokeBallGraphics:
|
||||
jr nz, .tile_loop
|
||||
|
||||
ld hl, .pals
|
||||
ld a, [wTimeOfDayPal]
|
||||
maskbits NUM_DAYTIMES
|
||||
cp DARKNESS_F
|
||||
ld a, [wTimeOfDayPalset]
|
||||
cp DARKNESS_PALSET
|
||||
jr nz, .not_dark
|
||||
ld hl, .darkpals
|
||||
.not_dark
|
||||
|
@@ -73,7 +73,7 @@ PlayBattleMusic:
|
||||
ld de, MUSIC_JOHTO_WILD_BATTLE
|
||||
ld a, [wTimeOfDay]
|
||||
cp NITE_F
|
||||
jr nz, .done
|
||||
jr c, .done ; not NITE_F or EVE_F
|
||||
ld de, MUSIC_JOHTO_WILD_BATTLE_NIGHT
|
||||
jr .done
|
||||
|
||||
|
@@ -15,5 +15,5 @@ CheckTime::
|
||||
db MORN_F, MORN
|
||||
db DAY_F, DAY
|
||||
db NITE_F, NITE
|
||||
db NITE_F, NITE
|
||||
db EVE_F, EVE
|
||||
db -1
|
||||
|
@@ -181,11 +181,10 @@ GetCaughtLevel:
|
||||
GetCaughtTime:
|
||||
ld a, [wSeerCaughtData]
|
||||
and CAUGHT_TIME_MASK
|
||||
jr z, .none
|
||||
|
||||
rlca
|
||||
rlca
|
||||
dec a
|
||||
maskbits NUM_DAYTIMES
|
||||
ld hl, .times
|
||||
call GetNthString
|
||||
ld d, h
|
||||
@@ -195,15 +194,11 @@ GetCaughtTime:
|
||||
and a
|
||||
ret
|
||||
|
||||
.none
|
||||
ld de, wSeerTimeOfDay
|
||||
call UnknownCaughtData
|
||||
ret
|
||||
|
||||
.times
|
||||
db "Morning@"
|
||||
db "Day@"
|
||||
db "Night@"
|
||||
db "Evening@"
|
||||
|
||||
UnknownCaughtData:
|
||||
ld hl, .unknown
|
||||
|
@@ -63,6 +63,8 @@ PokecenterNurseScript:
|
||||
iftrue .morn
|
||||
checktime DAY
|
||||
iftrue .day
|
||||
checktime EVE
|
||||
iftrue .eve
|
||||
checktime NITE
|
||||
iftrue .nite
|
||||
sjump .ok
|
||||
@@ -77,6 +79,11 @@ PokecenterNurseScript:
|
||||
promptbutton
|
||||
sjump .ok
|
||||
|
||||
.eve
|
||||
farwritetext NurseEveText
|
||||
promptbutton
|
||||
sjump .ok
|
||||
|
||||
.nite
|
||||
farwritetext NurseNiteText
|
||||
promptbutton
|
||||
|
@@ -628,7 +628,7 @@ INCLUDE "data/pokemon/palettes.asm"
|
||||
INCLUDE "data/trainers/palettes.asm"
|
||||
|
||||
LoadMapPals:
|
||||
farcall LoadSpecialMapPalette
|
||||
farcall LoadSpecialMapPalette ; also handles darkness palettes
|
||||
jr c, .got_pals
|
||||
|
||||
; Which palette group is based on whether we're outside or inside
|
||||
@@ -688,6 +688,20 @@ LoadMapPals:
|
||||
ldh [rSVBK], a
|
||||
|
||||
.got_pals
|
||||
; BG pals done. Now do OBJ pals.
|
||||
call GetMapTimeOfDay
|
||||
bit IN_DARKNESS_F, a
|
||||
jr z, .not_darkness
|
||||
ld a, [wStatusFlags]
|
||||
bit STATUSFLAGS_FLASH_F, a
|
||||
jr nz, .not_darkness
|
||||
ld a, BANK(wOBPals1)
|
||||
ld de, wOBPals1
|
||||
ld hl, NPCDarknessPalette
|
||||
ld bc, 8 palettes
|
||||
jp FarCopyWRAM
|
||||
|
||||
.not_darkness
|
||||
ld a, [wTimeOfDayPal]
|
||||
maskbits NUM_DAYTIMES
|
||||
ld bc, 8 palettes
|
||||
@@ -705,21 +719,21 @@ LoadMapPals:
|
||||
ret nz
|
||||
.outside
|
||||
ld a, [wMapGroup]
|
||||
ld l, a
|
||||
ld h, 0
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
ld de, RoofPals
|
||||
add a
|
||||
add a
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, RoofPals
|
||||
rept NUM_DAYTIMES
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [wTimeOfDayPal]
|
||||
maskbits NUM_DAYTIMES
|
||||
cp NITE_F
|
||||
jr c, .morn_day
|
||||
rept 4
|
||||
inc hl
|
||||
endr
|
||||
.morn_day
|
||||
add a
|
||||
add a
|
||||
ld e, a
|
||||
ld d, 0
|
||||
add hl, de
|
||||
ld de, wBGPals1 palette PAL_BG_ROOF color 1
|
||||
ld bc, 4
|
||||
ld a, BANK(wBGPals1)
|
||||
@@ -737,11 +751,14 @@ INCLUDE "gfx/stats/party_menu_bg.pal"
|
||||
TilesetBGPalette:
|
||||
INCLUDE "gfx/tilesets/bg_tiles.pal"
|
||||
|
||||
NPCDarknessPalette:
|
||||
INCLUDE "gfx/overworld/npc_sprites_darkness.pal"
|
||||
|
||||
MapObjectPals::
|
||||
INCLUDE "gfx/overworld/npc_sprites.pal"
|
||||
|
||||
RoofPals:
|
||||
table_width PAL_COLOR_SIZE * 2 * 2, RoofPals
|
||||
table_width PAL_COLOR_SIZE * 4 * 2, RoofPals
|
||||
INCLUDE "gfx/tilesets/roofs.pal"
|
||||
assert_table_length NUM_MAP_GROUPS + 1
|
||||
|
||||
|
@@ -204,7 +204,7 @@ MainMenu_PrintCurrentTimeAndDay:
|
||||
db "MORN@"
|
||||
db "DAY@"
|
||||
db "NITE@"
|
||||
db "NITE@"
|
||||
db "EVE@"
|
||||
|
||||
ClearTilemapEtc:
|
||||
xor a
|
||||
|
@@ -5,6 +5,7 @@ LoadWildMonData:
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
jr .done_copy
|
||||
|
||||
@@ -12,7 +13,7 @@ LoadWildMonData:
|
||||
inc hl
|
||||
inc hl
|
||||
ld de, wMornEncounterRate
|
||||
ld bc, 3
|
||||
ld bc, NUM_DAYTIMES
|
||||
call CopyBytes
|
||||
.done_copy
|
||||
call _WaterWildmonLookup
|
||||
|
@@ -231,12 +231,10 @@ OaksPKMNTalk4:
|
||||
rept 4
|
||||
inc hl
|
||||
endr
|
||||
; Generate a number, either 0, 1, or 2, to choose a time of day.
|
||||
; Generate a number, either 0, 1, 2, or 3 to choose a time of day.
|
||||
.loop2
|
||||
call Random
|
||||
maskbits NUM_DAYTIMES
|
||||
cp DARKNESS_F
|
||||
jr z, .loop2
|
||||
|
||||
ld bc, 2 * NUM_GRASSMON
|
||||
call AddNTimes
|
||||
|
@@ -166,6 +166,7 @@ SetBoxmonOrEggmonCaughtData:
|
||||
inc a
|
||||
rrca
|
||||
rrca
|
||||
and CAUGHT_TIME_MASK ; caught in eve becomes $0
|
||||
ld b, a
|
||||
ld a, [wCurPartyLevel]
|
||||
or b
|
||||
|
@@ -129,16 +129,16 @@ EvolveAfterBattle_MasterLoop:
|
||||
cp TR_MORNDAY
|
||||
jr z, .happiness_daylight
|
||||
|
||||
; TR_NITE
|
||||
; TR_EVENITE
|
||||
ld a, [wTimeOfDay]
|
||||
cp NITE_F
|
||||
jp nz, .dont_evolve_3
|
||||
jp c, .dont_evolve_3 ; MORN_F or DAY_F
|
||||
jr .proceed
|
||||
|
||||
.happiness_daylight
|
||||
ld a, [wTimeOfDay]
|
||||
cp NITE_F
|
||||
jp z, .dont_evolve_3
|
||||
jp nc, .dont_evolve_3 ; NITE_F or EVE_F
|
||||
jr .proceed
|
||||
|
||||
.trade
|
||||
|
@@ -1,4 +1,12 @@
|
||||
LoadSpecialMapPalette:
|
||||
call GetMapTimeOfDay
|
||||
bit IN_DARKNESS_F, a
|
||||
jr z, .not_dark
|
||||
ld a, [wStatusFlags]
|
||||
bit STATUSFLAGS_FLASH_F, a
|
||||
jr z, .darkness
|
||||
|
||||
.not_dark
|
||||
ld a, [wMapTileset]
|
||||
cp TILESET_POKECOM_CENTER
|
||||
jr z, .pokecom_2f
|
||||
@@ -14,6 +22,11 @@ LoadSpecialMapPalette:
|
||||
jr z, .mansion_mobile
|
||||
jr .do_nothing
|
||||
|
||||
.darkness
|
||||
call LoadDarknessPalette
|
||||
scf
|
||||
ret
|
||||
|
||||
.pokecom_2f
|
||||
call LoadPokeComPalette
|
||||
scf
|
||||
@@ -52,6 +65,16 @@ LoadSpecialMapPalette:
|
||||
and a
|
||||
ret
|
||||
|
||||
LoadDarknessPalette:
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
ld hl, DarknessPalette
|
||||
ld bc, 8 palettes
|
||||
jp FarCopyWRAM
|
||||
|
||||
DarknessPalette:
|
||||
INCLUDE "gfx/tilesets/bg_tiles_darkness.pal"
|
||||
|
||||
LoadPokeComPalette:
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
|
@@ -185,10 +185,18 @@ endr
|
||||
ret
|
||||
|
||||
ReplaceTimeOfDayPals:
|
||||
ld a, [wMapTimeOfDay]
|
||||
bit IN_DARKNESS_F, a
|
||||
jr z, .not_dark
|
||||
ld a, [wStatusFlags]
|
||||
bit STATUSFLAGS_FLASH_F, a
|
||||
jr nz, .not_dark
|
||||
ld a, DARKNESS_PALSET
|
||||
jr .done
|
||||
|
||||
.not_dark:
|
||||
ld hl, .BrightnessLevels
|
||||
ld a, [wMapTimeOfDay]
|
||||
cp PALETTE_DARK
|
||||
jr z, .NeedsFlash
|
||||
maskbits NUM_MAP_PALETTES
|
||||
add l
|
||||
ld l, a
|
||||
@@ -196,33 +204,21 @@ ReplaceTimeOfDayPals:
|
||||
adc h
|
||||
ld h, a
|
||||
ld a, [hl]
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
|
||||
.NeedsFlash:
|
||||
ld a, [wStatusFlags]
|
||||
bit STATUSFLAGS_FLASH_F, a
|
||||
jr nz, .UsedFlash
|
||||
ld a, DARKNESS_PALSET
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
|
||||
.UsedFlash:
|
||||
ld a, (NITE_F << 6) | (NITE_F << 4) | (NITE_F << 2) | NITE_F
|
||||
.done
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
|
||||
.BrightnessLevels:
|
||||
; actual palettes used when time is
|
||||
; DARKNESS_F, NITE_F, DAY_F, MORN_F
|
||||
dc DARKNESS_F, NITE_F, DAY_F, MORN_F ; PALETTE_AUTO
|
||||
; EVE_F, NITE_F, DAY_F, MORN_F
|
||||
dc EVE_F, NITE_F, DAY_F, MORN_F ; PALETTE_AUTO
|
||||
dc DAY_F, DAY_F, DAY_F, DAY_F ; PALETTE_DAY
|
||||
dc NITE_F, NITE_F, NITE_F, NITE_F ; PALETTE_NITE
|
||||
dc MORN_F, MORN_F, MORN_F, MORN_F ; PALETTE_MORN
|
||||
dc DARKNESS_F, DARKNESS_F, DARKNESS_F, DARKNESS_F ; PALETTE_DARK
|
||||
dc DARKNESS_F, NITE_F, DAY_F, MORN_F
|
||||
dc DARKNESS_F, NITE_F, DAY_F, MORN_F
|
||||
dc DARKNESS_F, NITE_F, DAY_F, MORN_F
|
||||
dc EVE_F, EVE_F, EVE_F, EVE_F ; PALETTE_EVE
|
||||
dc EVE_F, NITE_F, DAY_F, MORN_F
|
||||
dc EVE_F, NITE_F, DAY_F, MORN_F
|
||||
dc EVE_F, NITE_F, DAY_F, MORN_F
|
||||
|
||||
GetTimePalette:
|
||||
jumptable .TimePalettes, wTimeOfDay
|
||||
@@ -231,7 +227,7 @@ GetTimePalette:
|
||||
dw .MorningPalette ; MORN_F
|
||||
dw .DayPalette ; DAY_F
|
||||
dw .NitePalette ; NITE_F
|
||||
dw .DarknessPalette ; DARKNESS_F
|
||||
dw .EveningPalette ; EVE_F
|
||||
|
||||
.MorningPalette:
|
||||
ld a, [wTimeOfDayPalset]
|
||||
@@ -251,7 +247,7 @@ GetTimePalette:
|
||||
swap a
|
||||
ret
|
||||
|
||||
.DarknessPalette:
|
||||
.EveningPalette:
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %11000000
|
||||
rlca
|
||||
|
Reference in New Issue
Block a user