finish out english subtitles (#1586)

* put some duplicated code in a func

* make jak 2 text "work"

* group up all subtitles c++ code into one folder

* compact single-line subtitles

* fix a couple compiler crashes

* Update game_subtitle_en.gd

* `rolling` and `sunken`

* `swamp`

* `ogre`

* `village3`

* `maincave`

* `snow`

* `lavatube`

* `citadel`

* Update .gitignore

* clang

* fix encoding and decoding for quote

* properly fix quotes

* subtitle deserialize: sort by kind, ID and name

* sub editor: fix line speaker not being converted

* cleanup game text ids 1

* update text ids 2

* update source

* update refs
This commit is contained in:
ManDude 2022-07-03 22:25:28 +01:00 committed by GitHub
parent 34d93e59ed
commit 9676100039
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
121 changed files with 2671 additions and 3217 deletions

1
.gitignore vendored
View File

@ -12,7 +12,6 @@ logs/*
# wsl apparently builds to here?
linux-default/
# for Nix
/result*

View File

@ -68,14 +68,14 @@
"project" : "CMakeLists.txt",
"projectTarget" : "goalc.exe (bin\\goalc.exe)",
"name" : "Run - REPL",
"args" : []
"args" : [ "--user-auto" ]
},
{
"type" : "default",
"project" : "CMakeLists.txt",
"projectTarget" : "goalc.exe (bin\\goalc.exe)",
"name" : "Run - REPL - Auto Listen",
"args" : [ "--auto-lt" ]
"args" : [ "--user-auto", "--auto-lt" ]
},
{
"type" : "default",

View File

@ -6,7 +6,6 @@ add_library(common
cross_sockets/XSocketClient.cpp
custom_data/pack_helpers.cpp
custom_data/TFrag3Data.cpp
deserialization/subtitles/subtitles.cpp
dma/dma.cpp
dma/dma_copy.cpp
dma/gs.cpp
@ -24,7 +23,6 @@ add_library(common
math/geometry.cpp
nrepl/ReplClient.cpp
nrepl/ReplServer.cpp
serialization/subtitles/subtitles.cpp
type_system/defenum.cpp
type_system/deftype.cpp
type_system/state.cpp
@ -32,6 +30,8 @@ add_library(common
type_system/TypeFieldLookup.cpp
type_system/TypeSpec.cpp
type_system/TypeSystem.cpp
serialization/subtitles/subtitles_ser.cpp
serialization/subtitles/subtitles_deser.cpp
util/Assert.cpp
util/BitUtils.cpp
util/compress.cpp

View File

@ -1,87 +0,0 @@
#include "subtitles.h"
#include <algorithm>
#include <regex>
#include "common/serialization/subtitles/subtitles.h"
#include "common/util/FileUtil.h"
#include "third-party/fmt/core.h"
#include "third-party/fmt/ranges.h"
#include "third-party/json.hpp"
bool write_subtitle_db_to_files(const GameSubtitleDB& db) {
// Write the subtitles out
std::vector<int> completed_banks = {};
for (const auto& [id, bank] : db.m_banks) {
// If we've done the bank before, skip it
auto it = find(completed_banks.begin(), completed_banks.end(), bank->m_lang_id);
if (it != completed_banks.end()) {
continue;
}
// Check to see if this bank is shared by any other, if so do it at the same time
// and skip it
// This is basically just to deal with US/UK english in a not so hacky way
std::vector<int> banks = {};
for (const auto& [_id, _bank] : db.m_banks) {
if (_bank->file_path == bank->file_path) {
banks.push_back(_bank->m_lang_id);
completed_banks.push_back(_bank->m_lang_id);
}
}
std::string file_contents = "";
file_contents += fmt::format("(language-id {})\n", fmt::join(banks, " "));
auto file_ver = parse_text_only_version(bank->file_path);
auto font = get_font_bank(file_ver);
file_contents += fmt::format("(text-version {})\n", get_text_version_name(file_ver));
for (const auto& group_name : db.m_subtitle_groups->m_group_order) {
file_contents +=
fmt::format("\n;; -----------------\n;; {}\n;; -----------------\n", group_name);
for (const auto& [scene_name, scene_info] : bank->m_scenes) {
if (scene_info.m_sorting_group != group_name) {
continue;
}
file_contents += fmt::format("\n(\"{}\"", scene_name);
if (scene_info.m_kind == SubtitleSceneKind::Hint) {
file_contents += " :hint #x0";
} else if (scene_info.m_kind == SubtitleSceneKind::HintNamed) {
file_contents += fmt::format(" :hint #x{0:x}", scene_info.m_id);
}
file_contents += "\n";
for (auto& line : scene_info.lines()) {
// Clear screen entries
if (line.line.empty()) {
file_contents += fmt::format(" ({})\n", line.frame);
} else {
file_contents += fmt::format(" ({}", line.frame);
if (line.offscreen && scene_info.m_kind == SubtitleSceneKind::Movie) {
file_contents += " :offscreen";
}
file_contents +=
fmt::format(" \"{}\"", font->convert_game_to_utf8(line.speaker.c_str()));
file_contents +=
fmt::format(" \"{}\")\n", font->convert_game_to_utf8(line.line.c_str()));
}
}
file_contents += " )\n";
}
}
// Commit it to the file
std::string full_path =
(file_util::get_jak_project_dir() / std::filesystem::path(bank->file_path)).string();
file_util::write_text_file(full_path, file_contents);
}
// Write the subtitle group info out
nlohmann::json json(db.m_subtitle_groups->m_groups);
json[db.m_subtitle_groups->group_order_key] = nlohmann::json(db.m_subtitle_groups->m_group_order);
std::string file_path = (file_util::get_jak_project_dir() / "game" / "assets" / "jak1" /
"subtitle" / "subtitle-groups.json")
.string();
file_util::write_text_file(file_path, json.dump(2));
return true;
}

View File

@ -0,0 +1,134 @@
#include "subtitles_deser.h"
#include <algorithm>
#include <regex>
#include <vector>
#include "common/util/FileUtil.h"
#include "third-party/fmt/core.h"
#include "third-party/fmt/ranges.h"
#include "third-party/json.hpp"
bool write_subtitle_db_to_files(const GameSubtitleDB& db) {
// Write the subtitles out
std::vector<int> completed_banks = {};
for (const auto& [id, bank] : db.m_banks) {
// If we've done the bank before, skip it
auto it = find(completed_banks.begin(), completed_banks.end(), bank->m_lang_id);
if (it != completed_banks.end()) {
continue;
}
// Check to see if this bank is shared by any other, if so do it at the same time
// and skip it
// This is basically just to deal with US/UK english in a not so hacky way
std::vector<int> banks = {};
for (const auto& [_id, _bank] : db.m_banks) {
if (_bank->file_path == bank->file_path) {
banks.push_back(_bank->m_lang_id);
completed_banks.push_back(_bank->m_lang_id);
}
}
std::string file_contents = "";
file_contents += fmt::format("(language-id {})\n", fmt::join(banks, " "));
auto file_ver = parse_text_only_version(bank->file_path);
auto font = get_font_bank(file_ver);
file_contents += fmt::format("(text-version {})\n", get_text_version_name(file_ver));
for (const auto& group_name : db.m_subtitle_groups->m_group_order) {
bool last_was_single = false;
file_contents +=
fmt::format("\n;; -----------------\n;; {}\n;; -----------------\n", group_name);
std::vector<GameSubtitleSceneInfo> all_scenes;
for (const auto& [scene_name, scene] : bank->scenes()) {
all_scenes.push_back(scene);
}
std::sort(all_scenes.begin(), all_scenes.end(),
[](const GameSubtitleSceneInfo& a, const GameSubtitleSceneInfo& b) {
if (a.kind() != b.kind()) {
return a.kind() < b.kind();
}
if (a.kind() == SubtitleSceneKind::Movie) {
return a.name() < b.name();
} else if (a.kind() == SubtitleSceneKind::HintNamed) {
if (a.id() == b.id()) {
return a.name() < b.name();
} else {
return a.id() < b.id();
}
} else if (a.kind() == SubtitleSceneKind::Hint) {
return a.id() < b.id();
}
return false;
});
for (const auto& scene : all_scenes) {
if (scene.m_sorting_group != group_name) {
continue;
}
if (last_was_single && scene.lines().size() == 1) {
file_contents += fmt::format("(\"{}\"", scene.name());
} else {
file_contents += fmt::format("\n(\"{}\"", scene.name());
}
if (scene.kind() == SubtitleSceneKind::Hint) {
file_contents += " :hint #x0";
} else if (scene.kind() == SubtitleSceneKind::HintNamed) {
file_contents += fmt::format(" :hint #x{0:x}", scene.id());
}
// more compact formatting for single-line entries
if (scene.lines().size() == 1) {
const auto& line = scene.lines().at(0);
if (line.line.empty()) {
file_contents += fmt::format(" ({})", line.frame);
} else {
file_contents += fmt::format(" ({}", line.frame);
if (line.offscreen && scene.kind() == SubtitleSceneKind::Movie) {
file_contents += " :offscreen";
}
file_contents +=
fmt::format(" \"{}\"", font->convert_game_to_utf8(line.speaker.c_str()));
file_contents += fmt::format(" \"{}\")", font->convert_game_to_utf8(line.line.c_str()));
}
file_contents += ")\n";
last_was_single = true;
} else {
file_contents += "\n";
for (auto& line : scene.lines()) {
// Clear screen entries
if (line.line.empty()) {
file_contents += fmt::format(" ({})\n", line.frame);
} else {
file_contents += fmt::format(" ({}", line.frame);
if (line.offscreen && scene.kind() == SubtitleSceneKind::Movie) {
file_contents += " :offscreen";
}
file_contents +=
fmt::format(" \"{}\"", font->convert_game_to_utf8(line.speaker.c_str()));
file_contents +=
fmt::format(" \"{}\")\n", font->convert_game_to_utf8(line.line.c_str()));
}
}
file_contents += " )\n";
last_was_single = false;
}
}
}
// Commit it to the file
std::string full_path =
(file_util::get_jak_project_dir() / std::filesystem::path(bank->file_path)).string();
file_util::write_text_file(full_path, file_contents);
}
// Write the subtitle group info out
nlohmann::json json(db.m_subtitle_groups->m_groups);
json[db.m_subtitle_groups->group_order_key] = nlohmann::json(db.m_subtitle_groups->m_group_order);
std::string file_path = (file_util::get_jak_project_dir() / "game" / "assets" / "jak1" /
"subtitle" / "subtitle-groups.json")
.string();
file_util::write_text_file(file_path, json.dump(2));
return true;
}

View File

@ -1,5 +1,5 @@
#pragma once
#include "common/serialization/subtitles/subtitles.h"
#include "common/serialization/subtitles/subtitles_ser.h"
bool write_subtitle_db_to_files(const GameSubtitleDB& db);

View File

@ -1,4 +1,4 @@
#include "subtitles.h"
#include "subtitles_ser.h"
#include "common/goos/ParseHelpers.h"
#include "common/goos/Reader.h"
@ -149,13 +149,7 @@ void parse_text(const goos::Object& data, GameTextDB& db) {
throw std::runtime_error("invalid text version entry");
}
if (auto it = sTextVerEnumMap.find(ver_name.as_symbol()->name);
it == sTextVerEnumMap.end()) {
throw std::runtime_error(
fmt::format("unknown text version {}", ver_name.as_symbol()->name));
} else {
font = get_font_bank(it->second);
}
font = get_font_bank(ver_name.as_symbol()->name);
}
else if (head.is_int()) {
@ -240,13 +234,7 @@ void parse_subtitle(const goos::Object& data, GameSubtitleDB& db, const std::str
throw std::runtime_error("invalid text version entry");
}
if (auto it = sTextVerEnumMap.find(ver_name.as_symbol()->name);
it == sTextVerEnumMap.end()) {
throw std::runtime_error(
fmt::format("unknown text version {}", ver_name.as_symbol()->name));
} else {
font = get_font_bank(it->second);
}
font = get_font_bank(ver_name.as_symbol()->name);
}
else if (head.is_string() || head.is_int()) {
@ -374,13 +362,7 @@ GameTextVersion parse_text_only_version(const goos::Object& data) {
throw std::runtime_error("invalid text version entry");
}
if (auto it = sTextVerEnumMap.find(ver_name.as_symbol()->name);
it == sTextVerEnumMap.end()) {
throw std::runtime_error(
fmt::format("unknown text version {}", ver_name.as_symbol()->name));
} else {
font = get_font_bank(it->second);
}
font = get_font_bank(ver_name.as_symbol()->name);
}
}
});

View File

@ -166,7 +166,10 @@ std::string GameTextFontBank::convert_utf8_to_game_with_escape(const std::string
for (int i = 0; i < str.size(); ++i) {
auto c = str.at(i);
if (c == '\\') {
if (c == '"') {
newstr.push_back('"');
i += 1;
} else if (c == '\\') {
if (i + 1 >= str.size()) {
throw std::runtime_error("incomplete string escape code");
}
@ -226,6 +229,8 @@ std::string GameTextFontBank::convert_game_to_utf8(const char* in) const {
result += "\\t";
} else if (*in == '\\') {
result += "\\\\";
} else if (*in == '"') {
result += "\\\"";
} else {
result += fmt::format("\\c{:02x}", uint8_t(*in));
}
@ -234,6 +239,9 @@ std::string GameTextFontBank::convert_game_to_utf8(const char* in) const {
return replace_to_utf8(result);
}
static std::vector<EncodeInfo> s_encode_info_null = {};
static std::vector<ReplaceInfo> s_replace_info_null = {};
/*!
* ===========================
* GAME TEXT FONT BANK - JAK 1
@ -242,10 +250,11 @@ std::string GameTextFontBank::convert_game_to_utf8(const char* in) const {
* - Jak & Daxter: The Precursor Legacy (Black Label)
*/
static std::unordered_set<char> passthrus = {'~', ' ', ',', '.', '-', '+', '(', ')', '!', ':', '?',
'=', '%', '*', '/', '#', ';', '<', '>', '@', '[', '_'};
static std::unordered_set<char> s_passthrus = {'~', ' ', ',', '.', '-', '+', '(', ')',
'!', ':', '?', '=', '%', '*', '/', '#',
';', '<', '>', '@', '[', '_'};
static std::vector<EncodeInfo> g_encode_info_jak1 = {
static std::vector<EncodeInfo> s_encode_info_jak1 = {
// random
{"ˇ", {0x10}}, // caron
{"`", {0x11}}, // grave accent
@ -264,8 +273,6 @@ static std::vector<EncodeInfo> g_encode_info_jak1 = {
{"", {0x1e}}, // gaku
{"ß", {0x1f}}, // eszett
{"\"", {0x22}}, // double-quotes
{"", {0x24}}, // wa
{"", {0x26}}, // wo
@ -463,10 +470,7 @@ static std::vector<EncodeInfo> g_encode_info_jak1 = {
{"", {1, 0xb1}}, // trademark
};
static std::vector<ReplaceInfo> g_replace_info_jak1 = {
// \" -> " (yeah it looks confusing)
{"\"", "\\\""},
static std::vector<ReplaceInfo> s_replace_info_jak1 = {
// other
{"A~Y~-21H~-5Vº~Z", "Å"},
{"N~Y~-6Hº~Z~+10H", ""},
@ -575,9 +579,9 @@ static std::vector<ReplaceInfo> g_replace_info_jak1 = {
};
GameTextFontBank g_font_bank_jak1(GameTextVersion::JAK1_V1,
&g_encode_info_jak1,
&g_replace_info_jak1,
&passthrus);
&s_encode_info_jak1,
&s_replace_info_jak1,
&s_passthrus);
/*!
* ================================
@ -585,11 +589,13 @@ GameTextFontBank g_font_bank_jak1(GameTextVersion::JAK1_V1,
* ================================
* This font is used in:
* - Jak & Daxter: The Precursor Legacy (PAL)
* -   
* - Jak & Daxter: The Precursor Legacy (NTSC-U v2)
*
* It is the same as v1, but _ has been fixed and no longer overlaps
*/
static std::vector<EncodeInfo> g_encode_info_jak1_v2 = {
static std::vector<EncodeInfo> s_encode_info_jak1_v2 = {
// random
{"_", {0x03}}, // large space
{"ˇ", {0x10}}, // caron
@ -609,8 +615,6 @@ static std::vector<EncodeInfo> g_encode_info_jak1_v2 = {
{"", {0x1e}}, // gaku
{"ß", {0x1f}}, // eszett
{"\"", {0x22}}, // double-quotes
{"", {0x24}}, // wa
{"", {0x26}}, // wo
@ -809,9 +813,14 @@ static std::vector<EncodeInfo> g_encode_info_jak1_v2 = {
};
GameTextFontBank g_font_bank_jak1_v2(GameTextVersion::JAK1_V2,
&g_encode_info_jak1_v2,
&g_replace_info_jak1,
&passthrus);
&s_encode_info_jak1_v2,
&s_replace_info_jak1,
&s_passthrus);
GameTextFontBank g_font_bank_jak2(GameTextVersion::JAK2,
&s_encode_info_null,
&s_replace_info_null,
&s_passthrus);
/*!
* ========================
@ -822,12 +831,21 @@ GameTextFontBank g_font_bank_jak1_v2(GameTextVersion::JAK1_V2,
std::map<GameTextVersion, GameTextFontBank*> g_font_banks = {
{GameTextVersion::JAK1_V1, &g_font_bank_jak1},
{GameTextVersion::JAK1_V2, &g_font_bank_jak1_v2}};
{GameTextVersion::JAK1_V2, &g_font_bank_jak1_v2},
{GameTextVersion::JAK2, &g_font_bank_jak2}};
const GameTextFontBank* get_font_bank(GameTextVersion version) {
return g_font_banks.at(version);
}
const GameTextFontBank* get_font_bank(const std::string& name) {
if (auto it = sTextVerEnumMap.find(name); it == sTextVerEnumMap.end()) {
throw std::runtime_error(fmt::format("unknown text version {}", name));
} else {
return get_font_bank(it->second);
}
}
bool font_bank_exists(GameTextVersion version) {
return g_font_banks.find(version) != g_font_banks.cend();
}

View File

@ -83,4 +83,5 @@ class GameTextFontBank {
extern std::map<GameTextVersion, GameTextFontBank*> g_font_banks;
const GameTextFontBank* get_font_bank(GameTextVersion version);
const GameTextFontBank* get_font_bank(const std::string& name);
bool font_bank_exists(GameTextVersion version);

View File

@ -909,13 +909,13 @@
(hidden-power-cell #x12f) ;; why is this here??
(memcard-no-space #x130)
(memcard-not-inserted #x131)
(card-not-formatted-title #x132)
(memcard-not-formatted-title #x132)
(memcard-space-requirement1 #x133)
(memcard-space-requirement2 #x134)
(card-not-formatted-msg #x135)
(memcard-not-formatted-msg #x135)
(saving-data #x136)
(loading-data #x137)
(do-not-remove-mem-card #x138)
(memcard-do-not-remove #x138)
(overwrite? #x139)
(format? #x13a)
@ -968,7 +968,7 @@
(total-collected #x171)
(village1-mayor-money #x200)
(vollage1-uncle-money #x201)
(village1-uncle-money #x201)
(village1-yakow-herd #x202)
(village1-yakow-return #x203)
(village1-oracle #x204)
@ -988,36 +988,60 @@
(misty-muse-return #x212)
(misty-boat #x213)
(misty-cannon #x214)
(misty-return-to-pool #x215) ;; task name??
(misty-find-transpad #x216) ;; task name?
(misty-return-to-pool #x215)
(misty-find-transpad #x216)
(misty-balloon-lurkers #x217)
(village1-poi-farmer #x218)
(village1-poi-mayor #x219)
(village1-poi-bird-lady #x21a)
(village1-poi-sculptor #x21b)
(village1-poi-explorer #x21c)
(village1-poi-fisherman #x21d)
(village1-poi-sage-hut #x21e)
(village1-poi-assistant #x21f)
(village1-level-name #x220)
(beach-level-name #x221)
(jungle-level-name #x222)
(misty-level-name #x223)
(village1-poi-firecanyon #x224)
(jungleb-level-name #x225)
(generic-yes #x226)
(generic-no #x227)
(flutflut #x228)
(oracle #x229)
(trans-pad #x22a)
(green-eco-harvester #x22b)
(money #x22c)
(fuel-cell #x22d)
(beach-seagull-get #x22e)
(jungle-lurkerm-unblock #x22f)
(jungle-lurkerm-return #x230)
(sidekick-reminder-fishermans-boat #x231)
(sidekick-hint-fishermans-boat #x232)
(sidekick-reminder-money #x233)
(sidekick-reminder-oracle #x234)
(sidekick-hint-oracle #x235)
(sidekick-hint-seagulls #x236)
(sidekick-hint-pelican #x237)
(MISSING-orb-hint #x233)
(sidekick-hint-ecorocks #x239)
(sidekick-hint-mistycannon #x23a)
(sidekick-hint-dive #x23b)
(sidekick-hint-rounddoor #x23c)
(sidekick-hint-lurkerm #x23d)
(sidekick-hint-tower #x23e)
(sidekick-reminder-fish #x240)
(beach-eco-rock-increment #x239)
(jungle-maindoor-hint #x23c)
(firecanyon-not-enough-cells #x24f)
(firecanyon-need-cells #x24f)
(sidekick-hint-orb-cache-top #x251)
(jungle-precursorbridge-hint #x25b)
(daxter-launcher-no-eco #x25c)
(sidekick-hint-precurbridge #x25b)
(sidekick-hint-launcher #x25c)
(jungle-mirrors-completion-talk-to-mayor #x25e)
(jungle-lurkerm-resolution #x25e)
(jungle-lurkerm-hint #x25f)
(beach-gimmie #x262)
(beach-sentinel #x263)
@ -1025,12 +1049,14 @@
(jungle-temple-door #x265)
(misty-bike-jump #x266)
(misty-eco-challenge #x267)
(beach-seagull-chased-one #x268)
(beach-seagull-chased-two #x26a)
(beach-seagull-chased-three #x26b)
(beach-seagull-chased-four #x26c)
(sidekick-seagulls1 #x268)
(sidekick-hint-seagulls2 #x269)
(sidekick-seagulls2 #x26a)
(sidekick-seagulls3 #x26b)
(sidekick-seagulls4 #x26c)
(misty-daxter-scared #x26f)
(sidekick-warehouse #x26e)
(sidekick-misty #x26f)
(beach-seagulls-avalanche #x273)
@ -1039,49 +1065,52 @@
(beach-flutflutegg-hint #x275)
(sidekick-hint-fish-powerup #x278)
(misty-racer-hit-the-ballon-lurkers #x27e)
(misty-daxter-hit-lurkers-not-mines #x27f)
(misty-bike-hint #x27e)
(misty-bike-mines-hint #x27f)
(sidekick-hint-trans-pad #x280)
(sidekick-hint-crate-darkeco1 #x281)
(sidekick-hint-buzzer #x282)
(sidekick-hint-crate-steel-break1 #x283)
(sidekick-hint-crate-iron #x284)
(sidekick-hint-crate-steel #x285)
(sidekick-hint-fuel-cell #x286)
(sidekick-hint-money #x287)
(beach-ecorocks-resolution #x288)
(jungle-eggtop-resolution #x289)
(misty-cannon-resolution #x28a)
(misty-bike-resolution #x28b)
(sidekick-speech-hint-crate-darkeco1 #x281)
(sidekick-hint-crate-steel-break2 #x28e)
(sidekick-hint-crate-darkeco2 #x28f)
(sidekick-launcher1 #x290)
(sidekick-launcher2 #x291)
(sidekick-mistycannon #x292)
(sidekick-unknown1 #x293)
(sidekick-hint-buzzer2 #x294)
(sidekick-hint-buzzer3 #x295)
(sidekick-buzzer-resolution #x296)
(village1-yakow-resolution #x297)
(sidekick-speech-crate-steel-break1 #x283)
(sidekick-speech-hint-crate-iron #x284)
(sidekick-speech-hint-crate-steel #x285)
(sidekick-hint-periscope #x29c)
(sidekick-hint-reflector-mirror #x29d)
(sidekick-hint-aphid #x29e)
(sidekick-hint-periscope2 #x29f)
(sidekick-hint-periscope3 #x2a0)
(sidekick-hint-eco-door #x2a1)
(beach-collectors-unblocked #x288)
(jungleb-eco-vents-opened #x289)
(misty-stopped-lurkers-at-silo #x28a)
(misty-stopped-balloon-lurkers #x28b)
(sidekick-speech-crate-steel-break2 #x28e)
(sidekick-speech-hint-crate-darkeco2 #x28f)
(daxter-screaming-jump #x290)
(daxter-wahoo-jump #x291)
(daxter-get-some #x292)
(collectables-scout-flies-red-boxes #x295)
(found-all-scout-flies #x296)
(yakow-owed-powercell #x297)
(jungle-mirrors-tutorial #x29c)
(jungle-mirrors-break-the-mirror-jak #x29d)
(jungle-mirrors-go-to-the-next-tower #x29f)
(jungle-mirrors-follow-the-beam #x2a0)
(misty-teetertotter-bonk-dax-tutorial #x2a4)
(sidekick-hint-misty-get-red-eco #x2a5)
(red-eco-tutorial #x2a6)
(daxter-blue-eco-plat-tutorial #x2a7)
(misty-teetertotter #x2a4)
(misty-eco-red-hint #x2a5)
(misty-eco-red-first-use #x2a6)
(misty-eco-plat #x2a7)
(fish? #x2a9)
(misty-bone-bridge-hint #x2aa)
(beach-grottopole-increment #x2af)
(firecanyon-collect-cells-collected #x2b1)
(firecanyon-collect-cells-collected-reminder #x2b2)
(firecanyon-collect-cells-text #x2b3)
(village1cam-enough-cells #x2b1)
(village1cam-enough-cells2 #x2b2)
(firecanyon-need-cells-text #x2b3)
(caught #x2b4)
(missed #x2b5)
(lose! #x2b6)
@ -1091,18 +1120,17 @@
(village2-warrior-money #x302)
(village2-oracle-money #x303)
(swamp-tether #x304)
(swamp-arm #x305)
(swamp-poles #x306)
(swamp-flutflut #x307)
(swamp-tetherrocks #x308)
(swamp-billy #x309)
(sunken-elevator-raise #x30a)
(sunken-elevator-get-to-roof #x30b)
(sunken-pipe #x30c)
(sunken-climb-tube #x30d) ;; task name?
(sunken-pool #x30e) ;; task name?
(sunken-climb-tube #x30d)
(sunken-pool #x30e)
(sunken-platforms #x30f)
(rolling-moles #x310)
(rolling-moles-return #x311)
(rolling-robbers #x312)
@ -1110,75 +1138,92 @@
(rolling-race-return #x314)
(rolling-lake #x315)
(rolling-plants #x316)
(unknown-buzzers #x317)
(generic-buzzer #x317)
(poi-bluesage-hut #x318)
(village2-level-name #x319)
(poi-levitator #x31a)
(rolling-level-name #x31b)
(swamp-level-name #x31c)
(sunken-level-name #x31d)
(ogre-level-name #x31e)
(levitator-yes #x31f)
(levitator-no #x320)
(swamp-battle #x321)
(sunken-bottom #x322) ;; task name?
(reach-center #x323) ;; task name?
(sunken-slide #x322)
(sunken-spinning-room #x323)
(rolling-ring-chase-1 #x324)
(rolling-ring-chase-2 #x325)
(sunken-kiera-you-raised-a-piece-of-lpc #x326)
(rolling-beat-lurkers #x327)
(swamp-finished-with-flutflut #x328)
(rolling-race-beat-record #x335)
(sidekick-speech-hint-rolling-crate-darkeco #x336)
(rolling-lightning-moles-completion #x338)
(rolling-dark-plants-location-hint #x339)
(rolling-dark-plants-hint #x33a)
(rolling-flying-lurker-intro #x33c)
(rolling-ring-hint-one-ring-down #x33f)
(rolling-ring-hint-be-quick-to-next #x340)
(rolling-ring-hint-be-quick-all #x341)
(sunken-room-resolution #x326)
(rolling-robbers-resolution #x327)
(swamp-flutflut-resolution #x328)
(sunken-pipegame-follow-it #x343)
(sunken-helix-daxter-bad-feeling #x344)
(rolling-race-beat-record #x335)
(sidekick-hint-crate-darkeco-rolling #x336)
(rolling-moles-hint #x337)
(rolling-moles-resolution #x338)
(rolling-plants-hint #x339)
(rolling-plants-hint-eco-green #x33a)
(rolling-plants-hint-eco-green2 #x33b)
(rolling-robbers-hint #x33c)
(rolling-moles-hint-hole #x33d)
(rolling-plants-hint-eco-green3 #x33e)
(rolling-ring-chase-1-hint #x33f)
(rolling-ring-chase-2-hint #x340)
(rolling-ring-chase-fail #x341)
(rolling-ring-grass #x342)
(sunken-pipegame-hint #x343)
(sunken-helix-hint #x344)
(sunken-blue-eco-charger-hint #x345)
(sunken-room-hint #x346)
(sunken-double-lurker-hint #x347)
(sunken-helix-daxter-eco-rising #x348)
(sunken-helix-darkeco-hint #x348)
(sunken-helix-darkeco-close #x349)
(sunken-qbert-plat-hint #x34a)
(sunken-bully-dive-hint #x34b)
(sunken-take-it-easy-hot-pipes #x34e)
(sunken-tube-hint #x34c)
(sunken-blue-eco-charger-all-hint #x34d)
(sunken-hotpipes #x34e)
(sunken-water1 #x34f)
(sunken-water2 #x350)
(swamp-tetherrocks-hint #x351)
(swamp-tetherrock-eco-yellow-hint #x352)
(swamp-billy-reminder #x353)
(swamp-flutflut-doublejump #x354)
(swamp-tar #x355)
(swamp-water #x356)
(swamp-kermit-tongue-hint #x357)
(swamp-rat-nest-hint #x358)
(swamp-eco-yellow-first-use #x359)
(swamp-eco-yellow-hint #x35a)
(swamp-swingpole #x35b)
(swamp-bramble #x35c)
(swamp-tether-hint #x35d)
(swamp-kermit-charge-hint #x35e)
(swamp-kermit-flee #x35f)
(swamp-battle-hint #x360)
(swamp-arm-hint #x361)
(swamp-tar-hint #x362)
(swamp-bat-eco-yellow-hint #x363)
(swamp-bat-duck-hint #x364)
(swamp-tetherrocks-3-left #x365)
(swamp-tetherrocks-2-left #x366)
(swamp-tetherrocks-1-left #x367)
(swamp-flutflut-hint #x368)
(swamp-rats-hurt #x369)
(rolling-plants-resolution #x36a)
(swamp-arm-resolution #x36b)
(village2-levitator-need-cells #x36c)
(village2-levitator-find-cells #x36d)
(swamp-tethers-advice-hint #x352)
(kermit-break-tongue #x357)
(swamp-rats-nest-hint #x358)
(daxter-you-can-shoot-with-yellow-eco #x359)
(kermit-run-away-jak #x35f)
(swamp-bats-hint #x364) ;; maybe we can duck the bats
(swamp-tethers-three-to-go #x365)
(swamp-tethers-two-to-go #x366)
(swamp-tethers-lefts-find-the-last #x367)
(flutflut-reminder #x368)
(sage-golfclap-i-have-low-expectations #x36a) ;; where was this said?
(swamp-tethers-completion-sage-precursor-arm #x36b)
(village2-warp-gate-reminder #x36f)
(village2-warp-gate-reminder-annoyed #x370)
(village2-warp-gate-reminder-very-annoyed #x371)
(village2-not-enough-cells-levitator #x36c)
(villlage2-levitator-cell-req-text #x372)
(rolling-race-time-string-prefix #x373)
(rolling-race-record-string-prefix #x374)
(rolling-race-new-record-string-prefix #x375)
(rolling-race-try-again-string #x376)
(rolling-race-start-race-aborted #x377) ;; double check this
(village2-button-reminder #x36f)
(village2-button-reminder2 #x370)
(village2-button-reminder3 #x371)
(village2-levitator-need-cells-text #x372)
(time #x373)
(record #x374)
(new-record #x375)
(try-again #x376)
(race-aborted #x377)
(village3-miner-money #x400)
(village3-oracle-money #x401)
@ -1187,85 +1232,155 @@
(snow-ram-1-left #x404)
(snow-fort #x405)
(snow-bunnies #x406)
(snow-open-door #x408) ;; task name?
(red-eggtop #x407)
(snow-ball #x408)
(cave-gem #x409)
(cave-drilling-lurkers #x40a)
(snow-top #x40b)
(snow-troops #x40c)
(snow-troops2 #x40d)
(cave-robot-climb #x40e)
(cave-dark-climb #x40f) ;; destroy crystals
(cave-dark-climb #x40f)
(cave-gnawers #x410)
(cave-dark-crystals #x411)
(cave-bats #x412)
(village3-buzzer #x413)
(village3-poi-redsage-hut #x414)
(village3-level-name #x415)
(snowy-level-name #x417)
(village3-poi-gondola #x416)
(snow-level-name #x417)
(village3-poi-yosemite #x418)
(cave-level-name #x419)
(village3-poi-ogre #x41a)
(lavatube-level-name #x41b)
(gondola-ride? #x41c)
(gondola-yes #x41d)
(gondola-no #x41e)
(snow-ram-boss #x41f)
(snow-lake #x420)
(snow-eggtop #x421)
(snow-birds #x422)
(cave-spider-tunnel #x423)
(cave-platforms #x424)
(cave-swing-poles #x426)
(assistant-lavatube-powercell-hint #x428)
(village3-gondola-malfunctioning #x429)
(village3-gondola-reactivated #x42a)
(snow-frozen-crate #x42b) ;; task name?
(assistant-lavatube-hint #x427)
(assistant-lavatube-need-cells #x428)
(gondola-need-cells #x429)
(gondola-enough-cells #x42a)
(snow-cage #x42b)
(snow-bumpers #x42c)
(dark-crystal-last-one #x432)
(daxter-maybe-you-can-shoot-better-goggles #x433)
(darkcave-light-crystal-low-light-hint #x437)
(darkcave-light-crystal-hint #x438)
(dark-crystal-run-away #x439)
(cave-dark-crystals-resolution #x432)
(cave-gnawers-look-around #x433)
(cave-darkeco #x434)
(cave-dark-crystals-reminder #x435)
(cave-gnawers-reminder #x436)
(darkcave-light-end #x437)
(darkcave-light-hint #x438)
(cave-dark-crystals-flee #x439)
(robocave-introduction #x43a)
(cave-spider-egg-hint #x43b)
(darkcave-introduction #x43c)
(cave-spiderweb-hint #x43d)
(cave-spider-hurt #x43e)
(cave-baby-spider-hint #x43f)
(cave-trap-nest-hint #x440)
(snow-fort-reminder #x443)
(ram-boss-red-eco-hint #x444)
(cave-spider-egg-spawn #x441)
(cave-spider-nest-flee #x442)
(snow-fort-hint #x443)
(snow-ram-boss-red-eco-hint #x444)
(snow-platform-hint #x445)
(snow-vent-hint #x446)
(snow-eggtop-hint #x447)
(snow-ice-cube-hint #x448)
(snow-button-hint #x449)
(snow-plat-hint #x44a)
(snow-red-eco-hint #x44b)
(snow-eggtop-resolution #x44c)
(snow-cage-resolution #x44d)
(snow-ball-hint #x44e)
(assistant-lavatube-enough-cells #x44f)
(assistant-lavatube-enough-cells2 #x450)
(assistant-lavatube-reminder #x451)
(village3-button-reminder #x452)
(village3-button-reminder2 #x453)
(village3-button-reminder3 #x454)
(assistant-lavatube-need-cells-text #x455)
(ice-cube-hint #x448)
(snowy-turned-on-yellow-vents #x44c)
(village3-warp-gate-reminder #x452)
(village3-warp-gate-reminder=annoyed #x453)
(village3-warp-gate-reminder-very-annoyed #x454)
(lavatube-powercell-req-text #x455)
(fire-canyon-end #x500)
(fire-canyon-buzzer #x501)
(daxter-maybe-i-should-drive #x506)
(daxter-you-are-trying-to-avoid-dark-eco #x507)
(fire-canyon-level-name #x50c)
(fire-canyon-we-made-it #x515)
(collectables-theres-scout-flys-here-too #x516)
(firecanyon-end #x500)
(firecanyon-buzzer #x501)
(firecanyon-balloon-hint #x502)
(firecanyon-ramp-hint #x503)
(firecanyon-heat-warning1 #x504)
(firecanyon-steer-hint #x505)
(firecanyon-crate-darkeco1 #x506)
(firecanyon-crate-darkeco2 #x507)
(firecanyon-babak-hint #x508)
(firecanyon-heat-warning2 #x509)
(firecanyon-heat-warning3 #x50a)
(firecanyon-heat-warning4 #x50b)
(firecanyon-level-name #x50c)
(firecanyon-balloon-reminder #x50d)
(firecanyon-balloon-reminder2 #x50e)
(firecanyon-heat-warning5 #x50f)
(firecanyon-balloon-missed #x510)
(firecanyon-heat-warning6 #x511)
(firecanyon-heat-warning7 #x512)
(firecanyon-heat-warning8 #x513)
(firecanyon-heat-warning9 #x514)
(firecanyon-end-resolution #x515)
(firecanyon-buzzer-hint #x516)
(ogre-end #x600)
(ogre-buzzer #x601)
(ogre-poi-ogre #x602)
(ogre-boss #x603)
(ogre-boss-killed #x604)
(ogre-boss-resolution #x604)
(ogre-race-hint #x605)
(assistant-voicebox-intro-ogre-race #x605)
(sidekick-speech-hint-ogre-race #x61c)
(assistant-finished-mountain-pass-race #x61d)
(ogre-race-introduction #x607)
(ogre-tnt-hint #x608)
(ogre-race-ahead-hint #x609)
(ogre-eco-blue-hint #x60a)
(ogre-tree-hint #x60b)
(ogre-eco-blue-reminder #x60c)
(ogre-tnt-reminder #x60d)
(ogre-hole-hint #x60e)
(ogre-bonk-hint #x60f)
(ogre-flying-lurker-hint #x610)
(ogre-flying-lurker-reminder #x611)
(ogre-flying-lurker-pass #x612)
(ogre-flying-lurker-passed #x613)
(ogre-race-losing #x614)
(ogre-race-winning #x615)
(ogre-race-reminder #x616)
(ogre-jump-hint #x617)
(ogre-race-end-almost #x618)
(ogre-race-end-almost2 #x619)
(ogre-race-end-almost3 #x61a)
(ogre-race-end-almost-losing #x61b)
(ogre-plunger-lurker-resolution #x61c)
(ogre-race-resolution #x61d)
(lavatube-end #x700)
(lavatube-buzzer #x701)
(lavatube-shoot-the-spheres #x70d)
(lavatube-spheres-door-open #x710)
(lavatube-hurry #x702)
(lavatube-hurry-path #x703)
(lavatube-chainmine #x704)
(lavatube-darkecobarrel #x705)
(lavatube-balloon #x706)
(lavatube-heat1 #x707)
(lavatube-heat2 #x708)
(lavatube-eco-blue #x709)
(lavatube-eco-yellow #x70a)
(lavatube-tunnel1 #x70b)
(lavatube-tunnel2 #x70c)
(lavatube-balls #x70d)
(lavatube-balls-almost-dead #x70e)
(lavatube-balls-resolution #x710)
(lavatube-tunnel3 #x711)
(lavatube-end-resolution #x712)
(citadel-buzzer #x800)
(citadel-level-name #x801)
@ -1273,32 +1388,48 @@
(citadel-sage-red #x803)
(citadel-sage-yellow #x804)
(citadel-sage-green #x805)
(citadel-break-generator-hint #x806)
(citadel-lurker-bunny-alert #x808)
(citadel-break-generators-reminder #x809)
(citadel-climb-plat-hint #x80c)
(citadel-generator #x806)
(citadel-edge #x807)
(citadel-battle #x808)
(citadel-generator-no-mushroom #x809)
(citadel-button #x80a)
(citadel-robotboss #x80b)
(citadel-plat #x80c)
(citadel-launcher #x80d)
(citadel-battle2 #x80e)
(citadel-sagecage #x80f)
(citadel-hub1 #x810)
(citadel-hub2 #x811)
(citadel-launcher2 #x812)
(citadel-battle-end #x813)
(daxter-dont-miss-the-next-launcher #x80d)
(daxter-land-on-the-next-launcher #x812)
(misty-battle-finished #x813)
(training-precursor-orbs #x901)
(training-power-cells #x902)
(training-assistant-found-scout-fly #x903)
(training-assistant-found-scout-fly-cell #x904)
(training-voicebox #x900)
(training-money #x901)
(training-fuel-cell #x902)
(training-buzzer-hint #x903)
(training-buzzer-resolution #x904)
(training-sharkey #x905)
(training-fuel-cell-reminder #x906)
(training-blue-eco-vent #x907)
(training-eco-green #x908)
(training-eco-blue #x909)
(training-more-eco-more-time #x90a)
(training-eco-reminder #x90a)
(training-precursor-door #x90b)
(training-eco-opened-door #x90c)
(training-progress #x90d)
(training-double-jump #x90e)
(sage-voicebox-hint-crate-iron #x917)
(training-spin #x90f)
(training-spin-bad1 #x910)
(training-spin-bad2 #x911)
(training-spin-success #x912)
(training-punch #x914)
(training-punch-bad1 #x914)
(training-punch-bad2 #x915)
(training-punch-success #x916)
(training-ironcrate #x917)
(training-combo #x918)
(training-warp-gate-blocked #x919)
(training-warp-gate-reminder #x91a)
(training-gimmie-task-name #x91b)
(training-buzzer-task-name #x91c)
(training-door-task-name #x91d)

File diff suppressed because it is too large Load Diff

View File

@ -66,6 +66,7 @@
"sksp0027",
"sksp0029",
"sksp0030",
"sksp0031",
"sksp0034",
"sksp0443",
"sagevb01",
@ -155,7 +156,6 @@
"green-sagecage-outro-big-finish"
],
"firecanyon": [
"asstvb09",
"sksp0076",
"sksp0077",
"sksp0078",
@ -213,6 +213,7 @@
"FIS-TA2A",
"asstvb02",
"sksp0011",
"sksp0035",
"sksp0018",
"sksp0037",
"sksp0038",
@ -233,15 +234,29 @@
"fisher-resolution"
],
"lavatube": [
"asstva74",
"assistant-lavatube-start-resolution",
"assistant-lavatube-end-resolution",
"sksp0375"
"sksp0364",
"sksp0365",
"sksp0366",
"sksp0367",
"sksp0368",
"sksp0369",
"sksp0370",
"sksp0371",
"sksp0372",
"sksp0373",
"sksp0374",
"sksp0375",
"sksp0375",
"sksp0376",
"sksp0378",
"sksp0379",
"sksp0380"
],
"misty": [
"asstvb03",
"sagevb02",
"sksp0031",
"sksp0056",
"sksp0059",
"sksp0060",
@ -251,13 +266,35 @@
"sksp0067",
"sksp0069",
"sksp0070",
"sksp0071",
"sksp0072",
"sksp0073",
"sksp0435"
],
"ogre": [
"gamcam23",
"asstvb23",
"flying-lurker-intro",
"asstvb24",
"sksp0300",
"sksp0301",
"sksp0302",
"sksp0303",
"sksp0304",
"sksp0305",
"sksp0306",
"sksp0307",
"sksp0308",
"sksp0309",
"sksp0310",
"sksp0311",
"sksp0312",
"sksp0313",
"sksp0314",
"sksp0315",
"sksp0316",
"sksp0317",
"sksp0318",
"sksp0319",
"sksp0320",
"sksp0321",
"asstvb25"
],
@ -272,19 +309,24 @@
"oracle-left-eye-3",
"oracle-intro-2",
"oracle-reminder-2",
"oracle-intro-3"
"oracle-intro-3",
"oracle-reminder-3"
],
"rolling": [
"asstvb20",
"sagevb03",
"sksp0109",
"sksp0110",
"sksp0111",
"sksp0112",
"sksp0113",
"sksp0114",
"sksp0115",
"sksp0116",
"sksp0117",
"sksp0118",
"sksp0119",
"sksp0120",
"sksp0121"
"sksp0121",
"sksp0122"
],
"sidekick": [
"death-0181",
@ -308,10 +350,6 @@
"sksp0008",
"sksp0009",
"sksp0014",
"sksp0035",
"sksp0071",
"sksp0072",
"sksp0073",
"sksp009a",
"sksp009b",
"sksp009c",
@ -321,35 +359,56 @@
"sksp009g",
"sksp009i",
"sksp009j",
"sksp009k",
"sksp0110",
"sksp0145",
"sksp0328"
"sksp009k"
],
"snowy": [
"sksp0345",
"sksp0346",
"sksp0347",
"sksp0348",
"sksp0349",
"sksp0350",
"sksp0351",
"sksp0352",
"sksp0359",
"sksp0360",
"sksp0345"
"sksp0362",
"sksp0363"
],
"spidercave": [
"sksp0327",
"sksp0328",
"sksp0329",
"sksp0330",
"sksp0331",
"sksp0332",
"sksp0333",
"sksp0327",
"sksp0334",
"sksp0341"
"sksp0335",
"sksp0336",
"sksp0337",
"sksp0338",
"sksp0339",
"sksp0340",
"sksp0341",
"sksp0342",
"sksp0343"
],
"sunken": [
"sksp0123",
"sksp0124",
"sksp0125",
"sksp0126",
"sksp0127",
"sksp0128",
"sksp0129",
"sksp0130",
"sksp0131",
"sksp0132",
"sksp0133",
"sksp0134",
"asstvb22",
"sksp0131",
"sksp0127",
"sksp0130",
"sksp0125"
"sksp0135",
"sksp0136"
],
"swamp": [
"billy-introduction",
@ -379,6 +438,8 @@
"BIL-TA03",
"BIL-TA04",
"BIL-TA05",
"BIL-TA06",
"BIL-TA07",
"BIL-TA08",
"BIL-TA09",
"BIL-TA1A",
@ -388,18 +449,31 @@
"BIL-TA4B",
"BIL-TA5A",
"SKSP009F",
"asstvb21",
"sagevb04",
"sksp0137",
"sksp0138",
"sksp0139",
"sksp0140",
"sksp0141",
"sksp0142",
"sksp0143",
"sksp0144",
"sksp0145",
"sksp0146",
"sksp0147",
"sksp0148",
"sksp0149",
"sksp0150",
"sksp0151",
"sksp0152",
"sksp0153",
"sksp0154",
"sksp0155",
"sksp0156",
"sksp0157",
"sksp0158",
"sksp0159",
"sksp0160"
"sksp0160",
"sksp0161"
],
"training": [
"asstvb40",
@ -455,6 +529,7 @@
"SAGELP11",
"asstvb04",
"asstvb08",
"asstvb09",
"sksp0010",
"sksp0013",
"sksp0015",
@ -482,6 +557,8 @@
"EXP-LO1A"
],
"village2": [
"sagevb03",
"sagevb04",
"asstvb28",
"asstvb29",
"asstvb30",
@ -492,6 +569,9 @@
"SAGELP22",
"SAGELP23",
"SAGELP24",
"asstvb20",
"asstvb21",
"asstvb22",
"asstvb72",
"assistant-village2-introduction",
"sage-bluehut-introduction-crop-dusting",
@ -547,11 +627,16 @@
"warrior-resolution"
],
"village3": [
"asstv100",
"asstv101",
"asstv102",
"asstv103",
"asstva73",
"asstva74",
"asstvb75",
"asstvb76",
"sage-village3-introduction",
"ASSTLP30",
"ASSTLP31",
"ASSTLP32",
"ASSTLP33",
@ -581,6 +666,8 @@
"minershort-resolution-2-orbs",
"minershort-introduction-gnawers",
"minershort-reminder-1-gnawers",
"minershort-introduction-switch",
"minershort-reminder-1-switch",
"MIN-LO01",
"MIN-LO03",
"MIN-LO04",

View File

@ -3,7 +3,7 @@
#include <regex>
#include <string_view>
#include "common/deserialization/subtitles/subtitles.h"
#include "common/serialization/subtitles/subtitles_deser.h"
#include "common/util/FileUtil.h"
#include "common/util/json_util.h"
@ -25,8 +25,8 @@ void SubtitleEditor::repl_set_continue_point(const std::string_view& continue_po
void SubtitleEditor::repl_move_jak(const double x, const double y, const double z) {
m_repl.eval(
fmt::format("(move-to-point! (-> *target* control) (new 'static 'vector :x (meters {:.1f}) "
":y (meters {:.1f}) :z (meters {:.1f})))",
fmt::format("(move-to-point! (-> *target* control) (new 'static 'vector :x (meters {:.3f}) "
":y (meters {:.3f}) :z (meters {:.3f})))",
x, y, z));
m_repl.eval("(send-event *camera* 'teleport)");
}
@ -608,15 +608,15 @@ void SubtitleEditor::draw_subtitle_options(GameSubtitleSceneInfo& scene, bool cu
for (size_t i = 0; i < scene.m_lines.size(); i++) {
auto& subtitleLine = scene.m_lines.at(i);
auto linetext = font->convert_game_to_utf8(subtitleLine.line.c_str());
auto linespkr = font->convert_game_to_utf8(subtitleLine.speaker.c_str());
std::string summary;
if (linetext.empty()) {
summary = fmt::format("[{}] Clear Screen", subtitleLine.frame);
} else if (linetext.length() >= 30) {
summary = fmt::format("[{}] {} - '{}...'", subtitleLine.frame, subtitleLine.speaker,
linetext.substr(0, 30));
summary =
fmt::format("[{}] {} - '{}...'", subtitleLine.frame, linespkr, linetext.substr(0, 30));
} else {
summary = fmt::format("[{}] {} - '{}'", subtitleLine.frame, subtitleLine.speaker,
linetext.substr(0, 30));
summary = fmt::format("[{}] {} - '{}'", subtitleLine.frame, linespkr, linetext.substr(0, 30));
}
if (linetext.empty()) {
ImGui::PushStyleColor(ImGuiCol_Text, m_disabled_text_color);
@ -629,7 +629,7 @@ void SubtitleEditor::draw_subtitle_options(GameSubtitleSceneInfo& scene, bool cu
}
ImGui::InputInt("Starting Frame", &subtitleLine.frame,
ImGuiInputTextFlags_::ImGuiInputTextFlags_CharsDecimal);
ImGui::InputText("Speaker", &subtitleLine.speaker);
ImGui::InputText("Speaker", &linespkr);
ImGui::InputText("Text", &linetext);
ImGui::Checkbox("Offscreen?", &subtitleLine.offscreen);
// TODO - deleting while iterating is a bad pattern, especially with imgui's declarative
@ -647,7 +647,9 @@ void SubtitleEditor::draw_subtitle_options(GameSubtitleSceneInfo& scene, bool cu
ImGui::PopStyleColor();
}
auto newtext = font->convert_utf8_to_game_with_escape(linetext);
auto newspkr = font->convert_utf8_to_game_with_escape(linespkr);
subtitleLine.line = newtext;
subtitleLine.speaker = newspkr;
}
}

View File

@ -4,7 +4,7 @@
#include <string_view>
#include "common/nrepl/ReplClient.h"
#include "common/serialization/subtitles/subtitles.h"
#include "common/serialization/subtitles/subtitles_ser.h"
#include "third-party/imgui/imgui.h"

View File

@ -773,7 +773,7 @@
(case (-> (level-get-target-inside *level*) name)
(('training)
(level-hint-spawn
(game-text-id training-more-eco-more-time)
(game-text-id training-eco-reminder)
"sagevb23"
(the-as entity #f)
*entity-pool*
@ -1695,7 +1695,7 @@
(cond
((= arg0 (game-task training-buzzer))
(level-hint-spawn
(game-text-id training-assistant-found-scout-fly-cell)
(game-text-id training-buzzer-resolution)
"asstvb45"
(the-as entity #f)
*entity-pool*
@ -1713,7 +1713,7 @@
)
((= arg0 (game-task beach-ecorocks))
(level-hint-spawn
(game-text-id beach-collectors-unblocked)
(game-text-id beach-ecorocks-resolution)
"sagevb01"
(the-as entity #f)
*entity-pool*
@ -1722,7 +1722,7 @@
)
((= arg0 (game-task misty-cannon))
(level-hint-spawn
(game-text-id misty-stopped-lurkers-at-silo)
(game-text-id misty-cannon-resolution)
"sagevb02"
(the-as entity #f)
*entity-pool*
@ -1731,7 +1731,7 @@
)
((= arg0 (game-task misty-bike))
(level-hint-spawn
(game-text-id misty-stopped-balloon-lurkers)
(game-text-id misty-bike-resolution)
"asstvb03"
(the-as entity #f)
*entity-pool*
@ -1740,7 +1740,7 @@
)
((= arg0 (game-task firecanyon-end))
(level-hint-spawn
(game-text-id fire-canyon-we-made-it)
(game-text-id firecanyon-end-resolution)
"sksp0095"
(the-as entity #f)
*entity-pool*
@ -1749,7 +1749,7 @@
)
((= arg0 (game-task rolling-robbers))
(level-hint-spawn
(game-text-id rolling-beat-lurkers)
(game-text-id rolling-robbers-resolution)
"asstvb20"
(the-as entity #f)
*entity-pool*
@ -1758,7 +1758,7 @@
)
((= arg0 (game-task rolling-plants))
(level-hint-spawn
(game-text-id sage-golfclap-i-have-low-expectations)
(game-text-id rolling-plants-resolution)
"sagevb03"
(the-as entity #f)
*entity-pool*
@ -1767,7 +1767,7 @@
)
((= arg0 (game-task swamp-flutflut))
(level-hint-spawn
(game-text-id swamp-finished-with-flutflut)
(game-text-id swamp-flutflut-resolution)
"asstvb21"
(the-as entity #f)
*entity-pool*
@ -1776,7 +1776,7 @@
)
((= arg0 (game-task ogre-boss))
(level-hint-spawn
(game-text-id ogre-boss-killed)
(game-text-id ogre-boss-resolution)
"asstvb23"
(the-as entity #f)
*entity-pool*
@ -1785,7 +1785,7 @@
)
((= arg0 (game-task ogre-end))
(level-hint-spawn
(game-text-id assistant-finished-mountain-pass-race)
(game-text-id ogre-race-resolution)
"asstvb25"
(the-as entity #f)
*entity-pool*
@ -1794,7 +1794,7 @@
)
((= arg0 (game-task beach-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1803,7 +1803,7 @@
)
((= arg0 (game-task jungle-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1812,7 +1812,7 @@
)
((= arg0 (game-task misty-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1821,7 +1821,7 @@
)
((= arg0 (game-task firecanyon-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1830,7 +1830,7 @@
)
((= arg0 (game-task rolling-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1839,7 +1839,7 @@
)
((= arg0 (game-task sunken-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1848,7 +1848,7 @@
)
((= arg0 (game-task swamp-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1857,7 +1857,7 @@
)
((= arg0 (game-task ogre-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1866,7 +1866,7 @@
)
((= arg0 (game-task cave-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1875,7 +1875,7 @@
)
((= arg0 (game-task snow-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1884,7 +1884,7 @@
)
((= arg0 (game-task lavatube-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1893,7 +1893,7 @@
)
((= arg0 (game-task citadel-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1902,7 +1902,7 @@
)
((= arg0 (game-task village1-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1911,7 +1911,7 @@
)
((= arg0 (game-task village2-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1920,7 +1920,7 @@
)
((= arg0 (game-task village3-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2194,7 +2194,7 @@
(case (-> (level-get-target-inside *level*) name)
(('training)
(level-hint-spawn
(game-text-id training-assistant-found-scout-fly)
(game-text-id training-buzzer-hint)
"asstvb44"
(the-as entity #f)
*entity-pool*
@ -2203,7 +2203,7 @@
)
(('firecanyon)
(level-hint-spawn
(game-text-id collectables-theres-scout-flys-here-too)
(game-text-id firecanyon-buzzer-hint)
"sksp0096"
(the-as entity #f)
*entity-pool*
@ -2212,7 +2212,7 @@
)
(else
(level-hint-spawn
(game-text-id collectables-scout-flies-red-boxes)
(game-text-id sidekick-hint-buzzer3)
"sksp009j"
(the-as entity #f)
*entity-pool*
@ -2501,7 +2501,7 @@
)
)
(level-hint-spawn
(game-text-id sidekick-hint-misty-get-red-eco)
(game-text-id misty-eco-red-hint)
"sksp0071"
(the-as entity #f)
*entity-pool*

View File

@ -496,8 +496,8 @@
)
(return #f)
)
(increment-success-for-hint (game-text-id sidekick-speech-hint-crate-iron))
(increment-success-for-hint (game-text-id sage-voicebox-hint-crate-iron))
(increment-success-for-hint (game-text-id sidekick-hint-crate-iron))
(increment-success-for-hint (game-text-id training-ironcrate))
(send-event arg0 'get-attack-count 1)
(go-virtual die #f (the-as int s5-0))
)
@ -506,7 +506,7 @@
(if (not (and (!= *kernel-boot-message* 'play) (= (-> *setting-control* current language) (language-enum japanese)))
)
(level-hint-spawn
(game-text-id sage-voicebox-hint-crate-iron)
(game-text-id training-ironcrate)
"sagevb36"
(the-as entity #f)
*entity-pool*
@ -516,12 +516,12 @@
(case (-> (level-get-target-inside *level*) name)
(('training)
(if (and (can-hint-be-played? (game-text-id zero) (the-as entity #f) (the-as string #f)) (rand-vu-percent? 0.2))
(clear-text-seen! *game-info* (game-text-id sidekick-speech-hint-crate-iron))
(clear-text-seen! *game-info* (game-text-id sidekick-hint-crate-iron))
)
)
)
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-iron)
(game-text-id sidekick-hint-crate-iron)
"sksp0005"
(the-as entity #f)
*entity-pool*
@ -543,16 +543,16 @@
(('explode 'darkeco 'eco-yellow 'bonk 'tube 'flut-bonk 'flut-attack 'racer)
(send-event arg0 'get-attack-count 1)
(when (logtest? (-> self draw status) (draw-status was-drawn))
(increment-success-for-hint (game-text-id sidekick-speech-hint-crate-steel))
(increment-success-for-hint (game-text-id sidekick-hint-crate-steel))
(level-hint-spawn
(game-text-id sidekick-speech-crate-steel-break1)
(game-text-id sidekick-hint-crate-steel-break1)
"sksp0004"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id sidekick-speech-crate-steel-break2)
(game-text-id sidekick-hint-crate-steel-break2)
"sksp009b"
(the-as entity #f)
*entity-pool*
@ -564,7 +564,7 @@
(else
(when (and (!= s4-0 (-> self incomming-attack-id)) (= (-> self root-override trans y) (-> self base y)))
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-steel)
(game-text-id sidekick-hint-crate-steel)
"sksp0006"
(the-as entity #f)
*entity-pool*
@ -585,14 +585,14 @@
(send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'darkeco))))
(when (= (-> arg0 type) target)
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-darkeco2)
(game-text-id sidekick-hint-crate-darkeco2)
"sksp009c"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-darkeco1)
(game-text-id sidekick-hint-crate-darkeco1)
"sksp0002"
(the-as entity #f)
*entity-pool*
@ -601,7 +601,7 @@
(case (-> (level-get-target-inside *level*) name)
(('rolling)
(level-hint-spawn
(game-text-id sidekick-speech-hint-rolling-crate-darkeco)
(game-text-id sidekick-hint-crate-darkeco-rolling)
"sksp0110"
(the-as entity #f)
*entity-pool*
@ -610,14 +610,14 @@
)
(('firecanyon)
(level-hint-spawn
(game-text-id daxter-you-are-trying-to-avoid-dark-eco)
(game-text-id firecanyon-crate-darkeco2)
"sksp0082"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id daxter-maybe-i-should-drive)
(game-text-id firecanyon-crate-darkeco1)
"sksp0081"
(the-as entity #f)
*entity-pool*

View File

@ -342,7 +342,7 @@
(if (and (< 0.0 amount) (= (+ (-> obj money) amount) (-> *GAME-bank* money-task-inc)))
;; got enough orbs to trade, display a hint
(level-hint-spawn
(game-text-id MISSING-orb-hint)
(game-text-id sidekick-reminder-money)
"sksp0014"
(the-as entity #f)
*entity-pool*

View File

@ -1222,7 +1222,7 @@
(let ((s5-2 print-game-text))
((the-as (function object string object none) format)
(clear *temp-string*)
(lookup-text! *common-text* (game-text-id do-not-remove-mem-card) #f)
(lookup-text! *common-text* (game-text-id memcard-do-not-remove) #f)
1
)
(s5-2 *temp-string* gp-1 #f 128 22)

View File

@ -1899,7 +1899,7 @@
(not (send-event *target* 'query 'powerup (pickup-type eco-blue)))
)
(level-hint-spawn
(game-text-id daxter-launcher-no-eco)
(game-text-id sidekick-hint-launcher)
"sksp0035"
(the-as entity #f)
*entity-pool*

View File

@ -9,22 +9,22 @@
(set! (-> *game-info* hint-control) (new 'static 'boxed-array :type level-hint-control
(new 'static 'level-hint-control
:id (game-text-id sage-voicebox-hint-crate-iron)
:id (game-text-id training-ironcrate)
:num-attempts-before-playing 1
:num-success-before-killing 3
)
(new 'static 'level-hint-control
:id (game-text-id training-more-eco-more-time)
:id (game-text-id training-eco-reminder)
:num-attempts-before-playing 3
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id sidekick-speech-hint-crate-iron)
:id (game-text-id sidekick-hint-crate-iron)
:num-attempts-before-playing 3
:num-success-before-killing 3
)
(new 'static 'level-hint-control
:id (game-text-id sidekick-speech-hint-crate-steel)
:id (game-text-id sidekick-hint-crate-steel)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
@ -40,24 +40,24 @@
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 3)
:id (game-text-id beach-eco-rock-increment)
:id (game-text-id sidekick-hint-ecorocks)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id jungle-mirrors-break-the-mirror-jak)
:id (game-text-id sidekick-hint-reflector-mirror)
:num-attempts-before-playing 1
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 3)
:id (game-text-id jungle-precursorbridge-hint)
:id (game-text-id sidekick-hint-precurbridge)
:num-attempts-before-playing 1
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id misty-teetertotter-bonk-dax-tutorial)
:id (game-text-id misty-teetertotter)
:num-attempts-before-playing 3
:num-success-before-killing 1
)
@ -69,7 +69,7 @@
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id rolling-dark-plants-hint)
:id (game-text-id rolling-plants-hint-eco-green)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
@ -96,7 +96,7 @@
:num-success-before-killing 2
)
(new 'static 'level-hint-control
:id (game-text-id swamp-tethers-advice-hint)
:id (game-text-id swamp-tetherrock-eco-yellow-hint)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
@ -107,40 +107,40 @@
:num-success-before-killing 1
)
(new 'static 'level-hint-control
:id (game-text-id sunken-take-it-easy-hot-pipes)
:id (game-text-id sunken-hotpipes)
:num-attempts-before-playing 3
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id ram-boss-red-eco-hint)
:id (game-text-id snow-ram-boss-red-eco-hint)
:num-attempts-before-playing 5
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 3)
:id (game-text-id darkcave-light-crystal-hint)
:id (game-text-id darkcave-light-hint)
:num-attempts-before-playing 1
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id daxter-maybe-you-can-shoot-better-goggles)
:id (game-text-id cave-gnawers-look-around)
:num-attempts-before-playing 4
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id lavatube-shoot-the-spheres)
:id (game-text-id lavatube-balls)
:num-attempts-before-playing 1
:num-success-before-killing 2
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id citadel-break-generator-hint)
:id (game-text-id citadel-generator)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id citadel-break-generators-reminder)
:id (game-text-id citadel-generator-no-mushroom)
:num-attempts-before-playing 1
:num-success-before-killing 1
)

View File

@ -1387,14 +1387,14 @@
:enter (behavior ((arg0 float) (arg1 float) (arg2 surface))
(when (= (-> self control unknown-symbol40) 'launch)
(level-hint-spawn
(game-text-id daxter-screaming-jump)
(game-text-id sidekick-launcher1)
"sksp009d"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id daxter-wahoo-jump)
(game-text-id sidekick-launcher2)
"sksp009e"
(the-as entity #f)
*entity-pool*
@ -1403,14 +1403,14 @@
(case (-> (level-get-target-inside *level*) name)
(('citadel)
(level-hint-spawn
(game-text-id daxter-land-on-the-next-launcher)
(game-text-id citadel-launcher2)
"sksp0393"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id daxter-dont-miss-the-next-launcher)
(game-text-id citadel-launcher)
"sksp0388"
(the-as entity #f)
*entity-pool*
@ -2039,7 +2039,7 @@
(dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 74)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(level-hint-spawn
(game-text-id red-eco-tutorial)
(game-text-id misty-eco-red-first-use)
"sksp0072"
(the-as entity #f)
*entity-pool*
@ -2235,7 +2235,7 @@
(dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(level-hint-spawn
(game-text-id red-eco-tutorial)
(game-text-id misty-eco-red-first-use)
"sksp0072"
(the-as entity #f)
*entity-pool*
@ -2467,7 +2467,7 @@
(dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 70)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(level-hint-spawn
(game-text-id red-eco-tutorial)
(game-text-id misty-eco-red-first-use)
"sksp0072"
(the-as entity #f)
*entity-pool*

View File

@ -1365,7 +1365,7 @@
(let ((gp-0 (the-as handle #f)))
(ja-channel-push! 1 (seconds 0.075))
(level-hint-spawn
(game-text-id daxter-you-can-shoot-with-yellow-eco)
(game-text-id swamp-eco-yellow-first-use)
"sksp0145"
(the-as entity #f)
*entity-pool*
@ -1374,7 +1374,7 @@
(case (-> (level-get-target-inside *level*) name)
(('maincave)
(level-hint-spawn
(game-text-id daxter-maybe-you-can-shoot-better-goggles)
(game-text-id cave-gnawers-look-around)
"sksp0328"
(the-as entity #f)
*entity-pool*

View File

@ -362,7 +362,7 @@
(set! (-> v1-2 height) (the float 55))
)
(set! (-> arg0 flags) (font-flags shadow kerning middle left large))
(let ((s4-0 (game-text-id card-not-formatted-title)))
(let ((s4-0 (game-text-id memcard-not-formatted-title)))
(case (-> obj display-state)
(((progress-screen memcard-no-space))
(set! s4-0 (game-text-id memcard-no-space))
@ -432,7 +432,7 @@
)
(set! (-> arg0 flags) (font-flags shadow kerning middle left large))
(let ((s4-0 print-game-text-scaled))
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id card-not-formatted-title) #f) 1)
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id memcard-not-formatted-title) #f) 1)
(s4-0 *temp-string* (-> obj transition-percentage-invert) arg0 128)
)
(set! (-> arg0 origin x) (the float (- 20 (-> obj left-x-offset))))
@ -444,7 +444,7 @@
(set! (-> v1-8 height) (the float 40))
)
(print-game-text-scaled
(lookup-text! *common-text* (game-text-id card-not-formatted-msg) #f)
(lookup-text! *common-text* (game-text-id memcard-not-formatted-msg) #f)
(-> obj transition-percentage-invert)
arg0
128
@ -578,7 +578,7 @@
(set! (-> v1-23 height) (the float 75))
)
(let ((s4-1 print-game-text-scaled))
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id do-not-remove-mem-card) #f) 1)
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id memcard-do-not-remove) #f) 1)
(s4-1 *temp-string* (-> obj transition-percentage-invert) arg0 128)
)
0

View File

@ -268,9 +268,9 @@
:task-id (game-task village1-uncle-money)
:task-name
(new 'static 'array game-text-id 4
(game-text-id vollage1-uncle-money)
(game-text-id vollage1-uncle-money)
(game-text-id vollage1-uncle-money)
(game-text-id village1-uncle-money)
(game-text-id village1-uncle-money)
(game-text-id village1-uncle-money)
(game-text-id zero)
)
)
@ -586,7 +586,7 @@
)
)
(new 'static 'level-tasks-info
:level-name-id (game-text-id fire-canyon-level-name)
:level-name-id (game-text-id firecanyon-level-name)
:text-group-index 5
:nb-of-tasks 2
:buzzer-task-index 1
@ -596,9 +596,9 @@
:task-id (game-task firecanyon-end)
:task-name
(new 'static 'array game-text-id 4
(game-text-id fire-canyon-end)
(game-text-id fire-canyon-end)
(game-text-id fire-canyon-end)
(game-text-id firecanyon-end)
(game-text-id firecanyon-end)
(game-text-id firecanyon-end)
(game-text-id zero)
)
)
@ -606,9 +606,9 @@
:task-id (game-task firecanyon-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id fire-canyon-buzzer)
(game-text-id fire-canyon-buzzer)
(game-text-id fire-canyon-buzzer)
(game-text-id firecanyon-buzzer)
(game-text-id firecanyon-buzzer)
(game-text-id firecanyon-buzzer)
(game-text-id zero)
)
)
@ -675,9 +675,9 @@
:task-id (game-task village2-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -714,9 +714,9 @@
:task-id (game-task sunken-slide)
:task-name
(new 'static 'array game-text-id 4
(game-text-id sunken-bottom)
(game-text-id sunken-bottom)
(game-text-id sunken-bottom)
(game-text-id sunken-slide)
(game-text-id sunken-slide)
(game-text-id sunken-slide)
(game-text-id zero)
)
)
@ -754,9 +754,9 @@
:task-id (game-task sunken-spinning-room)
:task-name
(new 'static 'array game-text-id 4
(game-text-id reach-center)
(game-text-id reach-center)
(game-text-id reach-center)
(game-text-id sunken-spinning-room)
(game-text-id sunken-spinning-room)
(game-text-id sunken-spinning-room)
(game-text-id zero)
)
)
@ -764,9 +764,9 @@
:task-id (game-task sunken-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -853,9 +853,9 @@
:task-id (game-task swamp-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -942,9 +942,9 @@
:task-id (game-task rolling-buzzer)
:task-name
(new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -1089,7 +1089,7 @@
)
)
(new 'static 'level-tasks-info
:level-name-id (game-text-id snowy-level-name)
:level-name-id (game-text-id snow-level-name)
:text-group-index 3
:nb-of-tasks 8
:buzzer-task-index 7
@ -1129,9 +1129,9 @@
:task-id (game-task snow-cage)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-frozen-crate)
(game-text-id snow-frozen-crate)
(game-text-id snow-frozen-crate)
(game-text-id snow-cage)
(game-text-id snow-cage)
(game-text-id snow-cage)
(game-text-id zero)
)
)
@ -1149,9 +1149,9 @@
:task-id (game-task snow-ball)
:task-name
(new 'static 'array game-text-id 4
(game-text-id snow-open-door)
(game-text-id snow-open-door)
(game-text-id snow-open-door)
(game-text-id snow-ball)
(game-text-id snow-ball)
(game-text-id snow-ball)
(game-text-id zero)
)
)

View File

@ -59,13 +59,13 @@
(hidden-power-cell #x12f) ;; why is this here??
(memcard-no-space #x130)
(memcard-not-inserted #x131)
(card-not-formatted-title #x132)
(memcard-not-formatted-title #x132)
(memcard-space-requirement1 #x133)
(memcard-space-requirement2 #x134)
(card-not-formatted-msg #x135)
(memcard-not-formatted-msg #x135)
(saving-data #x136)
(loading-data #x137)
(do-not-remove-mem-card #x138)
(memcard-do-not-remove #x138)
(overwrite? #x139)
(format? #x13a)
@ -118,7 +118,7 @@
(total-collected #x171)
(village1-mayor-money #x200)
(vollage1-uncle-money #x201)
(village1-uncle-money #x201)
(village1-yakow-herd #x202)
(village1-yakow-return #x203)
(village1-oracle #x204)
@ -138,36 +138,60 @@
(misty-muse-return #x212)
(misty-boat #x213)
(misty-cannon #x214)
(misty-return-to-pool #x215) ;; task name??
(misty-find-transpad #x216) ;; task name?
(misty-return-to-pool #x215)
(misty-find-transpad #x216)
(misty-balloon-lurkers #x217)
(village1-poi-farmer #x218)
(village1-poi-mayor #x219)
(village1-poi-bird-lady #x21a)
(village1-poi-sculptor #x21b)
(village1-poi-explorer #x21c)
(village1-poi-fisherman #x21d)
(village1-poi-sage-hut #x21e)
(village1-poi-assistant #x21f)
(village1-level-name #x220)
(beach-level-name #x221)
(jungle-level-name #x222)
(misty-level-name #x223)
(village1-poi-firecanyon #x224)
(jungleb-level-name #x225)
(generic-yes #x226)
(generic-no #x227)
(flutflut #x228)
(oracle #x229)
(trans-pad #x22a)
(green-eco-harvester #x22b)
(money #x22c)
(fuel-cell #x22d)
(beach-seagull-get #x22e)
(jungle-lurkerm-unblock #x22f)
(jungle-lurkerm-return #x230)
(sidekick-reminder-fishermans-boat #x231)
(sidekick-hint-fishermans-boat #x232)
(sidekick-reminder-money #x233)
(sidekick-reminder-oracle #x234)
(sidekick-hint-oracle #x235)
(sidekick-hint-seagulls #x236)
(sidekick-hint-pelican #x237)
(MISSING-orb-hint #x233)
(sidekick-hint-ecorocks #x239)
(sidekick-hint-mistycannon #x23a)
(sidekick-hint-dive #x23b)
(sidekick-hint-rounddoor #x23c)
(sidekick-hint-lurkerm #x23d)
(sidekick-hint-tower #x23e)
(sidekick-reminder-fish #x240)
(beach-eco-rock-increment #x239)
(jungle-maindoor-hint #x23c)
(firecanyon-not-enough-cells #x24f)
(firecanyon-need-cells #x24f)
(sidekick-hint-orb-cache-top #x251)
(jungle-precursorbridge-hint #x25b)
(daxter-launcher-no-eco #x25c)
(sidekick-hint-precurbridge #x25b)
(sidekick-hint-launcher #x25c)
(jungle-mirrors-completion-talk-to-mayor #x25e)
(jungle-lurkerm-resolution #x25e)
(jungle-lurkerm-hint #x25f)
(beach-gimmie #x262)
(beach-sentinel #x263)
@ -175,12 +199,14 @@
(jungle-temple-door #x265)
(misty-bike-jump #x266)
(misty-eco-challenge #x267)
(beach-seagull-chased-one #x268)
(beach-seagull-chased-two #x26a)
(beach-seagull-chased-three #x26b)
(beach-seagull-chased-four #x26c)
(sidekick-seagulls1 #x268)
(sidekick-hint-seagulls2 #x269)
(sidekick-seagulls2 #x26a)
(sidekick-seagulls3 #x26b)
(sidekick-seagulls4 #x26c)
(misty-daxter-scared #x26f)
(sidekick-warehouse #x26e)
(sidekick-misty #x26f)
(beach-seagulls-avalanche #x273)
@ -189,49 +215,52 @@
(beach-flutflutegg-hint #x275)
(sidekick-hint-fish-powerup #x278)
(misty-racer-hit-the-ballon-lurkers #x27e)
(misty-daxter-hit-lurkers-not-mines #x27f)
(misty-bike-hint #x27e)
(misty-bike-mines-hint #x27f)
(sidekick-hint-trans-pad #x280)
(sidekick-hint-crate-darkeco1 #x281)
(sidekick-hint-buzzer #x282)
(sidekick-hint-crate-steel-break1 #x283)
(sidekick-hint-crate-iron #x284)
(sidekick-hint-crate-steel #x285)
(sidekick-hint-fuel-cell #x286)
(sidekick-hint-money #x287)
(beach-ecorocks-resolution #x288)
(jungle-eggtop-resolution #x289)
(misty-cannon-resolution #x28a)
(misty-bike-resolution #x28b)
(sidekick-speech-hint-crate-darkeco1 #x281)
(sidekick-hint-crate-steel-break2 #x28e)
(sidekick-hint-crate-darkeco2 #x28f)
(sidekick-launcher1 #x290)
(sidekick-launcher2 #x291)
(sidekick-mistycannon #x292)
(sidekick-unknown1 #x293)
(sidekick-hint-buzzer2 #x294)
(sidekick-hint-buzzer3 #x295)
(sidekick-buzzer-resolution #x296)
(village1-yakow-resolution #x297)
(sidekick-speech-crate-steel-break1 #x283)
(sidekick-speech-hint-crate-iron #x284)
(sidekick-speech-hint-crate-steel #x285)
(sidekick-hint-periscope #x29c)
(sidekick-hint-reflector-mirror #x29d)
(sidekick-hint-aphid #x29e)
(sidekick-hint-periscope2 #x29f)
(sidekick-hint-periscope3 #x2a0)
(sidekick-hint-eco-door #x2a1)
(beach-collectors-unblocked #x288)
(jungleb-eco-vents-opened #x289)
(misty-stopped-lurkers-at-silo #x28a)
(misty-stopped-balloon-lurkers #x28b)
(sidekick-speech-crate-steel-break2 #x28e)
(sidekick-speech-hint-crate-darkeco2 #x28f)
(daxter-screaming-jump #x290)
(daxter-wahoo-jump #x291)
(daxter-get-some #x292)
(collectables-scout-flies-red-boxes #x295)
(found-all-scout-flies #x296)
(yakow-owed-powercell #x297)
(jungle-mirrors-tutorial #x29c)
(jungle-mirrors-break-the-mirror-jak #x29d)
(jungle-mirrors-go-to-the-next-tower #x29f)
(jungle-mirrors-follow-the-beam #x2a0)
(misty-teetertotter-bonk-dax-tutorial #x2a4)
(sidekick-hint-misty-get-red-eco #x2a5)
(red-eco-tutorial #x2a6)
(daxter-blue-eco-plat-tutorial #x2a7)
(misty-teetertotter #x2a4)
(misty-eco-red-hint #x2a5)
(misty-eco-red-first-use #x2a6)
(misty-eco-plat #x2a7)
(fish? #x2a9)
(misty-bone-bridge-hint #x2aa)
(beach-grottopole-increment #x2af)
(firecanyon-collect-cells-collected #x2b1)
(firecanyon-collect-cells-collected-reminder #x2b2)
(firecanyon-collect-cells-text #x2b3)
(village1cam-enough-cells #x2b1)
(village1cam-enough-cells2 #x2b2)
(firecanyon-need-cells-text #x2b3)
(caught #x2b4)
(missed #x2b5)
(lose! #x2b6)
@ -241,18 +270,17 @@
(village2-warrior-money #x302)
(village2-oracle-money #x303)
(swamp-tether #x304)
(swamp-arm #x305)
(swamp-poles #x306)
(swamp-flutflut #x307)
(swamp-tetherrocks #x308)
(swamp-billy #x309)
(sunken-elevator-raise #x30a)
(sunken-elevator-get-to-roof #x30b)
(sunken-pipe #x30c)
(sunken-climb-tube #x30d) ;; task name?
(sunken-pool #x30e) ;; task name?
(sunken-climb-tube #x30d)
(sunken-pool #x30e)
(sunken-platforms #x30f)
(rolling-moles #x310)
(rolling-moles-return #x311)
(rolling-robbers #x312)
@ -260,75 +288,92 @@
(rolling-race-return #x314)
(rolling-lake #x315)
(rolling-plants #x316)
(unknown-buzzers #x317)
(generic-buzzer #x317)
(poi-bluesage-hut #x318)
(village2-level-name #x319)
(poi-levitator #x31a)
(rolling-level-name #x31b)
(swamp-level-name #x31c)
(sunken-level-name #x31d)
(ogre-level-name #x31e)
(levitator-yes #x31f)
(levitator-no #x320)
(swamp-battle #x321)
(sunken-bottom #x322) ;; task name?
(reach-center #x323) ;; task name?
(sunken-slide #x322)
(sunken-spinning-room #x323)
(rolling-ring-chase-1 #x324)
(rolling-ring-chase-2 #x325)
(sunken-kiera-you-raised-a-piece-of-lpc #x326)
(rolling-beat-lurkers #x327)
(swamp-finished-with-flutflut #x328)
(rolling-race-beat-record #x335)
(sidekick-speech-hint-rolling-crate-darkeco #x336)
(rolling-lightning-moles-completion #x338)
(rolling-dark-plants-location-hint #x339)
(rolling-dark-plants-hint #x33a)
(rolling-flying-lurker-intro #x33c)
(rolling-ring-hint-one-ring-down #x33f)
(rolling-ring-hint-be-quick-to-next #x340)
(rolling-ring-hint-be-quick-all #x341)
(sunken-room-resolution #x326)
(rolling-robbers-resolution #x327)
(swamp-flutflut-resolution #x328)
(sunken-pipegame-follow-it #x343)
(sunken-helix-daxter-bad-feeling #x344)
(rolling-race-beat-record #x335)
(sidekick-hint-crate-darkeco-rolling #x336)
(rolling-moles-hint #x337)
(rolling-moles-resolution #x338)
(rolling-plants-hint #x339)
(rolling-plants-hint-eco-green #x33a)
(rolling-plants-hint-eco-green2 #x33b)
(rolling-robbers-hint #x33c)
(rolling-moles-hint-hole #x33d)
(rolling-plants-hint-eco-green3 #x33e)
(rolling-ring-chase-1-hint #x33f)
(rolling-ring-chase-2-hint #x340)
(rolling-ring-chase-fail #x341)
(rolling-ring-grass #x342)
(sunken-pipegame-hint #x343)
(sunken-helix-hint #x344)
(sunken-blue-eco-charger-hint #x345)
(sunken-room-hint #x346)
(sunken-double-lurker-hint #x347)
(sunken-helix-daxter-eco-rising #x348)
(sunken-helix-darkeco-hint #x348)
(sunken-helix-darkeco-close #x349)
(sunken-qbert-plat-hint #x34a)
(sunken-bully-dive-hint #x34b)
(sunken-take-it-easy-hot-pipes #x34e)
(sunken-tube-hint #x34c)
(sunken-blue-eco-charger-all-hint #x34d)
(sunken-hotpipes #x34e)
(sunken-water1 #x34f)
(sunken-water2 #x350)
(swamp-tetherrocks-hint #x351)
(swamp-tetherrock-eco-yellow-hint #x352)
(swamp-billy-reminder #x353)
(swamp-flutflut-doublejump #x354)
(swamp-tar #x355)
(swamp-water #x356)
(swamp-kermit-tongue-hint #x357)
(swamp-rat-nest-hint #x358)
(swamp-eco-yellow-first-use #x359)
(swamp-eco-yellow-hint #x35a)
(swamp-swingpole #x35b)
(swamp-bramble #x35c)
(swamp-tether-hint #x35d)
(swamp-kermit-charge-hint #x35e)
(swamp-kermit-flee #x35f)
(swamp-battle-hint #x360)
(swamp-arm-hint #x361)
(swamp-tar-hint #x362)
(swamp-bat-eco-yellow-hint #x363)
(swamp-bat-duck-hint #x364)
(swamp-tetherrocks-3-left #x365)
(swamp-tetherrocks-2-left #x366)
(swamp-tetherrocks-1-left #x367)
(swamp-flutflut-hint #x368)
(swamp-rats-hurt #x369)
(rolling-plants-resolution #x36a)
(swamp-arm-resolution #x36b)
(village2-levitator-need-cells #x36c)
(village2-levitator-find-cells #x36d)
(swamp-tethers-advice-hint #x352)
(kermit-break-tongue #x357)
(swamp-rats-nest-hint #x358)
(daxter-you-can-shoot-with-yellow-eco #x359)
(kermit-run-away-jak #x35f)
(swamp-bats-hint #x364) ;; maybe we can duck the bats
(swamp-tethers-three-to-go #x365)
(swamp-tethers-two-to-go #x366)
(swamp-tethers-lefts-find-the-last #x367)
(flutflut-reminder #x368)
(sage-golfclap-i-have-low-expectations #x36a) ;; where was this said?
(swamp-tethers-completion-sage-precursor-arm #x36b)
(village2-warp-gate-reminder #x36f)
(village2-warp-gate-reminder-annoyed #x370)
(village2-warp-gate-reminder-very-annoyed #x371)
(village2-not-enough-cells-levitator #x36c)
(villlage2-levitator-cell-req-text #x372)
(rolling-race-time-string-prefix #x373)
(rolling-race-record-string-prefix #x374)
(rolling-race-new-record-string-prefix #x375)
(rolling-race-try-again-string #x376)
(rolling-race-start-race-aborted #x377) ;; double check this
(village2-button-reminder #x36f)
(village2-button-reminder2 #x370)
(village2-button-reminder3 #x371)
(village2-levitator-need-cells-text #x372)
(time #x373)
(record #x374)
(new-record #x375)
(try-again #x376)
(race-aborted #x377)
(village3-miner-money #x400)
(village3-oracle-money #x401)
@ -337,85 +382,155 @@
(snow-ram-1-left #x404)
(snow-fort #x405)
(snow-bunnies #x406)
(snow-open-door #x408) ;; task name?
(red-eggtop #x407)
(snow-ball #x408)
(cave-gem #x409)
(cave-drilling-lurkers #x40a)
(snow-top #x40b)
(snow-troops #x40c)
(snow-troops2 #x40d)
(cave-robot-climb #x40e)
(cave-dark-climb #x40f) ;; destroy crystals
(cave-dark-climb #x40f)
(cave-gnawers #x410)
(cave-dark-crystals #x411)
(cave-bats #x412)
(village3-buzzer #x413)
(village3-poi-redsage-hut #x414)
(village3-level-name #x415)
(snowy-level-name #x417)
(village3-poi-gondola #x416)
(snow-level-name #x417)
(village3-poi-yosemite #x418)
(cave-level-name #x419)
(village3-poi-ogre #x41a)
(lavatube-level-name #x41b)
(gondola-ride? #x41c)
(gondola-yes #x41d)
(gondola-no #x41e)
(snow-ram-boss #x41f)
(snow-lake #x420)
(snow-eggtop #x421)
(snow-birds #x422)
(cave-spider-tunnel #x423)
(cave-platforms #x424)
(cave-swing-poles #x426)
(assistant-lavatube-powercell-hint #x428)
(village3-gondola-malfunctioning #x429)
(village3-gondola-reactivated #x42a)
(snow-frozen-crate #x42b) ;; task name?
(assistant-lavatube-hint #x427)
(assistant-lavatube-need-cells #x428)
(gondola-need-cells #x429)
(gondola-enough-cells #x42a)
(snow-cage #x42b)
(snow-bumpers #x42c)
(dark-crystal-last-one #x432)
(daxter-maybe-you-can-shoot-better-goggles #x433)
(darkcave-light-crystal-low-light-hint #x437)
(darkcave-light-crystal-hint #x438)
(dark-crystal-run-away #x439)
(cave-dark-crystals-resolution #x432)
(cave-gnawers-look-around #x433)
(cave-darkeco #x434)
(cave-dark-crystals-reminder #x435)
(cave-gnawers-reminder #x436)
(darkcave-light-end #x437)
(darkcave-light-hint #x438)
(cave-dark-crystals-flee #x439)
(robocave-introduction #x43a)
(cave-spider-egg-hint #x43b)
(darkcave-introduction #x43c)
(cave-spiderweb-hint #x43d)
(cave-spider-hurt #x43e)
(cave-baby-spider-hint #x43f)
(cave-trap-nest-hint #x440)
(snow-fort-reminder #x443)
(ram-boss-red-eco-hint #x444)
(cave-spider-egg-spawn #x441)
(cave-spider-nest-flee #x442)
(snow-fort-hint #x443)
(snow-ram-boss-red-eco-hint #x444)
(snow-platform-hint #x445)
(snow-vent-hint #x446)
(snow-eggtop-hint #x447)
(snow-ice-cube-hint #x448)
(snow-button-hint #x449)
(snow-plat-hint #x44a)
(snow-red-eco-hint #x44b)
(snow-eggtop-resolution #x44c)
(snow-cage-resolution #x44d)
(snow-ball-hint #x44e)
(assistant-lavatube-enough-cells #x44f)
(assistant-lavatube-enough-cells2 #x450)
(assistant-lavatube-reminder #x451)
(village3-button-reminder #x452)
(village3-button-reminder2 #x453)
(village3-button-reminder3 #x454)
(assistant-lavatube-need-cells-text #x455)
(ice-cube-hint #x448)
(snowy-turned-on-yellow-vents #x44c)
(village3-warp-gate-reminder #x452)
(village3-warp-gate-reminder=annoyed #x453)
(village3-warp-gate-reminder-very-annoyed #x454)
(lavatube-powercell-req-text #x455)
(fire-canyon-end #x500)
(fire-canyon-buzzer #x501)
(daxter-maybe-i-should-drive #x506)
(daxter-you-are-trying-to-avoid-dark-eco #x507)
(fire-canyon-level-name #x50c)
(fire-canyon-we-made-it #x515)
(collectables-theres-scout-flys-here-too #x516)
(firecanyon-end #x500)
(firecanyon-buzzer #x501)
(firecanyon-balloon-hint #x502)
(firecanyon-ramp-hint #x503)
(firecanyon-heat-warning1 #x504)
(firecanyon-steer-hint #x505)
(firecanyon-crate-darkeco1 #x506)
(firecanyon-crate-darkeco2 #x507)
(firecanyon-babak-hint #x508)
(firecanyon-heat-warning2 #x509)
(firecanyon-heat-warning3 #x50a)
(firecanyon-heat-warning4 #x50b)
(firecanyon-level-name #x50c)
(firecanyon-balloon-reminder #x50d)
(firecanyon-balloon-reminder2 #x50e)
(firecanyon-heat-warning5 #x50f)
(firecanyon-balloon-missed #x510)
(firecanyon-heat-warning6 #x511)
(firecanyon-heat-warning7 #x512)
(firecanyon-heat-warning8 #x513)
(firecanyon-heat-warning9 #x514)
(firecanyon-end-resolution #x515)
(firecanyon-buzzer-hint #x516)
(ogre-end #x600)
(ogre-buzzer #x601)
(ogre-poi-ogre #x602)
(ogre-boss #x603)
(ogre-boss-killed #x604)
(ogre-boss-resolution #x604)
(ogre-race-hint #x605)
(assistant-voicebox-intro-ogre-race #x605)
(sidekick-speech-hint-ogre-race #x61c)
(assistant-finished-mountain-pass-race #x61d)
(ogre-race-introduction #x607)
(ogre-tnt-hint #x608)
(ogre-race-ahead-hint #x609)
(ogre-eco-blue-hint #x60a)
(ogre-tree-hint #x60b)
(ogre-eco-blue-reminder #x60c)
(ogre-tnt-reminder #x60d)
(ogre-hole-hint #x60e)
(ogre-bonk-hint #x60f)
(ogre-flying-lurker-hint #x610)
(ogre-flying-lurker-reminder #x611)
(ogre-flying-lurker-pass #x612)
(ogre-flying-lurker-passed #x613)
(ogre-race-losing #x614)
(ogre-race-winning #x615)
(ogre-race-reminder #x616)
(ogre-jump-hint #x617)
(ogre-race-end-almost #x618)
(ogre-race-end-almost2 #x619)
(ogre-race-end-almost3 #x61a)
(ogre-race-end-almost-losing #x61b)
(ogre-plunger-lurker-resolution #x61c)
(ogre-race-resolution #x61d)
(lavatube-end #x700)
(lavatube-buzzer #x701)
(lavatube-shoot-the-spheres #x70d)
(lavatube-spheres-door-open #x710)
(lavatube-hurry #x702)
(lavatube-hurry-path #x703)
(lavatube-chainmine #x704)
(lavatube-darkecobarrel #x705)
(lavatube-balloon #x706)
(lavatube-heat1 #x707)
(lavatube-heat2 #x708)
(lavatube-eco-blue #x709)
(lavatube-eco-yellow #x70a)
(lavatube-tunnel1 #x70b)
(lavatube-tunnel2 #x70c)
(lavatube-balls #x70d)
(lavatube-balls-almost-dead #x70e)
(lavatube-balls-resolution #x710)
(lavatube-tunnel3 #x711)
(lavatube-end-resolution #x712)
(citadel-buzzer #x800)
(citadel-level-name #x801)
@ -423,32 +538,48 @@
(citadel-sage-red #x803)
(citadel-sage-yellow #x804)
(citadel-sage-green #x805)
(citadel-break-generator-hint #x806)
(citadel-lurker-bunny-alert #x808)
(citadel-break-generators-reminder #x809)
(citadel-climb-plat-hint #x80c)
(citadel-generator #x806)
(citadel-edge #x807)
(citadel-battle #x808)
(citadel-generator-no-mushroom #x809)
(citadel-button #x80a)
(citadel-robotboss #x80b)
(citadel-plat #x80c)
(citadel-launcher #x80d)
(citadel-battle2 #x80e)
(citadel-sagecage #x80f)
(citadel-hub1 #x810)
(citadel-hub2 #x811)
(citadel-launcher2 #x812)
(citadel-battle-end #x813)
(daxter-dont-miss-the-next-launcher #x80d)
(daxter-land-on-the-next-launcher #x812)
(misty-battle-finished #x813)
(training-precursor-orbs #x901)
(training-power-cells #x902)
(training-assistant-found-scout-fly #x903)
(training-assistant-found-scout-fly-cell #x904)
(training-voicebox #x900)
(training-money #x901)
(training-fuel-cell #x902)
(training-buzzer-hint #x903)
(training-buzzer-resolution #x904)
(training-sharkey #x905)
(training-fuel-cell-reminder #x906)
(training-blue-eco-vent #x907)
(training-eco-green #x908)
(training-eco-blue #x909)
(training-more-eco-more-time #x90a)
(training-eco-reminder #x90a)
(training-precursor-door #x90b)
(training-eco-opened-door #x90c)
(training-progress #x90d)
(training-double-jump #x90e)
(sage-voicebox-hint-crate-iron #x917)
(training-spin #x90f)
(training-spin-bad1 #x910)
(training-spin-bad2 #x911)
(training-spin-success #x912)
(training-punch #x914)
(training-punch-bad1 #x914)
(training-punch-bad2 #x915)
(training-punch-success #x916)
(training-ironcrate #x917)
(training-combo #x918)
(training-warp-gate-blocked #x919)
(training-warp-gate-reminder #x91a)
(training-gimmie-task-name #x91b)
(training-buzzer-task-name #x91c)
(training-door-task-name #x91d)

View File

@ -549,7 +549,7 @@
(case arg2
(('attack)
(sound-play "cannon-shot")
(increment-success-for-hint (game-text-id beach-eco-rock-increment))
(increment-success-for-hint (game-text-id sidekick-hint-ecorocks))
(go ecoventrock-break #f)
)
)

View File

@ -1209,7 +1209,7 @@
(case (-> obj targetnum)
((1)
(level-hint-spawn
(game-text-id beach-seagull-chased-one)
(game-text-id sidekick-seagulls1)
"sksp0020"
(the-as entity #f)
*entity-pool*
@ -1218,7 +1218,7 @@
)
((2)
(level-hint-spawn
(game-text-id beach-seagull-chased-two)
(game-text-id sidekick-seagulls2)
"sksp0022"
(the-as entity #f)
*entity-pool*
@ -1227,7 +1227,7 @@
)
((3)
(level-hint-spawn
(game-text-id beach-seagull-chased-three)
(game-text-id sidekick-seagulls3)
"sksp0023"
(the-as entity #f)
*entity-pool*
@ -1236,7 +1236,7 @@
)
((4)
(level-hint-spawn
(game-text-id beach-seagull-chased-four)
(game-text-id sidekick-seagulls4)
"sksp0024"
(the-as entity #f)
*entity-pool*

View File

@ -1229,8 +1229,8 @@
(case arg2
(('attack)
(if (-> self mushroom)
(increment-success-for-hint (game-text-id citadel-break-generator-hint))
(increment-success-for-hint (game-text-id citadel-break-generators-reminder))
(increment-success-for-hint (game-text-id citadel-generator))
(increment-success-for-hint (game-text-id citadel-generator-no-mushroom))
)
(go citb-generator-break)
)
@ -1258,14 +1258,14 @@
(when (and *target* (>= 32768.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(if (-> self mushroom)
(level-hint-spawn
(game-text-id citadel-break-generator-hint)
(game-text-id citadel-generator)
"sksp0381"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id citadel-break-generators-reminder)
(game-text-id citadel-generator-no-mushroom)
"sksp0384"
(the-as entity #f)
*entity-pool*
@ -1526,7 +1526,7 @@
)
)
(level-hint-spawn
(game-text-id citadel-climb-plat-hint)
(game-text-id citadel-plat)
"sksp0387"
(the-as entity #f)
*entity-pool*
@ -1558,7 +1558,7 @@
:virtual #t
:code (behavior ()
(level-hint-spawn
(game-text-id citadel-lurker-bunny-alert)
(game-text-id citadel-battle)
"sksp0383"
(the-as entity #f)
*entity-pool*

View File

@ -376,7 +376,7 @@ battlecontroller-default-event-handler
(case (-> (level-get-target-inside *level*) name)
(('citadel)
(level-hint-spawn
(game-text-id misty-battle-finished)
(game-text-id citadel-battle-end)
"sksp0378"
(the-as entity #f)
*entity-pool*

View File

@ -73,7 +73,7 @@
(>= (-> self notice-dist) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
)
(level-hint-spawn
(game-text-id daxter-blue-eco-plat-tutorial)
(game-text-id misty-eco-plat)
"sksp0073"
(the-as entity #f)
*entity-pool*

View File

@ -103,7 +103,7 @@
:trans (behavior ()
(if (and *target* (>= 40960.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id darkcave-light-crystal-hint)
(game-text-id darkcave-light-hint)
"sksp0333"
(the-as entity #f)
*entity-pool*
@ -181,7 +181,7 @@
(update-connected-crystals! self)
(when (>= 0.0 f30-0)
(level-hint-spawn
(game-text-id darkcave-light-crystal-low-light-hint)
(game-text-id darkcave-light-end)
"sksp0332"
(the-as entity #f)
*entity-pool*

View File

@ -93,7 +93,7 @@
)
(hide-hud)
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (seen-text? *game-info* (game-text-id firecanyon-not-enough-cells))
(when (and (seen-text? *game-info* (game-text-id firecanyon-need-cells))
(hud-hidden?)
(can-grab-display? self)
(not (-> *setting-control* current hint))
@ -112,11 +112,11 @@
(set! (-> v1-28 scale) 0.8)
)
(set! (-> gp-0 flags) (font-flags shadow kerning middle large))
(print-game-text (lookup-text! *common-text* (game-text-id firecanyon-collect-cells-text) #f) gp-0 #f 128 22)
(print-game-text (lookup-text! *common-text* (game-text-id firecanyon-need-cells-text) #f) gp-0 #f 128 22)
)
)
(level-hint-spawn
(game-text-id firecanyon-not-enough-cells)
(game-text-id firecanyon-need-cells)
"asstvb09"
(the-as entity #f)
*entity-pool*

View File

@ -195,7 +195,7 @@
(when (logtest? (-> self draw status) (draw-status was-drawn))
(if (and *target* (>= 40960.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id flutflut-reminder)
(game-text-id swamp-flutflut-hint)
"sksp0160"
(the-as entity #f)
*entity-pool*

View File

@ -1282,7 +1282,7 @@
)
(('change-mode)
(level-hint-spawn
(game-text-id jungle-mirrors-tutorial)
(game-text-id sidekick-hint-periscope)
"sksp0049"
(the-as entity #f)
*entity-pool*
@ -1560,7 +1560,7 @@
(cond
((name= arg0 "periscope-11")
(level-hint-spawn
(game-text-id jungle-mirrors-follow-the-beam)
(game-text-id sidekick-hint-periscope3)
"sksp0053"
(the-as entity #f)
*entity-pool*
@ -1569,7 +1569,7 @@
)
((name= arg0 "periscope-12")
(level-hint-spawn
(game-text-id jungle-mirrors-go-to-the-next-tower)
(game-text-id sidekick-hint-periscope2)
"sksp0052"
(the-as entity #f)
*entity-pool*
@ -1578,7 +1578,7 @@
)
((name= arg0 "periscope-15")
(level-hint-spawn
(game-text-id jungle-mirrors-completion-talk-to-mayor)
(game-text-id jungle-lurkerm-resolution)
"sksp0018"
(the-as entity #f)
*entity-pool*
@ -1823,9 +1823,9 @@
(when (logtest? (-> self draw status) (draw-status was-drawn))
(launch-particles (-> *part-id-table* 825) (-> self beam-end))
(when (and *target* (>= 24576.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(start-hint-timer (game-text-id jungle-mirrors-break-the-mirror-jak))
(start-hint-timer (game-text-id sidekick-hint-reflector-mirror))
(level-hint-spawn
(game-text-id jungle-mirrors-break-the-mirror-jak)
(game-text-id sidekick-hint-reflector-mirror)
"sksp0050"
(the-as entity #f)
*entity-pool*

View File

@ -665,7 +665,7 @@
)
(else
(level-hint-spawn
(game-text-id jungle-precursorbridge-hint)
(game-text-id sidekick-hint-precurbridge)
"sksp0039"
(the-as entity #f)
*entity-pool*
@ -989,7 +989,7 @@
(>= (-> self thresh w) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
)
(level-hint-spawn
(game-text-id jungle-maindoor-hint)
(game-text-id sidekick-hint-rounddoor)
"sksp0038"
(the-as entity #f)
*entity-pool*

View File

@ -264,7 +264,7 @@
)
(send-event *camera* 'blend-from-as-fixed)
(level-hint-spawn
(game-text-id jungleb-eco-vents-opened)
(game-text-id jungle-eggtop-resolution)
"asstvb02"
(the-as entity #f)
*entity-pool*

View File

@ -77,7 +77,7 @@
)
(hide-hud)
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (seen-text? *game-info* (game-text-id assistant-lavatube-powercell-hint))
(when (and (seen-text? *game-info* (game-text-id assistant-lavatube-need-cells))
(hud-hidden?)
(can-grab-display? self)
(not (-> *setting-control* current hint))
@ -96,11 +96,11 @@
(set! (-> v1-28 scale) 0.8)
)
(set! (-> gp-0 flags) (font-flags shadow kerning middle large))
(print-game-text (lookup-text! *common-text* (game-text-id lavatube-powercell-req-text) #f) gp-0 #f 128 22)
(print-game-text (lookup-text! *common-text* (game-text-id assistant-lavatube-need-cells-text) #f) gp-0 #f 128 22)
)
)
(level-hint-spawn
(game-text-id assistant-lavatube-powercell-hint)
(game-text-id assistant-lavatube-need-cells)
"asstva74"
(the-as entity #f)
*entity-pool*

View File

@ -673,7 +673,7 @@
(loop
(if (and *target* (>= 307200.0 (vector-vector-distance (-> self root trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id lavatube-shoot-the-spheres)
(game-text-id lavatube-balls)
"sksp0375"
(the-as entity #f)
*entity-pool*
@ -777,7 +777,7 @@
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'attack)
(when (and (>= arg1 2) (= (-> arg3 param 1) 'eco-yellow))
(increment-success-for-hint (game-text-id lavatube-shoot-the-spheres))
(increment-success-for-hint (game-text-id lavatube-balls))
(sound-play "dcrate-break")
(process-spawn
part-tracker
@ -1292,7 +1292,7 @@
)
(close-specific-task! (game-task lavatube-balls) (task-status need-resolution))
(level-hint-spawn
(game-text-id lavatube-spheres-door-open)
(game-text-id lavatube-balls-resolution)
"sksp0378"
(the-as entity #f)
*entity-pool*

View File

@ -423,7 +423,7 @@
(('touch 'attack)
(if (= (-> arg0 type) target)
(level-hint-spawn
(game-text-id dark-crystal-run-away)
(game-text-id cave-dark-crystals-flee)
"sksp0334"
(the-as entity #f)
*entity-pool*
@ -535,7 +535,7 @@
(logclear! (-> self mask) (process-mask actor-pause))
(clear-collide-with-as (-> self root-override))
(level-hint-spawn
(game-text-id dark-crystal-last-one)
(game-text-id cave-dark-crystals-resolution)
"sksp0327"
(the-as entity #f)
*entity-pool*

View File

@ -448,7 +448,7 @@
(set! (-> self explosion-force-position quad) (-> a0-10 prim-core world-sphere quad))
(if (send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'balloonlurker))))
(level-hint-spawn
(game-text-id misty-daxter-hit-lurkers-not-mines)
(game-text-id misty-bike-mines-hint)
"sksp0063"
(the-as entity #f)
*entity-pool*

View File

@ -49,7 +49,7 @@
(('flop)
(when (target-on-end-of-teetertotter? self)
(set! (-> self in-launch-window) #f)
(increment-success-for-hint (game-text-id misty-teetertotter-bonk-dax-tutorial))
(increment-success-for-hint (game-text-id misty-teetertotter))
(go teetertotter-launch)
)
)
@ -58,7 +58,7 @@
(('bonk)
(when (target-on-end-of-teetertotter? self)
(level-hint-spawn
(game-text-id misty-teetertotter-bonk-dax-tutorial)
(game-text-id misty-teetertotter)
"sksp0070"
(the-as entity #f)
*entity-pool*

View File

@ -1623,7 +1623,7 @@
(and (zero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x))) (nonzero? gp-0))
)
(let ((gp-1 (+ 50 (the int (* 0.16666667 (the float gp-0))))))
(level-hint-spawn (game-text-id daxter-get-some) "sksp009f" (the-as entity #f) *entity-pool* (game-task none))
(level-hint-spawn (game-text-id sidekick-mistycannon) "sksp009f" (the-as entity #f) *entity-pool* (game-task none))
(dummy-22 self (* 4096.0 (the float gp-1)) 2.0 40960.0)
)
(set! (-> self state-time) (-> *display* base-frame-counter))

View File

@ -180,7 +180,7 @@
(close-specific-task! (game-task plunger-lurker-hit) (task-status need-hint))
(process-entity-status! self (entity-perm-status complete) #t)
(level-hint-spawn
(game-text-id sidekick-speech-hint-ogre-race)
(game-text-id ogre-plunger-lurker-resolution)
"sksp0321"
(the-as entity #f)
*entity-pool*
@ -931,7 +931,7 @@
)
)
(level-hint-spawn
(game-text-id assistant-voicebox-intro-ogre-race)
(game-text-id ogre-race-hint)
"asstvb24"
(the-as entity #f)
*entity-pool*

View File

@ -316,7 +316,7 @@
(('misty)
(close-specific-task! (game-task misty-bike) (task-status need-reminder-a))
(level-hint-spawn
(game-text-id misty-racer-hit-the-ballon-lurkers)
(game-text-id misty-bike-hint)
"sksp0062"
(the-as entity #f)
*entity-pool*

View File

@ -557,7 +557,7 @@
(suspend)
)
(level-hint-spawn
(game-text-id rolling-lightning-moles-completion)
(game-text-id rolling-moles-resolution)
"sksp0112"
(the-as entity #f)
*entity-pool*

View File

@ -349,7 +349,7 @@
)
(when (task-closed? (game-task rolling-plants) (task-status need-hint))
(level-hint-spawn
(game-text-id rolling-dark-plants-location-hint)
(game-text-id rolling-plants-hint)
"sksp0113"
(the-as entity #f)
*entity-pool*
@ -357,7 +357,7 @@
)
(if (not (send-event *target* 'query 'powerup (pickup-type eco-green)))
(level-hint-spawn
(game-text-id rolling-dark-plants-hint)
(game-text-id rolling-plants-hint-eco-green)
"sksp0114"
(the-as entity #f)
*entity-pool*
@ -1069,7 +1069,7 @@
(set! (-> gp-0 origin y) (the float (- 10 (-> self timer-pos-offset))))
(set! (-> gp-0 flags) (font-flags shadow kerning right large))
(print-game-text
(lookup-text! *common-text* (game-text-id rolling-race-time-string-prefix) #f)
(lookup-text! *common-text* (game-text-id time) #f)
gp-0
#f
128
@ -1082,7 +1082,7 @@
(set! (-> gp-0 origin y) (+ 15.0 (-> gp-0 origin y)))
(set! (-> gp-0 flags) (font-flags shadow kerning right large))
(print-game-text
(lookup-text! *common-text* (game-text-id rolling-race-record-string-prefix) #f)
(lookup-text! *common-text* (game-text-id record) #f)
gp-0
#f
128
@ -1106,7 +1106,7 @@
(set! (-> a0-15 color) (font-color orange-red))
)
(print-game-text
(lookup-text! *common-text* (game-text-id rolling-race-new-record-string-prefix) #f)
(lookup-text! *common-text* (game-text-id new-record) #f)
gp-0
#f
128
@ -1139,7 +1139,7 @@
(let ((a0-23 gp-0))
(set! (-> a0-23 color) (font-color orange-red))
)
(print-game-text (lookup-text! *common-text* (game-text-id rolling-race-try-again-string) #f) gp-0 #f 128 22)
(print-game-text (lookup-text! *common-text* (game-text-id try-again) #f) gp-0 #f 128 22)
)
)
)
@ -1223,7 +1223,7 @@
)
(set! (-> gp-0 flags) (font-flags shadow kerning middle left large))
(print-game-text
(lookup-text! *common-text* (game-text-id rolling-race-start-race-aborted) #f)
(lookup-text! *common-text* (game-text-id race-aborted) #f)
gp-0
#f
128

View File

@ -764,7 +764,7 @@
)
((>= (- (-> *display* game-frame-counter) (-> self state-time)) (-> self timeout))
(level-hint-spawn
(game-text-id rolling-ring-hint-be-quick-all)
(game-text-id rolling-ring-chase-fail)
"sksp0121"
(the-as entity #f)
*entity-pool*
@ -796,7 +796,7 @@
(vector-! gp-0 gp-0 (-> self old-hips))
(when (>= (ray-flat-cyl-intersect (-> self cyl) (-> self old-hips) gp-0) 0.0)
(level-hint-spawn
(game-text-id rolling-ring-hint-one-ring-down)
(game-text-id rolling-ring-chase-1-hint)
"sksp0119"
(the-as entity #f)
*entity-pool*
@ -804,7 +804,7 @@
)
(if (= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
(level-hint-spawn
(game-text-id rolling-ring-hint-be-quick-to-next)
(game-text-id rolling-ring-chase-2-hint)
"sksp0120"
(the-as entity #f)
*entity-pool*

View File

@ -605,7 +605,7 @@
(>= 163840.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
)
(level-hint-spawn
(game-text-id rolling-flying-lurker-intro)
(game-text-id rolling-robbers-hint)
"sksp0116"
(the-as entity #f)
*entity-pool*

View File

@ -405,7 +405,7 @@
)
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
(level-hint-spawn (game-text-id ice-cube-hint) "sksp0350" (the-as entity #f) *entity-pool* (game-task none))
(level-hint-spawn (game-text-id snow-ice-cube-hint) "sksp0350" (the-as entity #f) *entity-pool* (game-task none))
)
)
(else

View File

@ -397,7 +397,7 @@
(ja :num! (seek!))
)
(level-hint-spawn
(game-text-id snowy-turned-on-yellow-vents)
(game-text-id snow-eggtop-resolution)
"sksp0360"
(the-as entity #f)
*entity-pool*
@ -927,7 +927,7 @@
:trans (behavior ()
(when (and *target* (>= 61440.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id snow-fort-reminder)
(game-text-id snow-fort-hint)
"sksp0345"
(the-as entity #f)
*entity-pool*

View File

@ -878,7 +878,7 @@
(do-push-aways! (-> self collide-info))
)
(level-hint-spawn
(game-text-id ram-boss-red-eco-hint)
(game-text-id snow-ram-boss-red-eco-hint)
"sksp0346"
(the-as entity #f)
*entity-pool*

View File

@ -337,7 +337,7 @@
(suspend)
)
(level-hint-spawn
(game-text-id sunken-helix-daxter-bad-feeling)
(game-text-id sunken-helix-hint)
"sksp0124"
(the-as entity #f)
*entity-pool*
@ -411,7 +411,7 @@
)
)
(level-hint-spawn
(game-text-id sunken-helix-daxter-eco-rising)
(game-text-id sunken-helix-darkeco-hint)
"sksp0128"
(the-as entity #f)
*entity-pool*

View File

@ -45,7 +45,7 @@
(let ((s4-0 (new 'stack 'attack-info)))
(dummy-41 (-> self root-override) s4-0 (-> self shove-up))
(level-hint-spawn
(game-text-id sunken-take-it-easy-hot-pipes)
(game-text-id sunken-hotpipes)
"sksp0134"
(the-as entity #f)
*entity-pool*

View File

@ -937,7 +937,7 @@
(when (and (-> self play-assistant-message?) (>= f30-0 57344.0))
(set! (-> self play-assistant-message?) #f)
(level-hint-spawn
(game-text-id sunken-kiera-you-raised-a-piece-of-lpc)
(game-text-id sunken-room-resolution)
"asstvb22"
(the-as entity #f)
*entity-pool*

View File

@ -688,7 +688,7 @@
(suspend)
)
(level-hint-spawn
(game-text-id sunken-pipegame-follow-it)
(game-text-id sunken-pipegame-hint)
"sksp0123"
(the-as entity #f)
*entity-pool*

View File

@ -1177,14 +1177,14 @@ nav-enemy-default-event-handler
(cond
(gp-0
(level-hint-spawn
(game-text-id kermit-break-tongue)
(game-text-id swamp-kermit-tongue-hint)
"sksp0143"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id kermit-run-away-jak)
(game-text-id swamp-kermit-flee)
"sksp0151"
(the-as entity #f)
*entity-pool*

View File

@ -109,7 +109,7 @@
(go swamp-bat-slave-die (process->handle arg0))
)
(('touch)
(level-hint-spawn (game-text-id swamp-bats-hint) "sksp0156" (the-as entity #f) *entity-pool* (game-task none))
(level-hint-spawn (game-text-id swamp-bat-duck-hint) "sksp0156" (the-as entity #f) *entity-pool* (game-task none))
(send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info))
)
(('launch)

View File

@ -699,7 +699,7 @@
)
(else
(level-hint-spawn
(game-text-id swamp-rats-nest-hint)
(game-text-id swamp-rat-nest-hint)
"sksp0144"
(the-as entity #f)
*entity-pool*

View File

@ -141,7 +141,7 @@
(cond
((zero? v1-61)
(level-hint-spawn
(game-text-id training-precursor-orbs)
(game-text-id training-money)
"asstvb41"
(the-as entity #f)
*entity-pool*
@ -151,7 +151,7 @@
)
((= v1-61 1)
(level-hint-spawn
(game-text-id training-power-cells)
(game-text-id training-fuel-cell)
"asstvb42"
(the-as entity #f)
*entity-pool*

View File

@ -1123,7 +1123,7 @@
(when (fishermans-boat-enter-dock?)
(set! (-> self waiting-for-player) #f)
(level-hint-spawn
(game-text-id misty-daxter-scared)
(game-text-id sidekick-misty)
"sksp0060"
(the-as entity #f)
*entity-pool*
@ -1496,7 +1496,7 @@
)
(suspend)
(level-hint-spawn
(game-text-id misty-daxter-scared)
(game-text-id sidekick-misty)
"sksp0060"
(the-as entity #f)
*entity-pool*

View File

@ -216,7 +216,7 @@ yakow-default-event-handler
(suspend)
)
(level-hint-spawn
(game-text-id yakow-owed-powercell)
(game-text-id village1-yakow-resolution)
"sksp018a"
(the-as entity #f)
*entity-pool*

View File

@ -1332,7 +1332,7 @@
)
(hide-hud)
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (seen-text? *game-info* (game-text-id village2-not-enough-cells-levitator))
(when (and (seen-text? *game-info* (game-text-id village2-levitator-need-cells))
(hud-hidden?)
(can-grab-display? self)
(not (-> *setting-control* current hint))
@ -1352,7 +1352,7 @@
)
(set! (-> gp-0 flags) (font-flags shadow kerning middle large))
(print-game-text
(lookup-text! *common-text* (game-text-id villlage2-levitator-cell-req-text) #f)
(lookup-text! *common-text* (game-text-id village2-levitator-need-cells-text) #f)
gp-0
#f
128
@ -1361,7 +1361,7 @@
)
)
(level-hint-spawn
(game-text-id village2-not-enough-cells-levitator)
(game-text-id village2-levitator-need-cells)
"asstvb71"
(the-as entity #f)
*entity-pool*

View File

@ -767,7 +767,7 @@
(cond
((= arg0 3)
(level-hint-spawn
(game-text-id swamp-tethers-three-to-go)
(game-text-id swamp-tetherrocks-3-left)
"sksp0157"
(the-as entity #f)
*entity-pool*
@ -776,7 +776,7 @@
)
((= arg0 2)
(level-hint-spawn
(game-text-id swamp-tethers-two-to-go)
(game-text-id swamp-tetherrocks-2-left)
"sksp0158"
(the-as entity #f)
*entity-pool*
@ -785,7 +785,7 @@
)
((= arg0 1)
(level-hint-spawn
(game-text-id swamp-tethers-lefts-find-the-last)
(game-text-id swamp-tetherrocks-1-left)
"sksp0159"
(the-as entity #f)
*entity-pool*
@ -794,7 +794,7 @@
)
((zero? arg0)
(level-hint-spawn
(game-text-id swamp-tethers-completion-sage-precursor-arm)
(game-text-id swamp-arm-resolution)
"sagevb04"
(the-as entity #f)
*entity-pool*
@ -873,7 +873,7 @@
)
(if (and *target* (>= 49152.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id swamp-tethers-advice-hint)
(game-text-id swamp-tetherrock-eco-yellow-hint)
"sksp0138"
(the-as entity #f)
*entity-pool*
@ -1555,7 +1555,7 @@
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'tetherrock-break-evt)
(increment-success-for-hint (game-text-id swamp-tethers-advice-hint))
(increment-success-for-hint (game-text-id swamp-tetherrock-eco-yellow-hint))
(swamp-blimp-setup)
)
)

View File

@ -164,7 +164,7 @@
)
((and (< (the int (-> *game-info* fuel)) (+ s3-0 2)) (< (the int (-> *game-info* fuel)) 71) (not s4-1))
(level-hint-spawn
(game-text-id village3-gondola-malfunctioning)
(game-text-id gondola-need-cells)
"asstvb75"
(the-as entity #f)
*entity-pool*
@ -173,7 +173,7 @@
)
(else
(level-hint-spawn
(game-text-id village3-gondola-reactivated)
(game-text-id gondola-enough-cells)
"asstvb76"
(the-as entity #f)
*entity-pool*

View File

@ -696,21 +696,21 @@
)
(((game-task village2-levitator))
(level-hint-spawn
(game-text-id village2-warp-gate-reminder)
(game-text-id village2-button-reminder)
"asstvb28"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id village2-warp-gate-reminder-annoyed)
(game-text-id village2-button-reminder2)
"asstvb29"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id village2-warp-gate-reminder-very-annoyed)
(game-text-id village2-button-reminder3)
"asstvb30"
(the-as entity #f)
*entity-pool*
@ -719,21 +719,21 @@
)
(((game-task village3-button))
(level-hint-spawn
(game-text-id village3-warp-gate-reminder)
(game-text-id village3-button-reminder)
"asstv103"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id village3-warp-gate-reminder=annoyed)
(game-text-id village3-button-reminder2)
"asstv104"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id village3-warp-gate-reminder-very-annoyed)
(game-text-id village3-button-reminder3)
"asstv105"
(the-as entity #f)
*entity-pool*
@ -1010,7 +1010,7 @@
(cond
((zero? v1-84)
(level-hint-spawn
(game-text-id firecanyon-collect-cells-collected)
(game-text-id village1cam-enough-cells)
"asstvb04"
(the-as entity #f)
*entity-pool*
@ -1039,7 +1039,7 @@
)
((= v1-84 1)
(level-hint-spawn
(game-text-id firecanyon-collect-cells-collected-reminder)
(game-text-id village1cam-enough-cells2)
"asstvb08"
(the-as entity #f)
*entity-pool*
@ -1076,7 +1076,7 @@
((= v1-79 2)
(when (not (task-closed? (game-task village2-levitator) (task-status need-hint)))
(level-hint-spawn
(game-text-id village2-warp-gate-reminder-annoyed)
(game-text-id village2-button-reminder2)
"asstvb29"
(the-as entity #f)
*entity-pool*
@ -1088,7 +1088,7 @@
((= v1-79 3)
(when (not (task-closed? (game-task village3-button) (task-status need-hint)))
(level-hint-spawn
(game-text-id village2-warp-gate-reminder-very-annoyed)
(game-text-id village2-button-reminder3)
"asstvb30"
(the-as entity #f)
*entity-pool*

View File

@ -210,7 +210,7 @@
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id fishgame) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id jungleb-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id misty-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id fire-canyon-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id firecanyon-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id village2-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id rolling-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id swamp-level-name) :scale #t)
@ -218,7 +218,7 @@
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id ogre-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id ogreboss) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id village3-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id snowy-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id snow-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id cave-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id lavatube-level-name) :scale #t)
(new 'static 'game-option :option-type (game-option-type button-music) :name (game-text-id citadel-level-name) :scale #t)
@ -253,7 +253,7 @@
(static-text-list-array fishgame)
(static-text-list-array jungleb-level-name flava-jub-eggtop flava-jub-plant-boss)
(static-text-list-array misty-level-name flava-mis-battle flava-mis-boat flava-racer flava-mis-unused0)
(static-text-list-array fire-canyon-level-name flava-racer flava-fic-unused0)
(static-text-list-array firecanyon-level-name flava-racer flava-fic-unused0)
(static-text-list-array village2-level-name flava-sage flava-assistant flava-warrior flava-geologist flava-gambler flava-levitator)
(static-text-list-array rolling-level-name flava-rol-gorge)
(static-text-list-array swamp-level-name flava-swa-game flava-swa-launcher flava-swa-battle flava-flutflut)
@ -261,7 +261,7 @@
(static-text-list-array ogre-level-name flava-ogr-middle flava-ogr-end)
(static-text-list-array ogreboss)
(static-text-list-array village3-level-name flava-vi3-miners flava-sage flava-assistant flava-vi3-mai flava-vi3-sno)
(static-text-list-array snowy-level-name flava-sno-battle flava-flutflut flava-sno-cave flava-sno-fort flava-sno-balls)
(static-text-list-array snow-level-name flava-sno-battle flava-flutflut flava-sno-cave flava-sno-fort flava-sno-balls)
(static-text-list-array cave-level-name flava-mai-rob flava-mai-rob-top flava-mai-mai flava-mai-dar)
(static-text-list-array zero lavatube-level-name flava-lav-middle flava-lav-end)
(static-text-list-array citadel-level-name flava-sage flava-assistant flava-cit-yellowsage flava-cit-redsage flava-cit-bluesage flava-cit-hub)

View File

@ -37,7 +37,9 @@ Compiler::Compiler(const std::string& user_profile, std::unique_ptr<ReplWrapper>
compile_object_file("goal-lib", library_code, false);
// user profile stuff
if (user_profile != "#f") {
if (user_profile != "#f" &&
std::filesystem::exists(file_util::get_jak_project_dir() / "goal_src" / "user" /
user_profile / "user.gc")) {
try {
Object user_code =
m_goos.reader.read_from_file({"goal_src", "user", user_profile, "user.gc"});

View File

@ -102,6 +102,8 @@ Val* Compiler::compile_asm_text_file(const goos::Object& form, const goos::Objec
// compile files.
if (kind == "subtitle") {
GameSubtitleDB db;
db.m_subtitle_groups = std::make_unique<GameSubtitleGroups>();
db.m_subtitle_groups->hydrate_from_asset_file();
compile_game_subtitle(inputs, db, m_make.compiler_output_prefix());
} else if (kind == "text") {
GameTextDB db;

View File

@ -20,7 +20,6 @@
#include "common/goos/ParseHelpers.h"
#include "common/goos/Reader.h"
#include "common/serialization/subtitles/subtitles.h"
#include "common/util/FileUtil.h"
#include "common/util/FontUtils.h"

View File

@ -5,7 +5,7 @@
#include <unordered_map>
#include <unordered_set>
#include "common/serialization/subtitles/subtitles.h"
#include "common/serialization/subtitles/subtitles_ser.h"
#include "common/util/Assert.h"
#include "common/util/FontUtils.h"

View File

@ -817,7 +817,7 @@
(case (-> (level-get-target-inside *level*) name)
(('training)
(level-hint-spawn
(game-text-id training-more-eco-more-time)
(game-text-id training-eco-reminder)
"sagevb23"
(the-as entity #f)
*entity-pool*
@ -1835,7 +1835,7 @@
(cond
((= arg0 (game-task training-buzzer))
(level-hint-spawn
(game-text-id training-assistant-found-scout-fly-cell)
(game-text-id training-buzzer-resolution)
"asstvb45"
(the-as entity #f)
*entity-pool*
@ -1853,7 +1853,7 @@
)
((= arg0 (game-task beach-ecorocks))
(level-hint-spawn
(game-text-id beach-collectors-unblocked)
(game-text-id beach-ecorocks-resolution)
"sagevb01"
(the-as entity #f)
*entity-pool*
@ -1862,7 +1862,7 @@
)
((= arg0 (game-task misty-cannon))
(level-hint-spawn
(game-text-id misty-stopped-lurkers-at-silo)
(game-text-id misty-cannon-resolution)
"sagevb02"
(the-as entity #f)
*entity-pool*
@ -1871,7 +1871,7 @@
)
((= arg0 (game-task misty-bike))
(level-hint-spawn
(game-text-id misty-stopped-balloon-lurkers)
(game-text-id misty-bike-resolution)
"asstvb03"
(the-as entity #f)
*entity-pool*
@ -1880,7 +1880,7 @@
)
((= arg0 (game-task firecanyon-end))
(level-hint-spawn
(game-text-id fire-canyon-we-made-it)
(game-text-id firecanyon-end-resolution)
"sksp0095"
(the-as entity #f)
*entity-pool*
@ -1889,7 +1889,7 @@
)
((= arg0 (game-task rolling-robbers))
(level-hint-spawn
(game-text-id rolling-beat-lurkers)
(game-text-id rolling-robbers-resolution)
"asstvb20"
(the-as entity #f)
*entity-pool*
@ -1898,7 +1898,7 @@
)
((= arg0 (game-task rolling-plants))
(level-hint-spawn
(game-text-id sage-golfclap-i-have-low-expectations)
(game-text-id rolling-plants-resolution)
"sagevb03"
(the-as entity #f)
*entity-pool*
@ -1907,7 +1907,7 @@
)
((= arg0 (game-task swamp-flutflut))
(level-hint-spawn
(game-text-id swamp-finished-with-flutflut)
(game-text-id swamp-flutflut-resolution)
"asstvb21"
(the-as entity #f)
*entity-pool*
@ -1916,7 +1916,7 @@
)
((= arg0 (game-task ogre-boss))
(level-hint-spawn
(game-text-id ogre-boss-killed)
(game-text-id ogre-boss-resolution)
"asstvb23"
(the-as entity #f)
*entity-pool*
@ -1925,7 +1925,7 @@
)
((= arg0 (game-task ogre-end))
(level-hint-spawn
(game-text-id assistant-finished-mountain-pass-race)
(game-text-id ogre-race-resolution)
"asstvb25"
(the-as entity #f)
*entity-pool*
@ -1934,7 +1934,7 @@
)
((= arg0 (game-task beach-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1943,7 +1943,7 @@
)
((= arg0 (game-task jungle-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1952,7 +1952,7 @@
)
((= arg0 (game-task misty-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1961,7 +1961,7 @@
)
((= arg0 (game-task firecanyon-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1970,7 +1970,7 @@
)
((= arg0 (game-task rolling-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1979,7 +1979,7 @@
)
((= arg0 (game-task sunken-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1988,7 +1988,7 @@
)
((= arg0 (game-task swamp-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -1997,7 +1997,7 @@
)
((= arg0 (game-task ogre-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2006,7 +2006,7 @@
)
((= arg0 (game-task cave-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2015,7 +2015,7 @@
)
((= arg0 (game-task snow-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2024,7 +2024,7 @@
)
((= arg0 (game-task lavatube-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2033,7 +2033,7 @@
)
((= arg0 (game-task citadel-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2042,7 +2042,7 @@
)
((= arg0 (game-task village1-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2051,7 +2051,7 @@
)
((= arg0 (game-task village2-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2060,7 +2060,7 @@
)
((= arg0 (game-task village3-buzzer))
(level-hint-spawn
(game-text-id found-all-scout-flies)
(game-text-id sidekick-buzzer-resolution)
"sksp009k"
(the-as entity #f)
*entity-pool*
@ -2358,7 +2358,7 @@
(case (-> (level-get-target-inside *level*) name)
(('training)
(level-hint-spawn
(game-text-id training-assistant-found-scout-fly)
(game-text-id training-buzzer-hint)
"asstvb44"
(the-as entity #f)
*entity-pool*
@ -2367,7 +2367,7 @@
)
(('firecanyon)
(level-hint-spawn
(game-text-id collectables-theres-scout-flys-here-too)
(game-text-id firecanyon-buzzer-hint)
"sksp0096"
(the-as entity #f)
*entity-pool*
@ -2376,7 +2376,7 @@
)
(else
(level-hint-spawn
(game-text-id collectables-scout-flies-red-boxes)
(game-text-id sidekick-hint-buzzer3)
"sksp009j"
(the-as entity #f)
*entity-pool*
@ -2674,7 +2674,7 @@
)
)
(level-hint-spawn
(game-text-id sidekick-hint-misty-get-red-eco)
(game-text-id misty-eco-red-hint)
"sksp0071"
(the-as entity #f)
*entity-pool*

View File

@ -543,8 +543,8 @@
)
(return #f)
)
(increment-success-for-hint (game-text-id sidekick-speech-hint-crate-iron))
(increment-success-for-hint (game-text-id sage-voicebox-hint-crate-iron))
(increment-success-for-hint (game-text-id sidekick-hint-crate-iron))
(increment-success-for-hint (game-text-id training-ironcrate))
(send-event arg0 'get-attack-count 1)
(go-virtual die #f (the-as int s5-0))
)
@ -553,7 +553,7 @@
(if (not (and (!= *kernel-boot-message* 'play) (= (-> *setting-control* current language) (language-enum japanese)))
)
(level-hint-spawn
(game-text-id sage-voicebox-hint-crate-iron)
(game-text-id training-ironcrate)
"sagevb36"
(the-as entity #f)
*entity-pool*
@ -563,12 +563,12 @@
(case (-> (level-get-target-inside *level*) name)
(('training)
(if (and (can-hint-be-played? (game-text-id zero) (the-as entity #f) (the-as string #f)) (rand-vu-percent? 0.2))
(clear-text-seen! *game-info* (game-text-id sidekick-speech-hint-crate-iron))
(clear-text-seen! *game-info* (game-text-id sidekick-hint-crate-iron))
)
)
)
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-iron)
(game-text-id sidekick-hint-crate-iron)
"sksp0005"
(the-as entity #f)
*entity-pool*
@ -590,16 +590,16 @@
(('explode 'darkeco 'eco-yellow 'bonk 'tube 'flut-bonk 'flut-attack 'racer)
(send-event arg0 'get-attack-count 1)
(when (logtest? (-> self draw status) (draw-status was-drawn))
(increment-success-for-hint (game-text-id sidekick-speech-hint-crate-steel))
(increment-success-for-hint (game-text-id sidekick-hint-crate-steel))
(level-hint-spawn
(game-text-id sidekick-speech-crate-steel-break1)
(game-text-id sidekick-hint-crate-steel-break1)
"sksp0004"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id sidekick-speech-crate-steel-break2)
(game-text-id sidekick-hint-crate-steel-break2)
"sksp009b"
(the-as entity #f)
*entity-pool*
@ -611,7 +611,7 @@
(else
(when (and (!= s4-0 (-> self incomming-attack-id)) (= (-> self root-override trans y) (-> self base y)))
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-steel)
(game-text-id sidekick-hint-crate-steel)
"sksp0006"
(the-as entity #f)
*entity-pool*
@ -632,14 +632,14 @@
(send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'darkeco))))
(when (= (-> arg0 type) target)
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-darkeco2)
(game-text-id sidekick-hint-crate-darkeco2)
"sksp009c"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id sidekick-speech-hint-crate-darkeco1)
(game-text-id sidekick-hint-crate-darkeco1)
"sksp0002"
(the-as entity #f)
*entity-pool*
@ -648,7 +648,7 @@
(case (-> (level-get-target-inside *level*) name)
(('rolling)
(level-hint-spawn
(game-text-id sidekick-speech-hint-rolling-crate-darkeco)
(game-text-id sidekick-hint-crate-darkeco-rolling)
"sksp0110"
(the-as entity #f)
*entity-pool*
@ -657,14 +657,14 @@
)
(('firecanyon)
(level-hint-spawn
(game-text-id daxter-you-are-trying-to-avoid-dark-eco)
(game-text-id firecanyon-crate-darkeco2)
"sksp0082"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id daxter-maybe-i-should-drive)
(game-text-id firecanyon-crate-darkeco1)
"sksp0081"
(the-as entity #f)
*entity-pool*

View File

@ -302,7 +302,7 @@
(('money)
(if (and (< 0.0 amount) (= (+ (-> obj money) amount) (-> *GAME-bank* money-task-inc)))
(level-hint-spawn
(game-text-id MISSING-orb-hint)
(game-text-id sidekick-reminder-money)
"sksp0014"
(the-as entity #f)
*entity-pool*

View File

@ -1300,7 +1300,7 @@
(let ((s5-2 print-game-text))
((the-as (function object string object none) format)
(clear *temp-string*)
(lookup-text! *common-text* (game-text-id do-not-remove-mem-card) #f)
(lookup-text! *common-text* (game-text-id memcard-do-not-remove) #f)
1
)
(s5-2 *temp-string* gp-1 #f 128 22)

View File

@ -2029,7 +2029,7 @@
(not (send-event *target* 'query 'powerup (pickup-type eco-blue)))
)
(level-hint-spawn
(game-text-id daxter-launcher-no-eco)
(game-text-id sidekick-hint-launcher)
"sksp0035"
(the-as entity #f)
*entity-pool*

View File

@ -4,22 +4,22 @@
;; failed to figure out what this is:
(set! (-> *game-info* hint-control) (new 'static 'boxed-array :type level-hint-control
(new 'static 'level-hint-control
:id (game-text-id sage-voicebox-hint-crate-iron)
:id (game-text-id training-ironcrate)
:num-attempts-before-playing 1
:num-success-before-killing 3
)
(new 'static 'level-hint-control
:id (game-text-id training-more-eco-more-time)
:id (game-text-id training-eco-reminder)
:num-attempts-before-playing 3
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id sidekick-speech-hint-crate-iron)
:id (game-text-id sidekick-hint-crate-iron)
:num-attempts-before-playing 3
:num-success-before-killing 3
)
(new 'static 'level-hint-control
:id (game-text-id sidekick-speech-hint-crate-steel)
:id (game-text-id sidekick-hint-crate-steel)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
@ -35,24 +35,24 @@
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 3)
:id (game-text-id beach-eco-rock-increment)
:id (game-text-id sidekick-hint-ecorocks)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id jungle-mirrors-break-the-mirror-jak)
:id (game-text-id sidekick-hint-reflector-mirror)
:num-attempts-before-playing 1
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 3)
:id (game-text-id jungle-precursorbridge-hint)
:id (game-text-id sidekick-hint-precurbridge)
:num-attempts-before-playing 1
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id misty-teetertotter-bonk-dax-tutorial)
:id (game-text-id misty-teetertotter)
:num-attempts-before-playing 3
:num-success-before-killing 1
)
@ -64,7 +64,7 @@
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id rolling-dark-plants-hint)
:id (game-text-id rolling-plants-hint-eco-green)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
@ -91,7 +91,7 @@
:num-success-before-killing 2
)
(new 'static 'level-hint-control
:id (game-text-id swamp-tethers-advice-hint)
:id (game-text-id swamp-tetherrock-eco-yellow-hint)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
@ -102,40 +102,40 @@
:num-success-before-killing 1
)
(new 'static 'level-hint-control
:id (game-text-id sunken-take-it-easy-hot-pipes)
:id (game-text-id sunken-hotpipes)
:num-attempts-before-playing 3
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id ram-boss-red-eco-hint)
:id (game-text-id snow-ram-boss-red-eco-hint)
:num-attempts-before-playing 5
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 3)
:id (game-text-id darkcave-light-crystal-hint)
:id (game-text-id darkcave-light-hint)
:num-attempts-before-playing 1
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id daxter-maybe-you-can-shoot-better-goggles)
:id (game-text-id cave-gnawers-look-around)
:num-attempts-before-playing 4
:num-success-before-killing -1
)
(new 'static 'level-hint-control
:id (game-text-id lavatube-shoot-the-spheres)
:id (game-text-id lavatube-balls)
:num-attempts-before-playing 1
:num-success-before-killing 2
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id citadel-break-generator-hint)
:id (game-text-id citadel-generator)
:num-attempts-before-playing 1
:num-success-before-killing 1
)
(new 'static 'level-hint-control
:delay-before-playing (seconds 5)
:id (game-text-id citadel-break-generators-reminder)
:id (game-text-id citadel-generator-no-mushroom)
:num-attempts-before-playing 1
:num-success-before-killing 1
)

View File

@ -1404,7 +1404,7 @@
(let ((gp-0 (the-as handle #f)))
(ja-channel-push! 1 (seconds 0.075))
(level-hint-spawn
(game-text-id daxter-you-can-shoot-with-yellow-eco)
(game-text-id swamp-eco-yellow-first-use)
"sksp0145"
(the-as entity #f)
*entity-pool*
@ -1413,7 +1413,7 @@
(case (-> (level-get-target-inside *level*) name)
(('maincave)
(level-hint-spawn
(game-text-id daxter-maybe-you-can-shoot-better-goggles)
(game-text-id cave-gnawers-look-around)
"sksp0328"
(the-as entity #f)
*entity-pool*

View File

@ -1380,14 +1380,14 @@
:enter (behavior ((arg0 float) (arg1 float) (arg2 surface))
(when (= (-> self control unknown-symbol40) 'launch)
(level-hint-spawn
(game-text-id daxter-screaming-jump)
(game-text-id sidekick-launcher1)
"sksp009d"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id daxter-wahoo-jump)
(game-text-id sidekick-launcher2)
"sksp009e"
(the-as entity #f)
*entity-pool*
@ -1396,14 +1396,14 @@
(case (-> (level-get-target-inside *level*) name)
(('citadel)
(level-hint-spawn
(game-text-id daxter-land-on-the-next-launcher)
(game-text-id citadel-launcher2)
"sksp0393"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id daxter-dont-miss-the-next-launcher)
(game-text-id citadel-launcher)
"sksp0388"
(the-as entity #f)
*entity-pool*
@ -1996,7 +1996,7 @@
(dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 74)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(level-hint-spawn
(game-text-id red-eco-tutorial)
(game-text-id misty-eco-red-first-use)
"sksp0072"
(the-as entity #f)
*entity-pool*
@ -2193,7 +2193,7 @@
(dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(level-hint-spawn
(game-text-id red-eco-tutorial)
(game-text-id misty-eco-red-first-use)
"sksp0072"
(the-as entity #f)
*entity-pool*
@ -2420,7 +2420,7 @@
(dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 70)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(level-hint-spawn
(game-text-id red-eco-tutorial)
(game-text-id misty-eco-red-first-use)
"sksp0072"
(the-as entity #f)
*entity-pool*

View File

@ -366,7 +366,7 @@
(set! (-> v1-2 height) (the float 55))
)
(set! (-> arg0 flags) (font-flags shadow kerning middle left large))
(let ((s4-0 (game-text-id card-not-formatted-title)))
(let ((s4-0 (game-text-id memcard-not-formatted-title)))
(case (-> obj display-state)
(((progress-screen memcard-no-space))
(set! s4-0 (game-text-id memcard-no-space))
@ -438,7 +438,7 @@
)
(set! (-> arg0 flags) (font-flags shadow kerning middle left large))
(let ((s4-0 print-game-text-scaled))
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id card-not-formatted-title) #f) 1)
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id memcard-not-formatted-title) #f) 1)
(s4-0 *temp-string* (-> obj transition-percentage-invert) arg0 128)
)
(set! (-> arg0 origin x) (the float (- 20 (-> obj left-x-offset))))
@ -450,7 +450,7 @@
(set! (-> v1-8 height) (the float 40))
)
(print-game-text-scaled
(lookup-text! *common-text* (game-text-id card-not-formatted-msg) #f)
(lookup-text! *common-text* (game-text-id memcard-not-formatted-msg) #f)
(-> obj transition-percentage-invert)
arg0
128
@ -590,7 +590,7 @@
(set! (-> v1-23 height) (the float 75))
)
(let ((s4-1 print-game-text-scaled))
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id do-not-remove-mem-card) #f) 1)
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id memcard-do-not-remove) #f) 1)
(s4-1 *temp-string* (-> obj transition-percentage-invert) arg0 128)
)
0

View File

@ -356,9 +356,9 @@
(new 'static 'task-info-data
:task-id (game-task village1-uncle-money)
:task-name (new 'static 'array game-text-id 4
(game-text-id vollage1-uncle-money)
(game-text-id vollage1-uncle-money)
(game-text-id vollage1-uncle-money)
(game-text-id village1-uncle-money)
(game-text-id village1-uncle-money)
(game-text-id village1-uncle-money)
(game-text-id zero)
)
)
@ -643,7 +643,7 @@
)
)
(new 'static 'level-tasks-info
:level-name-id (game-text-id fire-canyon-level-name)
:level-name-id (game-text-id firecanyon-level-name)
:text-group-index 5
:nb-of-tasks 2
:buzzer-task-index 1
@ -651,18 +651,18 @@
(new 'static 'task-info-data
:task-id (game-task firecanyon-end)
:task-name (new 'static 'array game-text-id 4
(game-text-id fire-canyon-end)
(game-text-id fire-canyon-end)
(game-text-id fire-canyon-end)
(game-text-id firecanyon-end)
(game-text-id firecanyon-end)
(game-text-id firecanyon-end)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task firecanyon-buzzer)
:task-name (new 'static 'array game-text-id 4
(game-text-id fire-canyon-buzzer)
(game-text-id fire-canyon-buzzer)
(game-text-id fire-canyon-buzzer)
(game-text-id firecanyon-buzzer)
(game-text-id firecanyon-buzzer)
(game-text-id firecanyon-buzzer)
(game-text-id zero)
)
)
@ -722,9 +722,9 @@
(new 'static 'task-info-data
:task-id (game-task village2-buzzer)
:task-name (new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -757,9 +757,9 @@
(new 'static 'task-info-data
:task-id (game-task sunken-slide)
:task-name (new 'static 'array game-text-id 4
(game-text-id sunken-bottom)
(game-text-id sunken-bottom)
(game-text-id sunken-bottom)
(game-text-id sunken-slide)
(game-text-id sunken-slide)
(game-text-id sunken-slide)
(game-text-id zero)
)
)
@ -793,18 +793,18 @@
(new 'static 'task-info-data
:task-id (game-task sunken-spinning-room)
:task-name (new 'static 'array game-text-id 4
(game-text-id reach-center)
(game-text-id reach-center)
(game-text-id reach-center)
(game-text-id sunken-spinning-room)
(game-text-id sunken-spinning-room)
(game-text-id sunken-spinning-room)
(game-text-id zero)
)
)
(new 'static 'task-info-data
:task-id (game-task sunken-buzzer)
:task-name (new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -882,9 +882,9 @@
(new 'static 'task-info-data
:task-id (game-task swamp-buzzer)
:task-name (new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -962,9 +962,9 @@
(new 'static 'task-info-data
:task-id (game-task rolling-buzzer)
:task-name (new 'static 'array game-text-id 4
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id unknown-buzzers)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id generic-buzzer)
(game-text-id zero)
)
)
@ -1095,7 +1095,7 @@
)
)
(new 'static 'level-tasks-info
:level-name-id (game-text-id snowy-level-name)
:level-name-id (game-text-id snow-level-name)
:text-group-index 3
:nb-of-tasks 8
:buzzer-task-index 7
@ -1130,9 +1130,9 @@
(new 'static 'task-info-data
:task-id (game-task snow-cage)
:task-name (new 'static 'array game-text-id 4
(game-text-id snow-frozen-crate)
(game-text-id snow-frozen-crate)
(game-text-id snow-frozen-crate)
(game-text-id snow-cage)
(game-text-id snow-cage)
(game-text-id snow-cage)
(game-text-id zero)
)
)
@ -1148,9 +1148,9 @@
(new 'static 'task-info-data
:task-id (game-task snow-ball)
:task-name (new 'static 'array game-text-id 4
(game-text-id snow-open-door)
(game-text-id snow-open-door)
(game-text-id snow-open-door)
(game-text-id snow-ball)
(game-text-id snow-ball)
(game-text-id snow-ball)
(game-text-id zero)
)
)

View File

@ -602,7 +602,7 @@
(case arg2
(('attack)
(sound-play "cannon-shot")
(increment-success-for-hint (game-text-id beach-eco-rock-increment))
(increment-success-for-hint (game-text-id sidekick-hint-ecorocks))
(go ecoventrock-break #f)
)
)

View File

@ -1280,7 +1280,7 @@
(case (-> obj targetnum)
((1)
(level-hint-spawn
(game-text-id beach-seagull-chased-one)
(game-text-id sidekick-seagulls1)
"sksp0020"
(the-as entity #f)
*entity-pool*
@ -1289,7 +1289,7 @@
)
((2)
(level-hint-spawn
(game-text-id beach-seagull-chased-two)
(game-text-id sidekick-seagulls2)
"sksp0022"
(the-as entity #f)
*entity-pool*
@ -1298,7 +1298,7 @@
)
((3)
(level-hint-spawn
(game-text-id beach-seagull-chased-three)
(game-text-id sidekick-seagulls3)
"sksp0023"
(the-as entity #f)
*entity-pool*
@ -1307,7 +1307,7 @@
)
((4)
(level-hint-spawn
(game-text-id beach-seagull-chased-four)
(game-text-id sidekick-seagulls4)
"sksp0024"
(the-as entity #f)
*entity-pool*

View File

@ -1543,8 +1543,8 @@
(case arg2
(('attack)
(if (-> self mushroom)
(increment-success-for-hint (game-text-id citadel-break-generator-hint))
(increment-success-for-hint (game-text-id citadel-break-generators-reminder))
(increment-success-for-hint (game-text-id citadel-generator))
(increment-success-for-hint (game-text-id citadel-generator-no-mushroom))
)
(go citb-generator-break)
)
@ -1572,14 +1572,14 @@
(when (and *target* (>= 32768.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(if (-> self mushroom)
(level-hint-spawn
(game-text-id citadel-break-generator-hint)
(game-text-id citadel-generator)
"sksp0381"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(game-text-id citadel-break-generators-reminder)
(game-text-id citadel-generator-no-mushroom)
"sksp0384"
(the-as entity #f)
*entity-pool*
@ -1855,13 +1855,7 @@
(suspend)
)
)
(level-hint-spawn
(game-text-id citadel-climb-plat-hint)
"sksp0387"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (game-text-id citadel-plat) "sksp0387" (the-as entity #f) *entity-pool* (game-task none))
(go citadelcam-idle)
(none)
)
@ -1898,13 +1892,7 @@
(defstate battlecontroller-play-intro-camera (citb-battlecontroller)
:virtual #t
:code (behavior ()
(level-hint-spawn
(game-text-id citadel-lurker-bunny-alert)
"sksp0383"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (game-text-id citadel-battle) "sksp0383" (the-as entity #f) *entity-pool* (game-task none))
(suspend)
(let ((gp-1 (ppointer->handle (process-spawn
pov-camera

View File

@ -447,7 +447,7 @@ battlecontroller-default-event-handler
(case (-> (level-get-target-inside *level*) name)
(('citadel)
(level-hint-spawn
(game-text-id misty-battle-finished)
(game-text-id citadel-battle-end)
"sksp0378"
(the-as entity #f)
*entity-pool*

View File

@ -84,13 +84,7 @@
(if (and *target*
(>= (-> self notice-dist) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
)
(level-hint-spawn
(game-text-id daxter-blue-eco-plat-tutorial)
"sksp0073"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (game-text-id misty-eco-plat) "sksp0073" (the-as entity #f) *entity-pool* (game-task none))
)
(none)
)

View File

@ -125,7 +125,7 @@
:trans (behavior ()
(if (and *target* (>= 40960.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id darkcave-light-crystal-hint)
(game-text-id darkcave-light-hint)
"sksp0333"
(the-as entity #f)
*entity-pool*
@ -204,7 +204,7 @@
(update-connected-crystals! self)
(when (>= 0.0 f30-0)
(level-hint-spawn
(game-text-id darkcave-light-crystal-low-light-hint)
(game-text-id darkcave-light-end)
"sksp0332"
(the-as entity #f)
*entity-pool*

View File

@ -99,7 +99,7 @@
)
(hide-hud)
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (seen-text? *game-info* (game-text-id firecanyon-not-enough-cells))
(when (and (seen-text? *game-info* (game-text-id firecanyon-need-cells))
(hud-hidden?)
(can-grab-display? self)
(not (-> *setting-control* current hint))
@ -118,11 +118,11 @@
(set! (-> v1-28 scale) 0.8)
)
(set! (-> gp-0 flags) (font-flags shadow kerning middle large))
(print-game-text (lookup-text! *common-text* (game-text-id firecanyon-collect-cells-text) #f) gp-0 #f 128 22)
(print-game-text (lookup-text! *common-text* (game-text-id firecanyon-need-cells-text) #f) gp-0 #f 128 22)
)
)
(level-hint-spawn
(game-text-id firecanyon-not-enough-cells)
(game-text-id firecanyon-need-cells)
"asstvb09"
(the-as entity #f)
*entity-pool*

View File

@ -214,7 +214,7 @@
(when (logtest? (-> self draw status) (draw-status was-drawn))
(if (and *target* (>= 40960.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id flutflut-reminder)
(game-text-id swamp-flutflut-hint)
"sksp0160"
(the-as entity #f)
*entity-pool*

View File

@ -1414,7 +1414,7 @@
)
(('change-mode)
(level-hint-spawn
(game-text-id jungle-mirrors-tutorial)
(game-text-id sidekick-hint-periscope)
"sksp0049"
(the-as entity #f)
*entity-pool*
@ -1693,7 +1693,7 @@
(cond
((name= arg0 "periscope-11")
(level-hint-spawn
(game-text-id jungle-mirrors-follow-the-beam)
(game-text-id sidekick-hint-periscope3)
"sksp0053"
(the-as entity #f)
*entity-pool*
@ -1702,7 +1702,7 @@
)
((name= arg0 "periscope-12")
(level-hint-spawn
(game-text-id jungle-mirrors-go-to-the-next-tower)
(game-text-id sidekick-hint-periscope2)
"sksp0052"
(the-as entity #f)
*entity-pool*
@ -1711,7 +1711,7 @@
)
((name= arg0 "periscope-15")
(level-hint-spawn
(game-text-id jungle-mirrors-completion-talk-to-mayor)
(game-text-id jungle-lurkerm-resolution)
"sksp0018"
(the-as entity #f)
*entity-pool*
@ -1975,9 +1975,9 @@
1.0
)
(when (and *target* (>= 24576.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(start-hint-timer (game-text-id jungle-mirrors-break-the-mirror-jak))
(start-hint-timer (game-text-id sidekick-hint-reflector-mirror))
(level-hint-spawn
(game-text-id jungle-mirrors-break-the-mirror-jak)
(game-text-id sidekick-hint-reflector-mirror)
"sksp0050"
(the-as entity #f)
*entity-pool*

View File

@ -807,7 +807,7 @@
)
(else
(level-hint-spawn
(game-text-id jungle-precursorbridge-hint)
(game-text-id sidekick-hint-precurbridge)
"sksp0039"
(the-as entity #f)
*entity-pool*
@ -1147,7 +1147,7 @@
(>= (-> self thresh w) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
)
(level-hint-spawn
(game-text-id jungle-maindoor-hint)
(game-text-id sidekick-hint-rounddoor)
"sksp0038"
(the-as entity #f)
*entity-pool*

View File

@ -281,7 +281,7 @@
)
(send-event *camera* 'blend-from-as-fixed)
(level-hint-spawn
(game-text-id jungleb-eco-vents-opened)
(game-text-id jungle-eggtop-resolution)
"asstvb02"
(the-as entity #f)
*entity-pool*

View File

@ -83,7 +83,7 @@
)
(hide-hud)
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (seen-text? *game-info* (game-text-id assistant-lavatube-powercell-hint))
(when (and (seen-text? *game-info* (game-text-id assistant-lavatube-need-cells))
(hud-hidden?)
(can-grab-display? self)
(not (-> *setting-control* current hint))
@ -102,11 +102,17 @@
(set! (-> v1-28 scale) 0.8)
)
(set! (-> gp-0 flags) (font-flags shadow kerning middle large))
(print-game-text (lookup-text! *common-text* (game-text-id lavatube-powercell-req-text) #f) gp-0 #f 128 22)
(print-game-text
(lookup-text! *common-text* (game-text-id assistant-lavatube-need-cells-text) #f)
gp-0
#f
128
22
)
)
)
(level-hint-spawn
(game-text-id assistant-lavatube-powercell-hint)
(game-text-id assistant-lavatube-need-cells)
"asstva74"
(the-as entity #f)
*entity-pool*

View File

@ -720,13 +720,7 @@
:code (behavior ()
(loop
(if (and *target* (>= 307200.0 (vector-vector-distance (-> self root trans) (-> *target* control trans))))
(level-hint-spawn
(game-text-id lavatube-shoot-the-spheres)
"sksp0375"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (game-text-id lavatube-balls) "sksp0375" (the-as entity #f) *entity-pool* (game-task none))
)
(ja-no-eval :group! (ja-group) :num! (seek!) :frame-num 0.0)
(until (ja-done? 0)
@ -871,7 +865,7 @@
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'attack)
(when (and (>= arg1 2) (= (-> arg3 param 1) 'eco-yellow))
(increment-success-for-hint (game-text-id lavatube-shoot-the-spheres))
(increment-success-for-hint (game-text-id lavatube-balls))
(sound-play "dcrate-break")
(process-spawn
part-tracker
@ -1405,7 +1399,7 @@
)
(close-specific-task! (game-task lavatube-balls) (task-status need-resolution))
(level-hint-spawn
(game-text-id lavatube-spheres-door-open)
(game-text-id lavatube-balls-resolution)
"sksp0378"
(the-as entity #f)
*entity-pool*

View File

@ -451,7 +451,7 @@
(('touch 'attack)
(if (= (-> arg0 type) target)
(level-hint-spawn
(game-text-id dark-crystal-run-away)
(game-text-id cave-dark-crystals-flee)
"sksp0334"
(the-as entity #f)
*entity-pool*
@ -566,7 +566,7 @@
(logclear! (-> self mask) (process-mask actor-pause))
(clear-collide-with-as (-> self root-override))
(level-hint-spawn
(game-text-id dark-crystal-last-one)
(game-text-id cave-dark-crystals-resolution)
"sksp0327"
(the-as entity #f)
*entity-pool*

View File

@ -526,7 +526,7 @@
(set! (-> self explosion-force-position quad) (-> a0-10 prim-core world-sphere quad))
(if (send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'balloonlurker))))
(level-hint-spawn
(game-text-id misty-daxter-hit-lurkers-not-mines)
(game-text-id misty-bike-mines-hint)
"sksp0063"
(the-as entity #f)
*entity-pool*

View File

@ -56,7 +56,7 @@
(('flop)
(when (target-on-end-of-teetertotter? self)
(set! (-> self in-launch-window) #f)
(increment-success-for-hint (game-text-id misty-teetertotter-bonk-dax-tutorial))
(increment-success-for-hint (game-text-id misty-teetertotter))
(go teetertotter-launch)
)
)
@ -65,7 +65,7 @@
(('bonk)
(when (target-on-end-of-teetertotter? self)
(level-hint-spawn
(game-text-id misty-teetertotter-bonk-dax-tutorial)
(game-text-id misty-teetertotter)
"sksp0070"
(the-as entity #f)
*entity-pool*

View File

@ -1775,7 +1775,13 @@
(and (zero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x))) (nonzero? gp-0))
)
(let ((gp-1 (+ 50 (the int (* 0.16666667 (the float gp-0))))))
(level-hint-spawn (game-text-id daxter-get-some) "sksp009f" (the-as entity #f) *entity-pool* (game-task none))
(level-hint-spawn
(game-text-id sidekick-mistycannon)
"sksp009f"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(dummy-22 self (* 4096.0 (the float gp-1)) 2.0 40960.0)
)
(set! (-> self state-time) (-> *display* base-frame-counter))

View File

@ -188,7 +188,7 @@
(close-specific-task! (game-task plunger-lurker-hit) (task-status need-hint))
(process-entity-status! self (entity-perm-status complete) #t)
(level-hint-spawn
(game-text-id sidekick-speech-hint-ogre-race)
(game-text-id ogre-plunger-lurker-resolution)
"sksp0321"
(the-as entity #f)
*entity-pool*
@ -984,13 +984,7 @@
(suspend)
)
)
(level-hint-spawn
(game-text-id assistant-voicebox-intro-ogre-race)
"asstvb24"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (game-text-id ogre-race-hint) "asstvb24" (the-as entity #f) *entity-pool* (game-task none))
(none)
)
:to self

View File

@ -333,13 +333,7 @@
(case (-> (level-get-target-inside *level*) name)
(('misty)
(close-specific-task! (game-task misty-bike) (task-status need-reminder-a))
(level-hint-spawn
(game-text-id misty-racer-hit-the-ballon-lurkers)
"sksp0062"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (game-text-id misty-bike-hint) "sksp0062" (the-as entity #f) *entity-pool* (game-task none))
)
)
)

Some files were not shown because too many files have changed in this diff Show More