decomp: support part-tracker-spawn in jak2, part group constants (#4082)

This commit is contained in:
Hat Kid
2025-11-20 16:22:29 +01:00
committed by GitHub
parent c9d1460819
commit 0385c76811
786 changed files with 9899 additions and 13868 deletions
+10
View File
@@ -655,6 +655,16 @@ std::optional<std::string> Env::get_art_elt_name(int idx) const {
}
}
std::optional<std::string> Env::get_part_group_name(int id) const {
ASSERT(dts);
auto it = dts->part_group_table.find(id);
if (it == dts->part_group_table.end()) {
return {};
} else {
return it->second;
}
}
std::optional<std::string> Env::get_joint_node_name(int idx) const {
ASSERT(dts);
auto it = dts->jg_info.find(joint_geo());
+1
View File
@@ -166,6 +166,7 @@ class Env {
}
const std::string& joint_geo() const { return m_joint_geo; }
std::optional<std::string> get_joint_node_name(int idx) const;
std::optional<std::string> get_part_group_name(int idx) const;
void set_remap_for_function(const Function& func);
void set_remap_for_method(const TypeSpec& ts);
+1
View File
@@ -1304,6 +1304,7 @@ class DerefElement : public FormElement {
private:
ConstantTokenElement* try_as_art_const(const Env& env, FormPool& pool);
ConstantTokenElement* try_as_part_group_const(const Env& env, FormPool& pool);
GenericElement* try_as_joint_node_index(const Env& env, FormPool& pool);
GenericElement* try_as_curtime(const Env& env, FormPool& pool);
GenericElement* try_as_seconds_per_frame(const Env& env, FormPool& pool);
+28
View File
@@ -4364,6 +4364,28 @@ ConstantTokenElement* DerefElement::try_as_art_const(const Env& env, FormPool& p
return nullptr;
}
ConstantTokenElement* DerefElement::try_as_part_group_const(const Env& env, FormPool& pool) {
auto mr = match(Matcher::deref(Matcher::symbol("*part-group-id-table*"), false,
{DerefTokenMatcher::any_integer(0)}),
this);
if (mr.matched) {
auto group_name = env.get_part_group_name(mr.maps.ints.at(0));
// already defined in all games
if (group_name == "group-rain-screend-drop-real") {
return nullptr;
}
if (group_name) {
return pool.alloc_element<ConstantTokenElement>(*group_name);
} else {
lg::error("function `{}`: did not find part group name for id {}", env.func->name(),
mr.maps.ints.at(0));
}
}
return nullptr;
}
GenericElement* DerefElement::try_as_joint_node_index(const Env& env, FormPool& pool) {
auto mr =
match(Matcher::deref(Matcher::s6(), false,
@@ -4461,6 +4483,12 @@ void DerefElement::update_from_stack(const Env& env,
return;
}
auto as_part_group = try_as_part_group_const(env, pool);
if (as_part_group) {
result->push_back(as_part_group);
return;
}
auto as_jnode = try_as_joint_node_index(env, pool);
if (as_jnode) {
result->push_back(as_jnode);
+28
View File
@@ -1125,6 +1125,34 @@ void ObjectFileDB::dump_art_info(const fs::path& output_dir) {
lg::info("Written art group info: in {:.2f} ms", timer.getMs());
}
void ObjectFileDB::dump_part_group_table(
const fs::path& output_dir,
const std::unordered_map<u32, std::string>& part_group_table) {
lg::info("Writing part group table...");
Timer timer;
if (!part_group_table.empty()) {
file_util::create_dir_if_needed(output_dir / "import");
}
auto ptable_fpath = output_dir / "import" / "part-groups.gc";
std::string result;
for (const auto& [id, name] : part_group_table) {
result += fmt::format("(defconstant {} (-> *part-group-id-table* {}))", name, id);
result += "\n";
}
file_util::write_text_file(ptable_fpath, result);
auto ptable_dump_fpath = output_dir / "dump" / "part-groups.min.json";
nlohmann::json json = part_group_table;
file_util::create_dir_if_needed_for_file(ptable_dump_fpath);
file_util::write_text_file(ptable_dump_fpath, json.dump(-1));
lg::info("Written part group table in {:.2f} ms", timer.getMs());
}
void ObjectFileDB::dump_raw_objects(const fs::path& output_dir) {
for_each_obj([&](ObjectFileData& data) {
auto dest = output_dir / data.to_unique_name();
+4 -2
View File
@@ -190,6 +190,8 @@ class ObjectFileDB {
void extract_art_info();
void dump_art_info(const fs::path& output_dir);
void dump_raw_objects(const fs::path& output_dir);
void dump_part_group_table(const fs::path& output_dir,
const std::unordered_map<u32, std::string>& part_group_table);
void write_object_file_words(const fs::path& output_dir, bool dump_data, bool dump_code);
void write_disassembly(const fs::path& output_dir,
bool disassemble_data,
@@ -199,12 +201,12 @@ class ObjectFileDB {
void process_object_file_data(
ObjectFileData& data,
const fs::path& output_dir,
const Config& config,
Config& config,
const std::unordered_set<std::string>& skip_functions,
const std::unordered_map<std::string, std::unordered_set<std::string>>& skip_states);
void analyze_functions_ir2(
const fs::path& output_dir,
const Config& config,
Config& config,
const std::optional<std::function<void(std::string)>> prefile_callback,
const std::optional<std::function<void()>> postfile_callback,
const std::unordered_set<std::string>& skip_functions,
+4 -3
View File
@@ -38,7 +38,7 @@ namespace decompiler {
void ObjectFileDB::process_object_file_data(
ObjectFileData& data,
const fs::path& output_dir,
const Config& config,
Config& config,
const std::unordered_set<std::string>& skip_functions,
const std::unordered_map<std::string, std::unordered_set<std::string>>& skip_states) {
Timer file_timer;
@@ -50,7 +50,8 @@ void ObjectFileDB::process_object_file_data(
if (data.linked_data.functions_by_seg.size() == 3) {
enum { DEFPART, DEFSTATE, DEFSKELGROUP } step = DEFPART;
try {
run_defpartgroup(data.linked_data.functions_by_seg.at(TOP_LEVEL_SEGMENT).front());
run_defpartgroup(data.linked_data.functions_by_seg.at(TOP_LEVEL_SEGMENT).front(),
config.part_group_table);
step = DEFSTATE;
run_defstate(data.linked_data.functions_by_seg.at(TOP_LEVEL_SEGMENT).front(), skip_states);
step = DEFSKELGROUP;
@@ -126,7 +127,7 @@ void ObjectFileDB::process_object_file_data(
*/
void ObjectFileDB::analyze_functions_ir2(
const fs::path& output_dir,
const Config& config,
Config& config,
const std::optional<std::function<void(std::string)>> prefile_callback,
const std::optional<std::function<void()>> postfile_callback,
const std::unordered_set<std::string>& skip_functions,
+3 -1
View File
@@ -194,7 +194,8 @@ L80:
} // namespace
void run_defpartgroup(Function& top_level_func) {
void run_defpartgroup(Function& top_level_func,
std::unordered_map<u32, std::string>& part_group_table) {
auto& env = top_level_func.ir2.env;
auto& pool = *top_level_func.ir2.form_pool;
if (!top_level_func.ir2.top_form) {
@@ -233,6 +234,7 @@ void run_defpartgroup(Function& top_level_func) {
if (sym.get_str() == "*part-group-id-table*") {
DefpartgroupElement::StaticInfo group;
read_static_group_data(src, env, group);
part_group_table.emplace(id, group.name);
auto rewritten = pool.alloc_element<DefpartgroupElement>(group, id);
if (rewritten) {
fe = rewritten;
+2 -1
View File
@@ -3,5 +3,6 @@
#include "decompiler/Function/Function.h"
namespace decompiler {
void run_defpartgroup(Function& top_level_func);
void run_defpartgroup(Function& top_level_func,
std::unordered_map<u32, std::string>& part_group_table);
}
+149 -5
View File
@@ -1515,10 +1515,10 @@ FormElement* rewrite_joint_macro(LetElement* in, const Env& env, FormPool& pool)
args);
}
FormElement* rewrite_part_tracker_new(const std::string& type,
LetElement* in,
const Env& env,
FormPool& pool) {
FormElement* rewrite_part_tracker_new_jak3(const std::string& type,
LetElement* in,
const Env& env,
FormPool& pool) {
// (let ((s4-11 (get-process *default-dead-pool* part-tracker #x4000 0)))
// (when s4-11
// (let ((t9-26 (method-of-type part-tracker activate)))
@@ -1673,6 +1673,139 @@ FormElement* rewrite_part_tracker_new(const std::string& type,
->try_as_single_element();
}
FormElement* rewrite_part_tracker_new_jak2(const std::string& type,
LetElement* in,
const Env& env,
FormPool& pool) {
// (let ((s5-8 (get-process *default-dead-pool* part-tracker #x4000)))
// (when s5-8
// (let ((t9-17 (method-of-type part-tracker activate)))
// (t9-17 (the-as part-tracker s5-8) self (symbol->string (-> part-tracker symbol)) (the-as
// pointer #x70004000))
// )
// (let ((t9-18 run-function-in-process)
// (a0-34 s5-8)
// (a1-21 part-tracker-init)
// (a2-11 (-> *part-group-id-table* 126))
// (a3-9 0)
// (t0-6 #f)
// (t1-4 #f)
// (t2-4 #f)
// (t3-0 *launch-matrix*)
// )
// (set! (-> t3-0 trans quad) (-> self root trans quad))
// ((the-as (function object object object object object object object object none) t9-18)
// a0-34
// a1-21
// a2-11
// a3-9
// t0-6
// t1-4
// t2-4
// t3-0
// )
// )
// (-> s5-8 ppointer)
// )
// )
auto cond = dynamic_cast<CondNoElseElement*>(in->body()->at(0));
if (!cond) {
return nullptr;
}
auto when_body = cond->entries.at(0).body;
auto activate_let = dynamic_cast<LetElement*>(when_body->at(0));
if (!activate_let) {
return nullptr;
}
auto activate_matcher = Matcher::let(
false,
{LetEntryMatcher::any(Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::METHOD_OF_TYPE),
{Matcher::any(), Matcher::constant_token("activate")}),
0)},
{Matcher::func(Matcher::reg(Register(Reg::GPR, Reg::T9)),
{Matcher::any(), Matcher::any(1), Matcher::any(2), Matcher::any()})});
auto activate_mr = match(activate_matcher, when_body->at(0));
if (!activate_mr.matched) {
return nullptr;
}
auto name = activate_mr.maps.forms.find(2);
auto to = activate_mr.maps.forms.find(1);
auto params_let = dynamic_cast<LetElement*>(when_body->at(1));
if (!params_let) {
return nullptr;
}
auto params_matcher = Matcher::unmerged_let(
{
LetEntryMatcher::any(Matcher::symbol("run-function-in-process")),
LetEntryMatcher::any(Matcher::any()),
LetEntryMatcher::any(Matcher::symbol("part-tracker-init")),
LetEntryMatcher::any(Matcher::any(0)), // group
LetEntryMatcher::any(Matcher::any(1)), // duration
LetEntryMatcher::any(Matcher::any(2)), // callback
LetEntryMatcher::any(Matcher::any(3)), // userdata
LetEntryMatcher::any(Matcher::any(4)), // target
LetEntryMatcher::any(Matcher::any()) // *launch-matrix*
},
{Matcher::set(Matcher::any(), Matcher::any(5))});
auto params_mr = match(params_matcher, when_body->at(1));
if (!params_mr.matched) {
return nullptr;
}
std::vector<Form*> macro_args;
macro_args.push_back(pool.form<ConstantTokenElement>(":to"));
macro_args.push_back(to->second);
auto name_str = dynamic_cast<StringConstantElement*>(name->second->try_as_single_element());
if (name_str && name_str->value() != type) {
macro_args.push_back(pool.form<ConstantTokenElement>(":name"));
macro_args.push_back(name->second);
}
auto group = params_mr.maps.forms.find(0);
macro_args.push_back(pool.form<ConstantTokenElement>(":group"));
macro_args.push_back(group->second);
auto duration = params_mr.maps.forms.find(1);
if (duration->second->to_string(env) != "0") {
macro_args.push_back(pool.form<ConstantTokenElement>(":duration"));
macro_args.push_back(duration->second);
}
auto callback = params_mr.maps.forms.find(2);
if (callback->second->to_string(env) != "#f") {
macro_args.push_back(pool.form<ConstantTokenElement>(":callback"));
macro_args.push_back(callback->second);
}
auto userdata = params_mr.maps.forms.find(3);
if (userdata->second->to_string(env) != "#f") {
macro_args.push_back(pool.form<ConstantTokenElement>(":userdata"));
macro_args.push_back(userdata->second);
}
auto target = params_mr.maps.forms.find(4);
if (target->second->to_string(env) != "#f") {
macro_args.push_back(pool.form<ConstantTokenElement>(":target"));
macro_args.push_back(target->second);
}
auto mat_joint = params_mr.maps.forms.find(5);
auto as_deref = mat_joint->second->try_as_element<DerefElement>();
if (!as_deref) {
return nullptr;
}
if (!as_deref->tokens().back().is_field_name("quad")) {
return nullptr;
}
as_deref->tokens().pop_back();
macro_args.push_back(pool.form<ConstantTokenElement>(":mat-joint"));
if (as_deref->tokens().empty()) {
macro_args.push_back(as_deref->base());
} else {
macro_args.push_back(
pool.form<DerefElement>(as_deref->base(), as_deref->is_addr_of(), as_deref->tokens()));
}
return pool
.form<GenericElement>(
GenericOperator::make_function(pool.form<ConstantTokenElement>("part-tracker-spawn")),
macro_args)
->try_as_single_element();
}
FormElement* rewrite_call_parent_state_handler(LetElement* in, const Env& env, FormPool& pool) {
// (let ((t9-3 (-> (find-parent-state) code)))
// (if t9-3
@@ -1794,7 +1927,18 @@ FormElement* rewrite_proc_new(LetElement* in, const Env& env, FormPool& pool) {
// part-tracker-spawn macro for jak 3
if (env.version >= GameVersion::Jak3 &&
(proc_type == "part-tracker" || proc_type == "part-tracker-subsampler")) {
return rewrite_part_tracker_new(proc_type, in, env, pool);
auto form = rewrite_part_tracker_new_jak3(proc_type, in, env, pool);
if (form) {
return form;
}
}
// part-tracker-spawn macro for jak 2
if (env.version == GameVersion::Jak2 && proc_type == "part-tracker") {
auto form = rewrite_part_tracker_new_jak2(proc_type, in, env, pool);
if (form) {
return form;
}
}
auto macro_form =
+10
View File
@@ -90,6 +90,14 @@ Config make_config_via_json(nlohmann::json& json) {
config.texture_info_dump = serialized;
}
if (json.contains("part_group_table_dump_file")) {
auto json_data = file_util::read_text_file(
file_util::get_file_path({json.at("part_group_table_dump_file").get<std::string>()}));
std::unordered_map<u32, std::string> serialized =
parse_commented_json(json_data, "part_group_table_dump_file");
config.part_group_table = serialized;
}
if (json.contains("obj_file_name_map_file")) {
config.obj_file_name_map_file = json.at("obj_file_name_map_file").get<std::string>();
}
@@ -112,9 +120,11 @@ Config make_config_via_json(nlohmann::json& json) {
if (json.contains("process_subtitle_images")) {
config.process_subtitle_images = json.at("process_subtitle_images").get<bool>();
}
config.process_part_group_table = json.at("process_part_group_table").get<bool>();
config.dump_art_group_info = json.at("dump_art_group_info").get<bool>();
config.dump_joint_geo_info = json.at("dump_joint_geo_info").get<bool>();
config.dump_tex_info = json.at("dump_tex_info").get<bool>();
config.dump_part_group_table = json.at("dump_part_group_table").get<bool>();
config.hexdump_code = json.at("hexdump_code").get<bool>();
config.hexdump_data = json.at("hexdump_data").get<bool>();
config.find_functions = json.at("find_functions").get<bool>();
+3
View File
@@ -119,9 +119,11 @@ struct Config {
bool process_art_groups = false;
bool process_subtitle_text = false;
bool process_subtitle_images = false;
bool process_part_group_table = false;
bool dump_art_group_info = false;
bool dump_joint_geo_info = false;
bool dump_tex_info = false;
bool dump_part_group_table = false;
bool rip_levels = false;
bool extract_collision = false;
bool find_functions = false;
@@ -185,6 +187,7 @@ struct Config {
std::unordered_map<u32, TexInfo> texture_info_dump;
std::unordered_map<std::string, std::string> joint_node_hacks;
std::unordered_map<std::string, int> process_stack_size_overrides;
std::unordered_map<u32, std::string> part_group_table;
std::unordered_map<std::string, std::vector<std::string>> import_deps_by_file;
+5
View File
@@ -46,12 +46,16 @@
"process_game_count": true,
// write goal imports for art groups
"process_art_groups": false,
// write goal imports for the part group table
"process_part_group_table": true,
// write out a json file containing the art info mapping, run this with all objects allowed
"dump_art_group_info": false,
// write out a json file containing the joint node mapping, run this with all objects allowed
"dump_joint_geo_info": false,
// write out a json file containing tpage and texture mappings, run with all objects allowed
"dump_tex_info": false,
// write out a json file containing the part group table, run with all objects allowed
"dump_part_group_table": false,
///////////////////////////
// WEIRD OPTIONS
@@ -100,6 +104,7 @@
"art_group_dump_file": "decompiler/config/jak1/ntsc_v1/art-group-info.min.json",
"joint_node_dump_file": "decompiler/config/jak1/ntsc_v1/joint-node-info.min.json",
"tex_dump_file": "decompiler/config/jak1/ntsc_v1/tex-info.min.json",
"part_group_table_dump_file": "decompiler/config/jak1/ntsc_v1/part-groups.min.json",
"process_stack_size_file": "decompiler/config/jak1/ntsc_v1/process_stack_size_overrides.jsonc",
// optional: a predetermined object file name map from a file.
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -30486,7 +30486,7 @@ Consists of a header and a list of [[merc-effect]]s."
(define-extern swingpole-init (function int object :behavior swingpole))
(define-extern manipy-post (function none :behavior manipy))
(define-extern manipy-init (function vector entity-actor skeleton-group vector object none :behavior manipy)) ;; (function vector entity-actor skeleton-group vector none :behavior manipy)
(define-extern part-tracker-init (function sparticle-launch-group time-frame (function part-tracker none) (pointer process-drawable) process matrix none :behavior part-tracker))
(define-extern part-tracker-init (function sparticle-launch-group time-frame (function part-tracker none) uint process matrix none :behavior part-tracker))
(define-extern part-tracker-track-root (function sparticle-system sparticle-cpuinfo vector none))
(define-extern part-tracker-move-to-target (function part-tracker vector))
(define-extern part-tracker-track-target (function part-tracker vector))
+5
View File
@@ -42,12 +42,16 @@
"process_game_count": true,
// write goal imports for art groups
"process_art_groups": false,
// write goal imports for the part group table
"process_part_group_table": true,
// write out a json file containing the art info mapping, run this with all objects allowed
"dump_art_group_info": false,
// write out a json file containing the joint node mapping, run this with all objects allowed
"dump_joint_geo_info": false,
// write out a json file containing tpage and texture mappings, run with all objects allowed
"dump_tex_info": false,
// write out a json file containing the part group table, run with all objects allowed
"dump_part_group_table": false,
// set to false to skip adding .STR files to the decompiler database
"read_spools": false,
@@ -106,6 +110,7 @@
"art_group_dump_file": "decompiler/config/jak2/ntsc_v1/art-group-info.min.json",
"joint_node_dump_file": "decompiler/config/jak2/ntsc_v1/joint-node-info.min.json",
"tex_dump_file": "decompiler/config/jak2/ntsc_v1/tex-info.min.json",
"part_group_table_dump_file": "decompiler/config/jak2/ntsc_v1/part-groups.min.json",
"process_stack_size_file": "decompiler/config/jak2/ntsc_v1/process_stack_size_overrides.jsonc",
// optional: a predetermined object file name map from a file.
File diff suppressed because one or more lines are too long
+5
View File
@@ -42,12 +42,16 @@
"process_game_count": false,
// write goal imports for art groups
"process_art_groups": false,
// write goal imports for the part group table
"process_part_group_table": true,
// write out a json file containing the art info mapping, run this with all objects allowed
"dump_art_group_info": false,
// write out a json file containing the joint node mapping, run this with all objects allowed
"dump_joint_geo_info": false,
// write out a json file containing tpage and texture mappings, run with all objects allowed
"dump_tex_info": false,
// write out a json file containing the part group table, run with all objects allowed
"dump_part_group_table": false,
// set to false to skip adding .STR files to the decompiler database
"read_spools": true,
@@ -105,6 +109,7 @@
"art_group_dump_file": "decompiler/config/jak3/ntsc_v1/art-group-info.min.json",
"joint_node_dump_file": "decompiler/config/jak3/ntsc_v1/joint-node-info.min.json",
"tex_dump_file": "decompiler/config/jak3/ntsc_v1/tex-info.min.json",
"part_group_table_dump_file": "decompiler/config/jak3/ntsc_v1/part-groups.min.json",
"process_stack_size_file": "decompiler/config/jak3/ntsc_v1/process_stack_size_overrides.jsonc",
// optional: a predetermined object file name map from a file.
File diff suppressed because one or more lines are too long
+8
View File
@@ -165,6 +165,10 @@ int run_decompilation_process(decompiler::Config config,
return 1;
}
if (config.process_part_group_table && !config.part_group_table.empty()) {
db.dts.part_group_table = config.part_group_table;
}
if (config.process_tpages && !config.texture_info_dump.empty()) {
db.dts.textures = config.texture_info_dump;
}
@@ -190,6 +194,10 @@ int run_decompilation_process(decompiler::Config config,
db.dump_art_info(out_folder);
}
if (config.dump_part_group_table) {
db.dump_part_group_table(out_folder, config.part_group_table);
}
if (config.hexdump_code || config.hexdump_data) {
db.write_object_file_words(out_folder, config.hexdump_data, config.hexdump_code);
}
+1
View File
@@ -40,6 +40,7 @@ class DecompilerTypeSystem {
std::unordered_map<std::string, std::unordered_map<int, std::string>> art_group_info;
std::unordered_map<std::string, std::unordered_map<int, std::string>> jg_info;
std::unordered_map<u32, TexInfo> textures;
std::unordered_map<u32, std::string> part_group_table;
void add_symbol(const std::string& name) {
if (symbols.find(name) == symbols.end()) {
+40 -40
View File
@@ -132,32 +132,32 @@
(set! (-> this sound-name) #f)
(case arg0
(((pickup-type eco-yellow))
(set! (-> this eco-effect) (-> *part-group-id-table* 56))
(set! (-> this collect-effect) (-> *part-group-id-table* 68))
(set! (-> this collect-effect2) (-> *part-group-id-table* 57))
(set! (-> this eco-effect) group-eco-yellow)
(set! (-> this collect-effect) group-yellow-collect)
(set! (-> this collect-effect2) group-eco-yellow-collect)
(set! (-> this collect-effect-time) (seconds 0.5))
(set! (-> this sound-name) (static-sound-spec "yel-eco-idle" :fo-max 15)))
(((pickup-type eco-red))
(set! (-> this eco-effect) (-> *part-group-id-table* 48))
(set! (-> this collect-effect) (-> *part-group-id-table* 69))
(set! (-> this collect-effect2) (-> *part-group-id-table* 49))
(set! (-> this eco-effect) group-eco-red)
(set! (-> this collect-effect) group-red-collect)
(set! (-> this collect-effect2) group-eco-red-collect)
(set! (-> this collect-effect-time) (seconds 0.5))
(set! (-> this sound-name) (static-sound-spec "red-eco-idle" :fo-max 15)))
(((pickup-type eco-blue))
(set! (-> this eco-effect) (-> *part-group-id-table* 42))
(set! (-> this collect-effect) (-> *part-group-id-table* 67))
(set! (-> this collect-effect2) (-> *part-group-id-table* 43))
(set! (-> this eco-effect) group-eco-blue)
(set! (-> this collect-effect) group-blue-collect)
(set! (-> this collect-effect2) group-eco-blue-collect)
(set! (-> this collect-effect-time) (seconds 0.5))
(set! (-> this sound-name) (static-sound-spec "blue-eco-idle" :fo-max 15)))
(((pickup-type eco-green))
(set! (-> this eco-effect) (-> *part-group-id-table* 58))
(set! (-> this collect-effect) (-> *part-group-id-table* 66))
(set! (-> this collect-effect2) (-> *part-group-id-table* 61))
(set! (-> this eco-effect) group-eco-green)
(set! (-> this collect-effect) group-green-collect)
(set! (-> this collect-effect2) group-eco-green-collect)
(set! (-> this collect-effect-time) (seconds 0.5))
(set! (-> this sound-name) (static-sound-spec "green-eco-idle" :fo-max 15)))
(((pickup-type eco-pill))
(set! (-> this eco-effect) (-> *part-group-id-table* 59))
(set! (-> this collect-effect2) (-> *part-group-id-table* 60))
(set! (-> this eco-effect) group-eco-green-pill)
(set! (-> this collect-effect2) group-eco-green-pill-collect)
(set! (-> this collect-effect-time) (seconds 0.5))))
(set! (-> this part) (create-launch-control (-> this eco-effect) this))
(if (-> this sound-name) (set! (-> this sound) (new 'process 'ambient-sound (-> this sound-name) (-> this root trans))))
@@ -223,7 +223,7 @@
(when v1-3
(let ((a0-5 (-> self root root-prim prim-core))
(a1-2 (-> (the-as collide-shape v1-3) root-prim prim-core)))
(if (< (vector-vector-distance (the-as vector a0-5) (the-as vector a1-2)) (-> *FACT-bank* suck-suck-dist))
(if (< (vector-vector-distance (-> a0-5 world-sphere) (-> a1-2 world-sphere)) (-> *FACT-bank* suck-suck-dist))
(logior! (-> self flags) (collectable-flags suck))))))))
(none))
@@ -236,8 +236,8 @@
(when v1-6
(let ((s2-0 (-> self root root-prim prim-core))
(gp-2 (-> v1-6 root-prim prim-core)))
(if (and arg1 (rand-vu-percent? (the-as float 0.25))) (eco-blue-glow (the-as vector s2-0)))
(let ((f0-0 (vector-vector-distance (the-as vector s2-0) (the-as vector gp-2))))
(if (and arg1 (rand-vu-percent? (the-as float 0.25))) (eco-blue-glow (-> s2-0 world-sphere)))
(let ((f0-0 (vector-vector-distance (-> s2-0 world-sphere) (-> gp-2 world-sphere))))
(cond
((and arg3 (< f0-0 8192.0)) (return #t))
((begin
@@ -250,16 +250,16 @@
(+! (-> self speed w) (* 163840.0 (seconds-per-frame)))
(+! (-> self speed y) (* 291271.12 (seconds-per-frame)))
(set! (-> self speed y) (fmin (fmin 291271.12 (-> self speed y)) (-> self speed y)))
(let ((s5-2 (vector-! (new 'stack-no-clear 'vector) (-> self base) (the-as vector gp-2))))
(let ((s5-2 (vector-! (new 'stack-no-clear 'vector) (-> self base) (-> gp-2 world-sphere))))
(vector-normalize! s5-2 (fmax 0.0 (- (vector-length s5-2) (* (-> self speed w) (seconds-per-frame)))))
(vector-rotate-y! s5-2 s5-2 (* (-> self speed y) (-> self speed z) (seconds-per-frame)))
(set! (-> self suck-y-offset)
(* 2048.0 (sin (* 873.81335 (the float (mod (- (current-time) (-> self suck-time)) 75))))))
(vector+! (-> self base) (the-as vector gp-2) s5-2)))
(vector+! (-> self base) (-> gp-2 world-sphere) s5-2)))
((and arg2
(and (< (+ 4096.0 (-> *FACT-bank* suck-bounce-dist)) f0-0) (not (logtest? (-> self flags) (collectable-flags suck)))))
(go-virtual wait))
(arg1 (add-blue-shake (-> self root trans) (the-as vector s2-0) (the-as vector gp-2))))))))))
(arg1 (add-blue-shake (-> self root trans) (-> s2-0 world-sphere) (-> gp-2 world-sphere))))))))))
#f)
(defstate blocked (eco-collectable)
@@ -393,7 +393,7 @@
(logior! (-> self flags) (collectable-flags fading))
(logior! (-> self state-flags) (state-flags fade-out-particles))
(set! (-> gp-0 fade) (* 0.0033333334 (the float v1-10)))))))
(spawn gp-0 (the-as vector s5-0)))
(spawn gp-0 (-> s5-0 world-sphere)))
(if (nonzero? (-> self sound)) (update! (-> self sound)))
(suspend))))
@@ -437,7 +437,7 @@
(if (nonzero? (-> self draw)) (ja-post))
(let ((a0-5 (-> self part))
(a1-1 (-> self root root-prim prim-core)))
(if (nonzero? a0-5) (spawn a0-5 (the-as vector a1-1))))
(if (nonzero? a0-5) (spawn a0-5 (-> a1-1 world-sphere))))
(if (nonzero? (-> self sound)) (update! (-> self sound)))
(suspend))))
@@ -541,7 +541,7 @@
(defmethod animate ((this eco))
(let ((a0-1 (-> this part))
(a1-0 (-> this root root-prim prim-core)))
(spawn a0-1 (the-as vector a1-0)))
(spawn a0-1 (-> a1-0 world-sphere)))
(if (nonzero? (-> this sound)) (update! (-> this sound)))
0
(none))
@@ -601,7 +601,7 @@
(defmethod animate ((this health))
(let ((a0-1 (-> this part))
(a1-0 (-> this root root-prim prim-core)))
(spawn a0-1 (the-as vector a1-0)))
(spawn a0-1 (-> a1-0 world-sphere)))
(if (nonzero? (-> this sound)) (update! (-> this sound)))
0
(none))
@@ -616,7 +616,7 @@
(defmethod animate ((this eco-pill))
(let ((a0-1 (-> this part))
(a1-0 (-> this root root-prim prim-core)))
(spawn a0-1 (the-as vector a1-0)))
(spawn a0-1 (-> a1-0 world-sphere)))
(if (nonzero? (-> this sound)) (update! (-> this sound)))
0
(none))
@@ -1099,7 +1099,7 @@
:post
(behavior ()
(transform-post)
(if (-> self state-object) (spawn (-> self part) (the-as vector (-> self root root-prim prim-core))))))
(if (-> self state-object) (spawn (-> self part) (-> self root root-prim prim-core world-sphere)))))
(defmethod initialize ((this fuel-cell))
(stack-size-set! (-> this main-thread) 512)
@@ -1123,7 +1123,7 @@
(initialize-skeleton this *fuel-cell-sg* '())
(set! (-> this base quad) (-> this root trans quad))
(set! (-> this old-base quad) (-> this root trans quad))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 63) this))
(set! (-> this part) (create-launch-control group-fuel-cell-starburst this))
(set! (-> this sound) (new 'process 'ambient-sound (static-sound-spec "powercell-idle" :fo-max 40) (-> this root trans)))
(set! (-> this victory-anim) (fuel-cell-pick-anim this))
this)
@@ -1333,7 +1333,7 @@
(set! (-> this notify-parent) #f)
(set! (-> this fact) (new 'process 'fact-info this (pickup-type buzzer) (the-as float 0.0)))
(initialize-skeleton this *buzzer-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 65) this))
(set! (-> this part) (create-launch-control group-buzzer-effect this))
(set! (-> this sound) (new 'process 'ambient-sound (static-sound-spec "buzzer" :fo-max 40) (-> this root trans)))
(set! (-> this victory-anim) (fuel-cell-pick-anim this))
this)
@@ -1668,24 +1668,24 @@
(set! (-> this block-func) (the-as (function vent symbol) true-func))
(case (-> this fact pickup-type)
(((pickup-type eco-blue))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 44) this))
(set! (-> this collect-effect) (-> *part-group-id-table* 67))
(set! (-> this collect-effect2) (-> *part-group-id-table* 43))
(set! (-> this part) (create-launch-control group-part-vent-blue-active this))
(set! (-> this collect-effect) group-blue-collect)
(set! (-> this collect-effect2) group-eco-blue-collect)
(set! (-> this sound) (new 'process 'ambient-sound 'eco-bg-blue (-> this root trans))))
(((pickup-type eco-red))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 50) this))
(set! (-> this collect-effect) (-> *part-group-id-table* 69))
(set! (-> this collect-effect2) (-> *part-group-id-table* 49))
(set! (-> this part) (create-launch-control group-part-vent-red-active this))
(set! (-> this collect-effect) group-red-collect)
(set! (-> this collect-effect2) group-eco-red-collect)
(set! (-> this sound) (new 'process 'ambient-sound 'eco-bg-red (-> this root trans))))
(((pickup-type eco-green))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 62) this))
(set! (-> this collect-effect) (-> *part-group-id-table* 66))
(set! (-> this collect-effect2) (-> *part-group-id-table* 61))
(set! (-> this part) (create-launch-control group-part-vent-green-active this))
(set! (-> this collect-effect) group-green-collect)
(set! (-> this collect-effect2) group-eco-green-collect)
(set! (-> this sound) (new 'process 'ambient-sound 'eco-bg-green (-> this root trans))))
(((pickup-type eco-yellow))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 52) this))
(set! (-> this collect-effect) (-> *part-group-id-table* 68))
(set! (-> this collect-effect2) (-> *part-group-id-table* 57))
(set! (-> this part) (create-launch-control group-part-vent-yellow-active this))
(set! (-> this collect-effect) group-yellow-collect)
(set! (-> this collect-effect2) group-eco-yellow-collect)
(set! (-> this sound) (new 'process 'ambient-sound 'eco-bg-yellow (-> this root trans)))))
(set! (-> this blocker) (entity-actor-lookup (-> this entity) 'alt-actor 0))
(when (-> this blocker)
+5 -5
View File
@@ -579,7 +579,7 @@
(when v1-6
(let* ((gp-2 (-> self root root-prim prim-core))
(a1-3 (-> (the-as collide-shape v1-6) root-prim prim-core))
(f30-0 (vector-vector-distance (the-as vector gp-2) (the-as vector a1-3))))
(f30-0 (vector-vector-distance (-> gp-2 world-sphere) (-> a1-3 world-sphere))))
(when (and (< f30-0 (-> *FACT-bank* suck-suck-dist)) (!= (-> self defense) 'steel))
(logior! (-> self fact options) (fact-options can-collect))
(go-virtual die #f 0))
@@ -661,7 +661,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 73)
group-dark-eco-box-explosion
-1
#f
#f
@@ -673,7 +673,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 72)
group-crate-steel-explode
-1
#f
#f
@@ -685,7 +685,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 71)
group-crate-explode
-1
#f
#f
@@ -919,7 +919,7 @@
(defmethod art-init ((this crate-buzzer))
(let ((t9-0 (method-of-type crate art-init))) (t9-0 this))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 74) this))
(set! (-> this part) (create-launch-control group-buzzer-crate this))
(set! (-> this sound)
(new 'process 'ambient-sound (static-sound-spec "buzzer" :pitch-mod -762 :fo-max 40) (-> this root trans)))
(set! (-> this victory-anim) (fuel-cell-pick-anim this))
@@ -326,7 +326,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 445)
group-dark-eco-pool-nasty
-1
#f
#f
@@ -1260,9 +1260,9 @@
(let ((v1-18 (-> this entity extra level name)))
(set! (-> this part)
(create-launch-control (cond
((= v1-18 'beach) (-> *part-group-id-table* 37))
((= v1-18 'swamp) (-> *part-group-id-table* 39))
(else (-> *part-group-id-table* 38)))
((= v1-18 'beach) group-beach-launcher)
((= v1-18 'swamp) group-swamp-launcher)
(else group-jungle-launcher))
this)))
(let ((v1-24 (logand (the-as int s4-1) 255)))
(cond
@@ -1298,9 +1298,9 @@
(let ((v1-23 (-> self entity extra level name)))
(set! (-> self part)
(create-launch-control (cond
((= v1-23 'beach) (-> *part-group-id-table* 37))
((= v1-23 'swamp) (-> *part-group-id-table* 39))
(else (-> *part-group-id-table* 38)))
((= v1-23 'beach) group-beach-launcher)
((= v1-23 'swamp) group-swamp-launcher)
(else group-jungle-launcher))
self)))
(case (logand arg2 255)
((1) (set! (-> self camera) cam-launcher-longfall))
@@ -1430,7 +1430,7 @@
((>= v1-1 7) (let ((v1-2 (rand-vu-int-range 3 (+ v1-1 -1)))) (vector<-cspace! arg1 (-> arg0 node-list data v1-2))))
((and (nonzero? s4-0) (type-type? (-> s4-0 type) collide-shape))
(vector+! arg1
(the-as vector (-> (the-as collide-shape s4-0) root-prim prim-core))
(-> (the-as collide-shape s4-0) root-prim prim-core world-sphere)
(rand-vu-sphere-point! arg1 (-> (the-as collide-shape s4-0) root-prim prim-core world-sphere w))))
(else (vector+! arg1 (-> arg0 root trans) (rand-vu-sphere-point! arg1 (-> arg0 draw bounds w))))))
arg1)
+2 -2
View File
@@ -99,7 +99,7 @@
(when v1-6
(let* ((s5-0 (-> self root root-prim prim-core))
(a1-3 (-> (the-as collide-shape v1-6) root-prim prim-core))
(f30-0 (vector-vector-distance (the-as vector s5-0) (the-as vector a1-3))))
(f30-0 (vector-vector-distance (-> s5-0 world-sphere) (-> a1-3 world-sphere))))
(when (rand-vu-percent? 0.5)
(let ((gp-2 (new 'stack-no-clear 'vector)))
(set! (-> gp-2 quad) (-> s5-0 world-sphere quad))
@@ -190,7 +190,7 @@
(setup-lods! (-> this lit-look) s5-1 (-> this draw art-group) (-> this entity)))
(logclear! (-> this mask) (process-mask actor-pause))
(update-transforms! (-> this root))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 107) this))
(set! (-> this part) (create-launch-control group-standard-plat this))
(set! (-> this path) (new 'process 'curve-control this 'path -1000000000.0))
(logior! (-> this path flags) (path-control-flag display draw-line draw-point draw-text))
(set! (-> this fact) (new 'process 'fact-info this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)))
+1 -1
View File
@@ -120,7 +120,7 @@
(defmethod baseplat-method-25 ((this plat))
(the-as sparticle-launch-group
(when (!= (-> (if (-> this entity) (-> this entity extra level) (-> *level* level-default)) name) 'maincave)
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 107) this))) (set! (-> this part) v0-0) v0-0))))
(let ((v0-0 (create-launch-control group-standard-plat this))) (set! (-> this part) v0-0) v0-0))))
(defstate plat-startup (plat)
:virtual #t
+5 -5
View File
@@ -36,7 +36,7 @@
(none))
(defun birth-func-ocean-height ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
(set! (-> arg2 vector 0 y) (+ (ocean-get-height (the-as vector (-> arg2 vector))) (-> arg1 user-float)))
(set! (-> arg2 vector 0 y) (+ (ocean-get-height (-> arg2 vector 0)) (-> arg1 user-float)))
0
(none))
@@ -577,7 +577,7 @@
(logior! (-> this flags) (water-flags wt16)))
((begin
(set! (-> this top 1 quad) (-> this top 0 quad))
(vector<-cspace! (the-as vector (-> this top)) (-> this process node-list data (-> this joint-index)))
(vector<-cspace! (-> this top 0) (-> this process node-list data (-> this joint-index)))
(+! (-> this top 0 y) (-> this top-y-offset))
(set! (-> this bottom 1 quad) (-> this bottom 0 quad))
(set! (-> this bottom 0 quad) (-> this process root trans quad))
@@ -586,13 +586,13 @@
(cond
((and (logtest? (-> this flags) (water-flags wt08))
(not (logtest? (-> (the-as collide-shape-moving (-> this process root)) root-prim prim-core action) (collide-action racer))))
(set! (-> this real-ocean-offset) (- (ocean-get-height (the-as vector (-> this bottom))) (-> this base-height)))
(set! (-> this real-ocean-offset) (- (ocean-get-height (-> this bottom 0)) (-> this base-height)))
(if (not (logtest? (-> this flags) (water-flags wt09)))
(set! (-> this ocean-offset) (-> this real-ocean-offset))
(set! (-> this ocean-offset) (lerp (-> this ocean-offset) (-> this real-ocean-offset) 0.2))))
((logtest? (water-flags wt20) (-> this flags))
(let* ((a0-26 (-> this volume process 0))
(f30-0 (ripple-find-height (the-as process-drawable a0-26) 0 (the-as vector (-> this bottom)))))
(f30-0 (ripple-find-height (the-as process-drawable a0-26) 0 (-> this bottom 0))))
(set! (-> this real-ocean-offset) (- f30-0 (-> this base-height)))
(if (not (logtest? (-> this flags) (water-flags wt09)))
(set! (-> this ocean-offset) (-> this real-ocean-offset))
@@ -892,7 +892,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(if (zero? arg2) (-> *part-group-id-table* 41) (-> *part-group-id-table* 40))
(if (zero? arg2) group-part-water-splash-small group-part-water-splash)
-1
part-water-splash-callback
arg0
+2
View File
@@ -335,3 +335,5 @@
(import "goal_src/jak1/engine/data/art-elts.gc")
(import "goal_src/jak1/engine/data/joint-nodes.gc")
(import "goal_src/jak1/engine/data/part-groups.gc")
+676
View File
@@ -0,0 +1,676 @@
(defconstant group-lavatube-heavy-smoke-end (-> *part-group-id-table* 633))
(defconstant group-lavatube-heavy-smoke-start (-> *part-group-id-table* 632))
(defconstant group-lavatube-heavy-smoke (-> *part-group-id-table* 631))
(defconstant group-lavatube-vents (-> *part-group-id-table* 628))
(defconstant group-lavatube-fountain (-> *part-group-id-table* 627))
(defconstant group-lavatube-green-smoke-angle-3 (-> *part-group-id-table* 626))
(defconstant group-lavatube-green-smoke-angle-2 (-> *part-group-id-table* 625))
(defconstant group-lavatube-green-smoke-angle-1 (-> *part-group-id-table* 624))
(defconstant group-lavatube-green-smoke-down-3 (-> *part-group-id-table* 623))
(defconstant group-lavatube-green-smoke-down-2 (-> *part-group-id-table* 622))
(defconstant group-lavatube-green-smoke-down-1 (-> *part-group-id-table* 621))
(defconstant group-lavatube-lowlava-40x40 (-> *part-group-id-table* 630))
(defconstant group-lavatube-crust-40x40 (-> *part-group-id-table* 629))
(defconstant group-lavatube-lowlava-20x20 (-> *part-group-id-table* 617))
(defconstant group-lavatube-crust-20x20 (-> *part-group-id-table* 616))
(defconstant group-energyball-explode (-> *part-group-id-table* 546))
(defconstant group-energyball-always (-> *part-group-id-table* 545))
(defconstant group-energyarm (-> *part-group-id-table* 544))
(defconstant group-lavaballoon (-> *part-group-id-table* 543))
(defconstant group-chainmine-explode (-> *part-group-id-table* 542))
(defconstant group-darkecobarrel-explode (-> *part-group-id-table* 541))
(defconstant group-darkecobarrel-hit (-> *part-group-id-table* 540))
(defconstant group-yeti-slave-appear2 (-> *part-group-id-table* 539))
(defconstant group-yeti-slave-appear1 (-> *part-group-id-table* 538))
(defconstant group-snow-birds (-> *part-group-id-table* 537))
(defconstant group-snow-door-torch (-> *part-group-id-table* 536))
(defconstant group-snow-mountain-snow (-> *part-group-id-table* 535))
(defconstant group-part-snow-torch (-> *part-group-id-table* 534))
(defconstant group-snow-snowdrops6 (-> *part-group-id-table* 533))
(defconstant group-snow-snowdrops5 (-> *part-group-id-table* 532))
(defconstant group-snow-snowdrops4 (-> *part-group-id-table* 531))
(defconstant group-snow-snowdrops3 (-> *part-group-id-table* 530))
(defconstant group-snow-snowdrops2 (-> *part-group-id-table* 529))
(defconstant group-snow-snowdrops1 (-> *part-group-id-table* 528))
(defconstant group-ram-wheel-puffs (-> *part-group-id-table* 527))
(defconstant group-ram-hit-wall (-> *part-group-id-table* 526))
(defconstant group-ram-boss-foot-puff (-> *part-group-id-table* 574))
(defconstant group-ram-boss-shield-on-fire (-> *part-group-id-table* 525))
(defconstant group-ram-boss-proj-die (-> *part-group-id-table* 524))
(defconstant group-ram-boss-proj-hit (-> *part-group-id-table* 523))
(defconstant group-ram-boss-proj-fly (-> *part-group-id-table* 522))
(defconstant group-ram-boss-proj-grow (-> *part-group-id-table* 521))
(defconstant group-snow-bumper-shove (-> *part-group-id-table* 520))
(defconstant group-snow-bumper-idle (-> *part-group-id-table* 519))
(defconstant group-flutflut-plat-large (-> *part-group-id-table* 518))
(defconstant group-flutflut-plat-med (-> *part-group-id-table* 517))
(defconstant group-flutflut-plat-small (-> *part-group-id-table* 516))
(defconstant group-snow-gears-dripping (-> *part-group-id-table* 515))
(defconstant group-snow-fort-gate-snowdrops (-> *part-group-id-table* 514))
(defconstant group-snow-fort-gate-hits-bottom (-> *part-group-id-table* 513))
(defconstant group-snow-fort-gate-coming-down (-> *part-group-id-table* 512))
(defconstant group-snow-yellow-eco-room-activate (-> *part-group-id-table* 511))
(defconstant group-snow-yellow-eco-room-open (-> *part-group-id-table* 510))
(defconstant group-ice-cube-shatter (-> *part-group-id-table* 509))
(defconstant group-ice-cube-foot-puff (-> *part-group-id-table* 567))
(defconstant group-ice-cube-appear2 (-> *part-group-id-table* 508))
(defconstant group-ice-cube-appear1 (-> *part-group-id-table* 507))
(defconstant group-part-robocave-torch (-> *part-group-id-table* 506))
(defconstant group-minershort-candle (-> *part-group-id-table* 566))
(defconstant group-village3-sagehut-understeam (-> *part-group-id-table* 503))
(defconstant group-village3-sagehut-steam (-> *part-group-id-table* 502))
(defconstant group-village3-sagehut-boiling (-> *part-group-id-table* 501))
(defconstant group-village3-sagehut-warpgate (-> *part-group-id-table* 500))
(defconstant group-village3-lava-lava-20x20 (-> *part-group-id-table* 499))
(defconstant group-village3-bottom-puff-30 (-> *part-group-id-table* 498))
(defconstant group-village3-bottom-puff-29 (-> *part-group-id-table* 497))
(defconstant group-village3-bottom-puff-28 (-> *part-group-id-table* 496))
(defconstant group-village3-bottom-puff-27 (-> *part-group-id-table* 495))
(defconstant group-village3-bottom-puff-25 (-> *part-group-id-table* 494))
(defconstant group-village3-steam-puff-23 (-> *part-group-id-table* 493))
(defconstant group-village3-steam-puff-22 (-> *part-group-id-table* 492))
(defconstant group-village3-steam-puff-31 (-> *part-group-id-table* 491))
(defconstant group-spewing-volcano-37 (-> *part-group-id-table* 490))
(defconstant group-spewing-volcano-36 (-> *part-group-id-table* 489))
(defconstant group-village3-minor-fire (-> *part-group-id-table* 488))
(defconstant group-village3-sulphur-15 (-> *part-group-id-table* 487))
(defconstant group-village3-sulphur-14 (-> *part-group-id-table* 486))
(defconstant group-village3-sulphur-13 (-> *part-group-id-table* 485))
(defconstant group-village3-sulphur-12 (-> *part-group-id-table* 484))
(defconstant group-village3-sulphur-11 (-> *part-group-id-table* 483))
(defconstant group-village3-sulphur-10 (-> *part-group-id-table* 482))
(defconstant group-village3-sulphur-09 (-> *part-group-id-table* 481))
(defconstant group-village3-sulphur-08 (-> *part-group-id-table* 480))
(defconstant group-village3-sulphur-07 (-> *part-group-id-table* 479))
(defconstant group-village3-sulphur-06 (-> *part-group-id-table* 478))
(defconstant group-village3-sulphur-05 (-> *part-group-id-table* 477))
(defconstant group-village3-candle (-> *part-group-id-table* 476))
(defconstant group-shortcut-boulder-explosion (-> *part-group-id-table* 475))
(defconstant group-tntbarrel-explosion (-> *part-group-id-table* 474))
(defconstant group-tntbarrel-BIG-explosion (-> *part-group-id-table* 473))
(defconstant group-ogre-lava-lava-20x20 (-> *part-group-id-table* 472))
(defconstant group-ogreboss-missile-impact (-> *part-group-id-table* 471))
(defconstant group-ogreboss-pre-missile (-> *part-group-id-table* 470))
(defconstant group-ogreboss-missile (-> *part-group-id-table* 469))
(defconstant group-ogreboss-boulder-grow (-> *part-group-id-table* 468))
(defconstant group-ogre-bridge-splash (-> *part-group-id-table* 466))
(defconstant group-ogreboss-lava-splash (-> *part-group-id-table* 465))
(defconstant group-ogreboss-column-break (-> *part-group-id-table* 464))
(defconstant group-dark-cluster-explosion (-> *part-group-id-table* 228))
(defconstant group-balloon (-> *part-group-id-table* 227))
(defconstant group-rolling-explode-ring-blue (-> *part-group-id-table* 462))
(defconstant group-rolling-spawn-ring-blue (-> *part-group-id-table* 461))
(defconstant group-rolling-ring-blue (-> *part-group-id-table* 460))
(defconstant group-rolling-explode-ring (-> *part-group-id-table* 459))
(defconstant group-rolling-spawn-ring (-> *part-group-id-table* 458))
(defconstant group-rolling-ring (-> *part-group-id-table* 457))
(defconstant group-peeper (-> *part-group-id-table* 456))
(defconstant group-dark-plant (-> *part-group-id-table* 455))
(defconstant group-bully-explode (-> *part-group-id-table* 454))
(defconstant group-pipegame-blow2 (-> *part-group-id-table* 453))
(defconstant group-pipegame-blow1 (-> *part-group-id-table* 452))
(defconstant group-pipegame-blow0 (-> *part-group-id-table* 451))
(defconstant group-pipegame-jar-suck2 (-> *part-group-id-table* 450))
(defconstant group-pipegame-jar-suck1 (-> *part-group-id-table* 449))
(defconstant group-pipegame-jar-suck0 (-> *part-group-id-table* 448))
(defconstant group-whirlpool-swirl (-> *part-group-id-table* 447))
(defconstant group-sunken-water-deadly-water (-> *part-group-id-table* 446))
(defconstant group-exit-chamber-ripples (-> *part-group-id-table* 620))
(defconstant group-steam-cap-plume-spread (-> *part-group-id-table* 443))
(defconstant group-steam-cap-plume (-> *part-group-id-table* 442))
(defconstant group-steam-cap-sides (-> *part-group-id-table* 441))
(defconstant group-orbit-plat-jet (-> *part-group-id-table* 440))
(defconstant group-square-platform-submerge-splash (-> *part-group-id-table* 439))
(defconstant group-square-platform-submerge-bubbles (-> *part-group-id-table* 438))
(defconstant group-square-platform-breach-splash (-> *part-group-id-table* 437))
(defconstant group-side-to-side-plat (-> *part-group-id-table* 436))
(defconstant group-sunken-heatpipe-268 (-> *part-group-id-table* 435))
(defconstant group-sunken-heatpipe-267 (-> *part-group-id-table* 434))
(defconstant group-sunken-heatpipe-266 (-> *part-group-id-table* 433))
(defconstant group-sunken-heatpipe-265 (-> *part-group-id-table* 432))
(defconstant group-sunken-heatpipe-264 (-> *part-group-id-table* 431))
(defconstant group-sunken-heatpipe-254 (-> *part-group-id-table* 430))
(defconstant group-sunken-heatpipe-251 (-> *part-group-id-table* 429))
(defconstant group-sunken-heatpipe-278 (-> *part-group-id-table* 428))
(defconstant group-flut-attack-strike-ground (-> *part-group-id-table* 121))
(defconstant group-citadel-warpgate (-> *part-group-id-table* 662))
(defconstant group-flut-trans-pad (-> *part-group-id-table* 120))
(defconstant group-levitator-on-small (-> *part-group-id-table* 661))
(defconstant group-racer-explode (-> *part-group-id-table* 116))
(defconstant group-2d-intro-mist (-> *part-group-id-table* 657))
(defconstant group-racer-trans-pad (-> *part-group-id-table* 115))
(defconstant group-part-save-icon (-> *part-group-id-table* 656))
(defconstant group-part-hud-racer-heat-slice (-> *part-group-id-table* 114))
(defconstant group-white-eco (-> *part-group-id-table* 655))
(defconstant group-part-hud-racer-heat (-> *part-group-id-table* 113))
(defconstant group-robotboss-yellow-smoke (-> *part-group-id-table* 654))
(defconstant group-part-hud-racer-heat-dial (-> *part-group-id-table* 112))
(defconstant group-robotboss-yellow-blowup (-> *part-group-id-table* 653))
(defconstant group-part-hud-racer-heat-backing (-> *part-group-id-table* 111))
(defconstant group-robotboss-yellowshot (-> *part-group-id-table* 652))
(defconstant group-part-hud-racer-speed-front (-> *part-group-id-table* 110))
(defconstant group-robotboss-yellowshot-charge (-> *part-group-id-table* 651))
(defconstant group-part-hud-racer-speed (-> *part-group-id-table* 109))
(defconstant group-robotboss-red-smoke (-> *part-group-id-table* 650))
(defconstant group-part-hud-racer-speed-dial (-> *part-group-id-table* 108))
(defconstant group-robotboss-red-blowup (-> *part-group-id-table* 649))
(defconstant group-jungle-waterfall-4 (-> *part-group-id-table* 183))
(defconstant group-jungle-waterfall-2 (-> *part-group-id-table* 181))
(defconstant group-jungle-waterfall-1 (-> *part-group-id-table* 180))
(defconstant group-fish-collect (-> *part-group-id-table* 179))
(defconstant group-jungle-binoculars-aligned (-> *part-group-id-table* 689))
(defconstant group-training-geyser-4 (-> *part-group-id-table* 148))
(defconstant group-darkvine-puffs (-> *part-group-id-table* 175))
(defconstant group-junglesnake-dropping-down (-> *part-group-id-table* 173))
(defconstant group-green-eco-lurker-death (-> *part-group-id-table* 643))
(defconstant group-yellow-eco-fireball (-> *part-group-id-table* 102))
(defconstant group-normal-fish (-> *part-group-id-table* 178))
(defconstant group-light-eco-child (-> *part-group-id-table* 692))
(defconstant group-training-butterflies (-> *part-group-id-table* 151))
(defconstant group-bad-fish (-> *part-group-id-table* 177))
(defconstant group-light-eco-mother (-> *part-group-id-table* 691))
(defconstant group-training-warpgate (-> *part-group-id-table* 150))
(defconstant group-jungle-binoculars (-> *part-group-id-table* 176))
(defconstant group-light-eco-mother-growing (-> *part-group-id-table* 690))
(defconstant group-training-geyser-6 (-> *part-group-id-table* 149))
(defconstant group-2d-big-door-whiteout (-> *part-group-id-table* 706))
(defconstant group-beach-22 (-> *part-group-id-table* 165))
(defconstant group-jungle-dapple-light-1 (-> *part-group-id-table* 184))
(defconstant group-bigdoor-open (-> *part-group-id-table* 698))
(defconstant group-beach-sandworm (-> *part-group-id-table* 157))
(defconstant group-jungle-blue-eco-room-activate (-> *part-group-id-table* 190))
(defconstant group-robotboss-splash (-> *part-group-id-table* 704))
(defconstant group-beach-24 (-> *part-group-id-table* 163))
(defconstant group-jungle-waterfall-3 (-> *part-group-id-table* 182))
(defconstant group-robotboss-explode (-> *part-group-id-table* 696))
(defconstant group-beach-grotto-pole-rocks (-> *part-group-id-table* 155))
(defconstant group-jungle-blue-eco-room-open (-> *part-group-id-table* 189))
(defconstant group-robotboss-joints (-> *part-group-id-table* 703))
(defconstant group-beach-waterfall (-> *part-group-id-table* 162))
(defconstant group-jungle-lurkermachine-3 (-> *part-group-id-table* 186))
(defconstant group-target-white-eco-joints (-> *part-group-id-table* 700))
(defconstant group-lurkercrab-slide (-> *part-group-id-table* 159))
(defconstant group-jungle-tower-spewer (-> *part-group-id-table* 185))
(defconstant group-target-white-eco-ground (-> *part-group-id-table* 699))
(defconstant group-beach-sandworm-norocks (-> *part-group-id-table* 158))
(defconstant group-finalboss-red-claw-beam (-> *part-group-id-table* 668))
(defconstant group-village1-butterflies (-> *part-group-id-table* 127))
(defconstant group-finalboss-blue-claw-beam-impact (-> *part-group-id-table* 667))
(defconstant group-finalboss-blue-claw-beam (-> *part-group-id-table* 666))
(defconstant group-village1-moth (-> *part-group-id-table* 128))
(defconstant group-robotboss-yellowshot-launch (-> *part-group-id-table* 642))
(defconstant group-part-progress-orb-small (-> *part-group-id-table* 101))
(defconstant group-robotboss-redshot (-> *part-group-id-table* 648))
(defconstant group-standard-plat (-> *part-group-id-table* 107))
(defconstant group-robotboss-redshot-warning (-> *part-group-id-table* 647))
(defconstant group-sharkey-splash (-> *part-group-id-table* 106))
(defconstant group-robotboss-redshot-body (-> *part-group-id-table* 665))
(defconstant group-win-wind-mill-hires (-> *part-group-id-table* 124))
(defconstant group-robotboss-redshot-launch (-> *part-group-id-table* 641))
(defconstant group-part-progress-buzzer-small (-> *part-group-id-table* 100))
(defconstant group-robotboss-redshot-charge (-> *part-group-id-table* 646))
(defconstant group-part-tester (-> *part-group-id-table* 105))
(defconstant group-robotboss-greenshot (-> *part-group-id-table* 664))
(defconstant group-win-wind-mill (-> *part-group-id-table* 123))
(defconstant group-robotboss-greenshot-launch (-> *part-group-id-table* 640))
(defconstant group-part-progress-orb (-> *part-group-id-table* 99))
(defconstant group-robotboss-darkecobomb-tick (-> *part-group-id-table* 663))
(defconstant group-assistant-torch (-> *part-group-id-table* 122))
(defconstant group-robotboss-darkecobomb-glow (-> *part-group-id-table* 639))
(defconstant group-part-progress-buzzer (-> *part-group-id-table* 98))
(defconstant group-robotboss-darkecobomb-launch (-> *part-group-id-table* 638))
(defconstant group-part-progress-hud-power-cell-whole (-> *part-group-id-table* 97))
(defconstant group-robotboss-blue-smoke (-> *part-group-id-table* 645))
(defconstant group-part-yellow-eco-fireball-hit (-> *part-group-id-table* 104))
(defconstant group-robotboss-blue-blowup (-> *part-group-id-table* 644))
(defconstant group-part-yellow-eco-fireball-launcher (-> *part-group-id-table* 103))
(defconstant group-robotboss-blue-beam-impact (-> *part-group-id-table* 637))
(defconstant group-part-progress-hud-power-cell-center (-> *part-group-id-table* 96))
(defconstant group-robotboss-blue-beam (-> *part-group-id-table* 636))
(defconstant group-part-progress-card-slot-04 (-> *part-group-id-table* 95))
(defconstant group-part-screen1 (-> *part-group-id-table* 707))
(defconstant group-beach-18 (-> *part-group-id-table* 166))
(defconstant group-beach-moth (-> *part-group-id-table* 172))
(defconstant group-firehose-blast-smoke (-> *part-group-id-table* 685))
(defconstant group-scarecrow-joint-explode (-> *part-group-id-table* 144))
(defconstant group-beach-butterflies (-> *part-group-id-table* 171))
(defconstant group-beach-14 (-> *part-group-id-table* 170))
(defconstant group-part-citadel-torch (-> *part-group-id-table* 683))
(defconstant group-village1-trans-pad (-> *part-group-id-table* 142))
(defconstant group-beach-15 (-> *part-group-id-table* 169))
(defconstant group-2d-credits-mist (-> *part-group-id-table* 682))
(defconstant group-village1-misty-fog (-> *part-group-id-table* 141))
(defconstant group-beach-16 (-> *part-group-id-table* 168))
(defconstant group-beach-17 (-> *part-group-id-table* 167))
(defconstant group-burn-death (-> *part-group-id-table* 708))
(defconstant group-robotboss-redshot-test (-> *part-group-id-table* 679))
(defconstant group-village1-sagehut-rings-3 (-> *part-group-id-table* 138))
(defconstant group-beach-23 (-> *part-group-id-table* 164))
(defconstant group-part-hud-orb-all (-> *part-group-id-table* 705))
(defconstant group-robotboss-yellow-claw-glow (-> *part-group-id-table* 677))
(defconstant group-village1-sagehut-rings (-> *part-group-id-table* 136))
(defconstant group-robotboss-red-claw-glow (-> *part-group-id-table* 676))
(defconstant group-village1-bird-lady-birds (-> *part-group-id-table* 135))
(defconstant group-robotboss-green-claw-glow (-> *part-group-id-table* 675))
(defconstant group-village1-fountain (-> *part-group-id-table* 134))
(defconstant group-beach-grotto-2 (-> *part-group-id-table* 161))
(defconstant group-target-white-eco-hand-shot (-> *part-group-id-table* 702))
(defconstant group-robotboss-blue-claw-glow (-> *part-group-id-table* 674))
(defconstant group-village1-butterfly-sitting (-> *part-group-id-table* 133))
(defconstant group-seagull-takeoff (-> *part-group-id-table* 160))
(defconstant group-target-white-eco-hand-glow (-> *part-group-id-table* 701))
(defconstant group-finalboss-green-claw-beam-impact (-> *part-group-id-table* 673))
(defconstant group-village1-sagehut-seagulls (-> *part-group-id-table* 132))
(defconstant group-finalboss-green-claw-beam (-> *part-group-id-table* 672))
(defconstant group-village1-mayor-fire (-> *part-group-id-table* 131))
(defconstant group-finalboss-yellow-claw-beam-impact (-> *part-group-id-table* 671))
(defconstant group-village1-pot (-> *part-group-id-table* 130))
(defconstant group-finalboss-yellow-claw-beam (-> *part-group-id-table* 670))
(defconstant group-village1-hummingbird (-> *part-group-id-table* 129))
(defconstant group-beach-harvester-rock-explosion (-> *part-group-id-table* 156))
(defconstant group-beach-cannon-fire (-> *part-group-id-table* 119))
(defconstant group-levitator-on-big (-> *part-group-id-table* 660))
(defconstant group-beach-sack-explosion (-> *part-group-id-table* 118))
(defconstant group-levitator-blue-beam-impact (-> *part-group-id-table* 659))
(defconstant group-beach-sack-fuse (-> *part-group-id-table* 117))
(defconstant group-levitator-blue-beam (-> *part-group-id-table* 658))
(defconstant group-jungle-lurkermachine-1 (-> *part-group-id-table* 187))
(defconstant group-dark-eco-nasty (-> *part-group-id-table* 444))
(defconstant group-final-boss-mine-explosion (-> *part-group-id-table* 619))
(defconstant group-part-hud-health-3 (-> *part-group-id-table* 78))
(defconstant group-lava-death (-> *part-group-id-table* 32))
(defconstant group-part-progress-button-circle (-> *part-group-id-table* 573))
(defconstant group-dark-eco-death (-> *part-group-id-table* 31))
(defconstant group-part-progress-button-triangle (-> *part-group-id-table* 572))
(defconstant group-slide-poof-crwood (-> *part-group-id-table* 30))
(defconstant group-part-progress-button-square (-> *part-group-id-table* 571))
(defconstant group-slide-poof-wood (-> *part-group-id-table* 29))
(defconstant group-part-progress-button-x (-> *part-group-id-table* 570))
(defconstant group-citb-coil-glow (-> *part-group-id-table* 596))
(defconstant group-part-hud-eco-timer (-> *part-group-id-table* 82))
(defconstant group-part-hud-buzzer (-> *part-group-id-table* 81))
(defconstant group-slide-poof-stone (-> *part-group-id-table* 28))
(defconstant group-slide-poof-grass (-> *part-group-id-table* 27))
(defconstant group-slide-poof-sand (-> *part-group-id-table* 26))
(defconstant group-just-footprint-sand (-> *part-group-id-table* 25))
(defconstant group-just-poof-sand (-> *part-group-id-table* 24))
(defconstant group-sunken-sheild (-> *part-group-id-table* 565))
(defconstant group-run-poof-sand (-> *part-group-id-table* 23))
(defconstant group-ogreboulder-trail (-> *part-group-id-table* 564))
(defconstant group-just-footprint-grass (-> *part-group-id-table* 22))
(defconstant group-allpontoons-trail (-> *part-group-id-table* 563))
(defconstant group-just-poof-grass (-> *part-group-id-table* 21))
(defconstant group-sequenceC-dark-splash (-> *part-group-id-table* 562))
(defconstant group-run-poof-grass (-> *part-group-id-table* 20))
(defconstant group-sequenceC-exploding-can (-> *part-group-id-table* 561))
(defconstant group-part-hud-power-cell-whole (-> *part-group-id-table* 80))
(defconstant group-dark-eco-box-explosion (-> *part-group-id-table* 73))
(defconstant group-mother-spider-leg (-> *part-group-id-table* 614))
(defconstant group-run-poof-pcmetal (-> *part-group-id-table* 587))
(defconstant group-part-hud-orb (-> *part-group-id-table* 79))
(defconstant group-just-poof-wood (-> *part-group-id-table* 19))
(defconstant group-sequenceC-glowing-can (-> *part-group-id-table* 560))
(defconstant group-run-poof-wood (-> *part-group-id-table* 18))
(defconstant group-just-poof-crwood (-> *part-group-id-table* 17))
(defconstant group-evilsib-hover (-> *part-group-id-table* 558))
(defconstant group-run-poof-crwood (-> *part-group-id-table* 16))
(defconstant group-evilsib-appear (-> *part-group-id-table* 557))
(defconstant group-punch-hit (-> *part-group-id-table* 5))
(defconstant group-stars (-> *part-group-id-table* 34))
(defconstant group-land-poof-dirt (-> *part-group-id-table* 575))
(defconstant group-crate-explode (-> *part-group-id-table* 71))
(defconstant group-part-first-person-hud-right (-> *part-group-id-table* 612))
(defconstant group-run-poof-ice (-> *part-group-id-table* 585))
(defconstant group-part-vent-blue-active (-> *part-group-id-table* 44))
(defconstant group-spin-hit (-> *part-group-id-table* 4))
(defconstant group-blue-hit-ground-effect (-> *part-group-id-table* 70))
(defconstant group-part-first-person-hud-left (-> *part-group-id-table* 611))
(defconstant group-just-footprint-snow (-> *part-group-id-table* 584))
(defconstant group-eco-blue-collect (-> *part-group-id-table* 43))
(defconstant group-slide-poof-snow (-> *part-group-id-table* 590))
(defconstant group-eco-red-collect (-> *part-group-id-table* 49))
(defconstant group-part-hud-health-1 (-> *part-group-id-table* 76))
(defconstant group-red-eco-spinkick (-> *part-group-id-table* 3))
(defconstant group-red-collect (-> *part-group-id-table* 69))
(defconstant group-citb-green-sage-beam-impact (-> *part-group-id-table* 610))
(defconstant group-just-poof-snow (-> *part-group-id-table* 583))
(defconstant group-eco-blue (-> *part-group-id-table* 42))
(defconstant group-slide-poof-pcmetal (-> *part-group-id-table* 589))
(defconstant group-eco-red (-> *part-group-id-table* 48))
(defconstant group-part-hud-pickup (-> *part-group-id-table* 75))
(defconstant group-red-eco-strike-ground (-> *part-group-id-table* 2))
(defconstant group-yellow-collect (-> *part-group-id-table* 68))
(defconstant group-citb-yellow-sage-beam-impact (-> *part-group-id-table* 609))
(defconstant group-run-poof-snow (-> *part-group-id-table* 582))
(defconstant group-part-water-splash-small (-> *part-group-id-table* 41))
(defconstant group-just-poof-pcmetal (-> *part-group-id-table* 588))
(defconstant group-buzzer-crate (-> *part-group-id-table* 74))
(defconstant group-part-progress-save-icon (-> *part-group-id-table* 615))
(defconstant group-part-hud-health-2 (-> *part-group-id-table* 77))
(defconstant group-mother-spider-leg-socket (-> *part-group-id-table* 618))
(defconstant group-slide-poof-ice (-> *part-group-id-table* 591))
(defconstant group-part-vent-red-active (-> *part-group-id-table* 50))
(defconstant group-citb-generator-off (-> *part-group-id-table* 597))
(defconstant group-eco-yellow (-> *part-group-id-table* 56))
(defconstant group-part-hud-eco-timer-backing (-> *part-group-id-table* 83))
(defconstant group-target-hit (-> *part-group-id-table* 1))
(defconstant group-beach-rocks-start (-> *part-group-id-table* 553))
(defconstant group-land-poof-crwood (-> *part-group-id-table* 12))
(defconstant group-swamp-launcher (-> *part-group-id-table* 39))
(defconstant group-land-poof-ice (-> *part-group-id-table* 580))
(defconstant group-land-poof-grass (-> *part-group-id-table* 10))
(defconstant group-ogreboulder-hit-wall (-> *part-group-id-table* 551))
(defconstant group-jungle-launcher (-> *part-group-id-table* 38))
(defconstant group-slide-poof-dirt (-> *part-group-id-table* 579))
(defconstant group-land-poof-snow (-> *part-group-id-table* 9))
(defconstant group-beach-launcher (-> *part-group-id-table* 37))
(defconstant group-just-footprint-dirt (-> *part-group-id-table* 578))
(defconstant group-land-poof-sand (-> *part-group-id-table* 8))
(defconstant group-green-sun (-> *part-group-id-table* 36))
(defconstant group-just-poof-dirt (-> *part-group-id-table* 577))
(defconstant group-sun (-> *part-group-id-table* 35))
(defconstant group-run-poof-dirt (-> *part-group-id-table* 576))
(defconstant group-smack-surface (-> *part-group-id-table* 6))
(defconstant group-run-poof-stone (-> *part-group-id-table* 14))
(defconstant group-beach-rocks-land (-> *part-group-id-table* 555))
(defconstant group-land-poof-pcmetal (-> *part-group-id-table* 581))
(defconstant group-part-water-splash (-> *part-group-id-table* 40))
(defconstant group-blue-collect (-> *part-group-id-table* 67))
(defconstant group-citb-red-sage-beam-impact (-> *part-group-id-table* 608))
(defconstant group-just-poof-ice (-> *part-group-id-table* 586))
(defconstant group-part-vent-blue-inactive (-> *part-group-id-table* 45))
(defconstant group-crate-steel-explode (-> *part-group-id-table* 72))
(defconstant group-part-first-person-hud-selector (-> *part-group-id-table* 613))
(defconstant group-dark-eco-pool-nasty (-> *part-group-id-table* 445))
(defconstant group-rain-screend-drop-real (-> *part-group-id-table* 188))
(defconstant group-eco-green-collect (-> *part-group-id-table* 61))
(defconstant group-citb-coil-off (-> *part-group-id-table* 602))
(defconstant group-land-poof-wood (-> *part-group-id-table* 11))
(defconstant group-ogreboulder-splash (-> *part-group-id-table* 552))
(defconstant group-land-poof-stone (-> *part-group-id-table* 13))
(defconstant group-beach-rocks-fall (-> *part-group-id-table* 554))
(defconstant group-just-poof-stone (-> *part-group-id-table* 15))
(defconstant group-part-vent-red-inactive (-> *part-group-id-table* 51))
(defconstant group-part-vent-yellow-active (-> *part-group-id-table* 52))
(defconstant group-part-vent-yellow-inactive (-> *part-group-id-table* 53))
(defconstant group-eco-green-pill-collect (-> *part-group-id-table* 60))
(defconstant group-citb-robotboss-shield (-> *part-group-id-table* 601))
(defconstant group-part-vent-green-active (-> *part-group-id-table* 62))
(defconstant group-citb-blue-sage-beam (-> *part-group-id-table* 603))
(defconstant group-fuel-cell-starburst (-> *part-group-id-table* 63))
(defconstant group-citb-red-sage-beam (-> *part-group-id-table* 604))
(defconstant group-eco-yellow-collect (-> *part-group-id-table* 57))
(defconstant group-citb-generator-break (-> *part-group-id-table* 598))
(defconstant group-money-starburst (-> *part-group-id-table* 64))
(defconstant group-citb-yellow-sage-beam (-> *part-group-id-table* 605))
(defconstant group-eco-green (-> *part-group-id-table* 58))
(defconstant group-citb-generator-mushroom-on (-> *part-group-id-table* 599))
(defconstant group-buzzer-effect (-> *part-group-id-table* 65))
(defconstant group-citb-green-sage-beam (-> *part-group-id-table* 606))
(defconstant group-eco-green-pill (-> *part-group-id-table* 59))
(defconstant group-citb-generator-on (-> *part-group-id-table* 600))
(defconstant group-green-collect (-> *part-group-id-table* 66))
(defconstant group-citb-blue-sage-beam-impact (-> *part-group-id-table* 607))
(defconstant group-part-hud-timer-blue (-> *part-group-id-table* 84))
(defconstant group-part-progress-hud-previous (-> *part-group-id-table* 85))
(defconstant group-part-progress-hud-next (-> *part-group-id-table* 86))
(defconstant group-part-progress-hud-selector (-> *part-group-id-table* 87))
(defconstant group-part-progress-hud-left (-> *part-group-id-table* 88))
(defconstant group-part-progress-hud-right (-> *part-group-id-table* 89))
(defconstant group-part-progress-hud-tint (-> *part-group-id-table* 90))
(defconstant group-part-progress-card-cell (-> *part-group-id-table* 91))
(defconstant group-part-progress-card-slot-01 (-> *part-group-id-table* 92))
(defconstant group-part-progress-card-slot-02 (-> *part-group-id-table* 93))
(defconstant group-village2-fireboulder-off (-> *part-group-id-table* 634))
(defconstant group-part-progress-card-slot-03 (-> *part-group-id-table* 94))
(defconstant group-village1-sagehut-rings-2 (-> *part-group-id-table* 137))
(defconstant group-village2-fireboulder-hover (-> *part-group-id-table* 678))
(defconstant group-village1-sagehut-drips (-> *part-group-id-table* 139))
(defconstant group-village1-sagehut-warpgate (-> *part-group-id-table* 140))
(defconstant group-sequenceC-blow-dust (-> *part-group-id-table* 681))
(defconstant group-village1-training-spouts (-> *part-group-id-table* 684))
(defconstant group-scarecrow-explode (-> *part-group-id-table* 143))
(defconstant group-sequenceAV-splash (-> *part-group-id-table* 686))
(defconstant group-scarecrow-hit (-> *part-group-id-table* 145))
(defconstant group-sequenceAV-spit (-> *part-group-id-table* 687))
(defconstant group-training-geyser-2 (-> *part-group-id-table* 146))
(defconstant group-sequenceAV-2d-intro-mist (-> *part-group-id-table* 688))
(defconstant group-training-geyser-5 (-> *part-group-id-table* 147))
(defconstant group-training-birds (-> *part-group-id-table* 152))
(defconstant group-training-waterfall-21 (-> *part-group-id-table* 153))
(defconstant group-training-waterfall-20 (-> *part-group-id-table* 154))
(defconstant group-windturbine-particles (-> *part-group-id-table* 191))
(defconstant group-misty-bone-01 (-> *part-group-id-table* 192))
(defconstant group-misty-bone-03 (-> *part-group-id-table* 193))
(defconstant group-misty-bone-02 (-> *part-group-id-table* 194))
(defconstant group-misty-bone-07 (-> *part-group-id-table* 195))
(defconstant group-misty-boat-paddle (-> *part-group-id-table* 196))
(defconstant group-keg-bounce (-> *part-group-id-table* 197))
(defconstant group-quicksandlurker-missile (-> *part-group-id-table* 198))
(defconstant group-quicksandlurker-pre-missile (-> *part-group-id-table* 199))
(defconstant group-quicksandlurker-missile-impact (-> *part-group-id-table* 200))
(defconstant group-quicksandlurker-hide (-> *part-group-id-table* 201))
(defconstant group-quicksandlurker-popup (-> *part-group-id-table* 202))
(defconstant group-balloonlurker-pilot-death (-> *part-group-id-table* 203))
(defconstant group-balloonlurker-mine-explosion (-> *part-group-id-table* 204))
(defconstant group-misty-ship-steam (-> *part-group-id-table* 205))
(defconstant group-part-misty-torch (-> *part-group-id-table* 206))
(defconstant group-misty-fog (-> *part-group-id-table* 207))
(defconstant group-misty-lurkermachine-vent-316 (-> *part-group-id-table* 208))
(defconstant group-misty-lurkermachine-vent-313 (-> *part-group-id-table* 209))
(defconstant group-misty-lurkermachine-vent-308 (-> *part-group-id-table* 210))
(defconstant group-misty-lurkermachine-vent-307 (-> *part-group-id-table* 211))
(defconstant group-misty-lurkermachine-vent-305 (-> *part-group-id-table* 212))
(defconstant group-misty-lurkermachine-vent-309 (-> *part-group-id-table* 213))
(defconstant group-misty-lurkermachine-vent-2 (-> *part-group-id-table* 214))
(defconstant group-misty-lurkermachine-vent-328 (-> *part-group-id-table* 215))
(defconstant group-misty-lurkermachine-vent-325 (-> *part-group-id-table* 216))
(defconstant group-misty-lurkermachine-vent-320 (-> *part-group-id-table* 217))
(defconstant group-misty-lurkermachine-vent-324 (-> *part-group-id-table* 218))
(defconstant group-misty-fort-steam (-> *part-group-id-table* 219))
(defconstant group-misty-fort-steam2 (-> *part-group-id-table* 220))
(defconstant group-misty-fort-steam3 (-> *part-group-id-table* 221))
(defconstant group-misty-fort-steam4 (-> *part-group-id-table* 222))
(defconstant group-misty-lurkermachine-spout-314 (-> *part-group-id-table* 223))
(defconstant group-misty-lurkermachine-spout-310 (-> *part-group-id-table* 224))
(defconstant group-misty-lurkermachine-spout-311 (-> *part-group-id-table* 225))
(defconstant group-misty-lurkermachine-spout-312 (-> *part-group-id-table* 226))
(defconstant group-firecanyon-lava-1 (-> *part-group-id-table* 229))
(defconstant group-firecanyon-lava-2 (-> *part-group-id-table* 230))
(defconstant group-firecanyon-lava-3 (-> *part-group-id-table* 231))
(defconstant group-firecanyon-lava-5 (-> *part-group-id-table* 232))
(defconstant group-firecanyon-lava-6 (-> *part-group-id-table* 233))
(defconstant group-firecanyon-lava-7 (-> *part-group-id-table* 234))
(defconstant group-firecanyon-lava-8 (-> *part-group-id-table* 235))
(defconstant group-firecanyon-lava-9 (-> *part-group-id-table* 236))
(defconstant group-firecanyon-lava-10 (-> *part-group-id-table* 237))
(defconstant group-firecanyon-lava-11 (-> *part-group-id-table* 238))
(defconstant group-firecanyon-lava-14 (-> *part-group-id-table* 239))
(defconstant group-firecanyon-lava-15 (-> *part-group-id-table* 240))
(defconstant group-firecanyon-lava-16 (-> *part-group-id-table* 241))
(defconstant group-firecanyon-lava-18 (-> *part-group-id-table* 242))
(defconstant group-firecanyon-lava-19 (-> *part-group-id-table* 243))
(defconstant group-firecanyon-lava-21 (-> *part-group-id-table* 244))
(defconstant group-firecanyon-lava-22 (-> *part-group-id-table* 245))
(defconstant group-firecanyon-lava-60 (-> *part-group-id-table* 246))
(defconstant group-firecanyon-lava-62 (-> *part-group-id-table* 247))
(defconstant group-firecanyon-lava-63 (-> *part-group-id-table* 248))
(defconstant group-firecanyon-lava-64 (-> *part-group-id-table* 249))
(defconstant group-firecanyon-heat-44 (-> *part-group-id-table* 250))
(defconstant group-firecanyon-heat-45 (-> *part-group-id-table* 251))
(defconstant group-firecanyon-heat-46 (-> *part-group-id-table* 252))
(defconstant group-firecanyon-heat-47 (-> *part-group-id-table* 253))
(defconstant group-firecanyon-heat-48 (-> *part-group-id-table* 254))
(defconstant group-firecanyon-heat-50 (-> *part-group-id-table* 255))
(defconstant group-firecanyon-heat-52 (-> *part-group-id-table* 256))
(defconstant group-firecanyon-heat-53 (-> *part-group-id-table* 257))
(defconstant group-firecanyon-heat-54 (-> *part-group-id-table* 258))
(defconstant group-firecanyon-heat-55 (-> *part-group-id-table* 259))
(defconstant group-firecanyon-heat-56 (-> *part-group-id-table* 260))
(defconstant group-firecanyon-heat-57 (-> *part-group-id-table* 261))
(defconstant group-firecanyon-heat-58 (-> *part-group-id-table* 262))
(defconstant group-firecanyon-heat-59 (-> *part-group-id-table* 263))
(defconstant group-village2-moth (-> *part-group-id-table* 264))
(defconstant group-village2-tableflys (-> *part-group-id-table* 265))
(defconstant group-village2-flamepot (-> *part-group-id-table* 266))
(defconstant group-village2-flamepot-half (-> *part-group-id-table* 267))
(defconstant group-village2-flamepot-alt1 (-> *part-group-id-table* 268))
(defconstant group-village2-flamepot-alt2 (-> *part-group-id-table* 269))
(defconstant group-village2-flamepot-off (-> *part-group-id-table* 270))
(defconstant group-village2-fireboulder (-> *part-group-id-table* 271))
(defconstant group-village2-window-flames-45 (-> *part-group-id-table* 272))
(defconstant group-village2-window-flames-41 (-> *part-group-id-table* 273))
(defconstant group-village2-big-boulder (-> *part-group-id-table* 274))
(defconstant group-village2-sages-controlpanel (-> *part-group-id-table* 275))
(defconstant group-village2-sages-machine (-> *part-group-id-table* 276))
(defconstant group-village2-waterfall-29 (-> *part-group-id-table* 277))
(defconstant group-village2-waterfall-30 (-> *part-group-id-table* 278))
(defconstant group-village2-waterfall-31 (-> *part-group-id-table* 279))
(defconstant group-village2-waterfall-32 (-> *part-group-id-table* 280))
(defconstant group-village2-waterfall-33 (-> *part-group-id-table* 281))
(defconstant group-village2-waterfall-34 (-> *part-group-id-table* 282))
(defconstant group-village2-sagehut-warpgate (-> *part-group-id-table* 283))
(defconstant group-village2-tree-fire (-> *part-group-id-table* 284))
(defconstant group-tetherrock-explode (-> *part-group-id-table* 285))
(defconstant group-swamp-tether-rock-hit (-> *part-group-id-table* 287))
(defconstant group-assistant-bluehut-torch (-> *part-group-id-table* 288))
(defconstant group-swamp-spike-up (-> *part-group-id-table* 289))
(defconstant group-swamp-spike-down (-> *part-group-id-table* 290))
(defconstant group-swamp-rock-explosion (-> *part-group-id-table* 291))
(defconstant group-swamp-rat-nest-a-explosion (-> *part-group-id-table* 292))
(defconstant group-swamp-rat-nest-b-explosion (-> *part-group-id-table* 293))
(defconstant group-swamp-rat-nest-c-explosion (-> *part-group-id-table* 294))
(defconstant group-swamp-rat-nest-a-puff (-> *part-group-id-table* 295))
(defconstant group-swamp-rat-nest-b-puff (-> *part-group-id-table* 296))
(defconstant group-swamp-rat-nest-c-puff (-> *part-group-id-table* 297))
(defconstant group-kermit-charging-up (-> *part-group-id-table* 298))
(defconstant group-kermit-charged-up (-> *part-group-id-table* 299))
(defconstant group-kermit-pulse (-> *part-group-id-table* 300))
(defconstant group-kermit-pulse-impact (-> *part-group-id-table* 301))
(defconstant group-swamp-bayou-billy-hut (-> *part-group-id-table* 302))
(defconstant group-swamp-bubbles-01 (-> *part-group-id-table* 303))
(defconstant group-swamp-bubbles-02 (-> *part-group-id-table* 304))
(defconstant group-swamp-bubbles-03 (-> *part-group-id-table* 305))
(defconstant group-swamp-bubbles-04 (-> *part-group-id-table* 306))
(defconstant group-swamp-bubbles-05 (-> *part-group-id-table* 307))
(defconstant group-swamp-bubbles-06 (-> *part-group-id-table* 308))
(defconstant group-swamp-bubbles-07 (-> *part-group-id-table* 309))
(defconstant group-swamp-bubbles-08 (-> *part-group-id-table* 310))
(defconstant group-swamp-bubbles-09 (-> *part-group-id-table* 311))
(defconstant group-swamp-bubbles-10 (-> *part-group-id-table* 312))
(defconstant group-swamp-bubbles-11 (-> *part-group-id-table* 313))
(defconstant group-swamp-bubbles-12 (-> *part-group-id-table* 314))
(defconstant group-swamp-bubbles-13 (-> *part-group-id-table* 315))
(defconstant group-swamp-bubbles-14 (-> *part-group-id-table* 316))
(defconstant group-swamp-torch (-> *part-group-id-table* 317))
(defconstant group-part-maincave-torch (-> *part-group-id-table* 318))
(defconstant group-cave-cavedrip-1 (-> *part-group-id-table* 319))
(defconstant group-cave-cavedrip-2 (-> *part-group-id-table* 320))
(defconstant group-cave-cavedrip-3 (-> *part-group-id-table* 321))
(defconstant group-dark-crystal-gnd-explode (-> *part-group-id-table* 322))
(defconstant group-dark-crystal-water-explode (-> *part-group-id-table* 323))
(defconstant group-spider-egg-hatches (-> *part-group-id-table* 324))
(defconstant group-spider-egg-explodes (-> *part-group-id-table* 325))
(defconstant group-mother-spider-proj-fly (-> *part-group-id-table* 326))
(defconstant group-mother-spider-proj-hit (-> *part-group-id-table* 327))
(defconstant group-mother-spider-proj-die (-> *part-group-id-table* 328))
(defconstant group-gnawer-loses-segment (-> *part-group-id-table* 329))
(defconstant group-gnawer-crumbs (-> *part-group-id-table* 330))
(defconstant group-driller-lurker-drilling-debris (-> *part-group-id-table* 331))
(defconstant group-sunken-heatpipe-183 (-> *part-group-id-table* 332))
(defconstant group-sunken-tunnel-bubbles-27 (-> *part-group-id-table* 333))
(defconstant group-sunken-tunnel-bubbles-32 (-> *part-group-id-table* 334))
(defconstant group-sunken-tunnel-bubbles-33 (-> *part-group-id-table* 335))
(defconstant group-sunken-tunnel-bubbles-199 (-> *part-group-id-table* 336))
(defconstant group-sunken-tunnel-bubbles-281 (-> *part-group-id-table* 337))
(defconstant group-sunken-tunnel-bubbles-202 (-> *part-group-id-table* 338))
(defconstant group-sunken-window-bubbles-35 (-> *part-group-id-table* 339))
(defconstant group-sunken-helix-bubbles-398 (-> *part-group-id-table* 340))
(defconstant group-sunken-helix-bubbles-397 (-> *part-group-id-table* 341))
(defconstant group-sunken-heatpipe-355 (-> *part-group-id-table* 342))
(defconstant group-sunken-heatpipe-361 (-> *part-group-id-table* 343))
(defconstant group-sunken-heatpipe-360 (-> *part-group-id-table* 344))
(defconstant group-sunken-heatpipe-377 (-> *part-group-id-table* 345))
(defconstant group-sunken-heatpipe-376 (-> *part-group-id-table* 346))
(defconstant group-sunken-heatpipe-375 (-> *part-group-id-table* 347))
(defconstant group-sunken-heatpipe-374 (-> *part-group-id-table* 348))
(defconstant group-sunken-heatpipe-363 (-> *part-group-id-table* 349))
(defconstant group-sunken-heatpipe-362 (-> *part-group-id-table* 350))
(defconstant group-sunken-heatpipe-364 (-> *part-group-id-table* 351))
(defconstant group-sunken-heatpipe-365 (-> *part-group-id-table* 352))
(defconstant group-sunken-window-bubbles-34 (-> *part-group-id-table* 353))
(defconstant group-sunken-window-bubbles-36 (-> *part-group-id-table* 354))
(defconstant group-sunken-window-bubbles-30 (-> *part-group-id-table* 355))
(defconstant group-sunken-window-bubbles-31 (-> *part-group-id-table* 356))
(defconstant group-sunken-window-bubbles-29 (-> *part-group-id-table* 357))
(defconstant group-sunken-window-bubbles-159 (-> *part-group-id-table* 358))
(defconstant group-sunken-window-bubbles-161 (-> *part-group-id-table* 359))
(defconstant group-sunken-window-bubbles-204 (-> *part-group-id-table* 360))
(defconstant group-sunken-window-bubbles-205 (-> *part-group-id-table* 361))
(defconstant group-sunken-window-bubbles-203 (-> *part-group-id-table* 362))
(defconstant group-sunken-window-bubbles-42 (-> *part-group-id-table* 363))
(defconstant group-sunken-window-bubbles-41 (-> *part-group-id-table* 364))
(defconstant group-sunken-window-bubbles-206 (-> *part-group-id-table* 365))
(defconstant group-sunken-window-bubbles-201 (-> *part-group-id-table* 366))
(defconstant group-sunken-window-bubbles-3 (-> *part-group-id-table* 367))
(defconstant group-sunken-window-bubbles-2 (-> *part-group-id-table* 368))
(defconstant group-sunken-heatpipe-382 (-> *part-group-id-table* 369))
(defconstant group-sunken-heatpipe-381 (-> *part-group-id-table* 370))
(defconstant group-sunken-heatpipe-380 (-> *part-group-id-table* 371))
(defconstant group-sunken-heatpipe-379 (-> *part-group-id-table* 372))
(defconstant group-sunken-heatpipe-378 (-> *part-group-id-table* 373))
(defconstant group-sunken-window-bubbles-402 (-> *part-group-id-table* 374))
(defconstant group-sunken-window-bubbles-401 (-> *part-group-id-table* 375))
(defconstant group-sunken-window-bubbles-400 (-> *part-group-id-table* 376))
(defconstant group-sunken-window-bubbles-399 (-> *part-group-id-table* 377))
(defconstant group-sunken-heatpipe-383 (-> *part-group-id-table* 378))
(defconstant group-sunken-heatpipe-198 (-> *part-group-id-table* 379))
(defconstant group-sunken-heatpipe-189 (-> *part-group-id-table* 380))
(defconstant group-sunken-heatpipe-193 (-> *part-group-id-table* 381))
(defconstant group-sunken-heatpipe-207 (-> *part-group-id-table* 382))
(defconstant group-sunken-window-bubbles-388 (-> *part-group-id-table* 383))
(defconstant group-sunken-window-bubbles-387 (-> *part-group-id-table* 384))
(defconstant group-sunken-window-bubbles-386 (-> *part-group-id-table* 385))
(defconstant group-sunken-window-bubbles-384 (-> *part-group-id-table* 386))
(defconstant group-sunken-window-bubbles-385 (-> *part-group-id-table* 387))
(defconstant group-sunken-window-bubbles-394 (-> *part-group-id-table* 388))
(defconstant group-sunken-window-bubbles-390 (-> *part-group-id-table* 389))
(defconstant group-sunken-window-bubbles-393 (-> *part-group-id-table* 390))
(defconstant group-sunken-window-bubbles-392 (-> *part-group-id-table* 391))
(defconstant group-sunken-window-bubbles-38 (-> *part-group-id-table* 392))
(defconstant group-sunken-window-bubbles-200 (-> *part-group-id-table* 393))
(defconstant group-sunken-window-bubbles-391 (-> *part-group-id-table* 394))
(defconstant group-sunken-heatpipe-282 (-> *part-group-id-table* 395))
(defconstant group-sunken-heatpipe-285 (-> *part-group-id-table* 396))
(defconstant group-sunken-heatpipe-288 (-> *part-group-id-table* 397))
(defconstant group-sunken-heatpipe-299 (-> *part-group-id-table* 398))
(defconstant group-sunken-heatpipe-302 (-> *part-group-id-table* 399))
(defconstant group-sunken-heatpipe-367 (-> *part-group-id-table* 400))
(defconstant group-sunken-heatpipe-371 (-> *part-group-id-table* 401))
(defconstant group-sunken-heatpipe-308 (-> *part-group-id-table* 402))
(defconstant group-sunken-heatpipe-312 (-> *part-group-id-table* 403))
(defconstant group-sunken-heatpipe-316 (-> *part-group-id-table* 404))
(defconstant group-sunken-heatpipe-320 (-> *part-group-id-table* 405))
(defconstant group-sunken-heatpipe-324 (-> *part-group-id-table* 406))
(defconstant group-sunken-heatpipe-328 (-> *part-group-id-table* 407))
(defconstant group-sunken-heatpipe-332 (-> *part-group-id-table* 408))
(defconstant group-sunken-heatpipe-333 (-> *part-group-id-table* 409))
(defconstant group-sunken-heatpipe-334 (-> *part-group-id-table* 410))
(defconstant group-sunken-heatpipe-335 (-> *part-group-id-table* 411))
(defconstant group-sunken-heatpipe-336 (-> *part-group-id-table* 412))
(defconstant group-sunken-heatpipe-337 (-> *part-group-id-table* 413))
(defconstant group-sunken-heatpipe-338 (-> *part-group-id-table* 414))
(defconstant group-sunken-heatpipe-339 (-> *part-group-id-table* 415))
(defconstant group-sunken-heatpipe-340 (-> *part-group-id-table* 416))
(defconstant group-sunken-heatpipe-341 (-> *part-group-id-table* 417))
(defconstant group-sunken-heatpipe-357 (-> *part-group-id-table* 418))
(defconstant group-sunken-heatpipe-356 (-> *part-group-id-table* 419))
(defconstant group-sunken-heatpipe-354 (-> *part-group-id-table* 420))
(defconstant group-sunken-heatpipe-227 (-> *part-group-id-table* 421))
(defconstant group-sunken-heatpipe-238 (-> *part-group-id-table* 422))
(defconstant group-sunken-heatpipe-239 (-> *part-group-id-table* 423))
(defconstant group-sunken-heatpipe-240 (-> *part-group-id-table* 424))
(defconstant group-sunken-heatpipe-241 (-> *part-group-id-table* 425))
(defconstant group-sunken-heatpipe-242 (-> *part-group-id-table* 426))
(defconstant group-sunken-heatpipe-243 (-> *part-group-id-table* 427))
+12 -12
View File
@@ -48,10 +48,10 @@
(s4-1 (if (and (nonzero? s3-0) (type-type? (-> s3-0 type) collide-shape)) s3-0)))
(when (the-as collide-shape-moving s4-1)
(let* ((s3-1 (-> s4-1 root-prim prim-core))
(f30-0 (- (vector-vector-distance (-> gp-0 point) (the-as vector s3-1)) (-> s3-1 world-sphere w))))
(f30-0 (- (vector-vector-distance (-> gp-0 point) (-> s3-1 world-sphere)) (-> s3-1 world-sphere w))))
(when (nonzero? (-> s4-1 root-prim prim-core collide-as))
(let ((s4-2 0)
(v1-8 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (the-as vector s3-1) (-> gp-0 point)) 1.0)))
(v1-8 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> s3-1 world-sphere) (-> gp-0 point)) 1.0)))
(if (logtest? (process-mask enemy) (-> s5-0 mask)) (set! s4-2 (logior s4-2 1)))
(if (and (nonzero? (-> s5-0 draw)) (logtest? (-> s5-0 draw status) (draw-status was-drawn))) (set! s4-2 (logior s4-2 2)))
(let ((a0-16 (logand s4-2 (-> gp-0 mask))))
@@ -79,7 +79,7 @@
(set-and-handle-pat! arg0 (-> arg1 best-tri pat))
(case (-> arg1 best-tri pat material)
(((pat-material stopproj)) (send-event (-> arg0 process) 'die)))
(vector-! sv-64 (the-as vector (-> arg1 best-from-prim prim-core)) (-> arg1 best-tri intersect))
(vector-! sv-64 (-> arg1 best-from-prim prim-core world-sphere) (-> arg1 best-tri intersect))
(set! (-> sv-64 w) 1.0)
(vector-normalize! sv-64 1.0)
(set! (-> arg0 coverage) (vector-dot sv-64 (-> arg1 best-tri normal)))
@@ -506,7 +506,7 @@
:init-specs ((:fade-r -0.53333336) (:fade-g -0.53333336) (:fade-b -1.0666667) (:fade-a -0.53333336)))
(defmethod projectile-method-24 ((this projectile))
(spawn (-> this part) (the-as vector (-> this root root-prim prim-core)))
(spawn (-> this part) (-> this root root-prim prim-core world-sphere))
0
(none))
@@ -604,7 +604,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 104)
group-part-yellow-eco-fireball-hit
-1
#f
#f
@@ -624,7 +624,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 104)
group-part-yellow-eco-fireball-hit
-1
#f
#f
@@ -739,9 +739,9 @@
(sound-play "yellow-fire")
(set! (-> this sound-id) (sound-play "yellow-buzz"))
(if (not (logtest? (-> this options) 416))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 103) -1 #f #f #f s5-0 :to this))
(process-spawn part-tracker :init part-tracker-init group-part-yellow-eco-fireball-launcher -1 #f #f #f s5-0 :to this))
(set! (-> *part-id-table* 350 init-specs 2 initial-valuef) f30-0)))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 102) this))
(set! (-> this part) (create-launch-control group-yellow-eco-fireball this))
(when *target*
(case (-> *target* current-level name)
(('swamp)
@@ -790,8 +790,8 @@
(set! (-> *part-id-table* 353 init-specs 16 initial-valuef) (the-as float 0))
(set! (-> *part-id-table* 353 init-specs 16 random-rangef) (the-as float 0))
0)
(spawn (-> this part) (the-as vector (-> this root root-prim prim-core)))))
(else (spawn (-> this part) (the-as vector (-> this root root-prim prim-core)))))
(spawn (-> this part) (-> this root root-prim prim-core world-sphere))))
(else (spawn (-> this part) (-> this root root-prim prim-core world-sphere))))
(let ((s5-0 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
(set! (-> s5-0 command) (sound-command set-param))
(set! (-> s5-0 id) (-> this sound-id))
@@ -853,7 +853,7 @@
(vector+float*! (-> this target) (-> this root trans) (-> this root transv) 2.0)
(set! (-> this target-base quad) (-> this target quad))
(set! (-> this mask) (the-as process-mask (logior (process-mask ambient) (-> this mask))))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 42) this))
(set! (-> this part) (create-launch-control group-eco-blue this))
(set! (-> this root root-prim collide-with) (collide-kind background))
(let* ((s5-1 (handle->process (-> this last-target)))
(v1-20 (if (and (nonzero? s5-1) (type-type? (-> s5-1 type) process-drawable)) s5-1)))
@@ -925,7 +925,7 @@
(none))
(defmethod projectile-method-24 ((this projectile-blue))
(if (rand-vu-percent? 0.75) (eco-blue-glow (the-as vector (-> this root root-prim prim-core))))
(if (rand-vu-percent? 0.75) (eco-blue-glow (-> this root root-prim prim-core world-sphere)))
0
(none))
+3 -3
View File
@@ -126,9 +126,9 @@
(set! (-> self time-of-day) 0.0)
(if *time-of-day-fast* (set! (-> self time-ratio) 18000.0) (set! (-> self time-ratio) 300.0))
(set! (-> self star-count) 0)
(set! (-> self stars) (create-launch-control (-> *part-group-id-table* 34) self))
(set! (-> self sun) (create-launch-control (-> *part-group-id-table* 35) self))
(set! (-> self green-sun) (create-launch-control (-> *part-group-id-table* 36) self))
(set! (-> self stars) (create-launch-control group-stars self))
(set! (-> self sun) (create-launch-control group-sun self))
(set! (-> self green-sun) (create-launch-control group-green-sun self))
(go time-of-day-tick)
(none))
@@ -247,7 +247,7 @@
(defmacro defpartgroup (name &key id &key parts &key (duration 3000) &key (linger-duration 1500) &key (flags ()) &key bounds)
"define a new part group. defines a constant with the name of the group with the ID as its value"
`(begin
(defconstant ,name ,id)
; (defconstant ,name ,id)
(set! (-> *part-group-id-table* ,id)
(new 'static
'sparticle-launch-group
+8 -7
View File
@@ -69,7 +69,7 @@
(quaternion-copy! (-> self control unknown-quaternion00) (-> arg0 quat))
(move-to-point! (-> self control) (-> arg0 trans))
(rot->dir-targ! (-> self control))
(set! (-> (&-> (-> self control) unknown-qword00) 0) (-> self control trans quad))
(set! (-> (&-> self control unknown-qword00) 0) (-> self control trans quad))
(cond
((not (string= (-> arg0 name) "default")) (set! *external-cam-mode* #f) (cam-stop) (suspend) 0)
(else (send-event *camera* 'clear-entity) (send-event *camera* 'change-state cam-fixed 0) (suspend) 0))
@@ -382,7 +382,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 1)
group-target-hit
-1
#f
#f
@@ -647,7 +647,7 @@
(compute-alignment! (-> self align))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(when (not (logtest? (-> self align flags) (align-flags disabled)))
(vector-matrix*! s5-0 (the-as vector (-> self align delta)) (-> self control unknown-matrix01))
(vector-matrix*! s5-0 (-> self align delta trans) (-> self control unknown-matrix01))
(vector-float*! (-> self control transv) s5-0 (-> *display* frames-per-second))))
(suspend)
(ja :num! (seek!)))
@@ -747,7 +747,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 31)
group-dark-eco-death
-1
#f
#f
@@ -760,7 +760,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 32)
group-lava-death
-1
#f
#f
@@ -809,7 +809,8 @@
(target-falling-anim (seconds 0.1) (seconds 0.33))
(ja-channel-push! 1 (seconds 0.3))
(ja-no-eval :group! eichar-launch-jump-loop-ja :num! (loop! 0.5) :frame-num 0.0)
(suspend-for (seconds 0.8) (ja :group! eichar-launch-jump-loop-ja :num! (loop! 0.5)))
(suspend-for (seconds 0.8)
(ja :group! eichar-launch-jump-loop-ja :num! (loop! 0.5)))
(camera-change-to (the-as string 'base) 0 #f))
(('target-hit-ground-hard)
(set! (-> self control unknown-surface00) *neutral-mods*)
@@ -859,7 +860,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 708)
group-burn-death
-1
#f
#f
@@ -213,7 +213,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 1)
group-target-hit
-1
#f
#f
@@ -284,7 +284,7 @@
(let ((s3-0 run-function-in-process)
(s2-0 s4-0)
(s1-0 part-tracker-init)
(s0-0 (-> *part-group-id-table* 4)))
(s0-0 group-spin-hit))
(set! sv-224 -1)
(set! sv-240 (the-as symbol #f))
(set! sv-256 (the-as symbol #f))
@@ -319,7 +319,7 @@
(let ((s3-1 run-function-in-process)
(s2-1 s4-1)
(s1-1 part-tracker-init)
(s0-1 (-> *part-group-id-table* 5)))
(s0-1 group-punch-hit))
(set! sv-288 -1)
(set! sv-304 (the-as symbol #f))
(set! sv-320 (the-as symbol #f))
@@ -343,7 +343,7 @@
(let ((s3-2 run-function-in-process)
(s2-2 s4-2)
(s1-2 part-tracker-init)
(s0-2 (-> *part-group-id-table* 5)))
(s0-2 group-punch-hit))
(set! sv-352 -1)
(set! sv-368 (the-as symbol #f))
(set! sv-384 (the-as symbol #f))
@@ -385,7 +385,7 @@
(let ((s3-3 run-function-in-process)
(s2-3 s4-3)
(s1-3 part-tracker-init)
(s0-3 (-> *part-group-id-table* 5)))
(s0-3 group-punch-hit))
(set! sv-416 -1)
(set! sv-432 (the-as symbol #f))
(set! sv-448 (the-as symbol #f))
@@ -409,7 +409,7 @@
(let ((s3-4 run-function-in-process)
(s2-4 s4-4)
(s1-4 part-tracker-init)
(s0-4 (-> *part-group-id-table* 5)))
(s0-4 group-punch-hit))
(set! sv-480 -1)
(set! sv-496 (the-as symbol #f))
(set! sv-512 (the-as symbol #f))
@@ -486,7 +486,7 @@
(set! (-> self attack-info-rec attacker) (process->handle arg0))
(logior! (-> self attack-info-rec mask) (attack-mask attacker)))
(go target-hit 'shove (-> self attack-info-rec))))
(('launch) (mem-copy! (&-> (-> self control) unknown-pointer00) (the-as pointer arg3) 72) #t)
(('launch) (mem-copy! (&-> self control unknown-pointer00) (the-as pointer arg3) 72) #t)
(('powerup)
(if (or (= (-> self next-state name) 'target-stance)
(= (-> self next-state name) 'target-walk)
@@ -576,7 +576,7 @@
(vector-dot (-> self control dynam gravity-normal)
(vector-! (new 'stack-no-clear 'vector) (-> self control transv) (-> self control unknown-vector10))))
(begin
(vector-normalize! (vector-! s4-0 (the-as vector (-> self control unknown-sphere-array00 0 prim-core)) (-> self control unknown-vector72))
(vector-normalize! (vector-! s4-0 (-> self control unknown-sphere-array00 0 prim-core world-sphere) (-> self control unknown-vector72))
(the-as float 1.0))
(< 0.01 (-> s4-0 y))))
(if (< 0.75 (-> s4-0 y))
+6 -6
View File
@@ -134,7 +134,7 @@
(when (< (-> self nb-of-particles) (-> self max-nb-of-particles))
(let ((gp-0 (-> self nb-of-particles)))
(set! (-> self particles gp-0) (new 'static 'hud-particle))
(set! (-> self particles gp-0 part) (create-launch-control (-> *part-group-id-table* 611) self))
(set! (-> self particles gp-0 part) (create-launch-control group-part-first-person-hud-left self))
(set! (-> self particles gp-0 init-pos x) -320.0)
(set! (-> self particles gp-0 init-pos y) 254.0)
(set! (-> self particles gp-0 init-pos z) 15.0)
@@ -143,7 +143,7 @@
(when (< (-> self nb-of-particles) (-> self max-nb-of-particles))
(let ((gp-1 (-> self nb-of-particles)))
(set! (-> self particles gp-1) (new 'static 'hud-particle))
(set! (-> self particles gp-1 part) (create-launch-control (-> *part-group-id-table* 612) self))
(set! (-> self particles gp-1 part) (create-launch-control group-part-first-person-hud-right self))
(set! (-> self particles gp-1 init-pos x) -320.0)
(set! (-> self particles gp-1 init-pos y) 192.0)
(set! (-> self particles gp-1 init-pos z) 15.0)
@@ -152,7 +152,7 @@
(when (< (-> self nb-of-particles) (-> self max-nb-of-particles))
(let ((gp-2 (-> self nb-of-particles)))
(set! (-> self particles gp-2) (new 'static 'hud-particle))
(set! (-> self particles gp-2 part) (create-launch-control (-> *part-group-id-table* 613) self))
(set! (-> self particles gp-2 part) (create-launch-control group-part-first-person-hud-selector self))
(set! (-> self particles gp-2 init-pos x) 256.0)
(set! (-> self particles gp-2 init-pos y) 244.0)
(set! (-> self particles gp-2 init-pos z) 15.0)
@@ -817,7 +817,7 @@
(target-compute-edge-rider)
(compute-alignment! (-> self align))
(when (not (logtest? (-> self align flags) (align-flags disabled)))
(vector-matrix*! s4-0 (the-as vector (-> self align delta)) (-> self control unknown-matrix01))
(vector-matrix*! s4-0 (-> self align delta trans) (-> self control unknown-matrix01))
(move-by-vector! (-> self control) s4-0))
(suspend)
(ja :num! (seek!))))
@@ -843,7 +843,7 @@
(until (ja-done? 0)
(compute-alignment! (-> self align))
(when (not (logtest? (-> self align flags) (align-flags disabled)))
(vector-matrix*! gp-0 (the-as vector (-> self align delta)) (-> self control unknown-matrix01))
(vector-matrix*! gp-0 (-> self align delta trans) (-> self control unknown-matrix01))
(move-by-vector! (-> self control) gp-0))
(suspend)
(ja :num! (seek! (ja-aframe (the-as float 191.0) 0)))))
@@ -1768,7 +1768,7 @@
(send-event (ppointer->process (-> self sidekick)) 'matrix 'normal)
(send-event (ppointer->process (-> self sidekick)) 'shadow #t)
(let ((gp-0 (joint-node eichar-lod0-jg main))
(a1-2 (&-> (-> self control) unknown-qword00)))
(a1-2 (&-> self control unknown-qword00)))
(cond
((not (-> self control unknown-spoolanim00)))
((not (logtest? (-> self draw status) (draw-status hidden)))
+20 -14
View File
@@ -118,6 +118,7 @@
(deftype hud-pickups (hud) ())
(defmethod draw-hud ((this hud-pickups))
(let ((t9-0 (method-of-type hud draw-hud))) (t9-0 this))
(let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
@@ -154,7 +155,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-0 (-> this nb-of-particles)))
(set! (-> this particles s5-0) (new 'static 'hud-particle))
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 75) this))
(set! (-> this particles s5-0 part) (create-launch-control group-part-hud-pickup this))
(set! (-> this particles s5-0 init-pos x) 110.0)
(set! (-> this particles s5-0 init-pos y) 55.0)
(set! (-> this particles s5-0 init-pos z) 1.0)
@@ -233,6 +234,7 @@
(deftype hud-health (hud)
((scale float)))
(defun part-hud-health-01-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
(let ((f0-0 (-> *hud-parts* health 0 scale))) (set! (-> arg2 vector 0 w) f0-0) (set! (-> arg2 vector 1 w) f0-0))
(cond
@@ -281,7 +283,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-0 (-> this nb-of-particles)))
(set! (-> this particles s5-0) (new 'static 'hud-particle))
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 76) this))
(set! (-> this particles s5-0 part) (create-launch-control group-part-hud-health-1 this))
(set! (-> this particles s5-0 init-pos x) 61.0)
(set! (-> this particles s5-0 init-pos y) 55.0)
(set! (-> this particles s5-0 init-pos z) 5.0)
@@ -290,7 +292,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-1 (-> this nb-of-particles)))
(set! (-> this particles s5-1) (new 'static 'hud-particle))
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 77) this))
(set! (-> this particles s5-1 part) (create-launch-control group-part-hud-health-2 this))
(set! (-> this particles s5-1 init-pos x) 98.0)
(set! (-> this particles s5-1 init-pos y) 55.0)
(set! (-> this particles s5-1 init-pos z) 5.0)
@@ -299,7 +301,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-2 (-> this nb-of-particles)))
(set! (-> this particles s5-2) (new 'static 'hud-particle))
(set! (-> this particles s5-2 part) (create-launch-control (-> *part-group-id-table* 78) this))
(set! (-> this particles s5-2 part) (create-launch-control group-part-hud-health-3 this))
(set! (-> this particles s5-2 init-pos x) 70.0)
(set! (-> this particles s5-2 init-pos y) 76.0)
(set! (-> this particles s5-2 init-pos z) 5.0)
@@ -369,6 +371,7 @@
(level-index int32)
(start-time time-frame)))
(defmethod draw-hud ((this hud-money-all))
(let ((t9-0 (method-of-type hud draw-hud))) (t9-0 this))
0
@@ -385,9 +388,9 @@
0.0
(font-color red)
(font-flags shadow kerning))))
(let ((v1-12 s5-1)) (set! (-> v1-12 width) (the float 228)))
(let ((v1-13 s5-1)) (set! (-> v1-13 height) (the float 45)))
(let ((v1-14 s5-1)) (set! (-> v1-14 scale) 0.6))
(set-width! s5-1 228)
(set-height! s5-1 45)
(set-scale! s5-1 0.6)
(set! (-> s5-1 flags) (font-flags shadow kerning middle middle-vert large))
(print-game-text (lookup-text! *common-text* (-> *level-task-data* (-> this level-index) level-name-id) #f)
s5-1
@@ -462,7 +465,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s4-1 (-> this nb-of-particles)))
(set! (-> this particles s4-1) (new 'static 'hud-particle))
(set! (-> this particles s4-1 part) (create-launch-control (-> *part-group-id-table* 705) this))
(set! (-> this particles s4-1 part) (create-launch-control group-part-hud-orb-all this))
(set! (-> this particles s4-1 init-pos x) 172.0)
(set! (-> this particles s4-1 init-pos y) 330.0)
(set! (-> this particles s4-1 init-pos z) 2.0)
@@ -611,7 +614,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-1 (-> this nb-of-particles)))
(set! (-> this particles s5-1) (new 'static 'hud-particle))
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 79) this))
(set! (-> this particles s5-1 part) (create-launch-control group-part-hud-orb this))
(set! (-> this particles s5-1 init-pos x) 400.0)
(set! (-> this particles s5-1 init-pos y) 58.0)
(set! (-> this particles s5-1 init-pos z) 2.0)
@@ -853,6 +856,7 @@
(scale-center float)
(icon-pos-y int32)))
(defmethod draw-hud ((this hud-fuel-cell))
(let ((t9-0 (method-of-type hud draw-hud))) (t9-0 this))
(with-dma-buffer-add-bucket ((buf (-> (current-frame) global-buf)) (bucket-id debug))
@@ -953,7 +957,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-0 (-> this nb-of-particles)))
(set! (-> this particles s5-0) (new 'static 'hud-particle))
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 80) this))
(set! (-> this particles s5-0 part) (create-launch-control group-part-hud-power-cell-whole this))
(set! (-> this particles s5-0 init-pos x) 256.0)
(set! (-> this particles s5-0 init-pos y) 224.0)
(set! (-> this particles s5-0 init-pos z) 1.0)
@@ -1059,6 +1063,7 @@
((scale float)
(text-y-offset int32)))
(defun part-hud-buzzer-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
(let ((f0-0 (-> *hud-parts* buzzers 0 scale))) (set! (-> arg2 vector 0 w) f0-0) (set! (-> arg2 vector 1 w) f0-0))
(none))
@@ -1117,7 +1122,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-0 (-> this nb-of-particles)))
(set! (-> this particles s5-0) (new 'static 'hud-particle))
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 81) this))
(set! (-> this particles s5-0 part) (create-launch-control group-part-hud-buzzer this))
(set! (-> this particles s5-0 init-pos x) 60.0)
(set! (-> this particles s5-0 init-pos y) 380.0)
(set! (-> this particles s5-0 init-pos z) 1.0)
@@ -1248,6 +1253,7 @@
(scale-backing float)
(scale-blue float)))
(defun calculate-rotation-and-color-for-slice ((arg0 int) (arg1 float) (arg2 int) (arg3 int) (arg4 int) (arg5 matrix))
(cond
((>= 0.0 arg1) (set! (-> arg5 vector 1 z) -16566.045))
@@ -1357,7 +1363,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-0 (-> this nb-of-particles)))
(set! (-> this particles s5-0) (new 'static 'hud-particle))
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 83) this))
(set! (-> this particles s5-0 part) (create-launch-control group-part-hud-eco-timer-backing this))
(set! (-> this particles s5-0 init-pos x) 435.0)
(set! (-> this particles s5-0 init-pos y) 370.0)
(set! (-> this particles s5-0 init-pos z) 10.0)
@@ -1366,7 +1372,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-1 (-> this nb-of-particles)))
(set! (-> this particles s5-1) (new 'static 'hud-particle))
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 84) this))
(set! (-> this particles s5-1 part) (create-launch-control group-part-hud-timer-blue this))
(set! (-> this particles s5-1 init-pos x) 432.0)
(set! (-> this particles s5-1 init-pos y) 368.0)
(set! (-> this particles s5-1 init-pos z) 3.0)
@@ -1375,7 +1381,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-2 (-> this nb-of-particles)))
(set! (-> this particles s5-2) (new 'static 'hud-particle))
(set! (-> this particles s5-2 part) (create-launch-control (-> *part-group-id-table* 82) this))
(set! (-> this particles s5-2 part) (create-launch-control group-part-hud-eco-timer this))
(set! (-> this particles s5-2 init-pos x) 435.0)
(set! (-> this particles s5-2 init-pos y) 370.0)
(set! (-> this particles s5-2 init-pos z) 2.0)
+2 -2
View File
@@ -310,7 +310,7 @@
(set! (-> this distance) (res-lump-float arg0 'distance :default 3072.0))
(set! (-> this position) 0)
(set! (-> this max-position) (res-lump-value arg0 'num-positions int :default (the-as uint128 3)))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 155) this))
(set! (-> this part) (create-launch-control group-beach-grotto-pole-rocks this))
(set! (-> this position) (-> this entity extra perm user-int16 0))
(move-grottopole-to-position this)
(go grottopole-idle)
@@ -483,7 +483,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 156)
group-beach-harvester-rock-explosion
-1
#f
#f
+3 -3
View File
@@ -349,9 +349,9 @@
(set! (-> this align) (new 'process 'align-control this))
(set! (-> this trigger) #f)
(logclear! (-> this mask) (process-mask actor-pause))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 553) this))
(set! (-> this part-falling) (create-launch-control (-> *part-group-id-table* 554) this))
(set! (-> this part-landing) (create-launch-control (-> *part-group-id-table* 555) this))
(set! (-> this part) (create-launch-control group-beach-rocks-start this))
(set! (-> this part-falling) (create-launch-control group-beach-rocks-fall this))
(set! (-> this part-landing) (create-launch-control group-beach-rocks-land this))
(set! (-> this prev-frame) -1000.0)
(set! (-> this draw origin-joint-index) (the-as uint 4))
(case (get-task-status (-> this entity extra perm task))
+2 -2
View File
@@ -334,7 +334,7 @@ nav-enemy-default-event-handler
(behavior ()
(let ((a0-0 (-> self part))
(a1-0 (-> self collide-info root-prim prim-core)))
(spawn a0-0 (the-as vector a1-0)))
(spawn a0-0 (-> a1-0 world-sphere)))
(nav-enemy-travel-post)))
(define *lurkercrab-nav-enemy-info*
@@ -428,7 +428,7 @@ nav-enemy-default-event-handler
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *lurkercrab-sg* '())
(init-defaults! this *lurkercrab-nav-enemy-info*)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 159) this))
(set! (-> this part) (create-launch-control group-lurkercrab-slide this))
(set! (-> this orient) #t)
(logclear! (-> this nav-enemy-flags) (nav-enemy-flags navenmf5 navenmf6))
(set! (-> this target-speed) 0.0)
+2 -2
View File
@@ -440,8 +440,8 @@ lurkerworm-default-post-behavior
(set! (-> this fact) (new 'process 'fact-info-enemy this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)))
(set! (-> this angle) 0.0)
(set! (-> this vulnerable) #f)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 157) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 158) this))
(set! (-> this part) (create-launch-control group-beach-sandworm this))
(set! (-> this part2) (create-launch-control group-beach-sandworm-norocks this))
(set! (-> this twister) (new 'process 'twister 3 15 1092.2667 72.81778 0.25 0.001))
(twister-method-9 (-> this twister) 3 9 910.2222)
(set! (-> this head-tilt) 0.0)
+11 -9
View File
@@ -19,6 +19,7 @@
(post-spit-wait-time seconds)
(run-away-time seconds)))
(define *PELICAN-bank*
(new 'static
'pelican-bank
@@ -69,12 +70,13 @@
(pelican-wait-at-end symbol)
(pelican-wait-at-nest symbol)))
(defmethod relocate ((this pelican) (arg0 int))
(defmethod relocate ((this pelican) (offset int))
(countdown (v1-0 8)
(if (nonzero? (-> this path-data v1-0)) (&+! (-> this path-data v1-0) arg0)))
(if (nonzero? (-> this path-cache)) (&+! (-> this path-cache) arg0))
(if (nonzero? (-> this neck)) (&+! (-> this neck) arg0))
(call-parent-method this arg0))
(if (nonzero? (-> this path-data v1-0)) (&+! (-> this path-data v1-0) offset)))
(if (nonzero? (-> this path-cache)) (&+! (-> this path-cache) offset))
(if (nonzero? (-> this neck)) (&+! (-> this neck) offset))
(call-parent-method this offset))
(defskelgroup *pelican-sg*
pelican
@@ -155,7 +157,7 @@
(send-event (ppointer->process v1-8)
'eval
(lambda :behavior pelican ()
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 63) self))) (set! (-> self part) v0-0) v0-0))))))
(let ((v0-0 (create-launch-control group-fuel-cell-starburst self))) (set! (-> self part) v0-0) v0-0))))))
(set! (-> self path) (-> self path-circle))
(set! (-> self path-pos) 0.0)
(set! (-> self path-max) (the float (+ (-> self path curve num-cverts) -1)))
@@ -381,7 +383,7 @@
:post
(behavior ()
(when *target*
(if *target* (look-at-enemy! (-> *target* neck) (the-as vector (-> self root root-prim prim-core)) 'nothing self))
(if *target* (look-at-enemy! (-> *target* neck) (-> self root root-prim prim-core world-sphere) 'nothing self))
(if (nonzero? (-> self neck)) (set-target! (-> self neck) (target-pos 5))))
(pelican-post)))
@@ -522,7 +524,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 71)
group-crate-explode
-1
#f
#f
@@ -594,7 +596,7 @@
(send-event (ppointer->process s5-2)
'eval
(lambda :behavior pelican ()
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 63) self))) (set! (-> self part) v0-0) v0-0)))
(let ((v0-0 (create-launch-control group-fuel-cell-starburst self))) (set! (-> self part) v0-0) v0-0)))
(send-event (ppointer->process s5-2) 'trans-hook fuel-cell-animate)))
(go pelican-wait-at-nest #t))
(else (go pelican-circle)))
+7 -7
View File
@@ -645,7 +645,7 @@
(set! (-> this root) s4-0))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *citb-robotboss-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 601) this))
(set! (-> this part) (create-launch-control group-citb-robotboss-shield this))
(logclear! (-> this mask) (process-mask actor-pause))
(set! (-> this shield-on) #t)
(set! (-> this sound) (new 'process 'ambient-sound (static-sound-spec "robotcage-lp" :fo-max 150) (-> this root trans)))
@@ -723,8 +723,8 @@
(set! (-> this root) (new 'process 'trsqv))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *citb-coil-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 596) this))
(set! (-> this part-off) (create-launch-control (-> *part-group-id-table* 602) this))
(set! (-> this part) (create-launch-control group-citb-coil-glow this))
(set! (-> this part-off) (create-launch-control group-citb-coil-off this))
(let ((v1-9 (entity-actor-lookup (-> this entity) 'state-actor 0)))
(if (not v1-9) (set! v1-9 (-> this entity)))
(if (logtest? (-> v1-9 extra perm status) (entity-perm-status complete)) (go citb-coil-broken) (go citb-coil-idle)))
@@ -924,7 +924,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 598)
group-citb-generator-break
-1
#f
#f
@@ -992,9 +992,9 @@
(when (-> this mushroom)
(+! (-> this mushroom-pos x) (* 19251.2 (sin f30-0)))
(+! (-> this mushroom-pos z) (* 19251.2 (cos f30-0)))))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 600) this))
(set! (-> this part-broken) (create-launch-control (-> *part-group-id-table* 597) this))
(set! (-> this part-mushroom) (create-launch-control (-> *part-group-id-table* 599) this))
(set! (-> this part) (create-launch-control group-citb-generator-on this))
(set! (-> this part-broken) (create-launch-control group-citb-generator-off this))
(set! (-> this part-mushroom) (create-launch-control group-citb-generator-mushroom-on this))
(set! (-> this sound) (new 'process 'ambient-sound (static-sound-spec "mushroom-gen" :fo-max 20) (-> this root trans)))
0
(none))
+17 -11
View File
@@ -30,6 +30,7 @@
(:states
citb-sagecage-idle))
(defbehavior citb-sagecage-draw-bars citb-sagecage ()
(when (logtest? (-> self draw status) (draw-status was-drawn))
(let ((gp-0 (-> self node-list data 3 bone transform))
@@ -216,9 +217,10 @@
(sound-id sound-id)
(alt-actor entity-actor)))
(defmethod relocate ((this citb-sage) (arg0 int))
(if (nonzero? (-> this part-impact)) (&+! (-> this part-impact) arg0))
(the-as citb-sage ((method-of-type process-taskable relocate) this arg0)))
(defmethod relocate ((this citb-sage) (offset int))
(if (nonzero? (-> this part-impact)) (&+! (-> this part-impact) offset))
(the-as citb-sage ((method-of-type process-taskable relocate) this offset)))
(defmethod deactivate ((this citb-sage))
(if (nonzero? (-> this part-impact)) (kill-and-free-particles (-> this part-impact)))
@@ -326,6 +328,7 @@
(deftype red-sagecage (citb-sage) ())
(defmethod process-taskable-method-52 ((this red-sagecage))
(let ((v1-1 (-> this draw shadow-ctrl)))
(when v1-1
@@ -360,8 +363,8 @@
(set! (-> this attack-start-anim) 5)
(set! (-> this attack-anim) 6)
(set! (-> this beam-joint) 20)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 604) this))
(set! (-> this part-impact) (create-launch-control (-> *part-group-id-table* 608) this))
(set! (-> this part) (create-launch-control group-citb-red-sage-beam this))
(set! (-> this part-impact) (create-launch-control group-citb-red-sage-beam-impact this))
(set! (-> this resolution-anim)
(new 'static
'spool-anim
@@ -393,6 +396,7 @@
(deftype blue-sagecage (citb-sage) ())
(defmethod process-taskable-method-52 ((this blue-sagecage))
(let ((v1-1 (-> this draw shadow-ctrl)))
(when v1-1
@@ -427,8 +431,8 @@
(set! (-> this attack-start-anim) 5)
(set! (-> this attack-anim) 6)
(set! (-> this beam-joint) 53)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 603) this))
(set! (-> this part-impact) (create-launch-control (-> *part-group-id-table* 607) this))
(set! (-> this part) (create-launch-control group-citb-blue-sage-beam this))
(set! (-> this part-impact) (create-launch-control group-citb-blue-sage-beam-impact this))
(set! (-> this resolution-anim)
(new 'static
'spool-anim
@@ -469,6 +473,7 @@
(deftype yellow-sagecage (citb-sage) ())
(defmethod process-taskable-method-52 ((this yellow-sagecage))
(let ((v1-1 (-> this draw shadow-ctrl)))
(when v1-1
@@ -503,8 +508,8 @@
(set! (-> this attack-start-anim) 5)
(set! (-> this attack-anim) 6)
(set! (-> this beam-joint) 74)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 605) this))
(set! (-> this part-impact) (create-launch-control (-> *part-group-id-table* 609) this))
(set! (-> this part) (create-launch-control group-citb-yellow-sage-beam this))
(set! (-> this part-impact) (create-launch-control group-citb-yellow-sage-beam-impact this))
(set! (-> this resolution-anim)
(new 'static
'spool-anim
@@ -541,6 +546,7 @@
(robotboss handle)
(exitplat handle)))
(defmethod process-taskable-method-45 ((this green-sagecage))
(set! (-> *part-id-table* 2469 init-specs 14 initial-valuef) (-> this rot-y))
(set! (-> *part-id-table* 2469 init-specs 13 initial-valuef) (-> this rot-x))
@@ -555,8 +561,8 @@
(set! (-> this attack-start-anim) 4)
(set! (-> this attack-anim) 4)
(set! (-> this beam-joint) 22)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 606) this))
(set! (-> this part-impact) (create-launch-control (-> *part-group-id-table* 610) this))
(set! (-> this part) (create-launch-control group-citb-green-sage-beam this))
(set! (-> this part-impact) (create-launch-control group-citb-green-sage-beam-impact this))
(set! (-> this resolution-anim)
(new 'static
'spool-anim
+1 -1
View File
@@ -721,7 +721,7 @@
(initialize-skeleton this *citb-firehose-sg* '())
(load-params! (-> this sync) this (the-as uint 900) 0.0 0.15 0.15)
(set! (-> this idle-distance) 286720.0)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 685) this))
(set! (-> this part) (create-launch-control group-firehose-blast-smoke this))
(clear-collide-with-as (-> this root))
(go citb-firehose-idle)
(none))
+3 -3
View File
@@ -168,7 +168,7 @@
(until (time-elapsed? (-> self state-time) (seconds 1))
(let ((f0-2 (the float (- (current-time) (-> self state-time))))) (eval-position! gp-1 f0-2 (-> self root trans)))
(transform-post)
(spawn (-> self part) (the-as vector (-> self root root-prim prim-core)))
(spawn (-> self part) (-> self root root-prim prim-core world-sphere))
(suspend)
(if (nonzero? (-> self skel)) (ja :num! (loop! 0.5)))))
(set! (-> self root trans quad) (-> self jump-pos quad))
@@ -178,7 +178,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 4)
group-spin-hit
-1
#f
#f
@@ -216,7 +216,7 @@
(set-vector! (-> self root scale) 0.5 0.5 0.5 1.0)
(set! (-> self index) arg3)
(initialize-skeleton self *powercellalt-sg* '())
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 63) self))
(set! (-> self part) (create-launch-control group-fuel-cell-starburst self))
enter-state
(-> self root trans)
(-> self jump-pos)
@@ -381,7 +381,7 @@
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self collide-info trans quad))
(+! (-> gp-0 y) 8192.0)
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 643) -1 #f #f #f gp-0 :to *entity-pool*))
(process-spawn part-tracker :init part-tracker-init group-green-eco-lurker-death -1 #f #f #f gp-0 :to *entity-pool*))
(let ((gp-1 (new 'stack-no-clear 'vector)))
(vector-! gp-1 (-> self appear-dest) (-> self collide-info trans))
(set! (-> gp-1 y) 0.0)
@@ -498,7 +498,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 643)
group-green-eco-lurker-death
-1
#f
#f
+3 -3
View File
@@ -455,7 +455,7 @@
(ja-channel-set! 1)
(ja-no-eval :num! (seek!))
(ja :group! light-eco-small-idle-ja :num! min)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 692) self))
(set! (-> self part) (create-launch-control group-light-eco-child self))
(transform-post)
(go light-eco-child-appear)
(none))
@@ -590,8 +590,8 @@
(ja-channel-set! 1)
(ja-no-eval :num! (seek!))
(ja :group! light-eco-big-idle-ja :num! min)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 691) self))
(set! (-> self part2) (create-launch-control (-> *part-group-id-table* 690) self))
(set! (-> self part) (create-launch-control group-light-eco-mother self))
(set! (-> self part2) (create-launch-control group-light-eco-mother-growing self))
(set! (-> self sound)
(new 'process 'ambient-sound (static-sound-spec "white-eco-lp" :fo-min 300 :fo-max 400) (-> self root trans)))
(ja-post)
@@ -68,12 +68,14 @@
(kind basic)
(trans vector :inline)))
(deftype ecoclaw (process-drawable)
((particles ecoclaw-part-info 3 :inline))
(:states
ecoclaw-activate
ecoclaw-idle))
(defskelgroup *ecoclaw-sg*
ecoclaw
ecoclaw-lod0-jg
@@ -199,6 +201,7 @@
idle
hidden))
(defskelgroup *silodoor-sg*
silodoor
silodoor-lod0-jg
@@ -305,6 +308,7 @@
(deftype finalbosscam (process-taskable)
((robotboss handle)))
(defskelgroup *finalbosscam-sg*
finalbosscam
finalbosscam-lod0-jg
@@ -330,7 +334,7 @@
(send-event (handle->process (-> this robotboss))
'eval
(lambda :behavior finalbosscam ()
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 645) self))) (set! (-> self part) v0-0) v0-0)))
(let ((v0-0 (create-launch-control group-robotboss-blue-smoke self))) (set! (-> self part) v0-0) v0-0)))
(let ((v1-43 (handle->process (-> this robotboss))))
(if v1-43 (set! (-> (the-as robotboss v1-43) draw bounds w) 327680.0))))
(the-as basic (new 'static 'spool-anim :name "finalbosscam-white-eco" :index 3 :parts 3 :command-list '())))
@@ -21,7 +21,7 @@
(let ((gp-0 (new 'stack-no-clear 'vector))
(s5-0 (new 'stack-no-clear 'vector))
(f30-0 (+ (-> this radius-secondary) (-> arg0 world-sphere w))))
(vector-! gp-0 (the-as vector arg0) (-> this origin))
(vector-! gp-0 (-> arg0 world-sphere) (-> this origin))
(vector-flatten! s5-0 gp-0 (-> this axis))
(vector-normalize! s5-0 (-> this radius-primary))
(vector-! arg1 gp-0 s5-0)
@@ -182,7 +182,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 619)
group-final-boss-mine-explosion
900
#f
#f
@@ -237,7 +237,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 663)
group-robotboss-darkecobomb-tick
150
#f
#f
@@ -332,7 +332,7 @@
(set! (-> self root trans quad) (-> arg0 quad))
(initialize-skeleton self *darkecobomb-sg* '())
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 639) self))
(set! (-> self part) (create-launch-control group-robotboss-darkecobomb-glow self))
(arcing-shot-setup arg0 arg1 arg2)
(set! (-> self countdown-time) arg4)
(set! (-> self flight-time) arg3)
@@ -391,7 +391,7 @@
(logclear! (-> self mask) (process-mask actor-pause))
(arcing-shot-setup arg0 arg1 arg2)
(set! (-> self flight-time) arg3)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 664) self))
(set! (-> self part) (create-launch-control group-robotboss-greenshot self))
(logior! (-> self draw status) (draw-status hidden))
(go greenshot-idle)
(none))
@@ -460,7 +460,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 648)
group-robotboss-redshot
-1
redshot-particle-callback
(-> self ppointer)
@@ -552,9 +552,9 @@
(set! (-> self flight-time) arg3)
(set! (-> self stall-time) arg4)
(set! (-> self rotation-offset) arg5)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 647) self))
(set! (-> self shot-particle) (create-launch-control (-> *part-group-id-table* 665) self))
(set! (-> self test-particle) (create-launch-control (-> *part-group-id-table* 679) self))
(set! (-> self part) (create-launch-control group-robotboss-redshot-warning self))
(set! (-> self shot-particle) (create-launch-control group-robotboss-redshot-body self))
(set! (-> self test-particle) (create-launch-control group-robotboss-redshot-test self))
(logior! (-> self draw status) (draw-status hidden))
(set! (-> self sound) (new 'process 'ambient-sound (static-sound-spec "red-fireball" :fo-max 80) (-> self root trans)))
(go redshot-idle)
@@ -611,6 +611,6 @@
(logior! (-> self draw status) (draw-status hidden))
(arcing-shot-setup arg0 arg1 arg2)
(set! (-> self flight-time) arg3)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 652) self))
(set! (-> self part) (create-launch-control group-robotboss-yellowshot self))
(go yellowshot-idle)
(none))
+69 -39
View File
@@ -56,9 +56,7 @@
(let ((s4-1 (new 'stack-no-clear 'vector)))
(vector<-cspace! s4-1 (joint-node robotboss-basic-lod0-jg camera))
(set! (-> *camera-other-trans* quad) (-> s4-1 quad)))
(vector-normalize-copy! (the-as vector (-> *camera-other-matrix* vector))
(the-as vector (-> s5-1 vector))
(the-as float -1.0))
(vector-normalize-copy! (-> *camera-other-matrix* vector 0) (-> s5-1 vector 0) (the-as float -1.0))
(set! (-> *camera-other-matrix* vector 0 w) 0.0)
(vector-normalize-copy! (-> *camera-other-matrix* vector 1) (-> s5-1 vector 1) (the-as float 1.0))
(set! (-> *camera-other-matrix* vector 1 w) 0.0)
@@ -217,7 +215,7 @@
(set! (-> gp-0 x) 0.0)
(vector-matrix*! gp-0 gp-0 s4-0)
(vector+! (-> self root trans) gp-0 (-> self entity extra trans))
(vector-negate! (the-as vector (-> s4-0 vector)) (the-as vector (-> s4-0 vector)))
(vector-negate! (-> s4-0 vector 0) (-> s4-0 vector 0))
(vector-negate! (-> s4-0 vector 2) (-> s4-0 vector 2))
(matrix->quaternion (-> self root quat) s4-0))
(vector-! gp-0 s5-0 (-> self root trans))
@@ -245,7 +243,17 @@
(set! (-> s4-0 quad) (-> self entity extra trans quad))
(vector+! s4-0 s4-0 arg0)
(process-spawn darkecobomb gp-0 s4-0 61440.0 300 arg1 :to self))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 638) 300 #f #f #f gp-0 :to *entity-pool*)))
(process-spawn part-tracker
:init
part-tracker-init
group-robotboss-darkecobomb-launch
300
#f
#f
#f
gp-0
:to
*entity-pool*)))
(defbehavior robotboss-bomb-handler robotboss ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(local-vars (v0-0 object))
@@ -439,7 +447,7 @@
(set! (-> a1-0 from) self)
(set! (-> a1-0 num-params) 1)
(set! (-> a1-0 message) 'open)
(set! (-> a1-0 param 0) (the-as uint (-> *part-group-id-table* 674)))
(set! (-> a1-0 param 0) (the-as uint group-robotboss-blue-claw-glow))
(let ((t9-0 send-event-function)
(v1-4 (-> self alts 3)))
(t9-0 (if v1-4 (-> v1-4 extra process)) a1-0)))
@@ -447,7 +455,7 @@
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 1)
(set! (-> a1-1 message) 'open)
(set! (-> a1-1 param 0) (the-as uint (-> *part-group-id-table* 675)))
(set! (-> a1-1 param 0) (the-as uint group-robotboss-green-claw-glow))
(let ((t9-1 send-event-function)
(v1-11 (-> self alts 2)))
(t9-1 (if v1-11 (-> v1-11 extra process)) a1-1)))
@@ -455,7 +463,7 @@
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 1)
(set! (-> a1-2 message) 'open)
(set! (-> a1-2 param 0) (the-as uint (-> *part-group-id-table* 676)))
(set! (-> a1-2 param 0) (the-as uint group-robotboss-red-claw-glow))
(let ((t9-2 send-event-function)
(v1-18 (-> self alts 1)))
(t9-2 (if v1-18 (-> v1-18 extra process)) a1-2)))
@@ -463,7 +471,7 @@
(set! (-> a1-3 from) self)
(set! (-> a1-3 num-params) 1)
(set! (-> a1-3 message) 'open)
(set! (-> a1-3 param 0) (the-as uint (-> *part-group-id-table* 677)))
(set! (-> a1-3 param 0) (the-as uint group-robotboss-yellow-claw-glow))
(let ((t9-3 send-event-function)
(v1-25 (-> self alts 4)))
(t9-3 (if v1-25 (-> v1-25 extra process)) a1-3)))
@@ -471,8 +479,8 @@
(set! (-> a1-4 from) self)
(set! (-> a1-4 num-params) 3)
(set! (-> a1-4 message) 'beam-on)
(set! (-> a1-4 param 0) (the-as uint (-> *part-group-id-table* 666)))
(set! (-> a1-4 param 1) (the-as uint (-> *part-group-id-table* 666)))
(set! (-> a1-4 param 0) (the-as uint group-finalboss-blue-claw-beam))
(set! (-> a1-4 param 1) (the-as uint group-finalboss-blue-claw-beam))
(set! (-> a1-4 param 2) (the-as uint (-> self entity extra trans)))
(let ((t9-4 send-event-function)
(v1-37 (-> self alts 3)))
@@ -481,8 +489,8 @@
(set! (-> a1-5 from) self)
(set! (-> a1-5 num-params) 3)
(set! (-> a1-5 message) 'beam-on)
(set! (-> a1-5 param 0) (the-as uint (-> *part-group-id-table* 672)))
(set! (-> a1-5 param 1) (the-as uint (-> *part-group-id-table* 672)))
(set! (-> a1-5 param 0) (the-as uint group-finalboss-green-claw-beam))
(set! (-> a1-5 param 1) (the-as uint group-finalboss-green-claw-beam))
(set! (-> a1-5 param 2) (the-as uint (-> self entity extra trans)))
(let ((t9-5 send-event-function)
(v1-49 (-> self alts 2)))
@@ -491,8 +499,8 @@
(set! (-> a1-6 from) self)
(set! (-> a1-6 num-params) 3)
(set! (-> a1-6 message) 'beam-on)
(set! (-> a1-6 param 0) (the-as uint (-> *part-group-id-table* 668)))
(set! (-> a1-6 param 1) (the-as uint (-> *part-group-id-table* 668)))
(set! (-> a1-6 param 0) (the-as uint group-finalboss-red-claw-beam))
(set! (-> a1-6 param 1) (the-as uint group-finalboss-red-claw-beam))
(set! (-> a1-6 param 2) (the-as uint (-> self entity extra trans)))
(let ((t9-6 send-event-function)
(v1-61 (-> self alts 1)))
@@ -501,8 +509,8 @@
(set! (-> a1-7 from) self)
(set! (-> a1-7 num-params) 3)
(set! (-> a1-7 message) 'beam-on)
(set! (-> a1-7 param 0) (the-as uint (-> *part-group-id-table* 670)))
(set! (-> a1-7 param 1) (the-as uint (-> *part-group-id-table* 670)))
(set! (-> a1-7 param 0) (the-as uint group-finalboss-yellow-claw-beam))
(set! (-> a1-7 param 1) (the-as uint group-finalboss-yellow-claw-beam))
(set! (-> a1-7 param 2) (the-as uint (-> self entity extra trans)))
(let ((t9-7 send-event-function)
(v1-73 (-> self alts 4)))
@@ -568,7 +576,17 @@
(vector+! s5-0 s5-0 gp-0)
(process-spawn yellowshot gp-0 s5-0 0.0 750 :to self))
(send-event self 'flash 255.0)
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 642) 300 #f #f #f gp-0 :to *entity-pool*))
(process-spawn part-tracker
:init
part-tracker-init
group-robotboss-yellowshot-launch
300
#f
#f
#f
gp-0
:to
*entity-pool*))
(sound-play "bfg-fire")
(none))
@@ -609,7 +627,7 @@
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 1)
(set! (-> a1-1 message) 'open)
(set! (-> a1-1 param 0) (the-as uint (-> *part-group-id-table* 677)))
(set! (-> a1-1 param 0) (the-as uint group-robotboss-yellow-claw-glow))
(let ((t9-1 send-event-function)
(v1-10 (-> self alts 4)))
(t9-1 (if v1-10 (-> v1-10 extra process)) a1-1)))
@@ -645,7 +663,7 @@
(set! (-> self yellow-smoke) #t)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector<-cspace! gp-0 (joint-node robotboss-basic-lod0-jg Lyellow_ecoTubeA))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 653) 300 #f #f #f gp-0 :to *entity-pool*))
(process-spawn part-tracker :init part-tracker-init group-robotboss-yellow-blowup 300 #f #f #f gp-0 :to *entity-pool*))
(let ((gp-1 (manipy-spawn (-> self root trans) (-> self entity) *robotboss-yelloweco-sg* #f :to self)))
(send-event (ppointer->process (-> self parent)) 'flash 255.0)
(send-event (ppointer->process gp-1) 'anim-mode 'play1)
@@ -858,9 +876,11 @@
(flight-time time-frame)
(stall-time time-frame)))
(deftype redshot-launch-array (structure)
((info redshot-launch-info 6 :inline)))
(defbehavior robotboss-redshot-fill-array robotboss ((arg0 redshot-launch-array))
(let ((s2-0 0)
(s4-0 (new 'stack-no-clear 'vector))
@@ -877,11 +897,11 @@
(set! (-> s1-0 dest z) (+ f30-1 (* f28-1 (rand-float-gen)))))
(set! (-> s1-0 dest w) 1.0))
(dotimes (s1-1 s3-0)
(vector-! s4-0 (the-as vector (-> arg0 info s3-0)) (the-as vector (-> arg0 info s1-1)))
(vector-! s4-0 (-> arg0 info s3-0 dest) (-> arg0 info s1-1 dest))
(let ((f0-13 (vector-length-squared s4-0)))
(if (< f0-13 1073741800.0)
(vector+float*! (the-as vector (-> arg0 info s3-0)) (the-as vector (-> arg0 info s1-1)) s4-0 (/ 32768.0 (sqrtf f0-13))))))
(vector+! s5-0 s5-0 (the-as vector (-> arg0 info s3-0)))
(vector+float*! (-> arg0 info s3-0 dest) (-> arg0 info s1-1 dest) s4-0 (/ 32768.0 (sqrtf f0-13))))))
(vector+! s5-0 s5-0 (-> arg0 info s3-0 dest))
(let* ((f30-2 60.0)
(v1-27 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-28 (the-as number (logior #x3f800000 v1-27))))
@@ -893,7 +913,7 @@
(vector-float*! s5-0 s5-0 0.16666667)
(vector-! s5-0 (-> self entity extra trans) s5-0)
(dotimes (v1-53 6)
(vector+! (the-as vector (-> arg0 info v1-53)) (the-as vector (-> arg0 info v1-53)) s5-0)
(vector+! (-> arg0 info v1-53 dest) (-> arg0 info v1-53 dest) s5-0)
(+! (-> arg0 info v1-53 dest y) 2048.0)))
(none))
@@ -933,7 +953,7 @@
t3-0)))
(-> s4-0 ppointer)))
(when s5-0
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 641) 300 #f #f #f gp-0 :to *entity-pool*)
(process-spawn part-tracker :init part-tracker-init group-robotboss-redshot-launch 300 #f #f #f gp-0 :to *entity-pool*)
(sound-play "red-fire")))))
(defbehavior robotboss-is-red-hit robotboss ()
@@ -971,7 +991,7 @@
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 1)
(set! (-> a1-1 message) 'open)
(set! (-> a1-1 param 0) (the-as uint (-> *part-group-id-table* 676)))
(set! (-> a1-1 param 0) (the-as uint group-robotboss-red-claw-glow))
(let ((t9-1 send-event-function)
(v1-10 (-> self alts 1)))
(t9-1 (if v1-10 (-> v1-10 extra process)) a1-1)))
@@ -1016,7 +1036,7 @@
(set! (-> self red-smoke) #t)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector<-cspace! gp-0 (joint-node robotboss-basic-lod0-jg rArmBotWireC))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 649) 300 #f #f #f gp-0 :to *entity-pool*))
(process-spawn part-tracker :init part-tracker-init group-robotboss-red-blowup 300 #f #f #f gp-0 :to *entity-pool*))
(let ((gp-1 (manipy-spawn (-> self root trans) (-> self entity) *robotboss-redeco-sg* #f :to self)))
(send-event (ppointer->process (-> self parent)) 'flash 255.0)
(send-event (ppointer->process gp-1) 'anim-mode 'play1)
@@ -1072,7 +1092,7 @@
(s5-0 (-> self dda red-shots-min)))
(robotboss-yellow-eco-on)
(robotboss-redshot-fill-array gp-1)
(robotboss-redshot (the-as redshot-launch-info (-> gp-1 info)) #t)
(robotboss-redshot (-> gp-1 info 0) #t)
(let* ((v1-127 (+ s5-0 (the int (* f30-1 (the float (-> self dda red-shots-rnd))))))
(s5-1 (+ (min 6 v1-127) -1)))
(dotimes (s4-0 s5-1)
@@ -1222,7 +1242,17 @@
(vector+! s2-0 s2-0 arg0)
(process-spawn greenshot gp-0 s2-0 arg1 arg2 :to self))
(when arg3
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 640) 300 #f #f #f gp-0 :to *entity-pool*)
(process-spawn part-tracker
:init
part-tracker-init
group-robotboss-greenshot-launch
300
#f
#f
#f
gp-0
:to
*entity-pool*)
(sound-play "green-fire")))
(none))
@@ -1269,7 +1299,7 @@
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 1)
(set! (-> a1-1 message) 'open)
(set! (-> a1-1 param 0) (the-as uint (-> *part-group-id-table* 675)))
(set! (-> a1-1 param 0) (the-as uint group-robotboss-green-claw-glow))
(let ((t9-1 send-event-function)
(v1-10 (-> self alts 2)))
(t9-1 (if v1-10 (-> v1-10 extra process)) a1-1)))
@@ -1615,7 +1645,7 @@
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 1)
(set! (-> a1-1 message) 'open)
(set! (-> a1-1 param 0) (the-as uint (-> *part-group-id-table* 674)))
(set! (-> a1-1 param 0) (the-as uint group-robotboss-blue-claw-glow))
(let ((t9-1 send-event-function)
(v1-10 (-> self alts 3)))
(t9-1 (if v1-10 (-> v1-10 extra process)) a1-1)))
@@ -1652,7 +1682,7 @@
(set! (-> self blue-smoke) #t)
(let ((gp-1 (new 'stack-no-clear 'vector)))
(vector<-cspace! gp-1 (joint-node robotboss-basic-lod0-jg blue_eco_piece))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 644) 300 #f #f #f gp-1 :to *entity-pool*))
(process-spawn part-tracker :init part-tracker-init group-robotboss-blue-blowup 300 #f #f #f gp-1 :to *entity-pool*))
(let ((gp-2 (manipy-spawn (-> self root trans) (-> self entity) *robotboss-blueeco-sg* #f :to self)))
(send-event (ppointer->process (-> self parent)) 'flash 255.0)
(send-event (ppointer->process gp-2) 'anim-mode 'play1)
@@ -1905,13 +1935,13 @@
(let ((s5-1 (entity-actor-count (-> this entity) 'alt-actor)))
(dotimes (s4-1 (min 13 s5-1))
(set! (-> this alts s4-1) (entity-actor-lookup (-> this entity) 'alt-actor s4-1))))
(set! (-> this particle 0) (create-launch-control (-> *part-group-id-table* 636) this))
(set! (-> this particle 1) (create-launch-control (-> *part-group-id-table* 637) this))
(set! (-> this particle 2) (create-launch-control (-> *part-group-id-table* 645) this))
(set! (-> this particle 3) (create-launch-control (-> *part-group-id-table* 650) this))
(set! (-> this particle 4) (create-launch-control (-> *part-group-id-table* 654) this))
(set! (-> this particle 5) (create-launch-control (-> *part-group-id-table* 646) this))
(set! (-> this particle 6) (create-launch-control (-> *part-group-id-table* 651) this))
(set! (-> this particle 0) (create-launch-control group-robotboss-blue-beam this))
(set! (-> this particle 1) (create-launch-control group-robotboss-blue-beam-impact this))
(set! (-> this particle 2) (create-launch-control group-robotboss-blue-smoke this))
(set! (-> this particle 3) (create-launch-control group-robotboss-red-smoke this))
(set! (-> this particle 4) (create-launch-control group-robotboss-yellow-smoke this))
(set! (-> this particle 5) (create-launch-control group-robotboss-redshot-charge this))
(set! (-> this particle 6) (create-launch-control group-robotboss-yellowshot-charge this))
(set! (-> this looping-sound 0)
(new 'process 'ambient-sound (static-sound-spec "robo-blue-lp" :fo-max 80) (-> this root trans)))
(set! (-> this looping-sound 1)
@@ -47,6 +47,7 @@
(speed float)
(touch-time time-frame)))
(defmethod get-unlit-skel ((this plat-eco-finalboss))
*plat-eco-finalboss-unlit-sg*)
@@ -114,6 +115,7 @@
(active symbol))
:allow-misaligned)
(deftype sage-finalboss (process-taskable)
((redsage handle)
(bluesage handle)
@@ -135,6 +137,7 @@
(:states
sage-finalboss-credits))
(defmethod relocate ((this sage-finalboss) (offset int))
(dotimes (v1-0 9)
(if (nonzero? (-> this particle v1-0 part)) (&+! (-> this particle v1-0 part) offset)))
@@ -684,19 +687,19 @@
(set! (-> this kick-in-the-door) #f)
(set! (-> this kick-the-credits) #f)
(set! (-> this credits-played) #f)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 682) this))
(set! (-> this part) (create-launch-control group-2d-credits-mist this))
(set! (-> this part matrix) (sprite-allocate-user-hvdf))
(set! (-> this particle-whiteout) (create-launch-control (-> *part-group-id-table* 706) this))
(set! (-> this particle-whiteout) (create-launch-control group-2d-big-door-whiteout this))
(set! (-> this particle-whiteout matrix) (sprite-allocate-user-hvdf))
(set! (-> this particle 0 part) (create-launch-control (-> *part-group-id-table* 699) this))
(set! (-> this particle 1 part) (create-launch-control (-> *part-group-id-table* 700) this))
(set! (-> this particle 2 part) (create-launch-control (-> *part-group-id-table* 701) this))
(set! (-> this particle 3 part) (create-launch-control (-> *part-group-id-table* 702) this))
(set! (-> this particle 7 part) (create-launch-control (-> *part-group-id-table* 645) this))
(set! (-> this particle 4 part) (create-launch-control (-> *part-group-id-table* 703) this))
(set! (-> this particle 5 part) (create-launch-control (-> *part-group-id-table* 696) this))
(set! (-> this particle 6 part) (create-launch-control (-> *part-group-id-table* 704) this))
(set! (-> this particle 8 part) (create-launch-control (-> *part-group-id-table* 698) this))
(set! (-> this particle 0 part) (create-launch-control group-target-white-eco-ground this))
(set! (-> this particle 1 part) (create-launch-control group-target-white-eco-joints this))
(set! (-> this particle 2 part) (create-launch-control group-target-white-eco-hand-glow this))
(set! (-> this particle 3 part) (create-launch-control group-target-white-eco-hand-shot this))
(set! (-> this particle 7 part) (create-launch-control group-robotboss-blue-smoke this))
(set! (-> this particle 4 part) (create-launch-control group-robotboss-joints this))
(set! (-> this particle 5 part) (create-launch-control group-robotboss-explode this))
(set! (-> this particle 6 part) (create-launch-control group-robotboss-splash this))
(set! (-> this particle 8 part) (create-launch-control group-bigdoor-open this))
(dotimes (v1-37 9)
(set! (-> this particle v1-37 active) #f))
(set! (-> this palette-val) 0.0)
@@ -82,17 +82,7 @@
(clear-collide-with-as (-> self root))
(ja-post)
(sound-play "cool-balloon")
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 227)
-1
#f
#f
#f
(-> self root trans)
:to
*entity-pool*)
(process-spawn part-tracker :init part-tracker-init group-balloon -1 #f #f #f (-> self root trans) :to *entity-pool*)
(suspend)
(cleanup-for-death self)
(deactivate self)))
@@ -125,7 +115,7 @@
(set! (-> this root) s4-0))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *balloon-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 227) this))
(set! (-> this part) (create-launch-control group-balloon this))
(go balloon-idle)
(none))
@@ -470,7 +460,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 228)
group-dark-cluster-explosion
-1
#f
#f
+5 -4
View File
@@ -150,8 +150,8 @@
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (hud-hidden?) (can-grab-display? self))
(let ((gp-0 (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning))))
(let ((v1-34 gp-0)) (set! (-> v1-34 width) (the float 440)))
(let ((v1-35 gp-0)) (set! (-> v1-35 height) (the float 80)))
(set-width! gp-0 440)
(set-height! gp-0 80)
(set! (-> gp-0 flags) (font-flags shadow kerning large))
(print-game-text (lookup-text! *common-text* (text-id press-to-use) #f) gp-0 #f 128 22))
(if (and (cpad-pressed? 0 circle) (send-event *target* 'change-mode 'flut self))
@@ -188,7 +188,8 @@
(while (and *target* (logtest? (-> *target* control root-prim prim-core action) (collide-action flut)))
(flutflut-effect)
(suspend))
(suspend-for (seconds 1) (flutflut-effect))
(suspend-for (seconds 1)
(flutflut-effect))
(go arg0)))
(defstate wait-for-return (flutflut)
@@ -240,7 +241,7 @@
(if v1-27 (logior! (-> v1-27 flags) (path-control-flag display draw-line draw-point draw-text)))))
(set! (-> this condition) (res-lump-value arg0 'index int))
(set! (-> this fact) (new 'process 'fact-info this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 120) this))
(set! (-> this part) (create-launch-control group-flut-trans-pad this))
(set! (-> this auto-get-off) #f)
(move-to-ground (-> this root) 40960.0 40960.0 #t (collide-kind background))
(set! (-> this cell) (the-as handle #f))
+1 -1
View File
@@ -172,7 +172,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 175)
group-darkvine-puffs
-1
#f
#f
+10 -13
View File
@@ -831,7 +831,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 179)
group-fish-collect
-1
#f
#f
@@ -845,7 +845,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 179)
group-fish-collect
-1
#f
#f
@@ -902,15 +902,15 @@
((or (= arg0 'deadly) (= arg0 'bad))
(set! (-> self size) 409.6)
(set-vector! (-> self root scale) 0.9 0.9 0.7 1.0)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 177) self))
(set! (-> self part) (create-launch-control group-bad-fish self))
*catch-fishc-sg*)
((= arg0 'powerup)
(set-vector! (-> self root scale) 0.4 0.4 0.4 1.0)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 178) self))
(set! (-> self part) (create-launch-control group-normal-fish self))
*catch-fishb-sg*)
(else
(set-vector! (-> self root scale) 0.3 0.3 0.3 1.0)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 178) self))
(set! (-> self part) (create-launch-control group-normal-fish self))
*catch-fisha-sg*))
'())
(set! (-> self pos) 1.0)
@@ -925,9 +925,9 @@
(defbehavior fisher-draw-display fisher ((arg0 fisher))
(let ((s5-0 (new 'stack 'font-context *font-default-matrix* 435 10 0.0 (font-color red) (font-flags shadow kerning))))
(let ((v1-1 s5-0)) (set! (-> v1-1 width) (the float 200)))
(let ((v1-2 s5-0)) (set! (-> v1-2 height) (the float 30)))
(let ((v1-3 s5-0)) (set! (-> v1-3 scale) 0.7))
(set-width! s5-0 200)
(set-height! s5-0 30)
(set-scale! s5-0 0.7)
(set! (-> s5-0 flags) (font-flags shadow kerning right large))
(print-game-text (lookup-text! *common-text* (text-id caught) #f) s5-0 #f 128 22)
(set! (-> s5-0 origin x) 488.0)
@@ -1183,10 +1183,7 @@
(set! (-> self paddle-vel) (fmax -2.0 (fmin 2.0 (-> self paddle-vel))))
(+! (-> self paddle) (* (-> self paddle-vel) (seconds-per-frame)))
(set! (-> self paddle) (fmax 0.0 (fmin 1.0 (-> self paddle))))
(vector-lerp! (-> self paddle-pos)
(the-as vector (-> self paddle-end))
(the-as vector (&-> self stack 288))
(-> self paddle))
(vector-lerp! (-> self paddle-pos) (-> self paddle-end 0) (the-as vector (&-> self stack 288)) (-> self paddle))
0
(none))
@@ -1521,7 +1518,7 @@
(s4-0 (path-control-method-12 (-> this path) (new-stack-vector0) 6.5)))
(+! (-> s5-0 y) 2457.6)
(vector-normalize! (vector-rotate-y! s4-0 s4-0 16384.0) (-> *FISHER-bank* width))
(vector-! (the-as vector (-> this paddle-end)) s5-0 s4-0)
(vector-! (-> this paddle-end 0) s5-0 s4-0)
(vector+! (the-as vector (&-> this stack 288)) s5-0 s4-0))
(set! (-> this music) 'fishgame)
(set! (-> this difficulty) (the-as int (-> this entity extra perm user-uint8 6)))
@@ -566,7 +566,7 @@
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
(let ((v1-2 (-> self change-event-from)))
(set! (-> self trans quad) (-> (the-as periscope (-> v1-2 0)) reflector-trans quad))
(matrix-rotate-yx! (the-as matrix (-> self tracking))
(matrix-rotate-yx! (-> self tracking inv-mat)
(-> (the-as periscope (-> v1-2 0)) turn)
(-> (the-as periscope (-> v1-2 0)) tilt)))
(set! (-> self blend-from-type) (the-as uint 0))
@@ -619,7 +619,7 @@
((< (-> s5-0 y) -136.53334) (set! (-> s5-0 y) -136.53334)))
(+! f30-0 (* (-> s5-0 y) (-> *display* time-adjust-ratio)))
(set! f28-0 (fmax -12743.111 (fmin 12743.111 (+ f28-0 (* (-> s5-0 x) (-> *display* time-adjust-ratio))))))
(matrix-rotate-yx! (the-as matrix (-> self tracking)) f30-0 f28-0))
(matrix-rotate-yx! (-> self tracking inv-mat) f30-0 f28-0))
(suspend)))))
(defstate reflector-idle (reflector)
@@ -1076,8 +1076,8 @@
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (hud-hidden?) (can-grab-display? self))
(let ((s2-2 (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning))))
(let ((v1-43 s2-2)) (set! (-> v1-43 width) (the float 440)))
(let ((v1-44 s2-2)) (set! (-> v1-44 height) (the float 80)))
(set-width! s2-2 440)
(set-height! s2-2 80)
(set! (-> s2-2 flags) (font-flags shadow kerning large))
(print-game-text (lookup-text! *common-text* (text-id press-to-use) #f) s2-2 #f 128 22))
(when (cpad-pressed? 0 circle)
@@ -1324,8 +1324,8 @@
(set! (-> this link) (new 'process 'actor-link-info this))
(periscope-find-next)
(initialize-skeleton this *periscope-base-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 176) this))
(set! (-> this part-aligned) (create-launch-control (-> *part-group-id-table* 689) this))
(set! (-> this part) (create-launch-control group-jungle-binoculars this))
(set! (-> this part-aligned) (create-launch-control group-jungle-binoculars-aligned this))
(set! (-> this grips) (new 'process 'joint-mod-set-world this 4 #t))
(transformq-copy! (-> this grips transform) (the-as transformq (-> this root trans)))
(periscope-find-reflection-angles)
+6 -6
View File
@@ -150,8 +150,8 @@ junglesnake-default-event-handler
(vector-! a1-7 (-> a0-14 vector 3) (-> s3-1 vector 3))
(vector-normalize-copy! (-> s3-1 vector 1) a1-7 1.0))
(set! (-> s3-1 vector 1 w) 0.0)
(vector-normalize! (vector-cross! (-> s3-1 vector 2) (the-as vector (-> s3-1 vector)) (-> s3-1 vector 1)) 1.0)
(vector-normalize! (vector-cross! (the-as vector (-> s3-1 vector)) (-> s3-1 vector 1) (-> s3-1 vector 2)) 1.0)))
(vector-normalize! (vector-cross! (-> s3-1 vector 2) (-> s3-1 vector 0) (-> s3-1 vector 1)) 1.0)
(vector-normalize! (vector-cross! (-> s3-1 vector 0) (-> s3-1 vector 1) (-> s3-1 vector 2)) 1.0)))
(cond
((and (-> s5-0 track-player-tilt) *target*)
(let ((s2-1 (-> arg0 node-list data 25 bone transform))
@@ -246,7 +246,7 @@ junglesnake-default-event-handler
(when *target*
(if *target*
(look-at-enemy! (-> *target* neck)
(the-as vector (-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core))
(-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core world-sphere)
'attacking
self))))
:code
@@ -281,7 +281,7 @@ junglesnake-default-event-handler
(when *target*
(if *target*
(look-at-enemy! (-> *target* neck)
(the-as vector (-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core))
(-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core world-sphere)
'attacking
self))))
:code
@@ -310,7 +310,7 @@ junglesnake-default-event-handler
(when *target*
(if *target*
(look-at-enemy! (-> *target* neck)
(the-as vector (-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core))
(-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core world-sphere)
'attacking
self))))
:code
@@ -546,7 +546,7 @@ junglesnake-default-event-handler
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *junglesnake-sg* '())
(set! (-> this fact) (new 'process 'fact-info-enemy this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 173) this))
(set! (-> this part) (create-launch-control group-junglesnake-dropping-down this))
(set! (-> this is-lethal?) #f)
(set! (-> this ry) (y-angle (-> this root)))
(set! (-> this des-ry) (-> this ry))
+2 -2
View File
@@ -190,7 +190,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 190)
group-jungle-blue-eco-room-activate
-1
#f
#f
@@ -256,7 +256,7 @@
(initialize-skeleton this *eggtop-sg* '())
(logior! (-> this skel status) (janim-status inited))
(update-transforms! (-> this root))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 189) this))
(set! (-> this part) (create-launch-control group-jungle-blue-eco-room-open this))
(set! (-> this sound-id) (new-sound-id))
(cond
((task-complete? *game-info* (-> this entity extra perm task)) (go eggtop-close #t))
@@ -356,7 +356,7 @@
(s5-0 (new 'stack-no-clear 'matrix)))
(vector-! gp-0 (target-pos 0) (-> self root trans))
(quaternion->matrix s5-0 (-> self root quat))
(vector-dot gp-0 (the-as vector (-> s5-0 vector)))))
(vector-dot gp-0 (-> s5-0 vector 0))))
(defbehavior energydoor-open-handler energydoor ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
@@ -604,7 +604,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 546)
group-energyball-explode
600
#f
#f
@@ -663,7 +663,7 @@
(energyball-init self)
(set! (-> self root trans quad) (-> arg0 quad))
(initialize-skeleton self *energyball-sg* '())
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 545) self))
(set! (-> self part) (create-launch-control group-energyball-always self))
(go energyball-idle)
(none))
@@ -831,7 +831,7 @@
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(backup-collide-with-as s5-0)
(set! (-> arg0 root) s5-0))
(let ((v0-5 (create-launch-control (-> *part-group-id-table* 544) arg0))) (set! (-> arg0 part) v0-5) v0-5))
(let ((v0-5 (create-launch-control group-energyarm arg0))) (set! (-> arg0 part) v0-5) v0-5))
(defbehavior energyarm-init-by-other energyarm ((arg0 vector) (arg1 float))
(energyarm-init self)
@@ -390,9 +390,9 @@
(set! (-> self leak s5-1 first-frame) #f)
(let ((s4-1 (new 'stack-no-clear 'matrix)))
(matrix-transpose! s4-1 gp-0)
(vector-matrix*! (the-as vector (-> self leak s5-1)) (the-as vector (-> self leak s5-1)) s4-1)))
(vector-matrix*! (-> self leak s5-1 offset) (-> self leak s5-1 offset) s4-1)))
(let ((s4-2 (new 'stack-no-clear 'vector)))
(vector-matrix*! s4-2 (the-as vector (-> self leak s5-1)) gp-0)
(vector-matrix*! s4-2 (-> self leak s5-1 offset) gp-0)
(vector+! s4-2 s4-2 (-> self root trans))
(spawn (-> self part) s4-2)))))
(if (< (vector-vector-xz-distance-squared (-> self root trans) (camera-pos)) 1073741800.0)
@@ -410,7 +410,7 @@
(let ((gp-1 (new 'stack-no-clear 'vector)))
(set! (-> gp-1 quad) (-> self root trans quad))
(+! (-> gp-1 y) -49152.0)
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 541) 600 #f #f #f gp-1 :to *entity-pool*))
(process-spawn part-tracker :init part-tracker-init group-darkecobarrel-explode 600 #f #f #f gp-1 :to *entity-pool*))
(suspend)
(set-time! (-> self state-time))
(until (time-elapsed? (-> self state-time) (seconds 1))
@@ -504,7 +504,7 @@
(backup-collide-with-as s2-0)
(set! (-> self root) s2-0))
(darkecobarrel-base-init arg0)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 540) self))
(set! (-> self part) (create-launch-control group-darkecobarrel-hit self))
(set! (-> self speed) arg1)
(set! (-> self start-time) arg2)
(set! (-> self sync) arg3)
@@ -796,7 +796,7 @@
(let ((gp-1 (new 'stack-no-clear 'vector)))
(set! (-> gp-1 quad) (-> self root trans quad))
(+! (-> gp-1 y) -73728.0)
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 542) 600 #f #f #f gp-1 :to *entity-pool*))
(process-spawn part-tracker :init part-tracker-init group-chainmine-explode 600 #f #f #f gp-1 :to *entity-pool*))
(suspend)
(set-time! (-> self state-time))
(until (time-elapsed? (-> self state-time) (seconds 1))
@@ -932,7 +932,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 543)
group-lavaballoon
-1
#f
#f
@@ -977,7 +977,7 @@
(set! (-> this root) s4-0))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *lavaballoon-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 543) this))
(set! (-> this part) (create-launch-control group-lavaballoon this))
(set! (-> this root pause-adjust-distance) 122880.0)
(set! (-> this path) (new 'process 'path-control this 'path 0.0))
(logior! (-> this path flags) (path-control-flag display draw-line draw-point draw-text))
@@ -452,7 +452,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(if (-> self underwater?) (-> *part-group-id-table* 323) (-> *part-group-id-table* 322))
(if (-> self underwater?) group-dark-crystal-water-explode group-dark-crystal-gnd-explode)
-1
#f
#f
@@ -322,8 +322,7 @@
(else (set! (-> this up-blend) (seek-with-smooth (-> this up-blend) f28-1 (* 8192.0 (seconds-per-frame)) 0.125 0.01))))))
(when (and arg1 *target*)
(set-target! (-> this neck) (target-pos 5))
(if *target*
(look-at-enemy! (-> *target* neck) (the-as vector (-> this root-overeride root-prim prim-core)) 'attacking this)))
(if *target* (look-at-enemy! (-> *target* neck) (-> this root-overeride root-prim prim-core world-sphere) 'attacking this)))
(let ((f30-3 (-> this drill-speed)))
(let ((v1-56 (-> this mode)))
(cond
@@ -725,7 +724,7 @@
(new 'process 'ambient-sound (static-sound-spec "drill-idle" :fo-max 40) (-> this root-overeride trans)))
(set! (-> this sound2)
(new 'process 'ambient-sound (static-sound-spec "drill-idle2" :fo-max 60) (-> this root-overeride trans)))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 331) this))
(set! (-> this part) (create-launch-control group-driller-lurker-drilling-debris this))
(let ((f0-34 (path-distance (-> this path)))) (set! (-> this path-units-per-meter) (/ 4096.0 f0-34)))
(set! (-> this path-dir) 1.0)
(set! (-> this path-u) 0.0)
+2 -2
View File
@@ -1043,7 +1043,7 @@
(set! (-> this path) (new 'process 'curve-control this 'path -1000000000.0))
(logior! (-> this path flags) (path-control-flag display draw-line draw-point draw-text))
(if (< (-> this path curve num-cverts) 2) (go process-drawable-art-error "bad path"))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 330) this))
(set! (-> this part2) (create-launch-control group-gnawer-crumbs this))
(set! (-> this total-money) 0)
(set! (-> this money-mask) (the-as uint 0))
(set! sv-32 (new 'static 'res-tag))
@@ -1061,7 +1061,7 @@
(let ((a3-15 (-> a0-49 a1-30))) (set! v1-100 (logior v1-100 (ash 1 a3-15)))))
(set! (-> this money-mask) (the-as uint v1-100))))
(else (go process-drawable-art-error "bad actor params")))))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 329) this))
(set! (-> this part) (create-launch-control group-gnawer-loses-segment this))
(set! (-> this sound)
(new 'process 'ambient-sound (static-sound-spec "gnawer-crawl" :fo-min 30 :fo-max 30) (-> this root trans)))
(set! (-> this sound2) (new 'process 'ambient-sound (static-sound-spec "gnawer-chew" :fo-max 40) (-> this root trans)))
@@ -262,7 +262,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 324)
group-spider-egg-hatches
-1
#f
#f
@@ -293,7 +293,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 325)
group-spider-egg-explodes
-1
#f
#f
@@ -322,7 +322,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 325)
group-spider-egg-explodes
-1
#f
#f
@@ -209,7 +209,7 @@
(defmethod projectile-method-24 ((this mother-spider-proj))
(with-pp
(spawn (-> this part) (the-as vector (-> this root root-prim prim-core)))
(spawn (-> this part) (-> this root root-prim prim-core world-sphere))
(let ((s5-0 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
(set! (-> s5-0 command) (sound-command set-param))
(set! (-> s5-0 id) (-> this sound-id))
@@ -273,7 +273,7 @@
(none))
(defmethod projectile-method-27 ((this mother-spider-proj))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 326) this))
(set! (-> this part) (create-launch-control group-mother-spider-proj-fly this))
(set! (-> this max-speed) 32768.0)
(set! (-> this update-velocity) mother-spider-proj-update-velocity)
(set! (-> this max-turn) 5916.4443)
@@ -309,7 +309,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 327)
group-mother-spider-proj-hit
-1
#f
#f
@@ -329,7 +329,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 328)
group-mother-spider-proj-die
-1
#f
#f
@@ -165,7 +165,7 @@
1.0)
(set! (-> self gravity) (rand-vu-float-range -266240.0 -163840.0))
(initialize-skeleton self *mother-spider-leg-sg* '())
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 614) self))
(set! (-> self part) (create-launch-control group-mother-spider-leg self))
(create-connection! *cavecrystal-light-control*
self
(-> self entity)
@@ -417,8 +417,7 @@
(when arg1
(when *target*
(case (-> this mode)
((1 2)
(if *target* (look-at-enemy! (-> *target* neck) (the-as vector (-> this root root-prim prim-core)) 'attacking this)))))
((1 2) (if *target* (look-at-enemy! (-> *target* neck) (-> this root root-prim prim-core world-sphere) 'attacking this)))))
(set-target! (-> this neck) (target-pos 5)))))
(none))
@@ -1052,7 +1051,7 @@
(cond
((and (= (-> arg0 vector 2 x) 0.0) (= (-> arg0 vector 2 y) 0.0)) (set! (-> arg0 vector 0 x) (-> arg0 vector 2 z)))
(else (set! (-> arg0 vector 0 x) (- (-> arg0 vector 2 y))) (set! (-> arg0 vector 0 y) (-> arg0 vector 2 x))))
(vector-cross! (-> arg0 vector 1) (the-as vector (-> arg0 vector)) (-> arg0 vector 2))
(vector-cross! (-> arg0 vector 1) (-> arg0 vector 0) (-> arg0 vector 2))
(vector-normalize! (-> arg0 vector 1) 1.0)
(set! (-> arg0 vector 0 w) 0.0)
(set! (-> arg0 vector 1 w) 0.0)
@@ -1180,7 +1179,7 @@
(logior! (-> this path flags) (path-control-flag display draw-line draw-point draw-text))
(set! (-> this fact) (new 'process 'fact-info-enemy this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)))
(set! (-> this draw shadow-ctrl) (new 'process 'shadow-control 0.0 0.0 4096000.0 (the-as float 60) 245760.0))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 618) this))
(set! (-> this part) (create-launch-control group-mother-spider-leg-socket this))
(logior! (-> this skel status) (janim-status inited))
(let ((v0-30 (new 'process 'joint-mod (joint-mod-handler-mode reset) this 19)))
(set! (-> this neck) v0-30)
+2 -2
View File
@@ -548,7 +548,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 204)
group-balloonlurker-mine-explosion
-1
#f
#f
@@ -643,7 +643,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 203)
group-balloonlurker-pilot-death
-1
#f
#f
+2 -2
View File
@@ -118,7 +118,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 71)
group-crate-explode
20
#f
#f
@@ -238,7 +238,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 197)
group-keg-bounce
-1
keg-bounce-set-particle-rotation-callback
(-> self ppointer)
+7 -15
View File
@@ -990,7 +990,7 @@
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *boatpaddle-sg* '())
(logclear! (-> this mask) (process-mask actor-pause))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 196) this))
(set! (-> this part) (create-launch-control group-misty-boat-paddle this))
(go boatpaddle-idle)
(none))
@@ -1027,7 +1027,7 @@
(process-drawable-from-entity! this arg0)
(logclear! (-> this mask) (process-mask actor-pause))
(set! (-> this spawn-particle-enable) (= (res-lump-value arg0 'particle-select uint128) 1))
(if (-> this spawn-particle-enable) (set! (-> this part) (create-launch-control (-> *part-group-id-table* 191) this)))
(if (-> this spawn-particle-enable) (set! (-> this part) (create-launch-control group-windturbine-particles this)))
(initialize-skeleton this *windturbine-sg* '())
(go windturbine-idle)
(none))
@@ -1174,19 +1174,11 @@
(initialize-skeleton this *mis-bone-bridge-sg* '())
(let ((v1-40 (res-lump-value arg0 'animation-select uint128)))
(cond
((= (the-as uint v1-40) 1)
(set! (-> this fall-anim-index) 2)
(set! (-> this particle-group) (-> *part-group-id-table* 192)))
((= (the-as uint v1-40) 2)
(set! (-> this fall-anim-index) 3)
(set! (-> this particle-group) (-> *part-group-id-table* 194)))
((= (the-as uint v1-40) 3)
(set! (-> this fall-anim-index) 2)
(set! (-> this particle-group) (-> *part-group-id-table* 193)))
((= (the-as uint v1-40) 7)
(set! (-> this fall-anim-index) 4)
(set! (-> this particle-group) (-> *part-group-id-table* 195)))
(else (set! (-> this fall-anim-index) 2) (set! (-> this particle-group) (-> *part-group-id-table* 192)))))
((= (the-as uint v1-40) 1) (set! (-> this fall-anim-index) 2) (set! (-> this particle-group) group-misty-bone-01))
((= (the-as uint v1-40) 2) (set! (-> this fall-anim-index) 3) (set! (-> this particle-group) group-misty-bone-02))
((= (the-as uint v1-40) 3) (set! (-> this fall-anim-index) 2) (set! (-> this particle-group) group-misty-bone-03))
((= (the-as uint v1-40) 7) (set! (-> this fall-anim-index) 4) (set! (-> this particle-group) group-misty-bone-07))
(else (set! (-> this fall-anim-index) 2) (set! (-> this particle-group) group-misty-bone-01))))
(set! (-> this hit-points) 3)
(if (and (-> this entity) (logtest? (-> this entity extra perm status) (entity-perm-status complete)))
(go mis-bone-bridge-fall #t)
+8 -8
View File
@@ -681,9 +681,9 @@
(a2-1 (new 'stack-no-clear 'vector))
(t2-0 (new 'stack-no-clear 'collide-tri-result)))
0.0
(vector-! a2-1 (the-as vector v1-5) (the-as vector a1-2))
(vector-! a2-1 (-> v1-5 world-sphere) (-> a1-2 world-sphere))
(when (< (fill-and-probe-using-line-sphere *collide-cache*
(the-as vector a1-2)
(-> a1-2 world-sphere)
a2-1
40.96
(collide-kind background)
@@ -780,8 +780,8 @@
(set! (-> self root transv quad) (-> arg0 vel quad))
(set! (-> self blast-radius) (-> arg0 blast-radius))
(set! (-> self water-height) (res-lump-float (-> self entity) 'water-height :default -4096000.0))
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 117) self))
(set! (-> self part2) (create-launch-control (-> *part-group-id-table* 118) self))
(set! (-> self part) (create-launch-control group-beach-sack-fuse self))
(set! (-> self part2) (create-launch-control group-beach-sack-explosion self))
(go mistycannon-missile-idle)
(none))
@@ -1115,8 +1115,8 @@
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (hud-hidden?) (can-grab-display? self))
(let ((gp-0 (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning))))
(let ((v1-15 gp-0)) (set! (-> v1-15 width) (the float 440)))
(let ((v1-16 gp-0)) (set! (-> v1-16 height) (the float 80)))
(set-width! gp-0 440)
(set-height! gp-0 80)
(set! (-> gp-0 flags) (font-flags shadow kerning large))
(print-game-text (lookup-text! *common-text* (text-id press-to-use) #f) gp-0 #f 128 22))
(when (cpad-pressed? 0 circle)
@@ -1145,7 +1145,7 @@
(let ((t9-0 matrix-rotate-yx!)
(a0-1 (-> self tracking))
(v1-2 (-> (the-as mistycannon (-> v1-0 0)) rotate)))
(t9-0 (the-as matrix a0-1) (the float (sar (shl (the int (+ (-> v1-2 min) (-> v1-2 value))) 48) 48)) 3640.889)))
(t9-0 (-> a0-1 inv-mat) (the float (sar (shl (the int (+ (-> v1-2 min) (-> v1-2 value))) 48) 48)) 3640.889)))
(suspend))))
(defstate mistycannon-player-control (mistycannon)
@@ -1298,7 +1298,7 @@
(set! (-> this center-point z) (if (and v1-70 (< 2.0 (the float (-> sv-48 elt-count)))) (-> v1-70 2) 0.0)))))
(set! (-> this accuracy-range) 16384.0)
(mistycannon-pick-random-target-point)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 119) this))
(set! (-> this part) (create-launch-control group-beach-cannon-fire this))
(set! (-> this part-timer) (+ (current-time) (seconds -10)))
(set! (-> this postbindinfo-ok) #f)
(let ((v1-79 (-> this rotate)))
+16 -6
View File
@@ -306,7 +306,7 @@
(while (not (time-elapsed? (-> self state-time) (seconds 4)))
(fill-cache-integrate-and-collide! (-> self root) (-> self root transv) (-> self root root-prim collide-with))
(if (or (logtest? (-> self root status) (cshape-moving-flags twall))
(< (vector-vector-distance (-> self root trans) (the-as vector (-> self root trans-old))) 40.96))
(< (vector-vector-distance (-> self root trans) (-> self root trans-old 0)) 40.96))
(go quicksandlurker-missile-impact))
(spawn (-> self part) (-> self root trans))
(find-ground-and-draw-shadow (-> self root trans)
@@ -329,7 +329,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 200)
group-quicksandlurker-missile-impact
-1
#f
#f
@@ -369,7 +369,7 @@
(set! (-> self root quat vec quad) (-> (the-as process-drawable (-> self parent 0)) root quat vec quad))
(vector-identity! (-> self root scale))
(set! (-> self root transv quad) (-> arg0 velocity quad))
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 198) self))
(set! (-> self part) (create-launch-control group-quicksandlurker-missile self))
(go quicksandlurker-missile-idle)
(none))
@@ -560,7 +560,17 @@
(let ((f1-0 (vector-xz-length s5-0))) (set! (-> s5-0 y) (fmin (-> s5-0 y) (/ f1-0 2))))
(vector-normalize! s5-0 49152.0)
(spawn-quicksandlurker-missile self gp-0 s5-0 (-> self entity)))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 199) -1 #f #f #f gp-0 :to *entity-pool*)))
(process-spawn part-tracker
:init
part-tracker-init
group-quicksandlurker-pre-missile
-1
#f
#f
#f
gp-0
:to
*entity-pool*)))
(defstate quicksandlurker-attack (quicksandlurker)
:event quicksandlurker-default-event-handler
@@ -628,7 +638,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 201)
group-quicksandlurker-hide
-1
#f
#f
@@ -649,7 +659,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 202)
group-quicksandlurker-popup
-1
#f
#f
+6 -6
View File
@@ -1158,7 +1158,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 557)
group-evilsib-appear
-1
#f
#f
@@ -1333,7 +1333,7 @@
(send-event (handle->process (-> self evilbro))
'eval
(lambda :behavior sequenceB ()
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 558) self))) (set! (-> self part) v0-0) v0-0)))))
(let ((v0-0 (create-launch-control group-evilsib-hover self))) (set! (-> self part) v0-0) v0-0)))))
(let ((gp-4 (entity-by-name "evilsis-2")))
(when gp-4
(set! (-> self evilsis) (ppointer->handle (manipy-spawn (-> self root trans) gp-4 *evilsis-sg* #f :to self)))
@@ -1349,7 +1349,7 @@
(send-event (handle->process (-> self evilsis))
'eval
(lambda :behavior sequenceB ()
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 558) self))) (set! (-> self part) v0-0) v0-0)))))))))
(let ((v0-0 (create-launch-control group-evilsib-hover self))) (set! (-> self part) v0-0) v0-0)))))))))
:exit
(behavior ()
(send-event *target* 'sidekick #t)
@@ -1399,7 +1399,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 561)
group-sequenceC-exploding-can
-1
#f
#f
@@ -1441,7 +1441,7 @@
*darkecocan-glow-sg*
(-> self draw art-group)
(-> (the-as process-taskable (-> self parent 0)) entity))
(let ((v0-1 (create-launch-control (-> *part-group-id-table* 560) self))) (set! (-> self part) v0-1) v0-1))))
(let ((v0-1 (create-launch-control group-sequenceC-glowing-can self))) (set! (-> self part) v0-1) v0-1))))
(the-as basic
(new 'static
'spool-anim
@@ -1533,7 +1533,7 @@
(when (>= (ja-aframe-num 0) 1655.0)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector<-cspace! gp-0 (-> self node-list data 3))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 562) -1 #f #f #f gp-0 :to *entity-pool*))
(process-spawn part-tracker :init part-tracker-init group-sequenceC-dark-splash -1 #f #f #f gp-0 :to *entity-pool*))
(set! (-> self cur-trans-hook) nothing))
0
(none))
+1 -1
View File
@@ -131,7 +131,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 474)
group-tntbarrel-explosion
-1
#f
#f
+4 -4
View File
@@ -285,7 +285,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 473)
group-tntbarrel-BIG-explosion
-1
#f
#f
@@ -296,7 +296,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 474)
group-tntbarrel-explosion
-1
#f
#f
@@ -738,7 +738,7 @@
(let ((gp-0 (new 'stack-no-clear 'vector)))
(let ((a1-1 (-> block param 2))) (set! (-> gp-0 quad) (-> self node-list data a1-1 bone transform vector 3 quad)))
(set! (-> gp-0 y) 118784.0)
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 466) -1 #f #f #f gp-0 :to *entity-pool*))))))
(process-spawn part-tracker :init part-tracker-init group-ogre-bridge-splash -1 #f #f #f gp-0 :to *entity-pool*))))))
:code
(behavior ()
(ja-no-eval :group! ogre-bridge-break-ja :num! (seek!) :frame-num 0.0)
@@ -1125,7 +1125,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 475)
group-shortcut-boulder-explosion
-1
#f
#f
+7 -7
View File
@@ -170,7 +170,7 @@
(defun ogreboss-rock-explosion-effect ((arg0 basic))
(with-pp
(sound-play "ogre-explode" :position (the-as symbol arg0))
(process-spawn part-tracker :init part-tracker-init (-> *part-group-id-table* 471) -1 #f #f #f arg0 :to *entity-pool*)
(process-spawn part-tracker :init part-tracker-init group-ogreboss-missile-impact -1 #f #f #f arg0 :to *entity-pool*)
(activate! *camera-smush-control* (the-as float 819.2) 37 600 (the-as float 1.0) (the-as float 0.995))
(let ((gp-2 (manipy-spawn arg0 (-> pp entity) *ogreboss-shoot-boulder-break-sg* #f :to pp)))
(quaternion-axis-angle! (-> (the-as manipy (-> gp-2 0)) root quat)
@@ -312,7 +312,7 @@
(set! (-> self pickup-type) (-> arg0 pickup-type))
(let ((f30-1 (* 65536.0 (rand-vu))))
(quaternion-axis-angle! (-> self tumble-quat) (cos f30-1) (the-as float 0.0) (sin f30-1) (the-as float 2730.6667)))
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 469) self))
(set! (-> self part) (create-launch-control group-ogreboss-missile self))
(set-vector! (-> self draw color-emissive) 0.125 0.0625 0.0 0.0)
(go ogreboss-missile-idle)
(none))
@@ -406,7 +406,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 471)
group-ogreboss-missile-impact
-1
#f
#f
@@ -480,7 +480,7 @@
(set! (-> self joint enable) #f)
(ja-no-eval :group! ogreboss-super-boulder-roll-ja :num! (seek! (ja-aframe (the-as float 100.0) 0)) :frame-num 0.0)
(until (ja-done? 0)
(when (< 81920.0 (vector-vector-distance (the-as vector (-> self root root-prim prim-core)) (target-pos 0)))
(when (< 81920.0 (vector-vector-distance (-> self root root-prim prim-core world-sphere) (target-pos 0)))
(ja-channel-push! 1 (seconds 0.1))
(go ogreboss-super-boulder-roll))
(suspend)
@@ -577,7 +577,7 @@
(let ((f30-1 (* 65536.0 (rand-vu))))
(quaternion-axis-angle! (-> self tumble-quat) (cos f30-1) (the-as float 0.0) (sin f30-1) (the-as float 2730.6667)))
(set! (-> self joint) (new 'process 'joint-mod-blend-local self 3 #f))
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 468) self))
(set! (-> self part) (create-launch-control group-ogreboss-boulder-grow self))
(set-vector! (-> self draw color-emissive) 0.125 0.0625 0.0 0.0)
(set! (-> self speed) 1.0)
(set! (-> self size) 0.0)
@@ -638,7 +638,7 @@
(behavior ()
(vector+*! (-> self root trans) (-> self src-pos) (-> self side-dir) (-> self side-pos))
(transform-post)
(find-ground-and-draw-shadow (the-as vector (-> self root root-prim prim-core))
(find-ground-and-draw-shadow (-> self root root-prim prim-core world-sphere)
(the-as vector #f)
(the-as float 49152.0)
(collide-kind background)
@@ -905,7 +905,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 470)
group-ogreboss-pre-missile
-1
#f
#f
@@ -247,6 +247,7 @@
(deftype hud-bike-heat (hud) ())
(defmethod hud-update ((this hud-bike-heat))
(if *target* (tally-value this (the int (-> *target* racer heat)) 0))
0
@@ -257,7 +258,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-0 (-> this nb-of-particles)))
(set! (-> this particles s5-0) (new 'static 'hud-particle))
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 111) this))
(set! (-> this particles s5-0 part) (create-launch-control group-part-hud-racer-heat-backing this))
(set! (-> this particles s5-0 init-pos x) 13.0)
(set! (-> this particles s5-0 init-pos y) 370.0)
(set! (-> this particles s5-0 init-pos z) 10.0)
@@ -266,7 +267,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-1 (-> this nb-of-particles)))
(set! (-> this particles s5-1) (new 'static 'hud-particle))
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 112) this))
(set! (-> this particles s5-1 part) (create-launch-control group-part-hud-racer-heat-dial this))
(set! (-> this particles s5-1 init-pos x) 70.0)
(set! (-> this particles s5-1 init-pos y) 370.0)
(set! (-> this particles s5-1 init-pos z) 6.0)
@@ -275,7 +276,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-2 (-> this nb-of-particles)))
(set! (-> this particles s5-2) (new 'static 'hud-particle))
(set! (-> this particles s5-2 part) (create-launch-control (-> *part-group-id-table* 113) this))
(set! (-> this particles s5-2 part) (create-launch-control group-part-hud-racer-heat this))
(set! (-> this particles s5-2 init-pos x) 20.0)
(set! (-> this particles s5-2 init-pos y) 370.0)
(set! (-> this particles s5-2 init-pos z) 1.0)
@@ -284,7 +285,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-3 (-> this nb-of-particles)))
(set! (-> this particles s5-3) (new 'static 'hud-particle))
(set! (-> this particles s5-3 part) (create-launch-control (-> *part-group-id-table* 114) this))
(set! (-> this particles s5-3 part) (create-launch-control group-part-hud-racer-heat-slice this))
(set! (-> this particles s5-3 init-pos x) 70.0)
(set! (-> this particles s5-3 init-pos y) 370.0)
(set! (-> this particles s5-3 init-pos z) 7.0)
@@ -300,6 +301,7 @@
(deftype hud-bike-speed (hud) ())
(defmethod hud-update ((this hud-bike-speed))
(if *target* (tally-value this (the int (-> *target* control unknown-float01)) 0))
0
@@ -310,7 +312,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-0 (-> this nb-of-particles)))
(set! (-> this particles s5-0) (new 'static 'hud-particle))
(set! (-> this particles s5-0 part) (create-launch-control (-> *part-group-id-table* 108) this))
(set! (-> this particles s5-0 part) (create-launch-control group-part-hud-racer-speed-dial this))
(set! (-> this particles s5-0 init-pos x) 433.0)
(set! (-> this particles s5-0 init-pos y) 370.0)
(set! (-> this particles s5-0 init-pos z) 3.0)
@@ -319,7 +321,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-1 (-> this nb-of-particles)))
(set! (-> this particles s5-1) (new 'static 'hud-particle))
(set! (-> this particles s5-1 part) (create-launch-control (-> *part-group-id-table* 109) this))
(set! (-> this particles s5-1 part) (create-launch-control group-part-hud-racer-speed this))
(set! (-> this particles s5-1 init-pos x) 378.0)
(set! (-> this particles s5-1 init-pos y) 370.0)
(set! (-> this particles s5-1 init-pos z) 5.0)
@@ -328,7 +330,7 @@
(when (< (-> this nb-of-particles) (-> this max-nb-of-particles))
(let ((s5-2 (-> this nb-of-particles)))
(set! (-> this particles s5-2) (new 'static 'hud-particle))
(set! (-> this particles s5-2 part) (create-launch-control (-> *part-group-id-table* 110) this))
(set! (-> this particles s5-2 part) (create-launch-control group-part-hud-racer-speed-front this))
(set! (-> this particles s5-2 init-pos x) 415.0)
(set! (-> this particles s5-2 init-pos y) 370.0)
(set! (-> this particles s5-2 init-pos z) 1.0)
@@ -628,7 +628,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 116)
group-racer-explode
-1
#f
#f
@@ -706,7 +706,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 32)
group-lava-death
-1
#f
#f
@@ -769,7 +769,7 @@
:code
(behavior ((arg0 handle))
(set! (-> self control transv quad) (the-as uint128 0))
(set! (-> self alt-cam-pos quad) (-> (&-> (-> self control) unknown-qword00) 0))
(set! (-> self alt-cam-pos quad) (-> (&-> self control unknown-qword00) 0))
(logior! (-> self state-flags) (state-flags use-alt-cam-pos))
(set-time! (-> self state-time))
(let ((gp-0 (new 'stack-no-clear 'vector)))
+5 -4
View File
@@ -172,8 +172,8 @@
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (hud-hidden?) (can-grab-display? self))
(let ((gp-0 (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning))))
(let ((v1-24 gp-0)) (set! (-> v1-24 width) (the float 440)))
(let ((v1-25 gp-0)) (set! (-> v1-25 height) (the float 80)))
(set-width! gp-0 440)
(set-height! gp-0 80)
(set! (-> gp-0 flags) (font-flags shadow kerning large))
(print-game-text (lookup-text! *common-text* (text-id press-to-use) #f) gp-0 #f 128 22))
(if (and (or (cpad-pressed? 0 circle) (= (-> self condition) 4)) (send-event *target* 'change-mode 'racing self))
@@ -220,7 +220,8 @@
(while (and *target* (logtest? (-> *target* control root-prim prim-core action) (collide-action racer)))
(racer-effect)
(suspend))
(suspend-for (seconds 1) (racer-effect))
(suspend-for (seconds 1)
(racer-effect))
(go arg0)))
(defstate wait-for-return (racer)
@@ -274,7 +275,7 @@
(set! (-> v1-23 0 param2) (the-as basic (-> this extra-trans))))
(set! (-> this condition) (res-lump-value arg0 'index int))
(set! (-> this fact) (new 'process 'fact-info this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 115) this))
(set! (-> this part) (create-launch-control group-racer-trans-pad this))
(dotimes (s5-1 2)
(let ((v1-32 (new 'process 'curve-control this 'path (the float (+ s5-1 1)))))
(set! (-> this path-data s5-1) v1-32)
@@ -276,17 +276,7 @@
((< (-> self racer shock-offset) -8192.0)
(set! (-> self racer shock-offset) -8192.0)
(set! (-> self racer shock-offsetv) 0.0)
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 13)
-1
#f
#f
#f
(-> self control trans)
:to
self)
(process-spawn part-tracker :init part-tracker-init group-land-poof-stone -1 #f #f #f (-> self control trans) :to self)
(effect-control-method-10 (-> self skel effect) 'effect-land -1.0 -1)))
(deg-diff (vector-y-angle gp-0) (vector-y-angle (-> self control transv)))
(let ((f30-2 (vector-xz-length gp-0)))
@@ -818,7 +808,7 @@
(seek! (-> self control unknown-float81) 0.0 (* 2.0 (seconds-per-frame)))
(seek! (-> self racer mult-rotx) 1.0 (* 16.0 (seconds-per-frame)))
(let ((f0-77 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))))
(vector-! (new 'stack-no-clear 'vector) (-> self control trans) (the-as vector (-> self control trans-old)))
(vector-! (new 'stack-no-clear 'vector) (-> self control trans) (-> self control trans-old 0))
(let* ((v1-128 (-> self racer bounce))
(f1-36 (cond
((= v1-128 1) (* -0.08888889 f0-77))
+3 -2
View File
@@ -14,6 +14,7 @@
spider-egg-hatch
(spider-egg-idle symbol)))
(defskelgroup *spider-egg-unbroken-sg*
spider-egg
spider-egg-unbroken-lod0-jg
@@ -88,7 +89,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 324)
group-spider-egg-hatches
-1
#f
#f
@@ -129,7 +130,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 325)
group-spider-egg-explodes
-1
#f
#f
@@ -213,7 +213,7 @@
(quaternion->matrix s5-0 (-> self collide-info quat))
(set! (-> self run-blend-interp) (acos (vector-dot (-> s5-0 vector 2) (-> gp-0 vector 2))))
(set! (-> self run-blend-interp) (/ (-> self run-blend-interp) (-> self flee-info blend_interp_angle)))
(if (< (vector-dot (-> s5-0 vector 2) (the-as vector (-> gp-0 vector))) 0.0)
(if (< (vector-dot (-> s5-0 vector 2) (-> gp-0 vector 0)) 0.0)
(set! (-> self run-blend-interp) (- (-> self run-blend-interp))))))
(defbehavior fleeing-nav-enemy-chase-post fleeing-nav-enemy ()
@@ -985,7 +985,7 @@
(set! (-> this root) (new 'process 'trsqv))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *lightning-mole-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 456) this))
(set! (-> this part) (create-launch-control group-peeper this))
(set! (-> this sound) (new 'process 'ambient-sound arg0 (-> this root trans)))
(go peeper-up)
(none))
+8 -8
View File
@@ -328,7 +328,7 @@
(set! (-> this root) (new 'process 'trsqv))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *dark-plant-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 455) this))
(set! (-> this part) (create-launch-control group-dark-plant this))
(set! (-> this num-alts) (min 4 (entity-actor-count (-> this entity) 'alt-actor)))
(dotimes (s5-3 (-> this num-alts))
(set! (-> this alts s5-3) (entity-actor-lookup (-> this entity) 'alt-actor s5-3)))
@@ -697,9 +697,9 @@
(defbehavior gorge-start-draw-time gorge-start ((arg0 symbol) (arg1 symbol))
(let ((gp-0 (new 'stack 'font-context *font-default-matrix* 0 0 0.0 (font-color progress-yellow) (font-flags shadow kerning))))
(let ((v1-1 gp-0)) (set! (-> v1-1 width) (the float 200)))
(let ((v1-2 gp-0)) (set! (-> v1-2 height) (the float 50)))
(let ((v1-3 gp-0)) (set! (-> v1-3 scale) 0.7))
(set-width! gp-0 200)
(set-height! gp-0 50)
(set-scale! gp-0 0.7)
(set! (-> gp-0 origin x) (the float (+ (-> self timer-pos-offset) 392)))
(set! (-> gp-0 origin y) (the float (- 10 (-> self timer-pos-offset))))
(set! (-> gp-0 flags) (font-flags shadow kerning right large))
@@ -718,7 +718,7 @@
((not arg0))
((race-time-less-than (-> self this-time) (-> self record-time))
(when (< (mod (-> *display* real-frame-counter) 90) 60)
(let ((v1-18 gp-0)) (set! (-> v1-18 scale) 1.0))
(set-scale! gp-0 1.0)
(set! (-> gp-0 origin x) 156.0)
(set! (-> gp-0 origin y) 80.0)
(set! (-> gp-0 flags) (font-flags shadow kerning middle middle-vert large))
@@ -731,7 +731,7 @@
(else
(if arg1 (ambient-hint-spawn "st-lose" (the-as vector #f) *entity-pool* 'stinger))
(when (< (mod (-> *display* real-frame-counter) 90) 60)
(let ((v1-30 gp-0)) (set! (-> v1-30 scale) 1.0))
(set-scale! gp-0 1.0)
(set! (-> gp-0 origin x) 156.0)
(set! (-> gp-0 origin y) 80.0)
(set! (-> gp-0 flags) (font-flags shadow kerning middle middle-vert large))
@@ -782,8 +782,8 @@
(send-event (ppointer->process (-> *hud-parts* money)) 'enable))
(when (< (mod (-> *display* real-frame-counter) 90) 60)
(let ((gp-0 (new 'stack 'font-context *font-default-matrix* 156 80 0.0 (font-color red) (font-flags shadow kerning))))
(let ((v1-20 gp-0)) (set! (-> v1-20 width) (the float 200)))
(let ((v1-21 gp-0)) (set! (-> v1-21 height) (the float 50)))
(set-width! gp-0 200)
(set-height! gp-0 50)
(set! (-> gp-0 flags) (font-flags shadow kerning middle middle-vert large))
(print-game-text (lookup-text! *common-text* (text-id race-aborted) #f) gp-0 #f 128 22)))
(suspend)
@@ -503,7 +503,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 460)
group-rolling-ring-blue
-1
race-ring-blue-set-particle-rotation-callback
(-> self ppointer)
@@ -518,7 +518,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 457)
group-rolling-ring
-1
race-ring-set-particle-rotation-callback
(-> self ppointer)
@@ -542,7 +542,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 461)
group-rolling-spawn-ring-blue
-1
race-ring-blue-set-particle-rotation-callback
(-> self ppointer)
@@ -554,7 +554,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 458)
group-rolling-spawn-ring
-1
race-ring-set-particle-rotation-callback
(-> self ppointer)
@@ -574,7 +574,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 462)
group-rolling-explode-ring-blue
-1
race-ring-blue-set-particle-rotation-callback
(-> self ppointer)
@@ -586,7 +586,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 459)
group-rolling-explode-ring
-1
race-ring-set-particle-rotation-callback
(-> self ppointer)
@@ -610,7 +610,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 460)
group-rolling-ring-blue
-1
race-ring-blue-set-particle-rotation-callback
(-> self ppointer)
@@ -624,7 +624,7 @@
(ppointer->handle (process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 457)
group-rolling-ring
-1
race-ring-set-particle-rotation-callback
(-> self ppointer)
@@ -765,7 +765,7 @@
(+! (-> this rot-y) 16384.0))))
(+! (-> this rot-y) (res-lump-float arg0 'rotoffset))
(set-vector! (-> this cyl axis) (cos (-> this rot-y)) 0.0 (- (sin (-> this rot-y))) 1.0)
(vector+float*! (the-as vector (-> this cyl)) (-> this root trans) (-> this cyl axis) -2048.0)
(vector+float*! (-> this cyl origin) (-> this root trans) (-> this cyl axis) -2048.0)
(set! (-> this cyl radius) 24576.0)
(set! (-> this cyl length) 4096.0)
(cond
+4 -4
View File
@@ -502,10 +502,10 @@
(call-parent-method this offset))
(defmethod init-from-entity! ((this ice-cube) (arg0 entity-actor))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 507) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 508) this))
(set! (-> this part3) (create-launch-control (-> *part-group-id-table* 509) this))
(set! (-> this part4) (create-launch-control (-> *part-group-id-table* 567) this))
(set! (-> this part) (create-launch-control group-ice-cube-appear1 this))
(set! (-> this part2) (create-launch-control group-ice-cube-appear2 this))
(set! (-> this part3) (create-launch-control group-ice-cube-shatter this))
(set! (-> this part4) (create-launch-control group-ice-cube-foot-puff this))
(initialize-collision this)
(nav-enemy-method-48 this)
(let ((s4-0 (-> this path curve num-cverts)))
+2 -2
View File
@@ -268,8 +268,8 @@
(set! (-> this root) s4-0))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *snow-bumper-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 519) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 520) this))
(set! (-> this part) (create-launch-control group-snow-bumper-idle this))
(set! (-> this part2) (create-launch-control group-snow-bumper-shove this))
(nav-mesh-connect this (-> this root) (the-as nav-control #f))
(set! (-> this link) (new 'process 'actor-link-info this))
(set! (-> this bumper-id) (+ (actor-count-before (-> this link)) 1))
@@ -647,7 +647,7 @@
*flutflut-plat-small-sg*)
(defmethod baseplat-method-25 ((this flutflut-plat-small))
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 516) this)))
(let ((v0-0 (create-launch-control group-flutflut-plat-small this)))
(set! (-> this part) v0-0)
(the-as sparticle-launch-group v0-0)))
@@ -687,7 +687,7 @@
*flutflut-plat-med-sg*)
(defmethod baseplat-method-25 ((this flutflut-plat-med))
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 517) this)))
(let ((v0-0 (create-launch-control group-flutflut-plat-med this)))
(set! (-> this part) v0-0)
(the-as sparticle-launch-group v0-0)))
@@ -715,7 +715,7 @@
*flutflut-plat-large-sg*)
(defmethod baseplat-method-25 ((this flutflut-plat-large))
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 518) this)))
(let ((v0-0 (create-launch-control group-flutflut-plat-large this)))
(set! (-> this part) v0-0)
(the-as sparticle-launch-group v0-0)))
+6 -6
View File
@@ -271,7 +271,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 511)
group-snow-yellow-eco-room-activate
-1
#f
#f
@@ -346,7 +346,7 @@
(set! (-> this spawn-trans quad) (-> this root trans quad))
(+! (-> this root trans y) -2662.4)
(update-transforms! (-> this root))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 510) this))
(set! (-> this part) (create-launch-control group-snow-yellow-eco-room-open this))
(set! (-> this sound) (new 'process 'ambient-sound (static-sound-spec "electric-loop" :fo-max 40) (-> this root trans)))
(cond
((task-complete? *game-info* (-> this entity extra perm task)) (go snow-eggtop-idle-down))
@@ -793,9 +793,9 @@
(set! (-> this root) s4-0))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *snow-fort-gate-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 512) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 513) this))
(set! (-> this part3) (create-launch-control (-> *part-group-id-table* 514) this))
(set! (-> this part) (create-launch-control group-snow-fort-gate-coming-down this))
(set! (-> this part2) (create-launch-control group-snow-fort-gate-hits-bottom this))
(set! (-> this part3) (create-launch-control group-snow-fort-gate-snowdrops this))
(set! (-> this open-trans quad) (-> this root trans quad))
(set! (-> this closed-trans quad) (-> this open-trans quad))
(+! (-> this open-trans y) -141312.0)
@@ -972,7 +972,7 @@
(set! (-> this root) (new 'process 'trsqv))
(process-drawable-from-entity! this arg0)
(initialize-skeleton this *snow-gears-sg* '())
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 515) this))
(set! (-> this part) (create-launch-control group-snow-gears-dripping this))
(set! (-> this sound) (new 'process 'ambient-sound (static-sound-spec "snow-engine" :fo-max 300) (-> this root trans)))
(go snow-gears-idle)
(none))
+8 -8
View File
@@ -438,7 +438,7 @@
(the-as process-drawable #f)
0.0
81920.0))
(if (-> this launched?) (spawn (-> this part2) (the-as vector (-> this root root-prim prim-core))))
(if (-> this launched?) (spawn (-> this part2) (-> this root root-prim prim-core world-sphere)))
(let ((s5-0 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
(set! (-> s5-0 command) (sound-command set-param))
(set! (-> s5-0 id) (-> this sound-id))
@@ -495,8 +495,8 @@
(defmethod projectile-method-27 ((this ram-boss-proj))
(set! (-> this charge-sound-id) (new 'static 'sound-id))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 521) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 522) this))
(set! (-> this part) (create-launch-control group-ram-boss-proj-grow this))
(set! (-> this part2) (create-launch-control group-ram-boss-proj-fly this))
(set! (-> this launched?) #f)
(set! (-> this growth) 0.0)
(set! (-> this max-speed) 40960.0)
@@ -594,7 +594,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 523)
group-ram-boss-proj-hit
-1
#f
#f
@@ -614,7 +614,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 524)
group-ram-boss-proj-die
-1
#f
#f
@@ -887,8 +887,8 @@
(set! (-> this draw origin-joint-index) (the-as uint 3))
(init-defaults! this *ram-boss-nav-enemy-info*)
(logclear! (-> this enemy-info options) (fact-options has-power-cell))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 525) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 574) this))
(set! (-> this part) (create-launch-control group-ram-boss-shield-on-fire this))
(set! (-> this part2) (create-launch-control group-ram-boss-foot-puff this))
(set! (-> this shield-jmod) (new 'process 'joint-mod-set-local this 32 #f #f #t))
(set! (-> this shield-jmod enable) #f)
(set! (-> this has-shield?) #t)
@@ -1018,7 +1018,7 @@
(when *target*
(if *target*
(look-at-enemy! (-> *target* neck)
(the-as vector (-> (the-as collide-shape-prim-group (-> self collide-info root-prim)) prims 0 prim-core))
(-> (the-as collide-shape-prim-group (-> self collide-info root-prim)) prims 0 prim-core world-sphere)
'attacking
self)))
(suspend))))
+2 -2
View File
@@ -311,8 +311,8 @@
(update-transforms! (-> this root))
(set! (-> this orient-ry) (quaternion-y-angle (-> this root quat)))
(nav-mesh-connect this (-> this root) (the-as nav-control #f))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 526) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 527) this))
(set! (-> this part) (create-launch-control group-ram-hit-wall this))
(set! (-> this part2) (create-launch-control group-ram-wheel-puffs this))
(set! (-> this ram-id) (res-lump-value arg0 'extra-id int))
(case (-> this ram-id)
((1)
+2 -2
View File
@@ -441,8 +441,8 @@
(call-parent-method this offset))
(defbehavior yeti-slave-init-by-other yeti-slave ((arg0 entity) (arg1 yeti) (arg2 vector) (arg3 vector) (arg4 symbol))
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 538) self))
(set! (-> self part2) (create-launch-control (-> *part-group-id-table* 539) self))
(set! (-> self part) (create-launch-control group-yeti-slave-appear1 self))
(set! (-> self part2) (create-launch-control group-yeti-slave-appear2 self))
(initialize-collision self)
(set! (-> self collide-info trans quad) (-> arg2 quad))
(vector-identity! (-> self collide-info scale))
+4 -4
View File
@@ -385,7 +385,7 @@
(when *target*
(if *target*
(look-at-enemy! (-> *target* neck)
(the-as vector (-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core))
(-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core world-sphere)
'attacking
self))
(set-target! (-> self neck) (target-pos 5))))
@@ -439,7 +439,7 @@
(when *target*
(if *target*
(look-at-enemy! (-> *target* neck)
(the-as vector (-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core))
(-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core world-sphere)
'attacking
self))
(set-target! (-> self neck) (target-pos 5)))
@@ -504,7 +504,7 @@
(when *target*
(if *target*
(look-at-enemy! (-> *target* neck)
(the-as vector (-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core))
(-> (the-as collide-shape-prim-group (-> self root root-prim)) prims 0 prim-core world-sphere)
'attacking
self))
(set-target! (-> self neck) (target-pos 5))))
@@ -606,7 +606,7 @@
(set! (-> this draw shadow-ctrl) *bully-shadow-control*)
(set! (-> this nav) (new 'process 'nav-control (-> this root) 16 40960.0))
(logior! (-> this nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 454) this))
(set! (-> this part) (create-launch-control group-bully-explode this))
(set! (-> this fact) (new 'process 'fact-info-enemy this (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)))
(let ((v1-49 (new 'process 'joint-mod (joint-mod-handler-mode reset) this 5)))
(set! (-> this neck) v1-49)
+2 -2
View File
@@ -193,8 +193,8 @@
(quaternion-copy! (-> self root quat) (-> arg1 root quat))
(set! (-> self root scale quad) (-> arg1 root scale quad))
(+! (-> self root trans y) -5324.8)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 440) self))
(set! (-> self part2) (create-launch-control (-> *part-group-id-table* 107) self))
(set! (-> self part) (create-launch-control group-orbit-plat-jet self))
(set! (-> self part2) (create-launch-control group-standard-plat self))
(initialize-skeleton self *orbit-plat-bottom-sg* '())
(ja-channel-set! 1)
(ja :group! orbit-plat-bottom-idle-ja :num! min)
@@ -332,9 +332,9 @@
(+! (-> this up-pos y) f0-10)))
(set! (-> this basetrans quad) (-> this down-pos quad))
(set! (-> this root trans quad) (-> this basetrans quad))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 437) this))
(set! (-> this part3) (create-launch-control (-> *part-group-id-table* 438) this))
(set! (-> this part4) (create-launch-control (-> *part-group-id-table* 439) this))
(set! (-> this part2) (create-launch-control group-square-platform-breach-splash this))
(set! (-> this part3) (create-launch-control group-square-platform-submerge-bubbles this))
(set! (-> this part4) (create-launch-control group-square-platform-submerge-splash this))
(set! (-> this water-entity) (entity-actor-lookup arg0 'alt-actor 0))
(ja-post)
(update-transforms! (-> this root))
+5 -5
View File
@@ -515,8 +515,8 @@
(let ((v1-77 (new 'stack-no-clear 'vector))
(a0-35 (new 'stack-no-clear 'vector))
(s5-1 (new 'stack-no-clear 'vector)))
(vector-! v1-77 (the-as vector (&-> this stack 176)) (the-as vector (-> this control-pt)))
(vector-! a0-35 (the-as vector (&-> this stack 208)) (the-as vector (-> this control-pt)))
(vector-! v1-77 (the-as vector (&-> this stack 176)) (-> this control-pt 0 trans))
(vector-! a0-35 (the-as vector (&-> this stack 208)) (-> this control-pt 0 trans))
(vector-cross! s5-1 v1-77 a0-35)
(vector-normalize! s5-1 1.0)
(forward-up-nopitch->quaternion (-> this root quat) (vector-z-quaternion! (new-stack-vector0) (-> this root quat)) s5-1))))
@@ -591,9 +591,9 @@
(set! (-> this down quad) (-> this root trans quad))
(set! (-> this up quad) (-> this root trans quad))
(+! (-> this up y) 40960.0)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 441) this))
(set! (-> this part2) (create-launch-control (-> *part-group-id-table* 442) this))
(set! (-> this part3) (create-launch-control (-> *part-group-id-table* 443) this))
(set! (-> this part) (create-launch-control group-steam-cap-sides this))
(set! (-> this part2) (create-launch-control group-steam-cap-plume this))
(set! (-> this part3) (create-launch-control group-steam-cap-plume-spread this))
(vector-reset! (-> this root transv))
(let ((s5-1 (new 'stack-no-clear 'vector))
(f30-1 0.0))
@@ -773,7 +773,7 @@
(initialize-skeleton this *exit-chamber-sg* '())
(logior! (-> this skel status) (janim-status inited))
(logclear! (-> this mask) (process-mask actor-pause))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 620) this))
(set! (-> this part) (create-launch-control group-exit-chamber-ripples this))
(ja-channel-set! 1)
(let ((s4-1 (get-reminder (get-task-control (game-task sunken-room)) 0)))
(let ((s2-0 #f)
+1 -1
View File
@@ -101,7 +101,7 @@
(none))
(defmethod baseplat-method-25 ((this side-to-side-plat))
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 436) this)))
(let ((v0-0 (create-launch-control group-side-to-side-plat this)))
(set! (-> this part) v0-0)
(the-as sparticle-launch-group v0-0)))
@@ -762,8 +762,8 @@
(set! (-> s0-0 pipe-travel-time-to-far) (seconds 8.5))
(set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5))
(set-vector! s4-0 -30720.0 1146.88 5120.0 1.0)
(set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 448) this))
(set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 451) this))
(set! (-> s0-0 sucked-up-part) (create-launch-control group-pipegame-jar-suck0 this))
(set! (-> s0-0 blown-out-part) (create-launch-control group-pipegame-blow0 this))
(+! (-> s0-0 jar-pos y) 11673.6)
(+! (-> s0-0 far-pos y) 11673.6)
(when (not s1-1)
@@ -776,8 +776,8 @@
(set! (-> s0-0 pipe-travel-time-to-far) (seconds 5.5))
(set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5))
(set-vector! s4-0 0.0 1146.88 5120.0 1.0)
(set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 449) this))
(set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 452) this))
(set! (-> s0-0 sucked-up-part) (create-launch-control group-pipegame-jar-suck1 this))
(set! (-> s0-0 blown-out-part) (create-launch-control group-pipegame-blow1 this))
(+! (-> s0-0 jar-pos y) 7168.0)
(+! (-> s0-0 far-pos y) 7168.0)
(+! (-> s0-0 blown-out-far-part-pos y) 4096.0)
@@ -793,8 +793,8 @@
(set! (-> s0-0 pipe-travel-time-to-far) (seconds 4.5))
(set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5))
(set-vector! s4-0 30720.0 1146.88 5120.0 1.0)
(set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 450) this))
(set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 453) this))
(set! (-> s0-0 sucked-up-part) (create-launch-control group-pipegame-jar-suck2 this))
(set! (-> s0-0 blown-out-part) (create-launch-control group-pipegame-blow2 this))
(+! (-> s0-0 jar-pos y) 7168.0)
(+! (-> s0-0 far-pos y) 7168.0)
(+! (-> s0-0 blown-out-far-part-pos y) 4096.0)
+1 -1
View File
@@ -342,7 +342,7 @@
(set! f28-0 (-> v1-17 1))))
(set! (-> this spin-speed-idle) f30-0)
(set! (-> this spin-speed-delta) (- f28-0 f30-0)))
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 447) this))
(set! (-> this part) (create-launch-control group-whirlpool-swirl this))
(set! (-> this sound) (new 'process 'ambient-sound (static-sound-spec "whirlpool" :fo-max 55) (-> this root trans)))
(ja-channel-set! 1)
(let ((s5-1 (-> this skel root-channel 0)))
+4 -4
View File
@@ -481,7 +481,7 @@
(process-spawn part-tracker
:init
part-tracker-init
(-> *part-group-id-table* 301)
group-kermit-pulse-impact
-1
#f
#f
@@ -514,7 +514,7 @@
(vector-identity! (-> self root scale))
(vector-reset! (-> self root transv))
(set! (-> self sound-id) (new-sound-id))
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 300) self))
(set! (-> self part) (create-launch-control group-kermit-pulse self))
(go kermit-pulse-idle)
(none))
@@ -1061,8 +1061,8 @@ nav-enemy-default-event-handler
(set! (-> this tongue-control forward-scale-max) 2.0)
(set! (-> this tongue-control enable) #f)
(set! (-> this charged-up) #t)
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 299) this))
(set! (-> this charging-part) (create-launch-control (-> *part-group-id-table* 298) this))
(set! (-> this part) (create-launch-control group-kermit-charged-up this))
(set! (-> this charging-part) (create-launch-control group-kermit-charging-up this))
(set! (-> this sound-id) (new-sound-id))
(go kermit-idle)
(none))

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