[decomp] add import statements for art groups (#1372)

* new code

* update goal_src and remove all_imports

* update reference

* add decompiler list of imports

* deduplicate and move below decomp begins
This commit is contained in:
water111
2022-05-23 18:53:02 -04:00
committed by GitHub
parent 4ff05077eb
commit 148f52876a
310 changed files with 1674 additions and 411 deletions
+2 -2
View File
@@ -3466,7 +3466,7 @@ Form* try_rewrite_as_pppointer_to_process(CondNoElseElement* value,
// )
// (ja-group :chan 0)
Form* try_rewrite_as_ja_group(CondNoElseElement* value,
FormStack& stack,
FormStack& /*stack*/,
FormPool& pool,
const Env& env) {
if (value->entries.size() != 1) {
@@ -4152,7 +4152,7 @@ FormElement* ConditionElement::make_equal_check_generic(const Env& env,
macro_args.push_back(source_forms.at(1));
auto jagroup = source_forms.at(0)->try_as_element<GenericElement>();
for (int i = 1; i < jagroup->elts().size(); ++i) {
for (size_t i = 1; i < jagroup->elts().size(); ++i) {
macro_args.push_back(jagroup->elts().at(i));
}
return pool.alloc_element<GenericElement>(
+6 -2
View File
@@ -111,7 +111,10 @@ class ObjectFileDB {
void ir2_rewrite_inline_asm_instructions(int seg, ObjectFileData& data);
void ir2_insert_anonymous_functions(int seg, ObjectFileData& data);
void ir2_symbol_definition_map(ObjectFileData& data);
void ir2_write_results(const std::string& output_dir, const Config& config, ObjectFileData& data);
void ir2_write_results(const std::string& output_dir,
const Config& config,
const std::vector<std::string>& imports,
ObjectFileData& data);
void ir2_do_segment_analysis_phase1(int seg, const Config& config, ObjectFileData& data);
void ir2_do_segment_analysis_phase2(int seg, const Config& config, ObjectFileData& data);
void ir2_setup_labels(const Config& config, ObjectFileData& data);
@@ -119,7 +122,8 @@ class ObjectFileDB {
std::string ir2_to_file(ObjectFileData& data, const Config& config);
std::string ir2_function_to_string(ObjectFileData& data, Function& function, int seg);
std::string ir2_final_out(ObjectFileData& data,
const std::unordered_set<std::string>& skip_functions = {});
const std::vector<std::string>& imports,
const std::unordered_set<std::string>& skip_functions);
std::string process_tpages(TextureDB& tex_db);
std::string process_game_count_file();
+13 -5
View File
@@ -92,13 +92,19 @@ void ObjectFileDB::analyze_functions_ir2(
ir2_symbol_definition_map(data);
const auto& imports_it = config.import_deps_by_file.find(data.to_unique_name());
std::vector<std::string> imports;
if (imports_it != config.import_deps_by_file.end()) {
imports = imports_it->second;
}
if (!output_dir.empty()) {
ir2_write_results(output_dir, config, data);
ir2_write_results(output_dir, config, imports, data);
} else {
if (!skip_functions.empty()) {
data.output_with_skips = ir2_final_out(data, skip_functions);
data.output_with_skips = ir2_final_out(data, imports, skip_functions);
}
data.full_output = ir2_final_out(data);
data.full_output = ir2_final_out(data, imports, {});
}
for_each_function_def_order_in_obj(data, [&](Function& f, int) { f.ir2 = {}; });
@@ -641,6 +647,7 @@ void ObjectFileDB::ir2_insert_anonymous_functions(int seg, ObjectFileData& data)
void ObjectFileDB::ir2_write_results(const std::string& output_dir,
const Config& config,
const std::vector<std::string>& imports,
ObjectFileData& obj) {
if (obj.linked_data.has_any_functions()) {
// todo
@@ -649,7 +656,7 @@ void ObjectFileDB::ir2_write_results(const std::string& output_dir,
auto file_name = file_util::combine_path(output_dir, obj.to_unique_name() + "_ir2.asm");
file_util::write_text_file(file_name, file_text);
auto final = ir2_final_out(obj);
auto final = ir2_final_out(obj, imports, {});
auto final_name = file_util::combine_path(output_dir, obj.to_unique_name() + "_disasm.gc");
file_util::write_text_file(final_name, final);
}
@@ -1022,6 +1029,7 @@ bool ObjectFileDB::lookup_function_type(const FunctionName& name,
}
std::string ObjectFileDB::ir2_final_out(ObjectFileData& data,
const std::vector<std::string>& imports,
const std::unordered_set<std::string>& skip_functions) {
if (data.obj_version == 3) {
std::string result;
@@ -1029,7 +1037,7 @@ std::string ObjectFileDB::ir2_final_out(ObjectFileData& data,
result += "(in-package goal)\n\n";
ASSERT(data.linked_data.functions_by_seg.at(TOP_LEVEL_SEGMENT).size() == 1);
auto top_level = data.linked_data.functions_by_seg.at(TOP_LEVEL_SEGMENT).at(0);
result += write_from_top_level(top_level, dts, data.linked_data, skip_functions);
result += write_from_top_level(top_level, dts, data.linked_data, imports, skip_functions);
result += "\n\n";
return result;
} else {
+13 -2
View File
@@ -227,6 +227,7 @@ std::string write_from_top_level_form(Form* top_form,
const DecompilerTypeSystem& dts,
const LinkedObjectFile& file,
const std::unordered_set<std::string>& skip_functions,
const std::vector<std::string>& imports,
const Env& env) {
std::vector<FormElement*> forms = top_form->elts();
ASSERT(!forms.empty());
@@ -238,6 +239,15 @@ std::string write_from_top_level_form(Form* top_form,
}
std::string result;
// import deps:
for (const auto& import : imports) {
result += fmt::format("(import \"{}\")\n", import);
}
if (!imports.empty()) {
result += "\n";
}
// local vars:
auto var_dec = env.local_var_type_list(top_form, 0);
if (var_dec.local_vars) {
@@ -443,7 +453,7 @@ std::string write_from_top_level_form(Form* top_form,
result += ";; this part is debug only\n";
result += "(when *debug-segment*\n";
result += write_from_top_level_form(entry.body, dts, file, skip_functions, env);
result += write_from_top_level_form(entry.body, dts, file, skip_functions, imports, env);
result += ")\n";
}
@@ -480,6 +490,7 @@ std::string write_from_top_level_form(Form* top_form,
std::string write_from_top_level(const Function& top_level,
const DecompilerTypeSystem& dts,
const LinkedObjectFile& file,
const std::vector<std::string>& imports,
const std::unordered_set<std::string>& skip_functions) {
auto top_form = top_level.ir2.top_form;
if (!top_form) {
@@ -499,6 +510,6 @@ std::string write_from_top_level(const Function& top_level,
return ";; ERROR: top level has no register use analysis. Cannot decompile.\n\n";
}
return write_from_top_level_form(top_form, dts, file, skip_functions, env);
return write_from_top_level_form(top_form, dts, file, skip_functions, imports, env);
}
} // namespace decompiler
+2 -1
View File
@@ -14,7 +14,8 @@ std::string final_defun_out(const Function& func,
std::string write_from_top_level(const Function& top_level,
const DecompilerTypeSystem& dts,
const LinkedObjectFile& file,
const std::unordered_set<std::string>& skip_functions = {});
const std::vector<std::string>& imports,
const std::unordered_set<std::string>& skip_functions);
goos::Object get_arg_list_for_function(const Function& func, const Env& env);
goos::Object final_output_lambda(const Function& function);
+4
View File
@@ -232,6 +232,10 @@ Config read_config_file(const std::string& path_to_config_file,
config.art_groups_by_function =
art_info_json.at("functions").get<std::unordered_map<std::string, std::string>>();
auto import_deps = read_json_file_from_config(cfg, "import_deps_file");
config.import_deps_by_file =
import_deps.get<std::unordered_map<std::string, std::vector<std::string>>>();
return config;
}
+2
View File
@@ -141,6 +141,8 @@ struct Config {
std::unordered_map<std::string, std::string> art_groups_by_file;
std::unordered_map<std::string, std::string> art_groups_by_function;
std::unordered_map<std::string, std::vector<std::string>> import_deps_by_file;
};
Config read_config_file(const std::string& path_to_config_file,
@@ -77,6 +77,7 @@
"hacks_file": "decompiler/config/jak1_ntsc_black_label/hacks.jsonc",
"inputs_file": "decompiler/config/jak1_ntsc_black_label/inputs.jsonc",
"art_info_file": "decompiler/config/jak1_ntsc_black_label/art_info.jsonc",
"import_deps_file": "decompiler/config/jak1_ntsc_black_label/import_deps.jsonc",
// optional: a predetermined object file name map from a file.
// this will make decompilation naming consistent even if you only run on some objects.
@@ -0,0 +1,660 @@
{
"jungle-obs": [
"goal_src/import/maindoor-ag.gc",
"goal_src/import/junglecam-ag.gc",
"goal_src/import/precurbridge-ag.gc",
"goal_src/import/sidedoor-ag.gc",
"goal_src/import/towertop-ag.gc",
"goal_src/import/logtrap-ag.gc",
"goal_src/import/lurkerm-tall-sail-ag.gc",
"goal_src/import/medres-firecanyon-ag.gc",
"goal_src/import/lurkerm-piston-ag.gc",
"goal_src/import/accordian-ag.gc"
],
"assistant-village2": [
"goal_src/import/jaws-ag.gc",
"goal_src/import/assistant-village2-ag.gc"
],
"floating-launcher": [
"goal_src/import/floating-launcher-ag.gc"
],
"jungle-mirrors": [
"goal_src/import/periscope-ag.gc",
"goal_src/import/reflector-mirror-ag.gc"
],
"citb-drop-plat": [
"goal_src/import/citb-drop-plat-ag.gc"
],
"rolling-robber": [
"goal_src/import/robber-ag.gc"
],
"balloonlurker": [
"goal_src/import/balloonlurker-ag.gc"
],
"racer": [
"goal_src/import/racer-ag.gc"
],
"mistycannon": [
"goal_src/import/sack-ag.gc",
"goal_src/import/mistycannon-ag.gc"
],
"beach-obs": [
"goal_src/import/ecoventrock-ag.gc",
"goal_src/import/beachcam-ag.gc",
"goal_src/import/windmill-one-ag.gc",
"goal_src/import/kickrock-ag.gc",
"goal_src/import/harvester-ag.gc",
"goal_src/import/flutflutegg-ag.gc",
"goal_src/import/grottopole-ag.gc",
"goal_src/import/flutflut-ag.gc",
"goal_src/import/bladeassm-ag.gc"
],
"snow-flutflut-obs": [
"goal_src/import/snow-button-ag.gc",
"goal_src/import/flutflut-plat-med-ag.gc",
"goal_src/import/flutflut-plat-small-ag.gc",
"goal_src/import/flutflut-plat-large-ag.gc"
],
"snow-ball": [
"goal_src/import/snow-ball-ag.gc"
],
"sun-iris-door": [
"goal_src/import/sun-iris-door-ag.gc"
],
"bouncer": [
"goal_src/import/bounceytarp-ag.gc"
],
"swamp-blimp": [
"goal_src/import/swamp-tetherrock-ag.gc",
"goal_src/import/swamp-rope-ag.gc",
"goal_src/import/swamp-tetherrock-explode-ag.gc",
"goal_src/import/precursor-arm-ag.gc",
"goal_src/import/swamp-blimp-ag.gc"
],
"village-obs": [
"goal_src/import/windmill-sail-ag.gc",
"goal_src/import/medres-beach3-ag.gc",
"goal_src/import/mayorgears-ag.gc",
"goal_src/import/medres-village11-ag.gc",
"goal_src/import/revcycleprop-ag.gc",
"goal_src/import/medres-jungle2-ag.gc",
"goal_src/import/revcycle-ag.gc",
"goal_src/import/medres-misty-ag.gc",
"goal_src/import/sagesail-ag.gc",
"goal_src/import/windspinner-ag.gc",
"goal_src/import/medres-jungle1-ag.gc",
"goal_src/import/medres-village12-ag.gc",
"goal_src/import/hutlamp-ag.gc",
"goal_src/import/medres-jungle-ag.gc",
"goal_src/import/medres-village13-ag.gc",
"goal_src/import/medres-beach2-ag.gc",
"goal_src/import/villa-starfish-ag.gc",
"goal_src/import/medres-training-ag.gc",
"goal_src/import/medres-beach-ag.gc",
"goal_src/import/reflector-middle-ag.gc",
"goal_src/import/medres-beach1-ag.gc"
],
"swamp-bat": [
"goal_src/import/swamp-bat-ag.gc"
],
"crates": [
"goal_src/import/crate-ag.gc"
],
"lurkerpuppy": [
"goal_src/import/lurkerpuppy-ag.gc"
],
"light-eco": [
"goal_src/import/light-eco-ag.gc"
],
"voicebox": [
"goal_src/import/speaker-ag.gc"
],
"green-eco-lurker": [
"goal_src/import/green-eco-lurker-ag.gc"
],
"helix-water": [
"goal_src/import/helix-slide-door-ag.gc",
"goal_src/import/helix-button-ag.gc"
],
"billy": [
"goal_src/import/farthy-snack-ag.gc",
"goal_src/import/billy-ag.gc",
"goal_src/import/billy-sidekick-ag.gc"
],
"snow-ram": [
"goal_src/import/ram-ag.gc"
],
"blocking-plane": [
"goal_src/import/ef-plane-ag.gc"
],
"target-util": [
"goal_src/import/eichar-ag.gc"
],
"beach-rocks": [
"goal_src/import/lrocklrg-ag.gc"
],
"sunken-obs": [
"goal_src/import/seaweed-ag.gc",
"goal_src/import/sunkencam-ag.gc",
"goal_src/import/side-to-side-plat-ag.gc"
],
"qbert-plat": [
"goal_src/import/qbert-plat-ag.gc",
"goal_src/import/qbert-plat-on-ag.gc"
],
"sun-exit-chamber": [
"goal_src/import/exit-chamber-ag.gc",
"goal_src/import/blue-eco-charger-ag.gc",
"goal_src/import/blue-eco-charger-orb-ag.gc"
],
"mother-spider": [
"goal_src/import/mother-spider-ag.gc"
],
"darkvine": [
"goal_src/import/darkvine-ag.gc"
],
"sidekick": [
"goal_src/import/sidekick-ag.gc"
],
"kermit": [
"goal_src/import/kermit-ag.gc"
],
"firecanyon-obs": [
"goal_src/import/crate-darkeco-cluster-ag.gc",
"goal_src/import/spike-ag.gc"
],
"orbit-plat": [
"goal_src/import/orbit-plat-ag.gc",
"goal_src/import/orbit-plat-bottom-ag.gc"
],
"fishermans-boat": [
"goal_src/import/evilbro-ag.gc",
"goal_src/import/fishermans-boat-ag.gc",
"goal_src/import/evilsis-ag.gc"
],
"driller-lurker": [
"goal_src/import/driller-lurker-ag.gc"
],
"sidekick-human": [
"goal_src/import/darkecocan-ag.gc",
"goal_src/import/sidekick-human-ag.gc",
"goal_src/import/evilbro-ag.gc",
"goal_src/import/evilsis-ag.gc"
],
"misty-conveyor": [
"goal_src/import/keg-conveyor-ag.gc",
"goal_src/import/keg-conveyor-paddle-ag.gc",
"goal_src/import/keg-ag.gc"
],
"snow-ram-boss": [
"goal_src/import/ram-boss-ag.gc"
],
"junglefish": [
"goal_src/import/junglefish-ag.gc"
],
"swamp-obs": [
"goal_src/import/swamp-rock-ag.gc",
"goal_src/import/swamp-spike-ag.gc",
"goal_src/import/swampcam-ag.gc",
"goal_src/import/tar-plat-ag.gc",
"goal_src/import/balance-plat-ag.gc"
],
"snow-bumper": [
"goal_src/import/snow-bumper-ag.gc"
],
"darkcave-obs": [
"goal_src/import/cavecrystal-ag.gc"
],
"junglesnake": [
"goal_src/import/junglesnake-ag.gc"
],
"evilbro": [
"goal_src/import/evilbro-ag.gc",
"goal_src/import/evilsis-ag.gc"
],
"bully": [
"goal_src/import/bully-ag.gc"
],
"square-platform": [
"goal_src/import/square-platform-ag.gc"
],
"dark-crystal": [
"goal_src/import/dark-crystal-ag.gc"
],
"sage-village3": [
"goal_src/import/evilsis-village3-ag.gc",
"goal_src/import/sage-village3-ag.gc",
"goal_src/import/evilbro-village3-ag.gc"
],
"yakow": [
"goal_src/import/village1cam-ag.gc",
"goal_src/import/yakow-ag.gc"
],
"plat-button": [
"goal_src/import/plat-button-ag.gc"
],
"hud-classes": [
"goal_src/import/fuelcell-naked-ag.gc"
],
"misty-obs": [
"goal_src/import/breakaway-right-ag.gc",
"goal_src/import/boatpaddle-ag.gc",
"goal_src/import/breakaway-mid-ag.gc",
"goal_src/import/mis-bone-platform-ag.gc",
"goal_src/import/breakaway-left-ag.gc",
"goal_src/import/windturbine-ag.gc",
"goal_src/import/mistycam-ag.gc",
"goal_src/import/mis-bone-bridge-ag.gc"
],
"rolling-obs": [
"goal_src/import/rollingcam-ag.gc",
"goal_src/import/pusher-ag.gc",
"goal_src/import/happy-plant-ag.gc",
"goal_src/import/dark-plant-ag.gc",
"goal_src/import/rolling-start-ag.gc"
],
"aphid": [
"goal_src/import/aphid-lurker-ag.gc"
],
"plat-eco": [
"goal_src/import/plat-eco-ag.gc"
],
"assistant": [
"goal_src/import/assistant-ag.gc"
],
"flutflut-bluehut": [
"goal_src/import/flutflut-bluehut-ag.gc"
],
"explorer": [
"goal_src/import/explorer-ag.gc"
],
"rolling-lightning-mole": [
"goal_src/import/lightning-mole-ag.gc"
],
"plat": [
"goal_src/import/plat-sunken-ag.gc",
"goal_src/import/plat-ag.gc",
"goal_src/import/plat-jungleb-ag.gc"
],
"flutflut": [
"goal_src/import/flut-saddle-ag.gc"
],
"training-obs": [
"goal_src/import/scarecrow-b-ag.gc",
"goal_src/import/pontoonfive-ag.gc",
"goal_src/import/trainingcam-ag.gc",
"goal_src/import/scarecrow-a-ag.gc",
"goal_src/import/jng-iris-door-ag.gc"
],
"snow-obs": [
"goal_src/import/snowcam-ag.gc",
"goal_src/import/snow-fort-gate-ag.gc",
"goal_src/import/snow-eggtop-ag.gc",
"goal_src/import/snow-spatula-ag.gc",
"goal_src/import/snow-switch-ag.gc",
"goal_src/import/snow-gears-ag.gc",
"goal_src/import/snowpusher-ag.gc",
"goal_src/import/snow-log-ag.gc"
],
"citadel-obs": [
"goal_src/import/citb-generator-ag.gc",
"goal_src/import/citb-launcher-ag.gc",
"goal_src/import/citb-button-ag.gc",
"goal_src/import/citadelcam-ag.gc",
"goal_src/import/citb-hose-ag.gc",
"goal_src/import/citb-robotboss-ag.gc",
"goal_src/import/citb-coil-ag.gc",
"goal_src/import/citb-arm-shoulder-ag.gc",
"goal_src/import/citb-iris-door-ag.gc",
"goal_src/import/citb-disc-ag.gc",
"goal_src/import/citb-arm-ag.gc"
],
"citadel-sages": [
"goal_src/import/green-sagecage-ag.gc",
"goal_src/import/yellowsage-ag.gc",
"goal_src/import/redsage-ag.gc",
"goal_src/import/evilbro-citadel-ag.gc",
"goal_src/import/evilsis-citadel-ag.gc",
"goal_src/import/citb-sagecage-ag.gc",
"goal_src/import/bluesage-ag.gc"
],
"lurkercrab": [
"goal_src/import/lurkercrab-ag.gc"
],
"muse": [
"goal_src/import/muse-ag.gc"
],
"puffer": [
"goal_src/import/puffer-ag.gc"
],
"robotboss-misc": [
"goal_src/import/silodoor-ag.gc",
"goal_src/import/ecoclaw-ag.gc",
"goal_src/import/finalbosscam-ag.gc"
],
"sage-finalboss": [
"goal_src/import/plat-eco-finalboss-ag.gc",
"goal_src/import/green-sagecage-ag.gc",
"goal_src/import/jak-white-ag.gc",
"goal_src/import/robotboss-cinematic-ag.gc"
],
"target-racer-h": [
"goal_src/import/balloon-ag.gc"
],
"gambler": [
"goal_src/import/gambler-ag.gc"
],
"lavatube-obs": [
"goal_src/import/lavafallsewerb-ag.gc",
"goal_src/import/lavashortcut-ag.gc",
"goal_src/import/lavabase-ag.gc",
"goal_src/import/lavafallsewera-ag.gc",
"goal_src/import/chainmine-ag.gc",
"goal_src/import/lavafall-ag.gc",
"goal_src/import/lavaballoon-ag.gc",
"goal_src/import/darkecobarrel-ag.gc",
"goal_src/import/lavayellowtarp-ag.gc"
],
"assistant-firecanyon": [
"goal_src/import/assistant-firecanyon-ag.gc"
],
"sharkey": [
"goal_src/import/sharkey-ag.gc"
],
"bonelurker": [
"goal_src/import/bonelurker-ag.gc"
],
"pelican": [
"goal_src/import/pelican-ag.gc"
],
"warrior": [
"goal_src/import/warrior-ag.gc"
],
"maincave-obs": [
"goal_src/import/caveelevator-ag.gc",
"goal_src/import/cavespatulatwo-ag.gc",
"goal_src/import/cavetrapdoor-ag.gc",
"goal_src/import/maincavecam-ag.gc",
"goal_src/import/cavecrusher-ag.gc",
"goal_src/import/cavespatula-darkcave-ag.gc"
],
"fisher": [
"goal_src/import/fish-net-ag.gc",
"goal_src/import/fisher-ag.gc",
"goal_src/import/catch-fisha-ag.gc",
"goal_src/import/catch-fishb-ag.gc",
"goal_src/import/catch-fishc-ag.gc"
],
"villagep-obs": [
"goal_src/import/warp-gate-switch-ag.gc",
"goal_src/import/village-cam-ag.gc"
],
"citb-bunny": [
"goal_src/import/citb-bunny-ag.gc"
],
"flying-lurker": [
"goal_src/import/ogrecam-ag.gc",
"goal_src/import/plunger-lurker-ag.gc",
"goal_src/import/flying-lurker-ag.gc"
],
"shover": [
"goal_src/import/shover-ag.gc"
],
"ice-cube": [
"goal_src/import/ice-cube-ag.gc",
"goal_src/import/ice-cube-break-ag.gc"
],
"baby-spider": [
"goal_src/import/baby-spider-ag.gc"
],
"minecart": [
"goal_src/import/minecartsteel-ag.gc"
],
"bird-lady": [
"goal_src/import/bird-lady-ag.gc"
],
"spider-egg": [
"goal_src/import/spider-egg-ag.gc"
],
"wall-plat": [
"goal_src/import/wall-plat-ag.gc"
],
"oracle": [
"goal_src/import/oracle-ag.gc"
],
"basebutton": [
"goal_src/import/generic-button-ag.gc"
],
"miners": [
"goal_src/import/minershort-ag.gc",
"goal_src/import/cavegem-ag.gc",
"goal_src/import/minertall-ag.gc"
],
"farmer": [
"goal_src/import/farmer-ag.gc"
],
"rolling-race-ring": [
"goal_src/import/race-ring-ag.gc"
],
"quicksandlurker": [
"goal_src/import/quicksandlurker-ag.gc"
],
"misty-warehouse": [
"goal_src/import/silostep-ag.gc",
"goal_src/import/rounddoor-ag.gc"
],
"yeti": [
"goal_src/import/yeti-ag.gc"
],
"hopper": [
"goal_src/import/hopper-ag.gc"
],
"target-death": [
"goal_src/import/deathcam-ag.gc"
],
"spiderwebs": [
"goal_src/import/spiderwebs-ag.gc"
],
"misty-teetertotter": [
"goal_src/import/teetertotter-ag.gc"
],
"village2-obs": [
"goal_src/import/pontoonfive-ag.gc",
"goal_src/import/allpontoons-ag.gc",
"goal_src/import/medres-village2-ag.gc",
"goal_src/import/exit-chamber-dummy-ag.gc",
"goal_src/import/village2cam-ag.gc",
"goal_src/import/fireboulder-ag.gc",
"goal_src/import/ogreboss-village2-ag.gc",
"goal_src/import/ceilingflag-ag.gc",
"goal_src/import/medres-rolling1-ag.gc",
"goal_src/import/medres-rolling-ag.gc",
"goal_src/import/pontoonten-ag.gc"
],
"plant-boss": [
"goal_src/import/plant-boss-ag.gc"
],
"snow-bunny": [
"goal_src/import/snow-bunny-ag.gc"
],
"sunken-elevator": [
"goal_src/import/sunken-elevator-ag.gc"
],
"sage": [
"goal_src/import/sage-ag.gc"
],
"robotboss-h": [
"goal_src/import/robotboss-ag.gc"
],
"geologist": [
"goal_src/import/geologist-ag.gc"
],
"village3-obs": [
"goal_src/import/medres-ogre-ag.gc",
"goal_src/import/medres-finalboss-ag.gc",
"goal_src/import/pistons-ag.gc",
"goal_src/import/gondola-ag.gc",
"goal_src/import/medres-ogre2-ag.gc",
"goal_src/import/medres-ogre3-ag.gc",
"goal_src/import/gondolacables-ag.gc"
],
"double-lurker": [
"goal_src/import/double-lurker-ag.gc",
"goal_src/import/double-lurker-top-ag.gc"
],
"ogreboss": [
"goal_src/import/ogreboss-ag.gc"
],
"swamp-rat": [
"goal_src/import/swamp-rat-ag.gc"
],
"sculptor": [
"goal_src/import/sculptor-muse-ag.gc",
"goal_src/import/sculptor-ag.gc"
],
"seagull": [
"goal_src/import/seagull-ag.gc"
],
"mayor": [
"goal_src/import/mayor-ag.gc"
],
"final-door": [
"goal_src/import/power-left-ag.gc",
"goal_src/import/power-right-ag.gc",
"goal_src/import/powercellalt-ag.gc"
],
"assistant-lavatube": [
"goal_src/import/assistant-lavatube-start-ag.gc"
],
"launcherdoor": [
"goal_src/import/launcherdoor-maincave-ag.gc",
"goal_src/import/launcherdoor-ag.gc"
],
"title-obs": [
"goal_src/import/logo-cam-ag.gc",
"goal_src/import/logo-black-ag.gc",
"goal_src/import/logo-ag.gc",
"goal_src/import/logo-volumes-ag.gc",
"goal_src/import/ndi-cam-ag.gc",
"goal_src/import/ndi-ag.gc",
"goal_src/import/ndi-volumes-ag.gc"
],
"whirlpool": [
"goal_src/import/whirlpool-ag.gc"
],
"lurkerworm": [
"goal_src/import/lurkerworm-ag.gc"
],
"collectables": [
"goal_src/import/buzzer-ag.gc",
"goal_src/import/ecovalve-ag.gc",
"goal_src/import/money-ag.gc",
"goal_src/import/fuel-cell-ag.gc"
],
"water-anim": [
"goal_src/import/water-anim-maincave-ag.gc",
"goal_src/import/water-anim-village3-ag.gc",
"goal_src/import/water-anim-finalboss-ag.gc",
"goal_src/import/water-anim-maincave-water-ag.gc",
"goal_src/import/water-anim-sunken-ag.gc",
"goal_src/import/water-anim-lavatube-ag.gc",
"goal_src/import/water-anim-robocave-ag.gc",
"goal_src/import/water-anim-jungle-ag.gc",
"goal_src/import/water-anim-ogre-ag.gc",
"goal_src/import/water-anim-training-ag.gc",
"goal_src/import/water-anim-darkcave-ag.gc",
"goal_src/import/water-anim-village1-ag.gc",
"goal_src/import/water-anim-rolling-ag.gc",
"goal_src/import/water-anim-misty-ag.gc",
"goal_src/import/water-anim-sunken-dark-eco-ag.gc",
"goal_src/import/water-anim-village2-ag.gc"
],
"ropebridge": [
"goal_src/import/vil3-bridge-36-ag.gc",
"goal_src/import/ropebridge-36-ag.gc",
"goal_src/import/ropebridge-32-ag.gc",
"goal_src/import/ropebridge-52-ag.gc",
"goal_src/import/snow-bridge-36-ag.gc",
"goal_src/import/ropebridge-70-ag.gc"
],
"robotboss": [
"goal_src/import/robotboss-redeco-ag.gc",
"goal_src/import/robotboss-blueeco-ag.gc",
"goal_src/import/robotboss-yelloweco-ag.gc"
],
"steam-cap": [
"goal_src/import/steam-cap-ag.gc"
],
"ogre-obs": [
"goal_src/import/ogre-step-ag.gc",
"goal_src/import/tntbarrel-ag.gc",
"goal_src/import/ogre-bridge-ag.gc",
"goal_src/import/shortcut-boulder-ag.gc",
"goal_src/import/medres-snow-ag.gc",
"goal_src/import/ogre-bridgeend-ag.gc",
"goal_src/import/ogre-isle-ag.gc"
],
"assistant-village3": [
"goal_src/import/assistant-village3-ag.gc"
],
"babak": [
"goal_src/import/babak-ag.gc"
],
"lavatube-energy": [
"goal_src/import/energyball-ag.gc",
"goal_src/import/energybase-ag.gc",
"goal_src/import/energyhub-ag.gc",
"goal_src/import/energyarm-ag.gc",
"goal_src/import/energydoor-ag.gc"
],
"mother-spider-egg": [
"goal_src/import/spider-egg-ag.gc"
],
"plat-flip": [
"goal_src/import/plat-flip-ag.gc"
],
"assistant-citadel": [
"goal_src/import/assistant-lavatube-end-ag.gc"
],
"bird-lady-beach": [
"goal_src/import/bird-lady-beach-ag.gc"
],
"orb-cache": [
"goal_src/import/orb-cache-top-ag.gc"
],
"robotboss-weapon": [
"goal_src/import/darkecobomb-ag.gc",
"goal_src/import/greenshot-ag.gc",
"goal_src/import/redring-ag.gc"
],
"citb-plat": [
"goal_src/import/citb-exit-plat-ag.gc",
"goal_src/import/plat-eco-citb-ag.gc",
"goal_src/import/plat-citb-ag.gc",
"goal_src/import/citb-stopbox-ag.gc",
"goal_src/import/citb-firehose-ag.gc",
"goal_src/import/citb-rotatebox-ag.gc",
"goal_src/import/citb-chain-plat-ag.gc",
"goal_src/import/citb-donut-ag.gc"
],
"gnawer": [
"goal_src/import/gnawer-ag.gc"
],
"jungleb-obs": [
"goal_src/import/eggtop-ag.gc",
"goal_src/import/jng-iris-door-ag.gc"
],
"swamp-rat-nest": [
"goal_src/import/swamp-rat-nest-ag.gc"
],
"wedge-plats": [
"goal_src/import/wedge-plat-outer-ag.gc",
"goal_src/import/wedge-plat-ag.gc"
],
"sunken-fish": [
"goal_src/import/sunkenfisha-ag.gc"
],
"sage-bluehut": [
"goal_src/import/sage-bluehut-ag.gc"
]
}
+2 -5
View File
@@ -516,10 +516,7 @@ void handle_frag(const std::string& debug_name,
* Build OpenGL index list from a single GIF packet.
* TODO: should check we aren't putting in x x R x x R
*/
std::vector<u32> index_list_from_packet(u32 vtx_ptr,
u32 nloop,
const MercMemory& memory,
const std::vector<MercUnpackedVtx>& vertices) {
std::vector<u32> index_list_from_packet(u32 vtx_ptr, u32 nloop, const MercMemory& memory) {
std::vector<u32> result;
u32 prev_vtx = UINT32_MAX;
@@ -799,7 +796,7 @@ ConvertedMercEffect convert_merc_effect(const MercEffect& input_effect,
for (size_t i = first_draw_to_update; i < result.draws.size(); i++) {
auto& draw = result.draws[i];
draw.indices = index_list_from_packet(draw.vtx_offset, draw.vtx_nloop,
merc_memories[memory_buffer_toggle], result.vertices);
merc_memories[memory_buffer_toggle]);
}
memory_buffer_toggle ^= 1;
-371
View File
@@ -1,371 +0,0 @@
(defglobalconstant all-import-files
(
"goal_src/import/fuel-cell-ag.gc"
"goal_src/import/money-ag.gc"
"goal_src/import/buzzer-ag.gc"
"goal_src/import/ecovalve-ag.gc"
"goal_src/import/crate-ag.gc"
"goal_src/import/speaker-ag.gc"
"goal_src/import/fuelcell-naked-ag.gc"
"goal_src/import/eichar-ag.gc"
"goal_src/import/sidekick-ag.gc"
"goal_src/import/deathcam-ag.gc"
"goal_src/import/babak-ag.gc"
"goal_src/import/barrel-ag.gc"
"goal_src/import/beachcam-ag.gc"
"goal_src/import/bird-lady-ag.gc"
"goal_src/import/bird-lady-beach-ag.gc"
"goal_src/import/bladeassm-ag.gc"
"goal_src/import/ecoventrock-ag.gc"
"goal_src/import/flutflut-ag.gc"
"goal_src/import/flutflutegg-ag.gc"
"goal_src/import/grottopole-ag.gc"
"goal_src/import/harvester-ag.gc"
"goal_src/import/kickrock-ag.gc"
"goal_src/import/lrocklrg-ag.gc"
"goal_src/import/lurkercrab-ag.gc"
"goal_src/import/lurkerpuppy-ag.gc"
"goal_src/import/lurkerworm-ag.gc"
"goal_src/import/mayor-ag.gc"
"goal_src/import/mistycannon-ag.gc"
"goal_src/import/orb-cache-top-ag.gc"
"goal_src/import/pelican-ag.gc"
"goal_src/import/sack-ag.gc"
"goal_src/import/sculptor-ag.gc"
"goal_src/import/sculptor-muse-ag.gc"
"goal_src/import/seagull-ag.gc"
"goal_src/import/sharkey-ag.gc"
"goal_src/import/windmill-one-ag.gc"
"goal_src/import/assistant-lavatube-end-ag.gc"
"goal_src/import/bluesage-ag.gc"
"goal_src/import/citadelcam-ag.gc"
"goal_src/import/citb-arm-ag.gc"
"goal_src/import/citb-arm-shoulder-ag.gc"
"goal_src/import/citb-bunny-ag.gc"
"goal_src/import/citb-button-ag.gc"
"goal_src/import/citb-chain-plat-ag.gc"
"goal_src/import/citb-chains-ag.gc"
"goal_src/import/citb-coil-ag.gc"
"goal_src/import/citb-disc-ag.gc"
"goal_src/import/citb-donut-ag.gc"
"goal_src/import/citb-drop-plat-ag.gc"
"goal_src/import/citb-exit-plat-ag.gc"
"goal_src/import/citb-firehose-ag.gc"
"goal_src/import/citb-generator-ag.gc"
"goal_src/import/citb-hose-ag.gc"
"goal_src/import/citb-iris-door-ag.gc"
"goal_src/import/citb-launcher-ag.gc"
"goal_src/import/citb-robotboss-ag.gc"
"goal_src/import/citb-rotatebox-ag.gc"
"goal_src/import/citb-sagecage-ag.gc"
"goal_src/import/citb-stopbox-ag.gc"
"goal_src/import/evilbro-citadel-ag.gc"
"goal_src/import/evilsis-citadel-ag.gc"
"goal_src/import/green-sagecage-ag.gc"
"goal_src/import/plat-citb-ag.gc"
"goal_src/import/plat-eco-citb-ag.gc"
"goal_src/import/redsage-ag.gc"
"goal_src/import/warp-gate-switch-ag.gc"
"goal_src/import/warpgate-ag.gc"
"goal_src/import/yellowsage-ag.gc"
"goal_src/import/baby-spider-ag.gc"
"goal_src/import/cavecrystal-ag.gc"
"goal_src/import/caveelevator-ag.gc"
"goal_src/import/cavespatula-darkcave-ag.gc"
"goal_src/import/cavetrapdoor-ag.gc"
"goal_src/import/dark-crystal-ag.gc"
"goal_src/import/mother-spider-ag.gc"
"goal_src/import/spider-egg-ag.gc"
"goal_src/import/water-anim-darkcave-ag.gc"
"goal_src/import/darkecobomb-ag.gc"
"goal_src/import/ecoclaw-ag.gc"
"goal_src/import/finalbosscam-ag.gc"
"goal_src/import/green-eco-lurker-ag.gc"
"goal_src/import/greenshot-ag.gc"
"goal_src/import/jak-white-ag.gc"
"goal_src/import/light-eco-ag.gc"
"goal_src/import/plat-eco-finalboss-ag.gc"
"goal_src/import/power-left-ag.gc"
"goal_src/import/power-right-ag.gc"
"goal_src/import/powercellalt-ag.gc"
"goal_src/import/redring-ag.gc"
"goal_src/import/robotboss-ag.gc"
"goal_src/import/robotboss-blueeco-ag.gc"
"goal_src/import/robotboss-cinematic-ag.gc"
"goal_src/import/robotboss-redeco-ag.gc"
"goal_src/import/robotboss-yelloweco-ag.gc"
"goal_src/import/silodoor-ag.gc"
"goal_src/import/water-anim-finalboss-ag.gc"
"goal_src/import/evilbro-ag.gc"
"goal_src/import/evilsis-ag.gc"
"goal_src/import/plant-boss-main+0-ag.gc"
"goal_src/import/aphid-lurker-ag.gc"
"goal_src/import/darkvine-ag.gc"
"goal_src/import/eggtop-ag.gc"
"goal_src/import/jng-iris-door-ag.gc"
"goal_src/import/plant-boss-ag.gc"
"goal_src/import/plat-flip-ag.gc"
"goal_src/import/plat-jungleb-ag.gc"
"goal_src/import/eichar-fish+0-ag.gc"
"goal_src/import/accordian-ag.gc"
"goal_src/import/bounceytarp-ag.gc"
"goal_src/import/catch-fisha-ag.gc"
"goal_src/import/catch-fishb-ag.gc"
"goal_src/import/catch-fishc-ag.gc"
"goal_src/import/fish-net-ag.gc"
"goal_src/import/fisher-ag.gc"
"goal_src/import/hopper-ag.gc"
"goal_src/import/junglecam-ag.gc"
"goal_src/import/junglefish-ag.gc"
"goal_src/import/junglesnake-ag.gc"
"goal_src/import/launcherdoor-ag.gc"
"goal_src/import/logtrap-ag.gc"
"goal_src/import/lurkerm-piston-ag.gc"
"goal_src/import/lurkerm-tall-sail-ag.gc"
"goal_src/import/maindoor-ag.gc"
"goal_src/import/medres-firecanyon-ag.gc"
"goal_src/import/periscope-ag.gc"
"goal_src/import/plat-button-ag.gc"
"goal_src/import/plat-eco-ag.gc"
"goal_src/import/precurbridge-ag.gc"
"goal_src/import/reflector-mirror-ag.gc"
"goal_src/import/ropebridge-52-ag.gc"
"goal_src/import/ropebridge-70-ag.gc"
"goal_src/import/sidedoor-ag.gc"
"goal_src/import/towertop-ag.gc"
"goal_src/import/water-anim-jungle-ag.gc"
"goal_src/import/eichar-racer+0-ag.gc"
"goal_src/import/eichar-flut+0-ag.gc"
"goal_src/import/eichar-tube+0-ag.gc"
"goal_src/import/eichar-pole+0-ag.gc"
"goal_src/import/eichar-ice+0-ag.gc"
"goal_src/import/assistant-firecanyon-ag.gc"
"goal_src/import/balloon-ag.gc"
"goal_src/import/crate-darkeco-cluster-ag.gc"
"goal_src/import/ef-plane-ag.gc"
"goal_src/import/racer-ag.gc"
"goal_src/import/spike-ag.gc"
"goal_src/import/assistant-lavatube-start-ag.gc"
"goal_src/import/chainmine-ag.gc"
"goal_src/import/darkecobarrel-ag.gc"
"goal_src/import/energyarm-ag.gc"
"goal_src/import/energyball-ag.gc"
"goal_src/import/energybase-ag.gc"
"goal_src/import/energydoor-ag.gc"
"goal_src/import/energyhub-ag.gc"
"goal_src/import/lavaballoon-ag.gc"
"goal_src/import/lavabase-ag.gc"
"goal_src/import/lavafall-ag.gc"
"goal_src/import/lavafallsewera-ag.gc"
"goal_src/import/lavafallsewerb-ag.gc"
"goal_src/import/lavashortcut-ag.gc"
"goal_src/import/lavayellowtarp-ag.gc"
"goal_src/import/water-anim-lavatube-ag.gc"
"goal_src/import/driller-lurker-ag.gc"
"goal_src/import/gnawer-ag.gc"
"goal_src/import/launcherdoor-maincave-ag.gc"
"goal_src/import/maincavecam-ag.gc"
"goal_src/import/plat-ag.gc"
"goal_src/import/spiderwebs-ag.gc"
"goal_src/import/water-anim-maincave-ag.gc"
"goal_src/import/water-anim-maincave-water-ag.gc"
"goal_src/import/balloonlurker-ag.gc"
"goal_src/import/boatpaddle-ag.gc"
"goal_src/import/bonelurker-ag.gc"
"goal_src/import/breakaway-left-ag.gc"
"goal_src/import/breakaway-mid-ag.gc"
"goal_src/import/breakaway-right-ag.gc"
"goal_src/import/darkecocan-ag.gc"
"goal_src/import/keg-ag.gc"
"goal_src/import/keg-conveyor-ag.gc"
"goal_src/import/keg-conveyor-paddle-ag.gc"
"goal_src/import/mis-bone-bridge-ag.gc"
"goal_src/import/mis-bone-platform-ag.gc"
"goal_src/import/mistycam-ag.gc"
"goal_src/import/muse-ag.gc"
"goal_src/import/quicksandlurker-ag.gc"
"goal_src/import/ropebridge-36-ag.gc"
"goal_src/import/rounddoor-ag.gc"
"goal_src/import/sidekick-human-ag.gc"
"goal_src/import/silostep-ag.gc"
"goal_src/import/teetertotter-ag.gc"
"goal_src/import/water-anim-misty-ag.gc"
"goal_src/import/wheel-ag.gc"
"goal_src/import/windturbine-ag.gc"
"goal_src/import/flying-lurker-ag.gc"
"goal_src/import/medres-snow-ag.gc"
"goal_src/import/ogre-bridge-ag.gc"
"goal_src/import/ogre-bridgeend-ag.gc"
"goal_src/import/ogre-isle-ag.gc"
"goal_src/import/ogre-step-ag.gc"
"goal_src/import/ogreboss-ag.gc"
"goal_src/import/ogrecam-ag.gc"
"goal_src/import/plunger-lurker-ag.gc"
"goal_src/import/shortcut-boulder-ag.gc"
"goal_src/import/tntbarrel-ag.gc"
"goal_src/import/water-anim-ogre-ag.gc"
"goal_src/import/cavecrusher-ag.gc"
"goal_src/import/cavespatulatwo-ag.gc"
"goal_src/import/water-anim-robocave-ag.gc"
"goal_src/import/dark-plant-ag.gc"
"goal_src/import/happy-plant-ag.gc"
"goal_src/import/lightning-mole-ag.gc"
"goal_src/import/pusher-ag.gc"
"goal_src/import/race-ring-ag.gc"
"goal_src/import/robber-ag.gc"
"goal_src/import/rolling-start-ag.gc"
"goal_src/import/rollingcam-ag.gc"
"goal_src/import/water-anim-rolling-ag.gc"
"goal_src/import/flut-saddle-ag.gc"
"goal_src/import/flutflut-plat-large-ag.gc"
"goal_src/import/flutflut-plat-med-ag.gc"
"goal_src/import/flutflut-plat-small-ag.gc"
"goal_src/import/ice-cube-ag.gc"
"goal_src/import/ice-cube-break-ag.gc"
"goal_src/import/ram-ag.gc"
"goal_src/import/ram-boss-ag.gc"
"goal_src/import/snow-ball-ag.gc"
"goal_src/import/snow-bridge-36-ag.gc"
"goal_src/import/snow-bumper-ag.gc"
"goal_src/import/snow-bunny-ag.gc"
"goal_src/import/snow-button-ag.gc"
"goal_src/import/snow-eggtop-ag.gc"
"goal_src/import/snow-fort-gate-ag.gc"
"goal_src/import/snow-gears-ag.gc"
"goal_src/import/snow-log-ag.gc"
"goal_src/import/snow-spatula-ag.gc"
"goal_src/import/snow-switch-ag.gc"
"goal_src/import/snowcam-ag.gc"
"goal_src/import/snowpusher-ag.gc"
"goal_src/import/yeti-ag.gc"
"goal_src/import/blue-eco-charger-ag.gc"
"goal_src/import/blue-eco-charger-orb-ag.gc"
"goal_src/import/bully-ag.gc"
"goal_src/import/floating-launcher-ag.gc"
"goal_src/import/helix-button-ag.gc"
"goal_src/import/helix-slide-door-ag.gc"
"goal_src/import/shover-ag.gc"
"goal_src/import/steam-cap-ag.gc"
"goal_src/import/sunkencam-ag.gc"
"goal_src/import/sunkenfisha-ag.gc"
"goal_src/import/wall-plat-ag.gc"
"goal_src/import/water-anim-sunken-ag.gc"
"goal_src/import/water-anim-sunken-dark-eco-ag.gc"
"goal_src/import/double-lurker-ag.gc"
"goal_src/import/double-lurker-top-ag.gc"
"goal_src/import/exit-chamber-ag.gc"
"goal_src/import/generic-button-ag.gc"
"goal_src/import/orbit-plat-ag.gc"
"goal_src/import/orbit-plat-bottom-ag.gc"
"goal_src/import/plat-sunken-ag.gc"
"goal_src/import/puffer-ag.gc"
"goal_src/import/qbert-plat-ag.gc"
"goal_src/import/qbert-plat-on-ag.gc"
"goal_src/import/seaweed-ag.gc"
"goal_src/import/side-to-side-plat-ag.gc"
"goal_src/import/square-platform-ag.gc"
"goal_src/import/sun-iris-door-ag.gc"
"goal_src/import/wedge-plat-ag.gc"
"goal_src/import/wedge-plat-outer-ag.gc"
"goal_src/import/whirlpool-ag.gc"
"goal_src/import/balance-plat-ag.gc"
"goal_src/import/billy-ag.gc"
"goal_src/import/billy-sidekick-ag.gc"
"goal_src/import/farthy-snack-ag.gc"
"goal_src/import/kermit-ag.gc"
"goal_src/import/swamp-bat-ag.gc"
"goal_src/import/swamp-rat-ag.gc"
"goal_src/import/swamp-rat-nest-ag.gc"
"goal_src/import/swamp-rock-ag.gc"
"goal_src/import/swamp-spike-ag.gc"
"goal_src/import/swampcam-ag.gc"
"goal_src/import/tar-plat-ag.gc"
"goal_src/import/logo-ag.gc"
"goal_src/import/logo-black-ag.gc"
"goal_src/import/logo-cam-ag.gc"
"goal_src/import/logo-volumes-ag.gc"
"goal_src/import/ndi-ag.gc"
"goal_src/import/ndi-cam-ag.gc"
"goal_src/import/ndi-volumes-ag.gc"
"goal_src/import/pontoonfive-ag.gc"
"goal_src/import/scarecrow-a-ag.gc"
"goal_src/import/scarecrow-b-ag.gc"
"goal_src/import/trainingcam-ag.gc"
"goal_src/import/water-anim-training-ag.gc"
"goal_src/import/assistant-ag.gc"
"goal_src/import/evilplant-ag.gc"
"goal_src/import/explorer-ag.gc"
"goal_src/import/farmer-ag.gc"
"goal_src/import/fishermans-boat-ag.gc"
"goal_src/import/hutlamp-ag.gc"
"goal_src/import/mayorgears-ag.gc"
"goal_src/import/medres-beach-ag.gc"
"goal_src/import/medres-beach1-ag.gc"
"goal_src/import/medres-beach2-ag.gc"
"goal_src/import/medres-beach3-ag.gc"
"goal_src/import/medres-jungle-ag.gc"
"goal_src/import/medres-jungle1-ag.gc"
"goal_src/import/medres-jungle2-ag.gc"
"goal_src/import/medres-misty-ag.gc"
"goal_src/import/medres-training-ag.gc"
"goal_src/import/medres-village11-ag.gc"
"goal_src/import/medres-village12-ag.gc"
"goal_src/import/medres-village13-ag.gc"
"goal_src/import/oracle-ag.gc"
"goal_src/import/reflector-middle-ag.gc"
"goal_src/import/revcycle-ag.gc"
"goal_src/import/revcycleprop-ag.gc"
"goal_src/import/ropebridge-32-ag.gc"
"goal_src/import/sage-ag.gc"
"goal_src/import/sagesail-ag.gc"
"goal_src/import/villa-starfish-ag.gc"
"goal_src/import/village-cam-ag.gc"
"goal_src/import/village1cam-ag.gc"
"goal_src/import/water-anim-village1-ag.gc"
"goal_src/import/windmill-sail-ag.gc"
"goal_src/import/windspinner-ag.gc"
"goal_src/import/yakow-ag.gc"
"goal_src/import/allpontoons-ag.gc"
"goal_src/import/assistant-village2-ag.gc"
"goal_src/import/ceilingflag-ag.gc"
"goal_src/import/exit-chamber-dummy-ag.gc"
"goal_src/import/fireboulder-ag.gc"
"goal_src/import/flutflut-bluehut-ag.gc"
"goal_src/import/gambler-ag.gc"
"goal_src/import/geologist-ag.gc"
"goal_src/import/jaws-ag.gc"
"goal_src/import/medres-rolling-ag.gc"
"goal_src/import/medres-rolling1-ag.gc"
"goal_src/import/medres-village2-ag.gc"
"goal_src/import/ogreboss-village2-ag.gc"
"goal_src/import/pontoonten-ag.gc"
"goal_src/import/precursor-arm-ag.gc"
"goal_src/import/sage-bluehut-ag.gc"
"goal_src/import/sunken-elevator-ag.gc"
"goal_src/import/swamp-blimp-ag.gc"
"goal_src/import/swamp-rope-ag.gc"
"goal_src/import/swamp-tetherrock-ag.gc"
"goal_src/import/swamp-tetherrock-explode-ag.gc"
"goal_src/import/village2cam-ag.gc"
"goal_src/import/warrior-ag.gc"
"goal_src/import/water-anim-village2-ag.gc"
"goal_src/import/assistant-village3-ag.gc"
"goal_src/import/cavegem-ag.gc"
"goal_src/import/evilbro-village3-ag.gc"
"goal_src/import/evilsis-village3-ag.gc"
"goal_src/import/gondola-ag.gc"
"goal_src/import/gondolacables-ag.gc"
"goal_src/import/lavaspoutdrip-ag.gc"
"goal_src/import/medres-finalboss-ag.gc"
"goal_src/import/medres-ogre-ag.gc"
"goal_src/import/medres-ogre2-ag.gc"
"goal_src/import/medres-ogre3-ag.gc"
"goal_src/import/minecartsteel-ag.gc"
"goal_src/import/minershort-ag.gc"
"goal_src/import/minertall-ag.gc"
"goal_src/import/pistons-ag.gc"
"goal_src/import/sage-village3-ag.gc"
"goal_src/import/vil3-bridge-36-ag.gc"
"goal_src/import/water-anim-village3-ag.gc"
)
)
+4
View File
@@ -21,6 +21,10 @@
)
;; DECOMP BEGINS
(import "goal_src/import/money-ag.gc")
(import "goal_src/import/ecovalve-ag.gc")
(import "goal_src/import/buzzer-ag.gc")
(import "goal_src/import/fuel-cell-ag.gc")
(define *eco-pill-count* 0)
+1
View File
@@ -9,6 +9,7 @@
(declare-type crate-buzzer crate)
;; DECOMP BEGINS
(import "goal_src/import/crate-ag.gc")
(defskelgroup *crate-barrel-sg* crate crate-barrel-lod0-jg crate-barrel-idle-ja
((crate-barrel-lod0-mg (meters 20)) (crate-barrel-lod1-mg (meters 40)) (crate-barrel-lod2-mg (meters 999999)))
+1
View File
@@ -9,6 +9,7 @@
;; DECOMP BEGINS
(import "goal_src/import/speaker-ag.gc")
(deftype camera-voicebox (camera-slave)
()
+1
View File
@@ -8,6 +8,7 @@
(load-art-import sidekick)
;; DECOMP BEGINS
(import "goal_src/import/sidekick-ag.gc")
(define *sidekick-remap* '(("run-to-stance-left" "run-to-stance")
("run-to-stance-loop-left" "run-to-stance-loop")
+1
View File
@@ -6,6 +6,7 @@
;; dgos: GAME, ENGINE
;; DECOMP BEGINS
(import "goal_src/import/deathcam-ag.gc")
(defskelgroup *deathcam-sg* deathcam deathcam-lod0-jg deathcam-idle-ja
((deathcam-lod0-mg (meters 999999)))
+1
View File
@@ -8,6 +8,7 @@
(define-extern target-collide-set! (function symbol float int :behavior target))
;; DECOMP BEGINS
(import "goal_src/import/eichar-ag.gc")
(defskelgroup *jchar-sg* eichar eichar-lod0-jg -1
((eichar-lod0-mg (meters 999999)))
+1
View File
@@ -6,6 +6,7 @@
;; dgos: GAME, ENGINE
;; DECOMP BEGINS
(import "goal_src/import/fuelcell-naked-ag.gc")
(defpartgroup group-part-hud-pickup
:id 75
+5 -9
View File
@@ -5,9 +5,6 @@
;; OTHER STUFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; get list of all goal import files
(asm-file "goal_src/build/all_imports.gc")
;; tell compiler about stuff defined/implemented in the runtime.
(asm-file "goal_src/kernel-defs.gc")
@@ -94,6 +91,10 @@
)
)
(defmacro import (file-name)
`(asm-file ,file-name :no-code)
)
;; enum for text file encoding versions
(defenum game-text-version
(jak1-v1 10)
@@ -1003,7 +1004,7 @@
(defmacro def-art-elt (group name idx)
"define a new art element. adds it to a global map stored in goos."
;; grab data about the art group
(let* ((group-string (symbol->string group))
(name-string (symbol->string name))
@@ -1038,8 +1039,3 @@
;; load the default project
(load-project "goal_src/game.gp")
(seval (fmt #t "Loading imports...\n"))
(load-imports)
(seval (fmt #t "Loaded imports. Have a nice day.\n"))
+9
View File
@@ -8,6 +8,15 @@
(define-extern spawn-flying-rock (function vector vector float entity none))
;; DECOMP BEGINS
(import "goal_src/import/ecoventrock-ag.gc")
(import "goal_src/import/windmill-one-ag.gc")
(import "goal_src/import/kickrock-ag.gc")
(import "goal_src/import/flutflutegg-ag.gc")
(import "goal_src/import/flutflut-ag.gc")
(import "goal_src/import/bladeassm-ag.gc")
(import "goal_src/import/harvester-ag.gc")
(import "goal_src/import/grottopole-ag.gc")
(import "goal_src/import/beachcam-ag.gc")
(defskelgroup *beachcam-sg* beachcam beachcam-lod0-jg beachcam-anim-ja
((beachcam-lod0-mg (meters 999999)))
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/lrocklrg-ag.gc")
(defskelgroup *lrocklrg-sg* lrocklrg lrocklrg-lod0-jg lrocklrg-idle-ja
((lrocklrg-lod0-mg (meters 999999)))
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/bird-lady-beach-ag.gc")
(deftype bird-lady-beach (process-taskable)
((flutflut handle :offset-assert 384)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/bird-lady-ag.gc")
(deftype bird-lady (process-taskable)
()
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/lurkercrab-ag.gc")
(defpartgroup group-lurkercrab-slide
:id 159
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/lurkerpuppy-ag.gc")
(deftype lurkerpuppy (nav-enemy)
()
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/lurkerworm-ag.gc")
(deftype lurkerworm (process-drawable)
((root-override collide-shape-moving :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/mayor-ag.gc")
(deftype mayor (process-taskable)
()
+1
View File
@@ -6,6 +6,7 @@
;; dgos: BEA, L1
;; DECOMP BEGINS
(import "goal_src/import/pelican-ag.gc")
(deftype pelican-bank (basic)
((circle-speed meters :offset-assert 4)
+2
View File
@@ -7,6 +7,8 @@
(declare-type muse nav-enemy)
;; DECOMP BEGINS
(import "goal_src/import/sculptor-ag.gc")
(import "goal_src/import/sculptor-muse-ag.gc")
(deftype sculptor (process-taskable)
((muse handle :offset-assert 384)
+1
View File
@@ -10,6 +10,7 @@
(declare-type seagullflock process)
;; DECOMP BEGINS
(import "goal_src/import/seagull-ag.gc")
(defpartgroup group-seagull-takeoff
:id 160
@@ -6,6 +6,7 @@
;; dgos: CIT, L1
;; DECOMP BEGINS
(import "goal_src/import/assistant-lavatube-end-ag.gc")
(deftype assistant-lavatube-end (process-taskable)
()
+11
View File
@@ -6,6 +6,17 @@
;; dgos: CIT, L1
;; DECOMP BEGINS
(import "goal_src/import/citb-disc-ag.gc")
(import "goal_src/import/citb-arm-ag.gc")
(import "goal_src/import/citb-arm-shoulder-ag.gc")
(import "goal_src/import/citb-iris-door-ag.gc")
(import "goal_src/import/citb-launcher-ag.gc")
(import "goal_src/import/citb-hose-ag.gc")
(import "goal_src/import/citb-coil-ag.gc")
(import "goal_src/import/citadelcam-ag.gc")
(import "goal_src/import/citb-button-ag.gc")
(import "goal_src/import/citb-generator-ag.gc")
(import "goal_src/import/citb-robotboss-ag.gc")
(deftype citb-arm-section (process-drawable)
((sync sync-info :inline :offset-assert 176)
+7
View File
@@ -10,6 +10,13 @@
(declare-type citb-sage process-taskable)
;; DECOMP BEGINS
(import "goal_src/import/evilbro-citadel-ag.gc")
(import "goal_src/import/evilsis-citadel-ag.gc")
(import "goal_src/import/yellowsage-ag.gc")
(import "goal_src/import/citb-sagecage-ag.gc")
(import "goal_src/import/redsage-ag.gc")
(import "goal_src/import/green-sagecage-ag.gc")
(import "goal_src/import/bluesage-ag.gc")
(defskelgroup *citb-sagecage-sg* citb-sagecage citb-sagecage-lod0-jg citb-sagecage-redsage-idle-ja
((citb-sagecage-lod0-mg (meters 20)) (citb-sagecage-lod1-mg (meters 999999)))
+1
View File
@@ -8,6 +8,7 @@
(define-extern *citb-bunny-sg* skeleton-group)
;; DECOMP BEGINS
(import "goal_src/import/citb-bunny-ag.gc")
(deftype citb-bunny (snow-bunny)
()
@@ -6,6 +6,7 @@
;; dgos: CIT
;; DECOMP BEGINS
(import "goal_src/import/citb-drop-plat-ag.gc")
(defskelgroup *citb-drop-plat-sg* citb-drop-plat citb-drop-plat-lod0-jg citb-drop-plat-idle-ja
((citb-drop-plat-lod0-mg (meters 20)) (citb-drop-plat-lod1-mg (meters 999999)))
+8
View File
@@ -22,6 +22,14 @@
;; DECOMP BEGINS
(import "goal_src/import/citb-stopbox-ag.gc")
(import "goal_src/import/plat-eco-citb-ag.gc")
(import "goal_src/import/citb-firehose-ag.gc")
(import "goal_src/import/citb-donut-ag.gc")
(import "goal_src/import/citb-exit-plat-ag.gc")
(import "goal_src/import/citb-chain-plat-ag.gc")
(import "goal_src/import/plat-citb-ag.gc")
(import "goal_src/import/citb-rotatebox-ag.gc")
(defskelgroup *plat-citb-sg* plat-citb plat-citb-lod0-jg plat-citb-idle-ja
((plat-citb-lod0-mg (meters 20)) (plat-citb-lod1-mg (meters 999999)))
+1
View File
@@ -6,6 +6,7 @@
;; dgos: GAME, COMMON, L1
;; DECOMP BEGINS
(import "goal_src/import/babak-ag.gc")
(deftype babak (nav-enemy)
()
+1
View File
@@ -7,6 +7,7 @@
;; DECOMP BEGINS
(import "goal_src/import/generic-button-ag.gc")
(deftype basebutton (process-drawable)
((root-override collide-shape-moving :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: L1, FIC, LAV, MIS, OGR, RACERP, ROL, SNO, SWA
;; DECOMP BEGINS
(import "goal_src/import/ef-plane-ag.gc")
(deftype blocking-plane (process-drawable)
()
+2
View File
@@ -12,6 +12,8 @@
;; DECOMP BEGINS
(import "goal_src/import/launcherdoor-maincave-ag.gc")
(import "goal_src/import/launcherdoor-ag.gc")
(deftype launcherdoor (process-drawable)
((root-override collide-shape :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: GAME, COMMON, L1
;; DECOMP BEGINS
(import "goal_src/import/orb-cache-top-ag.gc")
(deftype orb-cache-top (baseplat)
((active-distance float :offset-assert 228)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: GAME, COMMON, L1
;; DECOMP BEGINS
(import "goal_src/import/plat-button-ag.gc")
(deftype plat-button (process-drawable)
((root-override collide-shape-moving :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: GAME, COMMON, L1
;; DECOMP BEGINS
(import "goal_src/import/plat-eco-ag.gc")
(deftype plat-eco (plat)
((notice-dist float :offset-assert 264)
+3
View File
@@ -6,6 +6,9 @@
;; dgos: GAME, COMMON, L1
;; DECOMP BEGINS
(import "goal_src/import/plat-jungleb-ag.gc")
(import "goal_src/import/plat-ag.gc")
(import "goal_src/import/plat-sunken-ag.gc")
(defpartgroup group-standard-plat
:id 107
+6
View File
@@ -6,6 +6,12 @@
;; dgos: GAME, COMMON, L1
;; DECOMP BEGINS
(import "goal_src/import/ropebridge-36-ag.gc")
(import "goal_src/import/ropebridge-70-ag.gc")
(import "goal_src/import/snow-bridge-36-ag.gc")
(import "goal_src/import/ropebridge-32-ag.gc")
(import "goal_src/import/ropebridge-52-ag.gc")
(import "goal_src/import/vil3-bridge-36-ag.gc")
(deftype ropebridge-tuning (structure)
((num-springs int32 :offset-assert 0)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: GAME, COMMON, L1
;; DECOMP BEGINS
(import "goal_src/import/sharkey-ag.gc")
(defpartgroup group-sharkey-splash
:id 106
+16
View File
@@ -6,6 +6,22 @@
;; dgos: GAME, COMMON, L1, WATER-AN
;; DECOMP BEGINS
(import "goal_src/import/water-anim-sunken-ag.gc")
(import "goal_src/import/water-anim-jungle-ag.gc")
(import "goal_src/import/water-anim-village2-ag.gc")
(import "goal_src/import/water-anim-darkcave-ag.gc")
(import "goal_src/import/water-anim-maincave-water-ag.gc")
(import "goal_src/import/water-anim-finalboss-ag.gc")
(import "goal_src/import/water-anim-rolling-ag.gc")
(import "goal_src/import/water-anim-village1-ag.gc")
(import "goal_src/import/water-anim-village3-ag.gc")
(import "goal_src/import/water-anim-maincave-ag.gc")
(import "goal_src/import/water-anim-robocave-ag.gc")
(import "goal_src/import/water-anim-misty-ag.gc")
(import "goal_src/import/water-anim-training-ag.gc")
(import "goal_src/import/water-anim-lavatube-ag.gc")
(import "goal_src/import/water-anim-ogre-ag.gc")
(import "goal_src/import/water-anim-sunken-dark-eco-ag.gc")
(deftype water-anim (water-vol)
((ppointer-water-anim (pointer water-anim) :offset 24)
+1
View File
@@ -8,6 +8,7 @@
; (define-extern *cavecrystal-sg* skeleton-group)
;; DECOMP BEGINS
(import "goal_src/import/cavecrystal-ag.gc")
(deftype cavecrystal (process-drawable)
((root-override collide-shape :offset 112)
+3
View File
@@ -8,6 +8,9 @@
(define-extern power-left type)
;; DECOMP BEGINS
(import "goal_src/import/power-left-ag.gc")
(import "goal_src/import/powercellalt-ag.gc")
(import "goal_src/import/power-right-ag.gc")
(deftype fin-door (process-hidden)
()
@@ -6,6 +6,7 @@
;; dgos: FIN, L1
;; DECOMP BEGINS
(import "goal_src/import/green-eco-lurker-ag.gc")
(deftype green-eco-lurker (nav-enemy)
((played-sound? symbol :offset-assert 400)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: FIN, L1
;; DECOMP BEGINS
(import "goal_src/import/light-eco-ag.gc")
(deftype light-eco-child (process-drawable)
((root-override collide-shape :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: FIN, L1
;; DECOMP BEGINS
(import "goal_src/import/robotboss-ag.gc")
(deftype robotboss-dda (structure)
((blue-bomb-time float :offset-assert 0)
@@ -10,6 +10,9 @@
;; DECOMP BEGINS
(import "goal_src/import/silodoor-ag.gc")
(import "goal_src/import/ecoclaw-ag.gc")
(import "goal_src/import/finalbosscam-ag.gc")
(defskelgroup *med-res-snow1-sg* medres-snowback 0 2
((1 (meters 999999)))
@@ -6,6 +6,9 @@
;; dgos: FIN, L1
;; DECOMP BEGINS
(import "goal_src/import/redring-ag.gc")
(import "goal_src/import/darkecobomb-ag.gc")
(import "goal_src/import/greenshot-ag.gc")
(deftype torus (structure)
((origin vector :inline :offset-assert 0)
+3
View File
@@ -6,6 +6,9 @@
;; dgos: FIN, L1
;; DECOMP BEGINS
(import "goal_src/import/robotboss-blueeco-ag.gc")
(import "goal_src/import/robotboss-yelloweco-ag.gc")
(import "goal_src/import/robotboss-redeco-ag.gc")
(defmethod ease-loc-t robotboss ((obj robotboss))
(parameter-ease-sin-clamp (-> obj loc-t))
+4 -1
View File
@@ -4,8 +4,11 @@
;; name: sage-finalboss-FIN.gc
;; name in dgo: sage-finalboss
;; dgos: FIN
;; DECOMP BEGINS
(import "goal_src/import/plat-eco-finalboss-ag.gc")
(import "goal_src/import/robotboss-cinematic-ag.gc")
(import "goal_src/import/jak-white-ag.gc")
(import "goal_src/import/green-sagecage-ag.gc")
(defskelgroup *robotboss-cinematic-sg* robotboss-cinematic robotboss-cinematic-lod0-jg robotboss-cinematic-idle-ja
((robotboss-cinematic-lod0-mg (meters 999999)))
@@ -6,6 +6,7 @@
;; dgos: L1, FIC
;; DECOMP BEGINS
(import "goal_src/import/assistant-firecanyon-ag.gc")
(deftype assistant-firecanyon (process-taskable)
()
@@ -14,6 +14,8 @@
;; DECOMP BEGINS
(import "goal_src/import/crate-darkeco-cluster-ag.gc")
(import "goal_src/import/spike-ag.gc")
(deftype balloon (process-drawable)
((root-override collide-shape :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: L1, SNO, SWA
;; DECOMP BEGINS
(import "goal_src/import/flut-saddle-ag.gc")
(if (not (nmember "flutp" *kernel-packages*))
(set! *kernel-packages* (cons "flutp" *kernel-packages*))
+2
View File
@@ -6,6 +6,8 @@
;; dgos: INT, L1
;; DECOMP BEGINS
(import "goal_src/import/evilsis-ag.gc")
(import "goal_src/import/evilbro-ag.gc")
(deftype evilbro (process-taskable)
((evilsis entity :offset-assert 380)
+1
View File
@@ -8,6 +8,7 @@
(declare-type springbox process-drawable)
;; DECOMP BEGINS
(import "goal_src/import/bounceytarp-ag.gc")
(deftype springbox (process-drawable)
((spring-height meters :offset-assert 176)
+1
View File
@@ -11,6 +11,7 @@
;; DECOMP BEGINS
(import "goal_src/import/darkvine-ag.gc")
(deftype darkvine (process-drawable)
((root-override collide-shape :offset 112)
+5
View File
@@ -8,6 +8,11 @@
(declare-type fisher-fish process-drawable)
;; DECOMP BEGINS
(import "goal_src/import/catch-fisha-ag.gc")
(import "goal_src/import/fisher-ag.gc")
(import "goal_src/import/catch-fishc-ag.gc")
(import "goal_src/import/catch-fishb-ag.gc")
(import "goal_src/import/fish-net-ag.gc")
(deftype fisher-bank (basic)
((width meters :offset-assert 4)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: JUN, JUNGLE, L1
;; DECOMP BEGINS
(import "goal_src/import/hopper-ag.gc")
(deftype hopper (nav-enemy)
((jump-length float :offset-assert 400)
+2
View File
@@ -10,6 +10,8 @@
(define-extern draw-power-beam (function vector vector none))
;; DECOMP BEGINS
(import "goal_src/import/reflector-mirror-ag.gc")
(import "goal_src/import/periscope-ag.gc")
(defpartgroup group-jungle-binoculars
:id 176
+10
View File
@@ -6,6 +6,16 @@
;; dgos: JUN, JUNGLE, L1
;; DECOMP BEGINS
(import "goal_src/import/accordian-ag.gc")
(import "goal_src/import/precurbridge-ag.gc")
(import "goal_src/import/logtrap-ag.gc")
(import "goal_src/import/maindoor-ag.gc")
(import "goal_src/import/lurkerm-tall-sail-ag.gc")
(import "goal_src/import/lurkerm-piston-ag.gc")
(import "goal_src/import/medres-firecanyon-ag.gc")
(import "goal_src/import/sidedoor-ag.gc")
(import "goal_src/import/junglecam-ag.gc")
(import "goal_src/import/towertop-ag.gc")
(defskelgroup *med-res-firecanyon-sg* medres-firecanyon medres-firecanyon-lod0-jg medres-firecanyon-idle-ja
((medres-firecanyon-lod0-mg (meters 999999)))
+1
View File
@@ -6,6 +6,7 @@
;; dgos: JUN, JUNGLE, L1
;; DECOMP BEGINS
(import "goal_src/import/junglefish-ag.gc")
(deftype junglefish (nav-enemy)
()
+1
View File
@@ -6,6 +6,7 @@
;; dgos: JUN, JUNGLE, L1
;; DECOMP BEGINS
(import "goal_src/import/junglesnake-ag.gc")
(defskelgroup *junglesnake-sg* junglesnake junglesnake-lod0-jg junglesnake-idle-ja
((junglesnake-lod0-mg (meters 999999)))
+1
View File
@@ -6,6 +6,7 @@
;; dgos: JUB, L1
;; DECOMP BEGINS
(import "goal_src/import/aphid-lurker-ag.gc")
(deftype aphid (nav-enemy)
((try int32 :offset-assert 400)
+2
View File
@@ -12,6 +12,8 @@
;; DECOMP BEGINS
(import "goal_src/import/eggtop-ag.gc")
(import "goal_src/import/jng-iris-door-ag.gc")
(deftype eggtop (process-drawable)
((root-override collide-shape-moving :offset 112)
+1
View File
@@ -8,6 +8,7 @@
(declare-type plant-boss-leaf process-drawable)
;; DECOMP BEGINS
(import "goal_src/import/plant-boss-ag.gc")
(deftype plant-boss (process-drawable)
((root-override collide-shape :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: JUB, L1
;; DECOMP BEGINS
(import "goal_src/import/plat-flip-ag.gc")
(deftype plat-flip (process-drawable)
((root-override collide-shape-moving :offset 112)
@@ -6,6 +6,7 @@
;; dgos: L1, LAV
;; DECOMP BEGINS
(import "goal_src/import/assistant-lavatube-start-ag.gc")
(deftype assistant-lavatube-start (process-taskable)
()
@@ -6,6 +6,11 @@
;; dgos: L1, LAV
;; DECOMP BEGINS
(import "goal_src/import/energyhub-ag.gc")
(import "goal_src/import/energybase-ag.gc")
(import "goal_src/import/energyarm-ag.gc")
(import "goal_src/import/energyball-ag.gc")
(import "goal_src/import/energydoor-ag.gc")
(defpartgroup group-energyarm
:id 544
+9
View File
@@ -6,6 +6,15 @@
;; dgos: L1, LAV
;; DECOMP BEGINS
(import "goal_src/import/darkecobarrel-ag.gc")
(import "goal_src/import/lavafall-ag.gc")
(import "goal_src/import/lavaballoon-ag.gc")
(import "goal_src/import/lavashortcut-ag.gc")
(import "goal_src/import/chainmine-ag.gc")
(import "goal_src/import/lavafallsewera-ag.gc")
(import "goal_src/import/lavafallsewerb-ag.gc")
(import "goal_src/import/lavabase-ag.gc")
(import "goal_src/import/lavayellowtarp-ag.gc")
(deftype lavabase (process-drawable)
()
+1
View File
@@ -8,6 +8,7 @@
(declare-type cave-trap process-drawable)
;; DECOMP BEGINS
(import "goal_src/import/baby-spider-ag.gc")
(deftype baby-spider-spawn-params (structure)
((hatched? symbol :offset-assert 0)
+1
View File
@@ -12,6 +12,7 @@
;; DECOMP BEGINS
(import "goal_src/import/dark-crystal-ag.gc")
(deftype dark-crystal (process-drawable)
((root-override collide-shape :offset 112)
@@ -11,6 +11,7 @@
;; DECOMP BEGINS
(import "goal_src/import/driller-lurker-ag.gc")
(deftype driller-lurker (process-drawable)
((root-overeride collide-shape-moving :offset 112)
+1
View File
@@ -14,6 +14,7 @@
(define-extern gnawer-joint-callback (function gnawer none))
;; DECOMP BEGINS
(import "goal_src/import/gnawer-ag.gc")
(deftype gnawer-falling-segment (process-drawable)
((transv vector :inline :offset-assert 176)
+6
View File
@@ -6,6 +6,12 @@
;; dgos: L1, MAI, MAINCAVE
;; DECOMP BEGINS
(import "goal_src/import/maincavecam-ag.gc")
(import "goal_src/import/caveelevator-ag.gc")
(import "goal_src/import/cavespatula-darkcave-ag.gc")
(import "goal_src/import/cavespatulatwo-ag.gc")
(import "goal_src/import/cavetrapdoor-ag.gc")
(import "goal_src/import/cavecrusher-ag.gc")
(deftype maincavecam (pov-camera)
((seq uint64 :offset-assert 224)
@@ -12,6 +12,7 @@
;; DECOMP BEGINS
(import "goal_src/import/spider-egg-ag.gc")
(deftype mother-spider-egg (process-drawable)
((parent-override (pointer mother-spider) :offset 12)
@@ -9,6 +9,7 @@
(define-extern mother-spider-full-joint-callback (function mother-spider none))
;; DECOMP BEGINS
(import "goal_src/import/mother-spider-ag.gc")
(defskelgroup *mother-spider-sg* mother-spider mother-spider-lod0-jg -1
((mother-spider-lod0-mg (meters 20))
+1
View File
@@ -6,6 +6,7 @@
;; dgos: L1, MAI, MAINCAVE
;; DECOMP BEGINS
(import "goal_src/import/spiderwebs-ag.gc")
(define *spider-jump-mods* (new 'static 'surface
:name 'jump
+1
View File
@@ -6,6 +6,7 @@
;; dgos: L1, MIS
;; DECOMP BEGINS
(import "goal_src/import/balloonlurker-ag.gc")
(defpartgroup group-balloonlurker-pilot-death
:id 203
+1
View File
@@ -8,6 +8,7 @@
(declare-type bonelurker nav-enemy)
;; DECOMP BEGINS
(import "goal_src/import/bonelurker-ag.gc")
(deftype bonelurker (nav-enemy)
((bump-player-time time-frame :offset-assert 400)
+3
View File
@@ -11,6 +11,9 @@
;; DECOMP BEGINS
(import "goal_src/import/keg-ag.gc")
(import "goal_src/import/keg-conveyor-ag.gc")
(import "goal_src/import/keg-conveyor-paddle-ag.gc")
(defpartgroup group-keg-bounce
:id 197
+8
View File
@@ -6,6 +6,14 @@
;; dgos: L1, MIS
;; DECOMP BEGINS
(import "goal_src/import/mistycam-ag.gc")
(import "goal_src/import/breakaway-mid-ag.gc")
(import "goal_src/import/breakaway-left-ag.gc")
(import "goal_src/import/breakaway-right-ag.gc")
(import "goal_src/import/mis-bone-bridge-ag.gc")
(import "goal_src/import/windturbine-ag.gc")
(import "goal_src/import/boatpaddle-ag.gc")
(import "goal_src/import/mis-bone-platform-ag.gc")
(defpartgroup group-windturbine-particles
:id 191
@@ -8,6 +8,7 @@
(declare-type teetertotter process-drawable)
;; DECOMP BEGINS
(import "goal_src/import/teetertotter-ag.gc")
(deftype teetertotter (process-drawable)
((launched-player basic :offset-assert 176)
+2
View File
@@ -8,6 +8,8 @@
(declare-type silostep process-drawable)
;; DECOMP BEGINS
(import "goal_src/import/silostep-ag.gc")
(import "goal_src/import/rounddoor-ag.gc")
(deftype silostep (process-drawable)
((anim-limit float :offset-assert 176)
+2
View File
@@ -6,6 +6,8 @@
;; dgos: BEA, L1, MIS
;; DECOMP BEGINS
(import "goal_src/import/mistycannon-ag.gc")
(import "goal_src/import/sack-ag.gc")
(deftype angle-tracker (structure)
((value float :offset-assert 0)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: L1, MIS
;; DECOMP BEGINS
(import "goal_src/import/muse-ag.gc")
(deftype muse (nav-enemy)
((root-override collide-shape-moving :offset 112)
+1
View File
@@ -6,6 +6,7 @@
;; dgos: L1, MIS
;; DECOMP BEGINS
(import "goal_src/import/quicksandlurker-ag.gc")
(defpartgroup group-quicksandlurker-missile
:id 198
+4
View File
@@ -6,6 +6,10 @@
;; dgos: L1, MIS
;; DECOMP BEGINS
(import "goal_src/import/darkecocan-ag.gc")
(import "goal_src/import/sidekick-human-ag.gc")
(import "goal_src/import/evilsis-ag.gc")
(import "goal_src/import/evilbro-ag.gc")
(deftype sequenceA (process-hidden)
()
+3
View File
@@ -8,6 +8,9 @@
(declare-type flying-lurker process-drawable)
;; DECOMP BEGINS
(import "goal_src/import/ogrecam-ag.gc")
(import "goal_src/import/flying-lurker-ag.gc")
(import "goal_src/import/plunger-lurker-ag.gc")
(defskelgroup *ogrecam-sg* ogrecam ogrecam-lod0-jg -1
((ogrecam-lod0-mg (meters 999999)))
+7
View File
@@ -25,6 +25,13 @@
;; DECOMP BEGINS
(import "goal_src/import/ogre-bridgeend-ag.gc")
(import "goal_src/import/shortcut-boulder-ag.gc")
(import "goal_src/import/ogre-step-ag.gc")
(import "goal_src/import/ogre-isle-ag.gc")
(import "goal_src/import/ogre-bridge-ag.gc")
(import "goal_src/import/medres-snow-ag.gc")
(import "goal_src/import/tntbarrel-ag.gc")
(defskelgroup *med-res-snow-sg* medres-snow medres-snow-lod0-jg medres-snow-idle-ja
((medres-snow-lod0-mg (meters 999999)))
+1
View File
@@ -9,6 +9,7 @@
(define-extern *ogreboss* ogreboss)
;; DECOMP BEGINS
(import "goal_src/import/ogreboss-ag.gc")
(defskelgroup *ogreboss-sg* ogreboss ogreboss-lod0-jg ogreboss-idle-ja
((ogreboss-lod0-mg (meters 999999)))
+1
View File
@@ -9,6 +9,7 @@
(define-extern blocking-plane-spawn (function curve-control none))
;; DECOMP BEGINS
(import "goal_src/import/racer-ag.gc")
(if (not (nmember "racerp" *kernel-packages*))
(set! *kernel-packages* (cons "racerp" *kernel-packages*))
@@ -16,6 +16,7 @@
(define-extern *racer-air-mods* surface)
;; DECOMP BEGINS
(import "goal_src/import/balloon-ag.gc")
(deftype racer-info (basic)
((entity entity-actor :offset-assert 4)
+1
View File
@@ -12,6 +12,7 @@
;; DECOMP BEGINS
(import "goal_src/import/spider-egg-ag.gc")
(deftype spider-egg (process-drawable)
((root-override collide-shape-moving :offset 112)
@@ -6,6 +6,7 @@
;; dgos: L1, ROL
;; DECOMP BEGINS
(import "goal_src/import/lightning-mole-ag.gc")
(defun find-adjacent-bounds-one ((arg0 nav-mesh) (arg1 nav-poly) (arg2 int) (arg3 (array int8)) (arg4 (array int8)) (arg5 vector))
(local-vars (v0-2 object) (v1-2 int) (v1-30 int) (a0-2 int) (a0-12 int) (sv-16 nav-poly) (sv-32 int))

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