@@ -22,20 +22,23 @@ struct upscales
22
22
* remaster uses x, other versions have 3 char coo
23
23
*/
24
24
std::optional<open_viii::LangT> m_coo = { std::nullopt };
25
- static constexpr std::string_view m_ext = " .png" ;
25
+ static constexpr std::string_view m_ext = { " .png" };
26
+ bool m_no_prefix = { false };
26
27
27
28
public:
28
29
upscales () = default ;
29
- upscales (std::filesystem::path root, std::string field_name, std::optional<open_viii::LangT> coo)
30
+ upscales (std::filesystem::path root, std::string field_name, std::optional<open_viii::LangT> coo, bool no_prefix = false )
30
31
: m_root(std::move(root))
31
32
, m_field_name(std::move(field_name))
32
33
, m_coo(coo)
34
+ , m_no_prefix(no_prefix)
33
35
{
34
36
}
35
- upscales (std::string field_name, std::optional<open_viii::LangT> coo)
37
+ upscales (std::string field_name, std::optional<open_viii::LangT> coo, bool no_prefix = false )
36
38
: m_root(std::filesystem::current_path())
37
39
, m_field_name(std::move(field_name))
38
40
, m_coo(coo)
41
+ , m_no_prefix(no_prefix)
39
42
{
40
43
}
41
44
@@ -52,11 +55,13 @@ struct upscales
52
55
field_root
53
56
/ fmt::format (" {}_{}_{}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), texture_page, palette, ext),
54
57
field_root / prefix / m_field_name
55
- / fmt::format (" {}_{}_{}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), texture_page, palette, ext)
58
+ / fmt::format (" {}_{}_{}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), texture_page, palette, ext),
59
+ field_root / m_field_name / fmt::format (" {}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), ext)
56
60
};
57
61
}
58
62
return std::array{ field_root / fmt::format (" {}_{}_{}{}" , m_field_name, texture_page, palette, ext),
59
- field_root / prefix / m_field_name / fmt::format (" {}_{}_{}{}" , m_field_name, texture_page, palette, ext) };
63
+ field_root / prefix / m_field_name / fmt::format (" {}_{}_{}{}" , m_field_name, texture_page, palette, ext),
64
+ field_root / m_field_name / fmt::format (" {}{}" , m_field_name, ext) };
60
65
}
61
66
62
67
[[nodiscard]] auto
@@ -69,103 +74,100 @@ struct upscales
69
74
return std::array{
70
75
field_root / fmt::format (" {}_{}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), texture_page, ext),
71
76
field_root / prefix / m_field_name
72
- / fmt::format (" {}_{}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), texture_page, ext)
77
+ / fmt::format (" {}_{}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), texture_page, ext),
78
+ field_root / m_field_name
79
+ / fmt::format (" {}_{}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), texture_page, ext),
80
+ field_root / m_field_name / fmt::format (" {}_{}{}" , m_field_name, open_viii::LangCommon::to_string (*m_coo), ext)
73
81
};
74
82
}
75
83
return std::array{ field_root / fmt::format (" {}_{}{}" , m_field_name, texture_page, ext),
76
- field_root / prefix / m_field_name / fmt::format (" {}_{}{}" , m_field_name, texture_page, ext) };
84
+ field_root / prefix / m_field_name / fmt::format (" {}_{}{}" , m_field_name, texture_page, ext),
85
+ field_root / m_field_name / fmt::format (" {}_{}{}" , m_field_name, texture_page, ext),
86
+ field_root / m_field_name / fmt::format (" {}{}" , m_field_name, ext) };
77
87
}
78
88
79
- [[nodiscard]] auto get_paths () const
89
+ [[nodiscard]] auto get_paths (bool no_prefix = false ) const
80
90
{
81
91
if (m_field_name.empty ())
82
92
{
83
- return std::array{
84
- m_root / tl::string::replace_slashes (fmt::format (R"( DEMASTER_EXP\textures\field_bg)" )),
85
- m_root / " field_bg" ,
86
- m_root / tl::string::replace_slashes (fmt::format (R"( textures\fields)" )),
87
- m_root / tl::string::replace_slashes (fmt::format (R"( textures)" )),
88
- m_root
89
- / tl::string::replace_slashes (fmt::format (
90
- R"( ff8\Data\{}\field\mapdata)" ,
91
- open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic))),
92
- m_root
93
- / tl::string::replace_slashes (fmt::format (
94
- R"( ff8\Data\{}\FIELD\mapdata)" ,
95
- open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic))),
96
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata)" , open_viii::LangCommon::ENG)),
97
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata)" , open_viii::LangCommon::ENG)),
98
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata)" , open_viii::LangCommon::FRE)),
99
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata)" , open_viii::LangCommon::FRE)),
100
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata)" , open_viii::LangCommon::GER)),
101
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata)" , open_viii::LangCommon::GER)),
102
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata)" , open_viii::LangCommon::ITA)),
103
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata)" , open_viii::LangCommon::ITA)),
104
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata)" , open_viii::LangCommon::SPA)),
105
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata)" , open_viii::LangCommon::SPA)),
106
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata)" , open_viii::LangCommon::JP)),
107
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata)" , open_viii::LangCommon::JP)),
108
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata)" , ' x' )),
109
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata)" , ' x' ))
110
- };
93
+ return std::array{ m_root / " mods" / " Textures" ,
94
+ m_root / " DEMASTER_EXP" / " textures" / " field_bg" ,
95
+ m_root / " field_bg" ,
96
+ m_root / " textures" / " fields" ,
97
+ m_root / " textures" ,
98
+ m_root / " ff8" / " Data"
99
+ / open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic) / " field"
100
+ / " mapdata" ,
101
+ m_root / " ff8" / " Data"
102
+ / open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic) / " FIELD"
103
+ / " mapdata" ,
104
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ENG / " field" / " mapdata" ,
105
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ENG / " FIELD" / " mapdata" ,
106
+ m_root / " ff8" / " Data" / open_viii::LangCommon::FRE / " field" / " mapdata" ,
107
+ m_root / " ff8" / " Data" / open_viii::LangCommon::FRE / " FIELD" / " mapdata" ,
108
+ m_root / " ff8" / " Data" / open_viii::LangCommon::GER / " field" / " mapdata" ,
109
+ m_root / " ff8" / " Data" / open_viii::LangCommon::GER / " FIELD" / " mapdata" ,
110
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ITA / " field" / " mapdata" ,
111
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ITA / " FIELD" / " mapdata" ,
112
+ m_root / " ff8" / " Data" / open_viii::LangCommon::SPA / " field" / " mapdata" ,
113
+ m_root / " ff8" / " Data" / open_viii::LangCommon::SPA / " FIELD" / " mapdata" ,
114
+ m_root / " ff8" / " Data" / open_viii::LangCommon::JP / " field" / " mapdata" ,
115
+ m_root / " ff8" / " Data" / open_viii::LangCommon::JP / " FIELD" / " mapdata" ,
116
+ m_root / " ff8" / " Data" / " x" / " field" / " mapdata" ,
117
+ m_root / " ff8" / " Data" / " x" / " FIELD" / " mapdata" };
118
+ }
119
+ if (m_no_prefix || no_prefix)
120
+ {
121
+ return std::array{ m_root / " mods" / " Textures" / m_field_name,
122
+ m_root / " DEMASTER_EXP" / " textures" / " field_bg" / m_field_name,
123
+ m_root / " field_bg" / m_field_name,
124
+ m_root / " textures" / " fields" / m_field_name,
125
+ m_root / " textures" / m_field_name,
126
+ m_root / " ff8" / " Data"
127
+ / open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic) / " field"
128
+ / " mapdata" / m_field_name,
129
+ m_root / " ff8" / " Data"
130
+ / open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic) / " FIELD"
131
+ / " mapdata" / m_field_name,
132
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ENG / " field" / " mapdata" / m_field_name,
133
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ENG / " FIELD" / " mapdata" / m_field_name,
134
+ m_root / " ff8" / " Data" / open_viii::LangCommon::FRE / " field" / " mapdata" / m_field_name,
135
+ m_root / " ff8" / " Data" / open_viii::LangCommon::FRE / " FIELD" / " mapdata" / m_field_name,
136
+ m_root / " ff8" / " Data" / open_viii::LangCommon::GER / " field" / " mapdata" / m_field_name,
137
+ m_root / " ff8" / " Data" / open_viii::LangCommon::GER / " FIELD" / " mapdata" / m_field_name,
138
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ITA / " field" / " mapdata" / m_field_name,
139
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ITA / " FIELD" / " mapdata" / m_field_name,
140
+ m_root / " ff8" / " Data" / open_viii::LangCommon::SPA / " field" / " mapdata" / m_field_name,
141
+ m_root / " ff8" / " Data" / open_viii::LangCommon::SPA / " FIELD" / " mapdata" / m_field_name,
142
+ m_root / " ff8" / " Data" / open_viii::LangCommon::JP / " field" / " mapdata" / m_field_name,
143
+ m_root / " ff8" / " Data" / open_viii::LangCommon::JP / " FIELD" / " mapdata" / m_field_name,
144
+ m_root / " ff8" / " Data" / " x" / " field" / " mapdata" / m_field_name,
145
+ m_root / " ff8" / " Data" / " x" / " FIELD" / " mapdata" / m_field_name };
111
146
}
112
147
const std::string_view prefix = std::string_view (m_field_name).substr (0 , 2 );
113
- return std::array{
114
- m_root / tl::string::replace_slashes (fmt::format (R"( DEMASTER_EXP\textures\field_bg\{}\{}\)" , prefix, m_field_name)),
115
- m_root / tl::string::replace_slashes (fmt::format (R"( field_bg\{}\{}\)" , prefix, m_field_name)),
116
- m_root / tl::string::replace_slashes (fmt::format (R"( textures\fields\{}\{}\)" , prefix, m_field_name)),
117
- m_root / tl::string::replace_slashes (fmt::format (R"( textures\{}\{}\)" , prefix, m_field_name)),
118
- m_root
119
- / tl::string::replace_slashes (fmt::format (
120
- R"( ff8\Data\{}\field\mapdata\{}\{})" ,
121
- open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic),
122
- prefix,
123
- m_field_name)),
124
- m_root
125
- / tl::string::replace_slashes (fmt::format (
126
- R"( ff8\Data\{}\FIELD\mapdata\{}\{})" ,
127
- open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic),
128
- prefix,
129
- m_field_name)),
130
- m_root
131
- / tl::string::replace_slashes (
132
- fmt::format (R"( ff8\Data\{}\field\mapdata\{}\{})" , open_viii::LangCommon::ENG, prefix, m_field_name)),
133
- m_root
134
- / tl::string::replace_slashes (
135
- fmt::format (R"( ff8\Data\{}\FIELD\mapdata\{}\{})" , open_viii::LangCommon::ENG, prefix, m_field_name)),
136
- m_root
137
- / tl::string::replace_slashes (
138
- fmt::format (R"( ff8\Data\{}\field\mapdata\{}\{})" , open_viii::LangCommon::FRE, prefix, m_field_name)),
139
- m_root
140
- / tl::string::replace_slashes (
141
- fmt::format (R"( ff8\Data\{}\FIELD\mapdata\{}\{})" , open_viii::LangCommon::FRE, prefix, m_field_name)),
142
- m_root
143
- / tl::string::replace_slashes (
144
- fmt::format (R"( ff8\Data\{}\field\mapdata\{}\{})" , open_viii::LangCommon::GER, prefix, m_field_name)),
145
- m_root
146
- / tl::string::replace_slashes (
147
- fmt::format (R"( ff8\Data\{}\FIELD\mapdata\{}\{})" , open_viii::LangCommon::GER, prefix, m_field_name)),
148
- m_root
149
- / tl::string::replace_slashes (
150
- fmt::format (R"( ff8\Data\{}\field\mapdata\{}\{})" , open_viii::LangCommon::ITA, prefix, m_field_name)),
151
- m_root
152
- / tl::string::replace_slashes (
153
- fmt::format (R"( ff8\Data\{}\FIELD\mapdata\{}\{})" , open_viii::LangCommon::ITA, prefix, m_field_name)),
154
- m_root
155
- / tl::string::replace_slashes (
156
- fmt::format (R"( ff8\Data\{}\field\mapdata\{}\{})" , open_viii::LangCommon::SPA, prefix, m_field_name)),
157
- m_root
158
- / tl::string::replace_slashes (
159
- fmt::format (R"( ff8\Data\{}\FIELD\mapdata\{}\{})" , open_viii::LangCommon::SPA, prefix, m_field_name)),
160
- m_root
161
- / tl::string::replace_slashes (
162
- fmt::format (R"( ff8\Data\{}\field\mapdata\{}\{})" , open_viii::LangCommon::JP, prefix, m_field_name)),
163
- m_root
164
- / tl::string::replace_slashes (
165
- fmt::format (R"( ff8\Data\{}\FIELD\mapdata\{}\{})" , open_viii::LangCommon::JP, prefix, m_field_name)),
166
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\field\mapdata\{}\{})" , ' x' , prefix, m_field_name)),
167
- m_root / tl::string::replace_slashes (fmt::format (R"( ff8\Data\{}\FIELD\mapdata\{}\{})" , ' x' , prefix, m_field_name))
168
- };
148
+ return std::array{ m_root / " mods" / " Textures" / prefix / m_field_name,
149
+ m_root / " DEMASTER_EXP" / " textures" / " field_bg" / prefix / m_field_name,
150
+ m_root / " field_bg" / prefix / m_field_name,
151
+ m_root / " textures" / " fields" / prefix / m_field_name,
152
+ m_root / " textures" / prefix / m_field_name,
153
+ m_root / " ff8" / " Data" / open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic)
154
+ / " field" / " mapdata" / prefix / m_field_name,
155
+ m_root / " ff8" / " Data" / open_viii::LangCommon::to_string_3_char (m_coo ? *m_coo : open_viii::LangT::generic)
156
+ / " FIELD" / " mapdata" / prefix / m_field_name,
157
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ENG / " field" / " mapdata" / prefix / m_field_name,
158
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ENG / " FIELD" / " mapdata" / prefix / m_field_name,
159
+ m_root / " ff8" / " Data" / open_viii::LangCommon::FRE / " field" / " mapdata" / prefix / m_field_name,
160
+ m_root / " ff8" / " Data" / open_viii::LangCommon::FRE / " FIELD" / " mapdata" / prefix / m_field_name,
161
+ m_root / " ff8" / " Data" / open_viii::LangCommon::GER / " field" / " mapdata" / prefix / m_field_name,
162
+ m_root / " ff8" / " Data" / open_viii::LangCommon::GER / " FIELD" / " mapdata" / prefix / m_field_name,
163
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ITA / " field" / " mapdata" / prefix / m_field_name,
164
+ m_root / " ff8" / " Data" / open_viii::LangCommon::ITA / " FIELD" / " mapdata" / prefix / m_field_name,
165
+ m_root / " ff8" / " Data" / open_viii::LangCommon::SPA / " field" / " mapdata" / prefix / m_field_name,
166
+ m_root / " ff8" / " Data" / open_viii::LangCommon::SPA / " FIELD" / " mapdata" / prefix / m_field_name,
167
+ m_root / " ff8" / " Data" / open_viii::LangCommon::JP / " field" / " mapdata" / prefix / m_field_name,
168
+ m_root / " ff8" / " Data" / open_viii::LangCommon::JP / " FIELD" / " mapdata" / prefix / m_field_name,
169
+ m_root / " ff8" / " Data" / " x" / " field" / " mapdata" / prefix / m_field_name,
170
+ m_root / " ff8" / " Data" / " x" / " FIELD" / " mapdata" / prefix / m_field_name };
169
171
}
170
172
171
173
/*
0 commit comments