Monopoly — Portage moderne
0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
ArchiveAssembly.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
LegacyDataArchiveBuilder.hpp
"
4
5
#include <filesystem>
6
#include <map>
7
#include <optional>
8
#include <string>
9
#include <vector>
10
11
namespace
monopoly::data::assembly
12
{
13
struct
Request
14
{
15
std::filesystem::path
sourceRoot
;
// Source/monopoly, read-only
16
std::filesystem::path
outputRoot
;
// Isolated reconstruction workspace
17
std::vector<std::filesystem::path>
extraRoots
;
18
std::optional<std::filesystem::path>
mappings
;
19
bool
requireComplete
{};
20
};
21
22
struct
BankResult
23
{
24
std::string
name
;
25
std::size_t
expected
{};
26
std::size_t
available
{};
27
std::size_t
invalid
{};
28
std::filesystem::path
archive
;
29
[[
nodiscard
]]
bool
complete
()
const
noexcept
30
{
return
expected
!= 0 &&
available
==
expected
&&
invalid
== 0; }
31
};
32
33
struct
Result
34
{
35
std::filesystem::path
directory
;
36
std::vector<BankResult>
banks
;
37
[[
nodiscard
]]
bool
complete
()
const
noexcept
;
38
};
39
40
// Assembly never installs incomplete banks into the application's Dat_Mon.
41
// Failure to resolve a payload is recorded, never substituted with an image,
42
// fabricated animation, silent WAV or a compacted (renumbered) data index.
43
[[
nodiscard
]]
Result
run
(
const
Request
& request);
44
45
struct
EnglishText
46
{
47
std::map<std::uint32_t, std::string>
requiredNames
;
48
std::map<std::uint32_t, std::string>
text
;
49
std::vector<std::string>
unmappedSymbols
;
50
};
51
52
// The supplied English.atr uses ASCII, symbolic IDs and braced messages.
53
// Only exact symbols in the active dat_lang.h are mapped. English.A belongs
54
// to a different compiled format and its numeric offsets are not guessed.
55
[[
nodiscard
]]
EnglishText
readEnglishText
(
56
const
std::filesystem::path& definitions,
57
const
std::filesystem::path&
atr
);
58
[[
nodiscard
]] std::vector<ArchiveBuildItem>
buildEnglishItems
(
59
const
EnglishText
&
input
);
60
}
LegacyDataArchiveBuilder.hpp
index
unsigned index
Definition
ModernIBarSkin.cpp:25
input
Bytes input
Definition
TcpMessageTransport.cpp:218
monopoly::data::assembly
Definition
ArchiveAssembly.cpp:21
monopoly::data::assembly::readEnglishText
EnglishText readEnglishText(const std::filesystem::path &definitions, const std::filesystem::path &atr)
Definition
ArchiveEnglishText.cpp:93
monopoly::data::assembly::buildEnglishItems
std::vector< ArchiveBuildItem > buildEnglishItems(const EnglishText &input)
Definition
ArchiveEnglishText.cpp:152
monopoly::data::assembly::run
Result run(const Request &request)
Definition
ArchiveAssembly.cpp:301
monopoly::data::assembly::BankResult
Definition
ArchiveAssembly.hpp:23
monopoly::data::assembly::BankResult::expected
std::size_t expected
Definition
ArchiveAssembly.hpp:25
monopoly::data::assembly::BankResult::complete
bool complete() const noexcept
Definition
ArchiveAssembly.hpp:29
monopoly::data::assembly::BankResult::name
std::string name
Definition
ArchiveAssembly.hpp:24
monopoly::data::assembly::BankResult::invalid
std::size_t invalid
Definition
ArchiveAssembly.hpp:27
monopoly::data::assembly::BankResult::available
std::size_t available
Definition
ArchiveAssembly.hpp:26
monopoly::data::assembly::BankResult::archive
std::filesystem::path archive
Definition
ArchiveAssembly.hpp:28
monopoly::data::assembly::EnglishText
Definition
ArchiveAssembly.hpp:46
monopoly::data::assembly::EnglishText::requiredNames
std::map< std::uint32_t, std::string > requiredNames
Definition
ArchiveAssembly.hpp:47
monopoly::data::assembly::EnglishText::unmappedSymbols
std::vector< std::string > unmappedSymbols
Definition
ArchiveAssembly.hpp:49
monopoly::data::assembly::EnglishText::text
std::map< std::uint32_t, std::string > text
Definition
ArchiveAssembly.hpp:48
monopoly::data::assembly::Request
Definition
ArchiveAssembly.hpp:14
monopoly::data::assembly::Request::mappings
std::optional< std::filesystem::path > mappings
Definition
ArchiveAssembly.hpp:18
monopoly::data::assembly::Request::extraRoots
std::vector< std::filesystem::path > extraRoots
Definition
ArchiveAssembly.hpp:17
monopoly::data::assembly::Request::requireComplete
bool requireComplete
Definition
ArchiveAssembly.hpp:19
monopoly::data::assembly::Request::outputRoot
std::filesystem::path outputRoot
Definition
ArchiveAssembly.hpp:16
monopoly::data::assembly::Request::sourceRoot
std::filesystem::path sourceRoot
Definition
ArchiveAssembly.hpp:15
monopoly::data::assembly::Result
Definition
ArchiveAssembly.hpp:34
monopoly::data::assembly::Result::directory
std::filesystem::path directory
Definition
ArchiveAssembly.hpp:35
monopoly::data::assembly::Result::banks
std::vector< BankResult > banks
Definition
ArchiveAssembly.hpp:36
monopoly::data::assembly::Result::complete
bool complete() const noexcept
Definition
ArchiveAssembly.cpp:298
ArchiveAssembly.hpp
Generated by
1.9.8