feat(title): seqüència d'intro temporitzada amb slide-in del peu
This commit is contained in:
1 parent
fceeb11cdd
commit
243ced7498
7 files changed
+226
-75
No files matched your search
@@ -113,7 +113,16 @@ UiConfig::UiConfig()
|
||||
title_fade_out_max_block_(Defaults::UI::Title::FADE_OUT_MAX_BLOCK),
|
||||
title_music_fade_out_ms_(Defaults::UI::Title::MUSIC_FADE_OUT_MS),
|
||||
title_attract_fade_to_black_ms_(Defaults::UI::Title::ATTRACT_FADE_TO_BLACK_MS),
|
||||
title_intro_fade_in_ms_(Defaults::UI::Title::INTRO_FADE_IN_MS),
|
||||
title_intro_{
|
||||
.fade_in_ms = Defaults::UI::Title::Intro::FADE_IN_MS,
|
||||
.game_logo_at_ms = Defaults::UI::Title::Intro::GAME_LOGO_AT_MS,
|
||||
.mini_logo_at_ms = Defaults::UI::Title::Intro::MINI_LOGO_AT_MS,
|
||||
.mini_logo_slide_ms = Defaults::UI::Title::Intro::MINI_LOGO_SLIDE_MS,
|
||||
.copyright_at_ms = Defaults::UI::Title::Intro::COPYRIGHT_AT_MS,
|
||||
.copyright_slide_ms = Defaults::UI::Title::Intro::COPYRIGHT_SLIDE_MS,
|
||||
.slide_curve = curveByName(Defaults::UI::Title::Intro::SLIDE_CURVE),
|
||||
.press_start_at_ms = Defaults::UI::Title::Intro::PRESS_START_AT_MS,
|
||||
},
|
||||
title_heat_haze_{
|
||||
.enabled = Defaults::UI::Title::HeatHaze::ENABLED,
|
||||
.amplitude_px = Defaults::UI::Title::HeatHaze::AMPLITUDE_PX,
|
||||
@@ -251,7 +260,17 @@ void UiConfig::load(const std::string& file_path) {
|
||||
readField(t, "fade_out_max_block", title_fade_out_max_block_);
|
||||
readField(t, "music_fade_out_ms", title_music_fade_out_ms_);
|
||||
readField(t, "attract_fade_to_black_ms", title_attract_fade_to_black_ms_);
|
||||
readField(t, "intro_fade_in_ms", title_intro_fade_in_ms_);
|
||||
if (t.contains("intro")) {
|
||||
const auto& in = t["intro"];
|
||||
readField(in, "fade_in_ms", title_intro_.fade_in_ms);
|
||||
readField(in, "game_logo_at_ms", title_intro_.game_logo_at_ms);
|
||||
readField(in, "mini_logo_at_ms", title_intro_.mini_logo_at_ms);
|
||||
readField(in, "mini_logo_slide_ms", title_intro_.mini_logo_slide_ms);
|
||||
readField(in, "copyright_at_ms", title_intro_.copyright_at_ms);
|
||||
readField(in, "copyright_slide_ms", title_intro_.copyright_slide_ms);
|
||||
readCurve(in, "slide_curve", title_intro_.slide_curve);
|
||||
readField(in, "press_start_at_ms", title_intro_.press_start_at_ms);
|
||||
}
|
||||
if (t.contains("heat_haze")) {
|
||||
const auto& hh = t["heat_haze"];
|
||||
readField(hh, "enabled", title_heat_haze_.enabled);
|
||||
|
||||
@@ -89,6 +89,20 @@ class UiConfig {
|
||||
float speed_hz;
|
||||
};
|
||||
|
||||
// Seqüència d'aparició dels elements en fase IDLE: tots els temps
|
||||
// són absoluts des de l'entrada a l'escena. `slide_curve` es
|
||||
// comparteix entre el slide-in del mini-logo i el del copyright.
|
||||
struct TitleIntro {
|
||||
int fade_in_ms;
|
||||
int game_logo_at_ms;
|
||||
int mini_logo_at_ms;
|
||||
int mini_logo_slide_ms;
|
||||
int copyright_at_ms;
|
||||
int copyright_slide_ms;
|
||||
CurveFn slide_curve;
|
||||
int press_start_at_ms;
|
||||
};
|
||||
|
||||
[[nodiscard]] auto titleDurationMs() const -> int { return title_duration_ms_; }
|
||||
[[nodiscard]] auto titleBgColor() const -> Uint8 { return title_bg_color_; }
|
||||
[[nodiscard]] auto titleTextColor() const -> Uint8 { return title_text_color_; }
|
||||
@@ -106,7 +120,7 @@ class UiConfig {
|
||||
[[nodiscard]] auto titleFadeOutMaxBlock() const -> int { return title_fade_out_max_block_; }
|
||||
[[nodiscard]] auto titleMusicFadeOutMs() const -> int { return title_music_fade_out_ms_; }
|
||||
[[nodiscard]] auto titleAttractFadeToBlackMs() const -> int { return title_attract_fade_to_black_ms_; }
|
||||
[[nodiscard]] auto titleIntroFadeInMs() const -> int { return title_intro_fade_in_ms_; }
|
||||
[[nodiscard]] auto titleIntro() const -> const TitleIntro& { return title_intro_; }
|
||||
[[nodiscard]] auto titleHeatHaze() const -> const TitleHeatHaze& { return title_heat_haze_; }
|
||||
|
||||
// Corbes d'easing triades al YAML. Si el nom no és conegut, s'usa
|
||||
@@ -192,7 +206,7 @@ class UiConfig {
|
||||
int title_fade_out_max_block_;
|
||||
int title_music_fade_out_ms_;
|
||||
int title_attract_fade_to_black_ms_;
|
||||
int title_intro_fade_in_ms_;
|
||||
TitleIntro title_intro_;
|
||||
TitleHeatHaze title_heat_haze_;
|
||||
|
||||
std::string menu_select_sound_;
|
||||
|
||||
Reference in new issue
Block a user