Monopoly — Portage moderne
0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
OptionsVisualPlayback.hpp
Go to the documentation of this file.
1
#pragma once
2
#include "
OptionsUI.hpp
"
3
#include "
SequencePlayback.hpp
"
4
#include <optional>
5
#include <string_view>
6
#include <vector>
7
namespace
monopoly::fonts
{
class
Runtime; }
8
namespace
monopoly::optionsui
9
{
10
inline
constexpr
std::array<std::uint32_t, 9>
OptionLabelTextIds
{
11
3191, 3209, 3192, 3210, 3211, 3212, 3193, 3194, 3195};
12
inline
constexpr
std::array<std::string_view, 5>
MusicNames
{
13
"Let's Play Monopoly!"
,
"Railroad Serenade"
,
"Take a Chance"
,
"Park Place Stroll"
,
"C Notes"
};
14
[[
nodiscard
]]
constexpr
data::DataId
creditsBitmap
(
data::BoardEdition
edition)
noexcept
15
{
16
return
data::packDataId
(
data::LegacyGroupId::LanguageGraphics
,
17
edition ==
data::BoardEdition::Usa
? 0x07FB : 0x0989);
18
}
19
[[
nodiscard
]]
constexpr
int
creditsScrollY
(std::uint64_t
elapsedTicks
)
noexcept
20
{
return
486 -
static_cast<
int
>
((
elapsedTicks
/ 5U) * 2U); }
21
22
// UDStats_GetCharsFromString/PrintString: control bytes end a line, LF is
23
// consumed without a row, other controls consume an empty row.
24
[[
nodiscard
]] std::expected<std::vector<std::string>, std::string>
wrapOptionsText
(
25
fonts::Runtime
&
font
, std::string_view
text
,
int
width
,
bool
replaceUnderscores
);
26
27
class
VisualPlayback
final
28
{
29
public
:
30
// Modern text uses3x AA; Help/Credits render on foreground layer11.
31
// Fixed-profile refreshes retain roots. Changing this profile may restart
32
// foreground UI roots; native layout and Credits scroll cadence remain fixed.
33
[[
nodiscard
]] std::expected<void, std::string>
sync
(
State
&
state
,
34
display::Screen2D
view, std::uint64_t tick,
fonts::Runtime
*
fontRuntime
,
35
engine::SequencePlayback
&
playback
,
bool
modernPresentation
=
false
);
36
void
reset
()
noexcept
;
37
private
:
38
struct
Object
39
{
40
data::DataId
id
{};
41
std::uint16_t
priority
{};
42
int
x
{},
y
{};
43
bool
operator==(
const
Object&)
const
=
default
;
44
};
45
std::array<std::optional<data::DataId>, 19> surfaces_{};
46
std::vector<Object> published_;
47
std::optional<Screen> lastScreen_;
48
bool
lastQuickHelp_{};
49
bool
lastPresentation_{};
50
std::shared_ptr<fonts::Runtime> presentationFont_;
51
int
lastTune_{-1};
52
std::size_t lastHelpLine_{
static_cast<
std::size_t
>
(-1)};
53
std::uint64_t creditsStart_{};
54
int
lastCreditY_{-1};
55
std::shared_ptr<const data::BitmapRuntimeAsset> credits_;
56
data::BitmapRuntimeCache
bitmapCache_;
57
};
58
}
text
std::string_view text
Definition
ArchiveEnglishText.cpp:32
font
fonts::Runtime & font
Definition
ChatTextPlayback.cpp:28
y
int y
Definition
EscapeConfirmationPlayback.cpp:16
x
int x
Definition
EscapeConfirmationPlayback.cpp:15
priority
std::uint16_t priority
Definition
EscapeConfirmationPlayback.cpp:14
width
std::uint32_t width
Definition
MeshGPUResources.cpp:54
state
unsigned state
Definition
ModernIBarSkin.cpp:25
index
unsigned index
Definition
ModernIBarSkin.cpp:25
OptionsUI.hpp
SequencePlayback.hpp
monopoly::data::BitmapRuntimeCache
Definition
BitmapRuntime.hpp:25
monopoly::engine::SequencePlayback
Definition
SequencePlayback.hpp:20
monopoly::fonts::Runtime
Definition
FontRuntime.hpp:74
monopoly::optionsui::VisualPlayback
Definition
OptionsVisualPlayback.hpp:28
monopoly::optionsui::VisualPlayback::sync
std::expected< void, std::string > sync(State &state, display::Screen2D view, std::uint64_t tick, fonts::Runtime *fontRuntime, engine::SequencePlayback &playback, bool modernPresentation=false)
Definition
OptionsVisualPlayback.cpp:122
monopoly::optionsui::VisualPlayback::reset
void reset() noexcept
Definition
OptionsVisualPlayback.cpp:386
monopoly::data::DataId
std::uint32_t DataId
Definition
DataBanks.hpp:10
monopoly::data::BoardEdition
BoardEdition
Definition
DataBanks.hpp:91
monopoly::data::BoardEdition::Usa
@ Usa
monopoly::data::packDataId
constexpr DataId packDataId(std::uint16_t group, DataTag tag) noexcept
Definition
DataBanks.hpp:39
monopoly::data::LegacyGroupId::LanguageGraphics
@ LanguageGraphics
monopoly::display::Screen2D
Screen2D
Definition
Display.hpp:14
monopoly::fonts
Definition
AuctionTextPlayback.hpp:15
monopoly::optionsui
Definition
OptionsCustomBoardPlayback.cpp:9
monopoly::optionsui::MusicNames
constexpr std::array< std::string_view, 5 > MusicNames
Definition
OptionsVisualPlayback.hpp:12
monopoly::optionsui::creditsScrollY
constexpr int creditsScrollY(std::uint64_t elapsedTicks) noexcept
Definition
OptionsVisualPlayback.hpp:19
monopoly::optionsui::OptionLabelTextIds
constexpr std::array< std::uint32_t, 9 > OptionLabelTextIds
Definition
OptionsVisualPlayback.hpp:10
monopoly::optionsui::wrapOptionsText
std::expected< std::vector< std::string >, std::string > wrapOptionsText(fonts::Runtime &font, std::string_view text, int width, bool replaceUnderscores)
Definition
OptionsVisualPlayback.cpp:84
monopoly::optionsui::creditsBitmap
constexpr data::DataId creditsBitmap(data::BoardEdition edition) noexcept
Definition
OptionsVisualPlayback.hpp:14
monopoly::optionsui::State
Definition
OptionsUI.hpp:87
OptionsVisualPlayback.hpp
Generated by
1.9.8