This commit is contained in:
恍兮惚兮 2024-10-30 10:37:20 +08:00
parent 35426982e8
commit 7876390246
2 changed files with 36 additions and 19 deletions

View File

@ -376,7 +376,7 @@ namespace
bool FPCSG00468(void *data, size_t *len, HookParam *hp) bool FPCSG00468(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex(R"(\\n\u3000*|\\k)"), ""); s = std::regex_replace(s, std::regex(u8R"(\\n( )*|\\k)"), "");
s = std::regex_replace(s, std::regex(R"(\[|\*[^\]]+])"), ""); s = std::regex_replace(s, std::regex(R"(\[|\*[^\]]+])"), "");
s = std::regex_replace(s, std::regex(u8"×"), ""); s = std::regex_replace(s, std::regex(u8"×"), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
@ -389,6 +389,17 @@ namespace
s = std::regex_replace(s, std::regex(R"(#\w+(\[.+?\])?)"), ""); s = std::regex_replace(s, std::regex(R"(#\w+(\[.+?\])?)"), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
} }
bool F010088B01A8FC000(void *data, size_t *len, HookParam *hp)
{
auto s = std::string((char *)data, *len);
static std::string last;
s = std::regex_replace(s, std::regex(R"(#\w+(\[.+?\])?)"), "");
s = std::regex_replace(s, std::regex(u8" "), "");
if (last == s)
return false;
last = s;
return write_string_overwrite(data, len, s);
}
bool FPCSG00815(void *data, size_t *len, HookParam *hp) bool FPCSG00815(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
@ -399,7 +410,7 @@ namespace
bool FPCSG00855(void *data, size_t *len, HookParam *hp) bool FPCSG00855(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex(R"(#n\u3000*)"), ""); s = std::regex_replace(s, std::regex(u8R"(#n( )*)"), "");
s = std::regex_replace(s, std::regex(R"(#\w.+?])"), ""); s = std::regex_replace(s, std::regex(R"(#\w.+?])"), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
} }
@ -447,7 +458,7 @@ namespace
bool FPCSG01066(void *data, size_t *len, HookParam *hp) bool FPCSG01066(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex(R"(\n\u3000*)"), ""); s = std::regex_replace(s, std::regex(u8R"(\n( )*)"), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
} }
bool FPCSG01075(void *data, size_t *len, HookParam *hp) bool FPCSG01075(void *data, size_t *len, HookParam *hp)
@ -569,6 +580,9 @@ namespace
// PsychicEmotion6 (サイキックエモーション ムー) // PsychicEmotion6 (サイキックエモーション ムー)
{0x80035948, {CODEC_UTF8, 9, 0, 0, FPCSG00815, "PCSG00815"}}, {0x80035948, {CODEC_UTF8, 9, 0, 0, FPCSG00815, "PCSG00815"}},
{0x80034580, {CODEC_UTF8, 6, 0, 0, FPCSG00815, "PCSG00815"}}, {0x80034580, {CODEC_UTF8, 6, 0, 0, FPCSG00815, "PCSG00815"}},
// Code: Realize ~Shirogane no Kiseki~ (Code:Realize ~白銀の奇跡~)
{0x80015bcc, {CODEC_UTF8, 0, 0x1c, 0, F010088B01A8FC000, "PCSG01110"}},
{0x80038e76, {CODEC_UTF8, 8, 0, 0, F010088B01A8FC000, "PCSG01110"}},
}; };
return 1; return 1;
}(); }();

View File

@ -334,7 +334,7 @@ namespace
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex("#[^\\]]*\\]"), ""); s = std::regex_replace(s, std::regex("#[^\\]]*\\]"), "");
s = std::regex_replace(s, std::regex("#[^\\n]*\\n"), ""); s = std::regex_replace(s, std::regex("#[^\\n]*\\n"), "");
s = std::regex_replace(s, std::regex("\\u3000"), ""); s = std::regex_replace(s, std::regex(u8" "), "");
s = std::regex_replace(s, std::regex(u8"Save[\\s\\S]*データ"), ""); s = std::regex_replace(s, std::regex(u8"Save[\\s\\S]*データ"), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
} }
@ -865,7 +865,7 @@ namespace
s = std::regex_replace(s, specialCharsRegex, ""); s = std::regex_replace(s, specialCharsRegex, "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
} }
bool F0100B6900A668000(void *data, size_t *len, HookParam *hp) bool F0100C1E0102B8000(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex("#N"), "\n"); s = std::regex_replace(s, std::regex("#N"), "\n");
@ -1082,7 +1082,7 @@ namespace
static std::string last; static std::string last;
s = std::regex_replace(s, std::regex(R"((#Ruby\[)([^,]+),(#\w+\[.\])?(.+?]))"), "$2"); s = std::regex_replace(s, std::regex(R"((#Ruby\[)([^,]+),(#\w+\[.\])?(.+?]))"), "$2");
s = std::regex_replace(s, std::regex(R"(#\w+(\[.+?\])?)"), ""); s = std::regex_replace(s, std::regex(R"(#\w+(\[.+?\])?)"), "");
s = std::regex_replace(s, std::regex(R"(\u3000)"), ""); s = std::regex_replace(s, std::regex(u8" "), "");
if (last == s) if (last == s)
return false; return false;
last = s; last = s;
@ -1093,7 +1093,7 @@ namespace
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
static std::string last; static std::string last;
s = std::regex_replace(s, std::regex(R"(#\w+(\[.+?\])?)"), ""); s = std::regex_replace(s, std::regex(R"(#\w+(\[.+?\])?)"), "");
s = std::regex_replace(s, std::regex(R"(\u3000)"), ""); s = std::regex_replace(s, std::regex(u8" "), "");
if (last == s) if (last == s)
return false; return false;
last = s; last = s;
@ -1123,7 +1123,7 @@ namespace
bool F0100CEF0152DE000(void *data, size_t *len, HookParam *hp) bool F0100CEF0152DE000(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex(R"(\u3000)"), ""); s = std::regex_replace(s, std::regex(u8" "), "");
s = std::regex_replace(s, std::regex(R"(#n)"), ""); s = std::regex_replace(s, std::regex(R"(#n)"), "");
s = std::regex_replace(s, std::regex(R"(#\w.+?])"), ""); s = std::regex_replace(s, std::regex(R"(#\w.+?])"), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
@ -1132,7 +1132,7 @@ namespace
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex(R"(%\w+)"), ""); s = std::regex_replace(s, std::regex(R"(%\w+)"), "");
s = std::regex_replace(s, std::regex(R"(\u3000)"), ""); s = std::regex_replace(s, std::regex(u8" "), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
} }
bool F0100E4000F616000(void *data, size_t *len, HookParam *hp) bool F0100E4000F616000(void *data, size_t *len, HookParam *hp)
@ -1153,7 +1153,7 @@ namespace
bool F010027300A660000(void *data, size_t *len, HookParam *hp) bool F010027300A660000(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
s = std::regex_replace(s, std::regex(R"(#n\u3000*)"), ""); s = std::regex_replace(s, std::regex(u8R"(#n( )*)"), "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
} }
bool F0100FA10185B0000(void *data, size_t *len, HookParam *hp) bool F0100FA10185B0000(void *data, size_t *len, HookParam *hp)
@ -1344,10 +1344,10 @@ namespace
bool F0100B5500CA0C000(void *data, size_t *len, HookParam *hp) bool F0100B5500CA0C000(void *data, size_t *len, HookParam *hp)
{ {
auto s = std::string((char *)data, *len); auto s = std::string((char *)data, *len);
std::regex pattern1("\\\\u0000+$"); // std::regex pattern1("\\\\u0000+$");
std::regex pattern2("\\\\"); std::regex pattern2("\\\\");
std::regex pattern3("\\$"); std::regex pattern3("\\$");
s = std::regex_replace(s, pattern1, ""); // s = std::regex_replace(s, pattern1, "");
s = std::regex_replace(s, pattern2, ""); s = std::regex_replace(s, pattern2, "");
s = std::regex_replace(s, pattern3, ""); s = std::regex_replace(s, pattern3, "");
return write_string_overwrite(data, len, s); return write_string_overwrite(data, len, s);
@ -2357,17 +2357,19 @@ namespace
{0x808e7068, {CODEC_UTF16, 3, 0, 0, 0, "0100B8E016F76000", "1.0.2"}}, // Text {0x808e7068, {CODEC_UTF16, 3, 0, 0, 0, "0100B8E016F76000", "1.0.2"}}, // Text
// Reine des Fleurs // Reine des Fleurs
{0x80026434, {CODEC_UTF8, 0, 0, 0, 0, "0100B5800C0E4000", "1.0.0"}}, // Dialogue text {0x80026434, {CODEC_UTF8, 0, 0, 0, 0, "0100B5800C0E4000", "1.0.0"}}, // Dialogue text
// Code : Realize - Saikou no Hanataba // Code: Realize ~Saikou no Hanataba~ (CodeRealize ~彩虹の花束~)
{0x80024eac, {CODEC_UTF8, 0, 0, 0, F0100B6900A668000, "0100B6900A668000", "1.0.0"}}, {0x80019c14, {CODEC_UTF8, 0, 0x1c, 0, F010088B01A8FC000, "0100B6900A668000", "1.0.0"}},
{0x80041560, {CODEC_UTF8, 1, 0, 0, F010088B01A8FC000, "0100B6900A668000", "1.0.0"}},
{0x800458c8, {CODEC_UTF8, 0, 0, 0, F010088B01A8FC000, "0100B6900A668000", "1.0.0"}},
// Diabolik Lovers Grand Edition // Diabolik Lovers Grand Edition
{0x80041080, {CODEC_UTF8, 1, 0, 0, F0100BD700E648000, "0100BD700E648000", "1.0.0"}}, // name {0x80041080, {CODEC_UTF8, 1, 0, 0, F0100BD700E648000, "0100BD700E648000", "1.0.0"}}, // name
{0x80041080, {CODEC_UTF8, 0, 0, 0, F0100BD700E648000, "0100BD700E648000", "1.0.0"}}, // dialogue {0x80041080, {CODEC_UTF8, 0, 0, 0, F0100BD700E648000, "0100BD700E648000", "1.0.0"}}, // dialogue
{0x80041080, {CODEC_UTF8, 2, 0, 0, F0100BD700E648000, "0100BD700E648000", "1.0.0"}}, // choice1 {0x80041080, {CODEC_UTF8, 2, 0, 0, F0100BD700E648000, "0100BD700E648000", "1.0.0"}}, // choice1
// Shinobi, Koi Utsutsu // Shinobi, Koi Utsutsu
{0x8002aca0, {CODEC_UTF8, 0, 0, 0, F0100B6900A668000, "0100C1E0102B8000", "1.0.0"}}, // name {0x8002aca0, {CODEC_UTF8, 0, 0, 0, F0100C1E0102B8000, "0100C1E0102B8000", "1.0.0"}}, // name
{0x8002aea4, {CODEC_UTF8, 0, 0, 0, F0100B6900A668000, "0100C1E0102B8000", "1.0.0"}}, // dialogue1 {0x8002aea4, {CODEC_UTF8, 0, 0, 0, F0100C1E0102B8000, "0100C1E0102B8000", "1.0.0"}}, // dialogue1
{0x8001ca90, {CODEC_UTF8, 2, 0, 0, F0100B6900A668000, "0100C1E0102B8000", "1.0.0"}}, // dialogue2 {0x8001ca90, {CODEC_UTF8, 2, 0, 0, F0100C1E0102B8000, "0100C1E0102B8000", "1.0.0"}}, // dialogue2
{0x80049dbc, {CODEC_UTF8, 1, 0, 0, F0100B6900A668000, "0100C1E0102B8000", "1.0.0"}}, // choice {0x80049dbc, {CODEC_UTF8, 1, 0, 0, F0100C1E0102B8000, "0100C1E0102B8000", "1.0.0"}}, // choice
// Yoru, Tomosu // Yoru, Tomosu
{0xe2748eb0, {CODEC_UTF32, 1, 0, 0, 0, "0100C2901153C000", "1.0.0"}}, // text1 {0xe2748eb0, {CODEC_UTF32, 1, 0, 0, 0, "0100C2901153C000", "1.0.0"}}, // text1
// Closed Nightmare // Closed Nightmare
@ -2629,7 +2631,8 @@ namespace
{0x8003fc90, {CODEC_UTF8, 1, 0, 0, 0, "0100F8A017BAA000", "1.0.0"}}, // text1 {0x8003fc90, {CODEC_UTF8, 1, 0, 0, 0, "0100F8A017BAA000", "1.0.0"}}, // text1
{0x8017a740, {CODEC_UTF8, 0, 0, 0, 0, "0100F8A017BAA000", "1.0.0"}}, // text2 {0x8017a740, {CODEC_UTF8, 0, 0, 0, 0, "0100F8A017BAA000", "1.0.0"}}, // text2
// Olympia Soiree // Olympia Soiree
{0x8002ad04, {CODEC_UTF8, 0, 0, 0, F0100C310110B4000, "0100F9D00C186000", "1.0.0"}}, {0x8002ad60, {CODEC_UTF8, 31, 0, 0, F0100C310110B4000, "0100F9D00C186000", "1.0.0"}},
{0x8004b9e0, {CODEC_UTF8, 1, 0, 0, F0100C310110B4000, "0100F9D00C186000", "1.0.0"}},
// Getsuei no Kusari -Sakuran Paranoia- // Getsuei no Kusari -Sakuran Paranoia-
{0x21801c, {0, 2, 0, 0, F0100F7401AA74000, "0100F7401AA74000", "1.0.0"}}, // text,sjis {0x21801c, {0, 2, 0, 0, F0100F7401AA74000, "0100F7401AA74000", "1.0.0"}}, // text,sjis
{0x228fac, {0, 1, 0, 0, F0100F7401AA74000, "0100F7401AA74000", "1.0.0"}}, // choices {0x228fac, {0, 1, 0, 0, F0100F7401AA74000, "0100F7401AA74000", "1.0.0"}}, // choices