From 16e73266bef50f4e3b0fd3f5753e28a679e29f67 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sun, 14 Apr 2024 23:41:47 +0200 Subject: [PATCH] added setup option for "player moving up/down" graphics in BD engine --- src/files.c | 5 +++++ src/game_bd/bd_cave.c | 4 ++-- src/game_bd/export_bd.h | 1 + src/game_bd/main_bd.c | 7 +++++++ src/libgame/system.h | 1 + src/screens.c | 1 + 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/files.c b/src/files.c index e4c4d0e6..175efdd5 100644 --- a/src/files.c +++ b/src/files.c @@ -10779,6 +10779,10 @@ static struct TokenInfo global_setup_tokens[] = TYPE_SWITCH3, &setup.bd_pushing_graphics, "bd_pushing_graphics" }, + { + TYPE_SWITCH3, + &setup.bd_up_down_graphics, "bd_up_down_graphics" + }, { TYPE_INTEGER, &setup.bd_palette_c64, "bd_palette_c64" @@ -11625,6 +11629,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->bd_scroll_delay = TRUE; si->bd_smooth_movements = AUTO; si->bd_pushing_graphics = TRUE; + si->bd_up_down_graphics = TRUE; si->bd_palette_c64 = GD_DEFAULT_PALETTE_C64; si->bd_palette_c64dtv = GD_DEFAULT_PALETTE_C64DTV; si->bd_palette_atari = GD_DEFAULT_PALETTE_ATARI; diff --git a/src/game_bd/bd_cave.c b/src/game_bd/bd_cave.c index cedab63d..0b635df1 100644 --- a/src/game_bd/bd_cave.c +++ b/src/game_bd/bd_cave.c @@ -1455,12 +1455,12 @@ void gd_drawcave_game(const GdCave *cave, draw = gd_elements[O_PLAYER].image_game; } } - else if (cave->last_direction == GD_MV_UP) + else if (cave->last_direction == GD_MV_UP && use_bd_up_down_graphics()) { map = O_PLAYER_UP; draw = gd_elements[O_PLAYER_UP].image_game; } - else if (cave->last_direction == GD_MV_DOWN) + else if (cave->last_direction == GD_MV_DOWN && use_bd_up_down_graphics()) { map = O_PLAYER_DOWN; draw = gd_elements[O_PLAYER_DOWN].image_game; diff --git a/src/game_bd/export_bd.h b/src/game_bd/export_bd.h index 690481a2..4ee1e948 100644 --- a/src/game_bd/export_bd.h +++ b/src/game_bd/export_bd.h @@ -115,6 +115,7 @@ void GameActions_BD(byte[MAX_PLAYERS]); boolean use_native_bd_graphics_engine(void); boolean use_bd_smooth_movements(void); boolean use_bd_pushing_graphics(void); +boolean use_bd_up_down_graphics(void); Bitmap **GetTitleScreenBitmaps_BD(void); void CoverScreen_BD(void); diff --git a/src/game_bd/main_bd.c b/src/game_bd/main_bd.c index 39925933..d2da72f1 100644 --- a/src/game_bd/main_bd.c +++ b/src/game_bd/main_bd.c @@ -453,6 +453,13 @@ boolean use_bd_pushing_graphics(void) (setup.bd_pushing_graphics == AUTO && !use_native_bd_graphics_engine())); } +// check if player up/down graphics selected in setup menu +boolean use_bd_up_down_graphics(void) +{ + return ((setup.bd_up_down_graphics == TRUE) || + (setup.bd_up_down_graphics == AUTO && !use_native_bd_graphics_engine())); +} + Bitmap **GetTitleScreenBitmaps_BD(void) { Bitmap **title_screen_bitmaps = gd_get_title_screen_bitmaps(); diff --git a/src/libgame/system.h b/src/libgame/system.h index 8122dfff..15c55f77 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -1517,6 +1517,7 @@ struct SetupInfo boolean bd_scroll_delay; int bd_smooth_movements; // not boolean -- can also be "AUTO" int bd_pushing_graphics; // not boolean -- can also be "AUTO" + int bd_up_down_graphics; // not boolean -- can also be "AUTO" int bd_palette_c64; int bd_palette_c64dtv; int bd_palette_atari; diff --git a/src/screens.c b/src/screens.c index b9f53158..241d25f0 100644 --- a/src/screens.c +++ b/src/screens.c @@ -7974,6 +7974,7 @@ static struct TokenInfo setup_info_engines[] = { TYPE_SWITCH, &setup.bd_scroll_delay, "Scroll Delay:" }, { TYPE_YES_NO_AUTO, &setup.bd_smooth_movements, "Smooth Element Movement:" }, { TYPE_YES_NO_AUTO, &setup.bd_pushing_graphics, "Use Player Pushing Graphics:" }, + { TYPE_YES_NO_AUTO, &setup.bd_up_down_graphics, "Use Player Up/Down Graphics:" }, { TYPE_ENTER_LIST, &execSetupChoosePaletteC64, "Color Palette (C64):" }, { TYPE_STRING, &bd_palette_c64_text, "" }, { TYPE_ENTER_LIST, &execSetupChoosePaletteC64DTV, "Color Palette (C64DTV):" }, -- 2.34.1