From 2ea2d6a58a7f1b98c3468199df4b2091c86df7e0 Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Thu, 4 Nov 2021 23:10:39 +0000 Subject: [PATCH] [decompiler] implement `defskelgroup` (#955) * implement `defskelgroup` in decompiler 0 lines removed! * clang * fix matcher code * it was fine actually * update all files (pt 1) * update all files * remaining fixes! * null deref * use METER_LENGTH * move max lod warning * clang * math error * fix macros too * fix bug in a print --- decompiler/CMakeLists.txt | 1 + decompiler/IR2/Form.cpp | 94 ++ decompiler/IR2/Form.h | 41 + decompiler/IR2/FormExpressionAnalysis.cpp | 9 + decompiler/ObjectFile/ObjectFileDB_IR2.cpp | 8 + decompiler/analysis/find_defstates.cpp | 6 +- decompiler/analysis/find_skelgroups.cpp | 225 ++++ decompiler/analysis/find_skelgroups.h | 8 + goal_src/engine/data/art-h.gc | 14 +- goal_src/engine/math/vector-h.gc | 5 + goal_src/engine/target/target-util.gc | 29 +- goal_src/engine/ui/hud-classes.gc | 25 +- goal_src/levels/beach/beach-obs.gc | 9 +- goal_src/levels/beach/beach-rocks.gc | 23 +- goal_src/levels/beach/bird-lady-beach.gc | 35 +- goal_src/levels/beach/bird-lady.gc | 25 +- goal_src/levels/beach/lurkercrab.gc | 27 +- goal_src/levels/beach/lurkerpuppy.gc | 29 +- goal_src/levels/beach/mayor.gc | 24 +- goal_src/levels/beach/sculptor.gc | 45 +- goal_src/levels/citadel/assistant-citadel.gc | 35 +- goal_src/levels/citadel/citb-drop-plat-CIT.gc | 121 +-- goal_src/levels/common/babak.gc | 31 +- goal_src/levels/common/basebutton.gc | 21 +- goal_src/levels/common/blocking-plane.gc | 22 +- goal_src/levels/common/plat-button.gc | 25 +- goal_src/levels/common/plat.gc | 72 +- goal_src/levels/common/sharkey.gc | 22 +- goal_src/levels/finalboss/final-door.gc | 66 +- goal_src/levels/finalboss/green-eco-lurker.gc | 24 +- goal_src/levels/finalboss/light-eco.gc | 43 +- goal_src/levels/finalboss/robotboss-h.gc | 24 +- goal_src/levels/finalboss/robotboss-misc.gc | 88 +- goal_src/levels/finalboss/robotboss-weapon.gc | 65 +- goal_src/levels/finalboss/robotboss.gc | 64 +- .../levels/finalboss/sage-finalboss-FIN.gc | 5 - .../levels/firecanyon/assistant-firecanyon.gc | 24 +- goal_src/levels/flut_common/flutflut.gc | 26 +- goal_src/levels/intro/evilbro.gc | 49 +- goal_src/levels/jungle/bouncer.gc | 21 +- goal_src/levels/jungle/fisher-JUN.gc | 114 +- goal_src/levels/jungle/hopper.gc | 30 +- goal_src/levels/jungle/jungle-elevator.gc | 12 +- goal_src/levels/jungle/junglefish.gc | 28 +- goal_src/levels/jungle/junglesnake.gc | 32 +- goal_src/levels/jungleb/aphid.gc | 25 +- goal_src/levels/jungleb/plat-flip.gc | 22 +- .../levels/lavatube/assistant-lavatube.gc | 24 +- goal_src/levels/maincave/baby-spider.gc | 30 +- goal_src/levels/maincave/spiderwebs.gc | 22 +- goal_src/levels/misty/bonelurker.gc | 30 +- goal_src/levels/misty/misty-conveyor.gc | 73 +- goal_src/levels/misty/misty-teetertotter.gc | 26 +- goal_src/levels/misty/misty-warehouse.gc | 47 +- goal_src/levels/misty/muse.gc | 24 +- goal_src/levels/misty/sidekick-human.gc | 108 +- goal_src/levels/ogre/flying-lurker.gc | 79 +- goal_src/levels/racer_common/racer.gc | 35 + .../target-racer-h-FIC-LAV-MIS-OGR-ROL.gc | 98 +- goal_src/levels/snow/yeti.gc | 24 +- goal_src/levels/sunken/qbert-plat.gc | 45 +- goal_src/levels/sunken/square-platform.gc | 26 +- goal_src/levels/sunken/sunken-fish.gc | 67 +- goal_src/levels/sunken/sunken-obs.gc | 6 +- goal_src/levels/sunken/wall-plat.gc | 23 +- goal_src/levels/sunken/wedge-plats.gc | 43 +- goal_src/levels/swamp/swamp-bat.gc | 27 +- goal_src/levels/swamp/swamp-rat-nest.gc | 69 +- goal_src/levels/swamp/swamp-rat.gc | 28 +- goal_src/levels/village1/assistant.gc | 24 +- goal_src/levels/village1/explorer.gc | 24 +- goal_src/levels/village1/farmer.gc | 27 +- goal_src/levels/village1/fishermans-boat.gc | 69 +- goal_src/levels/village1/sage.gc | 24 +- goal_src/levels/village1/yakow.gc | 50 +- .../levels/village2/assistant-village2.gc | 50 +- goal_src/levels/village2/flutflut-bluehut.gc | 37 +- goal_src/levels/village2/gambler.gc | 29 +- goal_src/levels/village2/geologist.gc | 29 +- goal_src/levels/village2/sage-bluehut.gc | 24 +- goal_src/levels/village2/sunken-elevator.gc | 23 +- goal_src/levels/village2/village2-obs.gc | 21 +- goal_src/levels/village2/warrior.gc | 29 +- .../levels/village3/assistant-village3.gc | 24 +- goal_src/levels/village3/miners.gc | 67 +- goal_src/levels/village3/sage-village3.gc | 70 +- goal_src/levels/village_common/oracle.gc | 22 +- .../decompiler/reference/decompiler-macros.gc | 47 +- .../engine/target/target-util_REF.gc | 28 +- .../reference/engine/ui/hud-classes_REF.gc | 23 +- .../reference/levels/beach/beach-rocks_REF.gc | 21 +- .../levels/beach/bird-lady-beach_REF.gc | 22 +- .../reference/levels/beach/bird-lady_REF.gc | 23 +- .../reference/levels/beach/lurkercrab_REF.gc | 25 +- .../reference/levels/beach/lurkerpuppy_REF.gc | 27 +- .../reference/levels/beach/mayor_REF.gc | 22 +- .../reference/levels/beach/sculptor_REF.gc | 42 +- .../levels/citadel/assistant-citadel_REF.gc | 22 +- .../levels/citadel/citb-drop-plat-CIT_REF.gc | 115 +- .../reference/levels/common/babak_REF.gc | 29 +- .../reference/levels/common/basebutton_REF.gc | 20 +- .../levels/common/blocking-plane_REF.gc | 20 +- .../levels/common/plat-button_REF.gc | 21 +- .../reference/levels/common/plat_REF.gc | 68 +- .../reference/levels/common/sharkey_REF.gc | 20 +- .../reference/levels/common/water-anim_REF.gc | 983 +++++------------- .../levels/finalboss/final-door_REF.gc | 62 +- .../levels/finalboss/green-eco-lurker_REF.gc | 22 +- .../levels/finalboss/light-eco_REF.gc | 40 +- .../levels/finalboss/robotboss-h_REF.gc | 22 +- .../levels/finalboss/robotboss-misc_REF.gc | 83 +- .../levels/finalboss/robotboss-weapon_REF.gc | 61 +- .../levels/finalboss/robotboss_REF.gc | 60 +- .../firecanyon/assistant-firecanyon_REF.gc | 22 +- .../levels/flut_common/flutflut_REF.gc | 24 +- .../reference/levels/intro/evilbro_REF.gc | 44 +- .../reference/levels/jungle/bouncer_REF.gc | 20 +- .../reference/levels/jungle/fisher-JUN_REF.gc | 108 +- .../reference/levels/jungle/hopper_REF.gc | 28 +- .../reference/levels/jungle/junglefish_REF.gc | 26 +- .../levels/jungle/junglesnake_REF.gc | 22 +- .../reference/levels/jungleb/aphid_REF.gc | 23 +- .../reference/levels/jungleb/plat-flip_REF.gc | 20 +- .../levels/lavatube/assistant-lavatube_REF.gc | 22 +- .../levels/maincave/baby-spider_REF.gc | 28 +- .../levels/maincave/spiderwebs_REF.gc | 20 +- .../reference/levels/misty/bonelurker_REF.gc | 28 +- .../levels/misty/misty-conveyor_REF.gc | 69 +- .../levels/misty/misty-teetertotter_REF.gc | 25 +- .../levels/misty/misty-warehouse_REF.gc | 44 +- .../reference/levels/misty/muse_REF.gc | 23 +- .../levels/misty/sidekick-human_REF.gc | 102 +- .../levels/ogre/flying-lurker_REF.gc | 76 +- .../target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc | 24 +- .../reference/levels/snow/yeti_REF.gc | 22 +- .../reference/levels/sunken/qbert-plat_REF.gc | 42 +- .../levels/sunken/square-platform_REF.gc | 24 +- .../levels/sunken/sunken-fish_REF.gc | 63 +- .../reference/levels/sunken/wall-plat_REF.gc | 21 +- .../levels/sunken/wedge-plats_REF.gc | 40 +- .../reference/levels/swamp/swamp-bat_REF.gc | 25 +- .../levels/swamp/swamp-rat-nest_REF.gc | 66 +- .../reference/levels/swamp/swamp-rat_REF.gc | 27 +- .../levels/village1/assistant_REF.gc | 22 +- .../reference/levels/village1/explorer_REF.gc | 22 +- .../reference/levels/village1/farmer_REF.gc | 25 +- .../levels/village1/fishermans-boat_REF.gc | 65 +- .../reference/levels/village1/sage_REF.gc | 22 +- .../reference/levels/village1/yakow_REF.gc | 47 +- .../levels/village2/assistant-village2_REF.gc | 47 +- .../levels/village2/flutflut-bluehut_REF.gc | 20 +- .../reference/levels/village2/gambler_REF.gc | 27 +- .../levels/village2/geologist_REF.gc | 27 +- .../levels/village2/sage-bluehut_REF.gc | 22 +- .../levels/village2/sunken-elevator_REF.gc | 21 +- .../reference/levels/village2/warrior_REF.gc | 27 +- .../levels/village3/assistant-village3_REF.gc | 22 +- .../reference/levels/village3/miners_REF.gc | 64 +- .../levels/village3/sage-village3_REF.gc | 66 +- .../levels/village_common/oracle_REF.gc | 20 +- 160 files changed, 2347 insertions(+), 4665 deletions(-) create mode 100644 decompiler/analysis/find_skelgroups.cpp create mode 100644 decompiler/analysis/find_skelgroups.h diff --git a/decompiler/CMakeLists.txt b/decompiler/CMakeLists.txt index 011b47888f..09a6652121 100644 --- a/decompiler/CMakeLists.txt +++ b/decompiler/CMakeLists.txt @@ -7,6 +7,7 @@ add_library( analysis/expression_build.cpp analysis/final_output.cpp analysis/find_defstates.cpp + analysis/find_skelgroups.cpp analysis/inline_asm_rewrite.cpp analysis/insert_lets.cpp analysis/label_types.cpp diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index 0778f8b3e8..d3e8282c12 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -2916,6 +2916,100 @@ goos::Object DefstateElement::to_form_internal(const Env& env) const { return pretty_print::build_list(forms); } +//////////////////////////////// +// DefskelgroupElement +//////////////////////////////// + +DefskelgroupElement::DefskelgroupElement(const std::string& name, + const DefskelgroupElement::Info& info, + const StaticInfo& data) + : m_name(name), m_static_info(data), m_info(info) { + for (auto& e : m_info.lods) { + e.mgeo->parent_element = this; + e.lod_dist->parent_element = this; + } + m_info.janim->parent_element = this; + m_info.jgeo->parent_element = this; +} + +void DefskelgroupElement::apply(const std::function& f) { + f(this); + for (auto& e : m_info.lods) { + e.mgeo->apply(f); + e.lod_dist->apply(f); + } + m_info.janim->apply(f); + m_info.jgeo->apply(f); +} + +void DefskelgroupElement::apply_form(const std::function& f) { + for (auto& e : m_info.lods) { + e.mgeo->apply_form(f); + e.lod_dist->apply_form(f); + } + m_info.janim->apply_form(f); + m_info.jgeo->apply_form(f); +} + +void DefskelgroupElement::collect_vars(RegAccessSet& vars, bool recursive) const { + if (recursive) { + for (auto& e : m_info.lods) { + e.mgeo->collect_vars(vars, recursive); + e.lod_dist->collect_vars(vars, recursive); + } + m_info.janim->collect_vars(vars, recursive); + m_info.jgeo->collect_vars(vars, recursive); + } +} + +void DefskelgroupElement::get_modified_regs(RegSet& regs) const { + for (auto& e : m_info.lods) { + e.mgeo->get_modified_regs(regs); + e.lod_dist->get_modified_regs(regs); + } + m_info.janim->get_modified_regs(regs); + m_info.jgeo->get_modified_regs(regs); +} + +goos::Object DefskelgroupElement::to_form_internal(const Env& env) const { + std::vector forms; + forms.push_back( + pretty_print::to_symbol(fmt::format("defskelgroup {} {}", m_name, m_static_info.art_name))); + forms.push_back(m_info.jgeo->to_form(env)); + forms.push_back(m_info.janim->to_form(env)); + + std::vector lod_forms; + for (const auto& e : m_info.lods) { + auto f_dist = pretty_print::to_symbol( + fmt::format("(meters {})", e.lod_dist->to_form(env).as_float() / METER_LENGTH)); + lod_forms.push_back(pretty_print::build_list(e.mgeo->to_form(env), f_dist)); + } + forms.push_back(pretty_print::build_list(lod_forms)); + + forms.push_back(pretty_print::to_symbol( + fmt::format(":bounds (static-spherem {} {} {} {})", m_static_info.bounds.x() / METER_LENGTH, + m_static_info.bounds.y() / METER_LENGTH, m_static_info.bounds.z() / METER_LENGTH, + m_static_info.bounds.w() / METER_LENGTH))); + forms.push_back(pretty_print::to_symbol( + fmt::format(":longest-edge (meters {})", m_static_info.longest_edge / METER_LENGTH))); + + if (m_static_info.shadow != 0) { + forms.push_back(pretty_print::to_symbol(fmt::format(":shadow {}", m_static_info.shadow))); + } + if (m_static_info.tex_level != 0) { + forms.push_back( + pretty_print::to_symbol(fmt::format(":texture-level {}", m_static_info.tex_level))); + } + if (m_static_info.sort != 0) { + forms.push_back(pretty_print::to_symbol(fmt::format(":sort {}", m_static_info.sort))); + } + if (m_static_info.version != 6) { + forms.push_back(pretty_print::to_symbol(fmt::format(":version {}", m_static_info.version))); + } + + return pretty_print::build_list(forms); +} + //////////////////////////////// // ResLumpMacroElement //////////////////////////////// diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index f146c75e5a..f1df11bd31 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -11,6 +11,7 @@ #include "decompiler/Disasm/DecompilerLabel.h" #include "common/type_system/state.h" #include "decompiler/IR2/LabelDB.h" +#include "common/math/Vector.h" namespace decompiler { class Form; @@ -1631,6 +1632,46 @@ class DefstateElement : public FormElement { bool m_is_virtual = false; }; +class DefskelgroupElement : public FormElement { + public: + struct StaticInfo { + std::string art_name; + math::Vector4f bounds; + int max_lod; + float longest_edge; + s8 tex_level; + s8 version; + s8 shadow; + s8 sort; + }; + struct Entry { + Form* mgeo = nullptr; + Form* lod_dist = nullptr; + }; + struct Info { + Form* jgeo; + Form* janim; + std::vector lods; + }; + DefskelgroupElement(const std::string& name, const Info& info, const StaticInfo& data); + + goos::Object to_form_internal(const Env& env) const override; + void apply(const std::function& f) override; + void apply_form(const std::function& f) override; + void collect_vars(RegAccessSet& vars, bool recursive) const override; + void update_from_stack(const Env& env, + FormPool& pool, + FormStack& stack, + std::vector* result, + bool allow_side_effects) override; + void get_modified_regs(RegSet& regs) const override; + + private: + std::string m_name; + StaticInfo m_static_info; + Info m_info; +}; + class ResLumpMacroElement : public FormElement { public: enum class Kind { DATA, STRUCT, VALUE, INVALID }; diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index de39b252ff..3a5b34128f 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -5280,6 +5280,15 @@ void DefstateElement::update_from_stack(const Env&, result->push_back(this); } +void DefskelgroupElement::update_from_stack(const Env&, + FormPool&, + FormStack&, + std::vector* result, + bool) { + mark_popped(); + result->push_back(this); +} + void ResLumpMacroElement::update_from_stack(const Env&, FormPool&, FormStack&, diff --git a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp index 41cb690f1d..bf4ddafc05 100644 --- a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp +++ b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp @@ -22,6 +22,7 @@ #include "decompiler/analysis/stack_spill.h" #include "decompiler/analysis/static_refs.h" #include "decompiler/analysis/symbol_def_map.h" +#include "decompiler/analysis/find_skelgroups.h" #include "common/goos/PrettyPrinter.h" #include "decompiler/IR2/Form.h" #include "decompiler/analysis/mips2c.h" @@ -64,6 +65,13 @@ void ObjectFileDB::analyze_functions_ir2( } catch (const std::exception& e) { lg::error("Failed to find defstates: {}", e.what()); } + try { + if (data.linked_data.functions_by_seg.size() == 3) { + run_defskelgroups(data.linked_data.functions_by_seg.at(2).front()); + } + } catch (const std::exception& e) { + lg::error("Failed to find defskelgroups: {}", e.what()); + } ir2_do_segment_analysis_phase2(DEBUG_SEGMENT, config, data); ir2_do_segment_analysis_phase2(MAIN_SEGMENT, config, data); diff --git a/decompiler/analysis/find_defstates.cpp b/decompiler/analysis/find_defstates.cpp index 5d6e0b2f15..dcd93b3dc1 100644 --- a/decompiler/analysis/find_defstates.cpp +++ b/decompiler/analysis/find_defstates.cpp @@ -45,9 +45,9 @@ std::pair get_state_info(FormElement* state_set, const En if (type->second.base_type() != "state") { env.func->warnings.warn_and_throw( - "Identified a defstate for state {}, but our type information thinks it is a " - "{}, not a state.", - type->second.print()); + "Identified a defstate for state {}, but our type information thinks it is a {}, not a " + "state.", + state_name, type->second.print()); } if (type->second.arg_count() == 0) { diff --git a/decompiler/analysis/find_skelgroups.cpp b/decompiler/analysis/find_skelgroups.cpp new file mode 100644 index 0000000000..3795df3af8 --- /dev/null +++ b/decompiler/analysis/find_skelgroups.cpp @@ -0,0 +1,225 @@ + + +#include "find_skelgroups.h" +#include "common/goos/PrettyPrinter.h" +#include "common/math/Vector.h" +#include "decompiler/IR2/Form.h" +#include "decompiler/IR2/GenericElementMatcher.h" +#include "decompiler/ObjectFile/LinkedObjectFile.h" + +namespace decompiler { + +namespace { + +std::string get_skelgroup_name(FormElement* skel_set, const Env& env) { + auto sff = dynamic_cast(skel_set); + if (!sff || !skel_set) { + env.func->warnings.warn_and_throw("Failed to identify defskelgroup."); + } + + auto atom = form_as_atom(sff->dst()); + if (!atom || atom->get_kind() != SimpleAtom::Kind::SYMBOL_VAL) { + env.func->warnings.warn_and_throw( + "Failed to identify defskelgroup. The skeleton-group symbol set was: {}, which doesn't set " + "a symbol", + skel_set->to_string(env)); + } + + return atom->get_str(); +} + +static const std::vector empty_words = {1, 2, 7, 8, 10, 11, 12, 13, 16}; +DefskelgroupElement::StaticInfo inspect_skel_group_data(DecompiledDataElement* skel, + const Env& env) { + DefskelgroupElement::StaticInfo result; + + auto lab = skel->label(); + // should have: + /* + .type skeleton-group + L52: + .word L53 // name (string) + .word 0x0 // jgeo + .word 0x0 // janim + .word 0x0 // bounds x + .word 0x0 // bounds y + .word 0x0 // bounds z + .word 0x46400000 // bounds w/radius + .word 0x0 // mgeo 0/1 + .word 0x0 // mgeo 2/3 + .word 0x2 // max-lod + .word 0x0 // lod dist 0 + .word 0x0 // lod dist 1 + .word 0x0 // lod dist 2 + .word 0x0 // lod dist 3 + .word 0x45800000 // longest-edge + .word 0x40600 // texture-level/version/shadow/sort + .word 0x0 // pad + */ + + int start_word_idx = lab.offset / 4; + auto& words = env.file->words_by_seg.at(lab.target_segment); + + auto& type_word = words.at(start_word_idx - 1); + if (type_word.kind != LinkedWord::TYPE_PTR || type_word.symbol_name != "skeleton-group") { + env.func->warnings.warn_and_throw("Reference to skelgroup bad: invalid type pointer"); + } + auto& string_word = words.at(start_word_idx); + if (string_word.kind != LinkedWord::PTR) { + env.func->warnings.warn_and_throw("Reference to skelgroup bad: invalid name label"); + } + result.art_name = env.file->get_goal_string_by_label( + env.file->get_label_by_name(env.file->get_label_name(string_word.label_id))); + for (int i = 0; i < 4; i++) { + auto& word = words.at(start_word_idx + 3 + i); + if (word.kind != LinkedWord::PLAIN_DATA) { + env.func->warnings.warn_and_throw("Reference to skelgroup bad: invalid bounds"); + } + result.bounds[i] = *reinterpret_cast(&word.data); + } + auto& lod_word = words.at(start_word_idx + 9); + if (lod_word.kind != LinkedWord::PLAIN_DATA) { + env.func->warnings.warn_and_throw("Reference to skelgroup bad: invalid max-lod"); + } + result.max_lod = lod_word.data; + auto& edge_word = words.at(start_word_idx + 14); + if (edge_word.kind != LinkedWord::PLAIN_DATA) { + env.func->warnings.warn_and_throw("Reference to skelgroup bad: invalid longest-edge"); + } + result.longest_edge = *reinterpret_cast(&edge_word.data); + auto& other_word = words.at(start_word_idx + 15); + if (other_word.kind != LinkedWord::PLAIN_DATA) { + env.func->warnings.warn_and_throw("Reference to skelgroup bad: invalid other data"); + } + result.tex_level = other_word.get_byte(0); + result.version = other_word.get_byte(1); + result.shadow = other_word.get_byte(2); + result.sort = other_word.get_byte(3); + + for (auto i : empty_words) { + auto& word = words.at(start_word_idx + i); + if (word.data != LinkedWord::PLAIN_DATA || word.data != 0) { + env.func->warnings.warn_and_throw(fmt::format("Reference to skelgroup bad: set word {}", i)); + } + } + + return result; +} + +DefskelgroupElement::Info get_defskelgroup_entries(Form* body, + const Env& env, + const DefskelgroupElement::StaticInfo& info, + const RegisterAccess& let_dest_var) { + DefskelgroupElement::Info out_info; + + // next, all the handlers + for (int i = 0; i < body->size() - 1; ++i) { + auto matcher = i < 2 ? Matcher::set(Matcher::deref(Matcher::any_reg(0), false, + {DerefTokenMatcher::any_string(1)}), + Matcher::any(2)) + : Matcher::set(Matcher::deref(Matcher::any_reg(0), false, + {DerefTokenMatcher::any_string(1), + DerefTokenMatcher::integer(i / 2 - 1)}), + Matcher::any(3)); + Form temp; + temp.elts().push_back(body->at(i)); + auto mr = match(matcher, &temp); + + if (!mr.matched) { + env.func->warnings.warn_and_throw("defskelgroup set no match"); + } + + auto& var = mr.maps.regs.at(0); + auto& name = mr.maps.strings.at(1); + auto val = i < 2 ? mr.maps.forms.at(2) : mr.maps.forms.at(3); + + while (val->try_as_element()) { + val = val->try_as_element()->source(); + } + + if (!var || env.get_variable_name(*var) != env.get_variable_name(let_dest_var)) { + if (var) { + env.func->warnings.warn_and_throw("Messed up defskelgroup. It is in {}, but we set {}", + env.get_variable_name(let_dest_var), + env.get_variable_name(*var)); + } else { + assert(false); + } + } + + if (name == "jgeo") { + out_info.jgeo = val; + } else if (name == "janim") { + out_info.janim = val; + } else if (name == "mgeo") { + auto& this_entry = out_info.lods.emplace_back(); + this_entry.mgeo = val; + } else if (name == "lod-dist") { + auto& this_entry = out_info.lods.back(); + this_entry.lod_dist = val; + } + } + return out_info; +} + +FormElement* rewrite_defskelgroup(LetElement* elt, + const Env& env, + DefskelgroupElement::StaticInfo& skelgroup_info, + FormPool& pool) { + // last thing in the body should be something like: + // (set! *hopper-sg* v1-1) + assert(elt->body()->size() > 0); + + int last_lod = (elt->body()->size() - 3) / 2 - 1; + if (last_lod > skelgroup_info.max_lod) { + env.func->warnings.warn_and_throw("defskelgroup exceeds max-lod of {} ({})", + skelgroup_info.max_lod, last_lod); + } + + auto rest_info = + get_defskelgroup_entries(elt->body(), env, skelgroup_info, elt->entries().at(0).dest); + + return pool.alloc_element(get_skelgroup_name(elt->body()->back(), env), + rest_info, skelgroup_info); +} +} // namespace + +void run_defskelgroups(Function& top_level_func) { + auto& env = top_level_func.ir2.env; + auto& pool = *top_level_func.ir2.form_pool; + if (!top_level_func.ir2.top_form) { + return; + } + top_level_func.ir2.top_form->apply_form([&](Form* form) { + for (auto& fe : form->elts()) { + auto as_let = dynamic_cast(fe); + if (as_let && as_let->entries().size() == 1) { + /* Looks something like this: + (let ((v1-1 )) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 5) + (set! (-> v1-1 mgeo 0) 1) + (set! (-> v1-1 lod-dist 0) 81920.0) + (set! (-> v1-1 mgeo 1) 2) + (set! (-> v1-1 lod-dist 1) 163840.0) + (set! (-> v1-1 mgeo 2) 3) + (set! (-> v1-1 lod-dist 2) 4095996000.0) + (set! *hopper-sg* v1-1) + ) + */ + + // first, see if we get a label: + auto src_as_label = as_let->entries().at(0).src->try_as_element(); + if (src_as_label && env.get_variable_type(as_let->entries().at(0).dest, false) == + TypeSpec("skeleton-group")) { + auto sg = inspect_skel_group_data(src_as_label, env); + auto rewritten = rewrite_defskelgroup(as_let, env, sg, pool); + if (rewritten) { + fe = rewritten; + } + } + } + } + }); +} +} // namespace decompiler diff --git a/decompiler/analysis/find_skelgroups.h b/decompiler/analysis/find_skelgroups.h new file mode 100644 index 0000000000..c4f87e5c47 --- /dev/null +++ b/decompiler/analysis/find_skelgroups.h @@ -0,0 +1,8 @@ +#pragma once + +#include "decompiler/Function/Function.h" +#include "decompiler/util/DecompilerTypeSystem.h" + +namespace decompiler { +void run_defskelgroups(Function& top_level_func); +} diff --git a/goal_src/engine/data/art-h.gc b/goal_src/engine/data/art-h.gc index ac5d1cc84c..d31382b692 100644 --- a/goal_src/engine/data/art-h.gc +++ b/goal_src/engine/data/art-h.gc @@ -306,7 +306,9 @@ (defmacro defskelgroup (name art-name joint-geom joint-anim lods &key (shadow 0) &key bounds - &key edge + &key longest-edge + &key (texture-level 0) + &key (sort 0) &key (version 6) ;; do NOT use this! ) @@ -315,14 +317,16 @@ `(let ((skel (new 'static 'skeleton-group :art-group-name ,(symbol->string art-name) :bounds ,bounds - :longest-edge ,edge + :longest-edge ,longest-edge :version ,version - :max-lod ,(length lods) + :max-lod ,(- (length lods) 1) :shadow ,shadow + :texture-level ,texture-level + :sort ,sort ))) ;; set joint geometry and joint bones - (set! (-> skel jgeo) joint-geom) - (set! (-> skel janim) joint-anim) + (set! (-> skel jgeo) ,joint-geom) + (set! (-> skel janim) ,joint-anim) ;; set lods ,@(apply-i (lambda (x i) diff --git a/goal_src/engine/math/vector-h.gc b/goal_src/engine/math/vector-h.gc index 5236bb0574..1d80df1376 100644 --- a/goal_src/engine/math/vector-h.gc +++ b/goal_src/engine/math/vector-h.gc @@ -389,6 +389,11 @@ :flag-assert #x900000010 ) +(defmacro static-spherem (x y z r) + "actually makes a vector" + `(new 'static 'vector :x (meters ,x) :y (meters ,y) :z (meters ,z) :w (meters ,r)) + ) + (deftype box8s (structure) ((data float 8 :offset-assert 0) (quad uint128 2 :offset 0) diff --git a/goal_src/engine/target/target-util.gc b/goal_src/engine/target/target-util.gc index b5972740fb..fa1cb08928 100644 --- a/goal_src/engine/target/target-util.gc +++ b/goal_src/engine/target/target-util.gc @@ -5,7 +5,6 @@ ;; name in dgo: target-util ;; dgos: GAME, ENGINE -(define-extern *jchar-sg* skeleton-group) (define-extern target-collide-set! (function symbol float int :behavior target)) ;; note: this file has a modification to let us run with an incompletely constructed target. @@ -13,25 +12,15 @@ ;; DECOMP BEGINS -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "eichar" - :bounds - (new 'static 'vector :y 8192.0 :w 12288.0) - :longest-edge (meters 1.0) - :texture-level 2 - :version #x6 - :shadow 2 - :sort 1 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) -1) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *jchar-sg* v1-0) +(defskelgroup *jchar-sg* eichar + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 3) + :longest-edge (meters 1) + :shadow 2 + :texture-level 2 + :sort 1 ) (define diff --git a/goal_src/engine/ui/hud-classes.gc b/goal_src/engine/ui/hud-classes.gc index 175feee052..cc5aefcb49 100644 --- a/goal_src/engine/ui/hud-classes.gc +++ b/goal_src/engine/ui/hud-classes.gc @@ -5,8 +5,6 @@ ;; name in dgo: hud-classes ;; dgos: GAME, ENGINE -(define-extern *fuelcell-naked-sg* skeleton-group) - ;; DECOMP BEGINS (set! @@ -1156,22 +1154,13 @@ -0.011 ) -(let - ((v1-24 - (new 'static 'skeleton-group - :art-group-name "fuelcell-naked" - :bounds - (new 'static 'vector :y 4096.0 :w 6553.6) - :texture-level 2 - :version #x6 - ) - ) - ) - (set! (-> v1-24 jgeo) 0) - (set! (-> v1-24 janim) 2) - (set! (-> v1-24 mgeo 0) 1) - (set! (-> v1-24 lod-dist 0) 4095996000.0) - (set! *fuelcell-naked-sg* v1-24) +(defskelgroup *fuelcell-naked-sg* fuelcell-naked + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 1 0 1.6) + :longest-edge (meters 0) + :texture-level 2 ) (set! diff --git a/goal_src/levels/beach/beach-obs.gc b/goal_src/levels/beach/beach-obs.gc index 39d323dffe..089ebf1184 100644 --- a/goal_src/levels/beach/beach-obs.gc +++ b/goal_src/levels/beach/beach-obs.gc @@ -5,5 +5,12 @@ ;; name in dgo: beach-obs ;; dgos: BEA, L1 -(define-extern *flutflut-naked-sg* skeleton-group) +(define-extern *beachcam-sg* skeleton-group) +(define-extern *harvester-sg* skeleton-group) (define-extern *flutflutegg-sg* skeleton-group) +(define-extern *bladeassm-sg* skeleton-group) +(define-extern *kickrock-sg* skeleton-group) +(define-extern *ecoventrock-sg* skeleton-group) +(define-extern *grottopole-sg* skeleton-group) +(define-extern *windmill-one-sg* skeleton-group) +(define-extern *flutflut-naked-sg* skeleton-group) \ No newline at end of file diff --git a/goal_src/levels/beach/beach-rocks.gc b/goal_src/levels/beach/beach-rocks.gc index b4b9e3e400..2dfb7a2e4b 100644 --- a/goal_src/levels/beach/beach-rocks.gc +++ b/goal_src/levels/beach/beach-rocks.gc @@ -5,25 +5,14 @@ ;; name in dgo: beach-rocks ;; dgos: BEA, L1 -(define-extern *lrocklrg-sg* skeleton-group) - ;; DECOMP BEGINS -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "lrocklrg" - :bounds (new 'static 'vector :w 20480.0) - :longest-edge (meters 11.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *lrocklrg-sg* v1-0) +(defskelgroup *lrocklrg-sg* lrocklrg + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 5) + :longest-edge (meters 11) ) (set! diff --git a/goal_src/levels/beach/bird-lady-beach.gc b/goal_src/levels/beach/bird-lady-beach.gc index a5629ee808..e33409d583 100644 --- a/goal_src/levels/beach/bird-lady-beach.gc +++ b/goal_src/levels/beach/bird-lady-beach.gc @@ -5,8 +5,6 @@ ;; name in dgo: bird-lady-beach ;; dgos: BEA, L1 -(define-extern *bird-lady-beach-sg* skeleton-group) - ;; DECOMP BEGINS (deftype bird-lady-beach (process-taskable) @@ -20,21 +18,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "bird-lady-beach" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *bird-lady-beach-sg* v1-1) +(defskelgroup *bird-lady-beach-sg* bird-lady-beach + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defstate idle (bird-lady-beach) @@ -61,12 +51,9 @@ (defmethod play-anim! bird-lady-beach ((obj bird-lady-beach) (arg0 symbol)) (case (current-status (-> obj tasks)) - ((6) + (((task-status need-reward-speech)) (when arg0 - (set! - (-> obj cell-for-task) - (the-as game-task (current-task (-> obj tasks))) - ) + (set! (-> obj cell-for-task) (current-task (-> obj tasks))) (close-current! (-> obj tasks)) (let ((s5-1 (get-process *default-dead-pool* manipy #x4000))) (set! (-> obj flutflut) (ppointer->handle (when s5-1 @@ -157,7 +144,7 @@ 0 "ERROR: : ~S playing anim for task status ~S~%" (-> obj name) - (task-status->string (the-as task-status (current-status (-> obj tasks)))) + (task-status->string (current-status (-> obj tasks))) ) ) (-> obj draw art-group data 3) @@ -170,7 +157,7 @@ ) (defmethod should-display? bird-lady-beach ((obj bird-lady-beach)) - (= (current-status (-> obj tasks)) 6) + (= (current-status (-> obj tasks)) (task-status need-reward-speech)) ) (defmethod copy-defaults! bird-lady-beach ((obj bird-lady-beach) (arg0 res-lump)) diff --git a/goal_src/levels/beach/bird-lady.gc b/goal_src/levels/beach/bird-lady.gc index 3c67621d26..46d534893d 100644 --- a/goal_src/levels/beach/bird-lady.gc +++ b/goal_src/levels/beach/bird-lady.gc @@ -5,8 +5,6 @@ ;; name in dgo: bird-lady ;; dgos: BEA, L1 -(define-extern *bird-lady-sg* skeleton-group) - ;; DECOMP BEGINS (deftype bird-lady (process-taskable) @@ -18,22 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "bird-lady" - :bounds - (new 'static 'vector :y 4096.0 :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *bird-lady-sg* v1-1) +(defskelgroup *bird-lady-sg* bird-lady + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 1 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-52 bird-lady ((obj bird-lady)) diff --git a/goal_src/levels/beach/lurkercrab.gc b/goal_src/levels/beach/lurkercrab.gc index 40437d21b6..7dda24a418 100644 --- a/goal_src/levels/beach/lurkercrab.gc +++ b/goal_src/levels/beach/lurkercrab.gc @@ -5,8 +5,6 @@ ;; name in dgo: lurkercrab ;; dgos: BEA, L1 -(define-extern *lurkercrab-sg* skeleton-group) - ;; DECOMP BEGINS (set! @@ -91,25 +89,12 @@ ) -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "lurkercrab" - :bounds (new 'static 'vector :w 10240.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 4) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 81920.0) - (set! (-> v1-4 mgeo 1) 2) - (set! (-> v1-4 lod-dist 1) 163840.0) - (set! (-> v1-4 mgeo 2) 3) - (set! (-> v1-4 lod-dist 2) 4095996000.0) - (set! *lurkercrab-sg* v1-4) +(defskelgroup *lurkercrab-sg* lurkercrab + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) ) (defmethod diff --git a/goal_src/levels/beach/lurkerpuppy.gc b/goal_src/levels/beach/lurkerpuppy.gc index 67c4a9d044..597287b27a 100644 --- a/goal_src/levels/beach/lurkerpuppy.gc +++ b/goal_src/levels/beach/lurkerpuppy.gc @@ -5,8 +5,6 @@ ;; name in dgo: lurkerpuppy ;; dgos: BEA, L1 -(define-extern *lurkerpuppy-sg* skeleton-group) - ;; DECOMP BEGINS (deftype lurkerpuppy (nav-enemy) @@ -18,26 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "lurkerpuppy" - :bounds (new 'static 'vector :w 8192.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *lurkerpuppy-sg* v1-1) +(defskelgroup *lurkerpuppy-sg* lurkerpuppy + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) + :shadow 4 ) nav-enemy-default-event-handler diff --git a/goal_src/levels/beach/mayor.gc b/goal_src/levels/beach/mayor.gc index 36f28fe696..d5a3cbce12 100644 --- a/goal_src/levels/beach/mayor.gc +++ b/goal_src/levels/beach/mayor.gc @@ -5,8 +5,6 @@ ;; name in dgo: mayor ;; dgos: BEA, L1 -(define-extern *mayor-sg* skeleton-group) - ;; DECOMP BEGINS (deftype mayor (process-taskable) @@ -18,21 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "mayor" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *mayor-sg* v1-1) +(defskelgroup *mayor-sg* mayor + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-52 mayor ((obj mayor)) diff --git a/goal_src/levels/beach/sculptor.gc b/goal_src/levels/beach/sculptor.gc index ed5f42648e..a709351566 100644 --- a/goal_src/levels/beach/sculptor.gc +++ b/goal_src/levels/beach/sculptor.gc @@ -4,9 +4,6 @@ ;; name: sculptor.gc ;; name in dgo: sculptor ;; dgos: BEA, L1 - -(define-extern *sculptor-sg* skeleton-group) -(define-extern *sculptor-muse-sg* skeleton-group) (declare-type muse nav-enemy) ;; DECOMP BEGINS @@ -21,37 +18,21 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sculptor-muse" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sculptor-muse-sg* v1-1) +(defskelgroup *sculptor-muse-sg* sculptor-muse + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sculptor" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 4) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sculptor-sg* v1-2) +(defskelgroup *sculptor-sg* sculptor + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-52 sculptor ((obj sculptor)) diff --git a/goal_src/levels/citadel/assistant-citadel.gc b/goal_src/levels/citadel/assistant-citadel.gc index 970919ba98..7153454bcd 100644 --- a/goal_src/levels/citadel/assistant-citadel.gc +++ b/goal_src/levels/citadel/assistant-citadel.gc @@ -5,8 +5,6 @@ ;; name in dgo: assistant-citadel ;; dgos: CIT, L1 -(define-extern *assistant-lavatube-end-sg* skeleton-group) - ;; DECOMP BEGINS (deftype assistant-lavatube-end (process-taskable) @@ -18,21 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-lavatube-end" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-lavatube-end-sg* v1-1) +(defskelgroup *assistant-lavatube-end-sg* assistant-lavatube-end + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defmethod @@ -40,7 +30,7 @@ assistant-lavatube-end ((obj assistant-lavatube-end) (arg0 symbol)) (case (current-status (-> obj tasks)) - ((1 2) + (((task-status unknown) (task-status need-hint)) (new 'static 'spool-anim :name "assistant-lavatube-end-resolution" :index 4 @@ -48,7 +38,7 @@ :command-list '() ) ) - ((6) + (((task-status need-reward-speech)) (if arg0 (close-current! (-> obj tasks)) ) @@ -118,7 +108,7 @@ 0 "ERROR: : ~S playing anim for task status ~S~%" (-> obj name) - (task-status->string (the-as task-status (current-status (-> obj tasks)))) + (task-status->string (current-status (-> obj tasks))) ) ) (get-art-elem obj) @@ -241,7 +231,10 @@ (first-any (-> obj tasks) #t) (let ((v1-3 (current-status (-> obj tasks)))) (and - (or (= v1-3 6) (= v1-3 0)) + (or + (= v1-3 (task-status need-reward-speech)) + (= v1-3 (task-status invalid)) + ) (not (task-closed? (game-task citadel-sage-green) (task-status need-hint))) ) ) diff --git a/goal_src/levels/citadel/citb-drop-plat-CIT.gc b/goal_src/levels/citadel/citb-drop-plat-CIT.gc index 9f125fac3a..6c419a72f3 100644 --- a/goal_src/levels/citadel/citb-drop-plat-CIT.gc +++ b/goal_src/levels/citadel/citb-drop-plat-CIT.gc @@ -5,12 +5,6 @@ ;; name in dgo: citb-drop-plat ;; dgos: CIT -(define-extern *citb-drop-plat-red-sg* skeleton-group) -(define-extern *citb-drop-plat-green-sg* skeleton-group) -(define-extern *citb-drop-plat-blue-sg* skeleton-group) -(define-extern *citb-drop-plat-yellow-sg* skeleton-group) -(define-extern *citb-drop-plat-sg* skeleton-group) - (declare-type drop-plat process) (declare-type citb-drop-plat process) (define-extern drop-plat-die (state drop-plat)) ;; unknown type @@ -23,99 +17,44 @@ ;; DECOMP BEGINS -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 3) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 81920.0) - (set! (-> v1-0 mgeo 1) 2) - (set! (-> v1-0 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-sg* v1-0) +(defskelgroup *citb-drop-plat-sg* citb-drop-plat + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 4) - (set! (-> v1-1 janim) 7) - (set! (-> v1-1 mgeo 0) 5) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 6) - (set! (-> v1-1 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-red-sg* v1-1) +(defskelgroup *citb-drop-plat-red-sg* citb-drop-plat + 4 + 7 + ((5 (meters 20)) (6 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 8) - (set! (-> v1-2 janim) 11) - (set! (-> v1-2 mgeo 0) 9) - (set! (-> v1-2 lod-dist 0) 81920.0) - (set! (-> v1-2 mgeo 1) 10) - (set! (-> v1-2 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-green-sg* v1-2) +(defskelgroup *citb-drop-plat-green-sg* citb-drop-plat + 8 + 11 + ((9 (meters 20)) (10 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 12) - (set! (-> v1-3 janim) 15) - (set! (-> v1-3 mgeo 0) 13) - (set! (-> v1-3 lod-dist 0) 81920.0) - (set! (-> v1-3 mgeo 1) 14) - (set! (-> v1-3 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-blue-sg* v1-3) +(defskelgroup *citb-drop-plat-blue-sg* citb-drop-plat + 12 + 15 + ((13 (meters 20)) (14 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 16) - (set! (-> v1-4 janim) 19) - (set! (-> v1-4 mgeo 0) 17) - (set! (-> v1-4 lod-dist 0) 81920.0) - (set! (-> v1-4 mgeo 1) 18) - (set! (-> v1-4 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-yellow-sg* v1-4) +(defskelgroup *citb-drop-plat-yellow-sg* citb-drop-plat + 16 + 19 + ((17 (meters 20)) (18 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) (deftype drop-plat (process-drawable) diff --git a/goal_src/levels/common/babak.gc b/goal_src/levels/common/babak.gc index fcc10d0dce..31771fe842 100644 --- a/goal_src/levels/common/babak.gc +++ b/goal_src/levels/common/babak.gc @@ -5,8 +5,6 @@ ;; name in dgo: babak ;; dgos: GAME, COMMON, L1 -(define-extern *babak-sg* skeleton-group) - ;; DECOMP BEGINS (deftype babak (nav-enemy) @@ -18,28 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "babak" - :bounds - (new 'static 'vector :y 8192.0 :w 12288.0) - :max-lod 2 - :longest-edge (meters 1.0) - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *babak-sg* v1-1) +(defskelgroup *babak-sg* babak + 0 + -1 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 2 0 3) + :longest-edge (meters 1) + :shadow 4 ) (defstate nav-enemy-patrol (babak) diff --git a/goal_src/levels/common/basebutton.gc b/goal_src/levels/common/basebutton.gc index 7f05276279..3f22cbe2f9 100644 --- a/goal_src/levels/common/basebutton.gc +++ b/goal_src/levels/common/basebutton.gc @@ -5,7 +5,6 @@ ;; name in dgo: basebutton ;; dgos: GAME, COMMON, L1 -(define-extern *generic-button-sg* skeleton-group) (define-extern target-warp-out (state vector vector target)) ;; DECOMP BEGINS @@ -47,20 +46,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "generic-button" - :bounds (new 'static 'vector :w 12288.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *generic-button-sg* v1-1) +(defskelgroup *generic-button-sg* generic-button + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) (defmethod diff --git a/goal_src/levels/common/blocking-plane.gc b/goal_src/levels/common/blocking-plane.gc index 207b31266e..ae966ca670 100644 --- a/goal_src/levels/common/blocking-plane.gc +++ b/goal_src/levels/common/blocking-plane.gc @@ -5,8 +5,6 @@ ;; name in dgo: blocking-plane ;; dgos: L1, FIC, LAV, MIS, OGR, RACERP, ROL, SNO, SWA -(define-extern *ef-plane-sg* skeleton-group) - ;; DECOMP BEGINS (deftype blocking-plane (process-drawable) @@ -18,20 +16,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "ef-plane" - :bounds (new 'static 'vector :w 122880.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *ef-plane-sg* v1-1) +(defskelgroup *ef-plane-sg* ef-plane + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 30) + :longest-edge (meters 0) ) (defstate blocking-plane-idle (blocking-plane) diff --git a/goal_src/levels/common/plat-button.gc b/goal_src/levels/common/plat-button.gc index 2a38bbfce5..2535856e94 100644 --- a/goal_src/levels/common/plat-button.gc +++ b/goal_src/levels/common/plat-button.gc @@ -5,8 +5,6 @@ ;; name in dgo: plat-button ;; dgos: GAME, COMMON, L1 -(define-extern *plat-button-sg* skeleton-group) - ;; DECOMP BEGINS (deftype plat-button (process-drawable) @@ -43,21 +41,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "plat-button" - :bounds - (new 'static 'vector :y -4096.0 :w 27033.6) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *plat-button-sg* v1-1) +(defskelgroup *plat-button-sg* plat-button + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -1 0 6.6) + :longest-edge (meters 0) ) (defmethod should-teleport? plat-button ((obj plat-button)) @@ -88,7 +77,7 @@ (or (not (-> self should-grab-player?)) (let ((v0-3 (process-grab? *target*))) - (set! (-> self grab-player?) (the-as symbol v0-3)) + (set! (-> self grab-player?) v0-3) v0-3 ) ) diff --git a/goal_src/levels/common/plat.gc b/goal_src/levels/common/plat.gc index 7682e5e09b..38dba0d276 100644 --- a/goal_src/levels/common/plat.gc +++ b/goal_src/levels/common/plat.gc @@ -5,10 +5,6 @@ ;; name in dgo: plat ;; dgos: GAME, COMMON, L1 -(define-extern *plat-jungleb-sg* skeleton-group) -(define-extern *plat-sunken-sg* skeleton-group) -(define-extern *plat-sg* skeleton-group) - ;; DECOMP BEGINS (set! @@ -99,60 +95,28 @@ ) -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "plat" - :bounds - (new 'static 'vector :y -2048.0 :w 12288.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 4) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 81920.0) - (set! (-> v1-4 mgeo 1) 2) - (set! (-> v1-4 lod-dist 1) 163840.0) - (set! (-> v1-4 mgeo 2) 3) - (set! (-> v1-4 lod-dist 2) 4095996000.0) - (set! *plat-sg* v1-4) +(defskelgroup *plat-sg* plat + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 -0.5 0 3) + :longest-edge (meters 0) ) -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "plat-jungleb" - :bounds - (new 'static 'vector :y -2048.0 :w 12288.0) - :version #x6 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) 4) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 4095996000.0) - (set! *plat-jungleb-sg* v1-5) +(defskelgroup *plat-jungleb-sg* plat-jungleb + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 -0.5 0 3) + :longest-edge (meters 0) ) -(let - ((v1-6 - (new 'static 'skeleton-group - :art-group-name "plat-sunken" - :bounds - (new 'static 'vector :y -2048.0 :w 13107.2) - :version #x6 - ) - ) - ) - (set! (-> v1-6 jgeo) 0) - (set! (-> v1-6 janim) 4) - (set! (-> v1-6 mgeo 0) 1) - (set! (-> v1-6 lod-dist 0) 4095996000.0) - (set! *plat-sunken-sg* v1-6) +(defskelgroup *plat-sunken-sg* plat-sunken + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 -0.5 0 3.2) + :longest-edge (meters 0) ) (defmethod get-unlit-skel plat ((obj plat)) diff --git a/goal_src/levels/common/sharkey.gc b/goal_src/levels/common/sharkey.gc index d037a06cf9..4fb70942ba 100644 --- a/goal_src/levels/common/sharkey.gc +++ b/goal_src/levels/common/sharkey.gc @@ -5,8 +5,6 @@ ;; name in dgo: sharkey ;; dgos: GAME, COMMON, L1 -(define-extern *sharkey-sg* skeleton-group) - ;; DECOMP BEGINS (set! @@ -65,20 +63,12 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sharkey" - :bounds (new 'static 'vector :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sharkey-sg* v1-2) +(defskelgroup *sharkey-sg* sharkey + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 6) + :longest-edge (meters 0) ) (defmethod diff --git a/goal_src/levels/finalboss/final-door.gc b/goal_src/levels/finalboss/final-door.gc index 39cea3feb3..5feda75863 100644 --- a/goal_src/levels/finalboss/final-door.gc +++ b/goal_src/levels/finalboss/final-door.gc @@ -8,10 +8,6 @@ (declare-type final-door process-drawable) (declare-type power-left final-door) -(define-extern *powercellalt-sg* skeleton-group) -(define-extern *power-right-sg* skeleton-group) -(define-extern *power-left-sg* skeleton-group) - ;; DECOMP BEGINS (deftype fin-door (process-hidden) @@ -36,54 +32,28 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "power-left" - :bounds - (new 'static 'vector :y 45056.0 :w 49152.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *power-left-sg* v1-2) +(defskelgroup *power-left-sg* power-left + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 11 0 12) + :longest-edge (meters 0) ) -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "power-right" - :bounds - (new 'static 'vector :y 45056.0 :w 49152.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 2) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *power-right-sg* v1-3) +(defskelgroup *power-right-sg* power-right + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 11 0 12) + :longest-edge (meters 0) ) -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "powercellalt" - :bounds (new 'static 'vector :w 8192.0) - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 2) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 4095996000.0) - (set! *powercellalt-sg* v1-4) +(defskelgroup *powercellalt-sg* powercellalt + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) ) (defstate idle (final-door) diff --git a/goal_src/levels/finalboss/green-eco-lurker.gc b/goal_src/levels/finalboss/green-eco-lurker.gc index fe673415c0..f58d386c94 100644 --- a/goal_src/levels/finalboss/green-eco-lurker.gc +++ b/goal_src/levels/finalboss/green-eco-lurker.gc @@ -5,8 +5,6 @@ ;; name in dgo: green-eco-lurker ;; dgos: FIN, L1 -(define-extern *green-eco-lurker-sg* skeleton-group) - ;; DECOMP BEGINS (deftype green-eco-lurker (nav-enemy) @@ -38,21 +36,13 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "green-eco-lurker" - :bounds (new 'static 'vector :w 24371.2) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *green-eco-lurker-sg* v1-2) +(defskelgroup *green-eco-lurker-sg* green-eco-lurker + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 5.95) + :longest-edge (meters 0) + :shadow 2 ) (define diff --git a/goal_src/levels/finalboss/light-eco.gc b/goal_src/levels/finalboss/light-eco.gc index 132d1c37bd..d5c10b3491 100644 --- a/goal_src/levels/finalboss/light-eco.gc +++ b/goal_src/levels/finalboss/light-eco.gc @@ -5,9 +5,6 @@ ;; name in dgo: light-eco ;; dgos: FIN, L1 -(define-extern *light-eco-big-sg* skeleton-group) -(define-extern *light-eco-small-sg* skeleton-group) - ;; DECOMP BEGINS (deftype light-eco-child (process-drawable) @@ -59,36 +56,20 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "light-eco" - :bounds (new 'static 'vector :w 36864.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *light-eco-big-sg* v1-2) +(defskelgroup *light-eco-big-sg* light-eco + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 9) + :longest-edge (meters 0) ) -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "light-eco" - :bounds (new 'static 'vector :w 6144.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 3) - (set! (-> v1-3 janim) -1) - (set! (-> v1-3 mgeo 0) 4) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *light-eco-small-sg* v1-3) +(defskelgroup *light-eco-small-sg* light-eco + 3 + -1 + ((4 (meters 999999))) + :bounds (static-spherem 0 0 0 1.5) + :longest-edge (meters 0) ) (set! diff --git a/goal_src/levels/finalboss/robotboss-h.gc b/goal_src/levels/finalboss/robotboss-h.gc index 2c12c2d5e7..0ba3b3466e 100644 --- a/goal_src/levels/finalboss/robotboss-h.gc +++ b/goal_src/levels/finalboss/robotboss-h.gc @@ -5,8 +5,6 @@ ;; name in dgo: robotboss-h ;; dgos: FIN, L1 -(define-extern *robotboss-sg* skeleton-group) - ;; DECOMP BEGINS (deftype robotboss-dda (structure) @@ -127,22 +125,12 @@ ) ) -(let - ((v0-6 - (new 'static 'skeleton-group - :art-group-name "robotboss" - :bounds - (new 'static 'vector :y -40960.0 :w 327680.0) - :longest-edge (meters 19.9) - :version #x6 - ) - ) - ) - (set! (-> v0-6 jgeo) 0) - (set! (-> v0-6 janim) 2) - (set! (-> v0-6 mgeo 0) 1) - (set! (-> v0-6 lod-dist 0) 4095996000.0) - (set! *robotboss-sg* v0-6) +(defskelgroup *robotboss-sg* robotboss + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -10 0 80) + :longest-edge (meters 19.9) ) diff --git a/goal_src/levels/finalboss/robotboss-misc.gc b/goal_src/levels/finalboss/robotboss-misc.gc index 218113aa08..fa62d3ec3a 100644 --- a/goal_src/levels/finalboss/robotboss-misc.gc +++ b/goal_src/levels/finalboss/robotboss-misc.gc @@ -5,32 +5,17 @@ ;; name in dgo: robotboss-misc ;; dgos: FIN, L1 -(define-extern *med-res-snow1-sg* skeleton-group) -(define-extern *ecoclaw-sg* skeleton-group) -(define-extern *silodoor-sg* skeleton-group) -(define-extern *finalbosscam-sg* skeleton-group) - (declare-type ecoclaw process-drawable) (define-extern *ecoclaw* (pointer ecoclaw)) ;; DECOMP BEGINS -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "medres-snowback" - :bounds - (new 'static 'vector :x -1474560.0 :y 409600.0 :z 409600.0 :w 1556480.0) - :longest-edge (meters 0.01) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *med-res-snow1-sg* v1-0) +(defskelgroup *med-res-snow1-sg* medres-snowback + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem -360 100 100 380) + :longest-edge (meters 0.01) ) (defstate cam-robotboss (camera-slave) @@ -140,21 +125,12 @@ ) -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "ecoclaw" - :bounds - (new 'static 'vector :y 8192.0 :w 36864.0) - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 2) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 4095996000.0) - (set! *ecoclaw-sg* v1-4) +(defskelgroup *ecoclaw-sg* ecoclaw + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 9) + :longest-edge (meters 0) ) (defun ecoclaw-beam-particle-callback ((arg0 part-tracker)) @@ -481,20 +457,12 @@ ) -(let - ((v1-10 - (new 'static 'skeleton-group - :art-group-name "silodoor" - :bounds (new 'static 'vector :w 102400.0) - :version #x6 - ) - ) - ) - (set! (-> v1-10 jgeo) 0) - (set! (-> v1-10 janim) 2) - (set! (-> v1-10 mgeo 0) 1) - (set! (-> v1-10 lod-dist 0) 4095996000.0) - (set! *silodoor-sg* v1-10) +(defskelgroup *silodoor-sg* silodoor + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 25) + :longest-edge (meters 0) ) (defstate idle (silodoor) @@ -733,20 +701,12 @@ ) -(let - ((v1-17 - (new 'static 'skeleton-group - :art-group-name "finalbosscam" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-17 jgeo) 0) - (set! (-> v1-17 janim) 2) - (set! (-> v1-17 mgeo 0) 1) - (set! (-> v1-17 lod-dist 0) 4095996000.0) - (set! *finalbosscam-sg* v1-17) +(defskelgroup *finalbosscam-sg* finalbosscam + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) (defbehavior robotboss-manipy-trans-hook robotboss () diff --git a/goal_src/levels/finalboss/robotboss-weapon.gc b/goal_src/levels/finalboss/robotboss-weapon.gc index 1b4a80838c..24540b42a7 100644 --- a/goal_src/levels/finalboss/robotboss-weapon.gc +++ b/goal_src/levels/finalboss/robotboss-weapon.gc @@ -5,10 +5,6 @@ ;; name in dgo: robotboss-weapon ;; dgos: FIN, L1 -(define-extern *darkecobomb-sg* skeleton-group) -(define-extern *greenshot-sg* skeleton-group) -(define-extern *redring-sg* skeleton-group) - ;; DECOMP BEGINS (deftype torus (structure) @@ -251,21 +247,12 @@ ) -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "darkecobomb" - :bounds - (new 'static 'vector :y 14336.0 :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 2) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 4095996000.0) - (set! *darkecobomb-sg* v1-8) +(defskelgroup *darkecobomb-sg* darkecobomb + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 3.5 0 6) + :longest-edge (meters 0) ) (defstate darkecobomb-explode (darkecobomb) @@ -845,20 +832,12 @@ ) -(let - ((v1-17 - (new 'static 'skeleton-group - :art-group-name "greenshot" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-17 jgeo) 0) - (set! (-> v1-17 janim) 2) - (set! (-> v1-17 mgeo 0) 1) - (set! (-> v1-17 lod-dist 0) 4095996000.0) - (set! *greenshot-sg* v1-17) +(defskelgroup *greenshot-sg* greenshot + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) (defstate greenshot-idle (greenshot) @@ -1032,20 +1011,12 @@ (none) ) -(let - ((v1-22 - (new 'static 'skeleton-group - :art-group-name "redring" - :bounds (new 'static 'vector :w 163840.0) - :version #x6 - ) - ) - ) - (set! (-> v1-22 jgeo) 0) - (set! (-> v1-22 janim) 2) - (set! (-> v1-22 mgeo 0) 1) - (set! (-> v1-22 lod-dist 0) 4095996000.0) - (set! *redring-sg* v1-22) +(defskelgroup *redring-sg* redring + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 40) + :longest-edge (meters 0) ) (defbehavior redshot-trans redshot ((arg0 int)) diff --git a/goal_src/levels/finalboss/robotboss.gc b/goal_src/levels/finalboss/robotboss.gc index 1f4926399d..59671210d7 100644 --- a/goal_src/levels/finalboss/robotboss.gc +++ b/goal_src/levels/finalboss/robotboss.gc @@ -5,10 +5,6 @@ ;; name in dgo: robotboss ;; dgos: FIN, L1 -(define-extern *robotboss-blueeco-sg* skeleton-group) -(define-extern *robotboss-redeco-sg* skeleton-group) -(define-extern *robotboss-yelloweco-sg* skeleton-group) - (define-extern robotboss-always-trans (function state none :behavior robotboss)) ;; CFG problems TODO ;; DECOMP BEGINS @@ -17,52 +13,28 @@ (parameter-ease-sin-clamp (-> obj loc-t)) ) -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "robotboss-blueeco" - :bounds (new 'static 'vector :w 819200.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *robotboss-blueeco-sg* v1-0) +(defskelgroup *robotboss-blueeco-sg* robotboss-blueeco + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 200) + :longest-edge (meters 0) ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "robotboss-redeco" - :bounds (new 'static 'vector :w 819200.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *robotboss-redeco-sg* v1-1) +(defskelgroup *robotboss-redeco-sg* robotboss-redeco + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 200) + :longest-edge (meters 0) ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "robotboss-yelloweco" - :bounds (new 'static 'vector :w 819200.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *robotboss-yelloweco-sg* v1-2) +(defskelgroup *robotboss-yelloweco-sg* robotboss-yelloweco + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 200) + :longest-edge (meters 0) ) (defbehavior robotboss-cut-cam-exit robotboss () diff --git a/goal_src/levels/finalboss/sage-finalboss-FIN.gc b/goal_src/levels/finalboss/sage-finalboss-FIN.gc index 491fd5dcbd..24ebb85a9c 100644 --- a/goal_src/levels/finalboss/sage-finalboss-FIN.gc +++ b/goal_src/levels/finalboss/sage-finalboss-FIN.gc @@ -5,10 +5,5 @@ ;; name in dgo: sage-finalboss ;; dgos: FIN -(define-extern *robotboss-cinematic-sg* skeleton-group) -(define-extern *jak-white-sg* skeleton-group) -(define-extern *plat-eco-finalboss-unlit-sg* skeleton-group) -(define-extern *plat-eco-finalboss-lit-sg* skeleton-group) - ;; DECOMP BEGINS diff --git a/goal_src/levels/firecanyon/assistant-firecanyon.gc b/goal_src/levels/firecanyon/assistant-firecanyon.gc index a7086f85c1..0e2ea3fd9b 100644 --- a/goal_src/levels/firecanyon/assistant-firecanyon.gc +++ b/goal_src/levels/firecanyon/assistant-firecanyon.gc @@ -5,8 +5,6 @@ ;; name in dgo: assistant-firecanyon ;; dgos: L1, FIC -(define-extern *assistant-firecanyon-sg* skeleton-group) - ;; DECOMP BEGINS (deftype assistant-firecanyon (process-taskable) @@ -18,21 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-firecanyon" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-firecanyon-sg* v1-1) +(defskelgroup *assistant-firecanyon-sg* assistant-firecanyon + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defmethod diff --git a/goal_src/levels/flut_common/flutflut.gc b/goal_src/levels/flut_common/flutflut.gc index d15b25341a..e11635ae3a 100644 --- a/goal_src/levels/flut_common/flutflut.gc +++ b/goal_src/levels/flut_common/flutflut.gc @@ -5,8 +5,6 @@ ;; name in dgo: flutflut ;; dgos: L1, SNO, SWA -(define-extern *flutflut-sg* skeleton-group) - ;; DECOMP BEGINS (if (not (nmember "flutp" *kernel-packages*)) @@ -62,22 +60,14 @@ ) ) -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "flut-saddle" - :bounds (new 'static 'vector :w 14336.0) - :version #x6 - :shadow 2 - :sort 1 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) -1) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 4095996000.0) - (set! *flutflut-sg* v1-5) +(defskelgroup *flutflut-sg* flut-saddle + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3.5) + :longest-edge (meters 0) + :shadow 2 + :sort 1 ) (defbehavior flutflut-effect flutflut () diff --git a/goal_src/levels/intro/evilbro.gc b/goal_src/levels/intro/evilbro.gc index f4cd0391bb..6dc55b6085 100644 --- a/goal_src/levels/intro/evilbro.gc +++ b/goal_src/levels/intro/evilbro.gc @@ -5,9 +5,6 @@ ;; name in dgo: evilbro ;; dgos: INT, L1 -(define-extern *evilsis-intro-sg* skeleton-group) -(define-extern *evilbro-intro-sg* skeleton-group) - ;; DECOMP BEGINS (deftype evilbro (process-taskable) @@ -20,21 +17,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "evilbro" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *evilbro-intro-sg* v1-1) +(defskelgroup *evilbro-intro-sg* evilbro + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defmethod play-anim! evilbro ((obj evilbro) (arg0 symbol)) @@ -232,21 +221,13 @@ ) -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "evilsis" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 3) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *evilsis-intro-sg* v1-7) +(defskelgroup *evilsis-intro-sg* evilsis + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defmethod play-anim! evilsis ((obj evilsis) (arg0 symbol)) @@ -255,7 +236,7 @@ 0 "ERROR: : ~S playing anim for task status ~S~%" (-> obj name) - (task-status->string (the-as task-status (current-status (-> obj tasks)))) + (task-status->string (current-status (-> obj tasks))) ) ) (the-as basic (get-art-elem obj)) diff --git a/goal_src/levels/jungle/bouncer.gc b/goal_src/levels/jungle/bouncer.gc index c4f6808e7d..8a368b77d6 100644 --- a/goal_src/levels/jungle/bouncer.gc +++ b/goal_src/levels/jungle/bouncer.gc @@ -5,7 +5,6 @@ ;; name in dgo: bouncer ;; dgos: JUN, JUNGLE, L1 -(define-extern *bouncer-sg* skeleton-group) (declare-type springbox process-drawable) (define-extern bouncer-wait (state springbox)) ;; unknown type (define-extern bouncer-fire (state springbox)) ;; unknown type @@ -26,20 +25,12 @@ (method-set! springbox 12 (method-of-type process run-logic?)) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "bounceytarp" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *bouncer-sg* v1-2) +(defskelgroup *bouncer-sg* bounceytarp + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) (defstate bouncer-wait (springbox) diff --git a/goal_src/levels/jungle/fisher-JUN.gc b/goal_src/levels/jungle/fisher-JUN.gc index 8815121c17..2cb89a14a9 100644 --- a/goal_src/levels/jungle/fisher-JUN.gc +++ b/goal_src/levels/jungle/fisher-JUN.gc @@ -5,12 +5,6 @@ ;; name in dgo: fisher ;; dgos: JUN -(define-extern *catch-fisha-sg* skeleton-group) -(define-extern *catch-fishb-sg* skeleton-group) -(define-extern *catch-fishc-sg* skeleton-group) -(define-extern *fish-net-sg* skeleton-group) -(define-extern *fisher-sg* skeleton-group) - (declare-type fisher-fish process-drawable) (define-extern fisher-fish-caught (state fisher-fish)) (define-extern fisher-fish-die (state fisher-fish)) @@ -845,91 +839,45 @@ ) -(let - ((v1-16 - (new 'static 'skeleton-group - :art-group-name "catch-fisha" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-16 jgeo) 0) - (set! (-> v1-16 janim) 2) - (set! (-> v1-16 mgeo 0) 1) - (set! (-> v1-16 lod-dist 0) 4095996000.0) - (set! *catch-fisha-sg* v1-16) +(defskelgroup *catch-fisha-sg* catch-fisha + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) -(let - ((v1-17 - (new 'static 'skeleton-group - :art-group-name "catch-fishb" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-17 jgeo) 0) - (set! (-> v1-17 janim) 2) - (set! (-> v1-17 mgeo 0) 1) - (set! (-> v1-17 lod-dist 0) 4095996000.0) - (set! *catch-fishb-sg* v1-17) +(defskelgroup *catch-fishb-sg* catch-fishb + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) -(let - ((v1-18 - (new 'static 'skeleton-group - :art-group-name "catch-fishc" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-18 jgeo) 0) - (set! (-> v1-18 janim) 2) - (set! (-> v1-18 mgeo 0) 1) - (set! (-> v1-18 lod-dist 0) 4095996000.0) - (set! *catch-fishc-sg* v1-18) +(defskelgroup *catch-fishc-sg* catch-fishc + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) -(let - ((v1-19 - (new 'static 'skeleton-group - :art-group-name "fish-net" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-19 jgeo) 0) - (set! (-> v1-19 janim) 2) - (set! (-> v1-19 mgeo 0) 1) - (set! (-> v1-19 lod-dist 0) 4095996000.0) - (set! *fish-net-sg* v1-19) +(defskelgroup *fish-net-sg* fish-net + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) -(let - ((v1-20 - (new 'static 'skeleton-group - :art-group-name "fisher" - :bounds - (new 'static 'vector :y -24576.0 :w 57344.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-20 jgeo) 0) - (set! (-> v1-20 janim) 6) - (set! (-> v1-20 mgeo 0) 1) - (set! (-> v1-20 lod-dist 0) 81920.0) - (set! (-> v1-20 mgeo 1) 2) - (set! (-> v1-20 lod-dist 1) 163840.0) - (set! (-> v1-20 mgeo 2) 3) - (set! (-> v1-20 lod-dist 2) 4095996000.0) - (set! *fisher-sg* v1-20) +(defskelgroup *fisher-sg* fisher + 0 + 6 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 -6 0 14) + :longest-edge (meters 0) + :shadow 4 ) (defmethod dummy-52 fisher ((obj fisher)) diff --git a/goal_src/levels/jungle/hopper.gc b/goal_src/levels/jungle/hopper.gc index 1695d249ee..d2f991ae61 100644 --- a/goal_src/levels/jungle/hopper.gc +++ b/goal_src/levels/jungle/hopper.gc @@ -5,8 +5,6 @@ ;; name in dgo: hopper ;; dgos: JUN, JUNGLE, L1 -(define-extern *hopper-sg* skeleton-group) - ;; DECOMP BEGINS (deftype hopper (nav-enemy) @@ -20,27 +18,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "hopper" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 2 - :longest-edge (meters 1.0) - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *hopper-sg* v1-1) +(defskelgroup *hopper-sg* hopper + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 1) + :shadow 4 ) nav-enemy-default-event-handler diff --git a/goal_src/levels/jungle/jungle-elevator.gc b/goal_src/levels/jungle/jungle-elevator.gc index 48d191018d..f72f744fb1 100644 --- a/goal_src/levels/jungle/jungle-elevator.gc +++ b/goal_src/levels/jungle/jungle-elevator.gc @@ -5,8 +5,6 @@ ;; name in dgo: jungle-elevator ;; dgos: JUN, JUNGLE, L1 -(define-extern *plat-button-sg* skeleton-group) - ;; DECOMP BEGINS (deftype jungle-elevator (plat-button) @@ -82,10 +80,7 @@ (if (and (>= (-> self path-pos) 0.2) - (< - (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) - 60 - ) + (< (- (-> *display* base-frame-counter) (-> self state-time)) 60) ) (load-commands-set! *level* (load-command-get-index *level* 'jungle 0)) ) @@ -128,10 +123,7 @@ (if (and (< (-> self path-pos) 0.8) - (< - (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) - 60 - ) + (< (- (-> *display* base-frame-counter) (-> self state-time)) 60) ) (load-commands-set! *level* (load-command-get-index *level* 'jungle 1)) ) diff --git a/goal_src/levels/jungle/junglefish.gc b/goal_src/levels/jungle/junglefish.gc index 06f5a988ae..1d6ce0a910 100644 --- a/goal_src/levels/jungle/junglefish.gc +++ b/goal_src/levels/jungle/junglefish.gc @@ -5,8 +5,6 @@ ;; name in dgo: junglefish ;; dgos: JUN, JUNGLE, L1 -(define-extern *junglefish-sg* skeleton-group) - ;; DECOMP BEGINS (deftype junglefish (nav-enemy) @@ -18,26 +16,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "junglefish" - :bounds - (new 'static 'vector :y 4096.0 :w 6144.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *junglefish-sg* v1-1) +(defskelgroup *junglefish-sg* junglefish + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 1 0 1.5) + :longest-edge (meters 0) ) nav-enemy-default-event-handler diff --git a/goal_src/levels/jungle/junglesnake.gc b/goal_src/levels/jungle/junglesnake.gc index 03d05956e7..dd02f3dfcb 100644 --- a/goal_src/levels/jungle/junglesnake.gc +++ b/goal_src/levels/jungle/junglesnake.gc @@ -5,26 +5,14 @@ ;; name in dgo: junglesnake ;; dgos: JUN, JUNGLE, L1 -(define-extern *junglesnake-sg* skeleton-group) - ;; DECOMP BEGINS -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "junglesnake" - :bounds - (new 'static 'vector :y 57344.0 :w 73728.0) - :longest-edge (meters 2.5) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *junglesnake-sg* v1-0) +(defskelgroup *junglesnake-sg* junglesnake + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 14 0 18) + :longest-edge (meters 2.5) ) (set! @@ -467,7 +455,13 @@ junglesnake-default-event-handler (set! (-> self draw status) (logand -3 (-> self draw status))) (set! (-> self track-player-ry) #f) (set! (-> self track-player-tilt) #f) - (set! (-> self skel postbind-function) (the (function pointer int process-drawable none) junglesnake-joint-callback)) + (set! + (-> self skel postbind-function) + (the-as + (function pointer int process-drawable none) + junglesnake-joint-callback + ) + ) (set! (-> self refractory-delay) 0) 0 (none) diff --git a/goal_src/levels/jungleb/aphid.gc b/goal_src/levels/jungleb/aphid.gc index aab64498d4..e3091fe91e 100644 --- a/goal_src/levels/jungleb/aphid.gc +++ b/goal_src/levels/jungleb/aphid.gc @@ -5,8 +5,6 @@ ;; name in dgo: aphid ;; dgos: JUB, L1 -(define-extern *aphid-sg* skeleton-group) - ;; DECOMP BEGINS (deftype aphid (nav-enemy) @@ -19,22 +17,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "aphid-lurker" - :bounds - (new 'static 'vector :y 8192.0 :w 8192.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *aphid-sg* v1-1) +(defskelgroup *aphid-sg* aphid-lurker + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 2) + :longest-edge (meters 0) + :shadow 2 ) (defbehavior aphid-invulnerable aphid () diff --git a/goal_src/levels/jungleb/plat-flip.gc b/goal_src/levels/jungleb/plat-flip.gc index ed05644794..b62980cb76 100644 --- a/goal_src/levels/jungleb/plat-flip.gc +++ b/goal_src/levels/jungleb/plat-flip.gc @@ -5,8 +5,6 @@ ;; name in dgo: plat-flip ;; dgos: JUB, L1 -(define-extern *plat-flip-sg* skeleton-group) - ;; DECOMP BEGINS (deftype plat-flip (process-drawable) @@ -28,20 +26,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "plat-flip" - :bounds (new 'static 'vector :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *plat-flip-sg* v1-1) +(defskelgroup *plat-flip-sg* plat-flip + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) (defstate plat-flip-idle (plat-flip) diff --git a/goal_src/levels/lavatube/assistant-lavatube.gc b/goal_src/levels/lavatube/assistant-lavatube.gc index 354ee4f02c..2b0640b021 100644 --- a/goal_src/levels/lavatube/assistant-lavatube.gc +++ b/goal_src/levels/lavatube/assistant-lavatube.gc @@ -5,8 +5,6 @@ ;; name in dgo: assistant-lavatube ;; dgos: L1, LAV -(define-extern *assistant-lavatube-start-sg* skeleton-group) - ;; DECOMP BEGINS (deftype assistant-lavatube-start (process-taskable) @@ -18,21 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-lavatube-start" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-lavatube-start-sg* v1-1) +(defskelgroup *assistant-lavatube-start-sg* assistant-lavatube-start + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defmethod diff --git a/goal_src/levels/maincave/baby-spider.gc b/goal_src/levels/maincave/baby-spider.gc index 75090af885..cf09c53744 100644 --- a/goal_src/levels/maincave/baby-spider.gc +++ b/goal_src/levels/maincave/baby-spider.gc @@ -5,8 +5,6 @@ ;; name in dgo: baby-spider ;; dgos: L1, MAI, MAINCAVE -(define-extern *baby-spider-sg* skeleton-group) - (declare-type cave-trap process-drawable) ;; DECOMP BEGINS @@ -61,27 +59,13 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "baby-spider" - :bounds - (new 'static 'vector :y 4096.0 :w 9216.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 81920.0) - (set! (-> v1-2 mgeo 1) 2) - (set! (-> v1-2 lod-dist 1) 163840.0) - (set! (-> v1-2 mgeo 2) 3) - (set! (-> v1-2 lod-dist 2) 4095996000.0) - (set! *baby-spider-sg* v1-2) +(defskelgroup *baby-spider-sg* baby-spider + 0 + -1 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 1 0 2.25) + :longest-edge (meters 0) + :shadow 4 ) (define diff --git a/goal_src/levels/maincave/spiderwebs.gc b/goal_src/levels/maincave/spiderwebs.gc index baed5e3bb6..2d6e4d8e86 100644 --- a/goal_src/levels/maincave/spiderwebs.gc +++ b/goal_src/levels/maincave/spiderwebs.gc @@ -5,8 +5,6 @@ ;; name in dgo: spiderwebs ;; dgos: L1, MAI, MAINCAVE -(define-extern *spiderwebs-sg* skeleton-group) - ;; DECOMP BEGINS (define @@ -54,20 +52,12 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "spiderwebs" - :bounds (new 'static 'vector :w 14336.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *spiderwebs-sg* v1-2) +(defskelgroup *spiderwebs-sg* spiderwebs + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3.5) + :longest-edge (meters 0) ) (defbehavior diff --git a/goal_src/levels/misty/bonelurker.gc b/goal_src/levels/misty/bonelurker.gc index 9a99724c1a..3a9d5813f7 100644 --- a/goal_src/levels/misty/bonelurker.gc +++ b/goal_src/levels/misty/bonelurker.gc @@ -5,8 +5,6 @@ ;; name in dgo: bonelurker ;; dgos: L1, MIS -(define-extern *bonelurker-sg* skeleton-group) - (declare-type bonelurker nav-enemy) (define-extern bonelurker-stun (state bonelurker)) @@ -22,27 +20,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "bonelurker" - :bounds - (new 'static 'vector :y 8192.0 :w 24576.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *bonelurker-sg* v1-1) +(defskelgroup *bonelurker-sg* bonelurker + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 2 0 6) + :longest-edge (meters 0) + :shadow 4 ) (defbehavior bonelurker-set-small-bounds-sphere bonelurker () diff --git a/goal_src/levels/misty/misty-conveyor.gc b/goal_src/levels/misty/misty-conveyor.gc index c8048c4983..cd8455a125 100644 --- a/goal_src/levels/misty/misty-conveyor.gc +++ b/goal_src/levels/misty/misty-conveyor.gc @@ -5,10 +5,6 @@ ;; name in dgo: misty-conveyor ;; dgos: L1, MIS -(define-extern *keg-conveyor-sg* skeleton-group) -(define-extern *keg-conveyor-paddle-sg* skeleton-group) -(define-extern *keg-sg* skeleton-group) - (declare-type keg-conveyor process-drawable) (declare-type keg-conveyor-paddle process-drawable) (declare-type keg process-drawable) @@ -120,60 +116,29 @@ ) -(let - ((v1-6 - (new 'static 'skeleton-group - :art-group-name "keg-conveyor" - :bounds - (new 'static 'vector :y -24576.0 :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-6 jgeo) 0) - (set! (-> v1-6 janim) 2) - (set! (-> v1-6 mgeo 0) 1) - (set! (-> v1-6 lod-dist 0) 4095996000.0) - (set! *keg-conveyor-sg* v1-6) +(defskelgroup *keg-conveyor-sg* keg-conveyor + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -6 0 8) + :longest-edge (meters 0) ) -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "keg-conveyor-paddle" - :bounds - (new 'static 'vector :y -24576.0 :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 2) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *keg-conveyor-paddle-sg* v1-7) +(defskelgroup *keg-conveyor-paddle-sg* keg-conveyor-paddle + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -6 0 8) + :longest-edge (meters 0) ) -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "keg" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 5) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 81920.0) - (set! (-> v1-8 mgeo 1) 2) - (set! (-> v1-8 lod-dist 1) 163840.0) - (set! (-> v1-8 mgeo 2) 3) - (set! (-> v1-8 lod-dist 2) 4095996000.0) - (set! *keg-sg* v1-8) +(defskelgroup *keg-sg* keg + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) (defun keg-update-smush ((arg0 keg) (arg1 float)) diff --git a/goal_src/levels/misty/misty-teetertotter.gc b/goal_src/levels/misty/misty-teetertotter.gc index e16cb93cdd..8323c44aaa 100644 --- a/goal_src/levels/misty/misty-teetertotter.gc +++ b/goal_src/levels/misty/misty-teetertotter.gc @@ -9,7 +9,6 @@ (define-extern teetertotter-idle (state teetertotter)) (define-extern teetertotter-launch (state teetertotter)) (define-extern teetertotter-bend (state teetertotter)) -(define-extern *teetertotter-sg* skeleton-group) ;; DECOMP BEGINS @@ -25,25 +24,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "teetertotter" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *teetertotter-sg* v1-1) +(defskelgroup *teetertotter-sg* teetertotter + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) (defun target-on-end-of-teetertotter? ((arg0 teetertotter)) diff --git a/goal_src/levels/misty/misty-warehouse.gc b/goal_src/levels/misty/misty-warehouse.gc index 604360e9c9..f86679019a 100644 --- a/goal_src/levels/misty/misty-warehouse.gc +++ b/goal_src/levels/misty/misty-warehouse.gc @@ -5,9 +5,6 @@ ;; name in dgo: misty-warehouse ;; dgos: L1, MIS -(define-extern *rounddoor-sg* skeleton-group) -(define-extern *silostep-sg* skeleton-group) - (declare-type silostep process-drawable) (define-extern silostep-rise (state symbol silostep)) (define-extern silostep-idle (state silostep)) @@ -26,21 +23,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "silostep" - :bounds - (new 'static 'vector :y 8192.0 :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *silostep-sg* v1-1) +(defskelgroup *silostep-sg* silostep + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 8) + :longest-edge (meters 0) ) (defstate silostep-idle (silostep) @@ -271,23 +259,12 @@ (none) ) -(let - ((v1-6 - (new 'static 'skeleton-group - :art-group-name "rounddoor" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-6 jgeo) 0) - (set! (-> v1-6 janim) 3) - (set! (-> v1-6 mgeo 0) 1) - (set! (-> v1-6 lod-dist 0) 81920.0) - (set! (-> v1-6 mgeo 1) 2) - (set! (-> v1-6 lod-dist 1) 4095996000.0) - (set! *rounddoor-sg* v1-6) +(defskelgroup *rounddoor-sg* rounddoor + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) (deftype rounddoor (eco-door) diff --git a/goal_src/levels/misty/muse.gc b/goal_src/levels/misty/muse.gc index c539c7a478..7e7a09443a 100644 --- a/goal_src/levels/misty/muse.gc +++ b/goal_src/levels/misty/muse.gc @@ -5,7 +5,6 @@ ;; name in dgo: muse ;; dgos: L1, MIS -(define-extern *muse-sg* skeleton-group) (define-extern muse-idle (state muse)) ;; unknown type (define-extern muse-caught (state muse)) ;; unknown type @@ -203,22 +202,13 @@ (none) ) -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "muse" - :bounds - (new 'static 'vector :y 8192.0 :w 12288.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) 3) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 4095996000.0) - (set! *muse-sg* v1-5) +(defskelgroup *muse-sg* muse + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 3) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-44 muse ((obj muse) (arg0 process) (arg1 event-message-block)) diff --git a/goal_src/levels/misty/sidekick-human.gc b/goal_src/levels/misty/sidekick-human.gc index e534986ca6..e8535286b9 100644 --- a/goal_src/levels/misty/sidekick-human.gc +++ b/goal_src/levels/misty/sidekick-human.gc @@ -5,12 +5,6 @@ ;; name in dgo: sidekick-human ;; dgos: L1, MIS -(define-extern *darkecocan-sg* skeleton-group) -(define-extern *darkecocan-glow-sg* skeleton-group) -(define-extern *evilbro-sg* skeleton-group) -(define-extern *evilsis-sg* skeleton-group) -(define-extern *sidekick-human-sg* skeleton-group) - ;; DECOMP BEGINS (deftype sequenceA (process-hidden) @@ -1371,85 +1365,45 @@ ) -(let - ((v1-46 - (new 'static 'skeleton-group - :art-group-name "sidekick-human" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-46 jgeo) 0) - (set! (-> v1-46 janim) 3) - (set! (-> v1-46 mgeo 0) 1) - (set! (-> v1-46 lod-dist 0) 4095996000.0) - (set! *sidekick-human-sg* v1-46) +(defskelgroup *sidekick-human-sg* sidekick-human + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) -(let - ((v1-47 - (new 'static 'skeleton-group - :art-group-name "darkecocan" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-47 jgeo) 0) - (set! (-> v1-47 janim) 4) - (set! (-> v1-47 mgeo 0) 1) - (set! (-> v1-47 lod-dist 0) 4095996000.0) - (set! *darkecocan-sg* v1-47) +(defskelgroup *darkecocan-sg* darkecocan + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) -(let - ((v1-48 - (new 'static 'skeleton-group - :art-group-name "darkecocan" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-48 jgeo) 2) - (set! (-> v1-48 janim) 4) - (set! (-> v1-48 mgeo 0) 3) - (set! (-> v1-48 lod-dist 0) 4095996000.0) - (set! *darkecocan-glow-sg* v1-48) +(defskelgroup *darkecocan-glow-sg* darkecocan + 2 + 4 + ((3 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) -(let - ((v1-49 - (new 'static 'skeleton-group - :art-group-name "evilbro" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-49 jgeo) 0) - (set! (-> v1-49 janim) 3) - (set! (-> v1-49 mgeo 0) 1) - (set! (-> v1-49 lod-dist 0) 4095996000.0) - (set! *evilbro-sg* v1-49) +(defskelgroup *evilbro-sg* evilbro + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) -(let - ((v1-50 - (new 'static 'skeleton-group - :art-group-name "evilsis" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-50 jgeo) 0) - (set! (-> v1-50 janim) 3) - (set! (-> v1-50 mgeo 0) 1) - (set! (-> v1-50 lod-dist 0) 4095996000.0) - (set! *evilsis-sg* v1-50) +(defskelgroup *evilsis-sg* evilsis + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) (deftype army-info (structure) diff --git a/goal_src/levels/ogre/flying-lurker.gc b/goal_src/levels/ogre/flying-lurker.gc index 5f51876c03..6e794e8aec 100644 --- a/goal_src/levels/ogre/flying-lurker.gc +++ b/goal_src/levels/ogre/flying-lurker.gc @@ -5,29 +5,17 @@ ;; name in dgo: flying-lurker ;; dgos: L1, OGR -(define-extern *ogrecam-sg* skeleton-group) -(define-extern *plunger-lurker-sg* skeleton-group) -(define-extern *flying-lurker-sg* skeleton-group) (declare-type flying-lurker process-drawable) (define-extern flying-lurker-clone (state handle string flying-lurker)) ;; DECOMP BEGINS -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "ogrecam" - :bounds - (new 'static 'vector :y 8192.0 :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) -1) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *ogrecam-sg* v1-0) +(defskelgroup *ogrecam-sg* ogrecam + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 6) + :longest-edge (meters 0) ) (deftype plunger-lurker (process-drawable) @@ -41,26 +29,12 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "plunger-lurker" - :bounds - (new 'static 'vector :x 8192.0 :y 16384.0 :w 49152.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 4) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 81920.0) - (set! (-> v1-2 mgeo 1) 2) - (set! (-> v1-2 lod-dist 1) 163840.0) - (set! (-> v1-2 mgeo 2) 3) - (set! (-> v1-2 lod-dist 2) 4095996000.0) - (set! *plunger-lurker-sg* v1-2) +(defskelgroup *plunger-lurker-sg* plunger-lurker + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 2 4 0 12) + :longest-edge (meters 0) ) (defstate plunger-lurker-plunge (plunger-lurker) @@ -650,28 +624,13 @@ ) -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "flying-lurker" - :bounds - (new 'static 'vector :y 8192.0 :w 24576.0) - :max-lod 2 - :longest-edge (meters 2.3) - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 5) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 81920.0) - (set! (-> v1-8 mgeo 1) 2) - (set! (-> v1-8 lod-dist 1) 163840.0) - (set! (-> v1-8 mgeo 2) 3) - (set! (-> v1-8 lod-dist 2) 4095996000.0) - (set! *flying-lurker-sg* v1-8) +(defskelgroup *flying-lurker-sg* flying-lurker + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 2 0 6) + :longest-edge (meters 2.3) + :shadow 4 ) (defmethod dummy-20 flying-lurker ((obj flying-lurker)) diff --git a/goal_src/levels/racer_common/racer.gc b/goal_src/levels/racer_common/racer.gc index a71fa5ea54..d01856541e 100644 --- a/goal_src/levels/racer_common/racer.gc +++ b/goal_src/levels/racer_common/racer.gc @@ -29,3 +29,38 @@ ) ) +;; failed to figure out what this is: +(defskelgroup *racer-sg* racer + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3.5) + :longest-edge (meters 0) + :shadow 2 + :sort 1 + ) + +;; failed to figure out what this is: +(defskelgroup *racer-explode-sg* racer + 22 + 24 + ((23 (meters 999999))) + :bounds (static-spherem 0 0 0 3.5) + :longest-edge (meters 0) + ) + + +(define + *racer-shadow-control* + (new 'static 'shadow-control + :settings + (new 'static 'shadow-settings + :center + (new 'static 'vector :w (the-as float #xa)) + :shadow-dir + (new 'static 'vector :y -1.0 :w 614400.0) + :bot-plane (new 'static 'plane :y 1.0 :w 81920.0) + :top-plane (new 'static 'plane :y 1.0 :w 2048.0) + ) + ) + ) diff --git a/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc b/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc index 6863fc466b..d55df2beed 100644 --- a/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc +++ b/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc @@ -5,8 +5,6 @@ ;; name in dgo: target-racer-h ;; dgos: FIC, LAV, MIS, OGR, ROL -(define-extern *balloon-sg* skeleton-group) -(define-extern *racer-sg* skeleton-group) (define-extern target-racing-smack (state float symbol target)) (define-extern target-racing-center-anim (function none :behavior target)) (define-extern racer-buzz (function float none :behavior target)) @@ -18,20 +16,20 @@ (define-extern racer-sounds (function object :behavior target)) (define-extern *racer-air-mods* surface) -;; decomp begins +;; DECOMP BEGINS (deftype racer-info (basic) - ((entity entity-actor :offset-assert 4) - (bike-trans vector :inline :offset-assert 16) - (bike-quat vector :inline :offset-assert 32) - (bike-scale vector :inline :offset-assert 48) - (mod-x float :offset-assert 64) - (rot vector :inline :offset-assert 80) - (rot-old vector :inline :offset-assert 96) + ((entity entity-actor :offset-assert 4) + (bike-trans vector :inline :offset-assert 16) + (bike-quat vector :inline :offset-assert 32) + (bike-scale vector :inline :offset-assert 48) + (mod-x float :offset-assert 64) + (rot vector :inline :offset-assert 80) + (rot-old vector :inline :offset-assert 96) (rotv vector :inline :offset-assert 112) - (lean-rotx degrees :offset-assert 128) - (change-roty degrees :offset-assert 132) - (change-roty-old degrees :offset-assert 136) + (lean-rotx degrees :offset-assert 128) + (change-roty degrees :offset-assert 132) + (change-roty-old degrees :offset-assert 136) (quat vector :inline :offset-assert 144) (surface-y meters :offset-assert 160) (surface-vy meters :offset-assert 164) @@ -48,7 +46,7 @@ (hill-value float :offset-assert 268) (hill-ground-value float :offset-assert 272) (hill-offset meters :offset-assert 276) - (hill-rotx degrees :offset-assert 280) + (hill-rotx degrees :offset-assert 280) (hill-boost meters :offset-assert 284) (bob-timer float :offset-assert 288) (bob-meta-timer float :offset-assert 292) @@ -58,21 +56,21 @@ (bob-period float :offset-assert 308) (bob-meta-time uint64 :offset-assert 312) (bob-hit-ground-time uint64 :offset-assert 320) - (cur-rotx degrees :offset-assert 328) - (targ-rotx degrees :offset-assert 332) + (cur-rotx degrees :offset-assert 328) + (targ-rotx degrees :offset-assert 332) (speed-rotx float :offset-assert 336) - (mult-rotx degrees :offset-assert 340) - (front-blade joint-mod :offset-assert 344) - (front-rot degrees :offset-assert 348) - (front-rotv degrees :offset-assert 352) - (bottom-blade joint-mod :offset-assert 356) - (bottom-rot degrees :offset-assert 360) - (front joint-mod :offset-assert 364) - (front-turn degrees :offset-assert 368) - (tail joint-mod :offset-assert 372) - (tail-tilt degrees :offset-assert 376) + (mult-rotx degrees :offset-assert 340) + (front-blade joint-mod :offset-assert 344) + (front-rot degrees :offset-assert 348) + (front-rotv degrees :offset-assert 352) + (bottom-blade joint-mod :offset-assert 356) + (bottom-rot degrees :offset-assert 360) + (front joint-mod :offset-assert 364) + (front-turn degrees :offset-assert 368) + (tail joint-mod :offset-assert 372) + (tail-tilt degrees :offset-assert 376) (transv-max meters :offset-assert 380) - (slide-down-time uint64 2 :offset-assert 384) + (slide-down-time uint64 2 :offset-assert 384) (slide-enter-time uint64 :offset-assert 400) (slide-mode int32 :offset-assert 408) (slide-amp float :offset-assert 412) @@ -86,7 +84,7 @@ (boost-level float :offset-assert 452) (boost-target float :offset-assert 456) (boost-output float :offset-assert 460) - (hop? symbol :offset-assert 464) + (hop? symbol :offset-assert 464) (hop-start-y float :offset-assert 468) (bounce int32 :offset-assert 472) (bounce-hit float :offset-assert 476) @@ -101,10 +99,10 @@ (rudd-anim-vel float :offset-assert 512) (rudd-anim-frame float :offset-assert 516) (racing-time uint64 :offset-assert 520) - (stick-lock symbol :offset-assert 528) - (stick-off symbol :offset-assert 532) - (heavy symbol :offset-assert 536) - (unstuck-time int64 :offset-assert 544) + (stick-lock symbol :offset-assert 528) + (stick-off symbol :offset-assert 532) + (heavy symbol :offset-assert 536) + (unstuck-time int64 :offset-assert 544) (stuck-count int32 :offset-assert 552) (scrape-sound-id sound-id :offset-assert 556) (heat-sound-time uint64 :offset-assert 560) @@ -115,7 +113,6 @@ ) -;; definition of type racer-bank (deftype racer-bank (basic) ((slide-hold-time seconds :offset-assert 8) (heat-max float :offset-assert 16) @@ -141,11 +138,11 @@ :flag-assert #x900000058 ) -;; definition for symbol *RACER-bank*, type racer-bank + (define *RACER-bank* (new 'static 'racer-bank - :slide-hold-time #x3c + :slide-hold-time (seconds 0.2) :heat-max 100.0 :hotcoals-heat-inc 3.0 :lava-heat-inc 20.0 @@ -160,28 +157,19 @@ :boost-curve-max (meters 5.0) :boost-level-max (meters 12.5) :boost-level-inc (meters 2.0) - :boost-duration #x2ee + :boost-duration (seconds 2.5) :yellow-projectile-speed (meters 80.0) ) ) -;; failed to figure out what this is: -(let - ((v0-4 - (new 'static 'skeleton-group - :art-group-name "balloon" - :bounds - (new 'static 'vector :y 6963.2 :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v0-4 jgeo) 0) - (set! (-> v0-4 janim) 3) - (set! (-> v0-4 mgeo 0) 1) - (set! (-> v0-4 lod-dist 0) 81920.0) - (set! (-> v0-4 mgeo 1) 2) - (set! (-> v0-4 lod-dist 1) 4095996000.0) - (set! *balloon-sg* v0-4) +(defskelgroup *balloon-sg* balloon + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 1.7 0 3) + :longest-edge (meters 0) ) + + + + diff --git a/goal_src/levels/snow/yeti.gc b/goal_src/levels/snow/yeti.gc index dfeb1f3342..20219b908a 100644 --- a/goal_src/levels/snow/yeti.gc +++ b/goal_src/levels/snow/yeti.gc @@ -5,8 +5,6 @@ ;; name in dgo: yeti ;; dgos: L1, SNO -(define-extern *yeti-sg* skeleton-group) - (declare-type yeti process-drawable) (declare-type yeti-slave nav-enemy) (define-extern yeti-resuming-start (state yeti)) ;; unknown type @@ -49,22 +47,12 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "yeti" - :bounds - (new 'static 'vector :y 3072.0 :w 15974.4) - :longest-edge (meters 1.3) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *yeti-sg* v1-2) +(defskelgroup *yeti-sg* yeti + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0.75 0 3.9) + :longest-edge (meters 1.3) ) (define diff --git a/goal_src/levels/sunken/qbert-plat.gc b/goal_src/levels/sunken/qbert-plat.gc index ac8f7a820a..60fec23ca2 100644 --- a/goal_src/levels/sunken/qbert-plat.gc +++ b/goal_src/levels/sunken/qbert-plat.gc @@ -5,9 +5,6 @@ ;; name in dgo: qbert-plat ;; dgos: L1, SUN, SUNKEN -(define-extern *qbert-plat-sg* skeleton-group) -(define-extern *qbert-plat-on-sg* skeleton-group) - (declare-type qbert-plat-master process-drawable) (declare-type qbert-plat rigid-body-platform) (define-extern qbert-plat-master-wait-for-door (state qbert-plat-master)) ;; unknown type @@ -28,21 +25,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "qbert-plat-on" - :bounds - (new 'static 'vector :y -8192.0 :w 18432.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *qbert-plat-on-sg* v1-1) +(defskelgroup *qbert-plat-on-sg* qbert-plat-on + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -2 0 4.5) + :longest-edge (meters 0) ) (deftype qbert-plat (rigid-body-platform) @@ -59,21 +47,12 @@ ) -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "qbert-plat" - :bounds - (new 'static 'vector :y -8192.0 :w 18432.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 2) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *qbert-plat-sg* v1-3) +(defskelgroup *qbert-plat-sg* qbert-plat + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -2 0 4.5) + :longest-edge (meters 0) ) (define diff --git a/goal_src/levels/sunken/square-platform.gc b/goal_src/levels/sunken/square-platform.gc index 48f083bd25..c967bc52bf 100644 --- a/goal_src/levels/sunken/square-platform.gc +++ b/goal_src/levels/sunken/square-platform.gc @@ -5,8 +5,6 @@ ;; name in dgo: square-platform ;; dgos: L1, SUN, SUNKEN -(define-extern *square-platform-sg* skeleton-group) - (declare-type square-platform baseplat) (define-extern square-platform-lowered (state square-platform)) ;; unknown type (define-extern square-platform-rising (state square-platform)) ;; unknown type @@ -40,24 +38,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "square-platform" - :bounds - (new 'static 'vector :y -45056.0 :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 4095996000.0) - (set! *square-platform-sg* v1-1) +(defskelgroup *square-platform-sg* square-platform + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 -11 0 8) + :longest-edge (meters 0) ) (deftype square-platform-button (basebutton) diff --git a/goal_src/levels/sunken/sunken-fish.gc b/goal_src/levels/sunken/sunken-fish.gc index b18631534d..93218ba90d 100644 --- a/goal_src/levels/sunken/sunken-fish.gc +++ b/goal_src/levels/sunken/sunken-fish.gc @@ -5,10 +5,6 @@ ;; name in dgo: sunken-fish ;; dgos: L1, SUN, SUNKEN -(define-extern *sunkenfisha-red-yellow-sg* skeleton-group) -(define-extern *sunkenfisha-yellow-blue-sg* skeleton-group) -(define-extern *sunkenfisha-yellow-eye-sg* skeleton-group) - ;; DECOMP BEGINS (deftype sunkenfisha (process-drawable) @@ -44,55 +40,28 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sunkenfisha" - :bounds - (new 'static 'vector :y 6144.0 :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sunkenfisha-red-yellow-sg* v1-1) +(defskelgroup *sunkenfisha-red-yellow-sg* sunkenfisha + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 1.5 0 2.5) + :longest-edge (meters 0) ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sunkenfisha" - :bounds - (new 'static 'vector :y 6144.0 :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 2) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 3) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sunkenfisha-yellow-blue-sg* v1-2) +(defskelgroup *sunkenfisha-yellow-blue-sg* sunkenfisha + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 0 1.5 0 2.5) + :longest-edge (meters 0) ) -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "sunkenfisha" - :bounds - (new 'static 'vector :y 6144.0 :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 4) - (set! (-> v1-3 janim) -1) - (set! (-> v1-3 mgeo 0) 5) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *sunkenfisha-yellow-eye-sg* v1-3) +(defskelgroup *sunkenfisha-yellow-eye-sg* sunkenfisha + 4 + -1 + ((5 (meters 999999))) + :bounds (static-spherem 0 1.5 0 2.5) + :longest-edge (meters 0) ) (defmethod dummy-22 sunkenfisha ((obj sunkenfisha)) diff --git a/goal_src/levels/sunken/sunken-obs.gc b/goal_src/levels/sunken/sunken-obs.gc index 31966f1be2..ecd741edb2 100644 --- a/goal_src/levels/sunken/sunken-obs.gc +++ b/goal_src/levels/sunken/sunken-obs.gc @@ -5,8 +5,6 @@ ;; name in dgo: sunken-obs ;; dgos: L1, SUN, SUNKEN -(define-extern *sunkencam-sg* skeleton-group) - ;; TODO - for square-platform (deftype sunkencam (pov-camera) ((seq uint64 :offset-assert 224) @@ -18,3 +16,7 @@ ) ;; decomp begins + +(define-extern *seaweed-sg* skeleton-group) +(define-extern *side-to-side-plat-sg* skeleton-group) +(define-extern *sunkencam-sg* skeleton-group) \ No newline at end of file diff --git a/goal_src/levels/sunken/wall-plat.gc b/goal_src/levels/sunken/wall-plat.gc index 3e1d6bd231..0d534589cf 100644 --- a/goal_src/levels/sunken/wall-plat.gc +++ b/goal_src/levels/sunken/wall-plat.gc @@ -5,8 +5,6 @@ ;; name in dgo: wall-plat ;; dgos: L1, SUN, SUNKEN -(define-extern *wall-plat-sg* skeleton-group) - (declare-type wall-plat process-drawable) (define-extern wall-plat-sync-idle (state wall-plat)) ;; unknown type (define-extern wall-plat-retracted (state wall-plat)) ;; unknown type @@ -31,21 +29,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "wall-plat" - :bounds - (new 'static 'vector :x 4096.0 :y -8192.0 :w 26624.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *wall-plat-sg* v1-1) +(defskelgroup *wall-plat-sg* wall-plat + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 1 -2 0 6.5) + :longest-edge (meters 0) ) (defstate wall-plat-retracted (wall-plat) diff --git a/goal_src/levels/sunken/wedge-plats.gc b/goal_src/levels/sunken/wedge-plats.gc index 0d8aad3504..71cedefc7b 100644 --- a/goal_src/levels/sunken/wedge-plats.gc +++ b/goal_src/levels/sunken/wedge-plats.gc @@ -5,8 +5,6 @@ ;; name in dgo: wedge-plats ;; dgos: L1, SUN, SUNKEN -(define-extern *wedge-plat-sg* skeleton-group) - (declare-type wedge-plat-outer process) (declare-type wedge-plat-master process) (declare-type wedge-plat process) @@ -15,7 +13,6 @@ (define-extern wedge-plat-idle (state wedge-plat)) ;; unknown type (define-extern wedge-plat-tip (state wedge-plat)) ;; unknown type (define-extern wedge-plat-master-idle (state wedge-plat-master)) ;; unknown type -(define-extern *wedge-plat-outer-sg* skeleton-group) ;; DECOMP BEGINS @@ -110,20 +107,12 @@ ) -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "wedge-plat" - :bounds (new 'static 'vector :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 2) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *wedge-plat-sg* v1-3) +(defskelgroup *wedge-plat-sg* wedge-plat + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 6) + :longest-edge (meters 0) ) (defmethod dummy-27 wedge-plat ((obj wedge-plat)) @@ -380,20 +369,12 @@ ) -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "wedge-plat-outer" - :bounds (new 'static 'vector :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 2) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *wedge-plat-outer-sg* v1-7) +(defskelgroup *wedge-plat-outer-sg* wedge-plat-outer + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) (defmethod dummy-27 wedge-plat-outer ((obj wedge-plat-outer)) diff --git a/goal_src/levels/swamp/swamp-bat.gc b/goal_src/levels/swamp/swamp-bat.gc index 322fcd7112..b0b4701381 100644 --- a/goal_src/levels/swamp/swamp-bat.gc +++ b/goal_src/levels/swamp/swamp-bat.gc @@ -5,8 +5,6 @@ ;; name in dgo: swamp-bat ;; dgos: L1, SWA -(define-extern *swamp-bat-slave-sg* skeleton-group) - (declare-type swamp-bat-slave process-drawable) (define-extern swamp-bat-slave-idle (state swamp-bat-slave)) ;; unknown type (define-extern swamp-bat-slave-return (state swamp-bat-slave)) ;; unknown type @@ -182,25 +180,12 @@ swamp-bat-slave-event-handler (swamp-bat-slave-post) ) -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "swamp-bat" - :bounds (new 'static 'vector :w 10240.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 4) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 81920.0) - (set! (-> v1-7 mgeo 1) 2) - (set! (-> v1-7 lod-dist 1) 163840.0) - (set! (-> v1-7 mgeo 2) 3) - (set! (-> v1-7 lod-dist 2) 4095996000.0) - (set! *swamp-bat-slave-sg* v1-7) +(defskelgroup *swamp-bat-slave-sg* swamp-bat + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) ) (defbehavior swamp-bat-slave-get-new-path swamp-bat-slave () diff --git a/goal_src/levels/swamp/swamp-rat-nest.gc b/goal_src/levels/swamp/swamp-rat-nest.gc index 5a1d12ae52..4755467219 100644 --- a/goal_src/levels/swamp/swamp-rat-nest.gc +++ b/goal_src/levels/swamp/swamp-rat-nest.gc @@ -6,9 +6,6 @@ ;; dgos: L1, SWA (declare-type swamp-rat-nest-dummy process-drawable) -(define-extern *swamp-rat-nest-dummy-c-sg* skeleton-group) -(define-extern *swamp-rat-nest-dummy-b-sg* skeleton-group) -(define-extern *swamp-rat-nest-dummy-a-sg* skeleton-group) (declare-type swamp-rat-nest process-drawable) (define-extern swamp-rat-nest-idle (state swamp-rat-nest)) ;; unknown type @@ -1644,58 +1641,28 @@ swamp-rat-nest-default-event-handler (none) ) -(let - ((v1-51 - (new 'static 'skeleton-group - :art-group-name "swamp-rat-nest" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-51 jgeo) 0) - (set! (-> v1-51 janim) 3) - (set! (-> v1-51 mgeo 0) 1) - (set! (-> v1-51 lod-dist 0) 81920.0) - (set! (-> v1-51 mgeo 1) 2) - (set! (-> v1-51 lod-dist 1) 4095996000.0) - (set! *swamp-rat-nest-dummy-a-sg* v1-51) +(defskelgroup *swamp-rat-nest-dummy-a-sg* swamp-rat-nest + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) -(let - ((v1-52 - (new 'static 'skeleton-group - :art-group-name "swamp-rat-nest" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-52 jgeo) 4) - (set! (-> v1-52 janim) 7) - (set! (-> v1-52 mgeo 0) 5) - (set! (-> v1-52 lod-dist 0) 81920.0) - (set! (-> v1-52 mgeo 1) 6) - (set! (-> v1-52 lod-dist 1) 4095996000.0) - (set! *swamp-rat-nest-dummy-b-sg* v1-52) +(defskelgroup *swamp-rat-nest-dummy-b-sg* swamp-rat-nest + 4 + 7 + ((5 (meters 20)) (6 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) -(let - ((v1-53 - (new 'static 'skeleton-group - :art-group-name "swamp-rat-nest" - :bounds (new 'static 'vector :w 20480.0) - :version #x6 - ) - ) - ) - (set! (-> v1-53 jgeo) 8) - (set! (-> v1-53 janim) 11) - (set! (-> v1-53 mgeo 0) 9) - (set! (-> v1-53 lod-dist 0) 4095996000.0) - (set! *swamp-rat-nest-dummy-c-sg* v1-53) +(defskelgroup *swamp-rat-nest-dummy-c-sg* swamp-rat-nest + 8 + 11 + ((9 (meters 999999))) + :bounds (static-spherem 0 0 0 5) + :longest-edge (meters 0) ) (defmethod dummy-20 swamp-rat-nest-dummy-a ((obj swamp-rat-nest-dummy-a)) diff --git a/goal_src/levels/swamp/swamp-rat.gc b/goal_src/levels/swamp/swamp-rat.gc index 1acd73a5cc..441d44d52a 100644 --- a/goal_src/levels/swamp/swamp-rat.gc +++ b/goal_src/levels/swamp/swamp-rat.gc @@ -5,7 +5,6 @@ ;; name in dgo: swamp-rat ;; dgos: L1, SWA -(define-extern *swamp-rat-sg* skeleton-group) (declare-type swamp-rat-nest process-drawable) ;; DECOMP BEGINS @@ -30,27 +29,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "swamp-rat" - :bounds - (new 'static 'vector :y 4096.0 :w 16384.0) - :max-lod 2 - :longest-edge (meters 1.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *swamp-rat-sg* v1-1) +(defskelgroup *swamp-rat-sg* swamp-rat + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 1 0 4) + :longest-edge (meters 1) ) (defmethod diff --git a/goal_src/levels/village1/assistant.gc b/goal_src/levels/village1/assistant.gc index 21d20bdbbe..e4499f68d0 100644 --- a/goal_src/levels/village1/assistant.gc +++ b/goal_src/levels/village1/assistant.gc @@ -5,8 +5,6 @@ ;; name in dgo: assistant ;; dgos: L1, VI1 -(define-extern *assistant-sg* skeleton-group) - ;; DECOMP BEGINS (deftype assistant (process-taskable) @@ -19,21 +17,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant" - :bounds (new 'static 'vector :w 8192.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-sg* v1-1) +(defskelgroup *assistant-sg* assistant + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-52 assistant ((obj assistant)) diff --git a/goal_src/levels/village1/explorer.gc b/goal_src/levels/village1/explorer.gc index a460f1b874..8bcfc9b453 100644 --- a/goal_src/levels/village1/explorer.gc +++ b/goal_src/levels/village1/explorer.gc @@ -5,8 +5,6 @@ ;; name in dgo: explorer ;; dgos: L1, VI1 -(define-extern *explorer-sg* skeleton-group) - ;; DECOMP BEGINS (deftype explorer (process-taskable) @@ -18,21 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "explorer" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *explorer-sg* v1-1) +(defskelgroup *explorer-sg* explorer + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-52 explorer ((obj explorer)) diff --git a/goal_src/levels/village1/farmer.gc b/goal_src/levels/village1/farmer.gc index 3a792da2e5..d324cf685c 100644 --- a/goal_src/levels/village1/farmer.gc +++ b/goal_src/levels/village1/farmer.gc @@ -5,8 +5,6 @@ ;; name in dgo: farmer ;; dgos: L1, VI1 -(define-extern *farmer-sg* skeleton-group) - ;; DECOMP BEGINS (deftype farmer (process-taskable) @@ -18,24 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "farmer" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 1 - :version #x6 - :shadow 3 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 4095996000.0) - (set! *farmer-sg* v1-1) +(defskelgroup *farmer-sg* farmer + 0 + 4 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 3 ) (defmethod play-anim! farmer ((obj farmer) (arg0 symbol)) diff --git a/goal_src/levels/village1/fishermans-boat.gc b/goal_src/levels/village1/fishermans-boat.gc index 5ac0ceaf14..f280027863 100644 --- a/goal_src/levels/village1/fishermans-boat.gc +++ b/goal_src/levels/village1/fishermans-boat.gc @@ -5,10 +5,6 @@ ;; name in dgo: fishermans-boat ;; dgos: L1, VI1 -(define-extern *fb-evilbro-sg* skeleton-group) -(define-extern *fb-evilsis-sg* skeleton-group) -(define-extern *fishermans-boat-sg* skeleton-group) - (declare-type fishermans-boat rigid-body-platform) (define-extern fishermans-boat-player-control (state fishermans-boat)) ;; unknown type (define-extern fishermans-boat-entering-village (state fishermans-boat)) ;; unknown type @@ -614,57 +610,28 @@ ) -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "fishermans-boat" - :bounds - (new 'static 'vector :y 12288.0 :w 61440.0) - :max-lod 1 - :longest-edge (meters 7.3) - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 3) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 81920.0) - (set! (-> v1-7 mgeo 1) 2) - (set! (-> v1-7 lod-dist 1) 4095996000.0) - (set! *fishermans-boat-sg* v1-7) +(defskelgroup *fishermans-boat-sg* fishermans-boat + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 3 0 15) + :longest-edge (meters 7.3) ) -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "evilbro" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 3) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 4095996000.0) - (set! *fb-evilbro-sg* v1-8) +(defskelgroup *fb-evilbro-sg* evilbro + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) -(let - ((v1-9 - (new 'static 'skeleton-group - :art-group-name "evilsis" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-9 jgeo) 0) - (set! (-> v1-9 janim) 3) - (set! (-> v1-9 mgeo 0) 1) - (set! (-> v1-9 lod-dist 0) 4095996000.0) - (set! *fb-evilsis-sg* v1-9) +(defskelgroup *fb-evilsis-sg* evilsis + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) (defmethod TODO-RENAME-23 fishermans-boat ((obj fishermans-boat) (arg0 float)) diff --git a/goal_src/levels/village1/sage.gc b/goal_src/levels/village1/sage.gc index 02b5a615bc..ae7390d343 100644 --- a/goal_src/levels/village1/sage.gc +++ b/goal_src/levels/village1/sage.gc @@ -5,8 +5,6 @@ ;; name in dgo: sage ;; dgos: L1, VI1 -(define-extern *sage-sg* skeleton-group) - ;; DECOMP BEGINS (deftype sage (process-taskable) @@ -20,21 +18,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sage" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sage-sg* v1-1) +(defskelgroup *sage-sg* sage + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (defmethod play-anim! sage ((obj sage) (arg0 symbol)) diff --git a/goal_src/levels/village1/yakow.gc b/goal_src/levels/village1/yakow.gc index b74de98e7d..c3b9b0f5c4 100644 --- a/goal_src/levels/village1/yakow.gc +++ b/goal_src/levels/village1/yakow.gc @@ -5,9 +5,6 @@ ;; name in dgo: yakow ;; dgos: L1, VI1 -(define-extern *yakow-sg* skeleton-group) -(define-extern *village1cam-sg* skeleton-group) - (declare-type yakow process-drawable) (define-extern yakow-graze (state yakow)) (define-extern yakow-idle (state yakow)) @@ -20,20 +17,12 @@ ;; DECOMP BEGINS -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "village1cam" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *village1cam-sg* v1-0) +(defskelgroup *village1cam-sg* village1cam + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) (defun yakow-cam () @@ -161,26 +150,13 @@ ) -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "yakow" - :bounds - (new 'static 'vector :y 10240.0 :w 18022.4) - :max-lod 1 - :longest-edge (meters 1.3) - :version #x6 - :shadow 3 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) 4) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 81920.0) - (set! (-> v1-5 mgeo 1) 2) - (set! (-> v1-5 lod-dist 1) 4095996000.0) - (set! *yakow-sg* v1-5) +(defskelgroup *yakow-sg* yakow + 0 + 4 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 2.5 0 4.4) + :longest-edge (meters 1.3) + :shadow 3 ) ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? diff --git a/goal_src/levels/village2/assistant-village2.gc b/goal_src/levels/village2/assistant-village2.gc index 6315f41f5e..55821ea9c6 100644 --- a/goal_src/levels/village2/assistant-village2.gc +++ b/goal_src/levels/village2/assistant-village2.gc @@ -5,9 +5,6 @@ ;; name in dgo: assistant-village2 ;; dgos: L1, VI2 -(define-extern *assistant-village2-sg* skeleton-group) -(define-extern *jaws-sg* skeleton-group) - ;; DECOMP BEGINS (deftype assistant-levitator (process-taskable) @@ -45,42 +42,21 @@ (none) ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-village2" - :bounds (new 'static 'vector :w 8192.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *assistant-village2-sg* v1-1) +(defskelgroup *assistant-village2-sg* assistant-village2 + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) + :shadow 4 ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "jaws" - :bounds (new 'static 'vector :w 1024.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *jaws-sg* v1-2) +(defskelgroup *jaws-sg* jaws + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 0.25) + :longest-edge (meters 0) ) (defmethod dummy-52 assistant-levitator ((obj assistant-levitator)) diff --git a/goal_src/levels/village2/flutflut-bluehut.gc b/goal_src/levels/village2/flutflut-bluehut.gc index 6eb0389e9a..f1a8581535 100644 --- a/goal_src/levels/village2/flutflut-bluehut.gc +++ b/goal_src/levels/village2/flutflut-bluehut.gc @@ -5,9 +5,8 @@ ;; name in dgo: flutflut-bluehut ;; dgos: L1, VI2 -(define-extern *flutflut-bluehut-sg* skeleton-group) +;; DECOMP BEGINS -;; definition of type flutflut-bluehut (deftype flutflut-bluehut (process-taskable) () :heap-base #x110 @@ -16,25 +15,15 @@ :flag-assert #x350110017c ) -;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "flutflut-bluehut" - :bounds (new 'static 'vector :w 13312.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *flutflut-bluehut-sg* v1-1) + +(defskelgroup *flutflut-bluehut-sg* flutflut-bluehut + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3.25) + :longest-edge (meters 0) ) -;; definition for method 32 of type flutflut-bluehut -;; INFO: Return type mismatch art-element vs basic. (defmethod play-anim! flutflut-bluehut ((obj flutflut-bluehut) (arg0 symbol)) (current-status (-> obj tasks)) (if arg0 @@ -42,18 +31,16 @@ 0 "ERROR: : ~S playing anim for task status ~S~%" (-> obj name) - (task-status->string (the-as task-status (current-status (-> obj tasks)))) + (task-status->string (current-status (-> obj tasks))) ) ) (the-as basic (get-art-elem obj)) ) -;; definition for method 31 of type flutflut-bluehut (defmethod get-art-elem flutflut-bluehut ((obj flutflut-bluehut)) (-> obj draw art-group data 2) ) -;; definition for method 39 of type flutflut-bluehut (defmethod should-display? flutflut-bluehut ((obj flutflut-bluehut)) (and (closed? @@ -65,7 +52,6 @@ ) ) -;; failed to figure out what this is: (defstate idle (flutflut-bluehut) :virtual #t :trans @@ -334,7 +320,6 @@ ) ) -;; definition for method 11 of type flutflut-bluehut (defmethod copy-defaults! flutflut-bluehut @@ -353,3 +338,7 @@ (dummy-42 obj) (none) ) + + + + diff --git a/goal_src/levels/village2/gambler.gc b/goal_src/levels/village2/gambler.gc index 5686a34ab3..3218917645 100644 --- a/goal_src/levels/village2/gambler.gc +++ b/goal_src/levels/village2/gambler.gc @@ -5,8 +5,6 @@ ;; name in dgo: gambler ;; dgos: L1, VI2 -(define-extern *gambler-sg* skeleton-group) - ;; DECOMP BEGINS (deftype gambler (process-taskable) @@ -18,26 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "gambler" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *gambler-sg* v1-1) +(defskelgroup *gambler-sg* gambler + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) (defmethod play-anim! gambler ((obj gambler) (arg0 symbol)) diff --git a/goal_src/levels/village2/geologist.gc b/goal_src/levels/village2/geologist.gc index 4975f39e74..4e0a2b28b7 100644 --- a/goal_src/levels/village2/geologist.gc +++ b/goal_src/levels/village2/geologist.gc @@ -5,8 +5,6 @@ ;; name in dgo: geologist ;; dgos: L1, VI2 -(define-extern *geologist-sg* skeleton-group) - ;; DECOMP BEGINS (deftype geologist (process-taskable) @@ -18,26 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "geologist" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *geologist-sg* v1-1) +(defskelgroup *geologist-sg* geologist + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) (defmethod play-anim! geologist ((obj geologist) (arg0 symbol)) diff --git a/goal_src/levels/village2/sage-bluehut.gc b/goal_src/levels/village2/sage-bluehut.gc index 19b11c897e..bb2334f701 100644 --- a/goal_src/levels/village2/sage-bluehut.gc +++ b/goal_src/levels/village2/sage-bluehut.gc @@ -5,8 +5,6 @@ ;; name in dgo: sage-bluehut ;; dgos: L1, VI2 -(define-extern *sage-bluehut-sg* skeleton-group) - ;; DECOMP BEGINS (deftype assistant-bluehut (process-taskable) @@ -33,21 +31,13 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sage-bluehut" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 3) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sage-bluehut-sg* v1-2) +(defskelgroup *sage-bluehut-sg* sage-bluehut + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (defmethod play-anim! sage-bluehut ((obj sage-bluehut) (arg0 symbol)) diff --git a/goal_src/levels/village2/sunken-elevator.gc b/goal_src/levels/village2/sunken-elevator.gc index 5d2c8b4430..d72d5c5293 100644 --- a/goal_src/levels/village2/sunken-elevator.gc +++ b/goal_src/levels/village2/sunken-elevator.gc @@ -5,8 +5,6 @@ ;; name in dgo: sunken-elevator ;; dgos: L1, VI2 -(define-extern *sunken-elevator-sg* skeleton-group) - ;; DECOMP BEGINS (deftype sunken-elevator (plat-button) @@ -21,21 +19,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sunken-elevator" - :bounds - (new 'static 'vector :y -4096.0 :w 27033.6) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sunken-elevator-sg* v1-1) +(defskelgroup *sunken-elevator-sg* sunken-elevator + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -1 0 6.6) + :longest-edge (meters 0) ) (defmethod should-teleport? sunken-elevator ((obj sunken-elevator)) diff --git a/goal_src/levels/village2/village2-obs.gc b/goal_src/levels/village2/village2-obs.gc index aa0b784e75..32bde56898 100644 --- a/goal_src/levels/village2/village2-obs.gc +++ b/goal_src/levels/village2/village2-obs.gc @@ -14,7 +14,6 @@ :size-assert #xe8 :flag-assert #x1e008000e8 ) -(define-extern *village2cam-sg* skeleton-group) ;; TODO - for warrior (deftype allpontoons (process-drawable) @@ -37,4 +36,22 @@ :flag-assert #x14005000b9 ) -;; decomp begins +;; DECOMP BEGINS + +;; ERROR: top level function was not converted to expressions. Cannot decompile. + + +(define-extern *ogreboss-village2-sg* skeleton-group) +(define-extern *fireboulder-sg* skeleton-group) +(define-extern *exit-chamber-dummy-sg* skeleton-group) +(define-extern *ceilingflag-sg* skeleton-group) +(define-extern *allpontoons-sg* skeleton-group) +(define-extern *pontoonten-sg* skeleton-group) +(define-extern *pontoonfive-sg* skeleton-group) +(define-extern *village2cam-sg* skeleton-group) +(define-extern *med-res-rolling-sg* skeleton-group) +(define-extern *med-res-rolling1-sg* skeleton-group) +(define-extern *med-res-village2-sg* skeleton-group) + + + diff --git a/goal_src/levels/village2/warrior.gc b/goal_src/levels/village2/warrior.gc index 7864687d20..0556e1b71e 100644 --- a/goal_src/levels/village2/warrior.gc +++ b/goal_src/levels/village2/warrior.gc @@ -5,8 +5,6 @@ ;; name in dgo: warrior ;; dgos: L1, VI2 -(define-extern *warrior-sg* skeleton-group) - ;; DECOMP BEGINS (deftype warrior (process-taskable) @@ -18,26 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "warrior" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *warrior-sg* v1-1) +(defskelgroup *warrior-sg* warrior + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) (defmethod dummy-52 warrior ((obj warrior)) diff --git a/goal_src/levels/village3/assistant-village3.gc b/goal_src/levels/village3/assistant-village3.gc index 4ae913f4a6..8dbc3afe25 100644 --- a/goal_src/levels/village3/assistant-village3.gc +++ b/goal_src/levels/village3/assistant-village3.gc @@ -5,8 +5,6 @@ ;; name in dgo: assistant-village3 ;; dgos: L1, VI3 -(define-extern *assistant-village3-sg* skeleton-group) - ;; DECOMP BEGINS (deftype assistant-villagec (process-taskable) @@ -18,21 +16,13 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-village3-sg* v1-1) +(defskelgroup *assistant-village3-sg* assistant-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-52 assistant-villagec ((obj assistant-villagec)) diff --git a/goal_src/levels/village3/miners.gc b/goal_src/levels/village3/miners.gc index fcba1eb4cd..f37f42f9fa 100644 --- a/goal_src/levels/village3/miners.gc +++ b/goal_src/levels/village3/miners.gc @@ -6,9 +6,6 @@ ;; dgos: L1, VI3 (declare-type minershort process-taskable) -(define-extern *cavegem-sg* skeleton-group) -(define-extern *minershort-sg* skeleton-group) -(define-extern *minertall-sg* skeleton-group) ;; DECOMP BEGINS @@ -50,21 +47,13 @@ ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "minertall" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 3) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *minertall-sg* v1-2) +(defskelgroup *minertall-sg* minertall + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (defmethod dummy-52 minertall ((obj minertall)) @@ -158,21 +147,13 @@ ) -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "minershort" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 3) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *minershort-sg* v1-7) +(defskelgroup *minershort-sg* minershort + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) (set! @@ -881,20 +862,12 @@ ) -(let - ((v1-18 - (new 'static 'skeleton-group - :art-group-name "cavegem" - :bounds (new 'static 'vector :w 36864.0) - :version #x6 - ) - ) - ) - (set! (-> v1-18 jgeo) 0) - (set! (-> v1-18 janim) 2) - (set! (-> v1-18 mgeo 0) 1) - (set! (-> v1-18 lod-dist 0) 4095996000.0) - (set! *cavegem-sg* v1-18) +(defskelgroup *cavegem-sg* cavegem + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 9) + :longest-edge (meters 0) ) (defstate idle (cavegem) diff --git a/goal_src/levels/village3/sage-village3.gc b/goal_src/levels/village3/sage-village3.gc index d0af1cfcd3..eb23024109 100644 --- a/goal_src/levels/village3/sage-village3.gc +++ b/goal_src/levels/village3/sage-village3.gc @@ -5,10 +5,6 @@ ;; name in dgo: sage-village3 ;; dgos: L1, VI3 -(define-extern *sage-village3-sg* skeleton-group) -(define-extern *evilbro-village3-sg* skeleton-group) -(define-extern *evilsis-village3-sg* skeleton-group) - ;; DECOMP BEGINS (deftype sage-villagec (process-taskable) @@ -23,55 +19,31 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sage-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sage-village3-sg* v1-1) +(defskelgroup *sage-village3-sg* sage-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "evilbro-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 3) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *evilbro-village3-sg* v1-2) +(defskelgroup *evilbro-village3-sg* evilbro-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "evilsis-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 3) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *evilsis-village3-sg* v1-3) +(defskelgroup *evilsis-village3-sg* evilsis-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) (defmethod play-anim! sage-villagec ((obj sage-villagec) (arg0 symbol)) diff --git a/goal_src/levels/village_common/oracle.gc b/goal_src/levels/village_common/oracle.gc index e6539865df..3201fb107c 100644 --- a/goal_src/levels/village_common/oracle.gc +++ b/goal_src/levels/village_common/oracle.gc @@ -5,8 +5,6 @@ ;; name in dgo: oracle ;; dgos: CIT, L1, VI1, VI2, VI3, VILLAGEP -(define-extern *oracle-sg* skeleton-group) - ;; DECOMP BEGINS (deftype oracle (process-taskable) @@ -22,20 +20,12 @@ ) -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "oracle" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *oracle-sg* v1-1) +(defskelgroup *oracle-sg* oracle + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) (defmethod play-anim! oracle ((obj oracle) (arg0 symbol)) diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index b66bde0bba..5af2ee1765 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -777,4 +777,49 @@ (send-event-function ,proc event-data) ) ) - ) \ No newline at end of file + ) + +;; vector-h +(defmacro static-spherem (x y z r) + "actually makes a vector" + `(new 'static 'vector :x (meters ,x) :y (meters ,y) :z (meters ,z) :w (meters ,r)) + ) + +;; art-h +(defmacro defskelgroup (name art-name joint-geom joint-anim lods + &key (shadow 0) + &key bounds + &key longest-edge + &key (texture-level 0) + &key (sort 0) + &key (version 6) ;; do NOT use this! + ) + + "define a new static skeleton group" + + `(let ((skel (new 'static 'skeleton-group + :art-group-name ,(symbol->string art-name) + :bounds ,bounds + :longest-edge ,longest-edge + :version ,version + :max-lod ,(- (length lods) 1) + :shadow ,shadow + :texture-level ,texture-level + :sort ,sort + ))) + ;; set joint geometry and joint bones + (set! (-> skel jgeo) ,joint-geom) + (set! (-> skel janim) ,joint-anim) + + ;; set lods + ,@(apply-i (lambda (x i) + `(begin + (set! (-> skel mgeo ,i) ,(car x)) + (set! (-> skel lod-dist ,i) ,(cadr x)) + ) + ) lods) + + ;; define skel group + (define ,name skel) + ) + ) diff --git a/test/decompiler/reference/engine/target/target-util_REF.gc b/test/decompiler/reference/engine/target/target-util_REF.gc index 996685d611..a116115576 100644 --- a/test/decompiler/reference/engine/target/target-util_REF.gc +++ b/test/decompiler/reference/engine/target/target-util_REF.gc @@ -2,25 +2,15 @@ (in-package goal) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "eichar" - :bounds - (new 'static 'vector :y 8192.0 :w 12288.0) - :longest-edge (meters 1.0) - :texture-level 2 - :version #x6 - :shadow 2 - :sort 1 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) -1) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *jchar-sg* v1-0) +(defskelgroup *jchar-sg* eichar + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 3) + :longest-edge (meters 1) + :shadow 2 + :texture-level 2 + :sort 1 ) ;; definition for symbol *target-shadow-control*, type shadow-control diff --git a/test/decompiler/reference/engine/ui/hud-classes_REF.gc b/test/decompiler/reference/engine/ui/hud-classes_REF.gc index ab37f93c98..d197aa384b 100644 --- a/test/decompiler/reference/engine/ui/hud-classes_REF.gc +++ b/test/decompiler/reference/engine/ui/hud-classes_REF.gc @@ -1248,22 +1248,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-24 - (new 'static 'skeleton-group - :art-group-name "fuelcell-naked" - :bounds - (new 'static 'vector :y 4096.0 :w 6553.6) - :texture-level 2 - :version #x6 - ) - ) - ) - (set! (-> v1-24 jgeo) 0) - (set! (-> v1-24 janim) 2) - (set! (-> v1-24 mgeo 0) 1) - (set! (-> v1-24 lod-dist 0) 4095996000.0) - (set! *fuelcell-naked-sg* v1-24) +(defskelgroup *fuelcell-naked-sg* fuelcell-naked + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 1 0 1.6) + :longest-edge (meters 0) + :texture-level 2 ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/beach/beach-rocks_REF.gc b/test/decompiler/reference/levels/beach/beach-rocks_REF.gc index e1debd83d4..784ff0c72e 100644 --- a/test/decompiler/reference/levels/beach/beach-rocks_REF.gc +++ b/test/decompiler/reference/levels/beach/beach-rocks_REF.gc @@ -2,21 +2,12 @@ (in-package goal) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "lrocklrg" - :bounds (new 'static 'vector :w 20480.0) - :longest-edge (meters 11.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *lrocklrg-sg* v1-0) +(defskelgroup *lrocklrg-sg* lrocklrg + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 5) + :longest-edge (meters 11) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/beach/bird-lady-beach_REF.gc b/test/decompiler/reference/levels/beach/bird-lady-beach_REF.gc index 221ceaa6fe..e9a31d2bf1 100644 --- a/test/decompiler/reference/levels/beach/bird-lady-beach_REF.gc +++ b/test/decompiler/reference/levels/beach/bird-lady-beach_REF.gc @@ -23,21 +23,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "bird-lady-beach" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *bird-lady-beach-sg* v1-1) +(defskelgroup *bird-lady-beach-sg* bird-lady-beach + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/beach/bird-lady_REF.gc b/test/decompiler/reference/levels/beach/bird-lady_REF.gc index 96264a2493..abdd81029d 100644 --- a/test/decompiler/reference/levels/beach/bird-lady_REF.gc +++ b/test/decompiler/reference/levels/beach/bird-lady_REF.gc @@ -19,22 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "bird-lady" - :bounds - (new 'static 'vector :y 4096.0 :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *bird-lady-sg* v1-1) +(defskelgroup *bird-lady-sg* bird-lady + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 1 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 52 of type bird-lady diff --git a/test/decompiler/reference/levels/beach/lurkercrab_REF.gc b/test/decompiler/reference/levels/beach/lurkercrab_REF.gc index e1ba1480be..21df3097f7 100644 --- a/test/decompiler/reference/levels/beach/lurkercrab_REF.gc +++ b/test/decompiler/reference/levels/beach/lurkercrab_REF.gc @@ -96,25 +96,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "lurkercrab" - :bounds (new 'static 'vector :w 10240.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 4) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 81920.0) - (set! (-> v1-4 mgeo 1) 2) - (set! (-> v1-4 lod-dist 1) 163840.0) - (set! (-> v1-4 mgeo 2) 3) - (set! (-> v1-4 lod-dist 2) 4095996000.0) - (set! *lurkercrab-sg* v1-4) +(defskelgroup *lurkercrab-sg* lurkercrab + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) ) ;; definition for method 44 of type lurkercrab diff --git a/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc b/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc index 6b15fe0db7..e22d93a4d7 100644 --- a/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc +++ b/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc @@ -19,26 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "lurkerpuppy" - :bounds (new 'static 'vector :w 8192.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *lurkerpuppy-sg* v1-1) +(defskelgroup *lurkerpuppy-sg* lurkerpuppy + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) + :shadow 4 ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/beach/mayor_REF.gc b/test/decompiler/reference/levels/beach/mayor_REF.gc index ea95a69760..99270cd112 100644 --- a/test/decompiler/reference/levels/beach/mayor_REF.gc +++ b/test/decompiler/reference/levels/beach/mayor_REF.gc @@ -19,21 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "mayor" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *mayor-sg* v1-1) +(defskelgroup *mayor-sg* mayor + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 52 of type mayor diff --git a/test/decompiler/reference/levels/beach/sculptor_REF.gc b/test/decompiler/reference/levels/beach/sculptor_REF.gc index 69e4fc6efe..9f28f2f0ba 100644 --- a/test/decompiler/reference/levels/beach/sculptor_REF.gc +++ b/test/decompiler/reference/levels/beach/sculptor_REF.gc @@ -21,38 +21,22 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sculptor-muse" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sculptor-muse-sg* v1-1) +(defskelgroup *sculptor-muse-sg* sculptor-muse + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sculptor" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 4) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sculptor-sg* v1-2) +(defskelgroup *sculptor-sg* sculptor + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 52 of type sculptor diff --git a/test/decompiler/reference/levels/citadel/assistant-citadel_REF.gc b/test/decompiler/reference/levels/citadel/assistant-citadel_REF.gc index d59c6c950b..33544905a6 100644 --- a/test/decompiler/reference/levels/citadel/assistant-citadel_REF.gc +++ b/test/decompiler/reference/levels/citadel/assistant-citadel_REF.gc @@ -19,21 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-lavatube-end" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-lavatube-end-sg* v1-1) +(defskelgroup *assistant-lavatube-end-sg* assistant-lavatube-end + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type assistant-lavatube-end diff --git a/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc b/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc index 0b8c1a6923..3969151a34 100644 --- a/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc +++ b/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc @@ -2,103 +2,48 @@ (in-package goal) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 3) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 81920.0) - (set! (-> v1-0 mgeo 1) 2) - (set! (-> v1-0 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-sg* v1-0) +(defskelgroup *citb-drop-plat-sg* citb-drop-plat + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 4) - (set! (-> v1-1 janim) 7) - (set! (-> v1-1 mgeo 0) 5) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 6) - (set! (-> v1-1 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-red-sg* v1-1) +(defskelgroup *citb-drop-plat-red-sg* citb-drop-plat + 4 + 7 + ((5 (meters 20)) (6 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 8) - (set! (-> v1-2 janim) 11) - (set! (-> v1-2 mgeo 0) 9) - (set! (-> v1-2 lod-dist 0) 81920.0) - (set! (-> v1-2 mgeo 1) 10) - (set! (-> v1-2 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-green-sg* v1-2) +(defskelgroup *citb-drop-plat-green-sg* citb-drop-plat + 8 + 11 + ((9 (meters 20)) (10 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 12) - (set! (-> v1-3 janim) 15) - (set! (-> v1-3 mgeo 0) 13) - (set! (-> v1-3 lod-dist 0) 81920.0) - (set! (-> v1-3 mgeo 1) 14) - (set! (-> v1-3 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-blue-sg* v1-3) +(defskelgroup *citb-drop-plat-blue-sg* citb-drop-plat + 12 + 15 + ((13 (meters 20)) (14 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "citb-drop-plat" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 16) - (set! (-> v1-4 janim) 19) - (set! (-> v1-4 mgeo 0) 17) - (set! (-> v1-4 lod-dist 0) 81920.0) - (set! (-> v1-4 mgeo 1) 18) - (set! (-> v1-4 lod-dist 1) 4095996000.0) - (set! *citb-drop-plat-yellow-sg* v1-4) +(defskelgroup *citb-drop-plat-yellow-sg* citb-drop-plat + 16 + 19 + ((17 (meters 20)) (18 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) ;; definition of type drop-plat diff --git a/test/decompiler/reference/levels/common/babak_REF.gc b/test/decompiler/reference/levels/common/babak_REF.gc index 67eff2ad46..47aa4daab1 100644 --- a/test/decompiler/reference/levels/common/babak_REF.gc +++ b/test/decompiler/reference/levels/common/babak_REF.gc @@ -19,28 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "babak" - :bounds - (new 'static 'vector :y 8192.0 :w 12288.0) - :max-lod 2 - :longest-edge (meters 1.0) - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *babak-sg* v1-1) +(defskelgroup *babak-sg* babak + 0 + -1 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 2 0 3) + :longest-edge (meters 1) + :shadow 4 ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/common/basebutton_REF.gc b/test/decompiler/reference/levels/common/basebutton_REF.gc index a043cfff07..67c1a60c7c 100644 --- a/test/decompiler/reference/levels/common/basebutton_REF.gc +++ b/test/decompiler/reference/levels/common/basebutton_REF.gc @@ -60,20 +60,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "generic-button" - :bounds (new 'static 'vector :w 12288.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *generic-button-sg* v1-1) +(defskelgroup *generic-button-sg* generic-button + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 0) ) ;; definition for method 30 of type basebutton diff --git a/test/decompiler/reference/levels/common/blocking-plane_REF.gc b/test/decompiler/reference/levels/common/blocking-plane_REF.gc index 2c37896a81..fd3e5af85c 100644 --- a/test/decompiler/reference/levels/common/blocking-plane_REF.gc +++ b/test/decompiler/reference/levels/common/blocking-plane_REF.gc @@ -19,20 +19,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "ef-plane" - :bounds (new 'static 'vector :w 122880.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *ef-plane-sg* v1-1) +(defskelgroup *ef-plane-sg* ef-plane + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 30) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/common/plat-button_REF.gc b/test/decompiler/reference/levels/common/plat-button_REF.gc index 13adc692d4..7f3e8dcdfe 100644 --- a/test/decompiler/reference/levels/common/plat-button_REF.gc +++ b/test/decompiler/reference/levels/common/plat-button_REF.gc @@ -57,21 +57,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "plat-button" - :bounds - (new 'static 'vector :y -4096.0 :w 27033.6) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *plat-button-sg* v1-1) +(defskelgroup *plat-button-sg* plat-button + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -1 0 6.6) + :longest-edge (meters 0) ) ;; definition for method 30 of type plat-button diff --git a/test/decompiler/reference/levels/common/plat_REF.gc b/test/decompiler/reference/levels/common/plat_REF.gc index 034d4b873d..c4841c72f5 100644 --- a/test/decompiler/reference/levels/common/plat_REF.gc +++ b/test/decompiler/reference/levels/common/plat_REF.gc @@ -104,62 +104,30 @@ ) ;; failed to figure out what this is: -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "plat" - :bounds - (new 'static 'vector :y -2048.0 :w 12288.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 4) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 81920.0) - (set! (-> v1-4 mgeo 1) 2) - (set! (-> v1-4 lod-dist 1) 163840.0) - (set! (-> v1-4 mgeo 2) 3) - (set! (-> v1-4 lod-dist 2) 4095996000.0) - (set! *plat-sg* v1-4) +(defskelgroup *plat-sg* plat + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 -0.5 0 3) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "plat-jungleb" - :bounds - (new 'static 'vector :y -2048.0 :w 12288.0) - :version #x6 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) 4) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 4095996000.0) - (set! *plat-jungleb-sg* v1-5) +(defskelgroup *plat-jungleb-sg* plat-jungleb + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 -0.5 0 3) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-6 - (new 'static 'skeleton-group - :art-group-name "plat-sunken" - :bounds - (new 'static 'vector :y -2048.0 :w 13107.2) - :version #x6 - ) - ) - ) - (set! (-> v1-6 jgeo) 0) - (set! (-> v1-6 janim) 4) - (set! (-> v1-6 mgeo 0) 1) - (set! (-> v1-6 lod-dist 0) 4095996000.0) - (set! *plat-sunken-sg* v1-6) +(defskelgroup *plat-sunken-sg* plat-sunken + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 -0.5 0 3.2) + :longest-edge (meters 0) ) ;; definition for method 23 of type plat diff --git a/test/decompiler/reference/levels/common/sharkey_REF.gc b/test/decompiler/reference/levels/common/sharkey_REF.gc index 66bce4488a..fd7228be4a 100644 --- a/test/decompiler/reference/levels/common/sharkey_REF.gc +++ b/test/decompiler/reference/levels/common/sharkey_REF.gc @@ -82,20 +82,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sharkey" - :bounds (new 'static 'vector :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sharkey-sg* v1-2) +(defskelgroup *sharkey-sg* sharkey + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 6) + :longest-edge (meters 0) ) ;; definition for method 44 of type sharkey diff --git a/test/decompiler/reference/levels/common/water-anim_REF.gc b/test/decompiler/reference/levels/common/water-anim_REF.gc index 550150ad7c..e4b14f8da1 100644 --- a/test/decompiler/reference/levels/common/water-anim_REF.gc +++ b/test/decompiler/reference/levels/common/water-anim_REF.gc @@ -24,842 +24,435 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken-dark-eco" - :bounds (new 'static 'vector :w 163840.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-dark-eco-qbert-sg* v1-1) +(defskelgroup *water-anim-sunken-dark-eco-qbert-sg* water-anim-sunken-dark-eco + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 40) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken-dark-eco" - :bounds (new 'static 'vector :w 90112.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 2) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 3) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-dark-eco-platform-room-sg* v1-2) +(defskelgroup *water-anim-sunken-dark-eco-platform-room-sg* water-anim-sunken-dark-eco + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 0 0 0 22) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken-dark-eco" - :bounds (new 'static 'vector :w 86016.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 4) - (set! (-> v1-3 janim) -1) - (set! (-> v1-3 mgeo 0) 5) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-dark-eco-helix-room-sg* v1-3) +(defskelgroup *water-anim-sunken-dark-eco-helix-room-sg* water-anim-sunken-dark-eco + 4 + -1 + ((5 (meters 999999))) + :bounds (static-spherem 0 0 0 21) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds - (new 'static 'vector :x 61440.0 :z -147456.0 :w 286720.0) - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) -1) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-big-room-sg* v1-4) +(defskelgroup *water-anim-sunken-big-room-sg* water-anim-sunken + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 15 0 -36 70) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 204800.0) - :version #x6 - ) - ) - ) - (set! (-> v1-5 jgeo) 2) - (set! (-> v1-5 janim) -1) - (set! (-> v1-5 mgeo 0) 3) - (set! (-> v1-5 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-first-room-from-entrance-sg* v1-5) +(defskelgroup *water-anim-sunken-first-room-from-entrance-sg* water-anim-sunken + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 0 0 0 50) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-6 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 196608.0) - :version #x6 - ) - ) - ) - (set! (-> v1-6 jgeo) 4) - (set! (-> v1-6 janim) -1) - (set! (-> v1-6 mgeo 0) 5) - (set! (-> v1-6 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-qbert-room-sg* v1-6) +(defskelgroup *water-anim-sunken-qbert-room-sg* water-anim-sunken + 4 + -1 + ((5 (meters 999999))) + :bounds (static-spherem 0 0 0 48) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 122880.0) - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 6) - (set! (-> v1-7 janim) -1) - (set! (-> v1-7 mgeo 0) 7) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-first-right-branch-sg* v1-7) +(defskelgroup *water-anim-sunken-first-right-branch-sg* water-anim-sunken + 6 + -1 + ((7 (meters 999999))) + :bounds (static-spherem 0 0 0 30) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 61440.0) - :version #x6 - ) - ) - ) - (set! (-> v1-8 jgeo) 8) - (set! (-> v1-8 janim) -1) - (set! (-> v1-8 mgeo 0) 9) - (set! (-> v1-8 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-circular-with-bullys-sg* v1-8) +(defskelgroup *water-anim-sunken-circular-with-bullys-sg* water-anim-sunken + 8 + -1 + ((9 (meters 999999))) + :bounds (static-spherem 0 0 0 15) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-9 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 110592.0) - :version #x6 - ) - ) - ) - (set! (-> v1-9 jgeo) 10) - (set! (-> v1-9 janim) -1) - (set! (-> v1-9 mgeo 0) 11) - (set! (-> v1-9 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-hall-with-one-whirlpool-sg* v1-9) +(defskelgroup *water-anim-sunken-hall-with-one-whirlpool-sg* water-anim-sunken + 10 + -1 + ((11 (meters 999999))) + :bounds (static-spherem 0 0 0 27) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-10 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 106496.0) - :version #x6 - ) - ) - ) - (set! (-> v1-10 jgeo) 12) - (set! (-> v1-10 janim) -1) - (set! (-> v1-10 mgeo 0) 13) - (set! (-> v1-10 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-hall-with-three-whirlpools-sg* v1-10) +(defskelgroup *water-anim-sunken-hall-with-three-whirlpools-sg* water-anim-sunken + 12 + -1 + ((13 (meters 999999))) + :bounds (static-spherem 0 0 0 26) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-11 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 102400.0) - :version #x6 - ) - ) - ) - (set! (-> v1-11 jgeo) 14) - (set! (-> v1-11 janim) -1) - (set! (-> v1-11 mgeo 0) 15) - (set! (-> v1-11 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-start-of-helix-slide-sg* v1-11) +(defskelgroup *water-anim-sunken-start-of-helix-slide-sg* water-anim-sunken + 14 + -1 + ((15 (meters 999999))) + :bounds (static-spherem 0 0 0 25) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-12 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 184320.0) - :version #x6 - ) - ) - ) - (set! (-> v1-12 jgeo) 16) - (set! (-> v1-12 janim) -1) - (set! (-> v1-12 mgeo 0) 17) - (set! (-> v1-12 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-room-above-exit-chamber-sg* v1-12) +(defskelgroup *water-anim-sunken-room-above-exit-chamber-sg* water-anim-sunken + 16 + -1 + ((17 (meters 999999))) + :bounds (static-spherem 0 0 0 45) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-13 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds - (new 'static 'vector :x 20480.0 :z -12288.0 :w 98304.0) - :version #x6 - ) - ) - ) - (set! (-> v1-13 jgeo) 18) - (set! (-> v1-13 janim) -1) - (set! (-> v1-13 mgeo 0) 19) - (set! (-> v1-13 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-hall-before-big-room-sg* v1-13) +(defskelgroup *water-anim-sunken-hall-before-big-room-sg* water-anim-sunken + 18 + -1 + ((19 (meters 999999))) + :bounds (static-spherem 5 0 -3 24) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-14 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 81920.0) - :version #x6 - ) - ) - ) - (set! (-> v1-14 jgeo) 20) - (set! (-> v1-14 janim) -1) - (set! (-> v1-14 mgeo 0) 21) - (set! (-> v1-14 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-short-piece-sg* v1-14) +(defskelgroup *water-anim-sunken-short-piece-sg* water-anim-sunken + 20 + -1 + ((21 (meters 999999))) + :bounds (static-spherem 0 0 0 20) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-15 - (new 'static 'skeleton-group - :art-group-name "water-anim-sunken" - :bounds (new 'static 'vector :w 110592.0) - :version #x6 - ) - ) - ) - (set! (-> v1-15 jgeo) 22) - (set! (-> v1-15 janim) -1) - (set! (-> v1-15 mgeo 0) 23) - (set! (-> v1-15 lod-dist 0) 4095996000.0) - (set! *water-anim-sunken-big-room-upper-water-sg* v1-15) +(defskelgroup *water-anim-sunken-big-room-upper-water-sg* water-anim-sunken + 22 + -1 + ((23 (meters 999999))) + :bounds (static-spherem 0 0 0 27) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-16 - (new 'static 'skeleton-group - :art-group-name "water-anim-maincave" - :bounds (new 'static 'vector :w 286720.0) - :version #x6 - ) - ) - ) - (set! (-> v1-16 jgeo) 0) - (set! (-> v1-16 janim) -1) - (set! (-> v1-16 mgeo 0) 1) - (set! (-> v1-16 lod-dist 0) 4095996000.0) - (set! *water-anim-maincave-center-pool-sg* v1-16) +(defskelgroup *water-anim-maincave-center-pool-sg* water-anim-maincave + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 70) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-17 - (new 'static 'skeleton-group - :art-group-name "water-anim-maincave" - :bounds - (new 'static 'vector :x 24576.0 :z 20480.0 :w 249856.0) - :version #x6 - ) - ) - ) - (set! (-> v1-17 jgeo) 2) - (set! (-> v1-17 janim) -1) - (set! (-> v1-17 mgeo 0) 3) - (set! (-> v1-17 lod-dist 0) 4095996000.0) - (set! *water-anim-maincave-lower-right-pool-sg* v1-17) +(defskelgroup *water-anim-maincave-lower-right-pool-sg* water-anim-maincave + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 6 0 5 61) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-18 - (new 'static 'skeleton-group - :art-group-name "water-anim-maincave" - :bounds (new 'static 'vector :w 151552.0) - :version #x6 - ) - ) - ) - (set! (-> v1-18 jgeo) 4) - (set! (-> v1-18 janim) -1) - (set! (-> v1-18 mgeo 0) 5) - (set! (-> v1-18 lod-dist 0) 4095996000.0) - (set! *water-anim-maincave-mid-right-pool-sg* v1-18) +(defskelgroup *water-anim-maincave-mid-right-pool-sg* water-anim-maincave + 4 + -1 + ((5 (meters 999999))) + :bounds (static-spherem 0 0 0 37) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-19 - (new 'static 'skeleton-group - :art-group-name "water-anim-maincave" - :bounds - (new 'static 'vector :x -4096.0 :w 81920.0) - :version #x6 - ) - ) - ) - (set! (-> v1-19 jgeo) 6) - (set! (-> v1-19 janim) -1) - (set! (-> v1-19 mgeo 0) 7) - (set! (-> v1-19 lod-dist 0) 4095996000.0) - (set! *water-anim-maincave-lower-left-pool-sg* v1-19) +(defskelgroup *water-anim-maincave-lower-left-pool-sg* water-anim-maincave + 6 + -1 + ((7 (meters 999999))) + :bounds (static-spherem -1 0 0 20) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-20 - (new 'static 'skeleton-group - :art-group-name "water-anim-maincave" - :bounds (new 'static 'vector :w 208896.0) - :version #x6 - ) - ) - ) - (set! (-> v1-20 jgeo) 8) - (set! (-> v1-20 janim) -1) - (set! (-> v1-20 mgeo 0) 9) - (set! (-> v1-20 lod-dist 0) 4095996000.0) - (set! *water-anim-maincave-mid-left-pool-sg* v1-20) +(defskelgroup *water-anim-maincave-mid-left-pool-sg* water-anim-maincave + 8 + -1 + ((9 (meters 999999))) + :bounds (static-spherem 0 0 0 51) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-21 - (new 'static 'skeleton-group - :art-group-name "water-anim-maincave-water" - :bounds - (new 'static 'vector :z -12288.0 :w 90112.0) - :version #x6 - ) - ) - ) - (set! (-> v1-21 jgeo) 0) - (set! (-> v1-21 janim) -1) - (set! (-> v1-21 mgeo 0) 1) - (set! (-> v1-21 lod-dist 0) 4095996000.0) - (set! *water-anim-maincave-water-with-crystal-sg* v1-21) +(defskelgroup *water-anim-maincave-water-with-crystal-sg* water-anim-maincave-water + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 -3 22) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-22 - (new 'static 'skeleton-group - :art-group-name "water-anim-robocave" - :bounds (new 'static 'vector :w 221184.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-22 jgeo) 0) - (set! (-> v1-22 janim) -1) - (set! (-> v1-22 mgeo 0) 1) - (set! (-> v1-22 lod-dist 0) 81920.0) - (set! (-> v1-22 mgeo 1) 2) - (set! (-> v1-22 lod-dist 1) 4095996000.0) - (set! *water-anim-robocave-main-pool-sg* v1-22) +(defskelgroup *water-anim-robocave-main-pool-sg* water-anim-robocave + 0 + -1 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 54) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-23 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds - (new 'static 'vector :z -10240.0 :w 77824.0) - :version #x6 - ) - ) - ) - (set! (-> v1-23 jgeo) 0) - (set! (-> v1-23 janim) -1) - (set! (-> v1-23 mgeo 0) 1) - (set! (-> v1-23 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-by-arena-sg* v1-23) +(defskelgroup *water-anim-misty-mud-by-arena-sg* water-anim-misty + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 -2.5 19) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-24 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 57344.0) - :version #x6 - ) - ) - ) - (set! (-> v1-24 jgeo) 2) - (set! (-> v1-24 janim) -1) - (set! (-> v1-24 mgeo 0) 3) - (set! (-> v1-24 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-above-skeleton-sg* v1-24) +(defskelgroup *water-anim-misty-mud-above-skeleton-sg* water-anim-misty + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 0 0 0 14) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-25 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds - (new 'static 'vector :z 16384.0 :w 102400.0) - :version #x6 - ) - ) - ) - (set! (-> v1-25 jgeo) 4) - (set! (-> v1-25 janim) -1) - (set! (-> v1-25 mgeo 0) 5) - (set! (-> v1-25 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-behind-skeleton-sg* v1-25) +(defskelgroup *water-anim-misty-mud-behind-skeleton-sg* water-anim-misty + 4 + -1 + ((5 (meters 999999))) + :bounds (static-spherem 0 0 4 25) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-26 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 57344.0) - :version #x6 - ) - ) - ) - (set! (-> v1-26 jgeo) 6) - (set! (-> v1-26 janim) -1) - (set! (-> v1-26 mgeo 0) 7) - (set! (-> v1-26 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-above-skull-back-sg* v1-26) +(defskelgroup *water-anim-misty-mud-above-skull-back-sg* water-anim-misty + 6 + -1 + ((7 (meters 999999))) + :bounds (static-spherem 0 0 0 14) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-27 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 65536.0) - :version #x6 - ) - ) - ) - (set! (-> v1-27 jgeo) 8) - (set! (-> v1-27 janim) -1) - (set! (-> v1-27 mgeo 0) 9) - (set! (-> v1-27 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-above-skull-front-sg* v1-27) +(defskelgroup *water-anim-misty-mud-above-skull-front-sg* water-anim-misty + 8 + -1 + ((9 (meters 999999))) + :bounds (static-spherem 0 0 0 16) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-28 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 53248.0) - :version #x6 - ) - ) - ) - (set! (-> v1-28 jgeo) 10) - (set! (-> v1-28 janim) -1) - (set! (-> v1-28 mgeo 0) 11) - (set! (-> v1-28 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-other-near-skull-sg* v1-28) +(defskelgroup *water-anim-misty-mud-other-near-skull-sg* water-anim-misty + 10 + -1 + ((11 (meters 999999))) + :bounds (static-spherem 0 0 0 13) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-29 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 61440.0) - :version #x6 - ) - ) - ) - (set! (-> v1-29 jgeo) 12) - (set! (-> v1-29 janim) -1) - (set! (-> v1-29 mgeo 0) 13) - (set! (-> v1-29 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-near-skull-sg* v1-29) +(defskelgroup *water-anim-misty-mud-near-skull-sg* water-anim-misty + 12 + -1 + ((13 (meters 999999))) + :bounds (static-spherem 0 0 0 15) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-30 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 65536.0) - :version #x6 - ) - ) - ) - (set! (-> v1-30 jgeo) 14) - (set! (-> v1-30 janim) -1) - (set! (-> v1-30 mgeo 0) 15) - (set! (-> v1-30 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-under-spine-sg* v1-30) +(defskelgroup *water-anim-misty-mud-under-spine-sg* water-anim-misty + 14 + -1 + ((15 (meters 999999))) + :bounds (static-spherem 0 0 0 16) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-31 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 86016.0) - :version #x6 - ) - ) - ) - (set! (-> v1-31 jgeo) 16) - (set! (-> v1-31 janim) -1) - (set! (-> v1-31 mgeo 0) 17) - (set! (-> v1-31 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-by-dock-sg* v1-31) +(defskelgroup *water-anim-misty-mud-by-dock-sg* water-anim-misty + 16 + -1 + ((17 (meters 999999))) + :bounds (static-spherem 0 0 0 21) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-32 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds - (new 'static 'vector :x -4096.0 :z -4096.0 :w 61440.0) - :version #x6 - ) - ) - ) - (set! (-> v1-32 jgeo) 18) - (set! (-> v1-32 janim) -1) - (set! (-> v1-32 mgeo 0) 19) - (set! (-> v1-32 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-island-near-dock-sg* v1-32) +(defskelgroup *water-anim-misty-mud-island-near-dock-sg* water-anim-misty + 18 + -1 + ((19 (meters 999999))) + :bounds (static-spherem -1 0 -1 15) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-33 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 40960.0) - :version #x6 - ) - ) - ) - (set! (-> v1-33 jgeo) 20) - (set! (-> v1-33 janim) -1) - (set! (-> v1-33 mgeo 0) 21) - (set! (-> v1-33 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-mud-lonely-island-sg* v1-33) +(defskelgroup *water-anim-misty-mud-lonely-island-sg* water-anim-misty + 20 + -1 + ((21 (meters 999999))) + :bounds (static-spherem 0 0 0 10) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-34 - (new 'static 'skeleton-group - :art-group-name "water-anim-misty" - :bounds (new 'static 'vector :w 69632.0) - :version #x6 - ) - ) - ) - (set! (-> v1-34 jgeo) 22) - (set! (-> v1-34 janim) -1) - (set! (-> v1-34 mgeo 0) 23) - (set! (-> v1-34 lod-dist 0) 4095996000.0) - (set! *water-anim-misty-dark-eco-pool-sg* v1-34) +(defskelgroup *water-anim-misty-dark-eco-pool-sg* water-anim-misty + 22 + -1 + ((23 (meters 999999))) + :bounds (static-spherem 0 0 0 17) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-35 - (new 'static 'skeleton-group - :art-group-name "water-anim-ogre" - :bounds (new 'static 'vector :w 458752.0) - :version #x6 - ) - ) - ) - (set! (-> v1-35 jgeo) 0) - (set! (-> v1-35 janim) -1) - (set! (-> v1-35 mgeo 0) 1) - (set! (-> v1-35 lod-dist 0) 4095996000.0) - (set! *water-anim-ogre-lava-sg* v1-35) +(defskelgroup *water-anim-ogre-lava-sg* water-anim-ogre + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 112) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-36 - (new 'static 'skeleton-group - :art-group-name "water-anim-jungle" - :bounds (new 'static 'vector :w 372736.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-36 jgeo) 0) - (set! (-> v1-36 janim) -1) - (set! (-> v1-36 mgeo 0) 1) - (set! (-> v1-36 lod-dist 0) 81920.0) - (set! (-> v1-36 mgeo 1) 2) - (set! (-> v1-36 lod-dist 1) 4095996000.0) - (set! *water-anim-jungle-river-sg* v1-36) +(defskelgroup *water-anim-jungle-river-sg* water-anim-jungle + 0 + -1 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 91) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-37 - (new 'static 'skeleton-group - :art-group-name "water-anim-village3" - :bounds - (new 'static 'vector :x 61440.0 :z 40960.0 :w 667648.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-37 jgeo) 0) - (set! (-> v1-37 janim) -1) - (set! (-> v1-37 mgeo 0) 1) - (set! (-> v1-37 lod-dist 0) 81920.0) - (set! (-> v1-37 mgeo 1) 2) - (set! (-> v1-37 lod-dist 1) 4095996000.0) - (set! *water-anim-village3-lava-sg* v1-37) +(defskelgroup *water-anim-village3-lava-sg* water-anim-village3 + 0 + -1 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 15 0 10 163) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-38 - (new 'static 'skeleton-group - :art-group-name "water-anim-training" - :bounds - (new 'static 'vector :x -73728.0 :w 212992.0) - :version #x6 - ) - ) - ) - (set! (-> v1-38 jgeo) 0) - (set! (-> v1-38 janim) -1) - (set! (-> v1-38 mgeo 0) 1) - (set! (-> v1-38 lod-dist 0) 4095996000.0) - (set! *water-anim-training-lake-sg* v1-38) +(defskelgroup *water-anim-training-lake-sg* water-anim-training + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem -18 0 0 52) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-39 - (new 'static 'skeleton-group - :art-group-name "water-anim-darkcave" - :bounds (new 'static 'vector :w 77824.0) - :version #x6 - ) - ) - ) - (set! (-> v1-39 jgeo) 0) - (set! (-> v1-39 janim) -1) - (set! (-> v1-39 mgeo 0) 1) - (set! (-> v1-39 lod-dist 0) 4095996000.0) - (set! *water-anim-darkcave-water-with-crystal-sg* v1-39) +(defskelgroup *water-anim-darkcave-water-with-crystal-sg* water-anim-darkcave + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 19) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-40 - (new 'static 'skeleton-group - :art-group-name "water-anim-rolling" - :bounds - (new 'static 'vector :x -40960.0 :w 286720.0) - :version #x6 - ) - ) - ) - (set! (-> v1-40 jgeo) 0) - (set! (-> v1-40 janim) -1) - (set! (-> v1-40 mgeo 0) 1) - (set! (-> v1-40 lod-dist 0) 4095996000.0) - (set! *water-anim-rolling-water-back-sg* v1-40) +(defskelgroup *water-anim-rolling-water-back-sg* water-anim-rolling + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem -10 0 0 70) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-41 - (new 'static 'skeleton-group - :art-group-name "water-anim-rolling" - :bounds (new 'static 'vector :w 286720.0) - :version #x6 - ) - ) - ) - (set! (-> v1-41 jgeo) 2) - (set! (-> v1-41 janim) -1) - (set! (-> v1-41 mgeo 0) 3) - (set! (-> v1-41 lod-dist 0) 4095996000.0) - (set! *water-anim-rolling-water-front-sg* v1-41) +(defskelgroup *water-anim-rolling-water-front-sg* water-anim-rolling + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 0 0 0 70) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-42 - (new 'static 'skeleton-group - :art-group-name "water-anim-finalboss" - :bounds (new 'static 'vector :w 77824.0) - :version #x6 - ) - ) - ) - (set! (-> v1-42 jgeo) 0) - (set! (-> v1-42 janim) -1) - (set! (-> v1-42 mgeo 0) 1) - (set! (-> v1-42 lod-dist 0) 4095996000.0) - (set! *water-anim-finalboss-dark-eco-pool-sg* v1-42) +(defskelgroup *water-anim-finalboss-dark-eco-pool-sg* water-anim-finalboss + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 19) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-43 - (new 'static 'skeleton-group - :art-group-name "water-anim-lavatube" - :bounds - (new 'static 'vector :y -28672.0 :w 102400.0) - :version #x6 - ) - ) - ) - (set! (-> v1-43 jgeo) 0) - (set! (-> v1-43 janim) -1) - (set! (-> v1-43 mgeo 0) 1) - (set! (-> v1-43 lod-dist 0) 4095996000.0) - (set! *water-anim-lavatube-energy-lava-sg* v1-43) +(defskelgroup *water-anim-lavatube-energy-lava-sg* water-anim-lavatube + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 -7 0 25) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-44 - (new 'static 'skeleton-group - :art-group-name "water-anim-village1" - :bounds - (new 'static 'vector :x -61440.0 :w 110592.0) - :version #x6 - ) - ) - ) - (set! (-> v1-44 jgeo) 0) - (set! (-> v1-44 janim) -1) - (set! (-> v1-44 mgeo 0) 1) - (set! (-> v1-44 lod-dist 0) 4095996000.0) - (set! *water-anim-village1-rice-paddy-sg* v1-44) +(defskelgroup *water-anim-village1-rice-paddy-sg* water-anim-village1 + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem -15 0 0 27) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-45 - (new 'static 'skeleton-group - :art-group-name "water-anim-village1" - :bounds (new 'static 'vector :w 18432.0) - :version #x6 - ) - ) - ) - (set! (-> v1-45 jgeo) 6) - (set! (-> v1-45 janim) -1) - (set! (-> v1-45 mgeo 0) 7) - (set! (-> v1-45 lod-dist 0) 4095996000.0) - (set! *water-anim-village1-fountain-sg* v1-45) +(defskelgroup *water-anim-village1-fountain-sg* water-anim-village1 + 6 + -1 + ((7 (meters 999999))) + :bounds (static-spherem 0 0 0 4.5) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-46 - (new 'static 'skeleton-group - :art-group-name "water-anim-village1" - :bounds (new 'static 'vector :w 143360.0) - :version #x6 - ) - ) - ) - (set! (-> v1-46 jgeo) 2) - (set! (-> v1-46 janim) -1) - (set! (-> v1-46 mgeo 0) 3) - (set! (-> v1-46 lod-dist 0) 4095996000.0) - (set! *water-anim-village1-rice-paddy-mid-sg* v1-46) +(defskelgroup *water-anim-village1-rice-paddy-mid-sg* water-anim-village1 + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 0 0 0 35) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-47 - (new 'static 'skeleton-group - :art-group-name "water-anim-village1" - :bounds - (new 'static 'vector :x 24576.0 :z -69632.0 :w 81920.0) - :version #x6 - ) - ) - ) - (set! (-> v1-47 jgeo) 4) - (set! (-> v1-47 janim) -1) - (set! (-> v1-47 mgeo 0) 5) - (set! (-> v1-47 lod-dist 0) 4095996000.0) - (set! *water-anim-village1-rice-paddy-top-sg* v1-47) +(defskelgroup *water-anim-village1-rice-paddy-top-sg* water-anim-village1 + 4 + -1 + ((5 (meters 999999))) + :bounds (static-spherem 6 0 -17 20) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-48 - (new 'static 'skeleton-group - :art-group-name "water-anim-village2" - :bounds (new 'static 'vector :w 2867.2) - :version #x6 - ) - ) - ) - (set! (-> v1-48 jgeo) 0) - (set! (-> v1-48 janim) -1) - (set! (-> v1-48 mgeo 0) 1) - (set! (-> v1-48 lod-dist 0) 4095996000.0) - (set! *water-anim-village2-bucket-sg* v1-48) +(defskelgroup *water-anim-village2-bucket-sg* water-anim-village2 + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 0.7) + :longest-edge (meters 0) ) ;; definition of type water-anim-look diff --git a/test/decompiler/reference/levels/finalboss/final-door_REF.gc b/test/decompiler/reference/levels/finalboss/final-door_REF.gc index e983aab266..851298bbba 100644 --- a/test/decompiler/reference/levels/finalboss/final-door_REF.gc +++ b/test/decompiler/reference/levels/finalboss/final-door_REF.gc @@ -64,56 +64,30 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "power-left" - :bounds - (new 'static 'vector :y 45056.0 :w 49152.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *power-left-sg* v1-2) +(defskelgroup *power-left-sg* power-left + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 11 0 12) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "power-right" - :bounds - (new 'static 'vector :y 45056.0 :w 49152.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 2) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *power-right-sg* v1-3) +(defskelgroup *power-right-sg* power-right + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 11 0 12) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "powercellalt" - :bounds (new 'static 'vector :w 8192.0) - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 2) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 4095996000.0) - (set! *powercellalt-sg* v1-4) +(defskelgroup *powercellalt-sg* powercellalt + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc b/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc index 0e6fc58745..9a0f22ce01 100644 --- a/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc +++ b/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc @@ -54,21 +54,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "green-eco-lurker" - :bounds (new 'static 'vector :w 24371.2) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *green-eco-lurker-sg* v1-2) +(defskelgroup *green-eco-lurker-sg* green-eco-lurker + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 5.95) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for symbol *green-eco-lurker-nav-enemy-info*, type nav-enemy-info diff --git a/test/decompiler/reference/levels/finalboss/light-eco_REF.gc b/test/decompiler/reference/levels/finalboss/light-eco_REF.gc index 5b97f3e035..55fc7d09bb 100644 --- a/test/decompiler/reference/levels/finalboss/light-eco_REF.gc +++ b/test/decompiler/reference/levels/finalboss/light-eco_REF.gc @@ -80,37 +80,21 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "light-eco" - :bounds (new 'static 'vector :w 36864.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *light-eco-big-sg* v1-2) +(defskelgroup *light-eco-big-sg* light-eco + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 9) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "light-eco" - :bounds (new 'static 'vector :w 6144.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 3) - (set! (-> v1-3 janim) -1) - (set! (-> v1-3 mgeo 0) 4) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *light-eco-small-sg* v1-3) +(defskelgroup *light-eco-small-sg* light-eco + 3 + -1 + ((4 (meters 999999))) + :bounds (static-spherem 0 0 0 1.5) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc index 9187cbc370..e378b76e45 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc @@ -180,20 +180,10 @@ ) ;; failed to figure out what this is: -(let - ((v0-6 - (new 'static 'skeleton-group - :art-group-name "robotboss" - :bounds - (new 'static 'vector :y -40960.0 :w 327680.0) - :longest-edge (meters 19.9) - :version #x6 - ) - ) - ) - (set! (-> v0-6 jgeo) 0) - (set! (-> v0-6 janim) 2) - (set! (-> v0-6 mgeo 0) 1) - (set! (-> v0-6 lod-dist 0) 4095996000.0) - (set! *robotboss-sg* v0-6) +(defskelgroup *robotboss-sg* robotboss + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -10 0 80) + :longest-edge (meters 19.9) ) diff --git a/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc index 91ce91b1e2..acd788a6d5 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc @@ -2,22 +2,12 @@ (in-package goal) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "medres-snowback" - :bounds - (new 'static 'vector :x -1474560.0 :y 409600.0 :z 409600.0 :w 1556480.0) - :longest-edge (meters 0.01) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *med-res-snow1-sg* v1-0) +(defskelgroup *med-res-snow1-sg* medres-snowback + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem -360 100 100 380) + :longest-edge (meters 0.01) ) ;; failed to figure out what this is: @@ -147,21 +137,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-4 - (new 'static 'skeleton-group - :art-group-name "ecoclaw" - :bounds - (new 'static 'vector :y 8192.0 :w 36864.0) - :version #x6 - ) - ) - ) - (set! (-> v1-4 jgeo) 0) - (set! (-> v1-4 janim) 2) - (set! (-> v1-4 mgeo 0) 1) - (set! (-> v1-4 lod-dist 0) 4095996000.0) - (set! *ecoclaw-sg* v1-4) +(defskelgroup *ecoclaw-sg* ecoclaw + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 9) + :longest-edge (meters 0) ) ;; definition for function ecoclaw-beam-particle-callback @@ -507,20 +488,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-10 - (new 'static 'skeleton-group - :art-group-name "silodoor" - :bounds (new 'static 'vector :w 102400.0) - :version #x6 - ) - ) - ) - (set! (-> v1-10 jgeo) 0) - (set! (-> v1-10 janim) 2) - (set! (-> v1-10 mgeo 0) 1) - (set! (-> v1-10 lod-dist 0) 4095996000.0) - (set! *silodoor-sg* v1-10) +(defskelgroup *silodoor-sg* silodoor + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 25) + :longest-edge (meters 0) ) ;; failed to figure out what this is: @@ -773,20 +746,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-17 - (new 'static 'skeleton-group - :art-group-name "finalbosscam" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-17 jgeo) 0) - (set! (-> v1-17 janim) 2) - (set! (-> v1-17 mgeo 0) 1) - (set! (-> v1-17 lod-dist 0) 4095996000.0) - (set! *finalbosscam-sg* v1-17) +(defskelgroup *finalbosscam-sg* finalbosscam + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; definition for function robotboss-manipy-trans-hook diff --git a/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc index 4de2d5edf9..672464dbfd 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc @@ -298,21 +298,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "darkecobomb" - :bounds - (new 'static 'vector :y 14336.0 :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 2) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 4095996000.0) - (set! *darkecobomb-sg* v1-8) +(defskelgroup *darkecobomb-sg* darkecobomb + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 3.5 0 6) + :longest-edge (meters 0) ) ;; failed to figure out what this is: @@ -912,20 +903,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-17 - (new 'static 'skeleton-group - :art-group-name "greenshot" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-17 jgeo) 0) - (set! (-> v1-17 janim) 2) - (set! (-> v1-17 mgeo 0) 1) - (set! (-> v1-17 lod-dist 0) 4095996000.0) - (set! *greenshot-sg* v1-17) +(defskelgroup *greenshot-sg* greenshot + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; failed to figure out what this is: @@ -1124,20 +1107,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-22 - (new 'static 'skeleton-group - :art-group-name "redring" - :bounds (new 'static 'vector :w 163840.0) - :version #x6 - ) - ) - ) - (set! (-> v1-22 jgeo) 0) - (set! (-> v1-22 janim) 2) - (set! (-> v1-22 mgeo 0) 1) - (set! (-> v1-22 lod-dist 0) 4095996000.0) - (set! *redring-sg* v1-22) +(defskelgroup *redring-sg* redring + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 40) + :longest-edge (meters 0) ) ;; definition for function redshot-trans diff --git a/test/decompiler/reference/levels/finalboss/robotboss_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss_REF.gc index c9fdbf6067..a77506947a 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss_REF.gc @@ -7,54 +7,30 @@ ) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "robotboss-blueeco" - :bounds (new 'static 'vector :w 819200.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *robotboss-blueeco-sg* v1-0) +(defskelgroup *robotboss-blueeco-sg* robotboss-blueeco + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 200) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "robotboss-redeco" - :bounds (new 'static 'vector :w 819200.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *robotboss-redeco-sg* v1-1) +(defskelgroup *robotboss-redeco-sg* robotboss-redeco + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 200) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "robotboss-yelloweco" - :bounds (new 'static 'vector :w 819200.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *robotboss-yelloweco-sg* v1-2) +(defskelgroup *robotboss-yelloweco-sg* robotboss-yelloweco + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 200) + :longest-edge (meters 0) ) ;; definition for function robotboss-cut-cam-exit diff --git a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc index d8df2d0865..7e67873106 100644 --- a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc +++ b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc @@ -19,21 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-firecanyon" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-firecanyon-sg* v1-1) +(defskelgroup *assistant-firecanyon-sg* assistant-firecanyon + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type assistant-firecanyon diff --git a/test/decompiler/reference/levels/flut_common/flutflut_REF.gc b/test/decompiler/reference/levels/flut_common/flutflut_REF.gc index 2b6ce57d25..e0f7a844c3 100644 --- a/test/decompiler/reference/levels/flut_common/flutflut_REF.gc +++ b/test/decompiler/reference/levels/flut_common/flutflut_REF.gc @@ -75,22 +75,14 @@ ) ;; failed to figure out what this is: -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "flut-saddle" - :bounds (new 'static 'vector :w 14336.0) - :version #x6 - :shadow 2 - :sort 1 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) -1) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 4095996000.0) - (set! *flutflut-sg* v1-5) +(defskelgroup *flutflut-sg* flut-saddle + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3.5) + :longest-edge (meters 0) + :shadow 2 + :sort 1 ) ;; definition for function flutflut-effect diff --git a/test/decompiler/reference/levels/intro/evilbro_REF.gc b/test/decompiler/reference/levels/intro/evilbro_REF.gc index 714503bc1b..626da5724f 100644 --- a/test/decompiler/reference/levels/intro/evilbro_REF.gc +++ b/test/decompiler/reference/levels/intro/evilbro_REF.gc @@ -21,21 +21,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "evilbro" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *evilbro-intro-sg* v1-1) +(defskelgroup *evilbro-intro-sg* evilbro + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type evilbro @@ -248,21 +240,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "evilsis" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 3) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *evilsis-intro-sg* v1-7) +(defskelgroup *evilsis-intro-sg* evilsis + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type evilsis diff --git a/test/decompiler/reference/levels/jungle/bouncer_REF.gc b/test/decompiler/reference/levels/jungle/bouncer_REF.gc index a5e701cb6f..ad9904e255 100644 --- a/test/decompiler/reference/levels/jungle/bouncer_REF.gc +++ b/test/decompiler/reference/levels/jungle/bouncer_REF.gc @@ -26,20 +26,12 @@ (method-set! springbox 12 (method-of-type process run-logic?)) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "bounceytarp" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *bouncer-sg* v1-2) +(defskelgroup *bouncer-sg* bounceytarp + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc b/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc index c3bbd52f9f..7a4a4d90f8 100644 --- a/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc +++ b/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc @@ -911,95 +911,49 @@ ) ;; failed to figure out what this is: -(let - ((v1-16 - (new 'static 'skeleton-group - :art-group-name "catch-fisha" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-16 jgeo) 0) - (set! (-> v1-16 janim) 2) - (set! (-> v1-16 mgeo 0) 1) - (set! (-> v1-16 lod-dist 0) 4095996000.0) - (set! *catch-fisha-sg* v1-16) +(defskelgroup *catch-fisha-sg* catch-fisha + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-17 - (new 'static 'skeleton-group - :art-group-name "catch-fishb" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-17 jgeo) 0) - (set! (-> v1-17 janim) 2) - (set! (-> v1-17 mgeo 0) 1) - (set! (-> v1-17 lod-dist 0) 4095996000.0) - (set! *catch-fishb-sg* v1-17) +(defskelgroup *catch-fishb-sg* catch-fishb + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-18 - (new 'static 'skeleton-group - :art-group-name "catch-fishc" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-18 jgeo) 0) - (set! (-> v1-18 janim) 2) - (set! (-> v1-18 mgeo 0) 1) - (set! (-> v1-18 lod-dist 0) 4095996000.0) - (set! *catch-fishc-sg* v1-18) +(defskelgroup *catch-fishc-sg* catch-fishc + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-19 - (new 'static 'skeleton-group - :art-group-name "fish-net" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-19 jgeo) 0) - (set! (-> v1-19 janim) 2) - (set! (-> v1-19 mgeo 0) 1) - (set! (-> v1-19 lod-dist 0) 4095996000.0) - (set! *fish-net-sg* v1-19) +(defskelgroup *fish-net-sg* fish-net + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-20 - (new 'static 'skeleton-group - :art-group-name "fisher" - :bounds - (new 'static 'vector :y -24576.0 :w 57344.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-20 jgeo) 0) - (set! (-> v1-20 janim) 6) - (set! (-> v1-20 mgeo 0) 1) - (set! (-> v1-20 lod-dist 0) 81920.0) - (set! (-> v1-20 mgeo 1) 2) - (set! (-> v1-20 lod-dist 1) 163840.0) - (set! (-> v1-20 mgeo 2) 3) - (set! (-> v1-20 lod-dist 2) 4095996000.0) - (set! *fisher-sg* v1-20) +(defskelgroup *fisher-sg* fisher + 0 + 6 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 -6 0 14) + :longest-edge (meters 0) + :shadow 4 ) ;; definition for method 52 of type fisher diff --git a/test/decompiler/reference/levels/jungle/hopper_REF.gc b/test/decompiler/reference/levels/jungle/hopper_REF.gc index 564494a421..50a37584e2 100644 --- a/test/decompiler/reference/levels/jungle/hopper_REF.gc +++ b/test/decompiler/reference/levels/jungle/hopper_REF.gc @@ -23,27 +23,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "hopper" - :bounds (new 'static 'vector :w 12288.0) - :max-lod 2 - :longest-edge (meters 1.0) - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *hopper-sg* v1-1) +(defskelgroup *hopper-sg* hopper + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 3) + :longest-edge (meters 1) + :shadow 4 ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/jungle/junglefish_REF.gc b/test/decompiler/reference/levels/jungle/junglefish_REF.gc index 134f3dc463..0bbe9fed83 100644 --- a/test/decompiler/reference/levels/jungle/junglefish_REF.gc +++ b/test/decompiler/reference/levels/jungle/junglefish_REF.gc @@ -19,26 +19,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "junglefish" - :bounds - (new 'static 'vector :y 4096.0 :w 6144.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *junglefish-sg* v1-1) +(defskelgroup *junglefish-sg* junglefish + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 1 0 1.5) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/jungle/junglesnake_REF.gc b/test/decompiler/reference/levels/jungle/junglesnake_REF.gc index 4a9b6cf038..4f2b463e83 100644 --- a/test/decompiler/reference/levels/jungle/junglesnake_REF.gc +++ b/test/decompiler/reference/levels/jungle/junglesnake_REF.gc @@ -2,22 +2,12 @@ (in-package goal) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "junglesnake" - :bounds - (new 'static 'vector :y 57344.0 :w 73728.0) - :longest-edge (meters 2.5) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *junglesnake-sg* v1-0) +(defskelgroup *junglesnake-sg* junglesnake + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 14 0 18) + :longest-edge (meters 2.5) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/jungleb/aphid_REF.gc b/test/decompiler/reference/levels/jungleb/aphid_REF.gc index 19b1cc7839..863f0fbb03 100644 --- a/test/decompiler/reference/levels/jungleb/aphid_REF.gc +++ b/test/decompiler/reference/levels/jungleb/aphid_REF.gc @@ -21,22 +21,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "aphid-lurker" - :bounds - (new 'static 'vector :y 8192.0 :w 8192.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *aphid-sg* v1-1) +(defskelgroup *aphid-sg* aphid-lurker + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 2) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for function aphid-invulnerable diff --git a/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc b/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc index dac65ee0b8..126dca1046 100644 --- a/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc +++ b/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc @@ -38,20 +38,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "plat-flip" - :bounds (new 'static 'vector :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *plat-flip-sg* v1-1) +(defskelgroup *plat-flip-sg* plat-flip + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc b/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc index 00ed4dfaee..1ce7078b80 100644 --- a/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc +++ b/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc @@ -19,21 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-lavatube-start" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-lavatube-start-sg* v1-1) +(defskelgroup *assistant-lavatube-start-sg* assistant-lavatube-start + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type assistant-lavatube-start diff --git a/test/decompiler/reference/levels/maincave/baby-spider_REF.gc b/test/decompiler/reference/levels/maincave/baby-spider_REF.gc index a08c004a49..c2c4b8004d 100644 --- a/test/decompiler/reference/levels/maincave/baby-spider_REF.gc +++ b/test/decompiler/reference/levels/maincave/baby-spider_REF.gc @@ -101,27 +101,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "baby-spider" - :bounds - (new 'static 'vector :y 4096.0 :w 9216.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 81920.0) - (set! (-> v1-2 mgeo 1) 2) - (set! (-> v1-2 lod-dist 1) 163840.0) - (set! (-> v1-2 mgeo 2) 3) - (set! (-> v1-2 lod-dist 2) 4095996000.0) - (set! *baby-spider-sg* v1-2) +(defskelgroup *baby-spider-sg* baby-spider + 0 + -1 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 1 0 2.25) + :longest-edge (meters 0) + :shadow 4 ) ;; definition for symbol *baby-spider-nav-enemy-info*, type nav-enemy-info diff --git a/test/decompiler/reference/levels/maincave/spiderwebs_REF.gc b/test/decompiler/reference/levels/maincave/spiderwebs_REF.gc index 2f0c7f050b..f714e16cc6 100644 --- a/test/decompiler/reference/levels/maincave/spiderwebs_REF.gc +++ b/test/decompiler/reference/levels/maincave/spiderwebs_REF.gc @@ -57,20 +57,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "spiderwebs" - :bounds (new 'static 'vector :w 14336.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *spiderwebs-sg* v1-2) +(defskelgroup *spiderwebs-sg* spiderwebs + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3.5) + :longest-edge (meters 0) ) ;; definition for function spiderwebs-default-event-handler diff --git a/test/decompiler/reference/levels/misty/bonelurker_REF.gc b/test/decompiler/reference/levels/misty/bonelurker_REF.gc index 281c501e4f..69fd9c50a8 100644 --- a/test/decompiler/reference/levels/misty/bonelurker_REF.gc +++ b/test/decompiler/reference/levels/misty/bonelurker_REF.gc @@ -21,27 +21,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "bonelurker" - :bounds - (new 'static 'vector :y 8192.0 :w 24576.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *bonelurker-sg* v1-1) +(defskelgroup *bonelurker-sg* bonelurker + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 2 0 6) + :longest-edge (meters 0) + :shadow 4 ) ;; definition for function bonelurker-set-small-bounds-sphere diff --git a/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc b/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc index b2e263780a..fb8d66e15e 100644 --- a/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc @@ -141,62 +141,31 @@ ) ;; failed to figure out what this is: -(let - ((v1-6 - (new 'static 'skeleton-group - :art-group-name "keg-conveyor" - :bounds - (new 'static 'vector :y -24576.0 :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-6 jgeo) 0) - (set! (-> v1-6 janim) 2) - (set! (-> v1-6 mgeo 0) 1) - (set! (-> v1-6 lod-dist 0) 4095996000.0) - (set! *keg-conveyor-sg* v1-6) +(defskelgroup *keg-conveyor-sg* keg-conveyor + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -6 0 8) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "keg-conveyor-paddle" - :bounds - (new 'static 'vector :y -24576.0 :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 2) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *keg-conveyor-paddle-sg* v1-7) +(defskelgroup *keg-conveyor-paddle-sg* keg-conveyor-paddle + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -6 0 8) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "keg" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 5) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 81920.0) - (set! (-> v1-8 mgeo 1) 2) - (set! (-> v1-8 lod-dist 1) 163840.0) - (set! (-> v1-8 mgeo 2) 3) - (set! (-> v1-8 lod-dist 2) 4095996000.0) - (set! *keg-sg* v1-8) +(defskelgroup *keg-sg* keg + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) ;; definition for function keg-update-smush diff --git a/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc b/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc index 65a58ec789..c0b6109d69 100644 --- a/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc @@ -25,25 +25,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "teetertotter" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *teetertotter-sg* v1-1) +(defskelgroup *teetertotter-sg* teetertotter + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) ;; definition for function target-on-end-of-teetertotter? diff --git a/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc b/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc index e5bfb78b11..05a02e41b4 100644 --- a/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc @@ -23,21 +23,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "silostep" - :bounds - (new 'static 'vector :y 8192.0 :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *silostep-sg* v1-1) +(defskelgroup *silostep-sg* silostep + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 8) + :longest-edge (meters 0) ) ;; failed to figure out what this is: @@ -276,23 +267,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-6 - (new 'static 'skeleton-group - :art-group-name "rounddoor" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-6 jgeo) 0) - (set! (-> v1-6 janim) 3) - (set! (-> v1-6 mgeo 0) 1) - (set! (-> v1-6 lod-dist 0) 81920.0) - (set! (-> v1-6 mgeo 1) 2) - (set! (-> v1-6 lod-dist 1) 4095996000.0) - (set! *rounddoor-sg* v1-6) +(defskelgroup *rounddoor-sg* rounddoor + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) ;; definition of type rounddoor diff --git a/test/decompiler/reference/levels/misty/muse_REF.gc b/test/decompiler/reference/levels/misty/muse_REF.gc index 46a3f016a0..b754aba6cb 100644 --- a/test/decompiler/reference/levels/misty/muse_REF.gc +++ b/test/decompiler/reference/levels/misty/muse_REF.gc @@ -239,22 +239,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "muse" - :bounds - (new 'static 'vector :y 8192.0 :w 12288.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) 3) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 4095996000.0) - (set! *muse-sg* v1-5) +(defskelgroup *muse-sg* muse + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 3) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 44 of type muse diff --git a/test/decompiler/reference/levels/misty/sidekick-human_REF.gc b/test/decompiler/reference/levels/misty/sidekick-human_REF.gc index b0d736c200..e6bb81cf25 100644 --- a/test/decompiler/reference/levels/misty/sidekick-human_REF.gc +++ b/test/decompiler/reference/levels/misty/sidekick-human_REF.gc @@ -1459,89 +1459,49 @@ ) ;; failed to figure out what this is: -(let - ((v1-46 - (new 'static 'skeleton-group - :art-group-name "sidekick-human" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-46 jgeo) 0) - (set! (-> v1-46 janim) 3) - (set! (-> v1-46 mgeo 0) 1) - (set! (-> v1-46 lod-dist 0) 4095996000.0) - (set! *sidekick-human-sg* v1-46) +(defskelgroup *sidekick-human-sg* sidekick-human + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; failed to figure out what this is: -(let - ((v1-47 - (new 'static 'skeleton-group - :art-group-name "darkecocan" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-47 jgeo) 0) - (set! (-> v1-47 janim) 4) - (set! (-> v1-47 mgeo 0) 1) - (set! (-> v1-47 lod-dist 0) 4095996000.0) - (set! *darkecocan-sg* v1-47) +(defskelgroup *darkecocan-sg* darkecocan + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-48 - (new 'static 'skeleton-group - :art-group-name "darkecocan" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-48 jgeo) 2) - (set! (-> v1-48 janim) 4) - (set! (-> v1-48 mgeo 0) 3) - (set! (-> v1-48 lod-dist 0) 4095996000.0) - (set! *darkecocan-glow-sg* v1-48) +(defskelgroup *darkecocan-glow-sg* darkecocan + 2 + 4 + ((3 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-49 - (new 'static 'skeleton-group - :art-group-name "evilbro" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-49 jgeo) 0) - (set! (-> v1-49 janim) 3) - (set! (-> v1-49 mgeo 0) 1) - (set! (-> v1-49 lod-dist 0) 4095996000.0) - (set! *evilbro-sg* v1-49) +(defskelgroup *evilbro-sg* evilbro + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-50 - (new 'static 'skeleton-group - :art-group-name "evilsis" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-50 jgeo) 0) - (set! (-> v1-50 janim) 3) - (set! (-> v1-50 mgeo 0) 1) - (set! (-> v1-50 lod-dist 0) 4095996000.0) - (set! *evilsis-sg* v1-50) +(defskelgroup *evilsis-sg* evilsis + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) ;; definition of type army-info diff --git a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc index 2f881e4d7b..fb0aa5de00 100644 --- a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc +++ b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc @@ -2,21 +2,12 @@ (in-package goal) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "ogrecam" - :bounds - (new 'static 'vector :y 8192.0 :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) -1) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *ogrecam-sg* v1-0) +(defskelgroup *ogrecam-sg* ogrecam + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 2 0 6) + :longest-edge (meters 0) ) ;; definition of type plunger-lurker @@ -41,26 +32,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "plunger-lurker" - :bounds - (new 'static 'vector :x 8192.0 :y 16384.0 :w 49152.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 4) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 81920.0) - (set! (-> v1-2 mgeo 1) 2) - (set! (-> v1-2 lod-dist 1) 163840.0) - (set! (-> v1-2 mgeo 2) 3) - (set! (-> v1-2 lod-dist 2) 4095996000.0) - (set! *plunger-lurker-sg* v1-2) +(defskelgroup *plunger-lurker-sg* plunger-lurker + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 2 4 0 12) + :longest-edge (meters 0) ) ;; failed to figure out what this is: @@ -684,28 +661,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "flying-lurker" - :bounds - (new 'static 'vector :y 8192.0 :w 24576.0) - :max-lod 2 - :longest-edge (meters 2.3) - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 5) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 81920.0) - (set! (-> v1-8 mgeo 1) 2) - (set! (-> v1-8 lod-dist 1) 163840.0) - (set! (-> v1-8 mgeo 2) 3) - (set! (-> v1-8 lod-dist 2) 4095996000.0) - (set! *flying-lurker-sg* v1-8) +(defskelgroup *flying-lurker-sg* flying-lurker + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 2 0 6) + :longest-edge (meters 2.3) + :shadow 4 ) ;; definition for method 20 of type flying-lurker diff --git a/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc b/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc index bc835cd91a..369da3bf28 100644 --- a/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc +++ b/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc @@ -284,22 +284,10 @@ ) ;; failed to figure out what this is: -(let - ((v0-4 - (new 'static 'skeleton-group - :art-group-name "balloon" - :bounds - (new 'static 'vector :y 6963.2 :w 12288.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v0-4 jgeo) 0) - (set! (-> v0-4 janim) 3) - (set! (-> v0-4 mgeo 0) 1) - (set! (-> v0-4 lod-dist 0) 81920.0) - (set! (-> v0-4 mgeo 1) 2) - (set! (-> v0-4 lod-dist 1) 4095996000.0) - (set! *balloon-sg* v0-4) +(defskelgroup *balloon-sg* balloon + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 1.7 0 3) + :longest-edge (meters 0) ) diff --git a/test/decompiler/reference/levels/snow/yeti_REF.gc b/test/decompiler/reference/levels/snow/yeti_REF.gc index 2d71a65735..6c9b74a542 100644 --- a/test/decompiler/reference/levels/snow/yeti_REF.gc +++ b/test/decompiler/reference/levels/snow/yeti_REF.gc @@ -55,22 +55,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "yeti" - :bounds - (new 'static 'vector :y 3072.0 :w 15974.4) - :longest-edge (meters 1.3) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *yeti-sg* v1-2) +(defskelgroup *yeti-sg* yeti + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 0.75 0 3.9) + :longest-edge (meters 1.3) ) ;; definition for symbol *yeti-nav-enemy-info*, type nav-enemy-info diff --git a/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc b/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc index 85a7927aec..5846f1299e 100644 --- a/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc +++ b/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc @@ -19,21 +19,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "qbert-plat-on" - :bounds - (new 'static 'vector :y -8192.0 :w 18432.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *qbert-plat-on-sg* v1-1) +(defskelgroup *qbert-plat-on-sg* qbert-plat-on + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -2 0 4.5) + :longest-edge (meters 0) ) ;; definition of type qbert-plat @@ -64,21 +55,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "qbert-plat" - :bounds - (new 'static 'vector :y -8192.0 :w 18432.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 2) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *qbert-plat-sg* v1-3) +(defskelgroup *qbert-plat-sg* qbert-plat + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -2 0 4.5) + :longest-edge (meters 0) ) ;; definition for symbol *qbert-plat-constants*, type rigid-body-platform-constants diff --git a/test/decompiler/reference/levels/sunken/square-platform_REF.gc b/test/decompiler/reference/levels/sunken/square-platform_REF.gc index 4af62925a9..9776870996 100644 --- a/test/decompiler/reference/levels/sunken/square-platform_REF.gc +++ b/test/decompiler/reference/levels/sunken/square-platform_REF.gc @@ -42,24 +42,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "square-platform" - :bounds - (new 'static 'vector :y -45056.0 :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 4095996000.0) - (set! *square-platform-sg* v1-1) +(defskelgroup *square-platform-sg* square-platform + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 -11 0 8) + :longest-edge (meters 0) ) ;; definition of type square-platform-button diff --git a/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc b/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc index 9718abed51..f0d074c4dd 100644 --- a/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc +++ b/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc @@ -77,57 +77,30 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sunkenfisha" - :bounds - (new 'static 'vector :y 6144.0 :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sunkenfisha-red-yellow-sg* v1-1) +(defskelgroup *sunkenfisha-red-yellow-sg* sunkenfisha + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 0 1.5 0 2.5) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sunkenfisha" - :bounds - (new 'static 'vector :y 6144.0 :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 2) - (set! (-> v1-2 janim) -1) - (set! (-> v1-2 mgeo 0) 3) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sunkenfisha-yellow-blue-sg* v1-2) +(defskelgroup *sunkenfisha-yellow-blue-sg* sunkenfisha + 2 + -1 + ((3 (meters 999999))) + :bounds (static-spherem 0 1.5 0 2.5) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "sunkenfisha" - :bounds - (new 'static 'vector :y 6144.0 :w 10240.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 4) - (set! (-> v1-3 janim) -1) - (set! (-> v1-3 mgeo 0) 5) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *sunkenfisha-yellow-eye-sg* v1-3) +(defskelgroup *sunkenfisha-yellow-eye-sg* sunkenfisha + 4 + -1 + ((5 (meters 999999))) + :bounds (static-spherem 0 1.5 0 2.5) + :longest-edge (meters 0) ) ;; definition for method 22 of type sunkenfisha diff --git a/test/decompiler/reference/levels/sunken/wall-plat_REF.gc b/test/decompiler/reference/levels/sunken/wall-plat_REF.gc index 0a46180e00..0c2d6f9f39 100644 --- a/test/decompiler/reference/levels/sunken/wall-plat_REF.gc +++ b/test/decompiler/reference/levels/sunken/wall-plat_REF.gc @@ -30,21 +30,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "wall-plat" - :bounds - (new 'static 'vector :x 4096.0 :y -8192.0 :w 26624.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) -1) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *wall-plat-sg* v1-1) +(defskelgroup *wall-plat-sg* wall-plat + 0 + -1 + ((1 (meters 999999))) + :bounds (static-spherem 1 -2 0 6.5) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc b/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc index 24e7600f0b..b0d857b827 100644 --- a/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc +++ b/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc @@ -120,20 +120,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "wedge-plat" - :bounds (new 'static 'vector :w 24576.0) - :version #x6 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 2) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *wedge-plat-sg* v1-3) +(defskelgroup *wedge-plat-sg* wedge-plat + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 6) + :longest-edge (meters 0) ) ;; definition for method 27 of type wedge-plat @@ -404,20 +396,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "wedge-plat-outer" - :bounds (new 'static 'vector :w 32768.0) - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 2) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *wedge-plat-outer-sg* v1-7) +(defskelgroup *wedge-plat-outer-sg* wedge-plat-outer + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) ;; definition for method 27 of type wedge-plat-outer diff --git a/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc b/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc index c691880678..37467fdaed 100644 --- a/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc @@ -220,25 +220,12 @@ swamp-bat-slave-event-handler ) ;; failed to figure out what this is: -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "swamp-bat" - :bounds (new 'static 'vector :w 10240.0) - :max-lod 2 - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 4) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 81920.0) - (set! (-> v1-7 mgeo 1) 2) - (set! (-> v1-7 lod-dist 1) 163840.0) - (set! (-> v1-7 mgeo 2) 3) - (set! (-> v1-7 lod-dist 2) 4095996000.0) - (set! *swamp-bat-slave-sg* v1-7) +(defskelgroup *swamp-bat-slave-sg* swamp-bat + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) ) ;; definition for function swamp-bat-slave-get-new-path diff --git a/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc b/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc index 1017d357ad..530f6347dd 100644 --- a/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc @@ -1731,60 +1731,30 @@ swamp-rat-nest-default-event-handler ) ;; failed to figure out what this is: -(let - ((v1-51 - (new 'static 'skeleton-group - :art-group-name "swamp-rat-nest" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-51 jgeo) 0) - (set! (-> v1-51 janim) 3) - (set! (-> v1-51 mgeo 0) 1) - (set! (-> v1-51 lod-dist 0) 81920.0) - (set! (-> v1-51 mgeo 1) 2) - (set! (-> v1-51 lod-dist 1) 4095996000.0) - (set! *swamp-rat-nest-dummy-a-sg* v1-51) +(defskelgroup *swamp-rat-nest-dummy-a-sg* swamp-rat-nest + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-52 - (new 'static 'skeleton-group - :art-group-name "swamp-rat-nest" - :bounds (new 'static 'vector :w 32768.0) - :max-lod 1 - :version #x6 - ) - ) - ) - (set! (-> v1-52 jgeo) 4) - (set! (-> v1-52 janim) 7) - (set! (-> v1-52 mgeo 0) 5) - (set! (-> v1-52 lod-dist 0) 81920.0) - (set! (-> v1-52 mgeo 1) 6) - (set! (-> v1-52 lod-dist 1) 4095996000.0) - (set! *swamp-rat-nest-dummy-b-sg* v1-52) +(defskelgroup *swamp-rat-nest-dummy-b-sg* swamp-rat-nest + 4 + 7 + ((5 (meters 20)) (6 (meters 999999))) + :bounds (static-spherem 0 0 0 8) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-53 - (new 'static 'skeleton-group - :art-group-name "swamp-rat-nest" - :bounds (new 'static 'vector :w 20480.0) - :version #x6 - ) - ) - ) - (set! (-> v1-53 jgeo) 8) - (set! (-> v1-53 janim) 11) - (set! (-> v1-53 mgeo 0) 9) - (set! (-> v1-53 lod-dist 0) 4095996000.0) - (set! *swamp-rat-nest-dummy-c-sg* v1-53) +(defskelgroup *swamp-rat-nest-dummy-c-sg* swamp-rat-nest + 8 + 11 + ((9 (meters 999999))) + :bounds (static-spherem 0 0 0 5) + :longest-edge (meters 0) ) ;; definition for method 20 of type swamp-rat-nest-dummy-a diff --git a/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc b/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc index b33f6e885f..a574a8d37c 100644 --- a/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc @@ -41,27 +41,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "swamp-rat" - :bounds - (new 'static 'vector :y 4096.0 :w 16384.0) - :max-lod 2 - :longest-edge (meters 1.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *swamp-rat-sg* v1-1) +(defskelgroup *swamp-rat-sg* swamp-rat + 0 + 4 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 1 0 4) + :longest-edge (meters 1) ) ;; definition for method 44 of type swamp-rat diff --git a/test/decompiler/reference/levels/village1/assistant_REF.gc b/test/decompiler/reference/levels/village1/assistant_REF.gc index d18f924447..b37cd60abd 100644 --- a/test/decompiler/reference/levels/village1/assistant_REF.gc +++ b/test/decompiler/reference/levels/village1/assistant_REF.gc @@ -21,21 +21,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant" - :bounds (new 'static 'vector :w 8192.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-sg* v1-1) +(defskelgroup *assistant-sg* assistant + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 52 of type assistant diff --git a/test/decompiler/reference/levels/village1/explorer_REF.gc b/test/decompiler/reference/levels/village1/explorer_REF.gc index 8877eb8c5f..a5517ca10f 100644 --- a/test/decompiler/reference/levels/village1/explorer_REF.gc +++ b/test/decompiler/reference/levels/village1/explorer_REF.gc @@ -19,21 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "explorer" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *explorer-sg* v1-1) +(defskelgroup *explorer-sg* explorer + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 52 of type explorer diff --git a/test/decompiler/reference/levels/village1/farmer_REF.gc b/test/decompiler/reference/levels/village1/farmer_REF.gc index 432e883a1e..7c21a477b6 100644 --- a/test/decompiler/reference/levels/village1/farmer_REF.gc +++ b/test/decompiler/reference/levels/village1/farmer_REF.gc @@ -19,24 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "farmer" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 1 - :version #x6 - :shadow 3 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 4095996000.0) - (set! *farmer-sg* v1-1) +(defskelgroup *farmer-sg* farmer + 0 + 4 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 3 ) ;; definition for method 32 of type farmer diff --git a/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc b/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc index 1edbb1f241..7f87b43ed2 100644 --- a/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc +++ b/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc @@ -718,59 +718,30 @@ ) ;; failed to figure out what this is: -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "fishermans-boat" - :bounds - (new 'static 'vector :y 12288.0 :w 61440.0) - :max-lod 1 - :longest-edge (meters 7.3) - :version #x6 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 3) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 81920.0) - (set! (-> v1-7 mgeo 1) 2) - (set! (-> v1-7 lod-dist 1) 4095996000.0) - (set! *fishermans-boat-sg* v1-7) +(defskelgroup *fishermans-boat-sg* fishermans-boat + 0 + 3 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 3 0 15) + :longest-edge (meters 7.3) ) ;; failed to figure out what this is: -(let - ((v1-8 - (new 'static 'skeleton-group - :art-group-name "evilbro" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-8 jgeo) 0) - (set! (-> v1-8 janim) 3) - (set! (-> v1-8 mgeo 0) 1) - (set! (-> v1-8 lod-dist 0) 4095996000.0) - (set! *fb-evilbro-sg* v1-8) +(defskelgroup *fb-evilbro-sg* evilbro + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) ;; failed to figure out what this is: -(let - ((v1-9 - (new 'static 'skeleton-group - :art-group-name "evilsis" - :bounds (new 'static 'vector :w 4096.0) - :version #x6 - ) - ) - ) - (set! (-> v1-9 jgeo) 0) - (set! (-> v1-9 janim) 3) - (set! (-> v1-9 mgeo 0) 1) - (set! (-> v1-9 lod-dist 0) 4095996000.0) - (set! *fb-evilsis-sg* v1-9) +(defskelgroup *fb-evilsis-sg* evilsis + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 1) + :longest-edge (meters 0) ) ;; definition for method 23 of type fishermans-boat diff --git a/test/decompiler/reference/levels/village1/sage_REF.gc b/test/decompiler/reference/levels/village1/sage_REF.gc index a091b04900..bb1bab9fa5 100644 --- a/test/decompiler/reference/levels/village1/sage_REF.gc +++ b/test/decompiler/reference/levels/village1/sage_REF.gc @@ -23,21 +23,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sage" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 4) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sage-sg* v1-1) +(defskelgroup *sage-sg* sage + 0 + 4 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type sage diff --git a/test/decompiler/reference/levels/village1/yakow_REF.gc b/test/decompiler/reference/levels/village1/yakow_REF.gc index 9e985f2673..1cf3c16ba4 100644 --- a/test/decompiler/reference/levels/village1/yakow_REF.gc +++ b/test/decompiler/reference/levels/village1/yakow_REF.gc @@ -2,20 +2,12 @@ (in-package goal) ;; failed to figure out what this is: -(let - ((v1-0 - (new 'static 'skeleton-group - :art-group-name "village1cam" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-0 jgeo) 0) - (set! (-> v1-0 janim) 2) - (set! (-> v1-0 mgeo 0) 1) - (set! (-> v1-0 lod-dist 0) 4095996000.0) - (set! *village1cam-sg* v1-0) +(defskelgroup *village1cam-sg* village1cam + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; definition for function yakow-cam @@ -211,26 +203,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-5 - (new 'static 'skeleton-group - :art-group-name "yakow" - :bounds - (new 'static 'vector :y 10240.0 :w 18022.4) - :max-lod 1 - :longest-edge (meters 1.3) - :version #x6 - :shadow 3 - ) - ) - ) - (set! (-> v1-5 jgeo) 0) - (set! (-> v1-5 janim) 4) - (set! (-> v1-5 mgeo 0) 1) - (set! (-> v1-5 lod-dist 0) 81920.0) - (set! (-> v1-5 mgeo 1) 2) - (set! (-> v1-5 lod-dist 1) 4095996000.0) - (set! *yakow-sg* v1-5) +(defskelgroup *yakow-sg* yakow + 0 + 4 + ((1 (meters 20)) (2 (meters 999999))) + :bounds (static-spherem 0 2.5 0 4.4) + :longest-edge (meters 1.3) + :shadow 3 ) ;; definition for function yakow-default-event-handler diff --git a/test/decompiler/reference/levels/village2/assistant-village2_REF.gc b/test/decompiler/reference/levels/village2/assistant-village2_REF.gc index 9a1a34ff08..ddadcf29df 100644 --- a/test/decompiler/reference/levels/village2/assistant-village2_REF.gc +++ b/test/decompiler/reference/levels/village2/assistant-village2_REF.gc @@ -50,43 +50,22 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-village2" - :bounds (new 'static 'vector :w 8192.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *assistant-village2-sg* v1-1) +(defskelgroup *assistant-village2-sg* assistant-village2 + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 2) + :longest-edge (meters 0) + :shadow 4 ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "jaws" - :bounds (new 'static 'vector :w 1024.0) - :version #x6 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 2) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *jaws-sg* v1-2) +(defskelgroup *jaws-sg* jaws + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 0.25) + :longest-edge (meters 0) ) ;; definition for method 52 of type assistant-levitator diff --git a/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc b/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc index d886605dde..64b13807a2 100644 --- a/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc +++ b/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc @@ -19,20 +19,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "flutflut-bluehut" - :bounds (new 'static 'vector :w 13312.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *flutflut-bluehut-sg* v1-1) +(defskelgroup *flutflut-bluehut-sg* flutflut-bluehut + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 3.25) + :longest-edge (meters 0) ) ;; definition for method 32 of type flutflut-bluehut diff --git a/test/decompiler/reference/levels/village2/gambler_REF.gc b/test/decompiler/reference/levels/village2/gambler_REF.gc index d03b0995e0..7456deaeda 100644 --- a/test/decompiler/reference/levels/village2/gambler_REF.gc +++ b/test/decompiler/reference/levels/village2/gambler_REF.gc @@ -19,26 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "gambler" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *gambler-sg* v1-1) +(defskelgroup *gambler-sg* gambler + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) ;; definition for method 32 of type gambler diff --git a/test/decompiler/reference/levels/village2/geologist_REF.gc b/test/decompiler/reference/levels/village2/geologist_REF.gc index dcb5807a4b..55680abe10 100644 --- a/test/decompiler/reference/levels/village2/geologist_REF.gc +++ b/test/decompiler/reference/levels/village2/geologist_REF.gc @@ -19,26 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "geologist" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *geologist-sg* v1-1) +(defskelgroup *geologist-sg* geologist + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) ;; definition for method 32 of type geologist diff --git a/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc b/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc index c52701bac4..834a92d4ef 100644 --- a/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc +++ b/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc @@ -48,21 +48,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "sage-bluehut" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 3) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *sage-bluehut-sg* v1-2) +(defskelgroup *sage-bluehut-sg* sage-bluehut + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type sage-bluehut diff --git a/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc b/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc index 93bbf5f699..49e9d7c9db 100644 --- a/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc +++ b/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc @@ -29,21 +29,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sunken-elevator" - :bounds - (new 'static 'vector :y -4096.0 :w 27033.6) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sunken-elevator-sg* v1-1) +(defskelgroup *sunken-elevator-sg* sunken-elevator + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 -1 0 6.6) + :longest-edge (meters 0) ) ;; definition for method 30 of type sunken-elevator diff --git a/test/decompiler/reference/levels/village2/warrior_REF.gc b/test/decompiler/reference/levels/village2/warrior_REF.gc index 86ac36f694..62666949d2 100644 --- a/test/decompiler/reference/levels/village2/warrior_REF.gc +++ b/test/decompiler/reference/levels/village2/warrior_REF.gc @@ -19,26 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "warrior" - :bounds (new 'static 'vector :w 16384.0) - :max-lod 2 - :version #x6 - :shadow 4 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 5) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 81920.0) - (set! (-> v1-1 mgeo 1) 2) - (set! (-> v1-1 lod-dist 1) 163840.0) - (set! (-> v1-1 mgeo 2) 3) - (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *warrior-sg* v1-1) +(defskelgroup *warrior-sg* warrior + 0 + 5 + ((1 (meters 20)) (2 (meters 40)) (3 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 4 ) ;; definition for method 52 of type warrior diff --git a/test/decompiler/reference/levels/village3/assistant-village3_REF.gc b/test/decompiler/reference/levels/village3/assistant-village3_REF.gc index 6923b65231..98bd5f6e84 100644 --- a/test/decompiler/reference/levels/village3/assistant-village3_REF.gc +++ b/test/decompiler/reference/levels/village3/assistant-village3_REF.gc @@ -19,21 +19,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "assistant-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *assistant-village3-sg* v1-1) +(defskelgroup *assistant-village3-sg* assistant-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 52 of type assistant-villagec diff --git a/test/decompiler/reference/levels/village3/miners_REF.gc b/test/decompiler/reference/levels/village3/miners_REF.gc index 75b34a337b..fe7702bffe 100644 --- a/test/decompiler/reference/levels/village3/miners_REF.gc +++ b/test/decompiler/reference/levels/village3/miners_REF.gc @@ -49,21 +49,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "minertall" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 3) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *minertall-sg* v1-2) +(defskelgroup *minertall-sg* minertall + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 52 of type minertall @@ -175,21 +167,13 @@ ) ;; failed to figure out what this is: -(let - ((v1-7 - (new 'static 'skeleton-group - :art-group-name "minershort" - :bounds (new 'static 'vector :w 10240.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-7 jgeo) 0) - (set! (-> v1-7 janim) 3) - (set! (-> v1-7 mgeo 0) 1) - (set! (-> v1-7 lod-dist 0) 4095996000.0) - (set! *minershort-sg* v1-7) +(defskelgroup *minershort-sg* minershort + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 2.5) + :longest-edge (meters 0) + :shadow 2 ) ;; failed to figure out what this is: @@ -922,20 +906,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-18 - (new 'static 'skeleton-group - :art-group-name "cavegem" - :bounds (new 'static 'vector :w 36864.0) - :version #x6 - ) - ) - ) - (set! (-> v1-18 jgeo) 0) - (set! (-> v1-18 janim) 2) - (set! (-> v1-18 mgeo 0) 1) - (set! (-> v1-18 lod-dist 0) 4095996000.0) - (set! *cavegem-sg* v1-18) +(defskelgroup *cavegem-sg* cavegem + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 9) + :longest-edge (meters 0) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/levels/village3/sage-village3_REF.gc b/test/decompiler/reference/levels/village3/sage-village3_REF.gc index 382ba4c802..976bde0ded 100644 --- a/test/decompiler/reference/levels/village3/sage-village3_REF.gc +++ b/test/decompiler/reference/levels/village3/sage-village3_REF.gc @@ -25,57 +25,33 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "sage-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 3) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *sage-village3-sg* v1-1) +(defskelgroup *sage-village3-sg* sage-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; failed to figure out what this is: -(let - ((v1-2 - (new 'static 'skeleton-group - :art-group-name "evilbro-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-2 jgeo) 0) - (set! (-> v1-2 janim) 3) - (set! (-> v1-2 mgeo 0) 1) - (set! (-> v1-2 lod-dist 0) 4095996000.0) - (set! *evilbro-village3-sg* v1-2) +(defskelgroup *evilbro-village3-sg* evilbro-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; failed to figure out what this is: -(let - ((v1-3 - (new 'static 'skeleton-group - :art-group-name "evilsis-village3" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - :shadow 2 - ) - ) - ) - (set! (-> v1-3 jgeo) 0) - (set! (-> v1-3 janim) 3) - (set! (-> v1-3 mgeo 0) 1) - (set! (-> v1-3 lod-dist 0) 4095996000.0) - (set! *evilsis-village3-sg* v1-3) +(defskelgroup *evilsis-village3-sg* evilsis-village3 + 0 + 3 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) + :shadow 2 ) ;; definition for method 32 of type sage-villagec diff --git a/test/decompiler/reference/levels/village_common/oracle_REF.gc b/test/decompiler/reference/levels/village_common/oracle_REF.gc index 1f0d200959..1a886de0e2 100644 --- a/test/decompiler/reference/levels/village_common/oracle_REF.gc +++ b/test/decompiler/reference/levels/village_common/oracle_REF.gc @@ -27,20 +27,12 @@ ) ;; failed to figure out what this is: -(let - ((v1-1 - (new 'static 'skeleton-group - :art-group-name "oracle" - :bounds (new 'static 'vector :w 16384.0) - :version #x6 - ) - ) - ) - (set! (-> v1-1 jgeo) 0) - (set! (-> v1-1 janim) 2) - (set! (-> v1-1 mgeo 0) 1) - (set! (-> v1-1 lod-dist 0) 4095996000.0) - (set! *oracle-sg* v1-1) +(defskelgroup *oracle-sg* oracle + 0 + 2 + ((1 (meters 999999))) + :bounds (static-spherem 0 0 0 4) + :longest-edge (meters 0) ) ;; definition for method 32 of type oracle