From d3b397fd37102460c2b349670279651c7ebc3793 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Sat, 3 Feb 2024 15:09:45 +0100 Subject: [PATCH] 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) --- constants/cgb_pal_constants.asm | 6 +- constants/sprite_anim_constants.asm | 78 +++++++---------- constants/sprite_data_constants.asm | 9 ++ data/sprite_anims/framesets.asm | 80 ++++++------------ data/sprite_anims/oam.asm | 45 ++-------- data/sprite_anims/objects.asm | 24 ++---- engine/gfx/cgb_layouts.asm | 11 ++- engine/gfx/rgb_fade.asm | 20 ++--- engine/menus/level_selection_menu.asm | 51 +++++------ .../level_highlighter.png | Bin 229 -> 232 bytes 10 files changed, 121 insertions(+), 203 deletions(-) diff --git a/constants/cgb_pal_constants.asm b/constants/cgb_pal_constants.asm index 1f1ec939a..0e3204242 100644 --- a/constants/cgb_pal_constants.asm +++ b/constants/cgb_pal_constants.asm @@ -129,8 +129,8 @@ DEF NUM_PREDEF_PALS EQU const_value const_def const RGBFADE_TO_BLACK_6BGP const RGBFADE_TO_LIGHTER_6BGP - const RGBFADE_TO_WHITE_6BGP_7OBP + const RGBFADE_TO_WHITE_6BGP_6OBP const RGBFADE_TO_WHITE_8BGP_8OBP - const RGBFADE_TO_BLACK_6BGP_1OBP2 - const RGBFADE_TO_LIGHTER_6BGP_1OBP2 + const RGBFADE_TO_BLACK_6BGP_1OBP1 + const RGBFADE_TO_LIGHTER_6BGP_1OBP1 DEF NUM_RGB_FADE_EFFECTS EQU const_value diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm index c682050c1..345033f4b 100644 --- a/constants/sprite_anim_constants.asm +++ b/constants/sprite_anim_constants.asm @@ -80,18 +80,14 @@ DEF NUM_SPRITEANIMDICT_ENTRIES EQU 10 const SPRITE_ANIM_OBJ_INTRO_UNOWN_F ; 2a const SPRITE_ANIM_OBJ_INTRO_SUICUNE_AWAY ; 2b const SPRITE_ANIM_OBJ_CELEBI ; 2c - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_DOWN ; 2d - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_DOWN ; 2e - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_UP ; 2f - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_UP ; 30 - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_LEFT ; 31 - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_LEFT ; 32 - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_RIGHT ; 33 - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_RIGHT ; 34 - const SPRITE_ANIM_OBJ_BOARD_MENU_BREAK_DIE ; 35 - const SPRITE_ANIM_OBJ_BOARD_MENU_APPEAR_DIE_NUMBER ; 36 - const SPRITE_ANIM_OBJ_BOARD_MENU_MOVE_DIE_NUMBER ; 37 - const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_HIGHLIGHT_LEVEL ; 38 + const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_DOWN ; 2d + const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_UP ; 2e + const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_LEFT ; 2f + const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_RIGHT ; 30 + const SPRITE_ANIM_OBJ_BOARD_MENU_BREAK_DIE ; 31 + const SPRITE_ANIM_OBJ_BOARD_MENU_APPEAR_DIE_NUMBER ; 32 + const SPRITE_ANIM_OBJ_BOARD_MENU_MOVE_DIE_NUMBER ; 33 + const SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_HIGHLIGHT_LEVEL ; 34 DEF NUM_SPRITE_ANIM_OBJS EQU const_value ; DoSpriteAnimFrame.Jumptable indexes (see engine/sprite_anims/functions.asm) @@ -206,18 +202,14 @@ DEF NUM_SPRITE_ANIM_FUNCS EQU const_value const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40 const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_DOWN ; 42 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_DOWN ; 43 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_UP ; 44 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_UP ; 45 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_LEFT ; 46 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_LEFT ; 47 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_RIGHT ; 48 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_RIGHT ; 49 - const SPRITE_ANIM_FRAMESET_BOARD_MENU_BREAK_DIE ; 50 - const SPRITE_ANIM_FRAMESET_BOARD_MENU_APPEAR_DIE_NUMBER ; 51 - const SPRITE_ANIM_FRAMESET_BOARD_MENU_MOVE_DIE_NUMBER ; 52 - const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_HIGHLIGHT_LEVEL ; 53 + const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_DOWN ; 42 + const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_UP ; 43 + const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_LEFT ; 44 + const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_RIGHT ; 45 + const SPRITE_ANIM_FRAMESET_BOARD_MENU_BREAK_DIE ; 46 + const SPRITE_ANIM_FRAMESET_BOARD_MENU_APPEAR_DIE_NUMBER ; 47 + const SPRITE_ANIM_FRAMESET_BOARD_MENU_MOVE_DIE_NUMBER ; 48 + const SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_HIGHLIGHT_LEVEL ; 49 DEF NUM_SPRITE_ANIM_FRAMESETS EQU const_value ; SpriteAnimOAMData indexes (see data/sprite_anims/oam.asm) @@ -362,29 +354,21 @@ DEF NUM_SPRITE_ANIM_FRAMESETS EQU const_value const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9 ; 89 const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10 ; 8a const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11 ; 8b - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_1 ; 8c - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_2 ; 8d - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_1 ; 8e - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_2 ; 8f - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_1 ; 90 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_2 ; 91 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_1 ; 92 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_2 ; 93 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_1 ; 94 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_2 ; 95 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_1 ; 96 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_2 ; 97 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_1 ; 98 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_2 ; 99 - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_1 ; 9a - const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_2 ; 9b - const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_1 ; 9c - const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_2 ; 9d - const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_3 ; 9e - const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_4 ; 9f - const SPRITE_ANIM_OAMSET_BOARD_MENU_DIE_NUMBER ; a0 - const SPRITE_ANIM_OAMSET_LSM_HIGHLIGHT_LEVEL_1 ; a1 - const SPRITE_ANIM_OAMSET_LSM_HIGHLIGHT_LEVEL_2 ; a2 + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_1 ; 8c + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_2 ; 8d + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_1 ; 8e + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_2 ; 8f + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_1 ; 90 + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_2 ; 91 + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_1 ; 92 + const SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_2 ; 93 + const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_1 ; 94 + const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_2 ; 95 + const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_3 ; 96 + const SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_4 ; 97 + const SPRITE_ANIM_OAMSET_BOARD_MENU_DIE_NUMBER ; 98 + const SPRITE_ANIM_OAMSET_LSM_HIGHLIGHT_LEVEL_1 ; 99 + const SPRITE_ANIM_OAMSET_LSM_HIGHLIGHT_LEVEL_2 ; 9a DEF NUM_SPRITE_ANIM_OAMSETS EQU const_value assert NUM_SPRITE_ANIM_OAMSETS <= FIRST_OAM_CMD, \ diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm index c0d786b20..2a267e987 100644 --- a/constants/sprite_data_constants.asm +++ b/constants/sprite_data_constants.asm @@ -35,3 +35,12 @@ DEF NUM_SPRITEDATA_FIELDS EQU _RS const PAL_NPC_TREE ; d const PAL_NPC_ROCK ; e const PAL_NPC_MISC ; f + +; level selection menu sprite palettes + const_def + const PAL_LSM_PLAYER ; 0 + const PAL_LSM_TOD ; 1 + const PAL_LSM_TROPHY_1 ; 2 + const PAL_LSM_TROPHY_2 ; 3 + const PAL_LSM_TROPHY_3 ; 4 + const PAL_LSM_TROPHY_4 ; 5 diff --git a/data/sprite_anims/framesets.asm b/data/sprite_anims/framesets.asm index c167f23f0..dcc04e15a 100644 --- a/data/sprite_anims/framesets.asm +++ b/data/sprite_anims/framesets.asm @@ -67,14 +67,10 @@ SpriteAnimFrameData: dw .Frameset_IntroUnownF dw .Frameset_CelebiLeft dw .Frameset_CelebiRight - dw .Frameset_LevelSelectionMenuMaleWalkDown - dw .Frameset_LevelSelectionMenuFemaleWalkDown - dw .Frameset_LevelSelectionMenuMaleWalkUp - dw .Frameset_LevelSelectionMenuFemaleWalkUp - dw .Frameset_LevelSelectionMenuMaleWalkLeft - dw .Frameset_LevelSelectionMenuFemaleWalkLeft - dw .Frameset_LevelSelectionMenuMaleWalkRight - dw .Frameset_LevelSelectionMenuFemaleWalkRight + dw .Frameset_LevelSelectionMenuWalkDown + dw .Frameset_LevelSelectionMenuWalkUp + dw .Frameset_LevelSelectionMenuWalkLeft + dw .Frameset_LevelSelectionMenuWalkRight dw .Frameset_BoardMenuBreakDie dw .Frameset_BoardMenuAppearDieNumber dw .Frameset_BoardMenuMoveDieNumber @@ -510,60 +506,32 @@ SpriteAnimFrameData: oamframe SPRITE_ANIM_OAMSET_CELEBI_2, 8, OAM_X_FLIP oamend -.Frameset_LevelSelectionMenuMaleWalkDown: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_2, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_2, 6, OAM_X_FLIP +.Frameset_LevelSelectionMenuWalkDown: + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_1, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_2, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_1, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_2, 6, OAM_X_FLIP oamrestart -.Frameset_LevelSelectionMenuFemaleWalkDown: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_2, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_2, 6, OAM_X_FLIP +.Frameset_LevelSelectionMenuWalkUp: + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_1, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_2, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_1, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_2, 6, OAM_X_FLIP oamrestart -.Frameset_LevelSelectionMenuMaleWalkUp: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_2, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_2, 6, OAM_X_FLIP +.Frameset_LevelSelectionMenuWalkLeft: + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_1, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_2, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_1, 6 + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_2, 6 oamrestart -.Frameset_LevelSelectionMenuFemaleWalkUp: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_2, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_2, 6, OAM_X_FLIP - oamrestart - -.Frameset_LevelSelectionMenuMaleWalkLeft: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_2, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_2, 6 - oamrestart - -.Frameset_LevelSelectionMenuFemaleWalkLeft: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_2, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_1, 6 - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_2, 6 - oamrestart - -.Frameset_LevelSelectionMenuMaleWalkRight: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_1, 6, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_2, 6, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_1, 6, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_2, 6, OAM_X_FLIP - oamrestart - -.Frameset_LevelSelectionMenuFemaleWalkRight: - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_1, 6, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_2, 6, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_1, 6, OAM_X_FLIP - oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_2, 6, OAM_X_FLIP +.Frameset_LevelSelectionMenuWalkRight: + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_1, 6, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_2, 6, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_1, 6, OAM_X_FLIP + oamframe SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_2, 6, OAM_X_FLIP oamrestart .Frameset_BoardMenuBreakDie: diff --git a/data/sprite_anims/oam.asm b/data/sprite_anims/oam.asm index f360c29aa..23dc28759 100644 --- a/data/sprite_anims/oam.asm +++ b/data/sprite_anims/oam.asm @@ -147,22 +147,14 @@ SpriteAnimOAMData: spriteanimoam $08, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9 spriteanimoam $04, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10 spriteanimoam $00, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11 - spriteanimoam $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_1 - spriteanimoam $0c, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_DOWN_2 - spriteanimoam $00, .OAMData_BlueWalk ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_1 - spriteanimoam $0c, .OAMData_BlueWalk ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_DOWN_2 - spriteanimoam $04, .OAMData_RedWalkUp ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_1 - spriteanimoam $10, .OAMData_RedWalkUp ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_UP_2 - spriteanimoam $04, .OAMData_BlueWalkUp ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_1 - spriteanimoam $10, .OAMData_BlueWalkUp ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_UP_2 - spriteanimoam $08, .OAMData_RedWalkLeft ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_1 - spriteanimoam $14, .OAMData_RedWalkLeft ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_LEFT_2 - spriteanimoam $08, .OAMData_BlueWalkLeft ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_1 - spriteanimoam $14, .OAMData_BlueWalkLeft ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_LEFT_2 - spriteanimoam $08, .OAMData_RedWalkRight ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_1 - spriteanimoam $14, .OAMData_RedWalkRight ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_MALE_RIGHT_2 - spriteanimoam $08, .OAMData_BlueWalkRight ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_1 - spriteanimoam $14, .OAMData_BlueWalkRight ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_FEMALE_RIGHT_2 + spriteanimoam $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_1 + spriteanimoam $0c, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_DOWN_2 + spriteanimoam $04, .OAMData_RedWalkUp ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_1 + spriteanimoam $10, .OAMData_RedWalkUp ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_UP_2 + spriteanimoam $08, .OAMData_RedWalkLeft ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_1 + spriteanimoam $14, .OAMData_RedWalkLeft ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_LEFT_2 + spriteanimoam $08, .OAMData_RedWalkRight ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_1 + spriteanimoam $14, .OAMData_RedWalkRight ; SPRITE_ANIM_OAMSET_LEVEL_SELECTION_MENU_RIGHT_2 spriteanimoam $00, .OAMData_BreakDie1 ; SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_1 spriteanimoam $00, .OAMData_BreakDie2 ; SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_2 spriteanimoam $00, .OAMData_BreakDie3 ; SPRITE_ANIM_OAMSET_BOARD_MENU_BREAK_DIE_3 @@ -788,27 +780,6 @@ SpriteAnimOAMData: dbsprite -1, 0, 0, 0, $02, PAL_OW_BLUE dbsprite 0, 0, 0, 0, $03, PAL_OW_BLUE -.OAMData_BlueWalkUp: - db 4 - dsprite -1, 0, -1, 0, $00, PAL_OW_BLUE - dsprite -1, 0, 0, 0, $01, PAL_OW_BLUE - dsprite 0, 0, -1, 0, $02, PAL_OW_BLUE - dsprite 0, 0, 0, 0, $03, PAL_OW_BLUE - -.OAMData_BlueWalkLeft: - db 4 - dsprite -1, 0, -1, 0, $00, PAL_OW_BLUE - dsprite -1, 0, 0, 0, $01, PAL_OW_BLUE - dsprite 0, 0, -1, 0, $02, PAL_OW_BLUE - dsprite 0, 0, 0, 0, $03, PAL_OW_BLUE - -.OAMData_BlueWalkRight: - db 4 - dsprite -1, 0, -1, 0, $00, PAL_OW_BLUE - dsprite -1, 0, 0, 0, $01, PAL_OW_BLUE - dsprite 0, 0, -1, 0, $02, PAL_OW_BLUE - dsprite 0, 0, 0, 0, $03, PAL_OW_BLUE - .OAMData_MagnetTrainBlue: db 4 dbsprite -1, -1, 0, 0, $00, PAL_OW_BLUE | PRIORITY diff --git a/data/sprite_anims/objects.asm b/data/sprite_anims/objects.asm index c4eefe1e1..f72ac1f20 100644 --- a/data/sprite_anims/objects.asm +++ b/data/sprite_anims/objects.asm @@ -92,22 +92,14 @@ SpriteAnimObjects: db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY, SPRITE_ANIM_FUNC_INTRO_SUICUNE_AWAY, SPRITE_ANIM_DICT_DEFAULT ; SPRITE_ANIM_OBJ_CELEBI db SPRITE_ANIM_FRAMESET_CELEBI_LEFT, SPRITE_ANIM_FUNC_NULL, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_DOWN - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_DOWN, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_DOWN, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_DOWN - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_DOWN, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_DOWN, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_UP - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_UP, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_UP, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_UP - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_UP, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_UP, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_LEFT - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_LEFT, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_LEFT, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_LEFT - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_LEFT, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_LEFT, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_MALE_WALK_RIGHT - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_MALE_WALK_RIGHT, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_RIGHT, SPRITE_ANIM_DICT_DEFAULT -; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_FEMALE_WALK_RIGHT - db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_FEMALE_WALK_RIGHT, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_RIGHT, SPRITE_ANIM_DICT_DEFAULT +; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_DOWN + db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_DOWN, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_DOWN, SPRITE_ANIM_DICT_DEFAULT +; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_UP + db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_UP, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_UP, SPRITE_ANIM_DICT_DEFAULT +; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_LEFT + db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_LEFT, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_LEFT, SPRITE_ANIM_DICT_DEFAULT +; SPRITE_ANIM_OBJ_LEVEL_SELECTION_MENU_WALK_RIGHT + db SPRITE_ANIM_FRAMESET_LEVEL_SELECTION_MENU_WALK_RIGHT, SPRITE_ANIM_FUNC_LEVEL_SELECTION_MENU_WALK_RIGHT, SPRITE_ANIM_DICT_DEFAULT ; SPRITE_ANIM_OBJ_BOARD_MENU_BREAK_DIE db SPRITE_ANIM_FRAMESET_BOARD_MENU_BREAK_DIE, SPRITE_ANIM_FUNC_NULL, SPRITE_ANIM_DICT_BOARD_MENU ; SPRITE_ANIM_OBJ_BOARD_MENU_APPEAR_DIE_NUMBER diff --git a/engine/gfx/cgb_layouts.asm b/engine/gfx/cgb_layouts.asm index 2e39fe681..c9a314cc5 100644 --- a/engine/gfx/cgb_layouts.asm +++ b/engine/gfx/cgb_layouts.asm @@ -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) diff --git a/engine/gfx/rgb_fade.asm b/engine/gfx/rgb_fade.asm index 58664e84b..115f1429f 100755 --- a/engine/gfx/rgb_fade.asm +++ b/engine/gfx/rgb_fade.asm @@ -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 diff --git a/engine/menus/level_selection_menu.asm b/engine/menus/level_selection_menu.asm index 029255d53..840177777 100755 --- a/engine/menus/level_selection_menu.asm +++ b/engine/menus/level_selection_menu.asm @@ -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 diff --git a/gfx/level_selection_menu/level_highlighter.png b/gfx/level_selection_menu/level_highlighter.png index 5665fbac64b288ba61f046ce392b27feab2fdb1b..437303e758389f2fda06d82da8f44310330873f3 100755 GIT binary patch delta 167 zcmV;Y09gO!0q6mcNq>q-L_t(YOYM?D4uBvG1gU@Il{`{iV$BxX7}0|<%z+4Y2dv1t zlOEs-MC5p~czbmMgmccv%u-6}Bu2nt6f?Zel2g!zxd=q>7YtWnfHgf8YLNj|phRJX zC5jP@@G${5$Ag=#R6*2XCi+wFT_nXjrqYH%Cjj0j0H@R!+#um^7iokkm;x{bDQ%iB VcoYS|ugd@c002ovPDHLkV1k;cMJ@mU delta 164 zcmV;V09*g)0p$UZNq>h)L_t(YOYM`<4uBvCMXitYBmKz|hXx3^vaKFGFS)q)%3y9s zCQP6P#2E3!Nh#s!V#ja8G6PzTbwCC3HmlY;@XP@HN3|tjWUgo-YzCgWA~oF*@A9(% zI!p_xDFN1sB-*xG2cri`(8Q3@zpZTdOCyT&K1fE^V8tbp$WLO21vdqgNB S2h%wK0000