You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
Level selection menu: don't make unique palette numbers and sprite anims for male and female; instead, load either red or blue into pal0 (#12)
This commit is contained in:
@@ -572,17 +572,20 @@ _CGB_GSTitleScreen:
|
||||
ret
|
||||
|
||||
_CGB_LevelSelectionMenu:
|
||||
; load daytime-based player sprite pals (male and female)
|
||||
; load daytime-based player sprite pal (male or female)
|
||||
ld a, [wTimeOfDay]
|
||||
maskbits NUM_DAYTIMES
|
||||
ld bc, 8 palettes
|
||||
ld hl, MapObjectPals
|
||||
call AddNTimes
|
||||
gender_to_pal
|
||||
ld bc, 1 palettes
|
||||
call AddNTimes
|
||||
ld de, wOBPals1
|
||||
ld bc, 2 palettes
|
||||
ld bc, 1 palettes
|
||||
ld a, BANK(wOBPals1)
|
||||
call FarCopyWRAM
|
||||
; load daytime-based ToD symbol pals (pal2)
|
||||
; load daytime-based ToD symbol pals (pal1)
|
||||
ld a, [wTimeOfDay]
|
||||
maskbits NUM_DAYTIMES
|
||||
ld bc, 1 palettes
|
||||
@@ -591,7 +594,7 @@ _CGB_LevelSelectionMenu:
|
||||
ld bc, 1 palettes
|
||||
ld a, BANK(wOBPals1)
|
||||
call FarCopyWRAM
|
||||
; load stage trophy pals (pal3 to pal6)
|
||||
; load stage trophy pals (pal2 to pal5)
|
||||
ld hl, LevelSelectionMenuStageTrophiesPals
|
||||
ld bc, 4 palettes
|
||||
ld a, BANK(wOBPals1)
|
||||
|
@@ -277,10 +277,10 @@ RGBFadeEffectJumptable:
|
||||
table_width 2, RGBFadeEffectJumptable
|
||||
dw _RGBFadeToBlack_6BGP ; RGBFADE_TO_BLACK_6BGP
|
||||
dw _RGBFadeToLighter_6BGP ; RGBFADE_TO_LIGHTER_6BGP
|
||||
dw _RGBFadeToWhite_6BGP_7OBP ; RGBFADE_TO_WHITE_6BGP_7OBP
|
||||
dw _RGBFadeToWhite_6BGP_6OBP ; RGBFADE_TO_WHITE_6BGP_6OBP
|
||||
dw _RGBFadeToWhite_8BGP_8OBP ; RGBFADE_TO_WHITE_8BGP_8OBP
|
||||
dw _RGBFadeToBlack_6BGP_1OBP2 ; RGBFADE_TO_BLACK_6BGP_1OBP2
|
||||
dw _RGBFadeToLighter_6BGP_1OBP2 ; RGBFADE_TO_LIGHTER_6BGP_1OBP2
|
||||
dw _RGBFadeToBlack_6BGP_1OBP1 ; RGBFADE_TO_BLACK_6BGP_1OBP1
|
||||
dw _RGBFadeToLighter_6BGP_1OBP1 ; RGBFADE_TO_LIGHTER_6BGP_1OBP1
|
||||
assert_table_length NUM_RGB_FADE_EFFECTS
|
||||
|
||||
; in RGBFadeEffectJumptable functions, use DelayFrame calls appropriately
|
||||
@@ -307,7 +307,7 @@ _RGBFadeToBlack_6BGP:
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
_RGBFadeToBlack_6BGP_1OBP2:
|
||||
_RGBFadeToBlack_6BGP_1OBP1:
|
||||
ld c, 32 / 2
|
||||
.loop
|
||||
push bc
|
||||
@@ -318,7 +318,7 @@ _RGBFadeToBlack_6BGP_1OBP2:
|
||||
call FadeStepColorsToBlack
|
||||
|
||||
; fade OBP to black
|
||||
ld de, wOBPals2 + 2 palettes
|
||||
ld de, wOBPals2 + 1 palettes
|
||||
ld c, NUM_PAL_COLORS
|
||||
call FadeStepColorsToBlack
|
||||
|
||||
@@ -353,7 +353,7 @@ _RGBFadeToLighter_6BGP:
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
_RGBFadeToLighter_6BGP_1OBP2:
|
||||
_RGBFadeToLighter_6BGP_1OBP1:
|
||||
ld c, 32 / 2
|
||||
.loop
|
||||
push bc
|
||||
@@ -365,8 +365,8 @@ _RGBFadeToLighter_6BGP_1OBP2:
|
||||
call FadeStepColorsToLighter
|
||||
|
||||
; fade OBP to lighter (towards wOBPals1)
|
||||
ld de, wOBPals2 + 2 palettes
|
||||
ld hl, wOBPals1 + 2 palettes
|
||||
ld de, wOBPals2 + 1 palettes
|
||||
ld hl, wOBPals1 + 1 palettes
|
||||
ld c, NUM_PAL_COLORS
|
||||
call FadeStepColorsToLighter
|
||||
|
||||
@@ -380,7 +380,7 @@ _RGBFadeToLighter_6BGP_1OBP2:
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
_RGBFadeToWhite_6BGP_7OBP:
|
||||
_RGBFadeToWhite_6BGP_6OBP:
|
||||
ld c, 32 / 2
|
||||
.loop
|
||||
push bc
|
||||
@@ -392,7 +392,7 @@ _RGBFadeToWhite_6BGP_7OBP:
|
||||
|
||||
; fade OBP to white
|
||||
ld de, wOBPals2
|
||||
ld c, 7 * NUM_PAL_COLORS
|
||||
ld c, 6 * NUM_PAL_COLORS
|
||||
call FadeStepColorsToWhite
|
||||
|
||||
; commit pals
|
||||
|
@@ -85,7 +85,7 @@ LevelSelectionMenu::
|
||||
farcall ClearSpriteAnims
|
||||
|
||||
; fade to the next unlocked level, or to the regular level selection menu
|
||||
ld b, RGBFADE_TO_BLACK_6BGP_1OBP2
|
||||
ld b, RGBFADE_TO_BLACK_6BGP_1OBP1
|
||||
call DoRGBFadeEffect
|
||||
ld c, 30 ;
|
||||
call DelayFrames ; black screen --> next landmark shown
|
||||
@@ -213,7 +213,7 @@ LevelSelectionMenu::
|
||||
ret
|
||||
|
||||
.EnterLevelFadeOut:
|
||||
ld b, RGBFADE_TO_WHITE_6BGP_7OBP
|
||||
ld b, RGBFADE_TO_WHITE_6BGP_6OBP
|
||||
jp DoRGBFadeEffect
|
||||
|
||||
.exit
|
||||
@@ -321,9 +321,7 @@ LevelSelectionMenu_InitPlayerSprite:
|
||||
; because ClearSpriteAnims was called before, it's always loaded to wSpriteAnim1
|
||||
depixel 0, 0
|
||||
; all the SPRITE_ANIM_* related to the level selection menu are sorted by direction, then by gender
|
||||
ld b, SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_DOWN
|
||||
ld a, [wPlayerGender]
|
||||
add b
|
||||
ld a, SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_DOWN
|
||||
call InitSpriteAnimStruct
|
||||
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
||||
add hl, bc
|
||||
@@ -514,10 +512,10 @@ LevelSelectionMenu_DrawTimeOfDaySymbol:
|
||||
ret
|
||||
|
||||
.OAM:
|
||||
db 3 * TILE_WIDTH, 2 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 0, 2
|
||||
db 3 * TILE_WIDTH, 3 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 1, 2
|
||||
db 4 * TILE_WIDTH, 2 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 8, 2
|
||||
db 4 * TILE_WIDTH, 3 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 9, 2
|
||||
db 3 * TILE_WIDTH, 2 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 0, PAL_LSM_TOD
|
||||
db 3 * TILE_WIDTH, 3 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 1, PAL_LSM_TOD
|
||||
db 4 * TILE_WIDTH, 2 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 8, PAL_LSM_TOD
|
||||
db 4 * TILE_WIDTH, 3 * TILE_WIDTH, 24 + NUM_DIRECTIONS + NUM_LEVEL_STAGES * 2 + 9, PAL_LSM_TOD
|
||||
|
||||
LevelSelectionMenu_DrawDirectionalArrows:
|
||||
; Draw directional arrows OAM around player sprite for the valid directions.
|
||||
@@ -559,8 +557,8 @@ LevelSelectionMenu_DrawDirectionalArrows:
|
||||
ld a, [hli]
|
||||
ld [de], a ; tile id
|
||||
inc de
|
||||
gender_to_pal
|
||||
ld [de], a ; attr (use the same pal as player sprite)
|
||||
xor a ; PAL_LSM_PLAYER
|
||||
ld [de], a ; attr (uses the same pal as player sprite)
|
||||
inc de
|
||||
ret
|
||||
|
||||
@@ -684,14 +682,14 @@ LevelSelectionMenu_DrawStageTrophies:
|
||||
db 18 * TILE_WIDTH, 19 * TILE_WIDTH
|
||||
|
||||
.BaseOAMTilesAttrs:
|
||||
db 24 + NUM_DIRECTIONS + 0, 3
|
||||
db 24 + NUM_DIRECTIONS + 4, 3
|
||||
db 24 + NUM_DIRECTIONS + 1, 4
|
||||
db 24 + NUM_DIRECTIONS + 5, 4
|
||||
db 24 + NUM_DIRECTIONS + 2, 5
|
||||
db 24 + NUM_DIRECTIONS + 6, 5
|
||||
db 24 + NUM_DIRECTIONS + 3, 6
|
||||
db 24 + NUM_DIRECTIONS + 7, 6
|
||||
db 24 + NUM_DIRECTIONS + 0, PAL_LSM_TROPHY_1
|
||||
db 24 + NUM_DIRECTIONS + 4, PAL_LSM_TROPHY_1
|
||||
db 24 + NUM_DIRECTIONS + 1, PAL_LSM_TROPHY_2
|
||||
db 24 + NUM_DIRECTIONS + 5, PAL_LSM_TROPHY_2
|
||||
db 24 + NUM_DIRECTIONS + 2, PAL_LSM_TROPHY_3
|
||||
db 24 + NUM_DIRECTIONS + 6, PAL_LSM_TROPHY_3
|
||||
db 24 + NUM_DIRECTIONS + 3, PAL_LSM_TROPHY_4
|
||||
db 24 + NUM_DIRECTIONS + 7, PAL_LSM_TROPHY_4
|
||||
|
||||
LevelSelectionMenu_ClearTextboxOAM:
|
||||
ld hl, wShadowOAM + $8 * SPRITEOAMSTRUCT_LENGTH
|
||||
@@ -710,12 +708,8 @@ LevelSelectionMenu_SetAnimSeqAndFrameset:
|
||||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, [wPlayerGender]
|
||||
ld d, a
|
||||
ld a, SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_DOWN
|
||||
add e
|
||||
ld a, SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_DOWN
|
||||
add e ; add direction
|
||||
add d ; add gender
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
@@ -840,11 +834,11 @@ ENDM
|
||||
ret
|
||||
|
||||
.PageChangeFadeOut:
|
||||
ld b, RGBFADE_TO_BLACK_6BGP_1OBP2
|
||||
ld b, RGBFADE_TO_BLACK_6BGP_1OBP1
|
||||
jp DoRGBFadeEffect
|
||||
|
||||
.PageChangeFadeIn:
|
||||
ld b, RGBFADE_TO_LIGHTER_6BGP_1OBP2
|
||||
ld b, RGBFADE_TO_LIGHTER_6BGP_1OBP1
|
||||
jp DoRGBFadeEffect
|
||||
|
||||
LevelSelectionMenu_GetLandmarkPage:
|
||||
@@ -1127,10 +1121,7 @@ _LevelSelectionMenuHandleTransition:
|
||||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, [wPlayerGender]
|
||||
ld d, a
|
||||
ld a, SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_DOWN
|
||||
add d
|
||||
ld a, SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_DOWN
|
||||
ld [hl], a
|
||||
; return nc to signal back not to apply a displacement during this frame
|
||||
xor a
|
||||
|
Reference in New Issue
Block a user