[decomp] fisher and FIN.DGO (finalboss) level (#899)

* decomp `fisher`, `robotboss`, `light-eco`, `green-eco-lurker`, `sage-finalboss`, `robotboss-weapon`, `robotboss-misc`

* fixes

* add files

* add `:states` list to `deftype` and fix files

* test state forward decl's on a few more types

* also the refs

* add light-eco

* whatever
This commit is contained in:
ManDude
2021-10-16 19:06:33 +01:00
committed by GitHub
parent 9225d28444
commit caac740aff
185 changed files with 30529 additions and 4422 deletions
+37 -1
View File
@@ -246,6 +246,21 @@ std::string Type::common_type_info_diff(const Type& other) const {
}
}
}
if (m_states != other.m_states) {
if (m_states.size() != other.m_states.size()) {
result += fmt::format("Number of additional states {} vs. {}\n", m_states.size(),
other.m_states.size());
}
for (size_t i = 0; i < std::min(m_states.size(), other.m_states.size()); i++) {
if (m_states.at(i) != other.m_states.at(i)) {
result +=
fmt::format("State {} ({}/{}):\n", i, m_states.at(i).name, other.m_states.at(i).name);
result += m_states.at(i).diff(other.m_states.at(i));
result += "\n";
}
}
}
if (m_new_method_info != other.m_new_method_info) {
result += m_new_method_info.diff(other.m_new_method_info);
}
@@ -381,6 +396,27 @@ std::string Type::print_method_info() const {
return result;
}
const StateInfo& Type::add_state(const StateInfo& info) {
m_states.push_back(info);
return m_states.back();
}
bool StateInfo::operator==(const StateInfo& other) const {
return name == other.name && type == other.type;
}
std::string StateInfo::diff(const StateInfo& other) const {
std::string result;
if (name != other.name) {
result += fmt::format("name: {} vs. {}\n", name, other.name);
}
if (type != other.type) {
result += fmt::format("type: {} vs. {}\n", type.print(), other.type.print());
}
return result;
}
std::string Type::incompatible_diff(const Type& other) const {
return fmt::format("diff is not implemented between {} and {}\n", typeid((*this)).name(),
typeid(other).name());
@@ -1067,4 +1103,4 @@ std::string EnumType::diff_impl(const Type& other_) const {
}
return result;
}
}
+12
View File
@@ -27,6 +27,15 @@ struct MethodInfo {
std::string diff(const MethodInfo& other) const;
};
struct StateInfo {
std::string name;
TypeSpec type;
bool operator==(const StateInfo& other) const;
bool operator!=(const StateInfo& other) const { return !((*this) == other); }
std::string diff(const StateInfo& other) const;
};
/*!
* Parent class of all Types.
*/
@@ -80,12 +89,14 @@ class Type {
const MethodInfo& add_method(const MethodInfo& info);
const MethodInfo& add_new_method(const MethodInfo& info);
std::string print_method_info() const;
const StateInfo& add_state(const StateInfo& info);
void disallow_in_runtime() { m_allow_in_runtime = false; }
virtual ~Type() = default;
const std::vector<MethodInfo>& get_methods_defined_for_type() const { return m_methods; }
const std::vector<StateInfo>& get_states_declared_for_type() const { return m_states; }
const MethodInfo* get_new_method_defined_for_type() const {
if (m_new_method_info_defined) {
@@ -105,6 +116,7 @@ class Type {
std::string incompatible_diff(const Type& other) const;
std::vector<MethodInfo> m_methods;
std::vector<StateInfo> m_states;
MethodInfo m_new_method_info;
bool m_new_method_info_defined = false;
+20
View File
@@ -1692,6 +1692,26 @@ std::string TypeSystem::generate_deftype_footer(const Type* type) const {
result.append(")\n ");
}
std::string states_string;
for (auto& info : type->get_states_declared_for_type()) {
if (info.type.arg_count() > 1) {
states_string.append(fmt::format(" ({}", info.name));
for (size_t i = 0; i < info.type.arg_count() - 1; i++) {
states_string.push_back(' ');
states_string.append(info.type.get_arg(i).print());
}
states_string.append(")\n");
} else {
states_string.append(fmt::format(" {}\n", info.name));
}
}
if (!states_string.empty()) {
result.append("(:states\n");
result.append(states_string);
result.append(" )\n ");
}
result.append(")\n");
return result;
}
+32 -1
View File
@@ -243,6 +243,34 @@ void declare_method(Type* type, TypeSystem* type_system, const goos::Object& def
});
}
void declare_state(Type* type, TypeSystem* type_system, const goos::Object& def) {
for_each_in_list(def, [&](const goos::Object& _obj) {
auto obj = &_obj;
if (obj->is_list()) {
// (name ,@args)
auto state_name = symbol_string(car(obj));
auto args = cdr(obj);
TypeSpec state_typespec("state");
for_each_in_list(*args, [&](const goos::Object& o) {
state_typespec.add_arg(parse_typespec(type_system, o));
});
state_typespec.add_arg(TypeSpec(type->get_name()));
type->add_state({state_name, state_typespec});
} else {
// name
auto state_name = symbol_string(*obj);
TypeSpec state_typespec("state");
state_typespec.add_arg(TypeSpec(type->get_name()));
type->add_state({state_name, state_typespec});
}
});
}
struct StructureDefResult {
TypeFlags flags;
bool generate_runtime_type = true;
@@ -274,8 +302,11 @@ StructureDefResult parse_structure_def(StructureType* type,
auto& first = car(opt_list);
opt_list = cdr(opt_list);
if (symbol_string(first) == ":methods") {
auto list_name = symbol_string(first);
if (list_name == ":methods") {
declare_method(type, ts, *opt_list);
} else if (list_name == ":states") {
declare_state(type, ts, *opt_list);
} else {
throw std::runtime_error("Invalid option list in field specification: " +
car(rest).print());
+5 -4
View File
@@ -1385,10 +1385,11 @@ TypeState StackSpillLoadOp::propagate_types_internal(const TypeState& input,
const Env& env,
DecompilerTypeSystem&) {
// stack slot load
auto info = env.stack_spills().lookup(m_offset);
auto& info = env.stack_spills().lookup(m_offset);
if (info.size != m_size) {
env.func->warnings.general_warning("Stack slot load mismatch: defined as size {}, got size {}",
info.size, m_size);
env.func->warnings.general_warning(
"Stack slot load at {} mismatch: defined as size {}, got size {}", m_offset, info.size,
m_size);
}
if (info.is_signed != m_is_signed) {
@@ -1404,7 +1405,7 @@ TypeState StackSpillLoadOp::propagate_types_internal(const TypeState& input,
TypeState StackSpillStoreOp::propagate_types_internal(const TypeState& input,
const Env& env,
DecompilerTypeSystem& dts) {
auto info = env.stack_spills().lookup(m_offset);
auto& info = env.stack_spills().lookup(m_offset);
if (info.size != m_size) {
env.func->warnings.general_warning(
"Stack slot store mismatch: defined as size {}, got size {}\n", info.size, m_size);
File diff suppressed because it is too large Load Diff
@@ -579,7 +579,7 @@
[3, "(function basic symbol)"],
[2, "(function process symbol)"]
],
"anim-tester": [
[11, "(function none :behavior anim-tester)"],
[12, "(function none :behavior anim-tester)"],
@@ -590,7 +590,7 @@
[1, "(function none :behavior camera-combiner)"],
[2, "(function basic int basic event-message-block object :behavior camera-combiner)"]
],
"title-obs": [
[0, "(function none)"]
],
@@ -669,7 +669,7 @@
[2, "(function sparticle-launch-group :behavior oracle)"],
[3, "(function none :behavior oracle)"]
],
"time-of-day": [
[10, "(function none :behavior time-of-day-proc)"],
[12, "(function sparticle-system sparticle-cpuinfo none)"]
@@ -757,5 +757,39 @@
[6, "(function sparticle-system sparticle-cpuinfo none)"]
],
"fisher-JUN": [
[27, "(function none :behavior process)"],
[28, "(function none :behavior fisher)"],
[20, "(function none :behavior fisher-fish)"],
[1, "(function none :behavior target)"]
],
"fisher-JUNGLE-L1": [
[27, "(function none :behavior process)"],
[28, "(function none :behavior fisher)"],
[20, "(function none :behavior fisher-fish)"],
[1, "(function none :behavior target)"]
],
"robotboss-misc": [
[5, "(function sparticle-launch-control :behavior finalbosscam)"]
],
"sage-finalboss-FIN": [
[21, "(function none :behavior sage-finalboss)"],
[22, "(function none :behavior sage-finalboss)"],
[15, "(function final-door symbol)"],
[16, "(function final-door symbol)"],
[7, "(function final-door symbol)"],
[6, "(function final-door symbol)"]
],
"sage-finalboss-L1": [
[21, "(function none :behavior sage-finalboss)"],
[22, "(function none :behavior sage-finalboss)"],
[15, "(function final-door symbol)"],
[16, "(function final-door symbol)"],
[7, "(function final-door symbol)"],
[6, "(function final-door symbol)"]
],
"placeholder-do-not-add-below": []
}
@@ -353,9 +353,6 @@
"(method 27 ropebridge)",
// all unchecked and in level DGO code
"(anon-function 11 robotboss)",
"(anon-function 18 robotboss)",
"(anon-function 49 robotboss)",
"(anon-function 21 plant-boss)",
"(anon-function 10 ice-cube)",
"(anon-function 15 ice-cube)",
@@ -868,6 +868,159 @@
["L670", "uint64", true]
],
"fisher-JUN": [
["L262", "vector"],
["L463", "(array (inline-array fisher-params))"]
],
"fisher-JUNGLE-L1": [
["L262", "vector"],
["L463", "(array (inline-array fisher-params))"]
],
"robotboss-weapon": [
["L122", "attack-info"],
["L127", "attack-info"],
["L138", "attack-info"],
["L144", "vector4w"],
["L145", "vector"]
],
"robotboss-misc": [
["L99", "vector"]
],
"robotboss": [
["L646", "attack-info"],
["L647", "attack-info"],
["L651", "vector"],
["L654", "vector"],
["L655", "vector"],
["L656", "vector"],
["L657", "vector"],
["L658", "vector"],
["L659", "vector"],
["L660", "vector"],
["L661", "vector"],
["L662", "vector"],
["L678", "vector"],
["L669", "vector"],
["L701", "vector"],
["L702", "vector"],
["L703", "vector"],
["L705", "vector"],
["L642", "robotboss-dda"],
["L643", "robotboss-dda"],
["L644", "robotboss-dda"],
["L645", "robotboss-dda"],
["L632", "robotboss-dda"],
["L713", "float", true],
["L714", "float", true],
["L715", "float", true],
["L716", "float", true],
["L717", "float", true],
["L718", "float", true],
["L719", "float", true],
["L720", "float", true],
["L721", "float", true],
["L722", "float", true],
["L723", "float", true],
["L724", "float", true],
["L725", "float", true],
["L726", "float", true],
["L727", "float", true],
["L728", "float", true],
["L729", "float", true],
["L730", "float", true],
["L731", "float", true],
["L732", "float", true],
["L733", "float", true],
["L734", "float", true],
["L735", "float", true],
["L736", "float", true],
["L737", "float", true],
["L738", "float", true],
["L739", "float", true],
["L740", "float", true],
["L741", "float", true],
["L742", "float", true],
["L743", "float", true],
["L744", "float", true],
["L745", "float", true],
["L746", "float", true],
["L747", "float", true],
["L748", "float", true],
["L749", "float", true],
["L750", "float", true],
["L751", "float", true],
["L752", "float", true],
["L753", "float", true],
["L754", "float", true],
["L755", "float", true],
["L756", "float", true],
["L757", "float", true],
["L758", "float", true],
["L759", "float", true],
["L760", "float", true],
["L761", "float", true],
["L762", "float", true],
["L763", "float", true],
["L764", "float", true],
["L765", "float", true],
["L766", "float", true],
["L767", "float", true],
["L768", "(pointer float)", 1],
["L769", "float", true],
["L770", "float", true],
["L771", "float", true],
["L772", "float", true],
["L773", "float", true],
["L774", "float", true],
["L775", "float", true],
["L776", "float", true],
["L777", "float", true],
["L778", "float", true],
["L779", "float", true],
["L780", "float", true],
["L781", "float", true],
["L782", "float", true],
["L783", "float", true],
["L784", "float", true],
["L785", "float", true],
["L786", "float", true],
["L787", "float", true],
["L788", "float", true],
["L789", "float", true],
["L790", "float", true],
["L791", "float", true],
["L792", "float", true],
["L793", "float", true],
["L794", "float", true],
["L795", "float", true],
["L796", "float", true],
["L797", "float", true],
["L798", "float", true],
["L799", "float", true],
["L800", "float", true],
["L801", "uint64", true],
["L802", "uint64", true],
["L803", "uint64", true],
["L804", "uint64", true],
["L814", "float", true],
["L815", "uint64", true],
["L816", "uint64", true]
],
"sage-finalboss-FIN": [
["L528", "vector"],
["L272", "vector"],
["L527", "quaternion"]
],
"sage-finalboss-L1": [
["L528", "vector"],
["L272", "vector"],
["L527", "quaternion"]
],
// please do not add things after this entry! git is dumb.
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
}
@@ -1855,7 +1855,7 @@
"(method 11 wall-plat)": [
[16, "vector"]
],
"(code plunger-lurker-plunge)": [[16, "event-message-block"]],
"(event flying-lurker-fly)": [[16, "event-message-block"]],
"(trans flying-lurker-fly)": [[16, "event-message-block"]],
@@ -1882,7 +1882,7 @@
[144, "vector"],
[160, "vector"]
],
"(method 18 collide-cache)": [[16, "collide-cache-prim"]],
"kill-current-level-hint": [[16, "event-message-block"]],
@@ -1917,7 +1917,7 @@
"sparticle-60-to-50":[
[16, "quaternion"]
],
],
"sp-orbiter":[
[16, "vector"],
@@ -2741,7 +2741,7 @@
[128, "vector"],
[144, "vector"]
],
"(method 11 effect-control)": [
[16, "vector"],
[32, "vector"]
@@ -2796,5 +2796,206 @@
[16,["inline-array", "sky-vertex", 12]]
],
"fisher-fish-move": [[16, "vector"]],
"fisher-fish-water": [[16, "vector"]],
"(trans play-accept fisher)": [[16, "vector"]],
"(method 11 fisher)": [[16, "vector"]],
"(code fisher-fish-caught)": [[16, "event-message-block"]],
"(code fisher-fish-die)": [[16, "event-message-block"]],
"(exit fisher-done)": [[16, "event-message-block"]],
"(enter fisher-done)": [[16, "event-message-block"]],
"(event fisher-playing)": [[16, "event-message-block"]],
"(enter fisher-playing)": [[16, "event-message-block"]],
"(exit fisher-playing)": [[16, "event-message-block"]],
"(trans enter-playing fisher)": [[16, "event-message-block"]],
"(code target-fishing)": [
[16, "event-message-block"],
[96, "vector"],
[112, "quaternion"],
[128, "quaternion"],
[144, "quaternion"]
],
"(method 43 fisher)": [
[16, "vector"],
[32, "vector"]
],
"fisher-draw-display": [[16, "font-context"]],
"(method 10 torus)": [
[16, "vector"],
[32, "vector"]
],
"(method 12 torus)": [[16, "matrix"]],
"redshot-trans": [[16, "matrix"]],
"(trans redshot-explode)": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"]
],
"(code darkecobomb-explode)": [[16, "event-message-block"]],
"(event yellowshot-idle)": [[16, "event-message-block"]],
"(trans yellowshot-idle)": [[16, "event-message-block"]],
"(trans darkecobomb-countdown)": [[16, "vector"]],
"arcing-shot-draw": [
[16, "vector"],
[32, "vector"]
],
"(method 9 torus)": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "matrix"],
[128, ["inline-array", "vector", 8]]
],
"(method 32 finalbosscam)": [[16, "event-message-block"]],
"(code cam-robotboss)": [
[16, "vector"],
[32, "vector"]
],
"ecoclaw-beam-particle-callback": [[16, "vector"]],
"robotboss-manipy-trans-hook": [[16, "vector"]],
"robotboss-redshot": [[16, "vector"]],
"robotboss-cut-cam": [[16, "vector"]],
"robotboss-yellowshot": [
[16, "vector"],
[32, "vector"],
[48, "event-message-block"]
],
"(trans robotboss-white-eco-movie)": [[16, "vector"]],
"(code robotboss-red-wait)": [
[16, "vector"],
[32, "redshot-launch-array"]
],
"(trans robotboss-yellow-wait)": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"]
],
"robotboss-setup-for-hits": [
[16, "sphere"],
[32, "event-message-block"]
],
"robotboss-position": [
[16, "vector"],
[32, "matrix"],
[96, "event-message-block"],
[176, "vector"]
],
"robotboss-shooting-trans": [
[16, "vector"],
[32, "event-message-block"]
],
"robotboss-darkecobomb": [
[16, "vector"],
[32, "vector"]
],
"robotboss-redshot-fill-array": [
[16, "vector"],
[32, "vector"]
],
"robotboss-blue-beam": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "collide-mesh-cache-tri"],
[160, "vector"],
[176, "event-message-block"]
],
"robotboss-bomb-handler": [[16, "event-message-block"]],
"robotboss-blue-done": [[16, "event-message-block"]],
"(exit robotboss-blue-wait)": [[16, "event-message-block"]],
"(enter robotboss-blue-wait)": [[16, "event-message-block"]],
"(exit robotboss-green-wait)": [[16, "event-message-block"]],
"(event robotboss-green-wait)": [[16, "event-message-block"]],
"(trans robotboss-red-wait)": [
[16, "event-message-block"],
[96, "vector"]
],
"(exit robotboss-red-wait)": [[16, "event-message-block"]],
"(exit robotboss-yellow-wait)": [[16, "event-message-block"]],
"(code robotboss-white-eco-movie)": [[16, "event-message-block"]],
"(event robotboss-yellow-dark-bomb-wait)": [[16, "event-message-block"]],
"(exit robotboss-yellow-dark-bomb-wait)": [[16, "event-message-block"]],
"(code robotboss-daxter-sacrifice-movie)": [[16, "event-message-block"]],
"robotboss-greenshot": [
[16, "vector"],
[32, "vector"]
],
"(trans robotboss-blue-wait)": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"]
],
"(code robotboss-blue-wait)": [[16, "event-message-block"]],
"(method 44 green-eco-lurker)": [[16, "event-message-block"]],
"(method 72 green-eco-lurker)": [[16, "event-message-block"]],
"(enter nav-enemy-die green-eco-lurker)": [[16, "event-message-block"]],
"(event spawn-minions)": [[16, "event-message-block"]],
"(method 51 green-eco-lurker)": [[16, "vector"]],
"(enter green-eco-lurker-appear)": [
[16, "vector"],
[32, "vector"]
],
"(code spawn-minions)": [
[16, "vector"],
[32, "event-message-block"]
],
"check-drop-level-lighteco-big-pops": [[16, "vector"]],
"check-drop-level-lighteco-pops": [[16, "vector"]],
"(method 20 light-eco-child)": [[16, "vector"]],
"light-eco-child-default-event-handler": [[16, "event-message-block"]],
"(code light-eco-child-die)": [[16, "event-message-block"]],
"light-eco-mother-default-event-handler": [[16, "event-message-block"]],
"(trans light-eco-child-hit-ground)": [[16, "vector"]],
"(method 21 light-eco-mother)": [[16, "vector"]],
"(method 20 light-eco-mother)": [[16, "vector"]],
"(trans plat-path-active plat-eco-finalboss)": [
[16, "vector"],
[32, "vector"],
[48, "event-message-block"]
],
"(method 44 sage-finalboss)": [[16, "event-message-block"]],
"(method 45 sage-finalboss)": [[16, "event-message-block"]],
"(method 32 sage-finalboss)": [[16, "event-message-block"]],
"(exit play-anim sage-finalboss)": [[16, "event-message-block"]],
"sage-finalboss-extra-trans": [[16, "event-message-block"]],
"sage-finalboss-extra-enter": [[16, "event-message-block"]],
"(trans play-anim sage-finalboss)": [
[16, "event-message-block"],
[96, "vector"],
[112, "vector"],
[128, "vector"],
[144, "vector"],
[160, "vector"],
[176, "vector"],
[192, "vector"],
[208, "vector"],
[224, "vector"]
],
"placeholder-do-not-add-below!": []
}
@@ -3961,7 +3961,7 @@
[111, "s2", "(pointer gs-tex1)"],
[113, "s2", "(pointer gs-reg64)"],
[115, "s2", "(pointer gs-clamp)"],
[117, "s2", "(pointer gs-reg64)"],
[117, "s2", "(pointer gs-reg64)"],
[118, "s2", "(pointer uint64)"],
[120, "s2", "(pointer gs-reg64)"],
[[159, 166], "s3", "dma-packet"],
@@ -4063,5 +4063,273 @@
[[75, 78], "v1", "dma-packet"]
],
"fisher-fish-move": [
[9, "v1", "fisher"],
[21, "v1", "fisher"]
],
"(code fisher-fish-fall)": [
[5, "v1", "fisher"],
[60, "v1", "fisher"],
[79, "v1", "fisher"]
],
"(code fisher-fish-caught)": [
[169, "v1", "fisher"]
],
"(code fisher-fish-die)": [
[35, "v1", "fisher"],
[47, "v1", "fisher"],
[90, "v1", "fisher"],
[98, "v1", "fisher"],
[112, "v1", "fisher"],
[129, "v1", "fisher"],
[137, "v1", "fisher"],
[151, "v1", "fisher"],
[165, "v1", "fisher"],
[179, "v1", "fisher"],
[193, "v1", "fisher"],
[205, "v1", "fisher"],
[209, "v1", "fisher"],
[27, "v1", "float"],
[79, "v1", "float"]
],
"(method 38 fisher)": [
[33, "t9", "(function fisher none)"]
],
"(enter fisher-done)": [
[137, "f0", "float"],
[148, "f0", "float"],
[213, "f0", "float"]
],
"fisher-spawn-ambient": [
[8, "v1", "float"]
],
"(method 43 fisher)": [
[27, "v1", "float"],
[69, "v1", "float"]
],
"(trans play-accept fisher)": [
[101, "v0", "state"]
],
"(trans idle fisher)": [
[4, "v0", "state"]
],
"(code idle fisher)": [
[132, "v1", "art-joint-anim"],
[35, "v1", "float"]
],
"(code target-fishing)": [
[163, "v1", "fisher"],
[290, "v1", "art-joint-anim"]
],
"(method 11 torus)": [
[[5, 22], "s4", "collide-shape-prim-group"]
],
"(method 12 torus)": [
[11, "v1", "float"],
[51, "v1", "float"]
],
"(code darkecobomb-countdown)": [
[25, "v1", "art-joint-anim"],
[75, "v1", "art-joint-anim"]
],
"(code darkecobomb-land)": [
[36, "v1", "art-joint-anim"]
],
"(code darkecobomb-idle)": [
[10, "v1", "art-joint-anim"],
[60, "v1", "art-joint-anim"]
],
"redshot-particle-callback": [
[2, "v1", "(pointer redshot)"]
],
"(event cam-robotboss)": [
[5, "v1", "vector"]
],
"ecoclaw-handler": [
[73, "v1", "vector"]
],
"(event idle silodoor)": [
[4, "v1", "float"]
],
"ecoclaw-beam-particle-callback": [
[1, "a0", "(pointer projectile)"],
[3, "a0", "(pointer projectile)"]
],
"(method 32 finalbosscam)": [
[156, "v1", "robotboss"]
],
"(trans ecoclaw-activate)": [
[30, "a0", "part-tracker"]
],
"robotboss-position": [
[109, "a0", "process-drawable"]
],
"robotboss-bomb-handler": [
[6, "v1", "float"]
],
"robotboss-handler": [
[6, "v1", "float"]
],
"(event robotboss-red-wait)": [
[12, "v1", "float"],
[68, "v1", "float"]
],
"(event robotboss-yellow-wait)": [
[12, "v1", "float"],
[68, "v1", "float"]
],
"(code robotboss-white-eco-movie)": [
[[188, 215], "gp", "handle"]
],
"(code robotboss-yellow-wait)": [
[336, "v1", "float"],
[365, "v1", "float"],
[530, "v1", "art-joint-anim"]
],
"(code robotboss-red-wait)": [
[153, "v1", "float"],
[287, "v1", "float"],
[339, "v1", "float"],
[500, "v1", "art-joint-anim"]
],
"robotboss-redshot": [
[45, "v1", "float"],
[70, "v1", "float"]
],
"(event robotboss-green-wait)": [
[39, "v1", "float"],
[95, "v1", "float"]
],
"(exit robotboss-yellow-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"(exit robotboss-green-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"(exit robotboss-red-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"(exit robotboss-blue-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"robotboss-redshot-fill-array": [
[24, "v1", "float"],
[46, "v1", "float"],
[109, "v1", "float"],
[137, "v1", "float"],
[137, "v1", "float"]
],
"(trans robotboss-blue-wait)": [
[254, "v1", "float"]
],
"(code robotboss-blue-wait)": [
[14, "v1", "art-joint-anim"]
],
"(enter green-eco-lurker-appear)": [
[12, "v1", "robotboss"],
[17, "v1", "robotboss"]
],
"(code green-eco-lurker-appear)": [
[42, "v1", "art-joint-anim"],
[93, "v1", "art-joint-anim"]
],
"(code green-eco-lurker-appear-land)": [
[74, "v1", "art-joint-anim"]
],
"(code nav-enemy-chase green-eco-lurker)": [
[55, "v1", "art-joint-anim"]
],
"(code nav-enemy-patrol green-eco-lurker)": [
[8, "t9", "(function none)"]
],
"(trans light-eco-child-hit-ground)": [
[63, "v1", "light-eco-mother"],
[75, "a1", "light-eco-mother"],
[88, "a1", "light-eco-mother"]
],
"(event plat-path-active plat-eco-finalboss)": [
[10, "v1", "float"]
],
"(method 45 sage-finalboss)": [
[[40, 57], "s5", "manipy"]
],
"(method 32 sage-finalboss)": [
[[241, 245], "v1", "manipy"],
[[309, 313], "v1", "manipy"]
],
"(trans play-anim sage-finalboss)": [
[[179, 183], "a0", "manipy"],
[[216, 220], "a0", "manipy"],
[[295, 299], "a1", "manipy"],
[[334, 338], "a1", "manipy"],
[[371, 375], "a1", "manipy"],
[391, "v0", "final-door"],
[396, "v0", "final-door"]
],
"(method 7 sage-finalboss)": [
[2, "v1", "(inline-array sage-finalboss-particle)"],
[6, "v1", "(inline-array sage-finalboss-particle)"],
[10, "v1", "(inline-array sage-finalboss-particle)"]
],
"(trans fisher-done)": [
[[41, 46], "v1", "dma-packet"]
],
"placeholder-do-not-add-below": []
}
@@ -3547,11 +3547,35 @@
}
},
"(trans fisher-done)": {
"vars": {
"v1-13": ["v1-13", "dma-packet"]
}
},
"anim-tester-get-playing-item": {
"vars": {
"v0-0": ["v0-0", "anim-test-seq-item"]
}
},
"light-eco-mother-default-event-handler": {
"vars": {
"v0-0": ["v0-0", "int"]
}
},
"(method 7 sage-finalboss)": {
"vars": {
"v1-0": ["v1-0", "(inline-array sage-finalboss-particle)"]
}
},
"(code robotboss-white-eco-movie)": {
"vars": {
"gp-1": ["gp-1", "handle"]
}
},
"aaaaaaaaaaaaaaaaaaaaaaa": {}
}
@@ -579,7 +579,7 @@
[3, "(function basic symbol)"],
[2, "(function process symbol)"]
],
"anim-tester": [
[11, "(function none :behavior anim-tester)"],
[12, "(function none :behavior anim-tester)"],
@@ -590,7 +590,7 @@
[1, "(function none :behavior camera-combiner)"],
[2, "(function basic int basic event-message-block object :behavior camera-combiner)"]
],
"title-obs": [
[0, "(function none)"]
],
@@ -669,10 +669,10 @@
[2, "(function sparticle-launch-group :behavior oracle)"],
[3, "(function none :behavior oracle)"]
],
"time-of-day": [
[10, "(function none)"],
[12, "(function sparticle-system sparticle-cpuinfo int none)"]
[10, "(function none :behavior time-of-day-proc)"],
[12, "(function sparticle-system sparticle-cpuinfo none)"]
],
"basebutton": [
@@ -761,5 +761,22 @@
[29, "(function none)"]
],
"fisher-JUN": [
[27, "(function none :behavior process)"],
[28, "(function none :behavior fisher)"],
[20, "(function none :behavior fisher-fish)"],
[1, "(function none :behavior target)"]
],
"fisher-JUNGLE-L1": [
[27, "(function none :behavior process)"],
[28, "(function none :behavior fisher)"],
[20, "(function none :behavior fisher-fish)"],
[1, "(function none :behavior target)"]
],
"robotboss-misc": [
[5, "(function sparticle-launch-control :behavior finalbosscam)"]
],
"placeholder-do-not-add-below": []
}
+9 -4
View File
@@ -353,9 +353,6 @@
"(method 27 ropebridge)",
// all unchecked and in level DGO code
"(anon-function 11 robotboss)",
"(anon-function 18 robotboss)",
"(anon-function 49 robotboss)",
"(anon-function 21 plant-boss)",
"(anon-function 10 ice-cube)",
"(anon-function 15 ice-cube)",
@@ -548,7 +545,15 @@
"particle-adgif",
"sp-launch-particles-var",
"sp-process-block-2d",
"sp-process-block-3d"
"sp-process-block-3d",
"draw-large-polygon",
"clip-polygon-against-positive-hyperplane",
"clip-polygon-against-negative-hyperplane",
"render-sky-quad",
"render-sky-tri",
"init-sky-regs",
"set-tex-offset",
"adgif-shader<-texture-with-update!"
]
}
@@ -803,6 +803,217 @@
["L733", "uint64", true]
],
"sky": [
["L13", "vu-function"]
],
"sky-tng": [
["L82", "sky-work"],
// 576 bytes, 32 bytes each
["L81", "(inline-array sky-vertex)", 12],
["L80", "(inline-array sky-vertex)", 12],
["L79", "(inline-array sky-vertex)", 72],
["L78", "(pointer uint8)", 48],
["L77", "vector"],
["L76", "vector"]
],
"effect-control": [
["L300", "float", true],
["L301", "float", true],
["L302", "float", true],
["L306", "float", true],
["L307", "float", true],
["L309", "float", true],
["L310", "float", true],
["L312", "float", true],
["L314", "float", true]
],
"seagull": [
["L226", "(inline-array air-box)", 20]
],
"rolling-race-ring": [
["L94", "vector"],
["L95", "vector"],
["L96", "vector"],
["L97", "vector"],
["L98", "vector"],
["L99", "vector"],
["L100", "vector"]
],
"part-tester": [
["L32", "uint64", true]
],
"anim-tester": [
["L509", "(inline-array list-field)", 12],
["L523", "vector"],
["L524", "vector"],
["L649", "(pointer float)", 1],
["L650", "(pointer float)", 1],
["L651", "(pointer float)", 1],
["L652", "(pointer float)", 1],
["L653", "(pointer float)", 1],
["L654", "(pointer float)", 1],
["L655", "(pointer float)", 1],
["L656", "(pointer float)", 1],
["L657", "uint64", true],
["L658", "uint64", true],
["L663", "uint64", true],
["L664", "uint64", true],
["L665", "uint64", true],
["L666", "uint64", true],
["L667", "uint64", true],
["L668", "uint64", true],
["L669", "uint64", true],
["L670", "uint64", true]
],
"fisher-JUN": [
["L262", "vector"],
["L463", "(array (inline-array fisher-params))"]
],
"fisher-JUNGLE-L1": [
["L262", "vector"],
["L463", "(array (inline-array fisher-params))"]
],
"robotboss-weapon": [
["L122", "attack-info"],
["L127", "attack-info"],
["L138", "attack-info"],
["L144", "vector4w"],
["L145", "vector"]
],
"robotboss-misc": [
["L99", "vector"]
],
"robotboss": [
["L646", "attack-info"],
["L647", "attack-info"],
["L651", "vector"],
["L654", "vector"],
["L655", "vector"],
["L656", "vector"],
["L657", "vector"],
["L658", "vector"],
["L659", "vector"],
["L660", "vector"],
["L661", "vector"],
["L662", "vector"],
["L678", "vector"],
["L669", "vector"],
["L701", "vector"],
["L702", "vector"],
["L703", "vector"],
["L705", "vector"],
["L642", "robotboss-dda"],
["L643", "robotboss-dda"],
["L644", "robotboss-dda"],
["L645", "robotboss-dda"],
["L632", "robotboss-dda"],
["L713", "float", true],
["L714", "float", true],
["L715", "float", true],
["L716", "float", true],
["L717", "float", true],
["L718", "float", true],
["L719", "float", true],
["L720", "float", true],
["L721", "float", true],
["L722", "float", true],
["L723", "float", true],
["L724", "float", true],
["L725", "float", true],
["L726", "float", true],
["L727", "float", true],
["L728", "float", true],
["L729", "float", true],
["L730", "float", true],
["L731", "float", true],
["L732", "float", true],
["L733", "float", true],
["L734", "float", true],
["L735", "float", true],
["L736", "float", true],
["L737", "float", true],
["L738", "float", true],
["L739", "float", true],
["L740", "float", true],
["L741", "float", true],
["L742", "float", true],
["L743", "float", true],
["L744", "float", true],
["L745", "float", true],
["L746", "float", true],
["L747", "float", true],
["L748", "float", true],
["L749", "float", true],
["L750", "float", true],
["L751", "float", true],
["L752", "float", true],
["L753", "float", true],
["L754", "float", true],
["L755", "float", true],
["L756", "float", true],
["L757", "float", true],
["L758", "float", true],
["L759", "float", true],
["L760", "float", true],
["L761", "float", true],
["L762", "float", true],
["L763", "float", true],
["L764", "float", true],
["L765", "float", true],
["L766", "float", true],
["L767", "float", true],
["L768", "(pointer float)", 1],
["L769", "float", true],
["L770", "float", true],
["L771", "float", true],
["L772", "float", true],
["L773", "float", true],
["L774", "float", true],
["L775", "float", true],
["L776", "float", true],
["L777", "float", true],
["L778", "float", true],
["L779", "float", true],
["L780", "float", true],
["L781", "float", true],
["L782", "float", true],
["L783", "float", true],
["L784", "float", true],
["L785", "float", true],
["L786", "float", true],
["L787", "float", true],
["L788", "float", true],
["L789", "float", true],
["L790", "float", true],
["L791", "float", true],
["L792", "float", true],
["L793", "float", true],
["L794", "float", true],
["L795", "float", true],
["L796", "float", true],
["L797", "float", true],
["L798", "float", true],
["L799", "float", true],
["L800", "float", true],
["L801", "uint64", true],
["L802", "uint64", true],
["L803", "uint64", true],
["L804", "uint64", true],
["L814", "float", true],
["L815", "uint64", true],
["L816", "uint64", true]
],
// please do not add things after this entry! git is dumb.
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
}
@@ -1201,7 +1201,8 @@
],
"update-time-of-day": [
[16, "(array float)"] // TODO - broken!
[16, "(array float)"], // TODO - broken!
[48, "vector"]
],
"check-drop-level-rain": [
@@ -1854,7 +1855,7 @@
"(method 11 wall-plat)": [
[16, "vector"]
],
"(code plunger-lurker-plunge)": [[16, "event-message-block"]],
"(event flying-lurker-fly)": [[16, "event-message-block"]],
"(trans flying-lurker-fly)": [[16, "event-message-block"]],
@@ -1881,7 +1882,7 @@
[144, "vector"],
[160, "vector"]
],
"(method 18 collide-cache)": [[16, "collide-cache-prim"]],
"kill-current-level-hint": [[16, "event-message-block"]],
@@ -1916,7 +1917,7 @@
"sparticle-60-to-50":[
[16, "quaternion"]
],
],
"sp-orbiter":[
[16, "vector"],
@@ -1952,9 +1953,7 @@
],
"(method 10 gui-query)": [
[16, "font-context"],
[112, "font-context"],
[208, "font-context"]
[16, "font-context"]
],
"(method 46 process-taskable)": [
@@ -2735,5 +2734,244 @@
[16, "event-message-block"]
],
"(method 10 effect-control)": [
[16, "event-message-block"],
[96, "vector"],
[112, "vector"],
[128, "vector"],
[144, "vector"]
],
"(method 11 effect-control)": [
[16, "vector"],
[32, "vector"]
],
"(method 12 effect-control)": [
[16, "sound-spec"],
[96, "vector"]
],
"(code helix-button-startup)": [
[16, "vector"]
],
"(method 43 green-eco-lurker)": [
[16, "event-message-block"]
],
"(method 73 green-eco-lurker)": [
[16, "event-message-block"]
],
"citb-sagecage-draw-bars": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"(code sunken-pipegame-start-up)": [
[16, "event-message-block"]
],
"(code race-ring-active)": [
[16, "event-message-block"],
[96, "vector"]
],
"(method 11 race-ring)": [
[16, "vector"],
[32, "vector"]
],
"init-sky-regs": [
[16, "vector"]
],
"set-tex-offset": [
[16, "vector"]
],
"sky-tng-setup-cloud-layer": [
[16,["inline-array", "sky-vertex", 12]]
],
"fisher-fish-move": [[16, "vector"]],
"fisher-fish-water": [[16, "vector"]],
"(trans play-accept fisher)": [[16, "vector"]],
"(method 11 fisher)": [[16, "vector"]],
"(code fisher-fish-caught)": [[16, "event-message-block"]],
"(code fisher-fish-die)": [[16, "event-message-block"]],
"(exit fisher-done)": [[16, "event-message-block"]],
"(enter fisher-done)": [[16, "event-message-block"]],
"(event fisher-playing)": [[16, "event-message-block"]],
"(enter fisher-playing)": [[16, "event-message-block"]],
"(exit fisher-playing)": [[16, "event-message-block"]],
"(trans enter-playing fisher)": [[16, "event-message-block"]],
"(code target-fishing)": [
[16, "event-message-block"],
[96, "vector"],
[112, "quaternion"],
[128, "quaternion"],
[144, "quaternion"]
],
"(method 43 fisher)": [
[16, "vector"],
[32, "vector"]
],
"fisher-draw-display": [[16, "font-context"]],
"(method 10 torus)": [
[16, "vector"],
[32, "vector"]
],
"(method 12 torus)": [[16, "matrix"]],
"redshot-trans": [[16, "matrix"]],
"(trans redshot-explode)": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"]
],
"(code darkecobomb-explode)": [[16, "event-message-block"]],
"(event yellowshot-idle)": [[16, "event-message-block"]],
"(trans yellowshot-idle)": [[16, "event-message-block"]],
"(trans darkecobomb-countdown)": [[16, "vector"]],
"arcing-shot-draw": [
[16, "vector"],
[32, "vector"]
],
"(method 9 torus)": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "matrix"],
[128, ["inline-array", "vector", 8]]
],
"(method 32 finalbosscam)": [[16, "event-message-block"]],
"(code cam-robotboss)": [
[16, "vector"],
[32, "vector"]
],
"ecoclaw-beam-particle-callback": [[16, "vector"]],
"robotboss-manipy-trans-hook": [[16, "vector"]],
"robotboss-redshot": [[16, "vector"]],
"robotboss-cut-cam": [[16, "vector"]],
"robotboss-yellowshot": [
[16, "vector"],
[32, "vector"],
[48, "event-message-block"]
],
"(trans robotboss-white-eco-movie)": [[16, "vector"]],
"(code robotboss-red-wait)": [
[16, "vector"],
[32, "redshot-launch-info"]
],
"(trans robotboss-yellow-wait)": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"]
],
"robotboss-setup-for-hits": [
[16, "sphere"],
[32, "event-message-block"]
],
"robotboss-position": [
[16, "vector"],
[32, "matrix"],
[96, "event-message-block"],
[176, "vector"]
],
"robotboss-shooting-trans": [
[16, "vector"],
[32, "event-message-block"]
],
"robotboss-darkecobomb": [
[16, "vector"],
[32, "vector"]
],
"robotboss-redshot-fill-array": [
[16, "vector"],
[32, "vector"]
],
"robotboss-blue-beam": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "collide-mesh-cache-tri"],
[160, "vector"],
[176, "event-message-block"]
],
"robotboss-bomb-handler": [[16, "event-message-block"]],
"robotboss-blue-done": [[16, "event-message-block"]],
"(exit robotboss-blue-wait)": [[16, "event-message-block"]],
"(enter robotboss-blue-wait)": [[16, "event-message-block"]],
"(exit robotboss-green-wait)": [[16, "event-message-block"]],
"(event robotboss-green-wait)": [[16, "event-message-block"]],
"(trans robotboss-red-wait)": [
[16, "event-message-block"],
[96, "vector"]
],
"(exit robotboss-red-wait)": [[16, "event-message-block"]],
"(exit robotboss-yellow-wait)": [[16, "event-message-block"]],
"(code robotboss-white-eco-movie)": [[16, "event-message-block"]],
"(event robotboss-yellow-dark-bomb-wait)": [[16, "event-message-block"]],
"(exit robotboss-yellow-dark-bomb-wait)": [[16, "event-message-block"]],
"(code robotboss-daxter-sacrifice-movie)": [[16, "event-message-block"]],
"robotboss-greenshot": [
[16, "vector"],
[32, "vector"]
],
"(trans robotboss-blue-wait)": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"]
],
"(code robotboss-blue-wait)": [[16, "event-message-block"]],
"(method 44 green-eco-lurker)": [[16, "event-message-block"]],
"(method 72 green-eco-lurker)": [[16, "event-message-block"]],
"(enter nav-enemy-die green-eco-lurker)": [[16, "event-message-block"]],
"(event spawn-minions)": [[16, "event-message-block"]],
"(method 51 green-eco-lurker)": [[16, "vector"]],
"(enter green-eco-lurker-appear)": [
[16, "vector"],
[32, "vector"]
],
"(code spawn-minions)": [
[16, "vector"],
[32, "event-message-block"]
],
"check-drop-level-lighteco-big-pops": [[16, "vector"]],
"check-drop-level-lighteco-pops": [[16, "vector"]],
"(method 20 light-eco-child)": [[16, "vector"]],
"light-eco-child-default-event-handler": [[16, "event-message-block"]],
"(code light-eco-child-die)": [[16, "event-message-block"]],
"light-eco-mother-default-event-handler": [[16, "event-message-block"]],
"(trans light-eco-child-hit-ground)": [[16, "vector"]],
"(method 21 light-eco-mother)": [[16, "vector"]],
"(method 20 light-eco-mother)": [[16, "vector"]],
"placeholder-do-not-add-below!": []
}
+413 -23
View File
@@ -1335,6 +1335,7 @@
],
"(method 0 anim-test-seq-item)": [
[7, "v0", "anim-test-seq-item"],
[8, "v1", "anim-test-seq-item"],
[10, "v0", "anim-test-seq-item"],
[11, "v0", "anim-test-seq-item"],
@@ -1444,14 +1445,17 @@
"anim-test-obj-list-handler": [
[25, "s5", "anim-test-obj"],
[31, "s5", "anim-test-obj"],
[[50, 53], "v1", "dma-packet"],
[110, "s5", "anim-test-obj"],
[166, "s5", "anim-test-obj"],
[112, "v1", "anim-tester"]
[112, "v1", "anim-tester"],
[[202, 205], "v1", "dma-packet"]
],
"anim-test-anim-list-handler": [
[2, "s5", "anim-test-obj"],
[25, "s5", "anim-test-obj"],
[[44, 47], "v1", "dma-packet"],
[65, "s5", "anim-test-obj"],
[227, "s5", "anim-test-obj"],
[90, "v1", "anim-test-obj"],
@@ -1465,13 +1469,15 @@
[167, "v1", "anim-test-obj"],
[169, "v1", "anim-test-obj"],
[171, "v1", "anim-test-obj"],
[173, "v1", "anim-test-obj"]
[173, "v1", "anim-test-obj"],
[[263, 266], "v1", "dma-packet"]
],
"anim-test-sequence-list-handler": [
[2, "s5", "anim-test-sequence"],
[25, "s5", "anim-test-sequence"],
[31, "s5", "anim-test-sequence"],
[[50, 53], "v1", "dma-packet"],
[71, "s5", "anim-test-sequence"],
[231, "s5", "anim-test-sequence"],
[96, "v1", "anim-test-sequence"],
@@ -1481,10 +1487,16 @@
[136, "v1", "anim-test-sequence"],
[137, "v1", "anim-test-sequence"],
[146, "v1", "anim-test-sequence"],
[151, "v1", "anim-test-sequence"]
[151, "v1", "anim-test-sequence"],
[[267, 270], "v1", "dma-packet"]
],
"anim-test-edit-sequence-list-handler": [
[[82, 85], "v1", "dma-packet"],
[[148, 151], "v1", "dma-packet"],
[[323, 326], "v1", "dma-packet"],
[[979, 982], "v1", "dma-packet"],
[[1028, 1031], "v1", "dma-packet"],
[[122, 965], "s4", "anim-test-sequence"],
[129, "v1", "glst-named-node"],
[[128, 909], "gp", "anim-test-seq-item"],
@@ -1499,26 +1511,37 @@
"anim-tester-interface": [
[[34, 48], "gp", "anim-test-obj"],
[[70, 73], "v1", "dma-packet"],
[[131, 134], "v1", "dma-packet"],
[[189, 192], "v1", "dma-packet"],
[[228, 231], "v1", "dma-packet"],
[[95, 109], "gp", "anim-test-obj"],
[[156, 160], "v1", "anim-test-obj"],
[[162, 165], "v1", "anim-test-sequence"]
],
"anim-tester-get-playing-item": [
[7, "v0", "anim-test-seq-item"],
[4, "t9", "(function glst-list int anim-test-seq-item)"],
[20, "t9", "(function glst-list int anim-test-seq-item)"],
[[5, 22], "s5", "anim-test-seq-item"],
[21, "v0", "anim-test-seq-item"],
[25, "v0", "anim-test-seq-item"]
[25, "v0", "anim-test-seq-item"],
[5, "v0", "anim-test-seq-item"]
],
"anim-tester-add-newobj": [
["_stack_", 128, "anim-test-obj"],
[[2, 185], "s2", "anim-test-obj"],
[[70, 193], "s5", "anim-test-obj"],
[149, "v1", "anim-test-sequence"],
[154, "v1", "anim-test-sequence"],
[160, "v1", "anim-test-sequence"],
[164, "a0", "art-joint-anim"],
[170, "a0", "art-joint-anim"]
[168, "v1", "anim-test-seq-item"],
[168, "v1", "anim-test-seq-item"],
[170, "a0", "art-joint-anim"],
[171, "v1", "anim-test-seq-item"],
[173, "v1", "anim-test-seq-item"]
],
"anim-tester-start": [[20, "t9", "(function process function none)"]],
@@ -2612,23 +2635,6 @@
[[15, 250], "s5", "symbol"]
],
"time-of-day-update": [
[[0, 999], "s6", "time-of-day-proc"]
],
"(anon-function 10 time-of-day)": [
[[0, 999], "s6", "time-of-day-proc"]
],
"init-time-of-day": [
[[0, 999], "s6", "time-of-day-proc"],
[[51, 54], "t9", "(function object object object)"]
],
"start-time-of-day": [
[[20, 23], "t9", "(function process function object)"]
],
"cam-master-effect": [
[[0, 999], "s6", "camera-master"]
],
@@ -3912,5 +3918,389 @@
[2, "v1", "(pointer process-drawable)"]
],
"update-time-of-day": [
[46, "v0", "(array float)"]
],
"sky-make-light": [
[[10, 23], "a0", "sky-sun-data"]
],
"make-sky-textures": [
[[90, 94], "a0", "dma-packet"],
[[100, 103], "a0", "gs-gif-tag"],
[108, "a0", "(pointer gs-alpha)"],
[110, "a0", "(pointer gs-reg64)"],
[[121, 124], "v1", "dma-packet"]
],
"copy-cloud-texture": [
[[2, 48], "s5", "(pointer uint128)"],
[[28, 32], "s4", "adgif-shader"]
],
"copy-sky-texture": [
[[2, 48], "s5", "(pointer uint128)"],
[[28, 32], "s4", "adgif-shader"]
],
"render-sky-tng": [
[[244, 262], "s2", "(inline-array sky-vertex)"],
[[34, 38], "a0", "dma-packet"],
[[44, 47], "a0", "gs-gif-tag"],
[52, "a0", "(pointer gs-zbuf)"],
[54, "a0", "(pointer gs-reg64)"],
[56, "a0", "(pointer gs-test)"],
[58, "a0", "(pointer gs-reg64)"],
[60, "a0", "(pointer gs-alpha)"],
[62, "a0", "(pointer gs-reg64)"],
[[74, 78], "a0", "dma-packet"],
[[84, 87], "a0", "gs-gif-tag"],
[107, "s2", "(pointer gs-tex0)"],
[109, "s2", "(pointer gs-reg64)"],
[111, "s2", "(pointer gs-tex1)"],
[113, "s2", "(pointer gs-reg64)"],
[115, "s2", "(pointer gs-clamp)"],
[117, "s2", "(pointer gs-reg64)"],
[118, "s2", "(pointer uint64)"],
[120, "s2", "(pointer gs-reg64)"],
[[159, 166], "s3", "dma-packet"],
[[171, 175], "a0", "dma-packet"],
[[181, 184], "a0", "gs-gif-tag"],
[189, "s2", "(pointer gs-alpha)"],
[191, "s2", "(pointer gs-reg64)"],
[209, "s2", "(pointer gs-tex0)"],
[211, "s2", "(pointer gs-reg64)"],
[213, "s2", "(pointer gs-tex1)"],
[215, "s2", "(pointer gs-reg64)"],
[216, "s2", "(pointer gs-clamp)"],
[218, "s2", "(pointer gs-reg64)"],
[219, "s2", "(pointer int64)"],
[221, "s2", "(pointer gs-reg64)"],
[[303, 310], "s3", "dma-packet"],
[[312, 316], "v1", "dma-packet"]
],
"render-sky-tri": [
[5, "a0", "int"],
[[6, 50], "a0", "(inline-array sky-vertex)"],
[[25, 48], "a3", "(inline-array sky-vertex)"]
],
"render-sky-quad": [
[[9, 32], "a0", "(inline-array sky-vertex)"],
[[33, 62], "a3", "(inline-array sky-vertex)"]
],
"(method 10 effect-control)": [
[88, "v1", "collide-shape-moving"],
[143, "s3", "(pointer sparticle-launch-group)"],
[147, "s3", "sparticle-launch-group"],
[199, "s3", "sparticle-launch-group"],
[240, "s3", "basic"],
[286, "s3", "basic"],
[346, "s3", "basic"],
[367, "s3", "basic"],
[367, "s3", "basic"],
[[371, 451], "s3", "death-info"]
],
"(post water-vol-idle helix-dark-eco)": [
[4, "t9", "(function none :behavior helix-dark-eco)"]
],
"(code helix-slide-door-close)": [
[10, "v1", "art-joint-anim"]
],
"(code helix-button-startup)": [
[39, "v1", "process-drawable"]
],
"(method 73 green-eco-lurker)": [
[6, "a1", "touching-shapes-entry"]
],
"citb-sagecage-update-collision": [
[2, "a0", "collide-shape-prim-group"]
],
"race-ring-set-particle-rotation-callback": [
[1, "v1", "(pointer race-ring)"]
],
"race-ring-blue-set-particle-rotation-callback": [
[1, "v1", "(pointer race-ring)"]
],
"(code race-ring-active)": [
[242, "v1", "handle"],
[245, "v1", "handle"],
[253, "gp", "handle"],
[269, "s5", "handle"],
[272, "s5", "handle"]
],
"(trans race-ring-active)": [
[26, "a0", "part-tracker"]
],
"(code anim-tester-process)": [
[41, "v1", "anim-test-obj"],
[45, "v1", "anim-test-obj"],
[[40, 114], "s4", "anim-test-obj"],
[82, "v0", "anim-test-sequence"],
[119, "v0", "art-joint-anim"]
],
"display-list-control": [
[[194, 197], "v1", "dma-packet"],
[[423, 426], "v1", "dma-packet"]
],
"anim-tester-disp-frame-num": [
[[75, 78], "v1", "dma-packet"]
],
"fisher-fish-move": [
[9, "v1", "fisher"],
[21, "v1", "fisher"]
],
"(code fisher-fish-fall)": [
[5, "v1", "fisher"],
[60, "v1", "fisher"],
[79, "v1", "fisher"]
],
"(code fisher-fish-caught)": [
[169, "v1", "fisher"]
],
"(code fisher-fish-die)": [
[35, "v1", "fisher"],
[47, "v1", "fisher"],
[90, "v1", "fisher"],
[98, "v1", "fisher"],
[112, "v1", "fisher"],
[129, "v1", "fisher"],
[137, "v1", "fisher"],
[151, "v1", "fisher"],
[165, "v1", "fisher"],
[179, "v1", "fisher"],
[193, "v1", "fisher"],
[205, "v1", "fisher"],
[209, "v1", "fisher"],
[27, "v1", "float"],
[79, "v1", "float"]
],
"(method 38 fisher)": [
[33, "t9", "(function fisher none)"]
],
"(enter fisher-done)": [
[137, "f0", "float"],
[148, "f0", "float"],
[213, "f0", "float"]
],
"fisher-spawn-ambient": [
[8, "v1", "float"]
],
"(method 43 fisher)": [
[27, "v1", "float"],
[69, "v1", "float"]
],
"(trans play-accept fisher)": [
[101, "v0", "state"]
],
"(trans idle fisher)": [
[4, "v0", "state"]
],
"(code idle fisher)": [
[132, "v1", "art-joint-anim"],
[35, "v1", "float"]
],
"(code target-fishing)": [
[163, "v1", "fisher"],
[290, "v1", "art-joint-anim"]
],
"(method 11 torus)": [
[[5, 22], "s4", "collide-shape-prim-group"]
],
"(method 12 torus)": [
[11, "v1", "float"],
[51, "v1", "float"]
],
"(code darkecobomb-countdown)": [
[25, "v1", "art-joint-anim"],
[75, "v1", "art-joint-anim"]
],
"(code darkecobomb-land)": [
[36, "v1", "art-joint-anim"]
],
"(code darkecobomb-idle)": [
[10, "v1", "art-joint-anim"],
[60, "v1", "art-joint-anim"]
],
"redshot-particle-callback": [
[2, "v1", "(pointer redshot)"]
],
"(event cam-robotboss)": [
[5, "v1", "vector"]
],
"ecoclaw-handler": [
[73, "v1", "vector"]
],
"(event idle silodoor)": [
[4, "v1", "float"]
],
"ecoclaw-beam-particle-callback": [
[1, "a0", "(pointer projectile)"],
[3, "a0", "(pointer projectile)"]
],
"(method 32 finalbosscam)": [
[156, "v1", "robotboss"]
],
"(trans ecoclaw-activate)": [
[30, "a0", "part-tracker"]
],
"robotboss-position": [
[109, "a0", "process-drawable"]
],
"robotboss-bomb-handler": [
[6, "v1", "float"]
],
"robotboss-handler": [
[6, "v1", "float"]
],
"(event robotboss-red-wait)": [
[12, "v1", "float"],
[68, "v1", "float"]
],
"(event robotboss-yellow-wait)": [
[12, "v1", "float"],
[68, "v1", "float"]
],
"(code robotboss-white-eco-movie)": [
[189, "v1", "handle"],
[192, "v1", "handle"],
[208, "gp", "handle"],
[211, "gp", "handle"]
],
"(code robotboss-yellow-wait)": [
[336, "v1", "float"],
[365, "v1", "float"],
[530, "v1", "art-joint-anim"]
],
"(code robotboss-red-wait)": [
[153, "v1", "float"],
[287, "v1", "float"],
[339, "v1", "float"],
[500, "v1", "art-joint-anim"]
],
"robotboss-redshot": [
[45, "v1", "float"],
[70, "v1", "float"]
],
"(event robotboss-green-wait)": [
[39, "v1", "float"],
[95, "v1", "float"]
],
"(exit robotboss-yellow-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"(exit robotboss-green-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"(exit robotboss-red-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"(exit robotboss-blue-wait)": [
[50, "v1", "collide-shape-prim-group"],
[54, "v1", "collide-shape-prim-group"]
],
"robotboss-redshot-fill-array": [
[24, "v1", "float"],
[46, "v1", "float"],
[109, "v1", "float"],
[137, "v1", "float"],
[137, "v1", "float"]
],
"(trans robotboss-blue-wait)": [
[254, "v1", "float"]
],
"(code robotboss-blue-wait)": [
[14, "v1", "art-joint-anim"]
],
"(enter green-eco-lurker-appear)": [
[12, "v1", "robotboss"],
[17, "v1", "robotboss"]
],
"(code green-eco-lurker-appear)": [
[42, "v1", "art-joint-anim"],
[93, "v1", "art-joint-anim"]
],
"(code green-eco-lurker-appear-land)": [
[74, "v1", "art-joint-anim"]
],
"(code nav-enemy-chase green-eco-lurker)": [
[55, "v1", "art-joint-anim"]
],
"(code nav-enemy-patrol green-eco-lurker)": [
[8, "t9", "(function none)"]
],
"(trans light-eco-child-hit-ground)": [
[63, "v1", "light-eco-mother"],
[75, "a1", "light-eco-mother"],
[88, "a1", "light-eco-mother"]
],
"placeholder-do-not-add-below": []
}
@@ -3550,5 +3550,11 @@
}
},
"anim-tester-get-playing-item": {
"vars": {
"v0-0": ["v0-0", "anim-test-seq-item"]
}
},
"aaaaaaaaaaaaaaaaaaaaaaa": {}
}
+4
View File
@@ -65,6 +65,10 @@ void DecompilerTypeSystem::parse_type_defs(const std::vector<std::string>& file_
if (dtr.create_runtime_type) {
add_symbol(dtr.type.base_type(), "type");
}
// declare the type's states globally
for (auto& state : dtr.type_info->get_states_declared_for_type()) {
add_symbol(state.name, state.type);
}
} else if (car(o).as_symbol()->name == "declare-type") {
auto* rest = &cdr(o);
+39 -30
View File
@@ -327,16 +327,12 @@ goos::Object decomp_ref_to_inline_array_guess_size(
int my_seg,
int field_location,
const TypeSystem& ts,
const Field& data_field,
const std::vector<std::vector<LinkedWord>>& all_words,
const LinkedObjectFile* file,
const TypeSpec& array_elt_type,
int stride) {
// fmt::print("Decomp decomp_ref_to_inline_array_guess_size {}\n", array_elt_type.print());
// verify that the field is the right type.
assert(data_field.type() == TypeSpec("inline-array", {array_elt_type}));
// verify the stride matches the type system
auto elt_type_info = ts.lookup_type(array_elt_type);
assert(stride == align(elt_type_info->get_size_in_memory(),
@@ -425,12 +421,10 @@ goos::Object ocean_near_indices_decompile(const std::vector<LinkedWord>& words,
int my_seg,
int field_location,
const TypeSystem& ts,
const Field& data_field,
const std::vector<std::vector<LinkedWord>>& all_words,
const LinkedObjectFile* file) {
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts,
data_field, all_words, file,
TypeSpec("ocean-near-index"), 32);
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words,
file, TypeSpec("ocean-near-index"), 32);
}
goos::Object ocean_mid_masks_decompile(const std::vector<LinkedWord>& words,
@@ -438,12 +432,10 @@ goos::Object ocean_mid_masks_decompile(const std::vector<LinkedWord>& words,
int my_seg,
int field_location,
const TypeSystem& ts,
const Field& data_field,
const std::vector<std::vector<LinkedWord>>& all_words,
const LinkedObjectFile* file) {
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts,
data_field, all_words, file,
TypeSpec("ocean-mid-mask"), 8);
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words,
file, TypeSpec("ocean-mid-mask"), 8);
}
goos::Object sp_field_init_spec_decompile(const std::vector<LinkedWord>& words,
@@ -451,12 +443,10 @@ goos::Object sp_field_init_spec_decompile(const std::vector<LinkedWord>& words,
int my_seg,
int field_location,
const TypeSystem& ts,
const Field& data_field,
const std::vector<std::vector<LinkedWord>>& all_words,
const LinkedObjectFile* file) {
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts,
data_field, all_words, file,
TypeSpec("sp-field-init-spec"), 16);
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words,
file, TypeSpec("sp-field-init-spec"), 16);
}
goos::Object sp_launch_grp_launcher_decompile(const std::vector<LinkedWord>& words,
@@ -464,12 +454,10 @@ goos::Object sp_launch_grp_launcher_decompile(const std::vector<LinkedWord>& wor
int my_seg,
int field_location,
const TypeSystem& ts,
const Field& data_field,
const std::vector<std::vector<LinkedWord>>& all_words,
const LinkedObjectFile* file) {
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts,
data_field, all_words, file,
TypeSpec("sparticle-group-item"), 32);
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words,
file, TypeSpec("sparticle-group-item"), 32);
}
} // namespace
@@ -658,19 +646,19 @@ goos::Object decompile_structure(const TypeSpec& type,
// first, get the label:
field_defs_out.emplace_back(
field.name(), ocean_near_indices_decompile(obj_words, labels, label.target_segment,
field_start, ts, field, words, file));
field_start, ts, words, file));
} else if (field.name() == "data" && type.print() == "ocean-mid-masks") {
field_defs_out.emplace_back(
field.name(), ocean_mid_masks_decompile(obj_words, labels, label.target_segment,
field_start, ts, field, words, file));
field_start, ts, words, file));
} else if (field.name() == "init-specs" && type.print() == "sparticle-launcher") {
field_defs_out.emplace_back(
field.name(), sp_field_init_spec_decompile(obj_words, labels, label.target_segment,
field_start, ts, field, words, file));
field_start, ts, words, file));
} else if (field.name() == "launcher" && type.print() == "sparticle-launch-group") {
field_defs_out.emplace_back(field.name(), sp_launch_grp_launcher_decompile(
obj_words, labels, label.target_segment,
field_start, ts, field, words, file));
field_start, ts, words, file));
} else {
if (field.type().base_type() == "pointer") {
if (obj_words.at(field_start / 4).kind != LinkedWord::SYM_PTR) {
@@ -950,15 +938,18 @@ goos::Object decompile_value(const TypeSpec& type,
}
} else if (type == TypeSpec("seconds")) {
assert(bytes.size() == 8);
u64 value;
s64 value;
memcpy(&value, bytes.data(), 8);
// only rewrite if exact.
u64 seconds = value / TICKS_PER_SECOND;
if (seconds * TICKS_PER_SECOND == value) {
return pretty_print::to_symbol(fmt::format("(seconds {})", seconds));
s64 seconds_int = value / TICKS_PER_SECOND;
if (seconds_int * TICKS_PER_SECOND == value) {
return pretty_print::to_symbol(fmt::format("(seconds {})", seconds_int));
}
double seconds = (double)value / TICKS_PER_SECOND;
if (seconds * TICKS_PER_SECOND == value) {
return pretty_print::build_list("seconds", pretty_print::float_representation(seconds));
}
return pretty_print::to_symbol(fmt::format("#x{:x}", value));
} else if (ts.tc(TypeSpec("uint64"), type)) {
assert(bytes.size() == 8);
@@ -1070,6 +1061,23 @@ goos::Object decompile_boxed_array(const DecompilerLabel& label,
}
}
return pretty_print::build_list(result);
} else if (content_type.base_type() == "inline-array") {
std::vector<goos::Object> result = {
pretty_print::to_symbol("new"), pretty_print::to_symbol("'static"),
pretty_print::to_symbol("'boxed-array"),
pretty_print::to_symbol(fmt::format(":type {} :length {} :allocated-length {}",
content_type.print(), array_length,
array_allocated_length))};
for (int elt = 0; elt < array_length; elt++) {
auto& word = words.at(label.target_segment).at(first_elt_word_idx + elt);
auto segment = labels.at(word.label_id).target_segment;
result.push_back(decomp_ref_to_inline_array_guess_size(
words.at(segment), labels, segment, (first_elt_word_idx + elt) * 4, ts, words, file,
content_type.get_single_arg(), ts.get_deref_info(content_type).stride));
}
return pretty_print::build_list(result);
} else {
// value array
@@ -1088,7 +1096,8 @@ goos::Object decompile_boxed_array(const DecompilerLabel& label,
for (int j = start; j < end; j++) {
auto& word = words.at(label.target_segment).at(j / 4);
if (word.kind != LinkedWord::PLAIN_DATA) {
throw std::runtime_error("Got bad word in kind in array of values");
throw std::runtime_error(
fmt::format("Got bad word of kind {} in boxed array of values", word.kind));
}
elt_bytes.push_back(word.get_byte(j % 4));
}
+1
View File
@@ -447,3 +447,4 @@
(define-extern paused? (function symbol))
;; TODO - for cam-start
(define-extern cam-master-init (function none :behavior camera-master))
(define-extern v-slrp3! (function vector vector vector vector float vector))
+8 -73
View File
@@ -5,11 +5,10 @@
;; name in dgo: camera
;; dgos: GAME, ENGINE
;; definition for symbol *cam-res-string*, type string
;; DECOMP BEGINS
(define *cam-res-string* (new 'global 'string 64 (the-as string #f)))
;; definition for function cam-slave-get-vector-with-offset
;; Used lq/sq
(defun
cam-slave-get-vector-with-offset
((arg0 entity-actor) (arg1 vector) (arg2 symbol))
@@ -57,7 +56,6 @@
)
)
;; definition for function cam-slave-get-flags
(defun cam-slave-get-flags ((arg0 entity) (arg1 symbol))
(let ((gp-0 (res-lump-value arg0 arg1 uint128))
(s3-0 (method-of-type res-lump get-property-value))
@@ -98,7 +96,6 @@
)
)
;; definition for function cam-slave-get-float
(defun cam-slave-get-float ((arg0 entity) (arg1 symbol) (arg2 float))
(let ((f30-0 (res-lump-float arg0 arg1 :default arg2))
(s4-0 (method-of-type res-lump get-property-value-float))
@@ -119,7 +116,6 @@
)
)
;; definition for function cam-slave-get-fov
(defun cam-slave-get-fov ((arg0 entity))
(let ((f30-0 (res-lump-float arg0 'fov))
(s5-0 (method-of-type res-lump get-property-value-float))
@@ -146,7 +142,6 @@
)
)
;; definition for function cam-slave-get-intro-step
(defun cam-slave-get-intro-step ((arg0 entity))
(let ((f30-0 (res-lump-float arg0 'intro-time))
(s5-0 (method-of-type res-lump get-property-value-float))
@@ -176,7 +171,6 @@
)
)
;; definition for function cam-slave-get-interp-time
(defun cam-slave-get-interp-time ((arg0 entity))
(let ((f30-0 (res-lump-float arg0 'interpTime))
(s5-0 (method-of-type res-lump get-property-value-float))
@@ -206,7 +200,6 @@
)
)
;; definition for function cam-slave-get-rot
(defun cam-slave-get-rot ((arg0 entity-actor) (arg1 quaternion))
(let ((s4-0 (method-of-type res-lump get-property-struct))
(s3-0 arg0)
@@ -242,7 +235,6 @@
arg1
)
;; definition for function cam-state-from-entity
(defun cam-state-from-entity ((arg0 entity))
(let ((s5-0 (new 'stack 'curve)))
(cond
@@ -268,12 +260,10 @@
)
)
;; definition for function parameter-ease-none
(defun parameter-ease-none ((arg0 object))
arg0
)
;; definition for function parameter-ease-clamp
(defun parameter-ease-clamp ((arg0 float))
(cond
((>= arg0 1.0)
@@ -286,7 +276,6 @@
arg0
)
;; definition for function parameter-ease-lerp-clamp
(defun parameter-ease-lerp-clamp ((arg0 float))
(cond
((>= arg0 1.0)
@@ -307,7 +296,6 @@
)
)
;; definition for function parameter-ease-sqrt-clamp
(defun parameter-ease-sqrt-clamp ((arg0 float))
(cond
((>= arg0 1.0)
@@ -325,19 +313,16 @@
)
)
;; definition for function fourth-power
(defun fourth-power ((arg0 float))
(let ((f0-2 (* arg0 arg0)))
(* f0-2 f0-2)
)
)
;; definition for function third-power
(defun third-power ((arg0 float))
(* arg0 arg0 arg0)
)
;; definition for function parameter-ease-sqr-clamp
(defun parameter-ease-sqr-clamp ((arg0 float))
(cond
((>= arg0 1.0)
@@ -364,7 +349,6 @@
)
)
;; definition for function parameter-ease-sin-clamp
(defun parameter-ease-sin-clamp ((arg0 float))
(cond
((>= arg0 1.0)
@@ -379,8 +363,6 @@
)
)
;; definition for method 9 of type cam-index
;; Used lq/sq
(defmethod
dummy-9
cam-index
@@ -391,10 +373,9 @@
(-> obj flags)
(the-as uint (cam-slave-get-flags arg1 (string->symbol *res-key-string*)))
)
(let
((s3-2 (res-lump-data arg1 arg0 pointer))
(s0-1 (method-of-type res-lump get-property-struct))
)
(let ((s3-2 (res-lump-data arg1 arg0 pointer))
(s0-1 (method-of-type res-lump get-property-struct))
)
(set! sv-32 format)
(let ((a0-7 (clear *res-key-string*))
(a1-4 "~S~S")
@@ -485,8 +466,6 @@
#t
)
;; definition for method 10 of type cam-index
;; Used lq/sq
(defmethod dummy-10 cam-index ((obj cam-index) (arg0 vector))
(let ((s5-0 (new-stack-vector0)))
0.0
@@ -506,9 +485,6 @@
)
)
;; definition for method 10 of type tracking-spline
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod TODO-RENAME-10 tracking-spline ((obj tracking-spline) (arg0 vector))
(set! (-> obj point 0 position quad) (-> arg0 quad))
(set! (-> obj point 0 next) -134250495)
@@ -533,8 +509,6 @@
(none)
)
;; definition for method 13 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-13 tracking-spline ((obj tracking-spline) (arg0 int))
(let ((v1-3 (-> obj point arg0 next)))
(cond
@@ -578,8 +552,6 @@
(none)
)
;; definition for method 14 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-14 tracking-spline ((obj tracking-spline) (arg0 vector))
(let ((v1-0 (-> obj used-point)))
(set! (-> obj partial-point) (-> arg0 y))
@@ -630,8 +602,6 @@
(none)
)
;; definition for method 15 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-15 tracking-spline ((obj tracking-spline))
(let ((s5-0 (new 'stack-no-clear 'tracking-spline-sampler)))
(let ((a2-0 (new 'stack-no-clear 'tracking-point)))
@@ -691,8 +661,6 @@
(none)
)
;; definition for method 16 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-16 tracking-spline ((obj tracking-spline) (arg0 float))
(let ((s4-0 (new 'stack-no-clear 'tracking-spline-sampler)))
(let ((a2-0 (new 'stack-no-clear 'vector)))
@@ -748,8 +716,6 @@
(none)
)
;; definition for method 17 of type tracking-spline
;; Used lq/sq
(defmethod
TODO-RENAME-17
tracking-spline
@@ -798,7 +764,6 @@
0
)
;; definition for method 18 of type tracking-spline
(defmethod
TODO-RENAME-18
tracking-spline
@@ -864,7 +829,6 @@
(the-as vector #f)
)
;; definition for method 19 of type tracking-spline
(defmethod
TODO-RENAME-19
tracking-spline
@@ -878,8 +842,6 @@
arg1
)
;; definition for method 20 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod
TODO-RENAME-20
tracking-spline
@@ -989,8 +951,6 @@
(none)
)
;; definition for method 21 of type tracking-spline
;; Used lq/sq
(defmethod
TODO-RENAME-21
tracking-spline
@@ -1052,8 +1012,6 @@
arg0
)
;; definition for method 22 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-22 tracking-spline ((obj tracking-spline) (arg0 float))
(when (< arg0 (-> obj summed-len))
(let ((s5-0 (new 'stack-no-clear 'tracking-spline-sampler)))
@@ -1069,8 +1027,6 @@
(none)
)
;; definition for method 9 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-9 tracking-spline ((obj tracking-spline))
(let ((v1-0 (-> obj used-point))
(s4-0 0)
@@ -1123,8 +1079,6 @@
(none)
)
;; definition for function cam-slave-init-vars
;; Used lq/sq
(defbehavior cam-slave-init-vars camera-slave ()
(cond
(*camera*
@@ -1212,13 +1166,11 @@
(none)
)
;; definition for function cam-slave-go
;; INFO: Return type mismatch int vs none.
(defun cam-slave-go ((arg0 camera-slave))
(defun cam-slave-go ((arg0 state))
(with-pp
(cam-slave-init-vars)
(let ((t9-1 (the-as (function object) enter-state)))
(set! (-> pp next-state) (the-as state arg0))
(set! (-> pp next-state) arg0)
(t9-1)
)
0
@@ -1226,8 +1178,6 @@
)
)
;; definition for function cam-slave-init
;; INFO: Return type mismatch int vs none.
(defbehavior cam-slave-init camera-slave ((arg0 state) (arg1 entity))
(stack-size-set! (-> self main-thread) 512)
(change-to-last-brother self)
@@ -1252,7 +1202,7 @@
(set! (-> a1-3 param 0) (the-as uint self))
(let ((t9-4 send-event-function))
(set! a0-4 *camera*)
(t9-4 (the-as process a0-4) a1-3)
(t9-4 (the-as camera-master a0-4) a1-3)
)
)
)
@@ -1273,13 +1223,10 @@
(none)
)
;; definition for function cam-standard-event-handler
;; INFO: Return type mismatch none vs object.
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; Used lq/sq
(defbehavior
cam-standard-event-handler camera-slave
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -1361,8 +1308,6 @@
)
)
;; definition for function cam-curve-pos
;; Used lq/sq
(defbehavior
cam-curve-pos camera-slave
((arg0 vector) (arg1 vector) (arg2 curve) (arg3 symbol))
@@ -1456,8 +1401,6 @@
arg0
)
;; definition for function cam-curve-setup
;; INFO: Return type mismatch int vs none.
(defbehavior cam-curve-setup camera-slave ((arg0 vector))
(when
(get-curve-data!
@@ -1513,8 +1456,6 @@
(none)
)
;; definition for function cam-calc-follow!
;; Used lq/sq
(defun cam-calc-follow! ((arg0 cam-rotation-tracker) (arg1 vector) (arg2 symbol))
(with-pp
(cond
@@ -1684,8 +1625,6 @@
)
)
;; definition for function mat-remove-z-rot
;; Used lq/sq
(defun mat-remove-z-rot ((arg0 matrix) (arg1 vector))
(let ((s4-0 (new-stack-vector0)))
0.0
@@ -1711,8 +1650,6 @@
arg0
)
;; definition for function slave-matrix-blend-2
;; Used lq/sq
(defun
slave-matrix-blend-2
((arg0 matrix) (arg1 float) (arg2 vector) (arg3 matrix))
@@ -1775,8 +1712,6 @@
)
)
;; definition for function vector-into-frustum-nosmooth!
;; Used lq/sq
(defun vector-into-frustum-nosmooth! ((arg0 matrix) (arg1 vector) (arg2 float))
(local-vars
(sv-112 (inline-array vector))
+3 -2
View File
@@ -211,7 +211,8 @@
(deftype collide-shape-prim-group (collide-shape-prim)
((num-prims int32 :offset-assert 72)
(allocated-prims int32 :offset-assert 76)
(prim uint32 1 :offset-assert 80) ; array of references
(prim collide-shape-prim 1 :offset-assert 80)
(prims collide-shape-prim :dynamic :score 20 :offset 80) ;; added
)
:method-count-assert 30
:size-assert #x54
@@ -375,7 +376,7 @@
(set! (-> obj prim-core prim-type) 0)
(while (nonzero? elt-count)
(+! elt-count -1)
(set! (-> obj prim elt-count) (the uint #f))
(set! (-> obj prim elt-count) (the collide-shape-prim #f))
(nop!)
)
obj
+2 -1
View File
@@ -121,10 +121,11 @@
(unknown-dword40 int64 :offset 2160) ;; from logic-target::target-compute-edge
(unknown-dword41 int64 :offset 2168) ;; from logic-target::target-compute-edge
(unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole
(unknown-int11 int32 :offset 2184) ;; from (anon-function 1 basebutton)
(unknown-symbol20 symbol :offset 2184) ;; from (anon-function 1 basebutton)
(unknown-int20 int32 :offset 2188) ;; from logic-target::target-compute-pole
(unknown-vector102 vector :inline :offset 2224) ;; from (anon-function 3 basebutton)
(unknown-vector103 vector :inline :offset 2240) ;; from (anon-function 3 basebutton)
(unknown-smush00 smush-control :inline :offset 2288) ;; from (event target-fishing)
(unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup
(unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup
(unknown-int30 int32 :offset 2384) ;; from target-util::target-danger-set!
+1 -1
View File
@@ -292,7 +292,7 @@
(new (symbol type process art-joint-geo) _type_ 0)
(dummy-9 (_type_) (pointer int8) 9)
(dummy-10 (_type_ int) int 10)
(dummy-11 (_type_ pointer) int 11)
(dummy-11 (_type_ lod-set) none 11)
)
)
+2 -2
View File
@@ -11,7 +11,7 @@
(define-extern *compact-actors* symbol)
(define-extern find-instance-by-name (function string instance))
(define-extern *edit-instance* string)
(define-extern cam-free-floating state)
(define-extern cam-free-floating (state camera-slave))
(define-extern cam-standoff state)
(define-extern cam-pov state)
(define-extern cam-pov180 state)
@@ -26,7 +26,7 @@
(define-extern cam-eye state)
(define-extern cam-point-watch state)
(define-extern cam-orbit state)
(define-extern cam-robotboss state)
(define-extern cam-robotboss (state camera-slave))
(define-extern cam-layout-stop (function none))
(define-extern cam-layout-start (function none))
(define-extern prototype-bucket-recalc-fields (function instance none))
+1 -1
View File
@@ -219,7 +219,7 @@
((obj collide-shape-prim-group) (arg0 int))
(&+! (-> obj cshape) arg0)
(countdown (v1-2 (-> obj num-prims))
(+! (-> obj prim v1-2) arg0)
(&+! (-> obj prims v1-2) arg0)
)
obj
)
+1 -1
View File
@@ -28,7 +28,7 @@
(water water-control :offset-assert 156)
(sound ambient-sound :offset-assert 160)
(state-flags uint32 :offset-assert 164)
(state-time seconds :offset-assert 168)
(state-time int64 :offset-assert 168)
)
:heap-base #x40
:method-count-assert 20
+7 -5
View File
@@ -12,6 +12,8 @@
(define-extern ja-anim-done? (function symbol))
(define-extern draw-eco-beam (function vector vector none))
;; decomp begins
(deftype manipy (process-drawable)
@@ -24,7 +26,7 @@
(cur-grab-handle handle :offset-assert 208)
(cur-target-handle handle :offset-assert 216)
(old-grab-pos vector :inline :offset-assert 224)
(joint joint 4 :offset-assert 240)
(joint process-drawable 4 :offset-assert 240)
(new-post-hook function :offset-assert 256)
(cur-post-hook function :offset-assert 260)
(clone-copy-trans basic :offset-assert 264)
@@ -133,10 +135,10 @@
(deftype gui-query (structure)
((x-position int32 :offset-assert 0)
(y-position int32 :offset-assert 4)
(message symbol :offset-assert 8) ;; a guess, i suspect its an `event-message-block`
(message string :offset-assert 8)
(decision symbol :offset-assert 12)
(only-allow-cancel symbol :offset-assert 16)
(no-msg symbol :offset-assert 20)
(no-msg string :offset-assert 20)
(message-space int32 :offset-assert 24)
)
:pack-me
@@ -144,8 +146,8 @@
:size-assert #x1c
:flag-assert #xb0000001c
(:methods
(init! (_type_ symbol int int int symbol symbol) none 9)
(dummy-10 (_type_) symbol 10)
(init! (_type_ string int int int symbol string) none 9)
(get-response (_type_) symbol 10)
)
)
+7 -88
View File
@@ -5,7 +5,8 @@
;; name in dgo: projectiles
;; dgos: GAME, ENGINE
;; definition of type search-info
;; DECOMP BEGINS
(deftype search-info (structure)
((point vector :inline :offset-assert 0)
(best-point vector :inline :offset-assert 16)
@@ -24,11 +25,9 @@
:flag-assert #x900000054
)
;; definition for symbol *search-info*, type search-info
(define *search-info* (new 'global 'search-info))
;; definition for function find-nearest-attackable
;; Used lq/sq
(defun
find-nearest-attackable
((arg0 vector)
@@ -197,9 +196,6 @@
)
)
;; definition for function projectile-collision-reaction
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun
projectile-collision-reaction
((arg0 collide-shape-moving)
@@ -318,7 +314,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 102)
(new 'static 'sparticle-launch-group
@@ -367,7 +362,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 349)
(new 'static 'sparticle-launcher
@@ -386,7 +380,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 350)
(new 'static 'sparticle-launcher
@@ -412,7 +405,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 351)
(new 'static 'sparticle-launcher
@@ -438,7 +430,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 352)
(new 'static 'sparticle-launcher
@@ -463,7 +454,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 353)
(new 'static 'sparticle-launcher
@@ -497,7 +487,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 354)
(new 'static 'sparticle-launcher
@@ -509,7 +498,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 103)
(new 'static 'sparticle-launch-group
@@ -545,7 +533,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 355)
(new 'static 'sparticle-launcher
@@ -570,7 +557,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 357)
(new 'static 'sparticle-launcher
@@ -601,7 +587,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 356)
(new 'static 'sparticle-launcher
@@ -631,7 +616,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 360)
(new 'static 'sparticle-launcher
@@ -661,7 +645,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 358)
(new 'static 'sparticle-launcher
@@ -684,7 +667,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 361)
(new 'static 'sparticle-launcher
@@ -707,7 +689,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 359)
(new 'static 'sparticle-launcher
@@ -738,7 +719,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 104)
(new 'static 'sparticle-launch-group
@@ -758,7 +738,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2060)
(new 'static 'sparticle-launcher
@@ -789,7 +768,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2063)
(new 'static 'sparticle-launcher
@@ -804,7 +782,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2062)
(new 'static 'sparticle-launcher
@@ -828,7 +805,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2059)
(new 'static 'sparticle-launcher
@@ -850,7 +826,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2061)
(new 'static 'sparticle-launcher
@@ -883,7 +858,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2064)
(new 'static 'sparticle-launcher
@@ -898,8 +872,6 @@
)
)
;; definition for method 24 of type projectile
;; INFO: Return type mismatch int vs none.
(defmethod dummy-24 projectile ((obj projectile))
(spawn
(-> obj part)
@@ -909,14 +881,11 @@
(none)
)
;; definition for method 28 of type projectile
;; INFO: Return type mismatch int vs none.
(defmethod dummy-28 projectile ((obj projectile))
0
(none)
)
;; failed to figure out what this is:
(defstate projectile-moving (projectile)
:virtual #t
:event
@@ -996,10 +965,7 @@
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:code
@@ -1007,7 +973,7 @@
(let ((gp-0 #f))
(while
(<
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (-> self timeout))
)
(let ((s5-0 (the int (-> *display* time-ratio))))
@@ -1087,9 +1053,6 @@
)
)
;; definition for function projectile-update-velocity-space-wars
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun projectile-update-velocity-space-wars ((arg0 projectile))
(let
((s5-1
@@ -1151,7 +1114,6 @@
(none)
)
;; failed to figure out what this is:
(defstate projectile-impact (projectile)
:virtual #t
:code
@@ -1197,7 +1159,6 @@
)
)
;; failed to figure out what this is:
(defstate projectile-dissipate (projectile)
:virtual #t
:code
@@ -1243,15 +1204,11 @@
)
)
;; definition for method 27 of type projectile
;; INFO: Return type mismatch int vs none.
(defmethod dummy-27 projectile ((obj projectile))
0
(none)
)
;; definition for method 26 of type projectile
;; INFO: Return type mismatch int vs none.
(defmethod dummy-26 projectile ((obj projectile))
(let
((s5-0
@@ -1279,15 +1236,12 @@
(none)
)
;; definition for method 25 of type projectile
;; INFO: Return type mismatch int vs none.
(defmethod dummy-25 projectile ((obj projectile))
(go (method-of-object obj projectile-moving))
0
(none)
)
;; failed to figure out what this is:
(defstate projectile-die (projectile)
:virtual #t
:code
@@ -1308,7 +1262,6 @@
)
)
;; definition for method 10 of type projectile
(defmethod deactivate projectile ((obj projectile))
(if (nonzero? (-> obj sound-id))
(sound-stop (-> obj sound-id))
@@ -1317,8 +1270,6 @@
(none)
)
;; definition for function projectile-init-by-other
;; Used lq/sq
(defbehavior
projectile-init-by-other projectile
((arg0 entity) (arg1 vector) (arg2 vector) (arg3 uint) (arg4 handle))
@@ -1378,9 +1329,6 @@
(none)
)
;; definition for method 27 of type projectile-yellow
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod dummy-27 projectile-yellow ((obj projectile-yellow))
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 30)
(set! (-> obj attack-mode) 'eco-yellow)
@@ -1518,8 +1466,6 @@
(none)
)
;; definition for method 26 of type projectile-yellow
;; INFO: Return type mismatch uint vs none.
(defmethod dummy-26 projectile-yellow ((obj projectile-yellow))
(let ((t9-0 (method-of-type projectile dummy-26)))
(t9-0 obj)
@@ -1528,8 +1474,6 @@
(none)
)
;; definition for method 24 of type projectile-yellow
;; INFO: Return type mismatch int vs none.
(defmethod dummy-24 projectile-yellow ((obj projectile-yellow))
(with-pp
(find-ground-and-draw-shadow
@@ -1558,16 +1502,8 @@
)
(cond
((logtest? (-> obj options) 32)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> obj state-time)))
15
)
(when
(<
(- (-> *display* base-frame-counter) (the-as int (-> obj state-time)))
150
)
(when (>= (- (-> *display* base-frame-counter) (-> obj state-time)) 15)
(when (< (- (-> *display* base-frame-counter) (-> obj state-time)) 150)
(set!
(-> *part-id-table* 353 init-specs 16 initial-valuef)
(the-as float 0)
@@ -1618,9 +1554,6 @@
)
)
;; definition for method 28 of type projectile-yellow
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod dummy-28 projectile-yellow ((obj projectile-yellow))
(cond
((or
@@ -1725,9 +1658,6 @@
(none)
)
;; definition for method 27 of type projectile-blue
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod dummy-27 projectile-blue ((obj projectile-blue))
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 30)
(sound-play-by-name
@@ -1780,8 +1710,6 @@
(none)
)
;; definition for method 26 of type projectile-blue
;; INFO: Return type mismatch int vs none.
(defmethod dummy-26 projectile-blue ((obj projectile-blue))
(let
((s5-0
@@ -1809,9 +1737,6 @@
(none)
)
;; definition for function spawn-projectile-blue
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun spawn-projectile-blue ((arg0 target))
(local-vars (sv-48 entity))
(with-pp
@@ -1875,8 +1800,6 @@
)
)
;; definition for method 28 of type projectile-blue
;; INFO: Return type mismatch int vs none.
(defmethod dummy-28 projectile-blue ((obj projectile-blue))
(let* ((s5-0 (handle->process (-> obj last-target)))
(v1-4
@@ -1903,8 +1826,6 @@
(none)
)
;; definition for method 24 of type projectile-blue
;; INFO: Return type mismatch int vs none.
(defmethod dummy-24 projectile-blue ((obj projectile-blue))
(if (rand-vu-percent? 0.75)
(eco-blue-glow
@@ -1915,7 +1836,6 @@
(none)
)
;; failed to figure out what this is:
(defstate projectile-impact (projectile-blue)
:virtual #t
:code
@@ -1925,7 +1845,6 @@
)
)
;; failed to figure out what this is:
(defstate projectile-dissipate (projectile-blue)
:virtual #t
:code
+48 -57
View File
@@ -28,12 +28,12 @@
init!
gui-query
((obj gui-query)
(arg0 symbol)
(arg0 string)
(arg1 int)
(arg2 int)
(arg3 int)
(arg4 symbol)
(arg5 symbol)
(arg5 string)
)
(set! (-> obj x-position) arg1)
(set! (-> obj y-position) arg2)
@@ -47,7 +47,7 @@
)
;; definition for method 10 of type gui-query
(defmethod dummy-10 gui-query ((obj gui-query))
(defmethod get-response gui-query ((obj gui-query))
(kill-current-level-hint '() '(sidekick voicebox stinger) 'exit)
(level-hint-surpress!)
(hide-hud)
@@ -77,7 +77,7 @@
(set! (-> v1-6 scale) 0.9)
)
(set! (-> a1-2 flags) (font-flags shadow kerning left large))
(print-game-text (the-as string (-> obj message)) a1-2 #f 128 22)
(print-game-text (-> obj message) a1-2 #f 128 22)
)
)
(cond
@@ -295,16 +295,20 @@
)
;; definition for method 34 of type process-taskable
(defmethod TODO-RENAME-34 process-taskable ((obj process-taskable) (arg0 symbol))
#f
;; INFO: Return type mismatch symbol vs spool-anim.
(defmethod
get-accept-anim
process-taskable
((obj process-taskable) (arg0 symbol))
(the-as spool-anim #f)
)
;; definition for method 35 of type process-taskable
;; INFO: Return type mismatch int vs none.
(defmethod dummy-35 process-taskable ((obj process-taskable))
(let ((s5-0 (the-as basic (TODO-RENAME-34 obj #f))))
(if (type-type? (-> (the-as symbol s5-0) type) spool-anim)
(spool-push *art-control* (-> (the-as spool-anim s5-0) name) 0 obj -99.0)
(defmethod push-accept-anim process-taskable ((obj process-taskable))
(let ((s5-0 (get-accept-anim obj #f)))
(if (type-type? (-> s5-0 type) spool-anim)
(spool-push *art-control* (-> s5-0 name) 0 obj -99.0)
)
)
0
@@ -312,20 +316,20 @@
)
;; definition for method 36 of type process-taskable
;; INFO: Return type mismatch symbol vs basic.
;; INFO: Return type mismatch symbol vs spool-anim.
(defmethod
get-spool-anim-or-??
get-reject-anim
process-taskable
((obj process-taskable) (arg0 symbol))
(the-as basic #f)
(the-as spool-anim #f)
)
;; definition for method 37 of type process-taskable
;; INFO: Return type mismatch int vs none.
(defmethod spool-push-anim process-taskable ((obj process-taskable))
(let ((s5-0 (get-spool-anim-or-?? obj #f)))
(defmethod push-reject-anim process-taskable ((obj process-taskable))
(let ((s5-0 (get-reject-anim obj #f)))
(if (type-type? (-> s5-0 type) spool-anim)
(spool-push *art-control* (-> (the-as spool-anim s5-0) name) 0 obj -99.0)
(spool-push *art-control* (-> s5-0 name) 0 obj -99.0)
)
)
0
@@ -441,7 +445,7 @@
#t
"ERROR<GMJ>: ~S got into give-cell with give-cell == #f task = ~S~%"
(-> self name)
(game-task->string (the-as game-task (current-task (-> self tasks))))
(game-task->string (current-task (-> self tasks)))
)
)
)
@@ -461,10 +465,7 @@
:virtual #t
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
@@ -508,7 +509,7 @@
;; definition for function process-taskable-play-anim-enter
(defbehavior process-taskable-play-anim-enter process-taskable ()
(init! (-> self query) #f 40 150 25 #t #f)
(init! (-> self query) (the-as string #f) 40 150 25 #t (the-as string #f))
(logior! (-> self skel status) 8)
(let ((gp-0 (get-process *default-dead-pool* othercam #x4000)))
(set! (-> self camera) (ppointer->handle (when gp-0
@@ -678,7 +679,7 @@
arg0
(the-as art-joint-anim (-> self blend-on-exit))
(lambda ((arg0 process-taskable))
(= (dummy-10 (-> arg0 query)) 'no)
(= (get-response (-> arg0 query)) 'no)
)
)
(ja-play-spooled-anim
@@ -770,7 +771,7 @@
)
)
(until (ja-done? 0)
(when (and *debug-segment* (= (dummy-10 (-> self query)) 'no))
(when (and *debug-segment* (= (get-response (-> self query)) 'no))
(let ((v1-106 (-> self skel root-channel 0)))
(set! (-> v1-106 num-func) num-func-identity)
(set!
@@ -818,7 +819,7 @@
(behavior ()
(process-taskable-play-anim-code
(the-as art-joint-anim (get-art-elem self))
(TODO-RENAME-34 self #t)
(get-accept-anim self #t)
)
(while (not (process-release? *target*))
(suspend)
@@ -850,7 +851,7 @@
(behavior ()
(process-taskable-play-anim-code
(the-as art-joint-anim (get-art-elem self))
(get-spool-anim-or-?? self #t)
(get-reject-anim self #t)
)
(go-virtual release)
(none)
@@ -866,12 +867,12 @@
(behavior ()
(init!
(-> self query)
(the-as symbol (lookup-text! *common-text* (game-text-id confirm-play) #f))
(lookup-text! *common-text* (game-text-id confirm-play) #f)
40
150
25
#f
(the-as symbol (lookup-text! *common-text* (game-text-id quit) #f))
(lookup-text! *common-text* (game-text-id quit) #f)
)
(none)
)
@@ -880,8 +881,8 @@
:trans
(behavior ()
(case (current-status (-> self tasks))
((4)
(case (dummy-10 (-> self query))
(((task-status need-reminder-a))
(case (get-response (-> self query))
(('yes)
(go-virtual play-accept)
)
@@ -889,10 +890,10 @@
(go-virtual play-reject)
)
)
(dummy-35 self)
(push-accept-anim self)
)
(else
(let ((gp-0 (dummy-10 (-> self query))))
(let ((gp-0 (get-response (-> self query))))
(cond
((and (= gp-0 'yes) (process-release? *target*))
(go-virtual enter-playing)
@@ -904,7 +905,7 @@
)
)
)
(spool-push-anim self)
(push-reject-anim self)
(set! *camera-look-through-other* 2)
((-> self cur-trans-hook))
(none)
@@ -1018,7 +1019,7 @@
;; definition for function process-taskable-hide-enter
;; INFO: Return type mismatch none vs int.
(defbehavior process-taskable-hide-enter process-taskable ()
(set! (-> self state-time) (the-as seconds (-> *display* base-frame-counter)))
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((v1-3 (-> self draw shadow-ctrl)))
(logior! (-> v1-3 settings flags) 32)
)
@@ -1324,10 +1325,7 @@
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(process-taskable-clean-up-after-talking)
(none)
)
@@ -1415,7 +1413,12 @@
(first-any (-> self tasks) #t)
(when (target-above-threshold? self)
(case (current-status (-> self tasks))
((2 3 5 4 6)
(((task-status need-hint)
(task-status need-introduction)
(task-status need-reminder)
(task-status need-reminder-a)
(task-status need-reward-speech)
)
(kill-current-level-hint '() '(sidekick voicebox ambient) 'exit)
(level-hint-surpress!)
(hide-hud)
@@ -1639,7 +1642,7 @@
((not (should-display? obj))
(go (method-of-object obj hidden))
)
((= (current-status (-> obj tasks)) 7)
((= (current-status (-> obj tasks)) (task-status need-resolution))
(go (method-of-object obj give-cell))
)
(else
@@ -1666,10 +1669,7 @@
(arg2 float)
(arg3 process-drawable)
)
(set!
(-> obj last-ambient-time)
(the-as uint (-> *display* game-frame-counter))
)
(set! (-> obj last-ambient-time) (-> *display* game-frame-counter))
0
(none)
)
@@ -1685,13 +1685,7 @@
(arg3 process-drawable)
)
(when
(<
(-
(-> *display* game-frame-counter)
(the-as int (-> obj last-ambient-time))
)
arg1
)
(< (- (-> *display* game-frame-counter) (-> obj last-ambient-time)) arg1)
(set! arg0 (the-as vector #f))
(goto cfg-6)
)
@@ -1706,20 +1700,17 @@
;; definition for method 11 of type ambient-control
(defmethod
dummy-11
play-ambient
ambient-control
((obj ambient-control) (arg0 string) (arg1 symbol) (arg2 vector))
(when
(and
(not (string= arg0 (the-as string (-> obj last-ambient))))
(not (string= arg0 (-> obj last-ambient)))
(or arg1 (can-hint-be-played? 1 (the-as entity #f) (the-as string #f)))
(= (-> *level* loading-level) (-> *level* level-default))
(ambient-hint-spawn arg0 arg2 *entity-pool* 'ambient)
)
(set!
(-> obj last-ambient-time)
(the-as uint (-> *display* game-frame-counter))
)
(set! (-> obj last-ambient-time) (-> *display* game-frame-counter))
(set! (-> obj last-ambient) arg0)
(return #t)
)
+10 -10
View File
@@ -78,8 +78,8 @@
:size-assert #xc
:flag-assert #x130000000c
(:methods
(current-task (_type_) int 9)
(current-status (_type_) int 10)
(current-task (_type_) game-task 9)
(current-status (_type_) task-status 10)
(close-current! (_type_) none 11)
(close-status! (_type_ task-status) int 12)
(first-any (_type_ symbol) int 13)
@@ -92,9 +92,9 @@
)
(deftype ambient-control (structure)
((last-ambient-time uint64 :offset-assert 0)
(last-ambient basic :offset-assert 8)
(last-ambient-id uint32 :offset-assert 12)
((last-ambient-time int64 :offset-assert 0)
(last-ambient string :offset-assert 8)
(last-ambient-id sound-id :offset-assert 12)
)
:method-count-assert 12
:size-assert #x10
@@ -102,7 +102,7 @@
(:methods
(dummy-9 (_type_ vector int float process-drawable) none 9)
(TODO-RENAME-10 (_type_ vector int float process-drawable) vector 10)
(dummy-11 (_type_ string symbol vector) symbol 11)
(play-ambient (_type_ string symbol vector) symbol 11)
)
)
@@ -153,10 +153,10 @@
(get-art-elem (_type_) art-element 31)
(play-anim! (_type_ symbol) basic 32) ;; ret - spool-anim | ..
(dummy-33 (_type_) none 33)
(TODO-RENAME-34 (_type_ symbol) symbol 34)
(dummy-35 (_type_) none 35)
(get-spool-anim-or-?? (_type_ symbol) basic 36) ;; ret - spool-anim | ..
(spool-push-anim (_type_) none 37)
(get-accept-anim (_type_ symbol) spool-anim 34)
(push-accept-anim (_type_) none 35)
(get-reject-anim (_type_ symbol) spool-anim 36) ;; ret - spool-anim | ..
(push-reject-anim (_type_) none 37)
(dummy-38 (_type_) none 38)
(should-display? (_type_) symbol 39)
(dummy-40 (_type_ object skeleton-group int int vector int) none 40)
+2 -2
View File
@@ -114,7 +114,7 @@
)
(else
;; look up the current cstage's task
(the-as int (-> obj stage (-> obj current-stage) game-task))
(-> obj stage (-> obj current-stage) game-task)
)
)
)
@@ -131,7 +131,7 @@
(task-status invalid)
)
(else
(the-as int (-> obj stage (-> obj current-stage) status))
(-> obj stage (-> obj current-stage) status)
)
)
+2 -2
View File
@@ -366,8 +366,8 @@
((mask uint16 :offset-assert 4)
(num float :offset-assert 8)
(group uint8 :offset-assert 12)
(sound-name-char uint8 16 :offset 16)
(sound-name sound-name :offset 16)
(sound-name sound-name :score 20 :offset 16)
(sound-name-char uint8 16 :offset 16) ;; moved to after sound-name
(trans float 4 :offset-assert 32) ;; guess
(volume int32 :offset-assert 48)
(pitch-mod int32 :offset-assert 52)
+11 -3
View File
@@ -16,6 +16,7 @@
(confirm #x103)
(press-to-use #x105)
(confirm-play #x106)
(play-again? #x107)
(quit #x108)
(pause #x109)
(sfx-volume #x10a)
@@ -155,13 +156,20 @@
(beach-seagulls-avalanche #x273)
(sidekick-hint-fish-powerup #x278)
(yakow-owed-powercell #x297)
(misty-teetertotter-bonk-dax-tutorial #x2a4)
(daxter-blue-eco-plat-tutorial #x2a7)
(firecanyon-collect-cells-text #x2b3)
(fish? #x2a9)
(yakow-owed-powercell #x297)
(firecanyon-collect-cells-text #x2b3)
(caught #x2b4)
(missed #x2b5)
(lose! #x2b6)
(village2-gambler-money #x300)
(village2-geologist-money #x301)
@@ -272,7 +280,7 @@
(ogre-end #x600)
(ogre-buzzer #x601)
(ogre-boss #x603)
(assistant-voicebox-intro-ogre-race #x605)
(sidekick-speech-hint-ogre-race #x61c)
+1 -1
View File
@@ -208,7 +208,7 @@
(define-extern scf-get-inactive-timeout (function int))
;; dma-to-iop
(define-extern kernel-shutdown (function none))
;; aybabtu
(define-extern aybabtu (function int int))
;; *stack-top*
;; *stack-base*
;; *stack-size*
+6 -6
View File
@@ -81,7 +81,7 @@
(defmethod play-anim! bird-lady ((obj bird-lady) (arg0 symbol))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(if arg0
(close-status! (-> obj tasks) (task-status need-introduction))
)
@@ -176,7 +176,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(cond
((zero? (get-reminder (-> obj tasks) 0))
@@ -209,7 +209,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -236,13 +236,13 @@
)
(cond
((< 0.66 f0-2)
(dummy-11 (-> obj ambient) "BIR-LO02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "BIR-LO02" #f (-> obj root-override trans))
)
((< 0.33 f0-2)
(dummy-11 (-> obj ambient) "BIR-LO03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "BIR-LO03" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "BIR-am08" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "BIR-am08" #f (-> obj root-override trans))
)
)
)
+6 -9
View File
@@ -6,8 +6,6 @@
;; dgos: BEA, L1
(define-extern *lurkercrab-sg* skeleton-group)
(declare-type lurkercrab nav-enemy)
(define-extern lurkercrab-pushed (state lurkercrab))
;; DECOMP BEGINS
@@ -87,6 +85,9 @@
:method-count-assert 76
:size-assert #x194
:flag-assert #x4c01300194
(:states
lurkercrab-pushed
)
)
@@ -1008,11 +1009,7 @@ nav-enemy-default-event-handler
)
)
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
300
)
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let ((v1-7 (-> self skel root-channel 0)))
(set! (-> v1-7 num-func) num-func-identity)
(set! (-> v1-7 frame-num) 0.0)
@@ -1109,11 +1106,11 @@ nav-enemy-default-event-handler
:run-travel-speed (meters 5.0)
:run-rotate-speed (degrees 999.99994)
:run-acceleration (meters 12.0)
:run-turn-time #x1e
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 2.0)
:walk-rotate-speed (degrees 999.99994)
:walk-acceleration (meters 12.0)
:walk-turn-time #x1e
:walk-turn-time (seconds 0.1)
:attack-shove-back (meters 1.2)
:attack-shove-up (meters 1.5)
:shadow-size (meters 2.0)
+45 -20
View File
@@ -99,7 +99,7 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 260))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(when arg0
(close-specific-task!
(game-task jungle-lurkerm)
@@ -446,7 +446,7 @@
)
)
)
((4 5)
(((task-status need-reminder-a) (task-status need-reminder))
(set! (-> obj skippable) #t)
(cond
((closed?
@@ -1677,21 +1677,18 @@
)
)
)
((6)
(((task-status need-reward-speech))
(if (not arg0)
(set! (-> obj will-talk) #t)
)
(case (current-task (-> obj tasks))
((3)
(((game-task jungle-lurkerm))
(mayor-lurkerm-reward-speech obj arg0)
)
(else
(cond
(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 ((a1-15 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-15 from) pp)
@@ -2019,9 +2016,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -2064,7 +2059,12 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "CHI-LO01" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"CHI-LO01"
#f
(-> obj root-override trans)
)
)
)
((< 0.7777778 f0-2)
@@ -2076,7 +2076,12 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "CHI-LO02" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"CHI-LO02"
#f
(-> obj root-override trans)
)
)
)
((< 0.6666667 f0-2)
@@ -2088,17 +2093,22 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "CHI-AM07" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"CHI-AM07"
#f
(-> obj root-override trans)
)
)
)
((< 0.5555556 f0-2)
(dummy-11 (-> obj ambient) "CHI-AM06" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "CHI-AM06" #f (-> obj root-override trans))
)
((< 0.44444445 f0-2)
(dummy-11 (-> obj ambient) "CHI-AM05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "CHI-AM05" #f (-> obj root-override trans))
)
((< 0.33333334 f0-2)
(dummy-11 (-> obj ambient) "CHI-AM04" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "CHI-AM04" #f (-> obj root-override trans))
)
((< 0.22222222 f0-2)
(if
@@ -2109,7 +2119,12 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "CHI-AM03" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"CHI-AM03"
#f
(-> obj root-override trans)
)
)
)
((< 0.11111111 f0-2)
@@ -2121,7 +2136,12 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "CHI-AM02" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"CHI-AM02"
#f
(-> obj root-override trans)
)
)
)
(else
@@ -2133,7 +2153,12 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "CHI-AM01" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"CHI-AM01"
#f
(-> obj root-override trans)
)
)
)
)
+61 -61
View File
@@ -185,7 +185,7 @@
(defmethod play-anim! sculptor ((obj sculptor) (arg0 symbol))
(with-pp
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(if arg0
(close-status! (-> obj tasks) (task-status need-introduction))
)
@@ -264,7 +264,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(new 'static 'spool-anim
:name "sculptor-reminder-1"
@@ -273,12 +273,9 @@
:command-list '()
)
)
((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 muse) (ppointer->handle (when s5-1
@@ -346,9 +343,7 @@
0
"ERROR: <GMJ>: ~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 4)
@@ -358,9 +353,11 @@
)
(defmethod get-art-elem sculptor ((obj sculptor))
(let ((v1-1 (current-status (-> obj tasks))))
(if (or (zero? v1-1) (= v1-1 7))
(-> obj draw art-group data 11)
(case (current-status (-> obj tasks))
(((task-status invalid) (task-status need-resolution))
(-> obj draw art-group data 11)
)
(else
(-> obj draw art-group data 3)
)
)
@@ -381,25 +378,25 @@
)
(cond
((< 0.85714287 f0-2)
(dummy-11 (-> obj ambient) "SCU-LO01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SCU-LO01" #f (-> obj root-override trans))
)
((< 0.71428573 f0-2)
(dummy-11 (-> obj ambient) "SCU-AM05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SCU-AM05" #f (-> obj root-override trans))
)
((< 0.5714286 f0-2)
(dummy-11 (-> obj ambient) "SCU-AM06" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SCU-AM06" #f (-> obj root-override trans))
)
((< 0.42857143 f0-2)
(dummy-11 (-> obj ambient) "SCU-AM03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SCU-AM03" #f (-> obj root-override trans))
)
((< 0.2857143 f0-2)
(dummy-11 (-> obj ambient) "SCU-AM04" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SCU-AM04" #f (-> obj root-override trans))
)
((< 0.14285715 f0-2)
(dummy-11 (-> obj ambient) "SCU-AM01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SCU-AM01" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "SCU-AM02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SCU-AM02" #f (-> obj root-override trans))
)
)
)
@@ -436,58 +433,61 @@
(suspend)
(ja-eval)
)
(let ((v1-16 (current-status (-> self tasks))))
(when (or (zero? v1-16) (= v1-16 7))
(let ((a0-12 (-> self skel root-channel 0)))
(set!
(-> a0-12 frame-group)
(the-as art-joint-anim (-> self draw art-group data 12))
)
(set!
(-> a0-12 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 12))
data
0
length
(case (current-status (-> self tasks))
(((task-status invalid) (task-status need-resolution))
(let ((a0-12 (-> self skel root-channel 0)))
(set!
(-> a0-12 frame-group)
(the-as art-joint-anim (-> self draw art-group data 12))
)
(set!
(-> a0-12 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 12))
data
0
length
)
-1
)
-1
)
)
)
(set! (-> a0-12 param 1) 1.0)
(set! (-> a0-12 frame-num) 0.0)
(joint-control-channel-group!
a0-12
(the-as art-joint-anim (-> self draw art-group data 12))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-13 (-> self skel root-channel 0)))
(set!
(-> a0-13 param 0)
(the float (+ (-> a0-13 frame-group data 0 length) -1))
)
(set! (-> a0-13 param 1) 1.0)
(joint-control-channel-group-eval!
a0-13
(the-as art-joint-anim #f)
(set! (-> a0-12 param 1) 1.0)
(set! (-> a0-12 frame-num) 0.0)
(joint-control-channel-group!
a0-12
(the-as art-joint-anim (-> self draw art-group data 12))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-13 (-> self skel root-channel 0)))
(set!
(-> a0-13 param 0)
(the float (+ (-> a0-13 frame-group data 0 length) -1))
)
(set! (-> a0-13 param 1) 1.0)
(joint-control-channel-group-eval!
a0-13
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(muse-to-idle (the-as muse self))
)
(muse-to-idle (the-as muse self))
)
)
(while #t
(let ((v1-43 (current-status (-> self tasks))))
(cond
((or (zero? v1-43) (= v1-43 7))
((or
(= v1-43 (task-status invalid))
(= v1-43 (task-status need-resolution))
)
(let ((a0-18 (-> self skel root-channel 0)))
(set!
(-> a0-18 frame-group)
+19 -72
View File
@@ -21,10 +21,8 @@
(define-extern citb-drop-plat-active (state citb-drop-plat)) ;; unknown type
(define-extern drop-plat-spawn (state drop-plat)) ;; unknown type
;;-*-Lisp-*-
(in-package goal)
;; DECOMP BEGINS
;; failed to figure out what this is:
(let
((v1-0
(new 'static 'skeleton-group
@@ -44,7 +42,6 @@
(set! *citb-drop-plat-sg* v1-0)
)
;; failed to figure out what this is:
(let
((v1-1
(new 'static 'skeleton-group
@@ -64,7 +61,6 @@
(set! *citb-drop-plat-red-sg* v1-1)
)
;; failed to figure out what this is:
(let
((v1-2
(new 'static 'skeleton-group
@@ -84,7 +80,6 @@
(set! *citb-drop-plat-green-sg* v1-2)
)
;; failed to figure out what this is:
(let
((v1-3
(new 'static 'skeleton-group
@@ -104,7 +99,6 @@
(set! *citb-drop-plat-blue-sg* v1-3)
)
;; failed to figure out what this is:
(let
((v1-4
(new 'static 'skeleton-group
@@ -124,7 +118,6 @@
(set! *citb-drop-plat-yellow-sg* v1-4)
)
;; definition of type drop-plat
(deftype drop-plat (process-drawable)
((root-override collide-shape-moving :offset 112)
(spin-axis vector :inline :offset-assert 176)
@@ -145,7 +138,7 @@
)
)
;; failed to figure out what this is:
(defstate drop-plat-idle (drop-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -183,15 +176,12 @@
(behavior ()
(suspend)
(dummy-47 (-> self root-override))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(logior! (-> self mask) (process-mask actor-pause))
(while #t
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (-> self duration))
)
(go drop-plat-drop)
@@ -204,8 +194,6 @@
(the-as (function none :behavior drop-plat) ja-post)
)
;; definition for function drop-plat-set-fade
;; INFO: Return type mismatch int vs none.
(defbehavior drop-plat-set-fade drop-plat ()
(let
((f0-1
@@ -230,7 +218,6 @@
(none)
)
;; failed to figure out what this is:
(defstate drop-plat-spawn (drop-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -249,14 +236,11 @@
)
(logior! (-> self draw status) 2)
(ja-post)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (-> self delay))
)
(let ((v1-14 (logand -3 (-> self draw status)))
@@ -272,7 +256,6 @@
)
)
;; failed to figure out what this is:
(defstate drop-plat-rise (drop-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -286,10 +269,7 @@
:code
(behavior ((arg0 draw-control))
(set! (-> self interp) 1.0)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self spin-angle) 0.0)
(set!
(-> self root-override trans y)
@@ -314,10 +294,7 @@
0.0033333334
(the
float
(-
(-> *display* base-frame-counter)
(the-as int (-> self state-time))
)
(- (-> *display* base-frame-counter) (-> self state-time))
)
)
)
@@ -374,7 +351,6 @@
)
)
;; failed to figure out what this is:
(defstate drop-plat-drop (drop-plat)
:code
(behavior ()
@@ -383,10 +359,7 @@
(-> (the-as process-drawable (-> self parent 0)) root trans y)
(-> self root-override trans y)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(sound-play-by-name
(static-sound-name "bridge-piece-dn")
(new-sound-id)
@@ -397,18 +370,11 @@
(the-as vector #t)
)
(let ((gp-1 (the int (* 300.0 (rand-vu-float-range 0.2 0.3)))))
(while
(<
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
gp-1
)
(while (< (- (-> *display* base-frame-counter) (-> self state-time)) gp-1)
(set!
(-> self interp)
(/
(the
float
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
)
(the float (- (-> *display* base-frame-counter) (-> self state-time)))
(the float gp-1)
)
)
@@ -460,7 +426,6 @@
)
)
;; failed to figure out what this is:
(defstate drop-plat-die (drop-plat)
:code
(behavior ()
@@ -469,8 +434,6 @@
)
)
;; definition for method 20 of type drop-plat
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-20 drop-plat ((obj drop-plat))
(let
((s5-0
@@ -508,8 +471,6 @@
(none)
)
;; definition for method 21 of type drop-plat
;; INFO: Return type mismatch int vs none.
(defmethod dummy-21 drop-plat ((obj drop-plat))
(case (-> obj color)
((1)
@@ -551,8 +512,6 @@
(none)
)
;; definition for function drop-plat-init-by-other
;; Used lq/sq
(defbehavior
drop-plat-init-by-other drop-plat
((arg0 vector) (arg1 uint) (arg2 uint) (arg3 int))
@@ -571,7 +530,6 @@
(none)
)
;; definition of type handle-inline-array
(deftype handle-inline-array (inline-array-class)
((data handle :dynamic :offset-assert 16)
)
@@ -580,10 +538,9 @@
:flag-assert #x900000010
)
;; failed to figure out what this is:
(set! (-> handle-inline-array heap-base) (the-as uint 8))
;; definition of type citb-drop-plat
(deftype citb-drop-plat (process-drawable)
((x-count int32 :offset-assert 176)
(z-count int32 :offset-assert 180)
@@ -605,8 +562,7 @@
:flag-assert #x1400b00120
)
;; definition for method 7 of type citb-drop-plat
;; INFO: Return type mismatch process-drawable vs citb-drop-plat.
(defmethod relocate citb-drop-plat ((obj citb-drop-plat) (arg0 int))
(if (nonzero? (-> obj child-array))
(&+! (-> obj child-array) arg0)
@@ -614,9 +570,6 @@
(the-as citb-drop-plat ((method-of-type process-drawable relocate) obj arg0))
)
;; definition for function citb-drop-plat-spawn-children
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defbehavior citb-drop-plat-spawn-children citb-drop-plat ()
(local-vars (s0-0 int) (sv-48 process) (sv-64 int))
(let ((gp-0 (new 'stack-no-clear 'vector)))
@@ -739,7 +692,6 @@
(none)
)
;; definition for function citb-drop-plat-drop-all-children
(defbehavior citb-drop-plat-drop-all-children citb-drop-plat ()
(dotimes (gp-0 (-> self child-count))
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
@@ -753,8 +705,6 @@
#f
)
;; definition for function citb-drop-plat-drop-children
;; INFO: Return type mismatch int vs none.
(defbehavior citb-drop-plat-drop-children citb-drop-plat ((arg0 int))
(cond
((= arg0 6)
@@ -784,7 +734,6 @@
(none)
)
;; failed to figure out what this is:
(defstate citb-drop-plat-idle (citb-drop-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -805,7 +754,6 @@
)
)
;; failed to figure out what this is:
(defstate citb-drop-plat-active (citb-drop-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -838,16 +786,13 @@
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(citb-drop-plat-spawn-children)
(while #t
(if
(or
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (+ (-> self duration) 600))
)
(or
@@ -870,8 +815,6 @@
)
)
;; definition for method 11 of type citb-drop-plat
;; Used lq/sq
(defmethod copy-defaults! citb-drop-plat ((obj citb-drop-plat) (arg0 res-lump))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
@@ -920,3 +863,7 @@
(go citb-drop-plat-idle)
(none)
)
+9 -31
View File
@@ -48,7 +48,7 @@ nav-enemy-default-event-handler
)
)
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
)
@@ -128,18 +128,11 @@ nav-enemy-default-event-handler
)
:trans
(behavior ()
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(let ((f30-0 (- (-> (target-pos 0) y) (-> self collide-info trans y))))
(if
(and
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
900
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 900)
(or
(or
(not *target*)
@@ -159,7 +152,7 @@ nav-enemy-default-event-handler
)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
(if
@@ -194,10 +187,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self nav destination-pos quad) (-> self entity extra trans quad))
(set! (-> self nav target-pos quad) (-> self entity extra trans quad))
(none)
@@ -333,10 +323,7 @@ nav-enemy-default-event-handler
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self rotate-speed) (-> self nav-info run-rotate-speed))
(set! (-> self turn-time) (the-as int (-> self nav-info run-turn-time)))
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
@@ -466,10 +453,7 @@ nav-enemy-default-event-handler
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(nav-enemy-initialize-jump (-> self entity extra trans))
(nav-enemy-neck-control-look-at)
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
@@ -537,10 +521,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor 0)))
(if v1-2
(logior! (-> v1-2 extra perm status) (entity-perm-status complete))
@@ -574,10 +555,7 @@ nav-enemy-default-event-handler
)
)
)
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
900
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 900)
)
)
(go babak-with-cannon-jump-off-cannon)
+2 -2
View File
@@ -578,11 +578,11 @@
:run-travel-speed (meters 6.0)
:run-rotate-speed (degrees 2880.0)
:run-acceleration (meters 1.0)
:run-turn-time #x1e
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3.0)
:walk-rotate-speed (degrees 720.0)
:walk-acceleration (meters 1.0)
:walk-turn-time #x96
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 2.0)
+10 -22
View File
@@ -295,10 +295,7 @@
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(cond
((= (-> self timeout) 0.0)
(anim-loop)
@@ -490,7 +487,6 @@
)
;; definition for method 26 of type basebutton
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-26 basebutton ((obj basebutton))
(dummy-14 obj *generic-button-sg* '())
(logior! (-> obj skel status) 1)
@@ -748,10 +744,7 @@
)
:code
(behavior ((arg0 int) (arg1 level))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(when (not arg1)
(process-release? *target*)
(go-virtual unknown-state00)
@@ -844,10 +837,7 @@
)
:enter
(behavior ((arg0 vector) (arg1 vector))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self control status) (logand -8 (-> self control status)))
(set! (-> self control unknown-surface00) *warp-jump-mods*)
(set! (-> self control unknown-vector102 quad) (-> arg0 quad))
@@ -856,7 +846,7 @@
(-> self control unknown-vector102 y)
(+ -4096.0 (-> self control unknown-vector102 y))
)
(set! (-> self control unknown-int11) (the-as int #f))
(set! (-> self control unknown-symbol20) #f)
(vector-reset! (-> self control transv))
(logior! (-> self state-flags) 1024)
(set! (-> self alt-cam-pos quad) (-> arg1 quad))
@@ -932,7 +922,8 @@
(-
(sqrtf
(*
(* 2.0 (-> self control dynam gravity-length))
2.0
(-> self control dynam gravity-length)
(vector-dot
(-> self control dynam gravity-normal)
(vector-!
@@ -959,10 +950,7 @@
)
)
(dummy-48 (-> self control))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set!
(-> self trans-hook)
(lambda :behavior target () (let ((gp-0 (new-stack-vector0))
@@ -1021,7 +1009,7 @@
(and
(or
(< (vector-dot gp-2 (-> self control transv)) 0.0)
(-> self control unknown-int11)
(-> self control unknown-symbol20)
)
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
@@ -1035,7 +1023,7 @@
)
(set! (-> self control transv x) (* 0.95 (-> self control transv x)))
(set! (-> self control transv z) (* 0.95 (-> self control transv z)))
(when (not (-> self control unknown-int11))
(when (not (-> self control unknown-symbol20))
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-9 from) self)
(set! (-> a1-9 num-params) 2)
@@ -1045,7 +1033,7 @@
(send-event-function self a1-9)
)
(let ((v0-2 #t))
(set! (-> self control unknown-int11) (the-as int v0-2))
(set! (-> self control unknown-symbol20) v0-2)
v0-2
)
)
+2 -5
View File
@@ -21,7 +21,7 @@
(dummy-20 (_type_) none 20)
(dummy-21 (_type_) none 21)
(dummy-22 (_type_) none 22)
(TODO-RENAME-23 (_type_) skeleton-group 23)
(get-unlit-skel (_type_) skeleton-group 23)
(dummy-24 (_type_) none 24)
(TODO-RENAME-25 (_type_) sparticle-launch-group 25)
(dummy-26 (_type_) none 26)
@@ -331,10 +331,7 @@ eco-door-event-handler
eco-door-event-handler
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(process-entity-status! self (entity-perm-status complete) #t)
(dummy-48 (-> self root-override))
(let ((v1-6 (-> self skel root-channel 0)))
+2 -10
View File
@@ -511,11 +511,7 @@ battlecontroller-default-event-handler
(battlecontroller-fill-all-spawners)
)
(while #t
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(set! (-> self state-time) (-> *display* base-frame-counter))
(when
(and
@@ -606,11 +602,7 @@ battlecontroller-default-event-handler
(set! (-> self state-time) (-> *display* base-frame-counter))
(battlecontroller-camera-on)
(while #t
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((gp-0 0))
(let ((v1-8 (-> self child)))
+5 -5
View File
@@ -133,11 +133,11 @@
(TODO-RENAME-45 (_type_ nav-enemy-info) none 45)
(TODO-RENAME-46 (_type_ float) basic 46)
(initialize-collision (_type_) none 47)
(TODO-RENAME-48 (_type_) none 48) ;; - Stubbed
(TODO-RENAME-48 (_type_) none 48)
(TODO-RENAME-49 (_type_ nav-enemy-info) float 49)
(TODO-RENAME-50 (_type_ vector) symbol 50)
(dummy-51 (_type_) float 51)
(dummy-52 (_type_ vector) vector 52)
(dummy-51 (_type_ vector) object 51)
(dummy-52 (_type_ vector) symbol 52)
(dummy-53 (_type_) symbol 53)
(dummy-54 (_type_) none 54)
(dummy-55 (_type_) none 55)
@@ -157,8 +157,8 @@
(dummy-69 (_type_) none 69)
(dummy-70 (_type_) none 70)
(dummy-71 (_type_) none 71)
(dummy-72 (_type_ process event-message-block) object 72)
(TODO-RENAME-73 (_type_ process) symbol 73)
(nav-enemy-touch-handler (_type_ process event-message-block) object 72)
(nav-enemy-attack-handler (_type_ process event-message-block) object 73)
(nav-enemy-jump-blocked () _type_ :state 74)
(dummy-75 (_type_) none 75)
)
+46 -111
View File
@@ -162,7 +162,7 @@
)
(defmethod
dummy-72
nav-enemy-touch-handler
nav-enemy
((obj nav-enemy) (arg0 process) (arg1 event-message-block))
(if
@@ -182,7 +182,10 @@
)
)
(defmethod TODO-RENAME-73 nav-enemy ((obj nav-enemy) (arg0 process))
(defmethod
nav-enemy-attack-handler
nav-enemy
((obj nav-enemy) (arg0 process) (arg1 event-message-block))
(with-pp
(let ((v1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> v1-0 from) pp)
@@ -193,7 +196,7 @@
)
(logclear! (-> obj mask) (process-mask actor-pause attackable))
(go (method-of-object obj nav-enemy-die))
'die
(the-as object 'die)
)
)
@@ -309,11 +312,11 @@
(case arg2
(('touch)
(set! (-> self touch-time) (-> *display* base-frame-counter))
(dummy-72 self arg0 arg3)
(nav-enemy-touch-handler self arg0 arg3)
)
(('attack)
(nav-enemy-set-hit-from-direction arg0)
(TODO-RENAME-73 self arg0)
(nav-enemy-attack-handler self arg0 arg3)
)
)
)
@@ -754,38 +757,32 @@ nav-enemy-default-event-handler
s5-0
)
)
(s5-1 (the-as object #f))
(s5-1 (the-as collide-shape-prim #f))
)
(when s4-0
(dotimes (s3-0 (-> (the-as collide-shape-prim-group s4-0) num-prims))
(let*
((s2-0
(the-as
object
(->
(the-as collide-shape-prim-group (+ (* s3-0 4) (the-as int s4-0)))
prim
0
)
(->
(the-as collide-shape-prim-group (+ (* s3-0 4) (the-as int s4-0)))
prims
0
)
)
(v1-6
(if
(and
(nonzero? (the-as uint s2-0))
(type-type?
(-> (the-as collide-shape-prim s2-0) type)
collide-shape-prim-sphere
)
(nonzero? s2-0)
(type-type? (-> s2-0 type) collide-shape-prim-sphere)
)
(the-as uint s2-0)
s2-0
)
)
)
(when (the-as uint v1-6)
(when v1-6
(if
(or
(not (the-as uint s5-1))
(not s5-1)
(<
(-> (the-as collide-shape-prim-sphere v1-6) transform-index)
(-> (the-as collide-shape-prim-group s5-1) transform-index)
@@ -801,13 +798,13 @@ nav-enemy-default-event-handler
)
)
)
(set! s5-1 (the-as uint v1-6))
(set! s5-1 v1-6)
)
)
)
)
(if (the-as collide-shape-prim s5-1)
(set! (-> (the-as collide-shape-prim s5-1) collide-with) arg0)
(if s5-1
(set! (-> s5-1 collide-with) arg0)
)
)
)
@@ -864,10 +861,7 @@ nav-enemy-default-event-handler
(set! (-> v1-14 num-func) num-func-identity)
(set! (-> v1-14 frame-num) 0.0)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set!
(-> self collide-info status)
(logand -8 (-> self collide-info status))
@@ -1027,10 +1021,7 @@ nav-enemy-default-event-handler
:enter
(behavior ()
(nav-enemy-neck-control-inactive)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(if (-> self nav-info move-to-ground)
(dummy-60
(-> self collide-info)
@@ -1059,7 +1050,7 @@ nav-enemy-default-event-handler
)
)
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
(nonzero? (-> self draw))
@@ -1113,10 +1104,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set!
(-> self nav flags)
(the-as
@@ -1140,14 +1128,10 @@ nav-enemy-default-event-handler
)
:trans
(behavior ()
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
(if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) 8))
@@ -1561,17 +1545,14 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
(behavior ()
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self reaction-time)
)
(if
@@ -1758,10 +1739,7 @@ nav-enemy-default-event-handler
:enter
(behavior ()
(nav-enemy-neck-control-look-at)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self free-time) (-> *display* base-frame-counter))
(logior! (-> self nav-enemy-flags) 4)
(set! (-> self target-speed) (-> self nav-info run-travel-speed))
@@ -1791,7 +1769,7 @@ nav-enemy-default-event-handler
)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self reaction-time)
)
(if
@@ -1865,10 +1843,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let*
((f30-0
(vector-vector-distance (-> self collide-info trans) (target-pos 0))
@@ -1896,11 +1871,7 @@ nav-enemy-default-event-handler
)
:trans
(behavior ()
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(if (logtest? (-> *target* state-flags) 128)
(go-virtual nav-enemy-patrol)
)
@@ -1925,7 +1896,7 @@ nav-enemy-default-event-handler
)
(logtest? (nav-control-flags bit17) (-> self nav flags))
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
)
@@ -1978,10 +1949,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
(let
((f0-0 (vector-vector-distance (-> self collide-info trans) (target-pos 0)))
@@ -2009,11 +1977,7 @@ nav-enemy-default-event-handler
)
:trans
(behavior ()
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(if (logtest? (-> *target* state-flags) 128)
(go-virtual nav-enemy-patrol)
)
@@ -2063,7 +2027,7 @@ nav-enemy-default-event-handler
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
(go-virtual nav-enemy-give-up)
@@ -2106,21 +2070,14 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(nav-enemy-neck-control-inactive)
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
(none)
)
:trans
(behavior ()
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(if (TODO-RENAME-46 self (-> self nav-info notice-distance))
(go-virtual nav-enemy-chase)
)
@@ -2643,10 +2600,7 @@ nav-enemy-default-event-handler
nav-enemy-jump-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(if
(and
(-> self nav-info use-jump-blocked)
@@ -2750,10 +2704,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(logclear! (-> self nav flags) (nav-control-flags bit19))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self collide-info transv quad))
@@ -2769,10 +2720,7 @@ nav-enemy-default-event-handler
(behavior ()
(if
(or
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
150
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 150)
(logtest? (nav-control-flags bit19) (-> self nav flags))
)
(go-virtual nav-enemy-chase)
@@ -2798,19 +2746,12 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
(behavior ()
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
150
)
(if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150)
(go (-> self jump-return-state))
)
(none)
@@ -2879,10 +2820,7 @@ nav-enemy-default-event-handler
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(logior! (-> self nav-enemy-flags) 2048)
(ja-channel-push! 1 30)
(let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2)))
@@ -2951,10 +2889,7 @@ nav-enemy-default-event-handler
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(nav-enemy-initialize-jump (-> self event-param-point))
(nav-enemy-neck-control-look-at)
(logior! (-> self nav-enemy-flags) 16)
+13 -48
View File
@@ -7,7 +7,8 @@
(define-extern *plat-button-sg* skeleton-group)
;; definition of type plat-button
;; DECOMP BEGINS
(deftype plat-button (process-drawable)
((root-override collide-shape-moving :offset 112)
(go-back-if-lost-player? symbol :offset-assert 176)
@@ -41,7 +42,7 @@
)
)
;; failed to figure out what this is:
(let
((v1-1
(new 'static 'skeleton-group
@@ -59,12 +60,10 @@
(set! *plat-button-sg* v1-1)
)
;; definition for method 30 of type plat-button
(defmethod should-teleport? plat-button ((obj plat-button))
#f
)
;; definition for method 26 of type plat-button
(defmethod can-activate? plat-button ((obj plat-button))
(or
(= (-> obj path-pos) 0.0)
@@ -72,7 +71,6 @@
)
)
;; failed to figure out what this is:
(defstate plat-button-idle (plat-button)
:virtual #t
:event
@@ -206,7 +204,6 @@
)
)
;; failed to figure out what this is:
(defstate plat-button-teleport-to-other-end (plat-button)
:virtual #t
:code
@@ -228,7 +225,6 @@
)
)
;; failed to figure out what this is:
(defstate plat-button-pressed (plat-button)
:virtual #t
:trans
@@ -274,8 +270,6 @@
(the-as (function none :behavior plat-button) rider-post)
)
;; definition for function plat-button-camera-on
;; INFO: Return type mismatch int vs none.
(defbehavior plat-button-camera-on plat-button ()
(let ((v1-1 (res-lump-struct (-> self entity) 'camera-name structure)))
(when v1-1
@@ -292,8 +286,6 @@
(none)
)
;; definition for function plat-button-camera-off
;; INFO: Return type mismatch int vs none.
(defbehavior plat-button-camera-off plat-button ()
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) self)
@@ -305,26 +297,19 @@
(none)
)
;; failed to figure out what this is:
(defstate plat-button-move-downward (plat-button)
:virtual #t
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (when (or (= arg2 'touch) (= arg2 'attack))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
)
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(process-entity-status! self (entity-perm-status bit-3) #t)
(plat-button-camera-on)
(set-setting! *setting-control* self 'allow-look-around #f 0.0 0)
@@ -351,10 +336,7 @@
(or
(not *target*)
(and
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
1200
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200)
(not
(and
(logtest? (-> *target* control unknown-surface00 flags) 2048)
@@ -427,26 +409,19 @@
(the-as (function none :behavior plat-button) rider-post)
)
;; failed to figure out what this is:
(defstate plat-button-move-upward (plat-button)
:virtual #t
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (when (or (= arg2 'touch) (= arg2 'attack))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
)
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(process-entity-status! self (entity-perm-status bit-3) #t)
(plat-button-camera-on)
(set-setting! *setting-control* self 'allow-look-around #f 0.0 0)
@@ -473,10 +448,7 @@
(or
(not *target*)
(and
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
1200
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200)
(not
(and
(logtest? (-> *target* control unknown-surface00 flags) 2048)
@@ -549,7 +521,6 @@
(the-as (function none :behavior plat-button) rider-post)
)
;; failed to figure out what this is:
(defstate plat-button-at-end (plat-button)
:virtual #t
:code
@@ -587,7 +558,6 @@
)
)
;; definition for method 28 of type plat-button
(defmethod TODO-RENAME-28 plat-button ((obj plat-button))
(let
((s5-0
@@ -651,13 +621,10 @@
)
)
;; definition for method 29 of type plat-button
;; INFO: Return type mismatch int vs symbol.
(defmethod can-target-move? plat-button ((obj plat-button))
(the-as symbol 0)
)
;; definition for method 27 of type plat-button
(defmethod TODO-RENAME-27 plat-button ((obj plat-button))
(ja-channel-set! 1)
(cond
@@ -701,24 +668,18 @@
(none)
)
;; definition for method 31 of type plat-button
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-31 plat-button ((obj plat-button))
(dummy-14 obj *plat-button-sg* '())
0
(none)
)
;; definition for method 32 of type plat-button
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-32 plat-button ((obj plat-button))
(go (method-of-object obj plat-button-idle))
0
(none)
)
;; definition for method 11 of type plat-button
;; Used lq/sq
(defmethod copy-defaults! plat-button ((obj plat-button) (arg0 res-lump))
(set! (-> obj go-back-if-lost-player?) #f)
(set! (-> obj grab-player?) #f)
@@ -768,3 +729,7 @@
(TODO-RENAME-32 obj)
(none)
)
+22 -42
View File
@@ -9,7 +9,8 @@
(define-extern *plat-sunken-sg* skeleton-group)
(define-extern *plat-sg* skeleton-group)
;; failed to figure out what this is:
;; DECOMP BEGINS
(set!
(-> *part-group-id-table* 107)
(new 'static 'sparticle-launch-group
@@ -27,7 +28,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 363)
(new 'static 'sparticle-launcher
@@ -51,7 +51,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 364)
(new 'static 'sparticle-launcher
@@ -80,7 +79,6 @@
)
)
;; definition of type plat
(deftype plat (baseplat)
((path-pos float :offset-assert 228)
(sync sync-info-eased :inline :offset-assert 232)
@@ -91,27 +89,16 @@
:size-assert #x108
:flag-assert #x2100a00108
(:methods
(dummy-27 () none 27)
(get-lit-skel (_type_) skeleton-group 27)
(dummy-28 () none 28)
(wad () _type_ :state 29)
(plat-startup () _type_ :state 30)
(plat-startup (plat) _type_ :state 30)
(plat-idle () _type_ :state 31)
(plat-path-active () _type_ :state 32)
(plat-path-active (plat) _type_ :state 32)
)
)
;; definition for method 3 of type plat
(defmethod inspect plat ((obj plat))
(let ((t9-0 (method-of-type baseplat inspect)))
(t9-0 obj)
)
(format #t "~T~Tpath-pos: ~f~%" (-> obj path-pos))
(format #t "~T~Tsync: #<sync-info-eased @ #x~X>~%" (-> obj sync))
(format #t "~T~Tsound-id: ~D~%" (-> obj sound-id))
obj
)
;; failed to figure out what this is:
(let
((v1-4
(new 'static 'skeleton-group
@@ -134,7 +121,6 @@
(set! *plat-sg* v1-4)
)
;; failed to figure out what this is:
(let
((v1-5
(new 'static 'skeleton-group
@@ -152,7 +138,6 @@
(set! *plat-jungleb-sg* v1-5)
)
;; failed to figure out what this is:
(let
((v1-6
(new 'static 'skeleton-group
@@ -170,8 +155,7 @@
(set! *plat-sunken-sg* v1-6)
)
;; definition for method 23 of type plat
(defmethod TODO-RENAME-23 plat ((obj plat))
(defmethod get-unlit-skel plat ((obj plat))
(cond
((= (-> (if (-> obj entity)
(-> obj entity extra level)
@@ -208,8 +192,6 @@
)
)
;; definition for method 24 of type plat
;; INFO: Return type mismatch int vs none.
(defmethod dummy-24 plat ((obj plat))
(let
((s5-0
@@ -247,15 +229,11 @@
(none)
)
;; definition for method 26 of type plat
;; INFO: Return type mismatch int vs none.
(defmethod dummy-26 plat ((obj plat))
0
(none)
)
;; definition for method 25 of type plat
;; INFO: Return type mismatch sparticle-launch-control vs sparticle-launch-group.
(defmethod TODO-RENAME-25 plat ((obj plat))
(the-as sparticle-launch-group (when (!= (-> (if (-> obj entity)
(-> obj entity extra level)
@@ -280,17 +258,16 @@
)
)
;; failed to figure out what this is:
(defstate plat-startup (plat)
:virtual #t
:code
(behavior ()
(behavior ((arg0 plat))
(cond
((logtest? (-> self path flags) (path-control-flag not-found))
(go-virtual plat-idle)
)
((> (-> self sync period) 0)
(go-virtual plat-path-active)
(go-virtual plat-path-active arg0)
)
(else
(go-virtual plat-idle)
@@ -300,7 +277,6 @@
)
)
;; failed to figure out what this is:
(defstate plat-idle (plat)
:virtual #t
:event
@@ -336,7 +312,6 @@
)
)
;; failed to figure out what this is:
(defstate plat-path-active (plat)
:virtual #t
:event
@@ -381,17 +356,16 @@
(none)
)
:code
(the-as (function none :behavior plat) anim-loop)
(the-as (function plat none :behavior plat) anim-loop)
:post
(the-as (function none :behavior plat) plat-post)
)
;; definition for method 11 of type plat
(defmethod copy-defaults! plat ((obj plat) (arg0 res-lump))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(dummy-24 obj)
(process-drawable-from-entity! obj arg0)
(dummy-14 obj (TODO-RENAME-23 obj) '())
(dummy-14 obj (get-unlit-skel obj) '())
(logior! (-> obj skel status) 1)
(dummy-47 (-> obj root-override))
(dummy-21 obj)
@@ -416,8 +390,10 @@
(cond
((logtest? (-> obj path flags) (path-control-flag not-found))
(set! (-> obj path-pos) 0.0)
(dummy-26 obj)
(go (method-of-object obj plat-startup))
(let ((a0-14 obj))
(dummy-26 a0-14)
(go (method-of-object obj plat-startup) a0-14)
)
)
((> (-> obj sync period) 0)
(set! (-> obj path-pos) (if (logtest? (-> obj fact options) 8)
@@ -431,8 +407,10 @@
(-> obj path-pos)
'interp
)
(dummy-26 obj)
(go (method-of-object obj plat-startup))
(let ((a0-18 obj))
(dummy-26 a0-18)
(go (method-of-object obj plat-startup) a0-18)
)
)
(else
(set! (-> obj path-pos) 0.0)
@@ -442,8 +420,10 @@
(-> obj path-pos)
'interp
)
(dummy-26 obj)
(go (method-of-object obj plat-startup))
(let ((a0-20 obj))
(dummy-26 a0-20)
(go (method-of-object obj plat-startup) a0-20)
)
)
)
(none)
+15 -60
View File
@@ -7,7 +7,8 @@
(define-extern *sharkey-sg* skeleton-group)
;; failed to figure out what this is:
;; DECOMP BEGINS
(set!
(-> *part-group-id-table* 106)
(new 'static 'sparticle-launch-group
@@ -40,7 +41,6 @@
)
)
;; definition of type sharkey
(deftype sharkey (nav-enemy)
((dir vector :inline :offset-assert 400)
(spawn-point vector :inline :offset-assert 416)
@@ -64,7 +64,7 @@
:flag-assert #x4c018001ec
)
;; failed to figure out what this is:
(let
((v1-2
(new 'static 'skeleton-group
@@ -81,8 +81,6 @@
(set! *sharkey-sg* v1-2)
)
;; definition for method 44 of type sharkey
;; INFO: Return type mismatch symbol vs object.
(defmethod
dummy-44
sharkey
@@ -90,8 +88,6 @@
(the-as object #t)
)
;; definition for method 43 of type sharkey
;; INFO: Return type mismatch symbol vs object.
(defmethod
dummy-43
sharkey
@@ -99,10 +95,8 @@
(the-as object #t)
)
;; failed to figure out what this is:
nav-enemy-default-event-handler
;; definition for method 12 of type sharkey
(defmethod run-logic? sharkey ((obj sharkey))
(or
(zero? (logand (-> obj mask) (process-mask actor-pause)))
@@ -123,8 +117,6 @@ nav-enemy-default-event-handler
)
)
;; definition for method 40 of type sharkey
;; INFO: Return type mismatch int vs none.
(defmethod dummy-40 sharkey ((obj sharkey))
(dummy-11 (-> obj nav) (-> obj nav target-pos))
(let*
@@ -153,8 +145,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for method 37 of type sharkey
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-37 sharkey ((obj sharkey))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(when (< 8192.0 (vector-length (-> obj nav travel)))
@@ -173,8 +163,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for method 41 of type sharkey
;; INFO: Return type mismatch int vs none.
(defmethod dummy-41 sharkey ((obj sharkey))
(let* ((f0-1 (- (-> obj target-speed) (-> obj momentum-speed)))
(f1-3
@@ -207,9 +195,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for method 39 of type sharkey
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod common-post sharkey ((obj sharkey))
(let ((f30-0 (-> obj water height))
(s5-0 (new 'stack-no-clear 'vector))
@@ -238,7 +223,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for function sharkey-notice-player?
(defbehavior sharkey-notice-player? sharkey ()
(if *target*
(and
@@ -257,26 +241,18 @@ nav-enemy-default-event-handler
)
)
;; definition for function sharkey-get-player-position
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun sharkey-get-player-position ((arg0 vector))
(set! (-> arg0 quad) (-> (target-pos 5) quad))
0
(none)
)
;; definition for function sharkey-reset-position
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defbehavior sharkey-reset-position sharkey ()
(set! (-> self collide-info trans quad) (-> self entity extra trans quad))
0
(none)
)
;; definition for function sharkey-move-to-attack-position
;; Used lq/sq
(defbehavior sharkey-move-to-attack-position sharkey ()
(let ((s5-0 (new 'stack-no-clear 'vector))
(s3-0 (new 'stack-no-clear 'vector))
@@ -312,7 +288,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-idle (sharkey)
:virtual #t
:event
@@ -322,10 +297,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self nav-enemy-flags) (logand -2 (-> self nav-enemy-flags)))
(none)
)
@@ -351,7 +323,7 @@ nav-enemy-default-event-handler
)
)
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
)
@@ -435,7 +407,6 @@ nav-enemy-default-event-handler
(the-as (function none :behavior sharkey) #f)
)
;; failed to figure out what this is:
(defstate nav-enemy-patrol (sharkey)
:virtual #t
:event
@@ -535,7 +506,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-notice (sharkey)
:virtual #t
:event
@@ -555,7 +525,6 @@ nav-enemy-default-event-handler
)
)
;; definition for function sharkey-follow-trajectory
(defbehavior sharkey-follow-trajectory sharkey ((arg0 float))
(let ((gp-0 (-> self jump-trajectory)))
(eval-position! gp-0 arg0 (-> self collide-info trans))
@@ -565,7 +534,6 @@ nav-enemy-default-event-handler
(forward-up->quaternion (-> self collide-info quat) (-> self dir) *up-vector*)
)
;; failed to figure out what this is:
(defstate nav-enemy-attack (sharkey)
:virtual #t
:event
@@ -588,10 +556,7 @@ nav-enemy-default-event-handler
(the-as uint 1)
(the-as vector #t)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> gp-0 quad) (-> self collide-info trans quad))
(ja-channel-push! 1 30)
(let ((s4-1 (-> self skel root-channel 0)))
@@ -647,19 +612,12 @@ nav-enemy-default-event-handler
(-> self collide-info transv)
8.0
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((f30-0 -409600.0)
(f28-0 (-> self collide-info transv y))
(f26-0 (-> self collide-info trans y))
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
900
)
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900)
(let ((gp-1 (-> self skel root-channel 0)))
(set!
(-> gp-1 frame-group)
@@ -753,7 +711,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-chase (sharkey)
:virtual #t
:event
@@ -953,7 +910,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-stop-chase (sharkey)
:virtual #t
:event
@@ -1031,7 +987,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-stare (sharkey)
:virtual #t
:event
@@ -1046,7 +1001,7 @@ nav-enemy-default-event-handler
)
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
(go-virtual nav-enemy-patrol)
@@ -1093,7 +1048,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-victory (sharkey)
:virtual #t
:event
@@ -1163,7 +1117,6 @@ nav-enemy-default-event-handler
)
)
;; definition for symbol *sharkey-nav-enemy-info*, type nav-enemy-info
(define
*sharkey-nav-enemy-info*
(new 'static 'nav-enemy-info
@@ -1182,11 +1135,11 @@ nav-enemy-default-event-handler
:run-travel-speed (meters 12.0)
:run-rotate-speed (degrees 1999.9999)
:run-acceleration (meters 6.0)
:run-turn-time #x96
:run-turn-time (seconds 0.5)
:walk-travel-speed (meters 6.0)
:walk-rotate-speed (degrees 1999.9999)
:walk-acceleration (meters 6.0)
:walk-turn-time #x96
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 1.0)
:attack-shove-up (meters 0.5)
:shadow-size (meters 2.0)
@@ -1219,8 +1172,6 @@ nav-enemy-default-event-handler
)
)
;; definition for method 11 of type sharkey
;; Used lq/sq
(defmethod copy-defaults! sharkey ((obj sharkey) (arg0 res-lump))
(set! (-> obj scale) (res-lump-float arg0 'scale :default 1.0))
(let
@@ -1286,3 +1237,7 @@ nav-enemy-default-event-handler
(go (method-of-object obj nav-enemy-idle))
(none)
)
+14 -34
View File
@@ -12,7 +12,8 @@
(define-extern *power-right-sg* skeleton-group)
(define-extern *power-left-sg* skeleton-group)
;; definition of type fin-door
;; DECOMP BEGINS
(deftype fin-door (process-hidden)
()
:method-count-assert 15
@@ -20,7 +21,7 @@
:flag-assert #xf00000070
)
;; definition of type final-door
(deftype final-door (process-drawable)
()
:heap-base #x40
@@ -34,7 +35,7 @@
)
)
;; failed to figure out what this is:
(let
((v1-2
(new 'static 'skeleton-group
@@ -52,7 +53,6 @@
(set! *power-left-sg* v1-2)
)
;; failed to figure out what this is:
(let
((v1-3
(new 'static 'skeleton-group
@@ -70,7 +70,6 @@
(set! *power-right-sg* v1-3)
)
;; failed to figure out what this is:
(let
((v1-4
(new 'static 'skeleton-group
@@ -87,7 +86,6 @@
(set! *powercellalt-sg* v1-4)
)
;; failed to figure out what this is:
(defstate idle (final-door)
:virtual #t
:event
@@ -110,7 +108,6 @@
)
)
;; failed to figure out what this is:
(defstate open (final-door)
:virtual #t
:event
@@ -237,7 +234,6 @@
)
)
;; definition for method 11 of type final-door
(defmethod copy-defaults! final-door ((obj final-door) (arg0 res-lump))
(let
((s4-0
@@ -276,7 +272,6 @@
(none)
)
;; definition of type power-left
(deftype power-left (final-door)
()
:heap-base #x40
@@ -285,7 +280,7 @@
:flag-assert #x17004000b0
)
;; definition of type power-right
(deftype power-right (final-door)
()
:heap-base #x40
@@ -294,7 +289,7 @@
:flag-assert #x17004000b0
)
;; failed to figure out what this is:
(defstate idle (power-left)
:virtual #t
:code
@@ -368,23 +363,18 @@
)
)
;; definition for method 21 of type power-left
;; INFO: Return type mismatch int vs none.
(defmethod dummy-21 power-left ((obj power-left))
(dummy-14 obj *power-left-sg* '())
0
(none)
)
;; definition for method 21 of type power-right
;; INFO: Return type mismatch int vs none.
(defmethod dummy-21 power-right ((obj power-right))
(dummy-14 obj *power-right-sg* '())
0
(none)
)
;; definition of type powercellalt
(deftype powercellalt (process-drawable)
((root-override collide-shape-moving :offset 112)
(jump-pos vector :inline :offset-assert 176)
@@ -402,7 +392,7 @@
)
)
;; failed to figure out what this is:
(defstate jump (powercellalt)
:virtual #t
:code
@@ -425,21 +415,11 @@
300.0
-2.2755556
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
300
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let
((f0-2
(the
float
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
)
(the float (- (-> *display* base-frame-counter) (-> self state-time)))
)
)
(eval-position! gp-1 f0-2 (-> self root-override trans))
@@ -502,7 +482,6 @@
)
)
;; failed to figure out what this is:
(defstate idle (powercellalt)
:virtual #t
:code
@@ -524,8 +503,6 @@
)
)
;; definition for function powercellalt-init-by-other
;; Used lq/sq
(defbehavior
powercellalt-init-by-other powercellalt
((arg0 entity) (arg1 vector) (arg2 vector) (arg3 int))
@@ -564,7 +541,6 @@
(none)
)
;; failed to figure out what this is:
(defstate target-final-door (target)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -764,3 +740,7 @@
:post
target-no-stick-post
)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+20 -19
View File
@@ -7,7 +7,8 @@
(define-extern *robotboss-sg* skeleton-group)
;; definition of type robotboss-dda
;; DECOMP BEGINS
(deftype robotboss-dda (structure)
((blue-bomb-time float :offset-assert 0)
(num-blobs int32 :offset-assert 4)
@@ -27,27 +28,28 @@
:flag-assert #x900000030
)
;; definition of type robotboss
(deftype robotboss (process-drawable)
((alts entity-actor 13 :offset-assert 176)
((root-override collide-shape-moving :offset 112)
(alts entity-actor 13 :offset-assert 176)
(desired-loc vector :inline :offset-assert 240)
(old-loc vector :inline :offset-assert 256)
(loc-t float :offset-assert 272)
(loc-t-start seconds :offset-assert 280)
(loc-t-duration seconds :offset-assert 288)
(loc-t-start int64 :offset-assert 280)
(loc-t-duration int64 :offset-assert 288)
(hits-to-go int32 :offset-assert 296)
(took-hit symbol :offset-assert 300)
(children-spawned int32 :offset-assert 304)
(vulnerable seconds :offset-assert 312)
(till-next-shot seconds :offset-assert 320)
(shot-attractor uint64 :offset-assert 328)
(vulnerable int64 :offset-assert 312)
(till-next-shot int64 :offset-assert 320)
(shot-attractor handle :offset-assert 328)
(desired-pool-y float :offset-assert 336)
(particle sparticle-launch-control 7 :offset-assert 340)
(blue-smoke basic :offset-assert 368)
(red-smoke basic :offset-assert 372)
(yellow-smoke basic :offset-assert 376)
(blue-smoke symbol :offset-assert 368)
(red-smoke symbol :offset-assert 372)
(yellow-smoke symbol :offset-assert 376)
(white-eco handle :offset-assert 384)
(des-cam-entity basic :offset-assert 392)
(des-cam-entity string :offset-assert 392)
(use-interesting symbol :offset-assert 396)
(ignore-camera symbol :offset-assert 400)
(ambient ambient-control :offset 408)
@@ -64,12 +66,11 @@
:size-assert #x1d0
:flag-assert #x15001601d0
(:methods
(dummy-20 () none 20)
(ease-loc-t (_type_) float 20)
)
)
;; definition for method 7 of type robotboss
;; INFO: Return type mismatch process-drawable vs robotboss.
(defmethod relocate robotboss ((obj robotboss) (arg0 int))
(dotimes (v1-0 7)
(if (nonzero? (-> obj particle v1-0))
@@ -87,7 +88,6 @@
(the-as robotboss ((method-of-type process-drawable relocate) obj arg0))
)
;; definition for method 10 of type robotboss
(defmethod deactivate robotboss ((obj robotboss))
(dotimes (s5-0 7)
(let ((a0-1 (-> obj particle s5-0)))
@@ -107,8 +107,6 @@
(none)
)
;; definition for function target-has-all-the-cells?
;; INFO: Return type mismatch basic vs symbol.
(defun target-has-all-the-cells? ()
(with-pp
(the-as
@@ -129,7 +127,6 @@
)
)
;; failed to figure out what this is:
(let
((v0-6
(new 'static 'skeleton-group
@@ -147,3 +144,7 @@
(set! (-> v0-6 lod-dist 0) 4095996000.0)
(set! *robotboss-sg* v0-6)
)
+890
View File
@@ -5,3 +5,893 @@
;; 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) (the-as uint 1))
(set! (-> v1-0 lod-dist 0) 4095996000.0)
(set! *med-res-snow1-sg* v1-0)
)
(defstate cam-robotboss (camera-slave)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('set-pivot)
(let ((v0-0 (the-as object (-> self pivot-pt))))
(set!
(-> (the-as vector v0-0) quad)
(-> (the-as vector (-> arg3 param 0)) quad)
)
v0-0
)
)
(('teleport)
#f
)
(else
(cam-standard-event-handler arg0 arg1 arg2 arg3)
)
)
)
:enter
(behavior ()
(cond
((-> self enter-has-run)
)
(else
(set! *camera-base-mode* cam-robotboss)
(set! (-> self circular-follow quad) (-> *camera* tpos-curr-adj quad))
(set! (-> self pivot-rad) 73728.0)
(set! (-> self blend-from-type) (the-as uint 2))
(set! (-> self blend-to-type) (the-as uint 2))
)
)
(none)
)
:trans
(behavior ()
(when (zero? (logand (-> *camera* master-options) 2))
(set! *camera-base-mode* cam-string)
(cam-slave-go cam-free-floating)
)
(none)
)
:code
(behavior ()
(while #t
(when #t
(let ((a2-0 (new-stack-vector0)))
(vector-! a2-0 (-> *camera* tpos-curr-adj) (-> self pivot-pt))
(vector-!
(-> self circular-follow)
(-> self circular-follow)
(-> self pivot-pt)
)
(v-slrp3!
(-> self circular-follow)
(-> self circular-follow)
a2-0
(-> *camera* local-down)
(* 182.04445 (-> *display* time-adjust-ratio))
)
)
(vector+!
(-> self circular-follow)
(-> self circular-follow)
(-> self pivot-pt)
)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-! gp-0 (-> self circular-follow) (-> self pivot-pt))
(vector-flatten! gp-0 gp-0 (-> *camera* local-down))
(let ((f0-3 (- (vector-length gp-0) (-> self pivot-rad))))
(if (>= 0.0 f0-3)
(vector-reset! gp-0)
(vector-normalize! gp-0 f0-3)
)
)
(vector+! (-> self trans) gp-0 (-> self pivot-pt))
)
)
(suspend)
)
(none)
)
)
(deftype ecoclaw-part-info (structure)
((tracker handle :offset-assert 0)
(kind basic :offset-assert 8)
(trans vector :inline :offset-assert 16)
)
:method-count-assert 9
:size-assert #x20
:flag-assert #x900000020
)
(deftype ecoclaw (process-drawable)
((particles ecoclaw-part-info 3 :inline :offset-assert 176)
)
:heap-base #xa0
:method-count-assert 20
:size-assert #x110
:flag-assert #x1400a00110
)
(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) (the-as uint 1))
(set! (-> v1-4 lod-dist 0) 4095996000.0)
(set! *ecoclaw-sg* v1-4)
)
(defun ecoclaw-beam-particle-callback ((arg0 part-tracker))
(let* ((a0-1 (the-as (pointer projectile) (-> arg0 userdata)))
(v1-1 (-> a0-1 0 parent-base))
(a0-3 (-> a0-1 0 base-vector))
(gp-1 (vector-! (new 'stack-no-clear 'vector) a0-3 v1-1))
(f30-0 (vector-y-angle gp-1))
(f0-1 (- 16384.0 (vector-x-angle gp-1)))
)
(set! (-> *part-id-table* 2727 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2727 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2729 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2729 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2726 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2726 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2720 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2720 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2722 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2722 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2719 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2719 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2734 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2734 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2736 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2736 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2733 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2733 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2741 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2741 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2743 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2743 init-specs 13 initial-valuef) f0-1)
(set! (-> *part-id-table* 2740 init-specs 14 initial-valuef) f30-0)
(set! (-> *part-id-table* 2740 init-specs 13 initial-valuef) f0-1)
)
0
(none)
)
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
(defbehavior
ecoclaw-handler ecoclaw
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'open)
(let ((gp-1 (-> arg3 param 0)))
(set!
(-> self particles 0 kind)
(the-as
basic
(if
(and
(nonzero? gp-1)
(type-type? (rtype-of gp-1) sparticle-launch-group)
)
gp-1
)
)
)
)
(set!
(-> self particles 0 trans quad)
(-> self root trans quad)
)
(let ((f0-1 (+ 12288.0 (-> self particles 0 trans y))))
(set! (-> self particles 0 trans y) f0-1)
f0-1
)
)
((= v1-0 'beam-on)
(let ((s5-0 (-> arg3 param 0)))
(set!
(-> self particles 1 kind)
(the-as
basic
(if
(and
(nonzero? s5-0)
(type-type? (rtype-of s5-0) sparticle-launch-group)
)
s5-0
)
)
)
)
(set!
(-> self particles 1 trans quad)
(-> self root trans quad)
)
(set!
(-> self particles 1 trans y)
(+ 24576.0 (-> self particles 1 trans y))
)
(let ((s5-1 (-> arg3 param 1)))
(set!
(-> self particles 2 kind)
(the-as
basic
(if
(and
(nonzero? s5-1)
(type-type? (rtype-of s5-1) sparticle-launch-group)
)
s5-1
)
)
)
)
(set!
(-> self particles 2 trans quad)
(-> (the-as vector (-> arg3 param 2)) quad)
)
(let ((f0-5 (+ 81920.0 (-> self particles 2 trans y))))
(set! (-> self particles 2 trans y) f0-5)
f0-5
)
)
((= v1-0 'beam-off)
(set! (-> self particles 1 kind) #f)
(set! (-> self particles 2 kind) #f)
(let
((a0-10 (handle->process (-> self particles 1 tracker))))
(if a0-10
(deactivate a0-10)
)
)
(let
((a0-14 (handle->process (-> self particles 2 tracker))))
(if a0-14
(deactivate a0-14)
)
)
)
)
)
)
)
(defstate ecoclaw-activate (ecoclaw)
:event
ecoclaw-handler
:trans
(behavior ()
(if (-> self particles 1 kind)
(draw-eco-beam
(the-as vector (&-> self stack 112))
(the-as vector (&-> self stack 144))
)
)
(dotimes (gp-0 2)
(cond
((handle->process (-> self particles gp-0 tracker))
(set!
(->
(the-as part-tracker (-> self particles gp-0 tracker process 0))
start-time
)
(the-as uint (-> *display* base-frame-counter))
)
)
((-> self particles gp-0 kind)
(let ((s5-0 (get-process *default-dead-pool* part-tracker #x4000)))
(set! (-> self particles gp-0 tracker) (ppointer->handle (when s5-0
(let
((t9-2
(method-of-type
part-tracker
activate
)
)
)
(t9-2
(the-as
part-tracker
s5-0
)
self
'part-tracker
(the-as
pointer
#x70004000
)
)
)
(run-now-in-process
s5-0
part-tracker-init
(->
self
particles
gp-0
kind
)
-1
ecoclaw-beam-particle-callback
(->
self
ppointer
)
#f
(&+
(&->
self
stack
80
)
(* gp-0 32)
)
)
(->
s5-0
ppointer
)
)
)
)
)
)
)
)
(none)
)
:code
(behavior ()
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set!
(-> a0-0 param 0)
(the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (if (> (-> self skel active-channels) 0)
(->
self
skel
root-channel
0
frame-group
)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set!
(-> a0-1 param 0)
(the float (+ (-> a0-1 frame-group data 0 length) -1))
)
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval!
a0-1
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(while #t
(suspend)
)
(none)
)
:post
(the-as (function none :behavior ecoclaw) ja-post)
)
(defstate ecoclaw-idle (ecoclaw)
:event
ecoclaw-handler
:code
(behavior ()
(while #t
(if (-> self particles 0 kind)
(go ecoclaw-activate)
)
(suspend)
)
(none)
)
:post
(the-as (function none :behavior ecoclaw) ja-post)
)
(defmethod copy-defaults! ecoclaw ((obj ecoclaw) (arg0 res-lump))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(dummy-14 obj *ecoclaw-sg* '())
(dotimes (v1-3 3)
(set! (-> obj particles v1-3 kind) #f)
(set! (-> obj particles v1-3 tracker) (the-as handle #f))
)
(set! *ecoclaw* (the-as (pointer ecoclaw) (process->ppointer obj)))
(go ecoclaw-idle)
(none)
)
(deftype silodoor (process-drawable)
((part-opened float :offset-assert 176)
)
:heap-base #x50
:method-count-assert 22
:size-assert #xb4
:flag-assert #x16005000b4
(:methods
(idle () _type_ :state 20)
(hidden () _type_ :state 21)
)
)
(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) (the-as uint 1))
(set! (-> v1-10 lod-dist 0) 4095996000.0)
(set! *silodoor-sg* v1-10)
)
(defstate idle (silodoor)
:virtual #t
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'open)
(let ((f0-0 (the-as float (-> arg3 param 0))))
(set! (-> self part-opened) f0-0)
f0-0
)
)
((= v1-0 'hide)
(go-virtual hidden)
)
)
)
)
)
:trans
(the-as (function none :behavior silodoor) rider-trans)
:code
(behavior ()
(while #t
(when (not (movie?))
(let ((gp-0 (-> self skel root-channel 0)))
(set!
(-> gp-0 param 0)
(* (-> self part-opened) (the float (ja-num-frames 0)))
)
(set! (-> gp-0 param 1) 0.01)
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim #f)
num-func-seek!
)
)
(cond
((<
0.01
(fabs
(-
(* (-> self part-opened) (the float (ja-num-frames 0)))
(ja-aframe-num 0)
)
)
)
(if (nonzero? (-> self sound))
(update! (-> self sound))
)
)
((nonzero? (-> self sound))
(stop! (-> self sound))
)
)
)
(suspend)
)
(none)
)
:post
(behavior ()
(if
(and
(< (vector-vector-xz-distance (target-pos 0) (-> self root trans)) 57344.0)
(not (ja-min? 0))
)
(rider-post)
(transform-post)
)
(none)
)
)
(defstate hidden (silodoor)
:virtual #t
:code
(behavior ()
(if (nonzero? (-> self sound))
(stop! (-> self sound))
)
(logior! (-> self draw status) 2)
(ja-post)
(while
(not
(task-closed? (game-task finalboss-movies) (task-status need-reminder-a))
)
(suspend)
)
(set! (-> self draw status) (logand -3 (-> self draw status)))
(let ((v1-12 (-> self skel root-channel 0)))
(set! (-> v1-12 num-func) num-func-identity)
(set! (-> v1-12 frame-num) 0.0)
)
(set! (-> self part-opened) 0.0)
(go-virtual idle)
(none)
)
)
(defmethod copy-defaults! silodoor ((obj silodoor) (arg0 res-lump))
(let
((s4-0
(new
'process
'collide-shape-moving
obj
(collide-list-enum usually-hit-by-player)
)
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction) nothing)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set! (-> s3-0 transform-index) 0)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 102400.0)
(dummy-46 s4-0)
(let
((s2-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
)
)
(set! (-> s2-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 19))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) 5)
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 102400.0)
)
(dummy-28 s3-0)
(let
((s2-1
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 1)
(the-as uint 0)
)
)
)
(set! (-> s2-1 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 19))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) 4)
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 102400.0)
)
(dummy-28 s3-0)
(let
((s2-2
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 2)
(the-as uint 0)
)
)
)
(set! (-> s2-2 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-2 collide-with) (the-as uint 16))
(set! (-> s2-2 prim-core action) (the-as uint 19))
(set! (-> s2-2 prim-core offense) 4)
(set! (-> s2-2 transform-index) 7)
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 102400.0)
)
(dummy-28 s3-0)
(let
((s2-3
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 3)
(the-as uint 0)
)
)
)
(set! (-> s2-3 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-3 collide-with) (the-as uint 16))
(set! (-> s2-3 prim-core action) (the-as uint 19))
(set! (-> s2-3 prim-core offense) 4)
(set! (-> s2-3 transform-index) 6)
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 102400.0)
)
(dummy-28 s3-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(dummy-50 s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(dummy-14 obj *silodoor-sg* '())
(logior! (-> obj skel status) 1)
(set! (-> obj root pause-adjust-distance) 1228800.0)
(set!
(-> obj sound)
(new
'process
'ambient-sound
(new 'static 'sound-spec
:mask #x80
:num 1.0
:group #x1
:sound-name
(new 'static 'sound-name :lo #x766f6d2d6f6c6973)
:volume #x400
:fo-max 80
)
(-> obj root trans)
)
)
(logclear! (-> obj mask) (process-mask actor-pause crate enemy attackable))
(set! (-> obj part-opened) 0.0)
(go (method-of-object obj idle))
(none)
)
(deftype finalbosscam (process-taskable)
((robotboss handle :offset-assert 384)
)
:heap-base #x120
:method-count-assert 53
:size-assert #x188
:flag-assert #x3501200188
)
(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) (the-as uint 1))
(set! (-> v1-17 lod-dist 0) 4095996000.0)
(set! *finalbosscam-sg* v1-17)
)
(defbehavior robotboss-manipy-trans-hook robotboss ()
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector<-cspace! gp-0 (-> self node-list data 7))
(spawn (-> self part) gp-0)
)
0
(none)
)
(defmethod play-anim! finalbosscam ((obj finalbosscam) (arg0 symbol))
(with-pp
(when arg0
(let ((s5-0 (get-process *default-dead-pool* manipy #x4000)))
(set! (-> obj robotboss) (ppointer->handle (when s5-0
(let
((t9-1
(method-of-type
manipy
activate
)
)
)
(t9-1
(the-as manipy s5-0)
obj
'manipy
(the-as pointer #x70004000)
)
)
(run-now-in-process
s5-0
manipy-init
(-> obj root-override trans)
(-> obj entity)
*robotboss-sg*
#f
)
(-> s5-0 ppointer)
)
)
)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) pp)
(set! (-> a1-4 num-params) 1)
(set! (-> a1-4 message) 'anim-mode)
(set! (-> a1-4 param 0) (the-as uint 'clone-anim))
(send-event-function (handle->process (-> obj robotboss)) a1-4)
)
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-5 from) pp)
(set! (-> a1-5 num-params) 1)
(set! (-> a1-5 message) 'center-joint)
(set! (-> a1-5 param 0) (the-as uint 3))
(send-event-function (handle->process (-> obj robotboss)) a1-5)
)
(let ((a1-6 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-6 from) pp)
(set! (-> a1-6 num-params) 1)
(set! (-> a1-6 message) 'origin-joint-index)
(set! (-> a1-6 param 0) (the-as uint 3))
(send-event-function (handle->process (-> obj robotboss)) a1-6)
)
(let ((a1-7 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-7 from) pp)
(set! (-> a1-7 num-params) 1)
(set! (-> a1-7 message) 'trans-hook)
(set! (-> a1-7 param 0) (the-as uint robotboss-manipy-trans-hook))
(send-event-function (handle->process (-> obj robotboss)) a1-7)
)
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-8 from) pp)
(set! (-> a1-8 num-params) 1)
(set! (-> a1-8 message) 'eval)
(set!
(-> a1-8 param 0)
(the-as
uint
(lambda :behavior finalbosscam
()
(let
((v0-0 (create-launch-control (-> *part-group-id-table* 645) self)))
(set! (-> self part) v0-0)
v0-0
)
)
)
)
(send-event-function (handle->process (-> obj robotboss)) a1-8)
)
(let ((v1-43 (handle->process (-> obj robotboss))))
(if v1-43
(set! (-> (the-as robotboss v1-43) draw bounds w) 327680.0)
)
)
)
(the-as
basic
(new 'static 'spool-anim
:name "finalbosscam-white-eco"
:index 3
:parts 3
:command-list '()
)
)
)
)
(defmethod get-art-elem finalbosscam ((obj finalbosscam))
(-> obj draw art-group data 2)
)
(defmethod should-display? finalbosscam ((obj finalbosscam))
#f
)
(defstate play-anim (finalbosscam)
:virtual #t
:exit
(behavior ()
(let ((a0-1 (handle->process (-> self robotboss))))
(if a0-1
(deactivate a0-1)
)
)
((-> (method-of-type process-taskable play-anim) exit))
(none)
)
)
(defbehavior finalbosscam-init-by-other finalbosscam ((arg0 entity))
(set! (-> self entity) arg0)
(dummy-40 self arg0 *finalbosscam-sg* 4 4 (new 'static 'vector :w 4096.0) 4)
(set! (-> self tasks) (get-task-control (game-task finalboss-movies)))
(set! (-> self robotboss) (the-as handle #f))
(go-virtual hidden)
(none)
)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -5,3 +5,10 @@
;; 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
@@ -40,7 +40,7 @@
assistant-firecanyon
((obj assistant-firecanyon) (arg0 symbol))
(case (current-status (-> obj tasks))
((6)
(((task-status need-reward-speech))
(if arg0
(close-current! (-> obj tasks))
)
@@ -106,7 +106,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -115,7 +115,7 @@
)
(defmethod get-art-elem assistant-firecanyon ((obj assistant-firecanyon))
(if (zero? (current-status (-> obj tasks)))
(if (= (current-status (-> obj tasks)) (task-status invalid))
(-> obj draw art-group data 8)
(-> obj draw art-group data 3)
)
@@ -140,10 +140,7 @@
#t
)
(else
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
)
@@ -163,13 +160,7 @@
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
)
)
(<
(-
(-> *display* base-frame-counter)
(the-as int (-> self state-time))
)
3000
)
(< (- (-> *display* base-frame-counter) (-> self state-time)) 3000)
)
)
(hide-hud)
@@ -244,7 +235,7 @@
(while #t
(let ((gp-0 #t))
(cond
((zero? (current-status (-> self tasks)))
((= (current-status (-> self tasks)) (task-status invalid))
(let* ((v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-9 (the-as number (logior #x3f800000 v1-8)))
)
@@ -843,7 +834,7 @@
(defmethod should-display? assistant-firecanyon ((obj assistant-firecanyon))
(first-any (-> obj tasks) #t)
(= (current-status (-> obj tasks)) 6)
(= (current-status (-> obj tasks)) (task-status need-reward-speech))
)
(defmethod
+10 -19
View File
@@ -11,7 +11,8 @@
(define-extern bouncer-fire (state springbox)) ;; unknown type
(define-extern bouncer-smush (state springbox)) ;; unknown type
;; definition of type springbox
;; DECOMP BEGINS
(deftype springbox (process-drawable)
((spring-height meters :offset-assert 176)
(smush float :offset-assert 180)
@@ -22,10 +23,9 @@
:flag-assert #x14005000b8
)
;; failed to figure out what this is:
(method-set! springbox 12 (method-of-type process run-logic?))
;; failed to figure out what this is:
(let
((v1-2
(new 'static 'skeleton-group
@@ -42,7 +42,6 @@
(set! *bouncer-sg* v1-2)
)
;; failed to figure out what this is:
(defstate bouncer-wait (springbox)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -134,16 +133,12 @@
)
)
;; failed to figure out what this is:
(defstate bouncer-smush (springbox)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('touch)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
(else
@@ -153,17 +148,11 @@
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self smush) 0.0)
(while #t
(cond
((>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
60
)
((>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
(let ((a0-1 (-> self skel root-channel 0)))
(set! (-> a0-1 param 0) 0.0)
(set! (-> a0-1 param 1) 0.1)
@@ -206,7 +195,6 @@
(the-as (function none :behavior springbox) transform-post)
)
;; failed to figure out what this is:
(defstate bouncer-fire (springbox)
:code
(behavior ()
@@ -261,7 +249,6 @@
(the-as (function none :behavior springbox) transform-post)
)
;; definition for method 11 of type springbox
(defmethod copy-defaults! springbox ((obj springbox) (arg0 res-lump))
(let
((s4-0
@@ -304,3 +291,7 @@
(go bouncer-wait)
(none)
)
+8 -52
View File
@@ -7,7 +7,8 @@
(define-extern *hopper-sg* skeleton-group)
;; definition of type hopper
;; DECOMP BEGINS
(deftype hopper (nav-enemy)
((jump-length float :offset-assert 400)
(shadow-min-y float :offset-assert 404)
@@ -18,17 +19,7 @@
:flag-assert #x4c01300198
)
;; definition for method 3 of type hopper
(defmethod inspect hopper ((obj hopper))
(let ((t9-0 (method-of-type nav-enemy inspect)))
(t9-0 obj)
)
(format #t "~T~Tjump-length: ~f~%" (-> obj jump-length))
(format #t "~T~Tshadow-min-y: ~f~%" (-> obj shadow-min-y))
obj
)
;; failed to figure out what this is:
(let
((v1-1
(new 'static 'skeleton-group
@@ -52,11 +43,8 @@
(set! *hopper-sg* v1-1)
)
;; failed to figure out what this is:
nav-enemy-default-event-handler
;; definition for method 39 of type hopper
;; INFO: Return type mismatch int vs none.
(defmethod common-post hopper ((obj hopper))
(let ((v1-1 (-> obj draw shadow-ctrl)))
(set!
@@ -70,9 +58,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for function hopper-find-ground
;; INFO: Return type mismatch int vs object.
;; Used lq/sq
(defbehavior hopper-find-ground hopper ((arg0 vector))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(let ((t1-0 (new 'stack-no-clear 'collide-tri-result))
@@ -104,9 +89,6 @@ nav-enemy-default-event-handler
0
)
;; definition for function hopper-jump-to
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defbehavior hopper-jump-to hopper ((arg0 vector))
(set! (-> self jump-dest quad) (-> arg0 quad))
(hopper-find-ground (-> self jump-dest))
@@ -144,8 +126,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for function hopper-do-jump
;; INFO: Return type mismatch int vs none.
(defbehavior hopper-do-jump hopper ()
(dummy-11 (-> self nav) (-> self nav target-pos))
(if (< (-> self jump-length) (vector-length (-> self nav travel)))
@@ -161,7 +141,6 @@ nav-enemy-default-event-handler
(none)
)
;; failed to figure out what this is:
(defstate nav-enemy-idle (hopper)
:virtual #t
:event
@@ -266,7 +245,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-patrol (hopper)
:virtual #t
:event
@@ -394,10 +372,7 @@ nav-enemy-default-event-handler
(ja-channel-push! 1 22)
)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
@@ -406,11 +381,7 @@ nav-enemy-default-event-handler
)
(set! (-> gp-0 frame-num) 0.0)
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
150
)
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150)
(suspend)
(let ((a0-21 (-> self skel root-channel 0)))
(set! (-> a0-21 param 0) 1.0)
@@ -439,7 +410,6 @@ nav-enemy-default-event-handler
(the-as (function none :behavior hopper) nav-enemy-jump-post)
)
;; failed to figure out what this is:
(defstate nav-enemy-notice (hopper)
:virtual #t
:event
@@ -454,7 +424,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-chase (hopper)
:virtual #t
:event
@@ -582,10 +551,7 @@ nav-enemy-default-event-handler
(ja-channel-push! 1 22)
)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
@@ -594,11 +560,7 @@ nav-enemy-default-event-handler
)
(set! (-> gp-0 frame-num) 0.0)
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
60
)
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
(suspend)
(let ((a0-21 (-> self skel root-channel 0)))
(set! (-> a0-21 param 0) 1.0)
@@ -618,7 +580,6 @@ nav-enemy-default-event-handler
(the-as (function none :behavior hopper) nav-enemy-jump-post)
)
;; failed to figure out what this is:
(defstate nav-enemy-stop-chase (hopper)
:virtual #t
:event
@@ -633,7 +594,6 @@ nav-enemy-default-event-handler
)
)
;; definition for symbol *hopper-nav-enemy-info*, type nav-enemy-info
(define
*hopper-nav-enemy-info*
(new 'static 'nav-enemy-info
@@ -652,11 +612,11 @@ nav-enemy-default-event-handler
:run-travel-speed (meters 10.0)
:run-rotate-speed (degrees 7999.9995)
:run-acceleration (meters 1.0)
:run-turn-time #x1e
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 6.0)
:walk-rotate-speed (degrees 7999.9995)
:walk-acceleration (meters 1.0)
:walk-turn-time #x1e
:walk-turn-time (seconds 0.1)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 2.0)
@@ -690,8 +650,6 @@ nav-enemy-default-event-handler
)
)
;; definition for method 47 of type hopper
;; INFO: Return type mismatch int vs none.
(defmethod initialize-collision hopper ((obj hopper))
(let
((s5-0
@@ -738,8 +696,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for method 48 of type hopper
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-48 hopper ((obj hopper))
(dummy-14 obj *hopper-sg* '())
(TODO-RENAME-45 obj *hopper-nav-enemy-info*)
+5 -14
View File
@@ -40,7 +40,7 @@
assistant-lavatube-start
((obj assistant-lavatube-start) (arg0 symbol))
(case (current-status (-> obj tasks))
((6)
(((task-status need-reward-speech))
(if arg0
(close-current! (-> obj tasks))
)
@@ -72,7 +72,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -103,10 +103,7 @@
#t
)
(else
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
)
@@ -126,13 +123,7 @@
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
)
)
(<
(-
(-> *display* base-frame-counter)
(the-as int (-> self state-time))
)
3000
)
(< (- (-> *display* base-frame-counter) (-> self state-time)) 3000)
)
)
(hide-hud)
@@ -315,7 +306,7 @@
assistant-lavatube-start
((obj assistant-lavatube-start))
(first-any (-> obj tasks) #t)
(= (current-status (-> obj tasks)) 6)
(= (current-status (-> obj tasks)) (task-status need-reward-speech))
)
(defmethod
+50 -73
View File
@@ -7,11 +7,6 @@
(define-extern *baby-spider-sg* skeleton-group)
(declare-type baby-spider nav-enemy)
(define-extern baby-spider-hatching (state baby-spider)) ;; unknown type
(define-extern baby-spider-resume (state baby-spider)) ;; unknown type
(define-extern baby-spider-die-fast (state baby-spider)) ;; unknown type
(declare-type cave-trap process-drawable)
;; DECOMP BEGINS
@@ -24,14 +19,14 @@
(pickup int32 :offset-assert 16)
(pickup-amount int32 :offset-assert 20)
(event-death symbol :offset-assert 24)
(delay-before-dying-if-not-visible uint64 :offset-assert 32)
(delay-before-dying-if-not-visible int64 :offset-assert 32)
)
:method-count-assert 11
:size-assert #x28
:flag-assert #xb00000028
(:methods
(init! (_type_ symbol symbol symbol symbol int int symbol) int 9)
(set-delay! (_type_ uint) uint 10)
(set-delay! (_type_ int) int 10)
)
)
@@ -44,13 +39,13 @@
(delta-wiggle-angle float :offset-assert 416)
(wiggle-factor float :offset-assert 420)
(event-death symbol :offset-assert 424)
(delay-before-dying-if-not-visible uint64 :offset-assert 432)
(chase-rest-time uint64 :offset-assert 440)
(target-nav-time uint64 :offset-assert 448)
(delay-before-dying-if-not-visible int64 :offset-assert 432)
(chase-rest-time int64 :offset-assert 440)
(target-nav-time int64 :offset-assert 448)
(unknown00 basic :offset-assert 456)
(unknown01 basic :offset-assert 460)
(wiggle-time uint64 :offset-assert 464)
(last-visible-time uint64 :offset-assert 472)
(wiggle-time int64 :offset-assert 464)
(last-visible-time int64 :offset-assert 472)
(up-vector vector :inline :offset-assert 480)
(state-vector vector :inline :offset-assert 496)
)
@@ -58,6 +53,11 @@
:method-count-assert 76
:size-assert #x200
:flag-assert #x4c01900200
(:states
baby-spider-hatching
baby-spider-resume
baby-spider-die-fast
)
)
@@ -101,11 +101,11 @@
:run-travel-speed (meters 7.0)
:run-rotate-speed (degrees 7999.9995)
:run-acceleration (meters 1.0)
:run-turn-time #x16
:run-turn-time (seconds 0.07333333)
:walk-travel-speed (meters 2.0)
:walk-rotate-speed (degrees 7999.9995)
:walk-acceleration (meters 1.0)
:walk-turn-time #x16
:walk-turn-time (seconds 0.07333333)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 1.0)
@@ -156,11 +156,11 @@
:run-travel-speed (meters 7.0)
:run-rotate-speed (degrees 7999.9995)
:run-acceleration (meters 1.0)
:run-turn-time #x16
:run-turn-time (seconds 0.07333333)
:walk-travel-speed (meters 2.0)
:walk-rotate-speed (degrees 7999.9995)
:walk-acceleration (meters 1.0)
:walk-turn-time #x16
:walk-turn-time (seconds 0.07333333)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 1.0)
@@ -214,7 +214,7 @@
(set! (-> obj pickup-amount) arg5)
(set! (-> obj event-death) arg6)
(let ((v0-0 600))
(set! (-> obj delay-before-dying-if-not-visible) (the-as uint v0-0))
(set! (-> obj delay-before-dying-if-not-visible) v0-0)
v0-0
)
)
@@ -222,7 +222,7 @@
(defmethod
set-delay!
baby-spider-spawn-params
((obj baby-spider-spawn-params) (arg0 uint))
((obj baby-spider-spawn-params) (arg0 int))
(set! (-> obj delay-before-dying-if-not-visible) arg0)
arg0
)
@@ -297,7 +297,7 @@ baby-spider-default-event-handler
(none)
)
(defmethod dummy-51 baby-spider ((obj baby-spider))
(defmethod dummy-51 baby-spider ((obj baby-spider) (arg0 vector))
(let* ((f0-0 (rand-vu-float-range 0.0 1.0))
(f1-1 (+ 1.0 (* 2.0 f0-0)))
(f2-2 f1-1)
@@ -308,7 +308,7 @@ baby-spider-default-event-handler
(set! (-> obj wiggle-factor) (* 1.5 f2-4))
(let ((f0-3 (* 28672.0 f0-2)))
(set! (-> obj target-speed) f0-3)
f0-3
(the-as object f0-3)
)
)
)
@@ -334,28 +334,22 @@ baby-spider-default-event-handler
(v0-3 (-> obj nav target-pos))
)
(set! (-> v0-3 quad) (-> v1-4 quad))
v0-3
(the-as symbol v0-3)
)
)
(defmethod dummy-53 baby-spider ((obj baby-spider))
(cond
((logtest? (-> obj draw status) 8)
(set!
(-> obj last-visible-time)
(the-as uint (-> *display* base-frame-counter))
)
(set! (-> obj last-visible-time) (-> *display* base-frame-counter))
(return #f)
)
(else
(if (-> obj die-if-not-visible?)
(return
(>=
(-
(-> *display* base-frame-counter)
(the-as int (-> obj last-visible-time))
)
(the-as int (-> obj delay-before-dying-if-not-visible))
(- (-> *display* base-frame-counter) (-> obj last-visible-time))
(-> obj delay-before-dying-if-not-visible)
)
)
)
@@ -447,7 +441,7 @@ baby-spider-default-event-handler
)
)
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self state-timeout)
)
(nonzero? (-> self draw))
@@ -676,8 +670,8 @@ baby-spider-default-event-handler
)
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(the-as int (-> self chase-rest-time))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self chase-rest-time)
)
(go-virtual nav-enemy-victory)
)
@@ -690,44 +684,30 @@ baby-spider-default-event-handler
)
:code
(behavior ()
(set!
(-> self target-nav-time)
(the-as uint (-> *display* base-frame-counter))
)
(set!
(-> self wiggle-time)
(the-as uint (+ (-> *display* base-frame-counter) -3000))
)
(set! (-> self target-nav-time) (-> *display* base-frame-counter))
(set! (-> self wiggle-time) (+ (-> *display* base-frame-counter) -3000))
(set! (-> self wiggle-angle) 0.0)
(set! (-> self chase-rest-time) (the-as uint (rand-vu-int-range 300 1200)))
(set! (-> self chase-rest-time) (rand-vu-int-range 300 1200))
(ja-channel-push! 1 51)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 7))
num-func-identity
)
(let* ((gp-0 (-> self skel root-channel 0))
(t9-2 joint-control-channel-group-eval!)
(a0-2 gp-0)
(a1-2 (-> self draw art-group data 7))
)
(t9-2 a0-2 (the-as art-joint-anim a1-2) num-func-identity)
(set! (-> gp-0 frame-num) 0.0)
)
(while #t
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self wiggle-time)))
300
(while #t
(when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) 300)
(set! (-> self wiggle-time) (-> *display* base-frame-counter))
(dummy-51 self (the-as vector a1-2))
)
(set!
(-> self wiggle-time)
(the-as uint (-> *display* base-frame-counter))
)
(dummy-51 self)
)
(suspend)
(let ((a0-5 (-> self skel root-channel 0)))
(set! (-> a0-5 param 0) 1.0)
(joint-control-channel-group-eval!
a0-5
(the-as art-joint-anim #f)
num-func-loop!
(suspend)
(let ((a0-5 (-> self skel root-channel 0)))
(set! (-> a0-5 param 0) 1.0)
(let ((t9-4 joint-control-channel-group-eval!))
(set! a1-2 (the-as art-element #f))
(t9-4 a0-5 (the-as art-joint-anim a1-2) num-func-loop!)
)
)
)
)
@@ -1142,10 +1122,7 @@ baby-spider-default-event-handler
)
(defmethod TODO-RENAME-48 baby-spider ((obj baby-spider))
(set!
(-> obj last-visible-time)
(the-as uint (-> *display* base-frame-counter))
)
(set! (-> obj last-visible-time) (-> *display* base-frame-counter))
(dummy-14 obj *baby-spider-sg* '())
(if (= (-> obj parent 0 type) cave-trap)
(TODO-RENAME-45 obj *baby-spider-nav-enemy-info-for-cave-trap*)
@@ -1163,7 +1140,7 @@ baby-spider-default-event-handler
(set! (-> obj delta-wiggle-angle) 910.2222)
(set! (-> obj wiggle-factor) 1.5)
(set! (-> obj reaction-time) (rand-vu-int-range 30 240))
(set! (-> obj chase-rest-time) (the-as uint 300))
(set! (-> obj chase-rest-time) 300)
(set! (-> obj up-vector quad) (-> *y-vector* quad))
0
(none)
@@ -1220,7 +1197,7 @@ baby-spider-default-event-handler
(defmethod copy-defaults! baby-spider ((obj baby-spider) (arg0 res-lump))
(set! (-> obj die-if-not-visible?) #f)
(set! (-> obj delay-before-dying-if-not-visible) (the-as uint 600))
(set! (-> obj delay-before-dying-if-not-visible) 600)
(set! (-> obj hack-move-above-ground?) #f)
(set! (-> obj event-death) #f)
(initialize-collision obj)
+4 -4
View File
@@ -7,10 +7,6 @@
(define-extern *spiderwebs-sg* skeleton-group)
(declare-type spiderwebs process-drawable)
(define-extern spiderwebs-bounce (state spiderwebs)) ;; unknown type
(define-extern spiderwebs-idle (state spiderwebs)) ;; unknown type
;; DECOMP BEGINS
(define
@@ -51,6 +47,10 @@
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
(:states
spiderwebs-idle
spiderwebs-bounce
)
)
+3 -3
View File
@@ -90,7 +90,7 @@
bonelurker
((obj bonelurker) (arg0 process) (arg1 event-message-block))
(with-pp
(set! (-> obj state-time) (the-as seconds (-> *display* base-frame-counter)))
(set! (-> obj state-time) (-> *display* base-frame-counter))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) pp)
(set! (-> a1-1 num-params) 2)
@@ -1106,11 +1106,11 @@ nav-enemy-default-event-handler
:run-travel-speed (meters 6.0)
:run-rotate-speed (degrees 2880.0)
:run-acceleration (meters 1.0)
:run-turn-time #x1e
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3.0)
:walk-rotate-speed (degrees 2880.0)
:walk-acceleration (meters 1.0)
:walk-turn-time #x1e
:walk-turn-time (seconds 0.1)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 2.0)
+5 -24
View File
@@ -296,10 +296,7 @@
(vector<-cspace! (-> self root-override trans) gp-0)
)
(set! (-> self path-position quad) (-> self root-override trans quad))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(suspend)
)
(none)
@@ -347,10 +344,7 @@
(while #t
(if
(>=
(the
float
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
)
(the float (- (-> *display* base-frame-counter) (-> self state-time)))
f30-0
)
(go keg-on-path)
@@ -358,13 +352,7 @@
(let
((f28-0
(/
(the
float
(-
(-> *display* base-frame-counter)
(the-as int (-> self state-time))
)
)
(the float (- (-> *display* base-frame-counter) (-> self state-time)))
f30-0
)
)
@@ -624,16 +612,9 @@
0
(dummy-48 (-> self root-override))
(vector-normalize! gp-0 1.0)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
300
)
(if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(go keg-die)
)
(let ((v1-23 (-> self root-override trans)))
+11 -29
View File
@@ -8,8 +8,13 @@
(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))
(define-extern silostep-camera (state silostep))
;; DECOMP BEGINS
;; definition of type silostep
(deftype silostep (process-drawable)
((anim-limit float :offset-assert 176)
(cam-tracker uint64 :offset-assert 184)
@@ -20,11 +25,7 @@
:flag-assert #x14005000c0
)
(define-extern silostep-rise (state symbol silostep))
(define-extern silostep-idle (state silostep))
(define-extern silostep-camera (state silostep))
;; failed to figure out what this is:
(let
((v1-1
(new 'static 'skeleton-group
@@ -42,7 +43,6 @@
(set! *silostep-sg* v1-1)
)
;; failed to figure out what this is:
(defstate silostep-idle (silostep)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -78,8 +78,6 @@
(the-as (function none :behavior silostep) ja-post)
)
;; definition for function misty-camera-view
;; INFO: Return type mismatch int vs handle.
(defbehavior misty-camera-view silostep ()
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
(v1-1 (when gp-0
@@ -130,7 +128,6 @@
)
)
;; failed to figure out what this is:
(defstate silostep-camera (silostep)
:code
(behavior ()
@@ -140,10 +137,7 @@
)
(save-reminder gp-0 (logior v1-1 2) 0)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((gp-1 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-1) 300)
(suspend)
@@ -166,7 +160,6 @@
(the-as (function none :behavior silostep) ja-post)
)
;; failed to figure out what this is:
(defstate silostep-rise (silostep)
:code
(behavior ((arg0 symbol))
@@ -220,7 +213,6 @@
(the-as (function none :behavior silostep) #f)
)
;; definition for method 11 of type silostep
(defmethod copy-defaults! silostep ((obj silostep) (arg0 res-lump))
(logior! (-> obj mask) (process-mask movie-subject))
(let
@@ -282,7 +274,6 @@
(none)
)
;; failed to figure out what this is:
(let
((v1-6
(new 'static 'skeleton-group
@@ -302,7 +293,6 @@
(set! *rounddoor-sg* v1-6)
)
;; definition of type rounddoor
(deftype rounddoor (eco-door)
()
:heap-base #xa0
@@ -311,16 +301,7 @@
:flag-assert #x1b00a00104
)
;; definition for method 3 of type rounddoor
(defmethod inspect rounddoor ((obj rounddoor))
(let ((t9-0 (method-of-type eco-door inspect)))
(t9-0 obj)
)
obj
)
;; definition for method 24 of type rounddoor
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-24 rounddoor ((obj rounddoor))
(let
((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
@@ -351,9 +332,6 @@
(none)
)
;; definition for method 25 of type rounddoor
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod TODO-RENAME-25 rounddoor ((obj rounddoor))
(dummy-14 obj *rounddoor-sg* '())
(set! (-> obj open-distance) 69632.0)
@@ -372,3 +350,7 @@
0
(none)
)
+49 -38
View File
@@ -89,17 +89,12 @@
)
)
;; definition for function muse-get-path-point
;; INFO: Return type mismatch int vs none.
(defbehavior muse-get-path-point muse ((arg0 vector) (arg1 int))
(eval-path-curve-div! (-> self path) arg0 (the float arg1) 'interp)
0
(none)
)
;; definition for function muse-check-dest-point
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defbehavior muse-check-dest-point muse ()
(let ((gp-0 (new 'stack-no-clear 'point-on-path-segment-info))
(f26-0 4096000.0)
@@ -177,9 +172,7 @@
(none)
)
;; definition for method 51 of type muse
;; INFO: Return type mismatch int vs float.
(defmethod dummy-51 muse ((obj muse))
(defmethod dummy-51 muse ((obj muse) (arg0 vector))
(dotimes (s5-0 2)
(let ((v1-2 (rand-vu-int-range 3 (+ (-> obj node-list length) -1))))
(sp-launch-particles-var
@@ -195,18 +188,21 @@
)
)
)
(the-as float 0)
(the-as object 0)
)
;; definition for method 39 of type muse
(defmethod common-post muse ((obj muse))
(spool-push *art-control* (-> obj anim name) 0 obj -99.0)
(dummy-51 obj)
(let* ((a0-1 *art-control*)
(t9-0 (method-of-object a0-1 spool-push))
(a1-0 (-> obj anim name))
)
(t9-0 a0-1 a1-0 0 obj -99.0)
(dummy-51 obj (the-as vector a1-0))
)
((method-of-type nav-enemy common-post) obj)
(none)
)
;; failed to figure out what this is:
(let
((v1-5
(new 'static 'skeleton-group
@@ -225,22 +221,16 @@
(set! *muse-sg* v1-5)
)
;; definition for method 44 of type muse
;; INFO: Return type mismatch none vs object.
(defmethod dummy-44 muse ((obj muse) (arg0 process) (arg1 event-message-block))
(the-as object (go muse-caught))
)
;; definition for method 43 of type muse
;; INFO: Return type mismatch none vs object.
(defmethod dummy-43 muse ((obj muse) (arg0 process) (arg1 event-message-block))
(the-as object (go muse-caught))
)
;; failed to figure out what this is:
nav-enemy-default-event-handler
;; failed to figure out what this is:
(defstate muse-idle (muse)
:event
(the-as
@@ -382,8 +372,13 @@ nav-enemy-default-event-handler
)
)
(until (ja-done? 0)
(spool-push *art-control* (-> self anim name) 0 self -99.0)
(dummy-51 self)
(let* ((a0-10 *art-control*)
(t9-7 (method-of-object a0-10 spool-push))
(a1-5 (-> self anim name))
)
(t9-7 a0-10 a1-5 0 self -99.0)
(dummy-51 self (the-as vector a1-5))
)
(suspend)
(let ((a0-12 (-> self skel root-channel 0)))
(set!
@@ -405,7 +400,6 @@ nav-enemy-default-event-handler
(the-as (function none :behavior muse) ja-post)
)
;; failed to figure out what this is:
(defstate nav-enemy-chase (muse)
:virtual #t
:event
@@ -415,10 +409,7 @@ nav-enemy-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
@@ -571,7 +562,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-jump (muse)
:virtual #t
:event
@@ -589,7 +579,6 @@ nav-enemy-default-event-handler
(-> (method-of-type nav-enemy nav-enemy-jump) code)
)
;; failed to figure out what this is:
(defstate nav-enemy-jump-land (muse)
:virtual #t
:event
@@ -661,7 +650,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate muse-caught (muse)
:event
(the-as
@@ -742,9 +730,30 @@ nav-enemy-default-event-handler
)
)
)
(push-setting! *setting-control* self 'music-volume 'rel (-> *setting-control* current music-volume-movie) 0)
(push-setting! *setting-control* self 'sfx-volume 'rel (-> *setting-control* current sfx-volume-movie) 0)
(push-setting! *setting-control* self 'ambient-volume 'rel (-> *setting-control* current ambient-volume-movie) 0)
(push-setting!
*setting-control*
self
'music-volume
'rel
(-> *setting-control* current music-volume-movie)
0
)
(push-setting!
*setting-control*
self
'sfx-volume
'rel
(-> *setting-control* current sfx-volume-movie)
0
)
(push-setting!
*setting-control*
self
'ambient-volume
'rel
(-> *setting-control* current ambient-volume-movie)
0
)
(logclear! (-> self mask) (process-mask enemy))
(let ((gp-2 (get-process *default-dead-pool* othercam #x4000)))
(when gp-2
@@ -838,7 +847,8 @@ nav-enemy-default-event-handler
)
:post
(behavior ()
(dummy-51 self)
(local-vars (a1-0 none))
(dummy-51 self (the-as vector a1-0))
(level-hint-surpress!)
(kill-current-level-hint '() '() 'exit)
(ja-post)
@@ -846,7 +856,6 @@ nav-enemy-default-event-handler
)
)
;; definition for symbol *muse-nav-enemy-info*, type nav-enemy-info
(define
*muse-nav-enemy-info*
(new 'static 'nav-enemy-info
@@ -865,11 +874,11 @@ nav-enemy-default-event-handler
:run-travel-speed (meters 10.0)
:run-rotate-speed (degrees 999.99994)
:run-acceleration (meters 5.0)
:run-turn-time #x2d
:run-turn-time (seconds 0.15)
:walk-travel-speed (meters 10.0)
:walk-rotate-speed (degrees 999.99994)
:walk-acceleration (meters 1.0)
:walk-turn-time #x2d
:walk-turn-time (seconds 0.15)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 2.0)
@@ -903,8 +912,6 @@ nav-enemy-default-event-handler
)
)
;; definition for method 11 of type muse
;; Used lq/sq
(defmethod copy-defaults! muse ((obj muse) (arg0 res-lump))
(stack-size-set! (-> obj main-thread) 512)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
@@ -977,3 +984,7 @@ nav-enemy-default-event-handler
(go muse-idle)
(none)
)
+20 -111
View File
@@ -11,7 +11,8 @@
(define-extern *evilsis-sg* skeleton-group)
(define-extern *sidekick-human-sg* skeleton-group)
;; definition of type sequenceA
;; DECOMP BEGINS
(deftype sequenceA (process-hidden)
()
:method-count-assert 15
@@ -19,7 +20,7 @@
:flag-assert #xf00000070
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 657)
(new 'static 'sparticle-launch-group
@@ -43,7 +44,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2665)
(new 'static 'sparticle-launcher
@@ -66,7 +66,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2663)
(new 'static 'sparticle-launcher
@@ -96,7 +95,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2664)
(new 'static 'sparticle-launcher
@@ -122,7 +120,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2667)
(new 'static 'sparticle-launcher
@@ -144,7 +141,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2666)
(new 'static 'sparticle-launcher
@@ -175,7 +171,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2668)
(new 'static 'sparticle-launcher
@@ -189,7 +184,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2669)
(new 'static 'sparticle-launcher
@@ -201,7 +195,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 557)
(new 'static 'sparticle-launch-group
@@ -474,7 +467,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2349)
(new 'static 'sparticle-launcher
@@ -502,7 +494,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2353)
(new 'static 'sparticle-launcher
@@ -514,7 +505,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2350)
(new 'static 'sparticle-launcher
@@ -545,7 +535,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2351)
(new 'static 'sparticle-launcher
@@ -576,7 +565,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2352)
(new 'static 'sparticle-launcher
@@ -607,7 +595,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2344)
(new 'static 'sparticle-launcher
@@ -641,7 +628,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2354)
(new 'static 'sparticle-launcher
@@ -653,7 +639,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2345)
(new 'static 'sparticle-launcher
@@ -688,7 +673,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2355)
(new 'static 'sparticle-launcher
@@ -701,7 +685,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2346)
(new 'static 'sparticle-launcher
@@ -736,7 +719,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2347)
(new 'static 'sparticle-launcher
@@ -760,7 +742,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2348)
(new 'static 'sparticle-launcher
@@ -787,7 +768,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 558)
(new 'static 'sparticle-launch-group
@@ -882,7 +862,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2386)
(new 'static 'sparticle-launcher
@@ -903,7 +882,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2385)
(new 'static 'sparticle-launcher
@@ -938,7 +916,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2388)
(new 'static 'sparticle-launcher
@@ -952,7 +929,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2389)
(new 'static 'sparticle-launcher
@@ -967,7 +943,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2384)
(new 'static 'sparticle-launcher
@@ -994,7 +969,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 560)
(new 'static 'sparticle-launch-group
@@ -1009,7 +983,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2298)
(new 'static 'sparticle-launcher
@@ -1037,7 +1010,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 561)
(new 'static 'sparticle-launch-group
@@ -1122,7 +1094,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2830)
(new 'static 'sparticle-launcher
@@ -1148,7 +1119,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2786)
(new 'static 'sparticle-launcher
@@ -1180,7 +1150,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2789)
(new 'static 'sparticle-launcher
@@ -1192,7 +1161,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2788)
(new 'static 'sparticle-launcher
@@ -1216,7 +1184,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2785)
(new 'static 'sparticle-launcher
@@ -1238,7 +1205,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2787)
(new 'static 'sparticle-launcher
@@ -1271,7 +1237,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 562)
(new 'static 'sparticle-launch-group
@@ -1323,7 +1288,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 681)
(new 'static 'sparticle-launch-group
@@ -1338,7 +1302,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2790)
(new 'static 'sparticle-launcher
@@ -1372,7 +1335,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2822)
(new 'static 'sparticle-launcher
@@ -1384,7 +1346,6 @@
)
)
;; definition of type sequenceB
(deftype sequenceB (process-taskable)
((bonelurker handle :offset-assert 384)
(evilbro handle :offset-assert 392)
@@ -1397,19 +1358,7 @@
:flag-assert #x35017001e0
)
;; definition for method 3 of type sequenceB
(defmethod inspect sequenceB ((obj sequenceB))
(let ((t9-0 (method-of-type process-taskable inspect)))
(t9-0 obj)
)
(format #t "~T~Tbonelurker: ~D~%" (-> obj bonelurker))
(format #t "~T~Tevilbro: ~D~%" (-> obj evilbro))
(format #t "~T~Tevilsis: ~D~%" (-> obj evilsis))
(format #t "~T~Tlurker-army[9] @ #x~X~%" (-> obj lurker-army))
obj
)
;; definition of type sequenceC
(deftype sequenceC (process-taskable)
((bonelurker handle :offset-assert 384)
(darkecocan handle :offset-assert 392)
@@ -1421,22 +1370,7 @@
:flag-assert #x35015001b1
)
;; definition for method 3 of type sequenceC
(defmethod inspect sequenceC ((obj sequenceC))
(let ((t9-0 (method-of-type process-taskable inspect)))
(t9-0 obj)
)
(format #t "~T~Tbonelurker: ~D~%" (-> obj bonelurker))
(format #t "~T~Tdarkecocan: ~D~%" (-> obj darkecocan))
(format
#t
"~T~Tdarkecocan-glowing-look: #<lod-set @ #x~X>~%"
(-> obj darkecocan-glowing-look)
)
obj
)
;; failed to figure out what this is:
(let
((v1-46
(new 'static 'skeleton-group
@@ -1454,7 +1388,6 @@
(set! *sidekick-human-sg* v1-46)
)
;; failed to figure out what this is:
(let
((v1-47
(new 'static 'skeleton-group
@@ -1471,7 +1404,6 @@
(set! *darkecocan-sg* v1-47)
)
;; failed to figure out what this is:
(let
((v1-48
(new 'static 'skeleton-group
@@ -1488,7 +1420,6 @@
(set! *darkecocan-glow-sg* v1-48)
)
;; failed to figure out what this is:
(let
((v1-49
(new 'static 'skeleton-group
@@ -1505,7 +1436,6 @@
(set! *evilbro-sg* v1-49)
)
;; failed to figure out what this is:
(let
((v1-50
(new 'static 'skeleton-group
@@ -1522,7 +1452,6 @@
(set! *evilsis-sg* v1-50)
)
;; definition of type army-info
(deftype army-info (structure)
((pos vector :offset-assert 0)
(rot float :offset-assert 4)
@@ -1534,17 +1463,7 @@
:flag-assert #x900000010
)
;; definition for method 3 of type army-info
(defmethod inspect army-info ((obj army-info))
(format #t "[~8x] ~A~%" obj 'army-info)
(format #t "~Tpos: #<vector @ #x~X>~%" (-> obj pos))
(format #t "~Trot: ~f~%" (-> obj rot))
(format #t "~Tstart-frame: ~f~%" (-> obj start-frame))
(format #t "~Tskel: ~A~%" (-> obj skel))
obj
)
;; definition for symbol *lurker-army*, type (array army-info)
(define
*lurker-army*
(the-as (array army-info)
@@ -1617,15 +1536,11 @@
)
)
;; definition for function evilsib-trans-hook-hover
;; INFO: Return type mismatch int vs none.
(defbehavior evilsib-trans-hook-hover evilbro ()
0
(none)
)
;; definition for function evilsib-trans-hook-wait
;; INFO: Return type mismatch int vs none.
(defbehavior evilsib-trans-hook-wait evilbro ()
(when (>= (ja-aframe-num 0) 425.0)
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
@@ -1663,7 +1578,6 @@
(none)
)
;; definition for method 32 of type sequenceB
(defmethod play-anim! sequenceB ((obj sequenceB) (arg0 symbol))
(with-pp
(cond
@@ -1695,7 +1609,7 @@
(run-now-in-process
s5-0
manipy-init
(-> obj root trans)
(-> obj root-override trans)
(-> obj entity)
*bonelurker-sg*
#f
@@ -2269,12 +2183,10 @@
)
)
;; definition for method 31 of type sequenceB
(defmethod get-art-elem sequenceB ((obj sequenceB))
(-> obj draw art-group data 3)
)
;; failed to figure out what this is:
(defstate play-anim (sequenceB)
:virtual #t
:event
@@ -2321,7 +2233,11 @@
(run-now-in-process
s5-0
manipy-init
(-> self root trans)
(->
self
root-override
trans
)
gp-2
*evilbro-sg*
#f
@@ -2423,7 +2339,11 @@
(run-now-in-process
s5-1
manipy-init
(-> self root trans)
(->
self
root-override
trans
)
gp-4
*evilsis-sg*
#f
@@ -2572,12 +2492,10 @@
)
)
;; definition for method 39 of type sequenceB
(defmethod should-display? sequenceB ((obj sequenceB))
#f
)
;; definition for method 11 of type sequenceB
(defmethod copy-defaults! sequenceB ((obj sequenceB) (arg0 res-lump))
(dummy-40
obj
@@ -2599,8 +2517,6 @@
(none)
)
;; definition for function sequenceC-can-trans-hook-2
;; INFO: Return type mismatch int vs none.
(defbehavior sequenceC-can-trans-hook-2 sequenceC ()
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector<-cspace! gp-0 (-> self node-list data 4))
@@ -2642,13 +2558,14 @@
(none)
)
;; definition for function sequenceC-can-trans-hook
;; INFO: Return type mismatch int vs none.
(defbehavior sequenceC-can-trans-hook sequenceC ()
(when (>= (ja-aframe-num 0) 1055.0)
(dummy-11
(-> self draw)
(&-> (the-as process-taskable (-> self parent 0)) stack 288)
(the-as
lod-set
(&-> (the-as process-taskable (-> self parent 0)) stack 288)
)
)
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
@@ -2663,8 +2580,6 @@
(none)
)
;; definition for method 32 of type sequenceC
;; INFO: Return type mismatch spool-anim vs basic.
(defmethod play-anim! sequenceC ((obj sequenceC) (arg0 symbol))
(with-pp
(when arg0
@@ -2712,7 +2627,7 @@
(run-now-in-process
s5-0
manipy-init
(-> obj root trans)
(-> obj root-override trans)
(-> obj entity)
*bonelurker-sg*
#f
@@ -2756,7 +2671,7 @@
(run-now-in-process
s5-1
manipy-init
(-> obj root trans)
(-> obj root-override trans)
(-> obj entity)
*darkecocan-sg*
#f
@@ -3031,12 +2946,10 @@
)
)
;; definition for method 31 of type sequenceC
(defmethod get-art-elem sequenceC ((obj sequenceC))
(-> obj draw art-group data 3)
)
;; failed to figure out what this is:
(defstate play-anim (sequenceC)
:virtual #t
:exit
@@ -3069,13 +2982,10 @@
)
)
;; definition for method 39 of type sequenceC
(defmethod should-display? sequenceC ((obj sequenceC))
#f
)
;; definition for function sequenceC-trans-hook
;; INFO: Return type mismatch int vs none.
(defbehavior sequenceC-trans-hook sequenceC ()
(when (>= (ja-aframe-num 0) 1655.0)
(let ((gp-0 (new 'stack-no-clear 'vector)))
@@ -3110,7 +3020,6 @@
(none)
)
;; definition for method 11 of type sequenceC
(defmethod copy-defaults! sequenceC ((obj sequenceC) (arg0 res-lump))
(dummy-40
obj
+5 -11
View File
@@ -85,11 +85,11 @@
:run-travel-speed (meters 6.0)
:run-rotate-speed (degrees 2880.0)
:run-acceleration (meters 1.0)
:run-turn-time #x1e
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3.0)
:walk-rotate-speed (degrees 720.0)
:walk-acceleration (meters 1.0)
:walk-turn-time #x96
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 2.0)
@@ -275,10 +275,7 @@
:enter
(behavior ()
(nav-enemy-neck-control-inactive)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(if (-> self nav-info move-to-ground)
(dummy-60 (-> self collide-info) 40960.0 40960.0 #t (the-as uint 1))
)
@@ -1380,17 +1377,14 @@
)
(when (< v1-1 (-> self desired-num-children))
(set! (-> self spawn-delay) (rand-vu-int-range 150 1200))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
)
)
)
(else
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(-> self spawn-delay)
)
(let ((gp-0 (new 'stack-no-clear 'vector))
+3 -14
View File
@@ -765,10 +765,7 @@
)
(go qbert-plat-master-idle)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(cond
(arg0
(ambient-hint-spawn "gamcam08" (the-as vector #f) *entity-pool* 'camera)
@@ -795,11 +792,7 @@
(-> s5-0 ppointer)
)
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
420
)
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 420)
(suspend)
)
)
@@ -828,11 +821,7 @@
(-> s5-1 ppointer)
)
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
300
)
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(suspend)
)
)
+1 -4
View File
@@ -709,10 +709,7 @@
(defstate square-platform-master-activate (square-platform-master)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self wiggled?) #f)
(sleep (-> self ticker) (-> self timeout))
(set! (-> self plat-id) -1)
+2 -8
View File
@@ -107,10 +107,7 @@
:code
(behavior ()
(dummy-49 (-> self root-override))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set!
(-> self extended-amount)
@@ -197,10 +194,7 @@
(the-as (function none :behavior wall-plat) rider-trans)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set!
(-> self extended-amount)
+13 -34
View File
@@ -17,7 +17,8 @@
(define-extern wedge-plat-master-idle (state wedge-plat-master)) ;; unknown type
(define-extern *wedge-plat-outer-sg* skeleton-group)
;; definition of type wedge-plat-master
;; DECOMP BEGINS
(deftype wedge-plat-master (process)
((center vector :inline :offset-assert 112)
(rotspeed float :offset-assert 128)
@@ -30,7 +31,7 @@
:flag-assert #xe0020008c
)
;; failed to figure out what this is:
(defstate wedge-plat-master-idle (wedge-plat-master)
:code
(behavior ()
@@ -79,8 +80,6 @@
)
)
;; definition for method 11 of type wedge-plat-master
;; Used lq/sq
(defmethod
copy-defaults!
wedge-plat-master
@@ -96,7 +95,6 @@
(none)
)
;; definition of type wedge-plat
(deftype wedge-plat (baseplat)
((master wedge-plat-master :offset-assert 228)
(distance float :offset-assert 232)
@@ -111,7 +109,7 @@
)
)
;; failed to figure out what this is:
(let
((v1-3
(new 'static 'skeleton-group
@@ -128,7 +126,6 @@
(set! *wedge-plat-sg* v1-3)
)
;; definition for method 27 of type wedge-plat
(defmethod dummy-27 wedge-plat ((obj wedge-plat))
(let* ((a0-1 (-> obj master))
(v1-0 (if a0-1
@@ -177,7 +174,6 @@
)
)
;; failed to figure out what this is:
(defstate wedge-plat-idle (wedge-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -208,7 +204,6 @@
(the-as (function none :behavior wedge-plat) plat-post)
)
;; failed to figure out what this is:
(defstate wedge-plat-tip (wedge-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -289,15 +284,8 @@
)
)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
300
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let ((gp-4 (-> self skel root-channel 0)))
(set! (-> gp-4 num-func) num-func-identity)
(set! (-> gp-4 frame-num) (ja-aframe 100.0 0))
@@ -339,7 +327,6 @@
(the-as (function none :behavior wedge-plat) plat-post)
)
;; definition for method 11 of type wedge-plat
(defmethod copy-defaults! wedge-plat ((obj wedge-plat) (arg0 res-lump))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(let
@@ -390,7 +377,6 @@
(none)
)
;; definition of type wedge-plat-outer
(deftype wedge-plat-outer (wedge-plat)
()
:heap-base #x80
@@ -399,7 +385,7 @@
:flag-assert #x1c008000f0
)
;; failed to figure out what this is:
(let
((v1-7
(new 'static 'skeleton-group
@@ -416,7 +402,6 @@
(set! *wedge-plat-outer-sg* v1-7)
)
;; definition for method 27 of type wedge-plat-outer
(defmethod dummy-27 wedge-plat-outer ((obj wedge-plat-outer))
(let* ((a0-1 (-> obj master))
(v1-0 (if a0-1
@@ -465,7 +450,6 @@
)
)
;; failed to figure out what this is:
(defstate wedge-plat-outer-idle (wedge-plat-outer)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -496,7 +480,6 @@
(the-as (function none :behavior wedge-plat-outer) plat-post)
)
;; failed to figure out what this is:
(defstate wedge-plat-outer-tip (wedge-plat-outer)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -576,15 +559,8 @@
)
)
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
300
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let ((gp-4 (-> self skel root-channel 0)))
(set! (-> gp-4 num-func) num-func-identity)
(set! (-> gp-4 frame-num) (ja-aframe 100.0 0))
@@ -626,7 +602,6 @@
(the-as (function none :behavior wedge-plat-outer) plat-post)
)
;; definition for method 11 of type wedge-plat-outer
(defmethod
copy-defaults!
wedge-plat-outer
@@ -679,3 +654,7 @@
(go wedge-plat-outer-idle)
(none)
)
+8 -37
View File
@@ -282,10 +282,7 @@ swamp-bat-slave-event-handler
swamp-bat-slave-event-handler
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self launch-ready) #f)
(ja-channel-push! 1 49)
(let ((v1-4 (-> self skel root-channel 0)))
@@ -331,13 +328,7 @@ swamp-bat-slave-event-handler
(forward-up->quaternion gp-0 s2-0 (new 'static 'vector :y 1.0 :w 1.0))
(while #t
(let
((v1-17
(-
(-> *display* base-frame-counter)
(the-as int (-> self state-time))
)
)
)
((v1-17 (- (-> *display* base-frame-counter) (-> self state-time))))
(when (>= v1-17 s3-0)
0
(goto cfg-10)
@@ -426,10 +417,7 @@ swamp-bat-slave-event-handler
swamp-bat-slave-event-handler
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self launch-ready) #f)
(ja-channel-push! 1 30)
(let ((gp-0 (new-stack-vector0)))
@@ -448,11 +436,7 @@ swamp-bat-slave-event-handler
)
)
(while #t
(let
((s4-0
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
)
)
(let ((s4-0 (- (-> *display* base-frame-counter) (-> self state-time))))
(if (>= s4-0 90)
(go swamp-bat-slave-swoop)
)
@@ -852,10 +836,7 @@ swamp-bat-slave-event-handler
(while #t
(when
(and
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
60
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
*target*
(>=
(-> self fact-override idle-distance)
@@ -915,21 +896,11 @@ swamp-bat-slave-event-handler
swamp-bat-debug
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(swamp-bat-update-path)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
150
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150)
(set! (-> self state-time) (-> *display* base-frame-counter))
(if (not (swamp-bat-launch-slave))
(go swamp-bat-idle)
)
+12 -32
View File
@@ -971,10 +971,7 @@
swamp-rat-nest-dummy-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(if (<= (-> self parent-process 0 hit-points) 0)
(go swamp-rat-nest-dummy-die)
)
@@ -1118,10 +1115,7 @@
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set!
(-> self parent-process 0 dummy)
(the-as (pointer swamp-rat-nest-dummy) #f)
@@ -1158,11 +1152,7 @@
(-> gp-0 ppointer)
)
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)
(suspend)
)
(ja-channel-set! 0)
@@ -1276,7 +1266,9 @@ swamp-rat-nest-default-event-handler
)
)
;; WARN: Function may read a register that is not set: t2
(defbehavior swamp-rat-nest-spawn-rat swamp-rat-nest ()
(local-vars (t2-0 none))
(when (and (-> self dummy) (> (-> self dummy 0 spawn-joint-count) 0))
(let* ((v1-5 (swamp-rat-nest-pick-spawn-joint))
(v1-8 (-> self dummy 0 node-list data v1-5 bone))
@@ -1307,7 +1299,7 @@ swamp-rat-nest-default-event-handler
(the-as pointer #x70004000)
)
)
(run-now-in-process s3-0 swamp-rat-init-by-other self gp-0 s5-0 s4-0)
(run-now-in-process s3-0 swamp-rat-init-by-other self gp-0 s5-0 s4-0 t2-0)
(-> s3-0 ppointer)
)
)
@@ -1459,10 +1451,7 @@ swamp-rat-nest-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
@@ -1496,10 +1485,7 @@ swamp-rat-nest-default-event-handler
swamp-rat-nest-default-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
@@ -1507,13 +1493,10 @@ swamp-rat-nest-default-event-handler
(swamp-rat-nest-check-dummy)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (-> self test-interval))
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self test-interval) (the-as uint 60))
(let ((v1-6 0))
(let ((a0-2 (the-as (pointer process-tree) (-> self child-process))))
@@ -1547,10 +1530,7 @@ swamp-rat-nest-default-event-handler
swamp-rat-nest-default-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
@@ -1558,7 +1538,7 @@ swamp-rat-nest-default-event-handler
(swamp-rat-nest-check-dummy)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the int (* (-> self spawn-period-scale) (-> self spawn-period)))
)
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
+5 -14
View File
@@ -344,7 +344,7 @@ swamp-rat-default-event-handler
(behavior ()
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (-> self chase-rest-time))
)
(go-virtual nav-enemy-victory)
@@ -676,10 +676,7 @@ swamp-rat-default-event-handler
(set! (-> gp-0 z) 0.0)
(set! (-> gp-0 w) 1.0)
(let ((f30-0 0.125))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((s5-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
s5-0
@@ -705,13 +702,7 @@ swamp-rat-default-event-handler
(logtest? (-> self collide-info status) 4)
(or
(< (-> self collide-info trans y) (-> self min-height))
(>=
(-
(-> *display* base-frame-counter)
(the-as int (-> self state-time))
)
300
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
)
)
0
@@ -806,11 +797,11 @@ swamp-rat-default-event-handler
:run-travel-speed (meters 7.0)
:run-rotate-speed (degrees 7999.9995)
:run-acceleration (meters 1.0)
:run-turn-time #x16
:run-turn-time (seconds 0.07333333)
:walk-travel-speed (meters 2.0)
:walk-rotate-speed (degrees 7999.9995)
:walk-acceleration (meters 1.0)
:walk-turn-time #x16
:walk-turn-time (seconds 0.07333333)
:attack-shove-back (meters 3.0)
:attack-shove-up (meters 2.0)
:shadow-size (meters 1.0)
+35 -12
View File
@@ -82,9 +82,9 @@
(defmethod play-anim! assistant ((obj assistant) (arg0 symbol))
(with-pp
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(case (current-task (-> obj tasks))
((2)
(((game-task jungle-eggtop))
(when arg0
(let* ((s5-1 (-> obj tasks))
(s4-0 (method-of-object s5-1 save-reminder))
@@ -247,10 +247,10 @@
)
)
)
((5 4)
(((task-status need-reminder) (task-status need-reminder-a))
(set! (-> obj skippable) #t)
(cond
((zero? (current-task (-> obj tasks)))
((= (current-task (-> obj tasks)) (game-task none))
(new 'static 'spool-anim
:name "assistant-reminder-1-generic"
:index 14
@@ -321,9 +321,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -358,19 +356,44 @@
#f
)
((< 0.8 f0-2)
(dummy-11 (-> obj ambient) "ASSTLP01" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP01"
#f
(-> obj root-override trans)
)
)
((< 0.6 f0-2)
(dummy-11 (-> obj ambient) "ASSTLP04" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP04"
#f
(-> obj root-override trans)
)
)
((< 0.4 f0-2)
(dummy-11 (-> obj ambient) "ASSTLP05" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP05"
#f
(-> obj root-override trans)
)
)
((< 0.2 f0-2)
(dummy-11 (-> obj ambient) "ASSTLP02" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP02"
#f
(-> obj root-override trans)
)
)
(else
(dummy-11 (-> obj ambient) "ASSTLP03" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP03"
#f
(-> obj root-override trans)
)
)
)
)
+22 -17
View File
@@ -82,7 +82,7 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 260))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(if arg0
(close-status! (-> obj tasks) (task-status need-introduction))
)
@@ -114,7 +114,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(cond
((zero? (get-reminder (-> obj tasks) 0))
@@ -170,13 +170,10 @@
)
)
)
((6)
(((task-status need-reward-speech))
(cond
(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 ((a1-7 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-7 from) pp)
@@ -211,9 +208,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -241,7 +236,7 @@
)
(cond
((< 0.85714287 f0-2)
(dummy-11 (-> obj ambient) "EXP-AM05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "EXP-AM05" #f (-> obj root-override trans))
)
((< 0.71428573 f0-2)
(if
@@ -252,17 +247,22 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "EXP-LO02" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"EXP-LO02"
#f
(-> obj root-override trans)
)
)
)
((< 0.5714286 f0-2)
(dummy-11 (-> obj ambient) "EXP-AM04" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "EXP-AM04" #f (-> obj root-override trans))
)
((< 0.42857143 f0-2)
(dummy-11 (-> obj ambient) "EXP-AM03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "EXP-AM03" #f (-> obj root-override trans))
)
((< 0.2857143 f0-2)
(dummy-11 (-> obj ambient) "EXP-AM02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "EXP-AM02" #f (-> obj root-override trans))
)
((< 0.14285715 f0-2)
(if
@@ -273,11 +273,16 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "EXP-AM01" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"EXP-AM01"
#f
(-> obj root-override trans)
)
)
)
(else
(dummy-11 (-> obj ambient) "EXP-LO1A" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "EXP-LO1A" #f (-> obj root-override trans))
)
)
)
+18 -15
View File
@@ -40,7 +40,7 @@
(defmethod play-anim! farmer ((obj farmer) (arg0 symbol))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(if arg0
(close-status! (-> obj tasks) (task-status need-introduction))
)
@@ -51,7 +51,7 @@
:command-list '()
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(cond
((zero? (get-reminder (-> obj tasks) 0))
@@ -78,12 +78,9 @@
)
)
)
((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))
)
(new 'static 'spool-anim
@@ -99,7 +96,7 @@
0
"ERROR: <GMJ>: ~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 4)
@@ -108,9 +105,15 @@
)
(defmethod get-art-elem farmer ((obj farmer))
(let ((v1-1 (current-status (-> obj tasks))))
(if (or (= v1-1 2) (= v1-1 3) (= v1-1 7) (zero? v1-1))
(-> obj draw art-group data 4)
(case (current-status (-> obj tasks))
(((task-status need-hint)
(task-status need-introduction)
(task-status need-resolution)
(task-status invalid)
)
(-> obj draw art-group data 4)
)
(else
(-> obj draw art-group data 5)
)
)
@@ -131,19 +134,19 @@
)
(cond
((< 0.8333333 f0-2)
(dummy-11 (-> obj ambient) "FAR-LO1A" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "FAR-LO1A" #f (-> obj root-override trans))
)
((< 0.6666667 f0-2)
(dummy-11 (-> obj ambient) "FAR-AM01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "FAR-AM01" #f (-> obj root-override trans))
)
((< 0.5 f0-2)
#f
)
((< 0.33333334 f0-2)
(dummy-11 (-> obj ambient) "FAR-AM2A" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "FAR-AM2A" #f (-> obj root-override trans))
)
((< 0.16666667 f0-2)
(dummy-11 (-> obj ambient) "FAR-AM02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "FAR-AM02" #f (-> obj root-override trans))
)
(else
#f
+6 -25
View File
@@ -1093,10 +1093,7 @@
)
)
(not (level-hint-displayed?))
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
900
)
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 900)
(file-status *art-control* (-> self anim name) 0)
)
(hide-hud)
@@ -1194,10 +1191,7 @@
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
@@ -1433,10 +1427,7 @@
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
:trans
@@ -1863,15 +1854,8 @@
(let ((f30-0 (* (the float s5-0) (-> self controller table-step))))
(set! (-> self measure-parameters) #t)
(set! (-> self controller steering) 1.0)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(until
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
300
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let
((f0-6
(/
@@ -1881,10 +1865,7 @@
)
)
(if (< 0.05 f0-6)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
)
)
(fishermans-boat-set-throttle-by-speed f30-0)
+43 -20
View File
@@ -90,9 +90,9 @@
)
)
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(case (current-task (-> obj tasks))
((109)
(((game-task intro))
(when arg0
(close-status! (-> obj tasks) (task-status need-introduction))
(set-setting! *setting-control* pp 'music-volume-movie 'abs 0.0 0)
@@ -303,7 +303,7 @@
)
)
)
((15)
(((game-task beach-ecorocks))
(when arg0
(let* ((s5-1 (-> obj tasks))
(s4-0 (method-of-object s5-1 save-reminder))
@@ -506,7 +506,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(if arg0
(set! (-> obj reminder-played) #t)
@@ -621,7 +621,7 @@
)
)
)
((6)
(((task-status need-reward-speech))
(when arg0
(set-setting! *setting-control* pp 'music-volume-movie 'abs 0.0 0)
(copy-settings-from-target! *setting-control*)
@@ -981,9 +981,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -1032,19 +1030,19 @@
(defmethod get-art-elem sage ((obj sage))
(cond
((and
(= (current-task (-> obj tasks)) 15)
(= (current-task (-> obj tasks)) (game-task beach-ecorocks))
(or
(= (current-status (-> obj tasks)) 2)
(= (current-status (-> obj tasks)) 3)
(= (current-status (-> obj tasks)) (task-status need-hint))
(= (current-status (-> obj tasks)) (task-status need-introduction))
)
)
(save-reminder (-> obj tasks) 0 0)
)
((and
(= (current-task (-> obj tasks)) 26)
(= (current-task (-> obj tasks)) (game-task misty-cannon))
(or
(= (current-status (-> obj tasks)) 2)
(= (current-status (-> obj tasks)) 3)
(= (current-status (-> obj tasks)) (task-status need-hint))
(= (current-status (-> obj tasks)) (task-status need-introduction))
)
)
(save-reminder (-> obj tasks) 1 0)
@@ -1052,7 +1050,7 @@
((dummy-45 obj)
(set! (-> obj reminder-played) #f)
(cond
((zero? (current-task (-> obj tasks)))
((= (current-task (-> obj tasks)) (game-task none))
(case (get-reminder (-> obj tasks) 0)
((2)
(save-reminder (-> obj tasks) 3 0)
@@ -1132,19 +1130,44 @@
#f
)
((< 0.8 f0-2)
(dummy-11 (-> obj ambient) "SAGELP03" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP03"
#f
(-> obj root-override trans)
)
)
((< 0.6 f0-2)
(dummy-11 (-> obj ambient) "SAGELP04" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP04"
#f
(-> obj root-override trans)
)
)
((< 0.4 f0-2)
(dummy-11 (-> obj ambient) "SAGELP05" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP05"
#f
(-> obj root-override trans)
)
)
((< 0.2 f0-2)
(dummy-11 (-> obj ambient) "SAGELP06" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP06"
#f
(-> obj root-override trans)
)
)
(else
(dummy-11 (-> obj ambient) "SAGELP11" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP11"
#f
(-> obj root-override trans)
)
)
)
)
+4 -12
View File
@@ -706,7 +706,7 @@ yakow-default-event-handler
(if
(and
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (-> *YAKOW-bank* default-patrol-time))
)
(and
@@ -871,7 +871,7 @@ yakow-default-event-handler
(if
(and
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
(- (-> *display* base-frame-counter) (-> self state-time))
(the-as int (-> *YAKOW-bank* default-patrol-time))
)
(not (-> self in-pen))
@@ -889,11 +889,7 @@ yakow-default-event-handler
)
(go yakow-notice)
)
(when
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
15
)
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15)
(when
(or
(logtest? (nav-control-flags bit19) (-> self nav flags))
@@ -1255,11 +1251,7 @@ yakow-default-event-handler
)
:trans
(behavior ()
(if
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
60
)
(if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
(set!
(-> self travel-speed)
(seek
+17 -44
View File
@@ -130,12 +130,15 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 292))
(case (current-status (-> obj tasks))
((1 2 3)
(((task-status unknown)
(task-status need-hint)
(task-status need-introduction)
)
(if (not arg0)
(set! (-> obj will-talk) #t)
)
(case (current-task (-> obj tasks))
((103)
(((game-task village2-levitator))
(when arg0
(close-status! (-> obj tasks) (task-status need-introduction))
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
@@ -783,7 +786,7 @@
)
)
)
((47)
(((game-task sunken-room))
(when arg0
(let* ((s5-2 (-> obj tasks))
(s4-0 (method-of-object s5-2 save-reminder))
@@ -899,7 +902,7 @@
)
)
)
((53)
(((game-task rolling-robbers))
(when arg0
(let* ((s5-5 (-> obj tasks))
(s4-1 (method-of-object s5-5 save-reminder))
@@ -984,7 +987,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(let ((s4-2 (+ (get-reminder (-> obj tasks) 0) 1)))
(if (< (the-as uint 2) (the-as uint s4-2))
@@ -1061,9 +1064,7 @@
0
"ERROR: <GMJ>: ~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 5)
@@ -1176,10 +1177,10 @@
#f
)
((< 0.5 f30-0)
(dummy-11 (-> obj ambient) "ASSTLP23" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "ASSTLP23" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "ASSTLP24" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "ASSTLP24" #f (-> obj root-override trans))
)
)
)
@@ -2521,7 +2522,7 @@
((obj assistant-levitator) (arg0 symbol))
(with-pp
(case (current-status (-> obj tasks))
((6)
(((task-status need-reward-speech))
(when arg0
(close-current! (-> obj tasks))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
@@ -2584,9 +2585,7 @@
0
"ERROR: <GMJ>: ~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 5)
@@ -2653,10 +2652,7 @@
#t
)
(else
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
)
@@ -2681,13 +2677,7 @@
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
)
)
(<
(-
(-> *display* base-frame-counter)
(the-as int (-> self state-time))
)
3000
)
(< (- (-> *display* base-frame-counter) (-> self state-time)) 3000)
)
)
(hide-hud)
@@ -3103,25 +3093,8 @@
:mask #x80
:num 1.0
:group #x1
:sound-name-char
(new 'static 'array uint8 16
#x6c
#x65
#x76
#x2d
#x6d
#x61
#x63
#x68
#x2d
#x69
#x64
#x6c
#x65
#x0
#x0
#x0
)
:sound-name
(new 'static 'sound-name :lo #x6863616d2d76656c)
:volume #x400
:fo-max 30
)
+25 -28
View File
@@ -44,7 +44,7 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 260))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(when arg0
(close-status! (-> obj tasks) (task-status need-introduction))
(close-specific-task!
@@ -131,7 +131,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(cond
((closed?
@@ -182,17 +182,14 @@
)
)
)
((6)
(((task-status need-reward-speech))
(if (not arg0)
(set! (-> obj will-talk) #t)
)
(case (current-task (-> obj tasks))
((52)
(((game-task rolling-race))
(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))
)
(new 'static 'spool-anim
@@ -205,10 +202,7 @@
(else
(cond
(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 ((a1-10 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-10 from) pp)
@@ -241,9 +235,7 @@
0
"ERROR: <GMJ>: ~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 7)
@@ -271,45 +263,50 @@
)
(cond
((< 0.9230769 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM01" #f (-> obj root-override trans))
)
((< 0.84615386 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM02" #f (-> obj root-override trans))
)
((< 0.7692308 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM03" #f (-> obj root-override trans))
)
((< 0.6923077 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM04" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM04" #f (-> obj root-override trans))
)
((< 0.61538464 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM05" #f (-> obj root-override trans))
)
((< 0.53846157 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM06" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM06" #f (-> obj root-override trans))
)
((< 0.46153846 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM07" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM07" #f (-> obj root-override trans))
)
((< 0.3846154 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM08" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM08" #f (-> obj root-override trans))
)
((< 0.30769232 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM09" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM09" #f (-> obj root-override trans))
)
((< 0.23076923 f0-2)
(if (not (task-closed? (game-task ogre-boss) (task-status need-reminder)))
(dummy-11 (-> obj ambient) "GAM-AM10" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"GAM-AM10"
#f
(-> obj root-override trans)
)
)
)
((< 0.15384616 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM11" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM11" #f (-> obj root-override trans))
)
((< 0.07692308 f0-2)
(dummy-11 (-> obj ambient) "GAM-AM12" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM12" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "GAM-AM13" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GAM-AM13" #f (-> obj root-override trans))
)
)
)
+32 -25
View File
@@ -44,7 +44,7 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 260))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(when arg0
(close-status! (-> obj tasks) (task-status need-introduction))
(close-specific-task!
@@ -95,7 +95,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(cond
((closed?
@@ -146,17 +146,14 @@
)
)
)
((6)
(((task-status need-reward-speech))
(if (not arg0)
(set! (-> obj will-talk) #t)
)
(case (current-task (-> obj tasks))
((54)
(((game-task rolling-moles))
(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))
)
(new 'static 'spool-anim
@@ -169,10 +166,7 @@
(else
(cond
(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 ((a1-10 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-10 from) pp)
@@ -205,9 +199,7 @@
0
"ERROR: <GMJ>: ~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 5)
@@ -235,7 +227,7 @@
)
(cond
((< 0.8888889 f0-2)
(dummy-11 (-> obj ambient) "GEO-AM01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GEO-AM01" #f (-> obj root-override trans))
)
((< 0.7777778 f0-2)
(if
@@ -246,11 +238,16 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "GEO-AM02" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"GEO-AM02"
#f
(-> obj root-override trans)
)
)
)
((< 0.6666667 f0-2)
(dummy-11 (-> obj ambient) "GEO-AM03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GEO-AM03" #f (-> obj root-override trans))
)
((< 0.5555556 f0-2)
(if
@@ -259,14 +256,19 @@
(game-task village2-geologist-money)
(task-status need-introduction)
)
(dummy-11 (-> obj ambient) "GEO-AM04" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"GEO-AM04"
#f
(-> obj root-override trans)
)
)
)
((< 0.44444445 f0-2)
(dummy-11 (-> obj ambient) "GEO-AM05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GEO-AM05" #f (-> obj root-override trans))
)
((< 0.33333334 f0-2)
(dummy-11 (-> obj ambient) "GEO-AM06" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GEO-AM06" #f (-> obj root-override trans))
)
((< 0.22222222 f0-2)
(if
@@ -277,21 +279,26 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "GEO-AM07" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"GEO-AM07"
#f
(-> obj root-override trans)
)
)
)
((< 0.11111111 f0-2)
(dummy-11 (-> obj ambient) "GEO-LO02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GEO-LO02" #f (-> obj root-override trans))
)
((closed?
(-> obj tasks)
(game-task village2-geologist-money)
(task-status need-resolution)
)
(dummy-11 (-> obj ambient) "GEO-AM08" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GEO-AM08" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "GEO-LO01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "GEO-LO01" #f (-> obj root-override trans))
)
)
)
+17 -19
View File
@@ -54,12 +54,12 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 291))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(if (not arg0)
(set! (-> obj will-talk) #t)
)
(case (current-task (-> obj tasks))
((55)
(((game-task rolling-plants))
(when arg0
(let* ((s5-1 (-> obj tasks))
(s4-0 (method-of-object s5-1 save-reminder))
@@ -161,7 +161,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(if arg0
(set! (-> obj reminder-played) #t)
@@ -205,9 +205,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -218,9 +216,9 @@
(defmethod dummy-45 sage-bluehut ((obj sage-bluehut))
(cond
((= (current-status (-> obj tasks)) 1)
((= (current-status (-> obj tasks)) (task-status unknown))
)
((zero? (current-status (-> obj tasks)))
((= (current-status (-> obj tasks)) (task-status invalid))
)
((and
(closed?
@@ -256,19 +254,19 @@
(defmethod get-art-elem sage-bluehut ((obj sage-bluehut))
(cond
((and
(= (current-task (-> obj tasks)) 55)
(= (current-task (-> obj tasks)) (game-task rolling-plants))
(or
(= (current-status (-> obj tasks)) 2)
(= (current-status (-> obj tasks)) 3)
(= (current-status (-> obj tasks)) (task-status need-hint))
(= (current-status (-> obj tasks)) (task-status need-introduction))
)
)
(save-reminder (-> obj tasks) 0 0)
)
((and
(= (current-task (-> obj tasks)) 104)
(= (current-task (-> obj tasks)) (game-task swamp-arm))
(or
(= (current-status (-> obj tasks)) 2)
(= (current-status (-> obj tasks)) 3)
(= (current-status (-> obj tasks)) (task-status need-hint))
(= (current-status (-> obj tasks)) (task-status need-introduction))
)
)
(save-reminder (-> obj tasks) 1 0)
@@ -379,19 +377,19 @@
)
(cond
((< 0.8 f0-2)
(dummy-11 (-> obj ambient) "SAGELP20" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP20" #f (-> obj root-override trans))
)
((< 0.6 f0-2)
(dummy-11 (-> obj ambient) "SAGELP21" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP21" #f (-> obj root-override trans))
)
((< 0.4 f0-2)
(dummy-11 (-> obj ambient) "SAGELP22" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP22" #f (-> obj root-override trans))
)
((< 0.2 f0-2)
(dummy-11 (-> obj ambient) "SAGELP23" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP23" #f (-> obj root-override trans))
)
((nonzero? (get-task-status (game-task citadel-sage-blue)))
(dummy-11 (-> obj ambient) "SAGELP24" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP24" #f (-> obj root-override trans))
)
)
)
+8 -13
View File
@@ -84,7 +84,7 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 260))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(if arg0
(close-status! (-> obj tasks) (task-status need-introduction))
)
@@ -140,7 +140,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(new 'static 'spool-anim
:name "warrior-reminder-1"
@@ -149,13 +149,10 @@
:command-list '()
)
)
((6)
(((task-status need-reward-speech))
(cond
(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 ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) pp)
@@ -223,9 +220,7 @@
0
"ERROR: <GMJ>: ~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 5)
@@ -268,13 +263,13 @@
)
(cond
((< 0.66 f0-2)
(dummy-11 (-> obj ambient) "WAR-LO1A" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "WAR-LO1A" #f (-> obj root-override trans))
)
((< 0.33 f0-2)
(dummy-11 (-> obj ambient) "WAR-LO1B" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "WAR-LO1B" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "WAR-LO1C" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "WAR-LO1C" #f (-> obj root-override trans))
)
)
)
+23 -8
View File
@@ -87,7 +87,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -133,13 +133,13 @@
)
(cond
((< 0.85714287 f0-2)
(dummy-11 (-> obj ambient) "ASSTLP31" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "ASSTLP31" #f (-> obj root-override trans))
)
((< 0.71428573 f0-2)
(dummy-11 (-> obj ambient) "ASSTLP32" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "ASSTLP32" #f (-> obj root-override trans))
)
((< 0.5714286 f0-2)
(dummy-11 (-> obj ambient) "ASSTLP33" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "ASSTLP33" #f (-> obj root-override trans))
)
((< 0.42857143 f0-2)
(let ((v1-16 (get-task-status (game-task lavatube-end))))
@@ -150,7 +150,12 @@
(= v1-16 (task-status invalid))
)
)
(dummy-11 (-> obj ambient) "ASSTLP34" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP34"
#f
(-> obj root-override trans)
)
)
)
)
@@ -163,7 +168,12 @@
(= v1-21 (task-status invalid))
)
)
(dummy-11 (-> obj ambient) "ASSTLP35" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP35"
#f
(-> obj root-override trans)
)
)
)
)
@@ -176,12 +186,17 @@
(= v1-26 (task-status invalid))
)
)
(dummy-11 (-> obj ambient) "ASSTLP36" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"ASSTLP36"
#f
(-> obj root-override trans)
)
)
)
)
((nonzero? (get-task-status (game-task citadel-sage-green)))
(dummy-11 (-> obj ambient) "ASSTLP37" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "ASSTLP37" #f (-> obj root-override trans))
)
)
)
+37 -42
View File
@@ -118,7 +118,7 @@
0
"ERROR: <GMJ>: ~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 (-> obj draw art-group data 3))
@@ -337,12 +337,12 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 260))
(case (current-status (-> obj tasks))
((2 3)
(((task-status need-hint) (task-status need-introduction))
(if (not arg0)
(set! (-> obj will-talk) #t)
)
(case (current-task (-> obj tasks))
((96)
(((game-task village3-miner-money1))
(when arg0
(let* ((s5-1 (-> obj tasks))
(s4-0 (method-of-object s5-1 save-reminder))
@@ -430,7 +430,7 @@
)
)
)
((78)
(((game-task cave-gnawers))
(when arg0
(let* ((s5-2 (-> obj tasks))
(s4-1 (method-of-object s5-2 save-reminder))
@@ -526,7 +526,7 @@
)
)
)
((5)
(((task-status need-reminder))
(set! (-> obj skippable) #t)
(let ((s4-2 (+ (get-reminder (-> obj tasks) 0) 1)))
(if (< (the-as uint 3) (the-as uint s4-2))
@@ -680,7 +680,7 @@
)
)
)
((6)
(((task-status need-reward-speech))
(let ((s4-3 (get-reminder (-> obj tasks) 2)))
(cond
(arg0
@@ -691,10 +691,7 @@
(set! (-> a1-22 param 0) (the-as uint (process->handle obj)))
(send-event-function (-> obj other-miner ppointer 3) a1-22)
)
(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 ((a1-23 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-23 from) pp)
@@ -743,9 +740,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -788,91 +783,91 @@
)
(cond
((< 0.9655172 f0-2)
(dummy-11 (-> obj ambient) "MIN-LO01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MIN-LO01" #f (-> obj root-override trans))
)
((< 0.9310345 f0-2)
(dummy-11 (-> obj ambient) "MIN-LO03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MIN-LO03" #f (-> obj root-override trans))
)
((< 0.8965517 f0-2)
(dummy-11 (-> obj ambient) "MIN-LO04" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MIN-LO04" #f (-> obj root-override trans))
)
((< 0.86206895 f0-2)
(dummy-11 (-> obj ambient) "MIN-LO05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MIN-LO05" #f (-> obj root-override trans))
)
((< 0.82758623 f0-2)
(dummy-11 (-> obj ambient) "MIN-LO06" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MIN-LO06" #f (-> obj root-override trans))
)
((< 0.79310346 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM01" #f (-> obj root-override trans))
)
((< 0.7586207 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM02" #f (-> obj root-override trans))
)
((< 0.7241379 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM03" #f (-> obj root-override trans))
)
((< 0.6896552 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM04" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM04" #f (-> obj root-override trans))
)
((< 0.6551724 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM05" #f (-> obj root-override trans))
)
((< 0.62068963 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM06" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM06" #f (-> obj root-override trans))
)
((< 0.5862069 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM07" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM07" #f (-> obj root-override trans))
)
((< 0.55172414 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM08" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM08" #f (-> obj root-override trans))
)
((< 0.51724136 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM09" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM09" #f (-> obj root-override trans))
)
((< 0.4827586 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM10" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM10" #f (-> obj root-override trans))
)
((< 0.44827586 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM11" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM11" #f (-> obj root-override trans))
)
((< 0.41379312 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM12" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM12" #f (-> obj root-override trans))
)
((< 0.37931034 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM1A" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM1A" #f (-> obj root-override trans))
)
((< 0.3448276 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM2A" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM2A" #f (-> obj root-override trans))
)
((< 0.31034482 f0-2)
(dummy-11 (-> obj ambient) "MSH-AM3A" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MSH-AM3A" #f (-> obj root-override trans))
)
((< 0.27586207 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM01" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM01" #f (-> obj root-override trans))
)
((< 0.2413793 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM02" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM02" #f (-> obj root-override trans))
)
((< 0.20689656 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM03" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM03" #f (-> obj root-override trans))
)
((< 0.1724138 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM04" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM04" #f (-> obj root-override trans))
)
((< 0.13793103 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM05" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM05" #f (-> obj root-override trans))
)
((< 0.10344828 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM06" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM06" #f (-> obj root-override trans))
)
((< 0.06896552 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM07" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM07" #f (-> obj root-override trans))
)
((< 0.03448276 f0-2)
(dummy-11 (-> obj ambient) "MTA-AM08" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM08" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "MTA-AM09" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "MTA-AM09" #f (-> obj root-override trans))
)
)
)
+31 -15
View File
@@ -78,12 +78,15 @@
(with-pp
(set! (-> obj talk-message) (the-as uint 291))
(case (current-status (-> obj tasks))
((1 2 3)
(((task-status unknown)
(task-status need-hint)
(task-status need-introduction)
)
(if (not arg0)
(set! (-> obj will-talk) #t)
)
(case (current-task (-> obj tasks))
((105)
(((game-task village3-button))
(when arg0
(close-status! (-> obj tasks) (task-status need-introduction))
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
@@ -337,7 +340,7 @@
)
)
)
((79)
(((game-task cave-dark-crystals))
(when arg0
(let* ((s5-3 (-> obj tasks))
(s4-0 (method-of-object s5-3 save-reminder))
@@ -405,7 +408,7 @@
)
)
)
((4 5)
(((task-status need-reminder-a) (task-status need-reminder))
(set! (-> obj skippable) #t)
(let ((s4-1 (+ (get-reminder (-> obj tasks) 0) 1)))
(if (< (the-as uint 1) (the-as uint s4-1))
@@ -466,9 +469,7 @@
0
"ERROR: <GMJ>: ~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)
@@ -507,7 +508,7 @@
)
(cond
((< 0.875 f0-2)
(dummy-11 (-> obj ambient) "SAGELP31" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP31" #f (-> obj root-override trans))
)
((< 0.75 f0-2)
(if
@@ -518,33 +519,48 @@
(task-status need-reminder)
)
)
(dummy-11 (-> obj ambient) "SAGELP32" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP32"
#f
(-> obj root-override trans)
)
)
)
((< 0.625 f0-2)
(if (nonzero? (get-task-status (game-task citadel-sage-green)))
(dummy-11 (-> obj ambient) "SAGELP33" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP33"
#f
(-> obj root-override trans)
)
)
)
((< 0.5 f0-2)
(dummy-11 (-> obj ambient) "SAGELP34" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP34" #f (-> obj root-override trans))
)
((< 0.375 f0-2)
(dummy-11 (-> obj ambient) "SAGELP35" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP35" #f (-> obj root-override trans))
)
((< 0.25 f0-2)
(dummy-11 (-> obj ambient) "SAGELP36" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP36" #f (-> obj root-override trans))
)
((< 0.125 f0-2)
(if (nonzero? (get-task-status (game-task citadel-sage-green)))
(dummy-11 (-> obj ambient) "SAGELP37" #f (-> obj root-override trans))
(play-ambient
(-> obj ambient)
"SAGELP37"
#f
(-> obj root-override trans)
)
)
)
((!=
(get-task-status (game-task citadel-sage-green))
(task-status need-resolution)
)
(dummy-11 (-> obj ambient) "SAGELP38" #f (-> obj root-override trans))
(play-ambient (-> obj ambient) "SAGELP38" #f (-> obj root-override trans))
)
)
)
+19
View File
@@ -374,6 +374,25 @@ Val* Compiler::compile_deftype(const goos::Object& form, const goos::Object& res
// remember that this is a type
m_symbol_types[result.type.base_type()] = m_ts.make_typespec("type");
// add declared states
for (auto& state : result.type_info->get_states_declared_for_type()) {
auto existing_type = m_symbol_types.find(state.name);
if (existing_type != m_symbol_types.end() && existing_type->second != state.type) {
if (m_throw_on_define_extern_redefinition) {
throw_compiler_error(form, "deftype would redefine the type of state {} from {} to {}.",
state.name, existing_type->second.print(), state.type.print());
} else {
print_compiler_warning(
"[Warning] deftype has redefined the type of state {}\npreviously: {}\nnow: "
"{}\n",
state.name.c_str(), existing_type->second.print().c_str(), state.type.print().c_str());
}
}
m_symbol_types[state.name] = state.type;
m_symbol_info.add_fwd_dec(state.name, form);
}
if (result.create_runtime_type) {
// get the new method of type object. this is new_type in kscheme.cpp
auto new_type_method = compile_get_method_of_type(form, m_ts.make_typespec("type"), "new", env);
+4
View File
@@ -0,0 +1,4 @@
@echo off
cd ..\..
out\build\Release\bin\goalc -v
pause
+2 -2
View File
@@ -1209,11 +1209,11 @@
;; definition for function cam-slave-go
;; INFO: Return type mismatch int vs none.
(defun cam-slave-go ((arg0 camera-slave))
(defun cam-slave-go ((arg0 state))
(with-pp
(cam-slave-init-vars)
(let ((t9-1 (the-as (function object) enter-state)))
(set! (-> pp next-state) (the-as state arg0))
(set! (-> pp next-state) arg0)
(t9-1)
)
0
@@ -352,9 +352,10 @@
;; definition of type collide-shape-prim-group
(deftype collide-shape-prim-group (collide-shape-prim)
((num-prims int32 :offset-assert 72)
(allocated-prims int32 :offset-assert 76)
(prim uint32 1 :offset-assert 80)
((num-prims int32 :offset-assert 72)
(allocated-prims int32 :offset-assert 76)
(prim collide-shape-prim 1 :offset-assert 80)
(prims collide-shape-prim :dynamic :offset 80)
)
:method-count-assert 30
:size-assert #x54
@@ -383,7 +384,7 @@
(format #t "~Tradius: (meters ~m)~%" (-> obj local-sphere w))
(format #t "~Tnum-prims: ~D~%" (-> obj num-prims))
(format #t "~Tallocated-prims: ~D~%" (-> obj allocated-prims))
(format #t "~Tprim[1] @ #x~X~%" (-> obj prim))
(format #t "~Tprim[1] @ #x~X~%" (-> obj prims))
obj
)
@@ -684,7 +685,7 @@
(set! (-> obj prim-core prim-type) 0)
(while (nonzero? elt-count)
(+! elt-count -1)
(set! (-> obj prim elt-count) (the-as uint #f))
(set! (-> obj prims elt-count) #f)
(nop!)
)
(the-as collide-shape-prim-group obj)
@@ -128,10 +128,11 @@
(unknown-dword40 int64 :offset 2160)
(unknown-dword41 int64 :offset 2168)
(unknown-handle10 handle :offset 2176)
(unknown-int11 int32 :offset 2184)
(unknown-symbol20 symbol :offset 2184)
(unknown-int20 int32 :offset 2188)
(unknown-vector102 vector :inline :offset 2224)
(unknown-vector103 vector :inline :offset 2240)
(unknown-smush00 smush-control :inline :offset 2288)
(unknown-vector110 vector :inline :offset 2320)
(unknown-vector111 vector :inline :offset 2336)
(unknown-int30 int32 :offset 2384)
+1 -1
View File
@@ -452,7 +452,7 @@
(new (symbol type process art-joint-geo) _type_ 0)
(dummy-9 (_type_) (pointer int8) 9)
(dummy-10 (_type_ int) int 10)
(dummy-11 (_type_ pointer) int 11)
(dummy-11 (_type_ lod-set) none 11)
)
)
+1 -1
View File
@@ -1314,7 +1314,7 @@
;; definition (debug) for function add-debug-yrot-vector
;; WARN: Stack slot offset 32 signed mismatch
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 32 mismatch: defined as size 4, got size 16
;; Used lq/sq
(defun-debug
add-debug-yrot-vector
+8 -8
View File
@@ -805,14 +805,14 @@
)
;; definition for function debug-menu-make-from-template
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 48 mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 64 mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 80 mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 96 mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 48 mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 64 mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 80 mismatch: defined as size 4, got size 16
;; WARN: Stack slot load at 96 mismatch: defined as size 4, got size 16
;; Used lq/sq
(defun debug-menu-make-from-template ((arg0 debug-menu-context) (arg1 pair))
(local-vars

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