From cefb3716815ec79021c8f4b13ee9985a05284e62 Mon Sep 17 00:00:00 2001 From: Aloqas <102683375+Aloqas@users.noreply.github.com> Date: Fri, 31 May 2024 05:02:44 +0300 Subject: [PATCH] [jak2] new subtitle speakers (#3536) for specific cutscene scenarios --------- Co-authored-by: Tyler Wilding --- .../serialization/subtitles/subtitles_v2.cpp | 4 +++- decompiler/config/jak3/ntsc_v1/inputs.jsonc | 18 +++++++++++++++--- .../config/jak3/ntsc_v1/stack_structures.jsonc | 7 ++++++- .../config/jak3/ntsc_v1/type_casts.jsonc | 12 +++--------- .../jak2/subtitle/subtitle_lines_ca-ES.json | 4 +++- .../jak2/subtitle/subtitle_lines_da-DK.json | 4 +++- .../jak2/subtitle/subtitle_lines_de-DE.json | 2 ++ .../jak2/subtitle/subtitle_lines_en-GB.json | 2 ++ .../jak2/subtitle/subtitle_lines_en-US.json | 2 ++ .../jak2/subtitle/subtitle_lines_es-ES.json | 4 +++- .../jak2/subtitle/subtitle_lines_fi-FI.json | 2 ++ .../jak2/subtitle/subtitle_lines_fr-FR.json | 2 ++ .../jak2/subtitle/subtitle_lines_hu-HU.json | 4 +++- .../jak2/subtitle/subtitle_lines_is-IS.json | 4 +++- .../jak2/subtitle/subtitle_lines_it-IT.json | 2 ++ .../jak2/subtitle/subtitle_lines_ja-JP.json | 4 +++- .../jak2/subtitle/subtitle_lines_jp-JP.json | 2 ++ .../jak2/subtitle/subtitle_lines_ko-KR.json | 2 ++ .../jak2/subtitle/subtitle_lines_lt-LT.json | 4 +++- .../jak2/subtitle/subtitle_lines_nl-NL.json | 4 +++- .../jak2/subtitle/subtitle_lines_no-NO.json | 4 +++- .../jak2/subtitle/subtitle_lines_pl-PL.json | 4 +++- .../jak2/subtitle/subtitle_lines_pt-BR.json | 4 +++- .../jak2/subtitle/subtitle_lines_pt-PT.json | 4 +++- .../jak2/subtitle/subtitle_lines_sv-SE.json | 4 +++- goal_src/jak2/pc/subtitle2-h.gc | 5 +++++ goalc/build_level/common/build_level.h | 2 +- 27 files changed, 88 insertions(+), 28 deletions(-) diff --git a/common/serialization/subtitles/subtitles_v2.cpp b/common/serialization/subtitles/subtitles_v2.cpp index f337a3b47..afc920c30 100644 --- a/common/serialization/subtitles/subtitles_v2.cpp +++ b/common/serialization/subtitles/subtitles_v2.cpp @@ -89,7 +89,9 @@ const std::unordered_map jak2_speaker_name_to_enum_val = { {"citizen-male", 31}, {"citizen-female", 32}, {"oracle", 33}, - {"precursor", 34}}; + {"precursor", 34}, + {"metalkor-before-consite", 35}, + {"metalkor-intro", 36}}; GameSubtitlePackage read_json_files_v2(const GameSubtitleDefinitionFile& file_info) { GameSubtitlePackage package; diff --git a/decompiler/config/jak3/ntsc_v1/inputs.jsonc b/decompiler/config/jak3/ntsc_v1/inputs.jsonc index bcd908387..fa1f68915 100644 --- a/decompiler/config/jak3/ntsc_v1/inputs.jsonc +++ b/decompiler/config/jak3/ntsc_v1/inputs.jsonc @@ -349,9 +349,21 @@ "animated_textures": [ // dark jak - "jakc-arm", "jakc-eyebrow", "jakc-face", "jakc-finger", "jakc-hair", - "jakc-arm-norm", "jakc-eyebrow-norm", "jakc-face-norm", "jakc-finger-norm", "jakc-hair-norm", - "jakc-arm-dark", "jakc-eyebrow-dark", "jakc-face-dark", "jakc-finger-dark", "jakc-hair-dark", + "jakc-arm", + "jakc-eyebrow", + "jakc-face", + "jakc-finger", + "jakc-hair", + "jakc-arm-norm", + "jakc-eyebrow-norm", + "jakc-face-norm", + "jakc-finger-norm", + "jakc-hair-norm", + "jakc-arm-dark", + "jakc-eyebrow-dark", + "jakc-face-dark", + "jakc-finger-dark", + "jakc-hair-dark", // Skull Gem "skull-gem-dest", diff --git a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc index af6026b5b..154795ade 100644 --- a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc +++ b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc @@ -2508,5 +2508,10 @@ [16, "vector"], [32, "vector"] ], - "texture-anim-layer-draw": [[16, "matrix"], [80, "matrix"], [144, "matrix"], [208, "matrix"]] + "texture-anim-layer-draw": [ + [16, "matrix"], + [80, "matrix"], + [144, "matrix"], + [208, "matrix"] + ] } diff --git a/decompiler/config/jak3/ntsc_v1/type_casts.jsonc b/decompiler/config/jak3/ntsc_v1/type_casts.jsonc index 9a65fdbee..a82a18d84 100644 --- a/decompiler/config/jak3/ntsc_v1/type_casts.jsonc +++ b/decompiler/config/jak3/ntsc_v1/type_casts.jsonc @@ -10851,9 +10851,7 @@ ["_stack_", 76, "float"], ["_stack_", 100, "float"] ], - "real-wang-texture-anim-func": [ - [[3, 31], "v1", "mood-context"] - ], + "real-wang-texture-anim-func": [[[3, 31], "v1", "mood-context"]], "(method 24 sky-work)": [ [256, "s4", "(pointer int32)"], [261, "s4", "(pointer int32)"] @@ -11120,9 +11118,7 @@ [64, "a1", "(pointer gs-alpha)"], [66, "a1", "(pointer gs-reg64)"] ], - "texture-anim-layer-draw": [ - [[24, 182], "s4", "(pointer uint128)"] - ], + "texture-anim-layer-draw": [[[24, 182], "s4", "(pointer uint128)"]], "update-texture-anim": [ [213, "v1", "(pointer uint128)"], [[214, 230], "t0", "vector4w"], @@ -11264,7 +11260,5 @@ [[191, 249], "gp", "shadow-dcache"], [96, "v1", "shadow-dcache"] ], - "real-fog-texture-anim-func": [ - [[6, 160], "s2", "(pointer uint32)"] - ] + "real-fog-texture-anim-func": [[[6, 160], "s2", "(pointer uint32)"]] } diff --git a/game/assets/jak2/subtitle/subtitle_lines_ca-ES.json b/game/assets/jak2/subtitle/subtitle_lines_ca-ES.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_ca-ES.json +++ b/game/assets/jak2/subtitle/subtitle_lines_ca-ES.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_da-DK.json b/game/assets/jak2/subtitle/subtitle_lines_da-DK.json index 3cdb9ca5d..86143655e 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_da-DK.json +++ b/game/assets/jak2/subtitle/subtitle_lines_da-DK.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Orakel", @@ -7852,4 +7854,4 @@ "youngsamos": "Unge Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_de-DE.json b/game/assets/jak2/subtitle/subtitle_lines_de-DE.json index 1eedfcf5e..ca2946f86 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_de-DE.json +++ b/game/assets/jak2/subtitle/subtitle_lines_de-DE.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", diff --git a/game/assets/jak2/subtitle/subtitle_lines_en-GB.json b/game/assets/jak2/subtitle/subtitle_lines_en-GB.json index 1eedfcf5e..ca2946f86 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_en-GB.json +++ b/game/assets/jak2/subtitle/subtitle_lines_en-GB.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", diff --git a/game/assets/jak2/subtitle/subtitle_lines_en-US.json b/game/assets/jak2/subtitle/subtitle_lines_en-US.json index a24cadb60..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_en-US.json +++ b/game/assets/jak2/subtitle/subtitle_lines_en-US.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", diff --git a/game/assets/jak2/subtitle/subtitle_lines_es-ES.json b/game/assets/jak2/subtitle/subtitle_lines_es-ES.json index c293e2b63..45339fb9e 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_es-ES.json +++ b/game/assets/jak2/subtitle/subtitle_lines_es-ES.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Kor Cabezachapa", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oráculo", @@ -7852,4 +7854,4 @@ "youngsamos": "Joven Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_fi-FI.json b/game/assets/jak2/subtitle/subtitle_lines_fi-FI.json index de8c233da..ff6c81d82 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_fi-FI.json +++ b/game/assets/jak2/subtitle/subtitle_lines_fi-FI.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metalli-Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oraakkeli", diff --git a/game/assets/jak2/subtitle/subtitle_lines_fr-FR.json b/game/assets/jak2/subtitle/subtitle_lines_fr-FR.json index d0ae83111..52722b3c6 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_fr-FR.json +++ b/game/assets/jak2/subtitle/subtitle_lines_fr-FR.json @@ -7843,6 +7843,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", diff --git a/game/assets/jak2/subtitle/subtitle_lines_hu-HU.json b/game/assets/jak2/subtitle/subtitle_lines_hu-HU.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_hu-HU.json +++ b/game/assets/jak2/subtitle/subtitle_lines_hu-HU.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_is-IS.json b/game/assets/jak2/subtitle/subtitle_lines_is-IS.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_is-IS.json +++ b/game/assets/jak2/subtitle/subtitle_lines_is-IS.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_it-IT.json b/game/assets/jak2/subtitle/subtitle_lines_it-IT.json index 1eedfcf5e..ca2946f86 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_it-IT.json +++ b/game/assets/jak2/subtitle/subtitle_lines_it-IT.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", diff --git a/game/assets/jak2/subtitle/subtitle_lines_ja-JP.json b/game/assets/jak2/subtitle/subtitle_lines_ja-JP.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_ja-JP.json +++ b/game/assets/jak2/subtitle/subtitle_lines_ja-JP.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_jp-JP.json b/game/assets/jak2/subtitle/subtitle_lines_jp-JP.json index 3c2e9df46..4c775cdbe 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_jp-JP.json +++ b/game/assets/jak2/subtitle/subtitle_lines_jp-JP.json @@ -120,6 +120,8 @@ "kor": "コール", "krew": "クルー", "metalkor": "メタルコール", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "モッグ", "onin": "オニン", "oracle": "オラクル", diff --git a/game/assets/jak2/subtitle/subtitle_lines_ko-KR.json b/game/assets/jak2/subtitle/subtitle_lines_ko-KR.json index ef671477c..ae01f509e 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_ko-KR.json +++ b/game/assets/jak2/subtitle/subtitle_lines_ko-KR.json @@ -24,6 +24,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", diff --git a/game/assets/jak2/subtitle/subtitle_lines_lt-LT.json b/game/assets/jak2/subtitle/subtitle_lines_lt-LT.json index 9fba976be..1765e646a 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_lt-LT.json +++ b/game/assets/jak2/subtitle/subtitle_lines_lt-LT.json @@ -7839,6 +7839,8 @@ "kor": "Koras", "krew": "Krew", "metalkor": "Metalinis Koras", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mogas", "onin": "Oninas", "oracle": "Oraklė", @@ -7852,4 +7854,4 @@ "youngsamos": "Jaunasis Samosas", "youngsamos-before-rescue": "Samosas" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_nl-NL.json b/game/assets/jak2/subtitle/subtitle_lines_nl-NL.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_nl-NL.json +++ b/game/assets/jak2/subtitle/subtitle_lines_nl-NL.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_no-NO.json b/game/assets/jak2/subtitle/subtitle_lines_no-NO.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_no-NO.json +++ b/game/assets/jak2/subtitle/subtitle_lines_no-NO.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_pl-PL.json b/game/assets/jak2/subtitle/subtitle_lines_pl-PL.json index 79b717376..1ffac22be 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_pl-PL.json +++ b/game/assets/jak2/subtitle/subtitle_lines_pl-PL.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_pt-BR.json b/game/assets/jak2/subtitle/subtitle_lines_pt-BR.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_pt-BR.json +++ b/game/assets/jak2/subtitle/subtitle_lines_pt-BR.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_pt-PT.json b/game/assets/jak2/subtitle/subtitle_lines_pt-PT.json index 9a90ac742..ca518b0ff 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_pt-PT.json +++ b/game/assets/jak2/subtitle/subtitle_lines_pt-PT.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oráculo", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/game/assets/jak2/subtitle/subtitle_lines_sv-SE.json b/game/assets/jak2/subtitle/subtitle_lines_sv-SE.json index 1eedfcf5e..afcaf059c 100644 --- a/game/assets/jak2/subtitle/subtitle_lines_sv-SE.json +++ b/game/assets/jak2/subtitle/subtitle_lines_sv-SE.json @@ -7839,6 +7839,8 @@ "kor": "Kor", "krew": "Krew", "metalkor": "Metal Kor", + "metalkor-before-consite": "Metal Head Leader", + "metalkor-intro": "???", "mog": "Mog", "onin": "Onin", "oracle": "Oracle", @@ -7852,4 +7854,4 @@ "youngsamos": "Young Samos", "youngsamos-before-rescue": "Samos" } -} +} diff --git a/goal_src/jak2/pc/subtitle2-h.gc b/goal_src/jak2/pc/subtitle2-h.gc index e42c6e6ae..d684b6e15 100644 --- a/goal_src/jak2/pc/subtitle2-h.gc +++ b/goal_src/jak2/pc/subtitle2-h.gc @@ -93,6 +93,9 @@ (citizen-female) (oracle) (precursor) + (metalkor-before-consite) + (metalkor-intro) + (max)) @@ -352,6 +355,8 @@ (set-subtitle-speaker-color! citizen-male (static-rgba #x70 #x70 #x70 #x80)) (set-subtitle-speaker-color! citizen-female (static-rgba #x70 #x70 #x70 #x80)) + (set-subtitle-speaker-color<-speaker! metalkor-before-consite metalkor) + (set-subtitle-speaker-color<-speaker! metalkor-intro metalkor) (set-subtitle-speaker-color<-speaker! kid jak) (set-subtitle-speaker-color<-speaker! guard-a guard) (set-subtitle-speaker-color<-speaker! guard-b guard) diff --git a/goalc/build_level/common/build_level.h b/goalc/build_level/common/build_level.h index f55c24c35..d455e061e 100644 --- a/goalc/build_level/common/build_level.h +++ b/goalc/build_level/common/build_level.h @@ -9,7 +9,7 @@ #include "common/util/string_util.h" #include "decompiler/level_extractor/extract_level.h" -#include +#include "goalc/build_actor/common/MercExtract.h" void save_pc_data(const std::string& nickname, tfrag3::Level& data, const fs::path& fr3_output_dir); std::vector get_build_level_deps(const std::string& input_file);