[decompiler] new features + fixes, + other jak2 fixes (#2796)

Fixes empty boxed arrays of strings breaking some decomp
(`ctywide-speech` and `race-info`).

Adds `decomp-as` tag to decompiler types so that the static data
decompiler can use macros like `meters` and `seconds` on fields that
aren't of type `meters` or `time-frame`.

Adds `override` tag to decompiler types which overrides the type of
field with that name. The type must be a child type of the original
field's type (or the same type, but why would you do this?).

Fixes the camera being offset for `drillmtn` after loading `palout`
once.

This is a huge refactor sadly.
This commit is contained in:
ManDude
2023-07-04 22:23:24 +01:00
committed by GitHub
parent 71b4ab5122
commit b50b9eadb2
589 changed files with 25554 additions and 22804 deletions
+14 -1
View File
@@ -913,6 +913,17 @@ bool StructureType::lookup_field(const std::string& name, Field* out) {
return false;
}
void StructureType::override_field_type(const std::string& field_name, const TypeSpec& new_type) {
int i = 0;
for (auto& x : m_fields) {
if (x.name() == field_name) {
x.set_override_type(new_type);
m_overriden_fields.push_back(i);
}
++i;
}
}
/////////////////
// BasicType
/////////////////
@@ -1035,7 +1046,9 @@ BitFieldType::BitFieldType(std::string parent, std::string name, int size, bool
bool BitFieldType::lookup_field(const std::string& name, BitField* out) const {
for (auto& field : m_fields) {
if (field.name() == name) {
*out = field;
if (out) {
*out = field;
}
return true;
}
}
+12
View File
@@ -222,9 +222,14 @@ class Field {
void set_dynamic();
void set_array(int size);
void set_inline();
void set_override_type(const TypeSpec& new_type) {
m_type = new_type;
m_override_type = true;
}
void mark_as_user_placed() { m_placed_by_user = true; }
std::string print() const;
const TypeSpec& type() const { return m_type; }
const std::optional<TypeSpec> decomp_as_type() const { return m_decomp_as_ts; }
TypeSpec& type() { return m_type; }
bool is_inline() const { return m_inline; }
bool is_array() const { return m_array; }
@@ -249,6 +254,7 @@ class Field {
double field_score() const { return m_field_score; }
void set_field_score(double value) { m_field_score = value; }
void set_decomp_as_ts(const TypeSpec& ts) { m_decomp_as_ts = ts; }
private:
friend class TypeSystem;
@@ -258,6 +264,7 @@ class Field {
std::string m_name;
TypeSpec m_type;
bool m_override_type = false;
int m_offset = -1;
bool m_inline =
false; // does not make sense if m_type is value, and not an array and not dynamic
@@ -269,6 +276,8 @@ class Field {
bool m_placed_by_user = false; // was this field placed manually by the user?
double m_field_score = 0.;
std::optional<TypeSpec> m_decomp_as_ts = std::nullopt;
};
class StructureType : public ReferenceType {
@@ -282,6 +291,7 @@ class StructureType : public ReferenceType {
std::string print() const override;
void inherit(StructureType* parent);
const std::vector<Field>& fields() const { return m_fields; }
const std::vector<int>& override_fields() const { return m_overriden_fields; }
bool operator==(const Type& other) const override;
std::string diff_impl(const Type& other) const override;
std::string diff_structure_common(const StructureType& other) const;
@@ -302,6 +312,7 @@ class StructureType : public ReferenceType {
void set_allow_misalign(bool misalign) { m_allow_misalign = misalign; }
void set_gen_inspect(bool gen_inspect) { m_generate_inspect = gen_inspect; }
int size() const { return m_size_in_mem; }
void override_field_type(const std::string& field_name, const TypeSpec& new_type);
protected:
friend class TypeSystem;
@@ -317,6 +328,7 @@ class StructureType : public ReferenceType {
size_t first_unique_field_idx() const { return m_idx_of_first_unique_field; }
std::vector<Field> m_fields;
std::vector<int> m_overriden_fields;
bool m_dynamic = false;
int m_size_in_mem = 0;
bool m_pack = false;
+30 -2
View File
@@ -951,7 +951,8 @@ int TypeSystem::add_field_to_type(StructureType* type,
int array_size,
int offset_override,
bool skip_in_static_decomp,
double score) {
double score,
const std::optional<TypeSpec> decomp_as_ts) {
if (type->lookup_field(field_name, nullptr)) {
throw_typesystem_error("Type {} already has a field named {}\n", type->get_name(), field_name);
}
@@ -993,6 +994,9 @@ int TypeSystem::add_field_to_type(StructureType* type,
field.set_skip_in_static_decomp();
}
field.set_field_score(score);
if (decomp_as_ts) {
field.set_decomp_as_ts(*decomp_as_ts);
}
int after_field = offset + get_size_in_type(field);
if (type->get_size_in_memory() < after_field) {
@@ -2006,9 +2010,18 @@ std::string TypeSystem::generate_deftype_for_structure(const StructureType* st)
const std::string inline_string = ":inline";
const std::string dynamic_string = ":dynamic";
const std::string user_offset_string = ":offset xxx";
bool has_offset_assert = false;
// calculate longest strings needed, for basic linting
// override fields
for (auto i : st->override_fields()) {
const auto& field = st->fields().at(i);
longest_field_name = std::max(longest_field_name, int(field.name().size()));
longest_type_name = std::max(longest_type_name, int(field.type().print().size()));
}
// normal fields
for (size_t i = st->first_unique_field_idx(); i < st->fields().size(); i++) {
const auto& field = st->fields().at(i);
longest_field_name = std::max(longest_field_name, int(field.name().size()));
@@ -2040,6 +2053,21 @@ std::string TypeSystem::generate_deftype_for_structure(const StructureType* st)
longest_mods = std::max(longest_mods, mods);
}
// now actually write out the fields
// override fields first
for (auto i : st->override_fields()) {
const auto& field = st->fields().at(i);
result += "(";
result += field.name();
result.append(1 + (longest_field_name - int(field.name().size())), ' ');
result += field.type().print();
result.append(1 + (longest_type_name - int(field.type().print().size())), ' ');
result.append(1 + longest_mods, ' ');
result.append(":override)\n ");
}
// now normal fields
for (size_t i = st->first_unique_field_idx(); i < st->fields().size(); i++) {
const auto& field = st->fields().at(i);
result += "(";
+2 -1
View File
@@ -216,7 +216,8 @@ class TypeSystem {
int array_size = -1,
int offset_override = -1,
bool skip_in_static_decomp = false,
double score = 0.0);
double score = 0.0,
const std::optional<TypeSpec> decomp_as_ts = std::nullopt);
void add_builtin_types(GameVersion version);
+37 -7
View File
@@ -103,6 +103,9 @@ void add_field(StructureType* structure,
int offset_assert = -1;
double score = 0;
bool skip_in_decomp = false;
std::optional<TypeSpec> decomp_as_ts = std::nullopt;
Field override_field;
bool override = false;
if (!rest->is_empty_list()) {
if (car(rest).is_int()) {
@@ -125,6 +128,11 @@ void add_field(StructureType* structure,
} else if (opt_name == ":offset") {
offset_override = get_int(car(rest));
rest = cdr(rest);
} else if (opt_name == ":override") {
override = true;
if (!structure->lookup_field(name, &override_field)) {
throw std::runtime_error(fmt::format("Field {} not found to override", name));
}
} else if (opt_name == ":overlay-at") {
auto field_name = symbol_string(car(rest));
Field overlay_field;
@@ -137,6 +145,9 @@ void add_field(StructureType* structure,
} else if (opt_name == ":score") {
score = get_float(car(rest));
rest = cdr(rest);
} else if (opt_name == ":decomp-as") {
decomp_as_ts = TypeSpec(symbol_string(car(rest)));
rest = cdr(rest);
} else if (opt_name == ":offset-assert") {
offset_assert = get_int(car(rest));
if (offset_assert == -1) {
@@ -151,11 +162,30 @@ void add_field(StructureType* structure,
}
}
int actual_offset = ts->add_field_to_type(structure, name, type, is_inline, is_dynamic,
array_size, offset_override, skip_in_decomp, score);
if (offset_assert != -1 && actual_offset != offset_assert) {
throw std::runtime_error("Field " + name + " was placed at " + std::to_string(actual_offset) +
" but offset-assert was set to " + std::to_string(offset_assert));
if (override && name == override_field.name()) {
// override field, e.g. (root collide-shape :overlay-at root)
// does not add new field, merely rewrites inherited one
if (!ts->tc(override_field.type(), type)) {
throw std::runtime_error(
fmt::format("Wanted to override field {}, but type {} isn't child of {}",
override_field.name(), type.print(), override_field.type().print()));
}
if (override_field.is_inline() != is_inline || override_field.is_dynamic() != is_dynamic ||
(array_size != -1 && override_field.array_size() != array_size)) {
throw std::runtime_error(
fmt::format("Wanted to override field {}, but some parameters were different",
override_field.name()));
}
structure->override_field_type(override_field.name(), type);
} else {
// new unique field
int actual_offset =
ts->add_field_to_type(structure, name, type, is_inline, is_dynamic, array_size,
offset_override, skip_in_decomp, score, decomp_as_ts);
if (offset_assert != -1 && actual_offset != offset_assert) {
throw std::runtime_error("Field " + name + " was placed at " + std::to_string(actual_offset) +
" but offset-assert was set to " + std::to_string(offset_assert));
}
}
}
@@ -739,7 +769,7 @@ DeftypeResult parse_deftype(const goos::Object& deftype,
parent_type_name));
}
new_type->inherit(pto);
ts->forward_declare_type_as(name, "basic");
ts->forward_declare_type_as(name, pto->get_name());
auto sr =
parse_structure_def(new_type.get(), ts, field_list_obj, options_obj, constants_to_use);
result.flags = sr.flags;
@@ -769,7 +799,7 @@ DeftypeResult parse_deftype(const goos::Object& deftype,
auto pto = dynamic_cast<StructureType*>(ts->lookup_type(parent_type));
ASSERT(pto);
new_type->inherit(pto);
ts->forward_declare_type_as(name, "structure");
ts->forward_declare_type_as(name, pto->get_name());
auto sr =
parse_structure_def(new_type.get(), ts, field_list_obj, options_obj, constants_to_use);
result.flags = sr.flags;
+19 -2
View File
@@ -914,8 +914,25 @@ bool LinkedObjectFile::is_string(int seg, int byte_idx) const {
if (type_tag_ptr < 0 || size_t(type_tag_ptr) >= words_by_seg.at(seg).size() * 4) {
return false;
}
auto& type_word = words_by_seg.at(seg).at(type_tag_ptr / 4);
return type_word.kind() == LinkedWord::TYPE_PTR && type_word.symbol_name() == "string";
int type_word_idx = type_tag_ptr / 4;
auto& type_word = words_by_seg.at(seg).at(type_word_idx);
if (type_word.kind() == LinkedWord::TYPE_PTR && type_word.symbol_name() == "string") {
// could be a string basic
// check if we're not right after a zero-length string array.
if (type_word_idx >= 3) {
auto& arr_type_word = words_by_seg.at(seg).at(type_word_idx - 3);
auto& arr_len_word = words_by_seg.at(seg).at(type_word_idx - 2);
auto& arr_alen_word = words_by_seg.at(seg).at(type_word_idx - 1);
if (arr_type_word.kind() == LinkedWord::TYPE_PTR && arr_type_word.symbol_name() == "array" &&
arr_len_word.kind() == LinkedWord::PLAIN_DATA && arr_len_word.data == 0 &&
arr_alen_word.kind() == LinkedWord::PLAIN_DATA && arr_alen_word.data == 0) {
return false;
}
}
// seems good.
return true;
}
return false;
}
/*!
File diff suppressed because it is too large Load Diff
@@ -655,7 +655,7 @@
"target-mech": [
[7, "(function none :behavior target)"],
[8, "(function none :behavior mech)"],
[9, "(function none :behavior target)"],
[9, "(function none :behavior manipy)"],
[18, "(function surface object surface int none :behavior target)"],
[19, "(function surface object surface int none :behavior target)"]
],
@@ -2503,14 +2503,6 @@
[66, "v1", "(pointer int32)"]
],
"(code othercam-running)": [[[2, 65], "s2", "process-drawable"]],
"hud-ring-cell-init-by-other": [
[36, "a0", "progress"],
[45, "v1", "progress"],
[56, "a0", "progress"],
[132, "a1", "progress"],
[159, "a1", "progress"],
[178, "a1", "progress"]
],
"(enter othercam-running)": [[[50, 60], "gp", "process-drawable"]],
"(post idle hud-ring-cell)": [
[8, "a1", "progress"],
@@ -2595,31 +2587,7 @@
"target-board-real-post": [[346, "v0", "sound-rpc-set-param"]],
"target-board-effect": [[334, "v0", "sound-rpc-set-param"]],
"target-board-handler": [[123, "a0", "process"]],
"(trans target-flop-hit-ground)": [
[52, "v1", "fact-info-target"],
[58, "v1", "fact-info-target"]
],
"(code target-flop)": [[32, "v1", "art-joint-anim"]],
"(trans target-flop)": [
[73, "v1", "fact-info-target"],
[79, "v1", "fact-info-target"],
[108, "v1", "fact-info-target"],
[114, "v1", "fact-info-target"],
[187, "v1", "fact-info-target"],
[193, "v1", "fact-info-target"]
],
"(enter target-flop)": [
[2, "v1", "fact-info-target"],
[8, "v1", "fact-info-target"]
],
"(trans target-attack-uppercut-jump)": [
[183, "v1", "fact-info-target"],
[189, "v1", "fact-info-target"]
],
"(trans target-attack-air)": [
[83, "v1", "fact-info-target"],
[89, "v1", "fact-info-target"]
],
"(code target-running-attack)": [
[115, "gp", "art-joint-anim"],
[398, "v1", "art-joint-anim"],
@@ -2652,16 +2620,8 @@
"(enter target-double-jump)": [[15, "v1", "vector"]],
"(enter target-jump)": [[42, "v1", "vector"]],
"(enter target-high-jump)": [[21, "v1", "vector"]],
"(code target-attack)": [
[145, "gp", "art-joint-anim"],
[177, "v1", "fact-info-target"],
[183, "v1", "fact-info-target"]
],
"(code target-attack)": [[145, "gp", "art-joint-anim"]],
"(event target-running-attack)": [[48, "v1", "target"]],
"(trans target-running-attack)": [
[211, "v1", "fact-info-target"],
[217, "v1", "fact-info-target"]
],
"target-gun-end-mode": [[58, "v0", "sound-rpc-set-param"]],
"target-board-physics": [[167, "v0", "sound-rpc-set-param"]],
"clone-anim-once": [
@@ -3008,29 +2968,7 @@
[46, "a0", "fact-info-target"]
],
"want-to-darkjak?": [[53, "a0", "fact-info-target"]],
"target-powerup-process": [
[235, "v0", "sound-rpc-set-param"],
[253, "v1", "fact-info-target"],
[259, "a0", "fact-info-target"],
[262, "a0", "fact-info-target"],
[268, "v1", "fact-info-target"],
[283, "v1", "fact-info-target"],
[313, "a0", "fact-info-target"],
[366, "v1", "fact-info-target"],
[390, "v1", "fact-info-target"],
[407, "v1", "fact-info-target"]
],
"target-eco-process": [
[1, "v1", "fact-info-target"],
[11, "a0", "fact-info-target"],
[19, "v1", "fact-info-target"],
[21, "v1", "fact-info-target"],
[14, "a0", "fact-info-target"],
[54, "v1", "fact-info-target"],
[77, "v1", "fact-info-target"],
[82, "a3", "fact-info-target"],
[97, "v1", "fact-info-target"]
],
"target-powerup-process": [[235, "v0", "sound-rpc-set-param"]],
"cloud-track": [
[[19, 83], "s1", "handle"],
[[29, 116], "s2", "handle"]
@@ -3089,7 +3027,6 @@
[231, "a0", "region-prim-area"],
[238, "v1", "region-prim-area"]
],
"target-danger-set!": [[823, "v1", "fact-info-target"]],
"(method 26 target)": [[23, "v0", "float"]],
"(method 11 attack-info)": [
[[118, 130], "v1", "process-drawable"],
@@ -3097,10 +3034,6 @@
],
"(method 10 attack-info)": [[13, "a1", "collide-shape"]],
"target-log-attack": [[47, "a3", "attack-info"]],
"can-hands?": [
[39, "a0", "fact-info-target"],
[45, "a0", "fact-info-target"]
],
"target-attacked": [
[56, "v1", "fact-info-target"],
[66, "v1", "fact-info-target"],
@@ -4904,7 +4837,9 @@
"(method 10 gem)": [[12, "t9", "(function gem none)"]],
"(method 9 fact-info)": [
[245, "a0", "process-drawable"],
[293, "a0", "process-drawable"]
[293, "a0", "process-drawable"],
[187, "v1", "pickup-type"],
[[174, 309], "s2", "pickup-type"]
],
"(method 179 fodder)": [[[16, 20], "a0", "process-focusable"]],
"(code notice fodder)": [
@@ -4331,5 +4331,15 @@
},
"cloud-texture-anim-layer-func": {
"args": ["dma-buf", "fbp-to-draw", "width", "height", "layer", "time"]
},
"(anon-function 9 target-mech)": {
"vars": {
"a0-0": ["a0-0", "(pointer target)"]
}
},
"(method 9 fact-info)": {
"vars": {
"s2-0": ["s2-0", "pickup-type"]
}
}
}
+84 -69
View File
@@ -1235,8 +1235,8 @@ goos::Object decompile_structure(const TypeSpec& type,
fmt::format("Failed to decompile: looking at field {} (from {}) with type {}",
field.name(), type_info->get_name(), field.type().print()));
}
field_defs_out.emplace_back(field.name(),
decompile_value(field.type(), bytes_out, ts));
field_defs_out.emplace_back(field.name(), decompile_value(field.type(), bytes_out, ts,
field.decomp_as_type()));
}
}
}
@@ -1517,7 +1517,8 @@ goos::Object bitfield_defs_print(const TypeSpec& type,
goos::Object decompile_value(const TypeSpec& type,
const std::vector<u8>& bytes,
const TypeSystem& ts) {
const TypeSystem& ts,
const std::optional<TypeSpec> decomp_as_type) {
auto as_enum = ts.try_enum_lookup(type);
if (as_enum) {
ASSERT((int)bytes.size() == as_enum->get_load_size());
@@ -1566,93 +1567,107 @@ goos::Object decompile_value(const TypeSpec& type,
}
}
const auto& output_type = decomp_as_type ? *decomp_as_type : type;
// try as common integer types:
auto print_int = [](s64 val, bool is_signed, const TypeSpec& ts, s64 hex_cutoff = 100) {
if (ts == TypeSpec("seconds") || ts == TypeSpec("time-frame")) {
return pretty_print::to_symbol(
fmt::format("(seconds {})", fixed_point_to_string(val, TICKS_PER_SECOND)));
} else if (!is_signed || val > hex_cutoff) {
return pretty_print::to_symbol(fmt::format("#x{:x}", u64(val)));
} else {
return pretty_print::to_symbol(fmt::format("{}", val));
}
};
auto print_float = [](double val, const TypeSpec& ts) {
if (ts == TypeSpec("meters")) {
double meters = val / METER_LENGTH;
auto rep = pretty_print::float_representation(meters);
if (rep.print().find("the-as") != std::string::npos) {
return rep;
} else {
return pretty_print::to_symbol(fmt::format("(meters {})", meters_to_string(val)));
}
} else if (ts == TypeSpec("degrees")) {
double degrees = val / DEGREES_LENGTH;
auto rep = pretty_print::float_representation(degrees);
if (rep.print().find("the-as") != std::string::npos) {
return rep;
} else {
return pretty_print::to_symbol(fmt::format("(degrees {})", degrees_to_string(val)));
}
} else if (ts == TypeSpec("fsec")) {
double seconds = val / TICKS_PER_SECOND;
auto rep = pretty_print::float_representation(seconds);
if (rep.print().find("the-as") != std::string::npos) {
return rep;
} else {
return pretty_print::to_symbol(fmt::format("(fsec {})", float_to_string(seconds, false)));
}
} else {
return pretty_print::float_representation(val);
}
};
if (ts.tc(TypeSpec("uint32"), type)) {
ASSERT(bytes.size() == 4);
u32 value;
memcpy(&value, bytes.data(), 4);
return pretty_print::to_symbol(fmt::format("#x{:x}", u64(value)));
return print_int(value, false, output_type);
} else if (ts.tc(TypeSpec("int32"), type)) {
ASSERT(bytes.size() == 4);
s32 value;
memcpy(&value, bytes.data(), 4);
if (value > 100) {
return pretty_print::to_symbol(fmt::format("#x{:x}", value));
} else {
return pretty_print::to_symbol(fmt::format("{}", value));
}
return print_int(value, true, output_type);
} else if (ts.tc(TypeSpec("uint16"), type)) {
ASSERT(bytes.size() == 2);
u16 value;
memcpy(&value, bytes.data(), 2);
return pretty_print::to_symbol(fmt::format("#x{:x}", u64(value)));
return print_int(value, false, output_type);
} else if (ts.tc(TypeSpec("int16"), type)) {
ASSERT(bytes.size() == 2);
s16 value;
memcpy(&value, bytes.data(), 2);
if (value > 100) {
return pretty_print::to_symbol(fmt::format("#x{:x}", value));
} else {
return pretty_print::to_symbol(fmt::format("{}", value));
}
} else if (ts.tc(TypeSpec("int8"), type)) {
ASSERT(bytes.size() == 1);
s8 value;
memcpy(&value, bytes.data(), 1);
if (value > 5) {
return pretty_print::to_symbol(fmt::format("#x{:x}", value));
} else {
return pretty_print::to_symbol(fmt::format("{}", value));
}
} else if (type == TypeSpec("seconds") || type == TypeSpec("time-frame")) {
ASSERT(bytes.size() == 8);
s64 value;
memcpy(&value, bytes.data(), 8);
return pretty_print::to_symbol(
fmt::format("(seconds {})", fixed_point_to_string(value, TICKS_PER_SECOND)));
} else if (ts.tc(TypeSpec("uint64"), type)) {
ASSERT(bytes.size() == 8);
u64 value;
memcpy(&value, bytes.data(), 8);
return pretty_print::to_symbol(fmt::format("#x{:x}", value));
} else if (ts.tc(TypeSpec("int64"), type)) {
ASSERT(bytes.size() == 8);
s64 value;
memcpy(&value, bytes.data(), 8);
if (value > 100) {
return pretty_print::to_symbol(fmt::format("#x{:x}", value));
} else {
return pretty_print::to_symbol(fmt::format("{}", value));
}
} else if (type == TypeSpec("meters")) {
ASSERT(bytes.size() == 4);
float value;
memcpy(&value, bytes.data(), 4);
double meters = (double)value / METER_LENGTH;
auto rep = pretty_print::float_representation(meters);
if (rep.print().find("the-as") != std::string::npos) {
return rep;
// return pretty_print::build_list("the-as", "meters", rep);
} else {
return pretty_print::to_symbol(fmt::format("(meters {})", meters_to_string(value)));
}
} else if (type == TypeSpec("degrees")) {
ASSERT(bytes.size() == 4);
float value;
memcpy(&value, bytes.data(), 4);
double degrees = (double)value / DEGREES_LENGTH;
return pretty_print::build_list("degrees", pretty_print::float_representation(degrees));
} else if (ts.tc(TypeSpec("float"), type)) {
ASSERT(bytes.size() == 4);
float value;
memcpy(&value, bytes.data(), 4);
return pretty_print::float_representation(value);
return print_int(value, true, output_type);
} else if (ts.tc(TypeSpec("uint8"), type)) {
ASSERT(bytes.size() == 1);
u8 value;
memcpy(&value, bytes.data(), 1);
return pretty_print::to_symbol(fmt::format("#x{:x}", value));
return print_int(value, false, output_type);
} else if (ts.tc(TypeSpec("int8"), type)) {
ASSERT(bytes.size() == 1);
s8 value;
memcpy(&value, bytes.data(), 1);
return print_int(value, true, output_type);
} else if (type == TypeSpec("seconds") || type == TypeSpec("time-frame")) {
ASSERT(bytes.size() == 8);
s64 value;
memcpy(&value, bytes.data(), 8);
return print_int(value, false, output_type);
} else if (ts.tc(TypeSpec("uint64"), type)) {
ASSERT(bytes.size() == 8);
u64 value;
memcpy(&value, bytes.data(), 8);
return print_int(value, false, output_type);
} else if (ts.tc(TypeSpec("int64"), type)) {
ASSERT(bytes.size() == 8);
s64 value;
memcpy(&value, bytes.data(), 8);
return print_int(value, true, output_type);
} else if (type == TypeSpec("meters")) {
ASSERT(bytes.size() == 4);
float value;
memcpy(&value, bytes.data(), 4);
return print_float(value, output_type);
} else if (type == TypeSpec("degrees")) {
ASSERT(bytes.size() == 4);
float value;
memcpy(&value, bytes.data(), 4);
return print_float(value, output_type);
} else if (ts.tc(TypeSpec("float"), type)) {
ASSERT(bytes.size() == 4);
float value;
memcpy(&value, bytes.data(), 4);
return print_float(value, output_type);
} else {
throw std::runtime_error(fmt::format("decompile_value failed on a {}", type.print()));
}
+2 -1
View File
@@ -66,7 +66,8 @@ goos::Object decompile_boxed_array(const TypeSpec& type,
GameVersion version);
goos::Object decompile_value(const TypeSpec& type,
const std::vector<u8>& bytes,
const TypeSystem& ts);
const TypeSystem& ts,
const std::optional<TypeSpec> decomp_as_type = std::nullopt);
goos::Object decompile_value_array(const TypeSpec& elt_type,
const Type* elt_type_info,
int length,
+9 -9
View File
@@ -272,7 +272,7 @@
(vf7 :class vf)
)
(init-vf0-vector)
(let* ((v1-1 (-> obj root-override trans))
(let* ((v1-1 (-> obj root trans))
(a1-0 (-> obj tail-pos))
(s5-1 (vector-! (new 'stack-no-clear 'vector) v1-1 a1-0))
(gp-0 (new 'stack-no-clear 'vector))
@@ -353,7 +353,7 @@
(t2-0 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> obj root-override trans quad))
(set! (-> t3-0 trans quad) (-> obj root trans quad))
((the-as (function object object object object object object object object none) t9-2)
a0-3
a1-2
@@ -391,7 +391,7 @@
(defmethod made-impact? ashelin-shot ((obj ashelin-shot))
"TODO - queries the collision cache, return true/false"
(let ((v1-0 (-> obj root-override))
(let ((v1-0 (-> obj root))
(t1-0 (new 'stack-no-clear 'collide-query))
)
(let ((a1-0 t1-0))
@@ -408,7 +408,7 @@
(defun ashelin-shot-move ((arg0 ashelin-shot))
(projectile-move-fill-line-sphere arg0)
(let ((s5-0 (-> arg0 root-override)))
(let ((s5-0 (-> arg0 root)))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(vector-! s4-0 (-> arg0 tail-pos) (-> s5-0 trans))
(let ((f0-0 (vector-length s4-0)))
@@ -424,7 +424,7 @@
)
(set! (-> a1-5 quad) (-> s5-0 trans quad))
(vector+! a1-5 a1-5 v1-9)
(move-to-point! (-> arg0 root-override) a1-5)
(move-to-point! (-> arg0 root) a1-5)
)
(go (the-as (state ashelin) (method-of-object arg0 impact)))
)
@@ -477,9 +477,9 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
(set! (-> s5-0 event-self) 'touched)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj root-override pat-ignore-mask)
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
(let ((v1-23 (-> obj parent)))
@@ -492,7 +492,7 @@
(bot-flags attacked)
)
)
(let* ((a0-17 (-> obj root-override))
(let* ((a0-17 (-> obj root))
(v1-27 (-> a0-17 root-prim))
)
(countdown (a0-18 (-> a0-17 total-prims))
@@ -507,7 +507,7 @@
(defmethod init-proj-settings! ashelin-shot ((obj ashelin-shot))
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
(set! (-> obj tail-pos quad) (-> obj root trans quad))
(set! (-> obj attack-mode) 'eco-yellow)
(set! (-> obj max-speed) 307200.0)
(set! (-> obj move) ashelin-shot-move)
+26 -26
View File
@@ -323,11 +323,11 @@
(cond
((< f0-6 f28-0)
(if (>= f0-6 f30-0)
(quaternion-slerp! (-> self root-override2 quat) (-> gp-0 src-quat) s5-1 (/ (- f0-6 f30-0) (- f28-0 f30-0)))
(quaternion-slerp! (-> self root quat) (-> gp-0 src-quat) s5-1 (/ (- f0-6 f30-0) (- f28-0 f30-0)))
)
)
(else
(quaternion-copy! (-> self root-override2 quat) s5-1)
(quaternion-copy! (-> self root quat) s5-1)
)
)
)
@@ -353,7 +353,7 @@
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags))))
)
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))))
(set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info-override callback-info))
(set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info callback-info))
)
0
(let ((v1-5 self))
@@ -563,8 +563,8 @@
)
(let ((gp-0 (-> self nav)))
(set! (-> gp-0 target-speed) (lerp-scale
(-> self enemy-info-override walk-travel-speed)
(-> self enemy-info-override run-travel-speed)
(-> self enemy-info walk-travel-speed)
(-> self enemy-info run-travel-speed)
(-> self focus-info bullseye-xz-dist)
81920.0
92160.0
@@ -625,18 +625,18 @@
)
:code (behavior ()
(ja-channel-push! 1 (seconds 0.2))
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self root-override2 trans) (-> self move-dest))))
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self root trans) (-> self move-dest))))
(let ((s5-0 (new 'stack-no-clear 'quaternion))
(s4-0 (new 'stack-no-clear 'quaternion))
)
(quaternion-copy! s5-0 (-> self root-override2 quat))
(quaternion-copy! s5-0 (-> self root quat))
(quaternion<-rotate-y-vector s4-0 gp-1)
(ja-no-eval :group! (-> self draw art-group data 33)
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 33)) frames num-frames) -1)))
:frame-num 0.0
)
(until (ja-done? 0)
(quaternion-slerp! (-> self root-override2 quat) s5-0 s4-0 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))
(quaternion-slerp! (-> self root quat) s5-0 s4-0 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))
(suspend)
(ja :num! (seek!))
)
@@ -649,7 +649,7 @@
(set! (-> self attack-id) a0-11)
)
(countdown (s5-1 2)
(vector-! gp-1 (-> self move-dest) (-> self root-override2 trans))
(vector-! gp-1 (-> self move-dest) (-> self root trans))
(let ((a0-14 (-> self nav state))
(v1-33 gp-1)
)
@@ -669,7 +669,7 @@
(set! (-> v1-40 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-40 enemy-flags))))
)
(set! (-> v1-40 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-40 enemy-flags))))
(set! (-> v1-40 nav callback-info) (-> v1-40 enemy-info-override callback-info))
(set! (-> v1-40 nav callback-info) (-> v1-40 enemy-info callback-info))
)
0
(let ((f0-13 (* 1.6153771 (vector-length gp-1))))
@@ -691,8 +691,8 @@
(set! (-> gp-1 y) 0.0)
(vector-normalize! gp-1 1.0)
(vector-negate! gp-1 gp-1)
(quaternion-set! (-> self root-override2 quat) 0.0 (-> gp-1 x) 0.0 (+ 1.0 (-> gp-1 z)))
(quaternion-normalize! (-> self root-override2 quat))
(quaternion-set! (-> self root quat) 0.0 (-> gp-1 x) 0.0 (+ 1.0 (-> gp-1 z)))
(quaternion-normalize! (-> self root quat))
(suspend)
(ja :num! (seek! max 1.4))
)
@@ -767,11 +767,11 @@
)
:code (behavior ()
(ja-channel-push! 1 (seconds 0.2))
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root-override2 trans))))
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root trans))))
(let ((s5-0 (new 'stack-no-clear 'quaternion))
(s4-0 (new 'stack-no-clear 'quaternion))
)
(quaternion-copy! s5-0 (-> self root-override2 quat))
(quaternion-copy! s5-0 (-> self root quat))
(quaternion<-rotate-y-vector s4-0 gp-1)
(quaternion-rotate-y! s4-0 s4-0 -16384.0)
(ja-no-eval :group! (-> self draw art-group data 36)
@@ -779,7 +779,7 @@
:frame-num 0.0
)
(until (ja-done? 0)
(quaternion-slerp! (-> self root-override2 quat) s5-0 s4-0 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))
(quaternion-slerp! (-> self root quat) s5-0 s4-0 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))
(suspend)
(ja :num! (seek!))
)
@@ -810,7 +810,7 @@
(set! (-> v1-38 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-38 enemy-flags))))
)
(set! (-> v1-38 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-38 enemy-flags))))
(set! (-> v1-38 nav callback-info) (-> v1-38 enemy-info-override callback-info))
(set! (-> v1-38 nav callback-info) (-> v1-38 enemy-info callback-info))
)
0
(let ((f0-13 (* 1.0714335 (vector-length gp-1))))
@@ -832,8 +832,8 @@
(set! (-> gp-1 y) 0.0)
(vector-normalize! gp-1 1.0)
(vector-rotate-around-y! gp-1 gp-1 -16384.0)
(quaternion-set! (-> self root-override2 quat) 0.0 (-> gp-1 x) 0.0 (+ 1.0 (-> gp-1 z)))
(quaternion-normalize! (-> self root-override2 quat))
(quaternion-set! (-> self root quat) 0.0 (-> gp-1 x) 0.0 (+ 1.0 (-> gp-1 z)))
(quaternion-normalize! (-> self root quat))
(suspend)
(ja :num! (seek!))
)
@@ -902,11 +902,11 @@
)
:code (behavior ()
(ja-channel-push! 1 (seconds 0.2))
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root-override2 trans))))
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root trans))))
(let ((s5-0 (new 'stack-no-clear 'quaternion))
(s4-0 (new 'stack-no-clear 'quaternion))
)
(quaternion-copy! s5-0 (-> self root-override2 quat))
(quaternion-copy! s5-0 (-> self root quat))
(quaternion<-rotate-y-vector s4-0 gp-1)
(quaternion-rotate-y! s4-0 s4-0 16384.0)
(ja-no-eval :group! (-> self draw art-group data 39)
@@ -914,7 +914,7 @@
:frame-num 0.0
)
(until (ja-done? 0)
(quaternion-slerp! (-> self root-override2 quat) s5-0 s4-0 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))
(quaternion-slerp! (-> self root quat) s5-0 s4-0 (/ (ja-frame-num 0) (the float (ja-num-frames 0))))
(suspend)
(ja :num! (seek!))
)
@@ -945,7 +945,7 @@
(set! (-> v1-38 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-38 enemy-flags))))
)
(set! (-> v1-38 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-38 enemy-flags))))
(set! (-> v1-38 nav callback-info) (-> v1-38 enemy-info-override callback-info))
(set! (-> v1-38 nav callback-info) (-> v1-38 enemy-info callback-info))
)
0
(let ((f0-13 (* 1.8749386 (vector-length gp-1))))
@@ -967,8 +967,8 @@
(set! (-> gp-1 y) 0.0)
(vector-normalize! gp-1 1.0)
(vector-rotate-around-y! gp-1 gp-1 16384.0)
(quaternion-set! (-> self root-override2 quat) 0.0 (-> gp-1 x) 0.0 (+ 1.0 (-> gp-1 z)))
(quaternion-normalize! (-> self root-override2 quat))
(quaternion-set! (-> self root quat) 0.0 (-> gp-1 x) 0.0 (+ 1.0 (-> gp-1 z)))
(quaternion-normalize! (-> self root quat))
(suspend)
(ja :num! (seek!))
)
@@ -1122,8 +1122,8 @@
(else
(ja-channel-push! 1 (seconds 0.1))
(let ((gp-0 (-> self draw art-group data (if (enemy-method-133 self)
(-> self enemy-info-override die-falling-anim)
(-> self enemy-info-override die-anim)
(-> self enemy-info die-falling-anim)
(-> self enemy-info die-anim)
)
)
)
+29 -38
View File
@@ -196,7 +196,7 @@
:walk-travel-speed (meters 3)
:walk-acceleration (meters 5)
:walk-turning-acceleration (meters 6)
:maximum-rotation-rate (degrees 360.0)
:maximum-rotation-rate (degrees 360)
:notice-nav-radius (meters 20)
:frustration-distance (meters 8)
:frustration-time (seconds 4)
@@ -228,7 +228,7 @@
(set! (-> obj bot-flags) (logior (bot-flags bf22) (-> obj bot-flags)))
(logclear! (-> obj bot-flags) (bot-flags bf22))
)
(set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj))
(set! (-> obj root penetrated-by) (get-penetrate-info obj))
(none)
)
@@ -428,7 +428,7 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 3))
(set! (-> s5-0 event-priority) (the-as uint 7))
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
0
(none)
@@ -498,19 +498,19 @@
(when (>= 16384.0 (fabs f30-0))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(when (ashelin-method-236 obj s5-0 (+ 32768.0 arg0) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s5-0 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s5-0 (-> obj root trans))
(return 1)
)
(cond
((< 0.0 f30-0)
(when (ashelin-method-236 obj s5-0 (+ -16384.0 arg0) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s5-0 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s5-0 (-> obj root trans))
(return 2)
)
)
(else
(when (ashelin-method-236 obj s5-0 (+ 16384.0 arg0) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s5-0 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s5-0 (-> obj root trans))
(return 3)
)
)
@@ -528,8 +528,8 @@
)
)
(when (logtest? (bot-flags bf20) (-> obj bot-flags))
(set! (-> obj root-override2 trans w) 1.0)
(when (>= (vector4-dot (the-as vector (-> obj frontline)) (-> obj root-override2 trans)) 12288.0)
(set! (-> obj root trans w) 1.0)
(when (>= (vector4-dot (the-as vector (-> obj frontline)) (-> obj root trans)) 12288.0)
(let ((f0-7 (atan (-> obj frontline x) (-> obj frontline z))))
(return (ashelin-method-243 obj f0-7))
)
@@ -540,7 +540,7 @@
(defmethod ashelin-method-241 ashelin ((obj ashelin))
(let* ((v1-0 (target-pos 0))
(a1-0 (-> obj root-override2 trans))
(a1-0 (-> obj root trans))
(f30-0 (atan (- (-> a1-0 x) (-> v1-0 x)) (- (-> a1-0 z) (-> v1-0 z))))
(f0-5 (deg- f30-0 (-> obj focus-info my-facing-ry)))
(s5-0 0)
@@ -554,14 +554,14 @@
(cond
(s3-1
(when (ashelin-method-236 obj s4-0 (+ 16384.0 f30-0) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s4-0 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s4-0 (-> obj root trans))
(set! s5-0 3)
(goto cfg-20)
)
)
(else
(when (ashelin-method-236 obj s4-0 (+ -16384.0 f30-0) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s4-0 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s4-0 (-> obj root trans))
(set! s5-0 2)
(goto cfg-20)
)
@@ -575,7 +575,7 @@
(else
(let ((s4-1 (new 'stack-no-clear 'vector)))
(when (ashelin-method-236 obj s4-1 (+ 32768.0 f30-0) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s4-1 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s4-1 (-> obj root trans))
(set! s5-0 1)
)
)
@@ -592,7 +592,7 @@
(when (>= 16384.0 (fabs (-> obj focus-info ry-diff)))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(when (ashelin-method-236 obj s4-0 (+ 16384.0 (-> obj focus-info bullseye-ry)) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s4-0 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s4-0 (-> obj root trans))
(set! s5-0 3)
)
)
@@ -602,7 +602,7 @@
(when (>= 16384.0 (fabs (-> obj focus-info ry-diff)))
(let ((s4-1 (new 'stack-no-clear 'vector)))
(when (ashelin-method-236 obj s4-1 (+ -16384.0 (-> obj focus-info bullseye-ry)) 8192.0 40707.93 34563.93)
(vector+! (-> obj move-dest) s4-1 (-> obj root-override2 trans))
(vector+! (-> obj move-dest) s4-1 (-> obj root trans))
(set! s5-0 2)
)
)
@@ -632,16 +632,16 @@
(defmethod ashelin-method-247 ashelin ((obj ashelin))
(cond
((logtest? (bot-flags bf20) (-> obj bot-flags))
(set! (-> obj root-override2 trans w) 1.0)
(set! (-> obj root trans w) 1.0)
(set! (-> obj focus-info bullseye w) 1.0)
(let ((f30-0 (vector4-dot (the-as vector (-> obj frontline)) (-> obj root-override2 trans))))
(let ((f30-0 (vector4-dot (the-as vector (-> obj frontline)) (-> obj root trans))))
(let ((f0-4 (vector4-dot (the-as vector (-> obj frontline)) (-> obj focus-info bullseye))))
(if (or (>= 0.0 f0-4) (>= -8192.0 f30-0))
(return #t)
)
)
(let ((s5-0 (new 'stack-no-clear 'vector)))
(vector-! s5-0 (-> obj focus-info bullseye) (-> obj root-override2 trans))
(vector-! s5-0 (-> obj focus-info bullseye) (-> obj root trans))
(set! (-> s5-0 y) 0.0)
(vector-normalize! s5-0 1.0)
(if (>= -0.342 (vector-dot s5-0 (the-as vector (-> obj frontline))))
@@ -654,7 +654,7 @@
(a0-8 (new 'stack-no-clear 'vector))
)
(vector-float*! a2-0 (the-as vector (-> obj frontline)) (- (-> obj frontline w)))
(set! (-> a0-8 quad) (-> obj root-override2 trans quad))
(set! (-> a0-8 quad) (-> obj root trans quad))
(set! (-> a0-8 y) 0.0)
(>= (intersect-ray-plane a0-8 s5-0 a2-0 (-> obj frontline)) 8192.0)
)
@@ -669,14 +669,14 @@
(defmethod ashelin-method-248 ashelin ((obj ashelin))
(when (logtest? (bot-flags bf20) (-> obj bot-flags))
(set! (-> obj root-override2 trans w) 1.0)
(set! (-> obj root trans w) 1.0)
(set! (-> obj focus-info bullseye w) 1.0)
(let ((f0-3 (vector4-dot (the-as vector (-> obj frontline)) (-> obj root-override2 trans)))
(let ((f0-3 (vector4-dot (the-as vector (-> obj frontline)) (-> obj root trans)))
(f1-1 (vector4-dot (the-as vector (-> obj frontline)) (-> obj focus-info bullseye)))
)
(when (and (< 0.0 f1-1) (< 0.0 f0-3))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(vector-! s5-0 (-> obj focus-info bullseye) (-> obj root-override2 trans))
(vector-! s5-0 (-> obj focus-info bullseye) (-> obj root trans))
(set! (-> s5-0 y) 0.0)
(vector-normalize! s5-0 1.0)
(>= (vector-dot s5-0 (the-as vector (-> obj frontline))) 0.0)
@@ -822,7 +822,7 @@
)
)
(let* ((f28-1 (current-cycle-distance (-> obj skel)))
(f0-8 (quaternion-y-angle (-> obj root-override2 quat)))
(f0-8 (quaternion-y-angle (-> obj root quat)))
(f1-10 (deg- f0-8 (-> obj travel-prev-ry)))
(f0-11 (fmin 40960.0 (* 0.35342914 (-> pp clock frames-per-second) (fabs f1-10))))
(f0-14 (/ (* 16.0 (fmax f30-0 f0-11)) (* 15.0 f28-1)))
@@ -884,18 +884,15 @@
(defmethod enemy-method-51 ashelin ((obj ashelin))
(local-vars (v1-36 art-element))
(let ((f28-0 (quaternion-y-angle (-> obj root-override2 quat))))
(let ((f28-0 (quaternion-y-angle (-> obj root quat))))
(case (-> obj incoming knocked-type)
(((knocked-type knocked-type-6))
(let ((a0-4 (handle->process (-> obj focus handle))))
(when a0-4
(get-trans (the-as process-focusable a0-4) 0)
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set! (-> s5-0 quad) (-> obj root-override2 transv quad))
(if (< (vector-dot
(-> obj root-override2 transv)
(vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat))
)
(set! (-> s5-0 quad) (-> obj root transv quad))
(if (< (vector-dot (-> obj root transv) (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))
0.0
)
(vector-negate-in-place! s5-0)
@@ -909,7 +906,7 @@
(let ((s5-1 (new 'stack-no-clear 'vector)))
0.0
0.0
(vector-z-quaternion! s5-1 (-> obj root-override2 quat))
(vector-z-quaternion! s5-1 (-> obj root quat))
(let ((f28-1 (atan (-> s5-1 x) (-> s5-1 z))))
(enemy-method-50 obj s5-1)
(let* ((f30-0 (atan (-> s5-1 x) (-> s5-1 z)))
@@ -955,7 +952,7 @@
)
0.0
0.0
(vector-z-quaternion! s4-0 (-> obj root-override2 quat))
(vector-z-quaternion! s4-0 (-> obj root quat))
(let ((f30-0 (atan (-> s4-0 x) (-> s4-0 z))))
(enemy-method-50 obj s4-0)
(let* ((f0-6 (atan (-> s4-0 x) (-> s4-0 z)))
@@ -1238,7 +1235,7 @@
)
0
(let ((s0-0 (new 'stack-no-clear 'nav-avoid-spheres-params)))
(vector-! (-> s0-0 current-pos) (-> obj root-override2 trans) (-> obj nav state mesh bounds))
(vector-! (-> s0-0 current-pos) (-> obj root trans) (-> obj nav state mesh bounds))
(set! sv-272 (-> s0-0 travel))
(set! (-> sv-272 x) (sin arg1))
(set! (-> sv-272 y) 0.0)
@@ -1252,13 +1249,7 @@
0
(when (>= arg2 (fabs (deg- arg1 (atan (-> arg0 x) (-> arg0 z)))))
(let ((t0-2 (new 'stack-no-clear 'clamp-travel-vector-to-mesh-return-info)))
(clamp-vector-to-mesh-no-gaps
(-> obj nav)
(-> obj root-override2 trans)
(-> obj nav state current-poly)
arg0
t0-2
)
(clamp-vector-to-mesh-no-gaps (-> obj nav) (-> obj root trans) (-> obj nav state current-poly) arg0 t0-2)
)
(.lvf vf1 (&-> arg0 quad))
(.add.w.vf vf2 vf0 vf0 :mask #b1)
@@ -43,7 +43,7 @@
:end-st-scale (new 'static 'vector2 :data (new 'static 'array float 2 1.0 1.0))
:end-st-offset (new 'static 'vector2 :data (new 'static 'array float 2 0.5 0.5))
:end-qs (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
:end-st-rot (degrees 3932160.0)
:end-st-rot (degrees 3932160)
)
(new 'static 'texture-anim-layer
:func-id 'default-texture-anim-layer-func
@@ -86,7 +86,7 @@
:end-st-scale (new 'static 'vector2 :data (new 'static 'array float 2 1.0 1.0))
:end-st-offset (new 'static 'vector2 :data (new 'static 'array float 2 0.5 0.5))
:end-qs (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
:end-st-rot (degrees 65536.0)
:end-st-rot (degrees 65536)
)
(new 'static 'texture-anim-layer
:func-id 'default-texture-anim-layer-func
@@ -108,7 +108,7 @@
:end-st-scale (new 'static 'vector2 :data (new 'static 'array float 2 1.0 1.0))
:end-st-offset (new 'static 'vector2 :data (new 'static 'array float 2 0.5 0.5))
:end-qs (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
:end-st-rot (degrees 65536.0)
:end-st-rot (degrees 65536)
)
(new 'static 'texture-anim-layer
:func-id 'default-texture-anim-layer-func
+1 -1
View File
@@ -183,7 +183,7 @@
)
)
(else
(let ((s4-0 (-> arg0 root-override trans)))
(let ((s4-0 (-> arg0 root trans)))
(if (movie?)
(set! s4-0 (camera-pos))
)
+9 -9
View File
@@ -272,7 +272,7 @@
(vf7 :class vf)
)
(init-vf0-vector)
(let* ((v1-1 (-> obj root-override trans))
(let* ((v1-1 (-> obj root trans))
(a1-0 (-> obj tail-pos))
(s5-1 (vector-! (new 'stack-no-clear 'vector) v1-1 a1-0))
(gp-0 (new 'stack-no-clear 'vector))
@@ -353,7 +353,7 @@
(t2-0 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> obj root-override trans quad))
(set! (-> t3-0 trans quad) (-> obj root trans quad))
((the-as (function object object object object object object object object none) t9-2)
a0-3
a1-2
@@ -389,7 +389,7 @@
(defmethod made-impact? sig-shot ((obj sig-shot))
"TODO - queries the collision cache, return true/false"
(let ((v1-0 (-> obj root-override))
(let ((v1-0 (-> obj root))
(t1-0 (new 'stack-no-clear 'collide-query))
)
(let ((a1-0 t1-0))
@@ -406,7 +406,7 @@
(defun sig-shot-move ((arg0 sig-shot))
(projectile-move-fill-line-sphere arg0)
(let ((s5-0 (-> arg0 root-override)))
(let ((s5-0 (-> arg0 root)))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(vector-! s4-0 (-> arg0 tail-pos) (-> s5-0 trans))
(let ((f0-0 (vector-length s4-0)))
@@ -422,7 +422,7 @@
)
(set! (-> a1-5 quad) (-> s5-0 trans quad))
(vector+! a1-5 a1-5 v1-9)
(move-to-point! (-> arg0 root-override) a1-5)
(move-to-point! (-> arg0 root) a1-5)
)
(go (method-of-object arg0 impact))
)
@@ -474,7 +474,7 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
(set! (-> s5-0 event-self) 'touched)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(let ((v1-22 (-> obj parent)))
(when (not (logtest? (-> (the-as sig (if v1-22
@@ -486,7 +486,7 @@
(bot-flags attacked)
)
)
(let* ((a0-16 (-> obj root-override))
(let* ((a0-16 (-> obj root))
(v1-27 (-> a0-16 root-prim))
)
(countdown (a0-17 (-> a0-16 total-prims))
@@ -496,7 +496,7 @@
)
)
)
(set! (-> obj root-override pat-ignore-mask)
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
(none)
@@ -504,7 +504,7 @@
(defmethod init-proj-settings! sig-shot ((obj sig-shot))
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
(set! (-> obj tail-pos quad) (-> obj root trans quad))
(set! (-> obj attack-mode) 'eco-yellow)
(set! (-> obj max-speed) 307200.0)
(set! (-> obj move) sig-shot-move)
+16 -26
View File
@@ -472,11 +472,11 @@
(cond
((< f0-24 f28-0)
(if (>= f0-24 f30-0)
(quaternion-slerp! (-> self root-override2 quat) (-> gp-0 src-quat) s5-1 (/ (- f0-24 f30-0) (- f28-0 f30-0)))
(quaternion-slerp! (-> self root quat) (-> gp-0 src-quat) s5-1 (/ (- f0-24 f30-0) (- f28-0 f30-0)))
)
)
(else
(quaternion-copy! (-> self root-override2 quat) s5-1)
(quaternion-copy! (-> self root quat) s5-1)
)
)
)
@@ -945,7 +945,7 @@
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags))))
)
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))))
(set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info-override callback-info))
(set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info callback-info))
)
0
(let ((v1-5 self))
@@ -1259,12 +1259,7 @@
(none)
)
:post (behavior ()
(seek-toward-heading-vec!
(-> self root-override2)
(-> self focus-info bullseye-xz-dir)
131072.0
(seconds 0.05)
)
(seek-toward-heading-vec! (-> self root) (-> self focus-info bullseye-xz-dir) 131072.0 (seconds 0.05))
(nav-enemy-simple-post)
(none)
)
@@ -1313,12 +1308,7 @@
(let ((f30-1 (ja-aframe f30-0 0)))
(ja-no-eval :group! gp-0 :num! (seek! f30-1) :frame-num 0.0)
(until (ja-done? 0)
(seek-toward-heading-vec!
(-> self root-override2)
(-> self focus-info bullseye-xz-dir)
131072.0
(seconds 0.05)
)
(seek-toward-heading-vec! (-> self root) (-> self focus-info bullseye-xz-dir) 131072.0 (seconds 0.05))
(bot-method-223 self #t)
(if (and (>= (- (current-time) (-> self state-time)) (seconds 0.1))
(or (not (bot-method-214 self)) (not (sig-method-245 self)))
@@ -1663,7 +1653,7 @@
(if (logtest? (-> gp-0 flags) 2)
(go-virtual sig-path-shoot-jump)
)
(let ((v1-14 (-> self root-override2)))
(let ((v1-14 (-> self root)))
(set! (-> v1-14 trans quad) (-> gp-0 pos quad))
(set! (-> v1-14 trans w) 1.0)
(quaternion-copy! (-> v1-14 quat) (-> gp-0 quat))
@@ -1684,7 +1674,7 @@
(ja-no-eval :group! (-> self draw art-group data 56) :num! (loop!))
(until #f
(suspend)
(let* ((f0-1 (vector-length (-> self root-override2 transv)))
(let* ((f0-1 (vector-length (-> self root transv)))
(f0-3 (fmax 0.1 (* 0.000020345053 f0-1)))
)
(ja :num! (loop! f0-3))
@@ -1734,7 +1724,7 @@
(go-virtual sig-path-jump-land)
)
)
(let ((v1-27 (-> self root-override2)))
(let ((v1-27 (-> self root)))
(set! (-> v1-27 trans quad) (-> gp-0 pos quad))
(set! (-> v1-27 trans w) 1.0)
(quaternion-copy! (-> v1-27 quat) (-> gp-0 quat))
@@ -1802,7 +1792,7 @@
(go-virtual sig-path-shoot-jump)
)
)
(let ((v1-18 (-> self root-override2)))
(let ((v1-18 (-> self root)))
(set! (-> v1-18 trans quad) (-> gp-0 pos quad))
(set! (-> v1-18 trans w) 1.0)
(quaternion-copy! (-> v1-18 quat) (-> gp-0 quat))
@@ -1812,7 +1802,7 @@
)
:code (behavior ()
(ja-channel-push! 1 (seconds 0.15))
(let* ((f0-0 (vector-length (-> self root-override2 transv)))
(let* ((f0-0 (vector-length (-> self root transv)))
(f0-2 (fmax 0.1 (* 0.000020345053 f0-0)))
)
(ja-no-eval :group! (-> self draw art-group data 58)
@@ -1825,7 +1815,7 @@
)
(until (ja-done? 0)
(suspend)
(let* ((f0-4 (vector-length (-> self root-override2 transv)))
(let* ((f0-4 (vector-length (-> self root transv)))
(f0-6 (fmax 0.1 (* 0.000020345053 f0-4)))
)
(ja :num! (seek! max f0-6))
@@ -1876,7 +1866,7 @@
(go-virtual sig-path-shoot-jump-land)
)
)
(let ((v1-29 (-> self root-override2)))
(let ((v1-29 (-> self root)))
(set! (-> v1-29 trans quad) (-> gp-0 pos quad))
(set! (-> v1-29 trans w) 1.0)
(quaternion-copy! (-> v1-29 quat) (-> gp-0 quat))
@@ -1949,7 +1939,7 @@
(go-virtual sig-path-jump)
)
)
(let ((v1-18 (-> self root-override2)))
(let ((v1-18 (-> self root)))
(set! (-> v1-18 trans quad) (-> gp-0 pos quad))
(set! (-> v1-18 trans w) 1.0)
(quaternion-copy! (-> v1-18 quat) (-> gp-0 quat))
@@ -1959,7 +1949,7 @@
)
:code (behavior ()
(ja-channel-push! 1 (seconds 0.15))
(let* ((f0-0 (vector-length (-> self root-override2 transv)))
(let* ((f0-0 (vector-length (-> self root transv)))
(f0-2 (fmax 0.1 (* 0.000020345053 f0-0)))
)
(ja-no-eval :group! (-> self draw art-group data 60)
@@ -1972,7 +1962,7 @@
)
(until (ja-done? 0)
(suspend)
(let* ((f0-4 (vector-length (-> self root-override2 transv)))
(let* ((f0-4 (vector-length (-> self root transv)))
(f0-6 (fmax 0.1 (* 0.000020345053 f0-4)))
)
(ja :num! (seek! max f0-6))
@@ -2002,7 +1992,7 @@
(look-at-target! self (enemy-flag lock-focus))
(set! (-> self skel top-anim interp) 0.0)
(set! (-> self travel-anim-interp) 0.0)
(vector-reset! (-> self root-override2 transv))
(vector-reset! (-> self root transv))
(none)
)
:code (behavior ()
+6 -8
View File
@@ -111,9 +111,7 @@
)
(or (player-blocking-spot? arg0 v1-2)
(or (not gp-0)
(>= 14336.0
(vector-vector-xz-distance (target-pos 0) (-> (the-as process-focusable gp-0) root-override trans))
)
(>= 14336.0 (vector-vector-xz-distance (target-pos 0) (-> (the-as process-focusable gp-0) root trans)))
)
)
)
@@ -122,7 +120,7 @@
(defmethod sigt-choose-piston-method-13 sigt-choose-piston ((obj sigt-choose-piston) (arg0 sig))
(let ((s4-0 0))
(let ((f30-0 -1.0)
(s3-0 (-> arg0 root-override2 trans))
(s3-0 (-> arg0 root trans))
)
(countdown (s2-0 (-> obj num-spots))
(let* ((v1-3 (-> obj spot-indexes s2-0))
@@ -178,8 +176,8 @@
)
)
(when (and (< v1-19 (seconds 0.5)) (< (seconds 0.2) v1-19))
(let ((v1-22 (-> (the-as process-focusable s5-1) root-override))
(s4-0 (-> arg0 root-override2))
(let ((v1-22 (-> (the-as process-focusable s5-1) root))
(s4-0 (-> arg0 root))
)
(when (>= 10012.445
(fabs (deg-
@@ -189,8 +187,8 @@
)
)
(set! (-> arg0 enemy-flags) (the-as enemy-flag (logclear (-> arg0 enemy-flags) (enemy-flag vulnerable))))
(when (send-event arg0 'jump 4 (-> (the-as process-focusable s5-1) root-override trans))
(set! (-> arg0 spot center quad) (-> (the-as process-focusable s5-1) root-override trans quad))
(when (send-event arg0 'jump 4 (-> (the-as process-focusable s5-1) root trans))
(set! (-> arg0 spot center quad) (-> (the-as process-focusable s5-1) root trans quad))
(set! (-> arg0 spot center w) 10240.0)
(return #t)
)
+25 -29
View File
@@ -199,7 +199,7 @@
:walk-travel-speed (meters 4)
:walk-acceleration (meters 8)
:walk-turning-acceleration (meters 6)
:maximum-rotation-rate (degrees 360.0)
:maximum-rotation-rate (degrees 360)
:notice-nav-radius (meters 20)
:frustration-distance (meters 8)
:frustration-time (seconds 4)
@@ -270,9 +270,7 @@
(cond
(s4-0
(if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags)))
(>= 16384.0
(vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3))
)
(>= 16384.0 (vector-vector-xz-distance (-> obj root trans) (get-trans (the-as process-focusable s4-0) 3)))
)
(set! s5-1 s4-0)
)
@@ -305,9 +303,7 @@
(cond
(s4-0
(if (or (not (logtest? (bot-flags bf19) (-> obj bot-flags)))
(>= 16384.0
(vector-vector-xz-distance (-> obj root-override2 trans) (get-trans (the-as process-focusable s4-0) 3))
)
(>= 16384.0 (vector-vector-xz-distance (-> obj root trans) (get-trans (the-as process-focusable s4-0) 3)))
)
(set! s5-1 s4-0)
)
@@ -435,7 +431,7 @@
(t9-2 obj)
)
(when (logtest? (-> obj bot-flags) (bot-flags too-far-fail))
(let ((f0-0 (vector-vector-distance (-> obj root-override2 trans) (target-pos 0))))
(let ((f0-0 (vector-vector-distance (-> obj root trans) (target-pos 0))))
(when (or (>= f0-0 491520.0) (and (>= f0-0 102400.0) (>= (- (current-time) (-> obj last-draw-time)) (seconds 10))))
(process-entity-status! obj (entity-perm-status no-kill) #f)
(cleanup-for-death obj)
@@ -482,7 +478,7 @@
(let ((v1-0 arg0))
(cond
((zero? v1-0)
(let ((v1-2 (-> obj root-override2 root-prim)))
(let ((v1-2 (-> obj root root-prim)))
(dotimes (a0-1 4)
(let ((a1-3 (-> (the-as collide-shape-prim-group v1-2) child (+ a0-1 3))))
(set! (-> a1-3 prim-core collide-with) (collide-spec))
@@ -493,7 +489,7 @@
)
)
((= v1-0 3)
(let ((v1-5 (the-as collide-shape-prim-group (-> obj root-override2 root-prim))))
(let ((v1-5 (the-as collide-shape-prim-group (-> obj root root-prim))))
(let ((a0-3 (-> v1-5 child 3)))
(set! (-> a0-3 prim-core collide-as) (collide-spec bot bot-targetable))
(set! (-> a0-3 prim-core collide-with)
@@ -616,7 +612,7 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 3))
(set! (-> s5-0 event-priority) (the-as uint 8))
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
(enemy-method-46 obj 0)
0
@@ -803,7 +799,7 @@
(set! (-> v1-12 frame-interp 0) f28-0)
)
(let* ((f28-1 (current-cycle-distance (-> obj skel)))
(f0-5 (quaternion-y-angle (-> obj root-override2 quat)))
(f0-5 (quaternion-y-angle (-> obj root quat)))
(f1-2 (deg- f0-5 (-> obj travel-prev-ry)))
(f0-8 (fmin 28672.0 (* 0.35342914 (-> pp clock frames-per-second) (fabs f1-2))))
(f0-11 (/ (* 24.0 (fmax f30-0 f0-8)) (* 30.0 f28-1)))
@@ -885,7 +881,7 @@
(let ((s4-0 (new 'stack-no-clear 'vector)))
0.0
0.0
(vector-z-quaternion! s4-0 (-> obj root-override2 quat))
(vector-z-quaternion! s4-0 (-> obj root quat))
(let ((f30-0 (atan (-> s4-0 x) (-> s4-0 z))))
(enemy-method-50 obj s4-0)
(let* ((f0-14 (atan (-> s4-0 x) (-> s4-0 z)))
@@ -998,7 +994,7 @@
(v0-0 (t9-0 obj))
)
(when (and (= (-> obj jump-why) 4) (not v0-0))
(when (< (-> obj root-override2 transv y) 0.0)
(when (< (-> obj root transv y) 0.0)
(let* ((v1-11 (-> obj actor-group 0 data (-> obj platform-index) actor))
(a0-5 (if v1-11
(-> v1-11 extra process)
@@ -1006,11 +1002,11 @@
)
)
(when a0-5
(let ((s4-0 (-> (the-as process-focusable a0-5) root-override trans))
(s5-0 (-> obj root-override2 trans))
(let ((s4-0 (-> (the-as process-focusable a0-5) root trans))
(s5-0 (-> obj root trans))
)
(when (< 2048.0 (- (-> s4-0 y) (-> s5-0 y)))
(vector-reset! (-> obj root-override2 transv))
(vector-reset! (-> obj root transv))
(let ((f30-0 9420.8))
(when (< f30-0 (vector-vector-xz-distance s4-0 s5-0))
(vector-! s5-0 s5-0 s4-0)
@@ -1020,9 +1016,9 @@
)
)
(let ((a1-4 (new 'stack-no-clear 'collide-query)))
(find-ground (-> obj root-override2) a1-4 (the-as collide-spec (-> obj gnd-collide)) 8192.0 81920.0 1024.0)
(find-ground (-> obj root) a1-4 (the-as collide-spec (-> obj gnd-collide)) 8192.0 81920.0 1024.0)
)
(set! (-> s5-0 y) (-> obj root-override2 gspot-pos y))
(set! (-> s5-0 y) (-> obj root gspot-pos y))
(set! v0-0 #t)
)
)
@@ -1042,14 +1038,14 @@
(t9-0 obj)
)
(let ((s5-0 (static-sound-spec "sig-jland" :mask (reg0))))
(set! (-> s5-0 reg 0) (the-as uint (-> obj root-override2 ground-pat material)))
(set! (-> s5-0 reg 0) (the-as uint (-> obj root ground-pat material)))
(sound-play-by-spec s5-0 (new-sound-id) (the-as vector #t))
)
(the-as
float
(cond
((logtest? (bot-flags bf23) (-> obj bot-flags))
(let ((v0-3 (the-as object (-> obj root-override2 transv))))
(let ((v0-3 (the-as object (-> obj root transv))))
(.svf (&-> (the-as vector v0-3) quad) vf0)
v0-3
)
@@ -1064,11 +1060,11 @@
(set! (-> v1-11 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-11 enemy-flags))))
)
(set! (-> v1-11 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-11 enemy-flags))))
(set! (-> v1-11 nav callback-info) (-> v1-11 enemy-info-override callback-info))
(set! (-> v1-11 nav callback-info) (-> v1-11 enemy-info callback-info))
)
0
(let ((s5-1 (new 'stack-no-clear 'vector)))
(set! (-> s5-1 quad) (-> obj root-override2 transv quad))
(set! (-> s5-1 quad) (-> obj root transv quad))
(set! (-> s5-1 y) 0.0)
(let ((v1-18 (-> obj nav state)))
(set! (-> v1-18 speed) (fmin (vector-length s5-1) (-> obj nav target-speed)))
@@ -1097,7 +1093,7 @@
(joint-control-channel-group! a0-2 (the-as art-joint-anim #f) num-func-loop!)
)
(ja-channel-push! 1 (seconds 0.1))
(let ((a1-3 (-> obj draw art-group data (-> obj enemy-info-override jump-wind-up-anim)))
(let ((a1-3 (-> obj draw art-group data (-> obj enemy-info jump-wind-up-anim)))
(a0-6 (-> obj skel root-channel 0))
)
(set! (-> a0-6 frame-group) (the-as art-joint-anim a1-3))
@@ -1120,7 +1116,7 @@
(joint-control-channel-group! a0-2 (the-as art-joint-anim #f) num-func-loop!)
)
(ja-channel-push! 1 (seconds 0.1))
(let ((a1-3 (-> obj draw art-group data (-> obj enemy-info-override jump-land-anim)))
(let ((a1-3 (-> obj draw art-group data (-> obj enemy-info jump-land-anim)))
(a0-6 (-> obj skel root-channel 0))
)
(set! (-> a0-6 frame-group) (the-as art-joint-anim a1-3))
@@ -1185,7 +1181,7 @@
(when (!= (-> obj sig-path-cur-time) a0-1)
(set! (-> obj sig-path-prev-time) (-> obj sig-path-cur-time))
(set! (-> obj sig-path-cur-time) a0-1)
(set! (-> obj event-param-point quad) (-> obj root-override2 trans quad))
(set! (-> obj event-param-point quad) (-> obj root trans quad))
)
)
(let ((s3-0 (+ (-> obj sig-path sample-count) -1))
@@ -1225,9 +1221,9 @@
(quaternion-slerp! (-> arg0 quat) (-> s3-1 quat) (-> s4-1 quat) f30-0)
(set! (-> arg0 flags) s2-1)
)
(vector-! (-> obj root-override2 transv) (-> arg0 pos) (-> obj event-param-point))
(let ((v0-5 (-> obj root-override2 transv)))
(.lvf vf1 (&-> (-> obj root-override2 transv) quad))
(vector-! (-> obj root transv) (-> arg0 pos) (-> obj event-param-point))
(let ((v0-5 (-> obj root transv)))
(.lvf vf1 (&-> (-> obj root transv) quad))
(let ((f0-7 (-> pp clock frames-per-second)))
(.mov at-0 f0-7)
)
@@ -233,7 +233,7 @@
:walk-travel-speed (meters 3)
:walk-acceleration (meters 2)
:walk-turning-acceleration (meters 8)
:maximum-rotation-rate (degrees 720.0)
:maximum-rotation-rate (degrees 720)
:notice-nav-radius (meters 10)
:frustration-distance (meters 8)
:frustration-time (seconds 4)
@@ -342,7 +342,7 @@
(defstate knocked (citizen-rebel)
:virtual #t
:enter (behavior ()
(let ((gp-0 (find-nearest-nav-mesh (-> self root-override2 trans) (the-as float #x7f800000))))
(let ((gp-0 (find-nearest-nav-mesh (-> self root trans) (the-as float #x7f800000))))
(change-to gp-0 self)
(if (not (-> self nav))
(go-inactive self)
@@ -353,15 +353,15 @@
(set! (-> v1-10 current-poly) (the-as nav-poly #f))
)
0
(do-navigation-to-destination (-> self nav state) (-> self root-override2 trans))
(set! (-> self gnd-height) (-> self root-override2 gspot-pos y))
(do-navigation-to-destination (-> self nav state) (-> self root trans))
(set! (-> self gnd-height) (-> self root gspot-pos y))
(let ((s5-0 (new 'stack-no-clear 'vector))
(gp-1 (new 'stack-no-clear 'quaternion))
)
(vector-y-quaternion! s5-0 (-> self root-override2 quat))
(vector-y-quaternion! s5-0 (-> self root quat))
(vector-normalize! s5-0 1.0)
(quaternion-from-two-vectors! gp-1 s5-0 *up-vector*)
(quaternion*! (-> self root-override2 quat) gp-1 (-> self root-override2 quat))
(quaternion*! (-> self root quat) gp-1 (-> self root quat))
)
(let ((t9-8 (-> (method-of-type civilian knocked) enter)))
(if t9-8
@@ -376,7 +376,7 @@
:virtual #t
:event (the-as (function process int symbol event-message-block object :behavior citizen-rebel) enemy-event-handler)
:enter (behavior ((arg0 object) (arg1 object) (arg2 int) (arg3 symbol) (arg4 event-message-block))
(let ((a0-2 (find-nearest-nav-mesh (-> self root-override2 trans) (the-as float #x7f800000))))
(let ((a0-2 (find-nearest-nav-mesh (-> self root trans) (the-as float #x7f800000))))
(if a0-2
(set! (-> self nav-mesh-aid) (the-as actor-id (-> a0-2 entity aid)))
)
@@ -392,7 +392,7 @@
0
(citizen-method-195
self
(vector-negate-in-place! (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root-override2 quat)))
(vector-negate-in-place! (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root quat)))
)
(let ((a0-9 (-> self nav state))
(v1-17 (-> self controller turn-exit-point))
@@ -403,11 +403,11 @@
)
0
(citizen-nav-init! self)
(set! (-> self gnd-height) (-> self root-override2 gspot-pos y))
(set! (-> self gnd-height) (-> self root gspot-pos y))
(logior! (-> self flags) (citizen-flag persistent))
(set! (-> self focus-status) (logior (focus-status pilot-riding pilot) (-> self focus-status)))
(set! (-> self state-time) (current-time))
(let ((v1-31 (-> self root-override2 root-prim)))
(let ((v1-31 (-> self root root-prim)))
(set! (-> v1-31 prim-core collide-as) (collide-spec))
(set! (-> v1-31 prim-core collide-with) (collide-spec))
)
@@ -443,9 +443,9 @@
(let ((s4-0 (handle->process (-> self vehicle)))
(s3-0 (new 'stack-no-clear 'quaternion))
)
(quaternion-copy! s3-0 (-> (the-as vehicle s4-0) root-override-2 quat))
(compute-seat-position (the-as vehicle s4-0) (-> self root-override2 trans) (-> self seat))
(quaternion-copy! (-> self root-override2 quat) s3-0)
(quaternion-copy! s3-0 (-> (the-as vehicle s4-0) root quat))
(compute-seat-position (the-as vehicle s4-0) (-> self root trans) (-> self seat))
(quaternion-copy! (-> self root quat) s3-0)
)
(when (>= (- (current-time) (-> self state-time)) (seconds 2))
(put-rider-in-seat (the-as vehicle (handle->process (-> self vehicle))) (-> self seat) self)
@@ -462,8 +462,8 @@
(let ((s3-1 (handle->process (-> self vehicle)))
(s4-2 (new 'stack-no-clear 'quaternion))
)
(quaternion-copy! s4-2 (-> (the-as vehicle s3-1) root-override-2 quat))
(compute-seat-position (the-as vehicle s3-1) (-> self root-override2 trans) (-> self seat))
(quaternion-copy! s4-2 (-> (the-as vehicle s3-1) root quat))
(compute-seat-position (the-as vehicle s3-1) (-> self root trans) (-> self seat))
(let ((s3-2 lerp-scale)
(s2-0 0.0)
(s1-0 1.0)
@@ -473,11 +473,11 @@
(let* ((t0-1 (ja-aframe 7.0 0))
(f0-4 (s3-2 s2-0 s1-0 s0-0 sv-176 t0-1))
)
(quaternion-rotate-local-y! (-> self root-override2 quat) s4-2 (* f0-4 (if (zero? (-> self seat))
-16384.0
16384.0
)
)
(quaternion-rotate-local-y! (-> self root quat) s4-2 (* f0-4 (if (zero? (-> self seat))
-16384.0
16384.0
)
)
)
)
)
@@ -487,19 +487,19 @@
)
(let ((s4-4 (handle->process (-> self vehicle))))
(let ((s3-3 (new 'stack-no-clear 'quaternion)))
(quaternion-copy! s3-3 (-> (the-as vehicle s4-4) root-override-2 quat))
(compute-seat-position (the-as vehicle s4-4) (-> self root-override2 trans) (-> self seat))
(quaternion-rotate-local-y! (-> self root-override2 quat) s3-3 (if (zero? (-> self seat))
-16384.0
16384.0
)
(quaternion-copy! s3-3 (-> (the-as vehicle s4-4) root quat))
(compute-seat-position (the-as vehicle s4-4) (-> self root trans) (-> self seat))
(quaternion-rotate-local-y! (-> self root quat) s3-3 (if (zero? (-> self seat))
-16384.0
16384.0
)
)
)
(remove-rider (the-as vehicle s4-4) self)
)
(logclear! (-> self focus-status) (focus-status pilot-riding pilot))
(let ((v1-65 (handle->process (-> self vehicle))))
(quaternion-copy! s5-0 (-> (the-as vehicle v1-65) root-override-2 quat))
(quaternion-copy! s5-0 (-> (the-as vehicle v1-65) root quat))
)
(ja-no-eval :group! (-> self draw art-group data (-> self info get-in-car-anim))
:num! (seek! (ja-aframe 1.0 0) 0.5)
@@ -534,8 +534,8 @@
(quaternion-from-two-vectors! s2-3 a1-40 *up-vector*)
(quaternion*! s3-4 s2-3 s3-4)
)
(quaternion-copy! (-> self root-override2 quat) s3-4)
(vector+float*! (-> self root-override2 trans) gp-0 s4-6 f30-0)
(quaternion-copy! (-> self root quat) s3-4)
(vector+float*! (-> self root trans) gp-0 s4-6 f30-0)
)
)
)
@@ -543,9 +543,9 @@
(ja :num! (seek! (ja-aframe 1.0 0) 0.5))
)
)
(let ((v1-96 (-> self root-override2 root-prim)))
(set! (-> v1-96 prim-core collide-as) (-> self root-override2 backup-collide-as))
(set! (-> v1-96 prim-core collide-with) (-> self root-override2 backup-collide-with))
(let ((v1-96 (-> self root root-prim)))
(set! (-> v1-96 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-96 prim-core collide-with) (-> self root backup-collide-with))
)
(go-virtual wait-for-ride)
(none)
@@ -556,13 +556,13 @@
:virtual #t
:trans (behavior ()
(when (-> self vehicle)
(case (-> (the-as vehicle (handle->process (-> self vehicle))) info-override object-type)
(case (-> (the-as vehicle (handle->process (-> self vehicle))) info object-type)
((14 15 16)
(go-virtual move-to-vehicle)
)
)
)
(when (< (vector-vector-xz-distance (-> self root-override2 trans) (-> self end-pos)) 122880.0)
(when (< (vector-vector-xz-distance (-> self root trans) (-> self end-pos)) 122880.0)
(when (not (-> self done?))
(set! (-> self done?) #t)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
@@ -882,7 +882,7 @@
(let ((f30-0 (get-rand-float-range obj 1.0 1.25))
(f0-10 (get-rand-float-range obj 1.0 1.25))
)
(set-vector! (-> obj root-override2 scale) f0-10 f30-0 f0-10 1.0)
(set-vector! (-> obj root scale) f0-10 f30-0 f0-10 1.0)
)
(let ((f0-12 (get-rand-float-range obj 0.9 1.0)))
(set-vector! (-> obj draw color-mult) f0-12 f0-12 f0-12 1.0)
@@ -954,7 +954,7 @@
(set! (-> s5-0 backup-collide-with) (-> v1-17 prim-core collide-with))
)
(set! (-> s5-0 max-iteration-count) (the-as uint 3))
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
0
(none)
@@ -1264,8 +1264,8 @@
(set! (-> s1-1 flags) (traffic-spawn-flags))
(set! (-> s1-1 guard-type) (the-as uint 7))
(vector-reset! (-> s1-1 velocity))
(set! (-> s1-1 position quad) (-> (the-as citizen-rebel s2-0) root-override2 trans quad))
(quaternion-copy! (-> s1-1 rotation) (-> (the-as citizen-rebel s2-0) root-override2 quat))
(set! (-> s1-1 position quad) (-> (the-as citizen-rebel s2-0) root trans quad))
(quaternion-copy! (-> s1-1 rotation) (-> (the-as citizen-rebel s2-0) root quat))
(set! (-> s1-1 nav-mesh) (-> s4-1 nav-mesh))
(activate-by-handle *traffic-engine* s1-1)
)
@@ -1285,14 +1285,14 @@
(else
(let ((v1-260 (get-best-seat-for-vehicle
(the-as vehicle s4-2)
(-> (the-as vehicle s4-2) root-override-2 trans)
(-> (the-as vehicle s4-2) root trans)
(the-as int (-> (the-as citizen-rebel s2-0) info seat-flag))
1
)
)
)
(when (!= v1-260 -1)
(.lvf vf1 (&-> (-> (the-as vehicle s4-2) root-override-2 transv) quad))
(.lvf vf1 (&-> (-> (the-as vehicle s4-2) root transv) quad))
(.add.w.vf vf2 vf0 vf0 :mask #b1)
(.mul.vf vf1 vf1 vf1)
(.mul.x.vf acc vf2 vf1 :mask #b1)
@@ -1303,8 +1303,8 @@
(f1-1 32768.0)
)
(if (and (< f0-1 (* f1-1 f1-1)) (let ((f0-2 (vector-vector-distance-squared
(-> (the-as vehicle s4-2) root-override-2 trans)
(-> (the-as citizen-rebel s2-0) root-override2 trans)
(-> (the-as vehicle s4-2) root trans)
(-> (the-as citizen-rebel s2-0) root trans)
)
)
(f1-4 65536.0)
@@ -1332,11 +1332,7 @@
)
)
(if (and (-> s2-0 next-state) (= (-> s2-0 next-state name) 'wait-for-ride))
(send-event
(handle->process (-> arg0 arrow))
'set-position
(-> (the-as citizen-rebel s2-0) root-override2 trans)
)
(send-event (handle->process (-> arg0 arrow)) 'set-position (-> (the-as citizen-rebel s2-0) root trans))
)
)
(else
+2 -2
View File
@@ -264,8 +264,8 @@
(deftype enemy (process-focusable)
((root-override2 collide-shape-moving :offset 128)
(fact-info-override fact-info-enemy :offset 160)
((root collide-shape-moving :override)
(fact fact-info-enemy :override)
(enemy-flags enemy-flag :offset-assert 208)
(enemy-info enemy-info :offset-assert 216)
(hit-points int32 :offset-assert 220)
+121 -126
View File
@@ -129,8 +129,8 @@
((logtest? (-> obj mask) (process-mask actor-pause))
(let ((draw (-> obj draw)))
(or (and (nonzero? draw)
(>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root-override2 pause-adjust-distance))
(vector-vector-distance (-> obj root-override2 trans) (camera-pos))
(>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root pause-adjust-distance))
(vector-vector-distance (-> obj root trans) (camera-pos))
)
(or (logtest? (-> draw status) (draw-control-status on-screen))
(not (and (-> obj next-state) (= (-> obj next-state name) 'idle)))
@@ -155,7 +155,7 @@
(defmethod get-trans enemy ((obj enemy) (arg0 int))
"@returns the `trans` [[vector]] from the process's `root` (typically either a [[trsqv]] or a [[collide-shape]])"
(let ((s4-0 (-> obj root-override2)))
(let ((s4-0 (-> obj root)))
(cond
((zero? arg0)
(-> s4-0 trans)
@@ -168,7 +168,7 @@
)
((= arg0 3)
(let ((v0-0 (vector<-cspace! (new 'static 'vector) (-> obj node-list data (-> obj enemy-info bullseye-joint)))))
(set! (-> v0-0 w) (-> obj root-override2 root-prim prim-core world-sphere w))
(set! (-> v0-0 w) (-> obj root root-prim prim-core world-sphere w))
v0-0
)
)
@@ -204,7 +204,7 @@
)
(defmethod enemy-method-54 enemy ((obj enemy))
(let ((s4-0 (-> obj root-override2)))
(let ((s4-0 (-> obj root)))
(when (>= (-> obj water-max-height) (-> s4-0 trans y))
(let ((s5-0 (new 'stack-no-clear 'water-info)))
(water-info-init! s4-0 s5-0 (collide-action solid semi-solid))
@@ -214,7 +214,7 @@
(set! (-> obj water-surface-height) (-> s5-0 trans y))
(when (not (focus-test? obj touch-water under-water))
(let ((s2-0 (new 'stack-no-clear 'vector)))
(set! (-> s2-0 quad) (-> obj root-override2 trans quad))
(set! (-> s2-0 quad) (-> obj root trans quad))
(set! (-> s2-0 y) (+ 409.6 (-> s5-0 trans y)))
(let ((s1-0 (get-process *default-dead-pool* part-tracker #x4000)))
(when s1-0
@@ -302,7 +302,7 @@
(enemy-method-100 self)
)
(when *target*
(target-look-at-me! :trans (the-as vector (-> self root-override2 root-prim prim-core))
(target-look-at-me! :trans (the-as vector (-> self root root-prim prim-core))
:message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance))
'attacking
))
@@ -320,12 +320,12 @@
(>= (- (current-time) (-> self auto-reset-penetrate-time)) (seconds 0.1))
)
(logclear! (-> self enemy-flags) (enemy-flag attackable-backup))
(set! (-> self root-override2 penetrated-by) (get-penetrate-info self))
(set! (-> self root penetrated-by) (get-penetrate-info self))
(let ((v1-48 0))
(if (logtest? (penetrate knocked) (-> self root-override2 penetrate-using))
(if (logtest? (penetrate knocked) (-> self root penetrate-using))
(set! v1-48 (logior (shl 1 32) v1-48))
)
(set! (-> self root-override2 penetrate-using) (the-as penetrate v1-48))
(set! (-> self root penetrate-using) (the-as penetrate v1-48))
)
)
(if (logtest? (-> self enemy-flags) (enemy-flag look-at-focus))
@@ -435,8 +435,8 @@
(begin
(let ((s3-0 (-> s4-0 head)))
(while s3-0
(let ((s2-0 (get-touched-prim s3-0 (-> arg0 root-override2) s4-0)))
(get-touched-prim s3-0 (-> obj root-override2) s4-0)
(let ((s2-0 (get-touched-prim s3-0 (-> arg0 root) s4-0)))
(get-touched-prim s3-0 (-> obj root) s4-0)
(when (logtest? (-> s2-0 prim-core action) (collide-action solid semi-solid deadly))
(let* ((a0-5 obj)
(t9-2 (method-of-object a0-5 enemy-method-104))
@@ -465,7 +465,7 @@
;; WARN: Return type mismatch object vs none.
(defmethod enemy-method-64 enemy ((obj enemy))
(let ((v1-1 (-> obj root-override2 root-prim)))
(let ((v1-1 (-> obj root root-prim)))
(set! (-> v1-1 prim-core collide-as) (collide-spec))
(set! (-> v1-1 prim-core collide-with) (collide-spec))
)
@@ -478,7 +478,7 @@
;; WARN: Return type mismatch object vs none.
(defmethod enemy-method-65 enemy ((obj enemy))
(let ((v1-1 (-> obj root-override2 root-prim)))
(let ((v1-1 (-> obj root root-prim)))
(set! (-> v1-1 prim-core collide-as) (collide-spec))
(set! (-> v1-1 prim-core collide-with) (collide-spec))
)
@@ -584,7 +584,7 @@
)
(defmethod enemy-method-94 enemy ((obj enemy) (arg0 vector) (arg1 float))
(let ((s4-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override2 quat)))
(let ((s4-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))
(s5-0 (new 'stack-no-clear 'vector))
)
(set! (-> s5-0 quad) (-> arg0 quad))
@@ -597,7 +597,7 @@
)
(defmethod enemy-method-95 enemy ((obj enemy) (arg0 vector) (arg1 float))
(let ((v1-1 (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj root-override2 trans))))
(let ((v1-1 (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj root trans))))
(enemy-method-94 obj v1-1 arg1)
)
)
@@ -606,12 +606,9 @@
(let ((a0-2 (handle->process (-> obj focus handle))))
(cond
(a0-2
(let ((s4-1 (vector-!
(new 'stack-no-clear 'vector)
(get-trans (the-as process-focusable a0-2) 0)
(-> obj root-override2 trans)
)
)
(let ((s4-1
(vector-! (new 'stack-no-clear 'vector) (get-trans (the-as process-focusable a0-2) 0) (-> obj root trans))
)
)
(enemy-method-94 obj s4-1 arg0)
)
@@ -652,7 +649,7 @@
(defmethod enemy-method-105 enemy ((obj enemy) (arg0 process))
(when (logtest? (process-mask target bot) (-> arg0 mask))
(set! (-> obj root-override2 penetrated-by) (the-as penetrate -1))
(set! (-> obj root penetrated-by) (the-as penetrate -1))
(enemy-method-49 obj)
)
(let ((s5-0 (if (type? arg0 process-focusable)
@@ -690,7 +687,7 @@
(set! (-> arg0 quad) (-> obj incoming attack-direction quad))
(let ((v1-1 arg0))
(when (= (+ (* (-> v1-1 x) (-> v1-1 x)) (* (-> v1-1 z) (-> v1-1 z))) 0.0)
(vector-z-quaternion! arg0 (-> obj root-override2 quat))
(vector-z-quaternion! arg0 (-> obj root quat))
(vector-negate-in-place! arg0)
)
)
@@ -803,9 +800,9 @@
)
(defmethod enemy-method-125 enemy ((obj enemy) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float))
(when (find-ground (-> obj root-override2) arg0 arg1 arg2 arg3 arg4)
(when (find-ground (-> obj root) arg0 arg1 arg2 arg3 arg4)
(let ((v0-1 (-> arg0 best-other-tri pat)))
(set! (-> obj root-override2 ground-pat) v0-1)
(set! (-> obj root ground-pat) v0-1)
v0-1
)
)
@@ -814,16 +811,16 @@
(defmethod enemy-above-ground? enemy ((obj enemy) (arg0 collide-query) (arg1 vector) (arg2 collide-spec) (arg3 float) (arg4 float) (arg5 float))
"@returns if the enemy is above the ground or not
@see [[above-ground?]]"
(above-ground? (-> obj root-override2) arg0 arg1 arg2 arg3 arg4 arg5)
(above-ground? (-> obj root) arg0 arg1 arg2 arg3 arg4 arg5)
)
(defmethod enemy-method-127 enemy ((obj enemy) (arg0 float) (arg1 float) (arg2 symbol) (arg3 collide-spec))
(let ((s4-0 (new 'stack-no-clear 'collide-query)))
(cond
((enemy-method-125 obj s4-0 arg3 arg0 arg1 1024.0)
(let ((s5-1 (-> obj root-override2)))
(let ((s5-1 (-> obj root)))
(let ((s3-0 (new 'stack-no-clear 'vector)))
(set! (-> s3-0 quad) (-> obj root-override2 trans quad))
(set! (-> s3-0 quad) (-> obj root trans quad))
(set! (-> s3-0 y) (-> s4-0 best-other-tri intersect y))
(move-to-point! s5-1 s3-0)
(let ((a0-3 (-> s4-0 best-other-tri normal))
@@ -844,7 +841,7 @@
#t
)
(else
(let ((v1-11 (-> obj root-override2)))
(let ((v1-11 (-> obj root)))
(logclear! (-> v1-11 status) (collide-status
on-surface
on-ground
@@ -882,7 +879,7 @@
)
(defmethod enemy-method-128 enemy ((obj enemy) (arg0 vector) (arg1 move-above-ground-params))
(let ((gp-0 (-> obj root-override2)))
(let ((gp-0 (-> obj root)))
(set! (-> arg1 on-ground?) #f)
(set! (-> arg1 do-move?) #t)
(set! (-> arg1 old-gspot-pos quad) (-> gp-0 gspot-pos quad))
@@ -981,7 +978,7 @@
)
(defmethod enemy-method-111 enemy ((obj enemy))
(let ((v1-0 (-> obj root-override2)))
(let ((v1-0 (-> obj root)))
(when (logtest? (-> v1-0 status) (collide-status touch-surface))
(let ((f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (-> self clock seconds-per-frame) (+ -1.0 (-> obj enemy-info friction)))))))
(vector-float*! (-> v1-0 transv) (-> v1-0 transv) f0-1)
@@ -1080,16 +1077,16 @@
)
(set! (-> obj incoming attacker-handle) (the-as handle #f))
(enemy-method-124 obj)
(set! (-> obj fact-info-override) (new
'process
'fact-info-enemy
obj
(the-as (pointer float) (-> arg0 fact-defaults))
(pickup-type eco-pill-random)
(-> *FACT-bank* default-eco-pill-green-inc)
)
(set! (-> obj fact) (new
'process
'fact-info-enemy
obj
(the-as (pointer float) (-> arg0 fact-defaults))
(pickup-type eco-pill-random)
(-> *FACT-bank* default-eco-pill-green-inc)
)
)
(let ((a1-5 (if (logtest? (enemy-option multi-focus) (-> obj fact-info-override enemy-options))
(let ((a1-5 (if (logtest? (enemy-option multi-focus) (-> obj fact enemy-options))
#x400406
#x400402
)
@@ -1124,7 +1121,7 @@
(if (-> obj on-hostile)
(logior! (-> obj enemy-flags) (enemy-flag drawn-mirrored))
)
(let ((s4-0 (-> obj root-override2)))
(let ((s4-0 (-> obj root)))
(set! (-> obj penetrated-by-all) (-> s4-0 penetrated-by))
(set! (-> s4-0 penetrated-by) (get-penetrate-info obj))
(set! (-> s4-0 event-self) 'touched)
@@ -1133,7 +1130,7 @@
(set! (-> obj penetrated-knocked) (-> arg0 penetrate-knocked))
(set! (-> obj reaction-time) (the-as time-frame (get-rand-int-range obj 30 180)))
(let* ((v1-79 (-> obj enemy-flags))
(a0-28 (-> obj fact-info-override enemy-options))
(a0-28 (-> obj fact enemy-options))
(v1-80 (logior (enemy-flag
enable-on-active
checking-water
@@ -1157,7 +1154,7 @@
(set! (-> obj mask) (logior (process-mask collectable) (-> obj mask)))
(if (and (-> obj enemy-info move-to-ground)
(not (logtest? (enemy-flag vulnerable-backup) (-> obj enemy-flags)))
(not (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options)))
(not (logtest? (enemy-option ambush) (-> obj fact enemy-options)))
)
(enemy-method-127 obj 40960.0 40960.0 #t (the-as collide-spec (-> obj gnd-collide)))
)
@@ -1181,9 +1178,9 @@
(set! (-> self enemy-flags) (the-as enemy-flag (logior (enemy-flag vulnerable-backup) (-> self enemy-flags))))
)
(init-enemy-collision! self)
(set! (-> self root-override2 trans quad) (-> arg1 trans quad))
(quaternion-copy! (-> self root-override2 quat) (-> arg1 quat))
(vector-identity! (-> self root-override2 scale))
(set! (-> self root trans quad) (-> arg1 trans quad))
(quaternion-copy! (-> self root quat) (-> arg1 quat))
(vector-identity! (-> self root scale))
(init-enemy! self)
(when (> (-> self enemy-info gem-joint) 0)
(cond
@@ -1211,7 +1208,7 @@
)
)
)
(let ((v1-43 (-> self fact-info-override enemy-options)))
(let ((v1-43 (-> self fact enemy-options)))
(cond
(*debug-view-anims*
(go-virtual view-anims)
@@ -1225,7 +1222,7 @@
((logtest? (enemy-option dormant-aware) v1-43)
(enemy-method-65 self)
)
((logtest? (enemy-option ambush) (-> self fact-info-override enemy-options))
((logtest? (enemy-option ambush) (-> self fact enemy-options))
(go-ambush self)
)
(else
@@ -1272,7 +1269,7 @@ This commonly includes things such as:
)
)
)
(let ((v1-28 (-> obj fact-info-override enemy-options)))
(let ((v1-28 (-> obj fact enemy-options)))
(cond
((logtest? (enemy-option spawner) v1-28)
(process-entity-status! obj (entity-perm-status dead) #t)
@@ -1469,7 +1466,7 @@ This commonly includes things such as:
"Checks a variety of criteria to determine the level of awareness the enemy is of the target. Sets `aware` and related fields as well!
@TODO - flesh out docs
@returns the value that sets `aware`"
(let ((f30-0 (vector-vector-distance (get-trans arg0 0) (-> obj root-override2 trans)))
(let ((f30-0 (vector-vector-distance (get-trans arg0 0) (-> obj root trans)))
(s3-1 #f)
(s2-0 #f)
)
@@ -1506,7 +1503,7 @@ This commonly includes things such as:
)
)
)
((< f30-0 (-> obj fact-info-override idle-distance))
((< f30-0 (-> obj fact idle-distance))
1
)
(else
@@ -1517,7 +1514,7 @@ This commonly includes things such as:
)
(when (and (> s3-2 0) (logtest? (enemy-flag called-dying) (-> obj enemy-flags)))
(cond
((logtest? (enemy-option idle-til-trigger) (-> obj fact-info-override enemy-options))
((logtest? (enemy-option idle-til-trigger) (-> obj fact enemy-options))
(if (not (enemy-method-130 obj f30-0))
(set! s3-2 0)
)
@@ -1542,7 +1539,7 @@ This commonly includes things such as:
)
(defmethod enemy-method-130 enemy ((obj enemy) (arg0 float))
(let* ((v1-0 (-> obj fact-info-override))
(let* ((v1-0 (-> obj fact))
(a2-0 (-> v1-0 trig-mask-count))
(a3-0 (-> v1-0 trig-mask))
)
@@ -1675,7 +1672,7 @@ This commonly includes things such as:
)
((method-of-type touching-shapes-entry prims-touching-action?)
(the-as touching-shapes-entry s3-3)
(-> obj root-override2)
(-> obj root)
(collide-action solid)
(collide-action)
)
@@ -1691,7 +1688,7 @@ This commonly includes things such as:
((= arg2 'attack-invinc)
(case (-> (the-as attack-info (-> arg3 param 1)) mode)
(('endlessfall)
(let ((v1-31 (-> obj root-override2 root-prim)))
(let ((v1-31 (-> obj root root-prim)))
(set! (-> v1-31 prim-core collide-as) (collide-spec))
(set! (-> v1-31 prim-core collide-with) (collide-spec))
)
@@ -1821,7 +1818,7 @@ This commonly includes things such as:
(logclear! (-> obj mask) (process-mask actor-pause))
(cond
(v1-162
(if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options))
(if (logtest? (enemy-option ambush) (-> obj fact enemy-options))
(go-ambush obj)
(go-hostile obj)
)
@@ -1830,7 +1827,7 @@ This commonly includes things such as:
(or (= v1-173 'dormant) (= v1-173 'dormant-aware))
)
)
(if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options))
(if (logtest? (enemy-option ambush) (-> obj fact enemy-options))
(go-ambush obj)
(go (method-of-object obj notice))
)
@@ -1846,7 +1843,7 @@ This commonly includes things such as:
(not (logtest? (-> obj focus-status) (focus-status grabbed)))
)
(logclear! (-> obj enemy-flags) (enemy-flag alert victory called-dying))
(if (logtest? (enemy-option ambush) (-> obj fact-info-override enemy-options))
(if (logtest? (enemy-option ambush) (-> obj fact enemy-options))
(go-ambush obj)
(react-to-focus obj)
)
@@ -1867,10 +1864,10 @@ This commonly includes things such as:
((= arg2 'death-start)
(set! (-> obj enemy-flags) (the-as enemy-flag (logior (enemy-flag recover) (-> obj enemy-flags))))
(send-event (ppointer->process (-> obj parent)) 'child-die)
(drop-pickup (-> obj fact-info-override) #t *entity-pool* (-> obj fact-info-override) 0)
(drop-pickup (-> obj fact) #t *entity-pool* (-> obj fact) 0)
(let ((s5-1 (-> obj on-death)))
(if s5-1
(script-eval (the-as pair s5-1) :vector (-> obj root-override2 trans))
(script-eval (the-as pair s5-1) :vector (-> obj root trans))
)
)
)
@@ -1886,9 +1883,9 @@ This commonly includes things such as:
((= arg2 'instant-death)
(when (and (> (-> obj hit-points) 0) (zero? (-> obj fated-time)))
(set! (-> obj hit-points) 0)
(set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj))
(set! (-> obj root penetrated-by) (get-penetrate-info obj))
(let ((s5-2 (enemy-method-50 obj (new 'stack-no-clear 'vector))))
(vector-z-quaternion! s5-2 (-> obj root-override2 quat))
(vector-z-quaternion! s5-2 (-> obj root quat))
(vector-float*! s5-2 s5-2 -1.0)
(vector-normalize! s5-2 1.0)
)
@@ -1912,7 +1909,7 @@ This commonly includes things such as:
(send-event (ppointer->process (-> obj parent)) 'child-die)
(let ((s5-3 (-> obj on-death)))
(if s5-3
(script-eval (the-as pair s5-3) :vector (-> obj root-override2 trans))
(script-eval (the-as pair s5-3) :vector (-> obj root trans))
)
)
(cleanup-for-death obj)
@@ -1934,10 +1931,10 @@ This commonly includes things such as:
)
)
((= arg2 'push-trans)
(move-by-vector! (-> obj root-override2) (the-as vector (-> arg3 param 0)))
(move-by-vector! (-> obj root) (the-as vector (-> arg3 param 0)))
)
((= arg2 'move-trans)
(move-to-point! (-> obj root-override2) (the-as vector (-> arg3 param 0)))
(move-to-point! (-> obj root) (the-as vector (-> arg3 param 0)))
)
((= arg2 'shadow)
(cond
@@ -2026,7 +2023,7 @@ This commonly includes things such as:
)
(set! (-> obj hit-points) s4-1)
(if (not (logtest? (-> obj enemy-flags) (enemy-flag attackable-backup)))
(set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj))
(set! (-> obj root penetrated-by) (get-penetrate-info obj))
)
(- s5-0 s4-1)
)
@@ -2050,14 +2047,14 @@ This commonly includes things such as:
(and s3-0 (not (logtest? (-> s3-0 focus-status) (focus-status disable dead ignore grabbed))))
((method-of-type touching-shapes-entry prims-touching-action?)
touch-entry
(-> obj root-override2)
(-> obj root)
(collide-action deadly)
(collide-action)
)
)
(let ((a3-2 (if ((method-of-type touching-shapes-entry prims-touching-action?)
touch-entry
(-> obj root-override2)
(-> obj root)
(collide-action persistent-attack)
(collide-action)
)
@@ -2071,13 +2068,13 @@ This commonly includes things such as:
)
((and ((method-of-type touching-shapes-entry prims-touching-action?)
touch-entry
(-> obj root-override2)
(-> obj root)
(collide-action no-standon)
(collide-action)
)
(not (logtest? (-> obj root-override2 penetrated-by) (-> s3-0 root-override penetrate-using)))
(not (logtest? (-> obj root penetrated-by) (-> s3-0 root penetrate-using)))
)
(if (send-shoves (-> obj root-override2) arg0 touch-entry 0.7 6144.0 16384.0)
(if (send-shoves (-> obj root) arg0 touch-entry 0.7 6144.0 16384.0)
(send-event obj 'bouncing-off arg0)
)
)
@@ -2098,13 +2095,13 @@ This commonly includes things such as:
)
(when ((method-of-type touching-shapes-entry prims-touching-action?)
(the-as touching-shapes-entry s4-0)
(-> obj root-override2)
(-> obj root)
(collide-action solid semi-solid deadly)
(collide-action)
)
(let ((a3-2 (if ((method-of-type touching-shapes-entry prims-touching-action?)
(the-as touching-shapes-entry s4-0)
(-> obj root-override2)
(-> obj root)
(collide-action persistent-attack)
(collide-action)
)
@@ -2127,14 +2124,14 @@ This commonly includes things such as:
(defbehavior enemy-simple-post enemy ()
(track-target! self)
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
0
(none)
)
(defbehavior enemy-falling-post enemy ()
(set! (-> self enemy-flags) (logior (enemy-flag directed) (-> self enemy-flags)))
(let ((gp-0 (-> self root-override2)))
(let ((gp-0 (-> self root)))
(cond
((focus-test? self under-water)
(enemy-method-47 self (-> gp-0 transv))
@@ -2172,7 +2169,7 @@ This commonly includes things such as:
(defbehavior enemy-die-falling-post enemy ()
(set! (-> self enemy-flags) (logior (enemy-flag directed) (-> self enemy-flags)))
(let ((gp-0 (-> self root-override2)))
(let ((gp-0 (-> self root)))
(if (focus-test? self under-water)
(enemy-method-47 self (-> gp-0 transv))
(vector-v++! (-> gp-0 transv) (compute-acc-due-to-gravity gp-0 (new-stack-vector0) 0.0))
@@ -2251,14 +2248,14 @@ This commonly includes things such as:
:event enemy-event-handler
:enter (behavior ()
((-> (method-of-type enemy idle) enter))
(set! (-> self root-override2 nav-flags) (nav-flags))
(let ((v1-4 (-> self root-override2 root-prim)))
(set! (-> self root nav-flags) (nav-flags))
(let ((v1-4 (-> self root root-prim)))
(set! (-> v1-4 prim-core collide-as) (collide-spec))
(set! (-> v1-4 prim-core collide-with) (collide-spec))
)
0
(logior! (-> self draw status) (draw-control-status no-draw))
(set! (-> self draw origin quad) (-> self root-override2 trans quad))
(set! (-> self draw origin quad) (-> self root trans quad))
(if (logtest? (enemy-flag alert) (-> self enemy-flags))
(set! (-> self enemy-flags) (logior (enemy-flag victory) (-> self enemy-flags)))
)
@@ -2267,13 +2264,13 @@ This commonly includes things such as:
)
:exit (behavior ()
(logclear! (-> self focus-status) (focus-status disable))
(let ((v1-3 (-> self root-override2 root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> self root-override2 backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> self root-override2 backup-collide-with))
(let ((v1-3 (-> self root root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> self root backup-collide-with))
)
(logclear! (-> self draw status) (draw-control-status no-draw))
(logclear! (-> self enemy-flags) (enemy-flag victory))
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(logior! (-> self root nav-flags) (nav-flags has-root-sphere))
(none)
)
:code (the-as (function none :behavior enemy) sleep-code)
@@ -2288,7 +2285,7 @@ This commonly includes things such as:
(when (and (>= (- (current-time) (-> self state-time)) (-> self state-timeout))
(> (the-as int (-> self focus aware)) 0)
)
(if (logtest? (enemy-option ambush) (-> self fact-info-override enemy-options))
(if (logtest? (enemy-option ambush) (-> self fact enemy-options))
(go-ambush self)
(go-virtual active)
)
@@ -2328,7 +2325,7 @@ This commonly includes things such as:
(logclear! (-> self enemy-flags) (enemy-flag jump-check-blocked))
(let ((gp-0 (-> self on-active)))
(if gp-0
(script-eval (the-as pair gp-0) :vector (-> self root-override2 trans))
(script-eval (the-as pair gp-0) :vector (-> self root trans))
)
)
)
@@ -2381,7 +2378,7 @@ This commonly includes things such as:
(logclear! (-> self enemy-flags) (enemy-flag auto-reset-penetrate))
(let ((gp-0 (-> self on-notice)))
(if gp-0
(script-eval (the-as pair gp-0) :vector (-> self root-override2 trans))
(script-eval (the-as pair gp-0) :vector (-> self root trans))
)
)
)
@@ -2420,8 +2417,8 @@ This commonly includes things such as:
:frame-num 0.0
)
(until (ja-done? 0)
(vector-! gp-0 (target-pos 0) (-> self root-override2 trans))
(seek-toward-heading-vec! (-> self root-override2) gp-0 131072.0 (seconds 0.05))
(vector-! gp-0 (target-pos 0) (-> self root trans))
(seek-toward-heading-vec! (-> self root) gp-0 131072.0 (seconds 0.05))
(suspend)
(ja :num! (seek! max f30-0))
)
@@ -2445,7 +2442,7 @@ This commonly includes things such as:
(logclear! (-> self enemy-flags) (enemy-flag drawn-mirrored))
(let ((gp-0 (-> self on-hostile)))
(if gp-0
(script-eval (the-as pair gp-0) :vector (-> self root-override2 trans))
(script-eval (the-as pair gp-0) :vector (-> self root trans))
)
)
)
@@ -2611,7 +2608,7 @@ This commonly includes things such as:
(set! (-> arg0 anim-speed) (get-rand-float-range obj 0.9 1.1))
(set! (-> arg0 hang-time) 0)
(set! (-> arg0 dest-pos quad) (-> obj event-param-point quad))
(set! (-> arg0 start-pos quad) (-> obj root-override2 trans quad))
(set! (-> arg0 start-pos quad) (-> obj root trans quad))
(let ((s4-0 (new 'stack-no-clear 'collide-query)))
(if (enemy-above-ground?
obj
@@ -2639,10 +2636,10 @@ This commonly includes things such as:
)
(defmethod enemy-method-86 enemy ((obj enemy))
(let ((gp-0 (-> obj root-override2)))
(let ((gp-0 (-> obj root)))
(when (< (-> gp-0 transv y) 0.0)
(let ((a1-0 (new 'stack-no-clear 'collide-query)))
(find-ground (-> obj root-override2) a1-0 (the-as collide-spec (-> obj gnd-collide)) 8192.0 81920.0 1024.0)
(find-ground (-> obj root) a1-0 (the-as collide-spec (-> obj gnd-collide)) 8192.0 81920.0 1024.0)
)
(>= (-> gp-0 gspot-pos y) (-> gp-0 trans y))
)
@@ -2650,14 +2647,14 @@ This commonly includes things such as:
)
(defmethod enemy-method-85 enemy ((obj enemy))
(let* ((v1-0 (-> obj root-override2))
(let* ((v1-0 (-> obj root))
(f0-0 (-> v1-0 gspot-pos y))
)
(if (< (-> v1-0 trans y) f0-0)
(set! (-> v1-0 trans y) f0-0)
)
)
(set! (-> obj root-override2 transv y) 0.0)
(set! (-> obj root transv y) 0.0)
)
(defmethod enemy-method-92 enemy ((obj enemy) (arg0 int) (arg1 nav-poly))
@@ -2673,9 +2670,9 @@ This commonly includes things such as:
(set! (-> obj enemy-flags) (logior (enemy-flag directed) (-> obj enemy-flags)))
(let ((f30-0 (the float (-> arg1 hang-time))))
(let ((a1-3 (compute-trans-at-time (-> arg1 traj) f30-0 (new 'stack-no-clear 'vector))))
(move-to-point! (-> obj root-override2) a1-3)
(move-to-point! (-> obj root) a1-3)
)
(let ((s5-1 (-> obj root-override2 transv)))
(let ((s5-1 (-> obj root transv)))
(compute-transv-at-time (-> arg1 traj) f30-0 s5-1)
(vector-float*! s5-1 s5-1 300.0)
)
@@ -2851,7 +2848,7 @@ This commonly includes things such as:
)
)
(label cfg-12)
(logclear! (-> self root-override2 status) (collide-status on-surface on-ground touch-surface))
(logclear! (-> self root status) (collide-status on-surface on-ground touch-surface))
(let ((s5-1 2))
(logior! (-> self focus-status) (focus-status in-air))
(until (enemy-method-86 self)
@@ -2896,7 +2893,7 @@ This commonly includes things such as:
(set! (-> a1-0 options) (overlaps-others-options))
(set! (-> a1-0 collide-with-filter) (-> self enemy-info overlaps-others-collide-with-filter))
(set! (-> a1-0 tlist) *touching-list*)
(find-overlapping-shapes (-> self root-override2) a1-0)
(find-overlapping-shapes (-> self root) a1-0)
)
(enemy-simple-post)
(none)
@@ -3030,7 +3027,7 @@ This commonly includes things such as:
(return (the-as symbol #f))
)
(when (not (logtest? (enemy-flag directed) (-> obj enemy-flags)))
(let ((s5-0 (-> obj root-override2)))
(let ((s5-0 (-> obj root)))
(if (focus-test? obj under-water)
(enemy-method-47 obj (-> s5-0 transv))
(+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame)))
@@ -3054,7 +3051,7 @@ This commonly includes things such as:
(if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead))))
(kill-prefer-falling obj)
)
(let ((s5-1 (-> obj root-override2))
(let ((s5-1 (-> obj root))
(a1-2 (new 'stack-no-clear 'collide-query))
(s3-0 (new 'stack-no-clear 'vector))
(s4-0 (new 'stack-no-clear 'vector))
@@ -3115,7 +3112,7 @@ This commonly includes things such as:
(((knocked-type knocked-type-4))
(vector-rotate90-around-y! arg0 arg0)
(let ((v1-9 (new 'stack-no-clear 'vector)))
(vector-! v1-9 (-> obj incoming attacker-pos) (-> obj root-override2 trans))
(vector-! v1-9 (-> obj incoming attacker-pos) (-> obj root trans))
(set! (-> v1-9 y) 0.0)
(if (< 0.0 (vector-dot v1-9 arg0))
(vector-negate! arg0 arg0)
@@ -3127,7 +3124,7 @@ This commonly includes things such as:
)
)
(((knocked-type knocked-type-5))
(let* ((f1-2 (vector-vector-xz-distance-squared (target-pos 0) (-> obj root-override2 trans)))
(let* ((f1-2 (vector-vector-xz-distance-squared (target-pos 0) (-> obj root trans)))
(f0-26 1.0)
(f2-0 61440.0)
(f1-3 (fmin f1-2 (* f2-0 f2-0)))
@@ -3139,7 +3136,7 @@ This commonly includes things such as:
)
)
(((knocked-type knocked-type-6))
(let* ((f1-5 (vector-vector-xz-distance-squared (target-pos 0) (-> obj root-override2 trans)))
(let* ((f1-5 (vector-vector-xz-distance-squared (target-pos 0) (-> obj root trans)))
(f0-34 1.0)
(f2-6 122880.0)
(f1-6 (fmin f1-5 (* f2-6 f2-6)))
@@ -3174,21 +3171,19 @@ This commonly includes things such as:
)
(defmethod enemy-method-51 enemy ((obj enemy))
(let ((f30-0 (quaternion-y-angle (-> obj root-override2 quat))))
(let ((f30-0 (quaternion-y-angle (-> obj root quat))))
(case (-> obj incoming knocked-type)
(((knocked-type knocked-type-4) (knocked-type knocked-type-6))
(let ((a0-5 (handle->process (-> obj focus handle))))
(when a0-5
(let ((v1-9 (get-trans (the-as process-focusable a0-5) 0)))
(set! f30-0
(atan (- (-> v1-9 x) (-> obj root-override2 trans x)) (- (-> v1-9 z) (-> obj root-override2 trans z)))
)
(set! f30-0 (atan (- (-> v1-9 x) (-> obj root trans x)) (- (-> v1-9 z) (-> obj root trans z))))
)
)
)
)
(else
(let* ((v1-13 (-> obj root-override2 transv))
(let* ((v1-13 (-> obj root transv))
(f28-0 (atan (-> v1-13 x) (-> v1-13 z)))
(f1-2 (deg- f30-0 f28-0))
(f2-0 (fabs f1-2))
@@ -3251,7 +3246,7 @@ This commonly includes things such as:
)
(defmethod enemy-method-80 enemy ((obj enemy) (arg0 enemy-knocked-info))
(let ((gp-0 (-> obj root-override2)))
(let ((gp-0 (-> obj root)))
(or (>= (-> arg0 on-surface-count) 3)
(and (logtest? (-> gp-0 status) (collide-status on-ground)) (>= 16384.0 (-> gp-0 transv y)))
(and (>= (-> arg0 move-count) 3)
@@ -3267,7 +3262,7 @@ This commonly includes things such as:
)
(defmethod enemy-method-81 enemy ((obj enemy))
(let ((s5-0 (-> obj root-override2))
(let ((s5-0 (-> obj root))
(a1-0 (new 'stack-no-clear 'collide-query))
(gp-0 #t)
)
@@ -3311,7 +3306,7 @@ This commonly includes things such as:
)
)
((= v1-0 4)
(vector-reset! (-> obj root-override2 transv))
(vector-reset! (-> obj root transv))
(set! s5-0 #t)
)
(else
@@ -3337,10 +3332,10 @@ This commonly includes things such as:
(set! (-> self attack-id) a0-4)
)
(enemy-method-103 self)
(if (logtest? (enemy-option knocked-into-water) (-> self fact-info-override enemy-options))
(if (logtest? (enemy-option knocked-into-water) (-> self fact enemy-options))
(set! (-> self enemy-flags) (logior (enemy-flag trackable-backup) (-> self enemy-flags)))
)
(let ((v1-16 (-> self root-override2)))
(let ((v1-16 (-> self root)))
(logclear! (-> v1-16 status) (collide-status
on-surface
on-ground
@@ -3380,7 +3375,7 @@ This commonly includes things such as:
(if (= (-> self incoming knocked-type) (knocked-type knocked-type-4))
(logclear! (-> self enemy-flags) (enemy-flag check-water-backup))
)
(set! (-> self root-override2 penetrate-using) (penetrate lunge vehicle knocked))
(set! (-> self root penetrate-using) (penetrate lunge vehicle knocked))
(enemy-method-49 self)
(enemy-method-46 self 1)
(none)
@@ -3395,8 +3390,8 @@ This commonly includes things such as:
)
(set! (-> self enemy-flags) v1-1)
(when (nonzero? (-> self hit-points))
(set! (-> self root-override2 penetrate-using)
(the-as penetrate (logclear (-> self root-override2 penetrate-using) (penetrate knocked)))
(set! (-> self root penetrate-using)
(the-as penetrate (logclear (-> self root penetrate-using) (penetrate knocked)))
)
(enemy-method-46 self 2)
(if (logtest? (-> self enemy-flags) (enemy-flag check-water))
@@ -3428,7 +3423,7 @@ This commonly includes things such as:
)
:trans (behavior ()
(if (>= (-> self enemy-info knocked-seek-ry-clamp) 0.0)
(seek-toward-yaw-angle! (-> self root-override2) (-> self desired-angle) 138353.78 (seconds 0.1))
(seek-toward-yaw-angle! (-> self root) (-> self desired-angle) 138353.78 (seconds 0.1))
)
(none)
)
@@ -3442,7 +3437,7 @@ This commonly includes things such as:
(if (>= (- (current-time) (-> self state-time)) (seconds 2))
(kill-prefer-falling self)
)
(if (logtest? (-> self root-override2 status) (collide-status on-surface))
(if (logtest? (-> self root status) (collide-status on-surface))
(+! (-> gp-0 on-surface-count) 1)
)
(enemy-method-79 self s5-0 gp-0)
@@ -3454,7 +3449,7 @@ This commonly includes things such as:
(let ((s5-1 2))
(set! (-> gp-0 land-can-land-time) (current-time))
(until #f
(if (logtest? (-> self root-override2 status) (collide-status on-surface))
(if (logtest? (-> self root status) (collide-status on-surface))
(+! (-> gp-0 on-surface-count) 1)
)
(if (enemy-method-79 self s5-1 gp-0)
@@ -3488,7 +3483,7 @@ This commonly includes things such as:
(cond
((logtest? (enemy-flag recover) (-> self enemy-flags))
(set! (-> self hit-points) 0)
(let ((v1-67 (-> self root-override2 root-prim)))
(let ((v1-67 (-> self root root-prim)))
(set! (-> v1-67 prim-core collide-as) (collide-spec))
(set! (-> v1-67 prim-core collide-with) (collide-spec))
)
@@ -3539,7 +3534,7 @@ This commonly includes things such as:
)
(let ((a0-18 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data (-> obj enemy-info gem-joint))))
)
(birth-pickup-at-point a0-18 (pickup-type gem) 1.0 #t *entity-pool* (-> obj fact-info-override))
(birth-pickup-at-point a0-18 (pickup-type gem) 1.0 #t *entity-pool* (-> obj fact))
)
)
(logclear! (-> obj enemy-flags) (enemy-flag enable-on-active checking-water))
@@ -3563,7 +3558,7 @@ This commonly includes things such as:
:event enemy-event-handler
:enter (behavior ()
(dispose! self)
(let ((v1-3 (-> self root-override2 root-prim)))
(let ((v1-3 (-> self root root-prim)))
(set! (-> v1-3 prim-core collide-as) (collide-spec))
(set! (-> v1-3 prim-core collide-with) (collide-spec))
)
@@ -3603,7 +3598,7 @@ This commonly includes things such as:
)
(defmethod enemy-method-133 enemy ((obj enemy))
(let ((s5-0 (-> obj root-override2))
(let ((s5-0 (-> obj root))
(a1-0 (new 'stack-no-clear 'collide-query))
(gp-0 #t)
)
@@ -3621,13 +3616,13 @@ This commonly includes things such as:
:event enemy-event-handler
:enter (behavior ()
(dispose! self)
(let ((v1-3 (-> self root-override2 root-prim)))
(let ((v1-3 (-> self root root-prim)))
(set! (-> v1-3 prim-core collide-as) (collide-spec))
(set! (-> v1-3 prim-core collide-with) (collide-spec))
)
0
(set! (-> self hit-points) 0)
(if (logtest? (enemy-option knocked-into-water) (-> self fact-info-override enemy-options))
(if (logtest? (enemy-option knocked-into-water) (-> self fact enemy-options))
(set! (-> self enemy-flags) (logior (enemy-flag trackable-backup) (-> self enemy-flags)))
)
(enemy-method-103 self)
+41 -41
View File
@@ -497,7 +497,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x34
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -614,7 +614,7 @@
:channel (gui-channel voicebox)
:flags #x3
:speech #x42
:delay #x4b0
:delay (seconds 4)
:neg #x1
:on-close #f
)
@@ -623,7 +623,7 @@
:channel (gui-channel daxter)
:flags #x3
:speech #x43
:delay #xbb8
:delay (seconds 10)
:neg #x1
:on-close #f
)
@@ -664,7 +664,7 @@
:channel (gui-channel daxter)
:flags #x3
:speech #x48
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -681,7 +681,7 @@
:channel (gui-channel voicebox)
:flags #x3
:speech #x4a
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -748,7 +748,7 @@
:channel (gui-channel voicebox)
:flags #x3
:speech #x51
:delay #x1770
:delay (seconds 20)
:neg #x1
:on-close #f
)
@@ -823,7 +823,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x5a
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -858,7 +858,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x5e
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -883,7 +883,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x61
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -892,7 +892,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x62
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -901,7 +901,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x63
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -910,7 +910,7 @@
:channel (gui-channel voicebox)
:flags #x3
:speech #x64
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -919,7 +919,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x65
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -928,7 +928,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x66
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -954,7 +954,7 @@
:channel (gui-channel voicebox)
:flags #x7
:speech #x69
:delay #x5dc
:delay (seconds 5)
:neg #x1
:on-close #f
)
@@ -995,7 +995,7 @@
:channel (gui-channel voicebox)
:flags #x3
:speech #x6e
:delay #x5dc
:delay (seconds 5)
:neg #x1
:on-close #f
)
@@ -1021,7 +1021,7 @@
:channel (gui-channel voicebox)
:flags #x3
:speech #x71
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -1137,7 +1137,7 @@
:speech #x7d
:text-message (text-id gun-upgrade-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1147,7 +1147,7 @@
:flags #x40
:speech #x7e
:text-message (text-id gun-upgrade-speed)
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1158,7 +1158,7 @@
:speech #x7f
:text-message (text-id gun-upgrade-ammo)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1169,7 +1169,7 @@
:speech #x80
:text-message (text-id gun-upgrade-damage)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1180,7 +1180,7 @@
:speech #x81
:text-message (text-id mission-complete)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1190,7 +1190,7 @@
:flags #x40
:speech #x82
:text-message (text-id pass-red-acquired)
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1201,7 +1201,7 @@
:speech #x83
:text-message (text-id pass-green-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1212,7 +1212,7 @@
:speech #x84
:text-message (text-id pass-yellow-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1223,7 +1223,7 @@
:speech #x85
:text-message (text-id pass-palace-acquired)
:text-duration #x5dc
:delay #xbb8
:delay (seconds 10)
:neg #x1
:on-close #f
)
@@ -1234,7 +1234,7 @@
:speech #x86
:text-message (text-id pass-black-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1245,7 +1245,7 @@
:speech #x87
:text-message (text-id red-gun-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1256,7 +1256,7 @@
:speech #x88
:text-message (text-id yellow-gun-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1267,7 +1267,7 @@
:speech #x89
:text-message (text-id blue-gun-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1278,7 +1278,7 @@
:speech #x8a
:text-message (text-id dark-gun-acquired)
:text-duration #x5dc
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -1287,7 +1287,7 @@
:channel (gui-channel voicebox)
:flags #x3
:speech #x8b
:delay #x708
:delay (seconds 6)
:neg #x1
:on-close #f
)
@@ -1527,7 +1527,7 @@
:speech #xaa
:text-message (text-id oracle-gem-grind-200)
:text-duration #x5dc
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -1537,7 +1537,7 @@
:speech #xab
:text-message (text-id oracle-gem-grind-200)
:text-duration #x5dc
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -1547,7 +1547,7 @@
:speech #xac
:text-message (text-id oracle-gem-grind-200)
:text-duration #x5dc
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -2823,7 +2823,7 @@
:name "cityv175"
:channel (gui-channel alert)
:speech #x173
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -2831,7 +2831,7 @@
:name "cityv176"
:channel (gui-channel alert)
:speech #x174
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -2839,7 +2839,7 @@
:name "cityv177"
:channel (gui-channel alert)
:speech #x175
:delay #x384
:delay (seconds 3)
:neg #x1
:on-close #f
)
@@ -3519,7 +3519,7 @@
:channel (gui-channel voicebox)
:flags #x2
:speech #x1ce
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -3528,7 +3528,7 @@
:channel (gui-channel voicebox)
:flags #x2
:speech #x1cf
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
@@ -3537,7 +3537,7 @@
:channel (gui-channel voicebox)
:flags #x2
:speech #x1d0
:delay #x258
:delay (seconds 2)
:neg #x1
:on-close #f
)
+17 -17
View File
@@ -20,15 +20,15 @@
;; DECOMP BEGINS
(deftype fma-sphere (process-drawable)
((root-override collide-shape :offset 128)
(first-time? symbol :offset-assert 200)
(mode fma-sphere-mode :offset-assert 204)
(track-handle handle :offset-assert 208)
(track-joint int32 :offset-assert 216)
(attack-id uint32 :offset-assert 220)
(duration time-frame :offset-assert 224)
(sphere sphere :inline :offset-assert 240)
(danger traffic-danger-info :inline :offset-assert 256)
((root collide-shape :override)
(first-time? symbol :offset-assert 200)
(mode fma-sphere-mode :offset-assert 204)
(track-handle handle :offset-assert 208)
(track-joint int32 :offset-assert 216)
(attack-id uint32 :offset-assert 220)
(duration time-frame :offset-assert 224)
(sphere sphere :inline :offset-assert 240)
(danger traffic-danger-info :inline :offset-assert 256)
)
:heap-base #xc0
:method-count-assert 21
@@ -64,7 +64,7 @@
(let ((v1-2 (new 'static 'attack-info :mask (attack-info-mask mode id attacker-velocity damage knock))))
(set! (-> v1-2 id) (-> self attack-id))
(set! (-> v1-2 mode) 'eco-red)
(set! (-> v1-2 attacker-velocity quad) (-> self root-override transv quad))
(set! (-> v1-2 attacker-velocity quad) (-> self root transv quad))
(set! (-> v1-2 damage) 2.0)
(set! (-> v1-2 knock) (the-as uint 2))
(set! (-> a1-2 param 1) (the-as uint v1-2))
@@ -105,7 +105,7 @@
(set! (-> gp-0 quad) (-> self sphere quad))
(set! (-> gp-0 w) 1.0)
(vector-matrix*! gp-0 gp-0 (-> (the-as process-drawable a2-0) node-list data v1-5 bone transform))
(let ((v1-9 (-> self root-override)))
(let ((v1-9 (-> self root)))
(vector-! (-> v1-9 transv) gp-0 (-> v1-9 trans))
(let ((a0-12 (-> v1-9 transv)))
(.lvf vf1 (&-> (-> v1-9 transv) quad))
@@ -118,7 +118,7 @@
(.svf (&-> a0-12 quad) vf1)
)
)
(move-to-point! (-> self root-override) gp-0)
(move-to-point! (-> self root) gp-0)
(set! (-> self danger sphere x) (-> gp-0 x))
(set! (-> self danger sphere y) (-> gp-0 y))
(set! (-> self danger sphere z) (-> gp-0 z))
@@ -134,7 +134,7 @@
(set! (-> a1-10 options) (overlaps-others-options))
(set! (-> a1-10 collide-with-filter) (the-as collide-spec -1))
(set! (-> a1-10 tlist) *touching-list*)
(find-overlapping-shapes (-> self root-override) a1-10)
(find-overlapping-shapes (-> self root) a1-10)
)
)
(if (or (logtest? *display-scene-control* (scene-controls display-controls))
@@ -143,7 +143,7 @@
(add-debug-sphere
#t
(bucket-id debug2)
(-> self root-override trans)
(-> self root trans)
(-> self sphere r)
(new 'static 'rgba :r #x80 :g #x40 :a #x80)
)
@@ -211,9 +211,9 @@
(set! (-> gp-1 backup-collide-as) (-> v1-27 prim-core collide-as))
(set! (-> gp-1 backup-collide-with) (-> v1-27 prim-core collide-with))
)
(set! (-> self root-override) gp-1)
(set! (-> self root) gp-1)
)
(let ((gp-2 (-> self root-override)))
(let ((gp-2 (-> self root)))
(set! (-> gp-2 nav-radius) (-> self sphere r))
(set! (-> gp-2 root-prim local-sphere w) (-> self sphere r))
(set! (-> gp-2 trans quad) (-> self sphere quad))
@@ -240,7 +240,7 @@
)
(logclear! (-> self mask) (process-mask actor-pause enemy))
(when (logtest? (-> self mode) (fma-sphere-mode nav))
(let ((a0-32 (find-nearest-nav-mesh (-> self root-override trans) (the-as float #x7f800000))))
(let ((a0-32 (find-nearest-nav-mesh (-> self root trans) (the-as float #x7f800000))))
(cond
(a0-32
(add-process-drawable-to-navmesh a0-32 self #f)
@@ -3139,8 +3139,6 @@ it returns a triangle and normal direction to push in.
(none)
)
;; definition for method 50 of type collide-shape
;; INFO: Used lq/sq
(defmethod send-shoves collide-shape ((obj collide-shape) (arg0 process) (arg1 touching-shapes-entry) (arg2 float) (arg3 float) (arg4 float))
(local-vars (sv-144 process) (sv-160 collide-shape-prim) (sv-176 vector))
(with-pp
@@ -3161,7 +3159,7 @@ it returns a triangle and normal direction to push in.
(when (and s0-0 gp-0)
(while s0-0
(set! sv-160 (get-touched-prim s0-0 obj arg1))
(get-touched-prim s0-0 (-> (the-as process-focusable gp-0) root-override) arg1)
(get-touched-prim s0-0 (-> (the-as process-focusable gp-0) root) arg1)
(when (logtest? (-> sv-160 prim-core action) (collide-action no-standon))
(let ((v1-12 (get-middle-of-bsphere-overlap s0-0 (new 'stack-no-clear 'vector))))
(set! sv-176 (new 'stack-no-clear 'vector))
@@ -3175,18 +3173,16 @@ it returns a triangle and normal direction to push in.
(.svf (&-> sv-176 quad) vf6)
(vector-normalize! sv-176 1.0)
(when (and (< arg2 (-> sv-176 y)) (and (not (focus-test? (the-as process-focusable gp-0) dead hit board mech))
(< (-> (the-as process-focusable gp-0) root-override transv y) 4.096)
(< (-> (the-as process-focusable gp-0) root transv y) 4.096)
)
)
(let ((s2-1 (new 'stack-no-clear 'vector)))
(set! (-> s2-1 quad) (-> (the-as process-focusable gp-0) root-override transv quad))
(let* ((v1-26 (-> (the-as process-focusable gp-0) root-override transv))
(set! (-> s2-1 quad) (-> (the-as process-focusable gp-0) root transv quad))
(let* ((v1-26 (-> (the-as process-focusable gp-0) root transv))
(f30-0 (sqrtf (+ (* (-> v1-26 x) (-> v1-26 x)) (* (-> v1-26 z) (-> v1-26 z)))))
)
(if (= f30-0 0.0)
(set! (-> s2-1 quad)
(-> (vector-z-quaternion! s2-1 (-> (the-as process-focusable gp-0) root-override quat)) quad)
)
(set! (-> s2-1 quad) (-> (vector-z-quaternion! s2-1 (-> (the-as process-focusable gp-0) root quat)) quad))
)
(vector-xz-normalize! s2-1 (fmax f30-0 arg4))
)
+1 -1
View File
@@ -46,7 +46,7 @@
(set! (-> query collide-with) (-> obj collide-with))
(set! (-> query ignore-process0) process-focus)
(set! (-> query ignore-process1) process)
(set! (-> query ignore-pat) (-> process-focus root-override pat-ignore-mask))
(set! (-> query ignore-pat) (-> process-focus root pat-ignore-mask))
(set! (-> query action-mask) (collide-action solid))
)
(fill-using-line-sphere *collide-cache* cquery)
+35 -37
View File
@@ -20,12 +20,12 @@
;; DECOMP BEGINS
(deftype base-plat (process-focusable)
((root-override-2 collide-shape-moving :offset 128)
(smush smush-control :inline :offset-assert 208)
(basetrans vector :inline :offset-assert 240)
(bounce-time time-frame :offset-assert 256)
(bouncing symbol :offset-assert 264)
(bounce-scale meters :offset-assert 268)
((root collide-shape-moving :override)
(smush smush-control :inline :offset-assert 208)
(basetrans vector :inline :offset-assert 240)
(bounce-time time-frame :offset-assert 256)
(bouncing symbol :offset-assert 264)
(bounce-scale meters :offset-assert 268)
)
:heap-base #x90
:method-count-assert 34
@@ -52,7 +52,7 @@ For example for an elevator pre-compute the distance between the first and last
(defmethod stop-bouncing! base-plat ((obj base-plat))
"Sets `bouncing` to false and resets related settings to their defaults"
(set! (-> obj basetrans quad) (-> obj root-override trans quad))
(set! (-> obj basetrans quad) (-> obj root trans quad))
(set! (-> obj bouncing) #f)
(set! (-> obj bounce-scale) 819.2)
0
@@ -66,7 +66,7 @@ and translate the platform via the `smush`
(activate! (-> obj smush) -1.0 60 150 1.0 1.0 (-> self clock))
(set! (-> obj bounce-time) (current-time))
(set! (-> obj bouncing) #t)
(sound-play "plat-bounce" :position (-> obj root-override trans))
(sound-play "plat-bounce" :position (-> obj root trans))
(logclear! (-> obj mask) (process-mask sleep))
(logclear! (-> obj mask) (process-mask sleep-code))
0
@@ -108,14 +108,14 @@ If we aren't bouncing however, TODO - CSHAPE"
(let ((trans (new 'stack-no-clear 'vector)))
(set! (-> trans quad) (-> self basetrans quad))
(+! (-> trans y) (* (-> self bounce-scale) (update! (-> self smush))))
(move-to-point! (-> self root-override) trans)
(move-to-point! (-> self root) trans)
)
(if (not (!= (-> self smush amp) 0.0))
(set! (-> self bouncing) #f)
)
)
(else
(move-to-point! (-> self root-override) (-> self basetrans))
(move-to-point! (-> self root) (-> self basetrans))
)
)
(none)
@@ -135,10 +135,10 @@ If we aren't bouncing however, TODO - CSHAPE"
(defmethod execute-effects base-plat ((obj base-plat))
"Executes various ancillary tasks with the platform, such as spawning particles or playing the associated sound"
(if (nonzero? (-> obj part))
(spawn (-> obj part) (-> obj root-override trans))
(spawn (-> obj part) (-> obj root trans))
)
(when (nonzero? (-> obj sound))
(set! (-> obj sound trans quad) (-> obj root-override trans quad))
(set! (-> obj sound trans quad) (-> obj root trans quad))
(update! (-> obj sound))
)
(none)
@@ -158,7 +158,7 @@ If we aren't bouncing however, TODO - CSHAPE"
(deftype eco-door (process-drawable)
"@unused - Likely a left-over from Jak 1"
((root-override collide-shape :offset 128)
((root collide-shape :override)
(speed float :offset-assert 200)
(open-distance float :offset-assert 204)
(close-distance float :offset-assert 208)
@@ -220,14 +220,13 @@ eco-door-event-handler
:code (behavior ()
(ja :num-func num-func-identity :frame-num 0.0)
(suspend)
(update-transforms (-> self root-override))
(update-transforms (-> self root))
(ja-post)
(until #f
(when (and *target* (and (>= (-> self open-distance)
(vector-vector-distance (-> self root-override trans) (-> *target* control trans))
)
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
(when (and *target*
(and (>= (-> self open-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
)
(lock-according-to-task! self)
(if (and (not (-> self locked))
@@ -254,10 +253,10 @@ eco-door-event-handler
)
(send-event *target* 'query 'powerup (pickup-type eco-blue))
)
(sound-play "blue-eco-on" :position (-> self root-override trans))
(sound-play "blue-eco-on" :position (-> self root trans))
)
(sound-play-by-name (-> self open-sound) (new-sound-id) 1024 0 0 (sound-group sfx) #t)
(let ((prim (-> self root-override root-prim)))
(let ((prim (-> self root root-prim)))
(set! (-> prim prim-core collide-as) (collide-spec))
(set! (-> prim prim-core collide-with) (collide-spec))
)
@@ -278,7 +277,7 @@ eco-door-event-handler
:code (behavior ()
(set! (-> self state-time) (current-time))
(process-entity-status! self (entity-perm-status subtask-complete) #t)
(let ((prim (-> self root-override root-prim)))
(let ((prim (-> self root root-prim)))
(set! (-> prim prim-core collide-as) (collide-spec))
(set! (-> prim prim-core collide-with) (collide-spec))
)
@@ -286,18 +285,17 @@ eco-door-event-handler
(ja :num-func num-func-identity :frame-num max)
(logior! (-> self draw status) (draw-control-status no-draw))
(suspend)
(update-transforms (-> self root-override))
(update-transforms (-> self root))
(ja-post)
(until #f
(let ((dist-from-target (vector4-dot (-> self out-dir) (target-pos 0)))
(dist-from-camera (vector4-dot (-> self out-dir) (camera-pos)))
)
(when (and (-> self auto-close)
(or (not *target*) (or (< (-> self close-distance)
(vector-vector-distance (-> self root-override trans) (-> *target* control trans))
)
(focus-test? *target* teleporting)
)
(or (not *target*)
(or (< (-> self close-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(focus-test? *target* teleporting)
)
)
)
(if (and (>= (* dist-from-target dist-from-camera) 0.0) (< 16384.0 (fabs dist-from-camera)))
@@ -316,15 +314,15 @@ eco-door-event-handler
:virtual #t
:event eco-door-event-handler
:code (behavior ()
(let ((v1-1 (-> self root-override root-prim)))
(set! (-> v1-1 prim-core collide-as) (-> self root-override backup-collide-as))
(set! (-> v1-1 prim-core collide-with) (-> self root-override backup-collide-with))
(let ((v1-1 (-> self root root-prim)))
(set! (-> v1-1 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-1 prim-core collide-with) (-> self root backup-collide-with))
)
(logclear! (-> self draw status) (draw-control-status no-draw))
(let ((params (new 'stack 'overlaps-others-params)))
(set! (-> params options) (overlaps-others-options oo0))
(set! (-> params tlist) #f)
(while (find-overlapping-shapes (-> self root-override) params)
(while (find-overlapping-shapes (-> self root) params)
(suspend)
)
)
@@ -371,7 +369,7 @@ otherwise, lock it if [[eco-door-flags:0]] is set"
(set! (-> collision-shape backup-collide-as) (-> prim prim-core collide-as))
(set! (-> collision-shape backup-collide-with) (-> prim prim-core collide-with))
)
(set! (-> obj root-override) collision-shape)
(set! (-> obj root) collision-shape)
)
0
(none)
@@ -394,7 +392,7 @@ This commonly includes things such as:
(eco-door-method-25 obj)
(process-drawable-from-entity! obj arg0)
(let ((door-scale (res-lump-float (-> obj entity) 'scale :default 1.0)))
(set-vector! (-> obj root-override scale) door-scale door-scale door-scale 1.0)
(set-vector! (-> obj root scale) door-scale door-scale door-scale 1.0)
)
(set! (-> obj open-distance) 32768.0)
(set! (-> obj close-distance) 49152.0)
@@ -410,9 +408,9 @@ This commonly includes things such as:
(lock-according-to-task! obj)
(set! (-> obj auto-close) (logtest? (-> obj flags) (eco-door-flags auto-close)))
(set! (-> obj one-way) (logtest? (-> obj flags) (eco-door-flags one-way)))
(vector-z-quaternion! (-> obj out-dir) (-> obj root-override quat))
(set! (-> obj out-dir w) (- (vector-dot (-> obj out-dir) (-> obj root-override trans))))
(update-transforms (-> obj root-override))
(vector-z-quaternion! (-> obj out-dir) (-> obj root quat))
(set! (-> obj out-dir w) (- (vector-dot (-> obj out-dir) (-> obj root trans))))
(update-transforms (-> obj root))
(stub obj)
(if (and (not (-> obj auto-close))
(-> obj entity)
+14 -14
View File
@@ -64,11 +64,11 @@
(logclear! (-> obj button-status) (button-status button-status-2))
(if vec
(set! (-> obj move-to-pos quad) (-> vec quad))
(set! (-> obj move-to-pos quad) (-> obj root-override trans quad))
(set! (-> obj move-to-pos quad) (-> obj root trans quad))
)
(if quat
(quaternion-copy! (-> obj move-to-quat) quat)
(quaternion-copy! (-> obj move-to-quat) (-> obj root-override quat))
(quaternion-copy! (-> obj move-to-quat) (-> obj root quat))
)
0
(none)
@@ -132,8 +132,8 @@
:post (behavior ()
(when (logtest? (-> self button-status) (button-status button-status-2))
(logclear! (-> self button-status) (button-status button-status-2))
(set! (-> self root-override trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
(set! (-> self root trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root quat) (-> self move-to-quat))
(rider-post)
)
(none)
@@ -178,8 +178,8 @@
:post (behavior ()
(when (logtest? (-> self button-status) (button-status button-status-2))
(logclear! (-> self button-status) (button-status button-status-2))
(set! (-> self root-override trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
(set! (-> self root trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root quat) (-> self move-to-quat))
)
(rider-post)
(none)
@@ -231,8 +231,8 @@
:post (behavior ()
(when (logtest? (-> self button-status) (button-status button-status-2))
(logclear! (-> self button-status) (button-status button-status-2))
(set! (-> self root-override trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
(set! (-> self root trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root quat) (-> self move-to-quat))
(rider-post)
)
(none)
@@ -272,8 +272,8 @@
:post (behavior ()
(when (logtest? (-> self button-status) (button-status button-status-2))
(logclear! (-> self button-status) (button-status button-status-2))
(set! (-> self root-override trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
(set! (-> self root trans quad) (-> self move-to-pos quad))
(quaternion-copy! (-> self root quat) (-> self move-to-quat))
)
(rider-post)
(none)
@@ -412,7 +412,7 @@
(set! (-> collision-shape backup-collide-as) (-> prim prim-core collide-as))
(set! (-> collision-shape backup-collide-with) (-> prim prim-core collide-with))
)
(set! (-> obj root-override) collision-shape)
(set! (-> obj root) collision-shape)
)
0
(none)
@@ -487,9 +487,9 @@ This commonly includes things such as:
(set! (-> self actor-group) (the-as (pointer actor-group) #f))
(set! (-> self actor-group-count) 0)
(basebutton-method-34 self)
(set! (-> self root-override trans quad) (-> vec quad))
(quaternion-copy! (-> self root-override quat) quat)
(set-vector! (-> self root-override scale) 1.0 1.0 1.0 1.0)
(set! (-> self root trans quad) (-> vec quad))
(quaternion-copy! (-> self root quat) quat)
(set-vector! (-> self root scale) 1.0 1.0 1.0 1.0)
(prepare-trigger-event! self)
(basebutton-method-33 self)
(idle-state-transition self)
@@ -8,7 +8,7 @@
;; DECOMP BEGINS
(deftype blocking-plane (process-drawable)
((root-override collide-shape :offset 128)
((root collide-shape :override)
)
:heap-base #x50
:method-count-assert 22
@@ -33,10 +33,10 @@
(the-as object (case event-type
(('on)
(cond
((nonzero? (-> self root-override))
(let ((prim (-> self root-override root-prim)))
(set! (-> prim prim-core collide-as) (-> self root-override backup-collide-as))
(let ((v0-0 (the-as int (-> self root-override backup-collide-with))))
((nonzero? (-> self root))
(let ((prim (-> self root root-prim)))
(set! (-> prim prim-core collide-as) (-> self root backup-collide-as))
(let ((v0-0 (the-as int (-> self root backup-collide-with))))
(set! (-> prim prim-core collide-with) (the-as collide-spec v0-0))
v0-0
)
@@ -59,8 +59,8 @@
)
(('off)
(cond
((nonzero? (-> self root-override))
(let ((v1-13 (-> self root-override root-prim)))
((nonzero? (-> self root))
(let ((v1-13 (-> self root root-prim)))
(set! (-> v1-13 prim-core collide-as) (collide-spec))
(set! (-> v1-13 prim-core collide-with) (collide-spec))
)
@@ -108,10 +108,10 @@
(set! (-> s2-0 backup-collide-as) (-> v1-6 prim-core collide-as))
(set! (-> s2-0 backup-collide-with) (-> v1-6 prim-core collide-with))
)
(set! (-> obj root-override) s2-0)
(set! (-> obj root) s2-0)
)
(let ((s1-0 (new 'stack-no-clear 'matrix))
(s2-1 (-> obj root-override))
(s2-1 (-> obj root))
)
(vector+! (-> s2-1 trans) s3-0 s4-0)
(vector-float*! (-> s2-1 trans) (-> s2-1 trans) 0.5)
@@ -125,7 +125,7 @@
(vector-cross! (-> s1-0 vector 2) (the-as vector (-> s1-0 vector)) (-> s1-0 vector 1))
(vector-normalize! (-> s1-0 vector 2) 1.0)
(matrix->quaternion (-> s2-1 quat) s1-0)
(let ((v1-20 (-> obj root-override root-prim local-sphere)))
(let ((v1-20 (-> obj root root-prim local-sphere)))
(set! (-> v1-20 x) 0.0)
(set! (-> v1-20 y) (* 0.00024414062 (* 0.5 height)))
(set! (-> v1-20 z) 0.0)
+140 -180
View File
@@ -60,7 +60,7 @@
)
(deftype collectable (process-drawable)
((root-override2 collide-shape-moving :offset 128)
((root collide-shape-moving :override)
(pickup-type pickup-type :offset-assert 200)
(pickup-amount float :offset-assert 204)
(notify handle :offset-assert 208)
@@ -130,17 +130,15 @@
(set! (-> obj mask) (logior (process-mask bit18) (-> obj mask)))
(set! (-> obj flags) (collectable-flag pickup no-eco-blue))
(set! (-> obj bob-amount) arg1)
(set! (-> obj bob-offset) (the-as seconds (+ (the-as int (-> obj root-override2 trans x))
(the-as int (-> obj root-override2 trans y))
(the-as int (-> obj root-override2 trans z))
)
)
(set! (-> obj bob-offset)
(the-as
seconds
(+ (the-as int (-> obj root trans x)) (the-as int (-> obj root trans y)) (the-as int (-> obj root trans z)))
)
)
(cond
((or (= (vector-length (-> obj root-override2 transv)) 0.0)
(logtest? (-> obj fact options) (actor-option auto-pickup))
)
(vector-reset! (-> obj root-override2 transv))
((or (= (vector-length (-> obj root transv)) 0.0) (logtest? (-> obj fact options) (actor-option auto-pickup)))
(vector-reset! (-> obj root transv))
)
(else
(logior! (-> obj flags) (collectable-flag bounce))
@@ -158,8 +156,8 @@
)
(set! (-> obj collect-timeout) (the-as seconds 99))
(set! (-> obj birth-time) (current-time))
(set! (-> obj base quad) (-> obj root-override2 trans quad))
(set! (-> obj old-base quad) (-> obj root-override2 trans quad))
(set! (-> obj base quad) (-> obj root trans quad))
(set! (-> obj old-base quad) (-> obj root trans quad))
(set! (-> obj pickup-handle) (the-as handle #f))
(case (-> obj fact pickup-type)
(((pickup-type eco-pill-green)
@@ -176,9 +174,7 @@
)
)
(if (logtest? (-> obj fact options) (actor-option big-collision))
(set! (-> obj root-override2 root-prim local-sphere w)
(* 2.5 (-> obj root-override2 root-prim local-sphere w))
)
(set! (-> obj root root-prim local-sphere w) (* 2.5 (-> obj root root-prim local-sphere w)))
)
(when (and arg2 (nonzero? (-> obj draw)))
(let* ((s5-0 (-> arg2 process))
@@ -218,7 +214,7 @@
(set! (-> s5-0 backup-collide-as) (-> v1-14 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-14 prim-core collide-with))
)
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj fact) (new 'process 'fact-info obj (-> obj pickup-type) (-> obj pickup-amount)))
0
@@ -274,7 +270,7 @@
(the-as skeleton-group (art-group-get-by-name *level* "skel-health" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(let ((v1-37 (-> (the-as collide-shape (-> obj root-override2)) root-prim local-sphere)))
(let ((v1-37 (-> (the-as collide-shape (-> obj root)) root-prim local-sphere)))
(set! (-> v1-37 y) 2457.6)
(set! (-> v1-37 w) 4096.0)
)
@@ -295,7 +291,7 @@
(set! (-> obj part) (create-launch-control s5-0 obj))
)
(if s4-0
(set! (-> obj sound) (new 'process 'ambient-sound s4-0 (-> obj root-override2 trans)))
(set! (-> obj sound) (new 'process 'ambient-sound s4-0 (-> obj root trans)))
)
)
(none)
@@ -312,8 +308,8 @@
(set! (-> self fact pickup-amount) f30-0)
)
(set! (-> self fact options) (-> arg2 options))
(set! (-> self root-override2 trans quad) (-> arg0 quad))
(set! (-> self root-override2 transv quad) (-> arg1 quad))
(set! (-> self root trans quad) (-> arg0 quad))
(set! (-> self root transv quad) (-> arg1 quad))
(initialize-effects self (-> self fact pickup-type))
(set! (-> self notify) (the-as handle #f))
(case (-> self fact pickup-type)
@@ -340,7 +336,7 @@
)
)
)
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
(set! (-> self event-hook) (-> (method-of-object self wait) event))
(go-to-initial-state self)
(none)
@@ -350,10 +346,10 @@
(set! (-> obj pickup-amount) arg2)
(set! (-> obj pickup-type) arg1)
(initialize-allocations obj)
(set! (-> obj root-override2 trans quad) (-> arg0 extra trans quad))
(set! (-> obj root trans quad) (-> arg0 extra trans quad))
(initialize-effects obj (-> obj fact pickup-type))
(initialize-options obj 0 1024.0 (the-as fact-info #f))
(update-transforms (-> obj root-override2))
(update-transforms (-> obj root))
(if (logtest? (-> obj fact options) (actor-option wait-for-task-complete))
(go (method-of-object obj blocked))
)
@@ -363,7 +359,7 @@
(defmethod common-post collectable ((obj collectable))
(let ((s5-0 (-> obj part))
(s4-0 (-> obj root-override2 root-prim prim-core))
(s4-0 (-> obj root root-prim prim-core))
)
(if (nonzero? (-> obj draw))
(ja-post)
@@ -382,7 +378,7 @@
(defmethod do-pickup collectable ((obj collectable) (arg0 handle))
(set! (-> obj pickup-handle) arg0)
(logclear! (-> obj mask) (process-mask actor-pause))
(let ((v1-3 (-> obj root-override2 root-prim)))
(let ((v1-3 (-> obj root root-prim)))
(set! (-> v1-3 prim-core collide-as) (collide-spec))
(set! (-> v1-3 prim-core collide-with) (collide-spec))
)
@@ -456,7 +452,7 @@
(t2-8 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> obj root-override2 root-prim prim-core world-sphere quad))
(set! (-> t3-0 trans quad) (-> obj root root-prim prim-core world-sphere quad))
((the-as (function object object object object object object object object none) t9-22)
a0-60
a1-26
@@ -514,7 +510,7 @@
(t2-9 #f)
(t3-1 *launch-matrix*)
)
(set! (-> t3-1 trans quad) (-> obj root-override2 root-prim prim-core world-sphere quad))
(set! (-> t3-1 trans quad) (-> obj root root-prim prim-core world-sphere quad))
((the-as (function object object object object object object object object none) t9-25)
a0-63
a1-29
@@ -560,7 +556,7 @@
)
)
(when v1-1
(let ((a0-5 (-> self root-override2 root-prim prim-core))
(let ((a0-5 (-> self root root-prim prim-core))
(a1-2 (-> (the-as collide-shape v1-1) root-prim prim-core))
)
(when (< (vector-vector-distance (the-as vector a0-5) (the-as vector a1-2)) (-> *FACT-bank* suck-suck-dist))
@@ -588,7 +584,7 @@
)
)
(when a0-6
(let ((s2-1 (-> self root-override2 root-prim prim-core))
(let ((s2-1 (-> self root root-prim prim-core))
(gp-1 (get-trans a0-6 3))
)
(if (and arg1 (rand-vu-percent? 0.25))
@@ -647,7 +643,7 @@
(go-virtual wait)
)
(arg1
(add-blue-shake (-> self root-override2 trans) (the-as vector s2-1) gp-1)
(add-blue-shake (-> self root trans) (the-as vector s2-1) gp-1)
)
)
)
@@ -684,8 +680,8 @@
)
(the-as object (cond
((= arg2 'trans)
(set! (-> self root-override2 trans quad) (-> (the-as vector (-> arg3 param 0)) quad))
(update-transforms (-> self root-override2))
(set! (-> self root trans quad) (-> (the-as vector (-> arg3 param 0)) quad))
(update-transforms (-> self root))
(ja-post)
)
((= arg2 'jump)
@@ -696,7 +692,7 @@
((= arg2 'pickup)
(when (not (and (-> self next-state) (= (-> self next-state name) 'pickup)))
(if (and (> arg1 0) (-> arg3 param 0))
(move-to-point! (-> self root-override2) (the-as vector (-> arg3 param 0)))
(move-to-point! (-> self root) (the-as vector (-> arg3 param 0)))
)
(logclear! (-> self mask) (process-mask actor-pause))
(process-contact-action arg0)
@@ -760,15 +756,15 @@
((= arg2 'collide-shape)
(cond
((-> arg3 param 0)
(let ((v1-97 (-> self root-override2 root-prim)))
(set! (-> v1-97 prim-core collide-as) (-> self root-override2 backup-collide-as))
(set! v0-4 (the-as none (-> self root-override2 backup-collide-with)))
(let ((v1-97 (-> self root root-prim)))
(set! (-> v1-97 prim-core collide-as) (-> self root backup-collide-as))
(set! v0-4 (the-as none (-> self root backup-collide-with)))
(set! (-> v1-97 prim-core collide-with) (the-as collide-spec v0-4))
)
v0-4
)
(else
(let ((v1-99 (-> self root-override2 root-prim)))
(let ((v1-99 (-> self root root-prim)))
(set! (-> v1-99 prim-core collide-as) (collide-spec))
(set! (-> v1-99 prim-core collide-with) (collide-spec))
)
@@ -832,11 +828,11 @@
(logclear! (-> self mask) (process-mask actor-pause))
(let ((gp-0 (new 'stack 'trajectory)))
(set! (-> self base y) (-> self jump-pos y))
(setup-from-to-duration! gp-0 (-> self root-override2 trans) (-> self jump-pos) 300.0 -2.2755556)
(setup-from-to-duration! gp-0 (-> self root trans) (-> self jump-pos) 300.0 -2.2755556)
(set! (-> self state-time) (current-time))
(until (>= (- (current-time) (-> self state-time)) (seconds 1))
(let ((f0-2 (the float (- (current-time) (-> self state-time)))))
(compute-trans-at-time gp-0 f0-2 (-> self root-override2 trans))
(compute-trans-at-time gp-0 f0-2 (-> self root trans))
)
(transform-post)
(common-post self)
@@ -846,10 +842,10 @@
)
)
)
(set! (-> self root-override2 trans quad) (-> self jump-pos quad))
(set! (-> self base quad) (-> self root-override2 trans quad))
(vector-reset! (-> self root-override2 transv))
(update-transforms (-> self root-override2))
(set! (-> self root trans quad) (-> self jump-pos quad))
(set! (-> self base quad) (-> self root trans quad))
(vector-reset! (-> self root transv))
(update-transforms (-> self root))
(logclear! (-> self flags) (collectable-flag bounce))
(logior! (-> self flags) (collectable-flag pickup))
(if (-> self actor-pause)
@@ -883,31 +879,26 @@
(none)
)
:exit (behavior ()
(vector-reset! (-> self root-override2 transv))
(vector-reset! (-> self root transv))
(logclear! (-> self flags) (collectable-flag bounce))
(logior! (-> self flags) (collectable-flag pickup))
(if (-> self actor-pause)
(logior! (-> self mask) (process-mask actor-pause))
)
(set! (-> self base quad) (-> self root-override2 trans quad))
(logclear! (-> self root-override2 root-prim prim-core action) (collide-action solid))
(set! (-> self root-override2 root-prim prim-core collide-with) (collide-spec jak player-list tobot))
(set! (-> self root-override2 root-prim prim-core collide-as)
(collide-spec collectable notice-blue-eco-powerup)
)
(set! (-> self base quad) (-> self root trans quad))
(logclear! (-> self root root-prim prim-core action) (collide-action solid))
(set! (-> self root root-prim prim-core collide-with) (collide-spec jak player-list tobot))
(set! (-> self root root-prim prim-core collide-as) (collide-spec collectable notice-blue-eco-powerup))
(none)
)
:trans (behavior ()
(vector-v++!
(-> self root-override2 transv)
(compute-acc-due-to-gravity (-> self root-override2) (new-stack-vector0) 0.0)
)
(integrate-no-collide! (-> self root-override2) (-> self root-override2 transv))
(when (and (>= 0.0 (-> self root-override2 transv y)) (>= (-> self base y) (-> self root-override2 trans y)))
(set! (-> self root-override2 trans y) (-> self base y))
(vector-v++! (-> self root transv) (compute-acc-due-to-gravity (-> self root) (new-stack-vector0) 0.0))
(integrate-no-collide! (-> self root) (-> self root transv))
(when (and (>= 0.0 (-> self root transv y)) (>= (-> self base y) (-> self root trans y)))
(set! (-> self root trans y) (-> self base y))
(cond
((< (-> self root-override2 transv y) -8192.0)
(set! (-> self root-override2 transv y) (* -0.5 (-> self root-override2 transv y)))
((< (-> self root transv y) -8192.0)
(set! (-> self root transv y) (* -0.5 (-> self root transv y)))
)
(else
(if (and (logtest? (-> self fact options) (actor-option suck-in))
@@ -957,9 +948,9 @@
)
:code (behavior ((arg0 handle))
(until #f
(set! (-> self root-override2 trans quad) (-> self base quad))
(set! (-> self root trans quad) (-> self base quad))
(add-blue-motion #t #f #f #f)
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
(common-post self)
(suspend)
)
@@ -1011,10 +1002,9 @@
)
(>= (- (current-time) (the-as int (-> self birth-time))) (the-as time-frame (-> self fadeout-timeout)))
)
(or (or (not *target*)
(or (< 204800.0 (vector-vector-distance (-> self root-override2 trans) (-> *target* control trans)))
(focus-test? *target* teleporting)
)
(or (or (not *target*) (or (< 204800.0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(focus-test? *target* teleporting)
)
)
(logtest? (-> self flags) (collectable-flag no-distance-check-fadeout))
)
@@ -1113,9 +1103,9 @@
)
:code (behavior ((arg0 handle))
(until #f
(set! (-> self root-override2 trans quad) (-> self base quad))
(set! (-> self root trans quad) (-> self base quad))
(add-blue-motion #t #f #t #f)
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
(common-post self)
(suspend)
)
@@ -1255,10 +1245,10 @@
)
)
(set! (-> self base quad) (-> self old-base quad))
(set! (-> self root-override2 trans quad) (-> self base quad))
(let ((v1-26 (-> self root-override2 root-prim)))
(set! (-> v1-26 prim-core collide-as) (-> self root-override2 backup-collide-as))
(set! (-> v1-26 prim-core collide-with) (-> self root-override2 backup-collide-with))
(set! (-> self root trans quad) (-> self base quad))
(let ((v1-26 (-> self root root-prim)))
(set! (-> v1-26 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-26 prim-core collide-with) (-> self root backup-collide-with))
)
(set! (-> self clock) (-> *display* entity-clock))
(if (nonzero? (-> self draw))
@@ -1397,7 +1387,7 @@ This commonly includes things such as:
:virtual #t
:trans (behavior ()
(if (and (and *target*
(and (>= 32768.0 (vector-vector-distance (-> self root-override2 trans) (-> *target* control trans)))
(and (>= 32768.0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
)
@@ -1459,7 +1449,7 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-16 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-16 prim-core collide-with))
)
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj fact) (new 'process 'fact-info obj (-> obj pickup-type) (-> obj pickup-amount)))
0
@@ -1479,8 +1469,8 @@ This commonly includes things such as:
(or (not (logtest? (-> obj mask) (process-mask actor-pause)))
(or (and (nonzero? (-> obj draw))
(logtest? (-> obj draw status) (draw-control-status on-screen))
(>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root-override2 pause-adjust-distance))
(vector-vector-distance (-> obj root-override2 trans) (math-camera-pos))
(>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root pause-adjust-distance))
(vector-vector-distance (-> obj root trans) (math-camera-pos))
)
)
(and (nonzero? (-> obj skel)) (!= (-> obj skel root-channel 0) (-> obj skel channel)))
@@ -1511,14 +1501,10 @@ This commonly includes things such as:
(defmethod common-post money ((obj money))
(with-pp
(quaternion-rotate-y!
(-> obj root-override2 quat)
(-> obj root-override2 quat)
(* 40049.777 (-> pp clock seconds-per-frame))
)
(quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (-> pp clock seconds-per-frame)))
(let ((f30-0 (-> obj bob-amount)))
(when (< 0.0 f30-0)
(set! (-> obj root-override2 trans y)
(set! (-> obj root trans y)
(+ (-> obj base y)
(-> obj suck-y-offset)
(* f30-0
@@ -1532,7 +1518,7 @@ This commonly includes things such as:
)
)
)
(update-transforms (-> obj root-override2))
(update-transforms (-> obj root))
)
)
(ja-post)
@@ -1544,16 +1530,12 @@ This commonly includes things such as:
:virtual #t
:code (behavior ((arg0 handle))
(until #f
(quaternion-rotate-y!
(-> self root-override2 quat)
(-> self root-override2 quat)
(* 91022.22 (-> self clock seconds-per-frame))
)
(set! (-> self root-override2 trans quad) (-> self base quad))
(quaternion-rotate-y! (-> self root quat) (-> self root quat) (* 91022.22 (-> self clock seconds-per-frame)))
(set! (-> self root trans quad) (-> self base quad))
(add-blue-motion #t #t #t #f)
(let ((f30-0 (-> self bob-amount)))
(if (< 0.0 f30-0)
(set! (-> self root-override2 trans y)
(set! (-> self root trans y)
(+ (-> self base y)
(-> self suck-y-offset)
(* f30-0
@@ -1605,7 +1587,7 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-11 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-11 prim-core collide-with))
)
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
(logior! (-> obj mask) (process-mask actor-pause))
(set! (-> obj actor-pause) #t)
@@ -1646,7 +1628,7 @@ This commonly includes things such as:
(initialize-allocations obj)
(process-drawable-from-entity! obj (-> obj entity))
(initialize-options obj 0 1024.0 (the-as fact-info #f))
(update-transforms (-> obj root-override2))
(update-transforms (-> obj root))
(go-to-initial-state obj)
(none)
)
@@ -1670,9 +1652,9 @@ This commonly includes things such as:
)
)
)
(set! (-> self root-override2 trans quad) (-> arg0 quad))
(quaternion-identity! (-> self root-override2 quat))
(set! (-> self root-override2 transv quad) (-> arg1 quad))
(set! (-> self root trans quad) (-> arg0 quad))
(quaternion-identity! (-> self root quat))
(set! (-> self root transv quad) (-> arg1 quad))
(initialize-options
self
(if (and arg2 (logtest? (-> arg2 options) (actor-option fade-out)))
@@ -1682,7 +1664,7 @@ This commonly includes things such as:
1024.0
arg2
)
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
(set! (-> self event-hook) (-> (method-of-object self wait) event))
(go-to-initial-state self)
(none)
@@ -1702,12 +1684,12 @@ This commonly includes things such as:
)
)
)
(set! (-> self root-override2 trans quad) (-> arg0 quad))
(quaternion-identity! (-> self root-override2 quat))
(set! (-> self root-override2 transv quad) (-> arg1 quad))
(set! (-> self root trans quad) (-> arg0 quad))
(quaternion-identity! (-> self root quat))
(set! (-> self root transv quad) (-> arg1 quad))
(initialize-options self 4500 0.0 (the-as fact-info #f))
(logior! (-> self flags) (collectable-flag no-eco-blue))
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
(set! (-> self event-hook) (-> (method-of-object self wait) event))
(go-to-initial-state self)
(none)
@@ -1734,8 +1716,8 @@ This commonly includes things such as:
(with-pp
(seek! (-> obj roty-speed) 20024.889 (* 65536.0 (-> pp clock seconds-per-frame)))
(quaternion-rotate-y!
(-> obj root-override2 quat)
(-> obj root-override2 quat)
(-> obj root quat)
(-> obj root quat)
(* (-> obj roty-speed) (-> pp clock seconds-per-frame))
)
(logclear! (-> obj draw status) (draw-control-status no-draw-temp uninited))
@@ -1761,30 +1743,30 @@ This commonly includes things such as:
)
)
(set-vector!
(-> self root-override2 transv)
(-> self root transv)
(rand-vu-float-range -20480.0 20480.0)
81920.0
(rand-vu-float-range -20480.0 20480.0)
1.0
)
(set-gravity-length (-> self root-override2 dynam) 122880.0)
(set-gravity-length (-> self root dynam) 122880.0)
(set! (-> self roty-speed) 186413.52)
(logior! (-> self flags) (collectable-flag pickup))
(set! (-> self root-override2 root-prim prim-core collide-with)
(set! (-> self root root-prim prim-core collide-with)
(collide-spec backgnd bot crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher)
)
(set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec collectable))
(set! (-> self root-override2 max-iteration-count) (the-as uint 2))
(logior! (-> self root-override2 root-prim prim-core action) (collide-action solid))
(set! (-> self root-override2 reaction) projectile-bounce-reaction)
(set! (-> self root-override2 penetrated-by) (the-as penetrate -1))
(set! (-> self root root-prim prim-core collide-as) (collide-spec collectable))
(set! (-> self root max-iteration-count) (the-as uint 2))
(logior! (-> self root root-prim prim-core action) (collide-action solid))
(set! (-> self root reaction) projectile-bounce-reaction)
(set! (-> self root penetrated-by) (the-as penetrate -1))
(none)
)
:exit (behavior ()
(set! (-> self roty-speed) (fmin 262144.0 (-> self roty-speed)))
(set-gravity-length (-> self root-override2 dynam) 245760.0)
(set! (-> self root-override2 root-prim local-sphere w) 6144.0)
(update-transforms (-> self root-override2))
(set-gravity-length (-> self root dynam) 245760.0)
(set! (-> self root root-prim local-sphere w) 6144.0)
(update-transforms (-> self root))
(let ((t9-2 (-> (method-of-type collectable deploy) exit)))
(if t9-2
(t9-2)
@@ -1796,37 +1778,27 @@ This commonly includes things such as:
:code (the-as (function none :behavior gem) sleep-code)
:post (behavior ()
(let ((gp-0 #t))
(vector-v++!
(-> self root-override2 transv)
(compute-acc-due-to-gravity (-> self root-override2) (new-stack-vector0) 0.0)
)
(vector-v++! (-> self root transv) (compute-acc-due-to-gravity (-> self root) (new-stack-vector0) 0.0))
(when (-> self entity)
(when (get-simple-travel-vector
(-> self entity)
(-> self root-override2 transv)
(-> self root-override2 trans)
(-> self root-override2 transv)
(* 1.5 (-> self root-override2 root-prim prim-core world-sphere w))
(-> self root transv)
(-> self root trans)
(-> self root transv)
(* 1.5 (-> self root root-prim prim-core world-sphere w))
0.8
)
(let ((s5-1 (new 'stack-no-clear 'vector))
(f30-0 (-> self root-override2 transv y))
(f30-0 (-> self root transv y))
)
(project-point-to-nav-mesh
(-> self entity)
s5-1
(-> self root-override2 trans)
(the-as nav-poly #f)
40960000.0
)
(when (>= (vector-vector-xz-distance s5-1 (-> self root-override2 trans)) 204.8)
(vector-! (-> self root-override2 transv) s5-1 (-> self root-override2 trans))
(vector-normalize! (-> self root-override2 transv) 40960.0)
(set! (-> self root-override2 transv y)
(if (< 0.0 (-> self root-override2 transv y))
(+ f30-0 (* 4.0 (-> self clock seconds-per-frame) (-> self root-override2 transv y)))
f30-0
)
(project-point-to-nav-mesh (-> self entity) s5-1 (-> self root trans) (the-as nav-poly #f) 40960000.0)
(when (>= (vector-vector-xz-distance s5-1 (-> self root trans)) 204.8)
(vector-! (-> self root transv) s5-1 (-> self root trans))
(vector-normalize! (-> self root transv) 40960.0)
(set! (-> self root transv y) (if (< 0.0 (-> self root transv y))
(+ f30-0 (* 4.0 (-> self clock seconds-per-frame) (-> self root transv y)))
f30-0
)
)
(set! gp-0 #f)
)
@@ -1835,7 +1807,7 @@ This commonly includes things such as:
)
(cond
(gp-0
(let ((v1-31 (-> self root-override2))
(let ((v1-31 (-> self root))
(a2-3 (new 'stack-no-clear 'collide-query))
)
(set! (-> a2-3 collide-with) (-> v1-31 root-prim prim-core collide-with))
@@ -1847,11 +1819,11 @@ This commonly includes things such as:
)
)
(else
(integrate-no-collide! (-> self root-override2) (-> self root-override2 transv))
(integrate-no-collide! (-> self root) (-> self root transv))
)
)
)
(let* ((gp-1 (-> self root-override2))
(let* ((gp-1 (-> self root))
(s5-2 (-> gp-1 status))
)
(cond
@@ -1862,7 +1834,7 @@ This commonly includes things such as:
(set! (-> self roty-speed)
(fmin
131072.0
(+ (-> self roty-speed) (lerp-scale 0.0 131072.0 (-> self root-override2 ground-impact-vel) 0.0 122880.0))
(+ (-> self roty-speed) (lerp-scale 0.0 131072.0 (-> self root ground-impact-vel) 0.0 122880.0))
)
)
(if (or (and (logtest? s5-2 (collide-status on-surface)) (< (vector-length (-> gp-1 transv)) 1228.8))
@@ -1875,7 +1847,7 @@ This commonly includes things such as:
(sound-play-by-name
(static-sound-name "gem-bounce")
(new-sound-id)
(the int (* 1024.0 (lerp-scale 0.5 1.0 (-> self root-override2 ground-impact-vel) 0.0 40960.0)))
(the int (* 1024.0 (lerp-scale 0.5 1.0 (-> self root ground-impact-vel) 0.0 40960.0)))
0
0
(sound-group sfx)
@@ -1915,14 +1887,10 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-14 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-14 prim-core collide-with))
)
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj roty-speed) 40049.777)
(quaternion-rotate-y!
(-> obj root-override2 quat)
(-> obj root-override2 quat)
(rand-vu-float-range 0.0 65536.0)
)
(quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (rand-vu-float-range 0.0 65536.0))
(logclear! (-> obj mask) (process-mask actor-pause))
(set! (-> obj actor-pause) #f)
(set! (-> obj notify) (the-as handle #f))
@@ -1941,7 +1909,7 @@ This commonly includes things such as:
(the-as skeleton-group (art-group-get-by-name *level* "skel-gem" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set-vector! (-> obj root-override2 scale) 1.5 1.5 1.5 1.0)
(set-vector! (-> obj root scale) 1.5 1.5 1.5 1.0)
(if (-> obj entity)
(nav-mesh-connect-from-ent obj)
)
@@ -2014,7 +1982,7 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-11 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-11 prim-core collide-with))
)
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
(logior! (-> obj mask) (process-mask actor-pause))
(set! (-> obj actor-pause) #t)
@@ -2100,12 +2068,12 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-11 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-11 prim-core collide-with))
)
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
(logior! (-> obj mask) (process-mask actor-pause))
(set! (-> obj actor-pause) #t)
(set! (-> obj notify) (the-as handle #f))
(set! (-> obj root-override2 pause-adjust-distance) 204800.0)
(set! (-> obj root pause-adjust-distance) 204800.0)
(set! (-> obj fact) (new 'process 'fact-info obj (pickup-type trick-point) 100.0))
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 94) obj))
(set! (-> obj collect-effect) (-> *part-group-id-table* 95))
@@ -2123,7 +2091,7 @@ This commonly includes things such as:
(initialize-allocations obj)
(process-drawable-from-entity! obj (-> obj entity))
(initialize-options obj 0 1024.0 (the-as fact-info #f))
(update-transforms (-> obj root-override2))
(update-transforms (-> obj root))
(go-to-initial-state obj)
(none)
)
@@ -2161,13 +2129,9 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-13 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-13 prim-core collide-with))
)
(set! (-> obj root-override2) s5-0)
)
(quaternion-rotate-y!
(-> obj root-override2 quat)
(-> obj root-override2 quat)
(rand-vu-float-range 0.0 65536.0)
(set! (-> obj root) s5-0)
)
(quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (rand-vu-float-range 0.0 65536.0))
(set! (-> obj fact) (new 'process 'fact-info obj (-> obj pickup-type) (-> obj pickup-amount)))
(case (-> obj pickup-type)
(((pickup-type ammo-yellow))
@@ -2197,7 +2161,7 @@ This commonly includes things such as:
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-yellow" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set-vector! (-> obj root-override2 scale) 2.5 2.5 2.5 1.0)
(set-vector! (-> obj root scale) 2.5 2.5 2.5 1.0)
(set! (-> obj ammo-effect) (-> *part-group-id-table* 108))
)
(((pickup-type ammo-red))
@@ -2206,7 +2170,7 @@ This commonly includes things such as:
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-red" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set-vector! (-> obj root-override2 scale) 4.0 4.0 4.0 1.0)
(set-vector! (-> obj root scale) 4.0 4.0 4.0 1.0)
(set! (-> obj ammo-effect) (-> *part-group-id-table* 102))
)
(((pickup-type ammo-blue))
@@ -2215,7 +2179,7 @@ This commonly includes things such as:
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-blue" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set-vector! (-> obj root-override2 scale) 4.0 4.0 4.0 1.0)
(set-vector! (-> obj root scale) 4.0 4.0 4.0 1.0)
(set! (-> obj ammo-effect) (-> *part-group-id-table* 98))
)
(((pickup-type ammo-dark))
@@ -2224,7 +2188,7 @@ This commonly includes things such as:
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-dark" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set-vector! (-> obj root-override2 scale) 3.0 3.0 3.0 1.0)
(set-vector! (-> obj root scale) 3.0 3.0 3.0 1.0)
(set! (-> obj ammo-effect) (-> *part-group-id-table* 83))
)
(((pickup-type gun-yellow))
@@ -2233,11 +2197,11 @@ This commonly includes things such as:
(the-as skeleton-group (art-group-get-by-name *level* "skel-gun-yellow-up" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set-vector! (-> obj root-override2 scale) 3.0 3.0 3.0 1.0)
(set-vector! (-> obj root scale) 3.0 3.0 3.0 1.0)
(logclear! (-> obj flags) (collectable-flag fadeout))
(let ((v1-34 (-> obj node-list data)))
(set! (-> v1-34 0 param0) (the-as (function cspace transformq none) cspace<-transformq+trans!))
(set! (-> v1-34 0 param1) (the-as basic (-> obj root-override2 trans)))
(set! (-> v1-34 0 param1) (the-as basic (-> obj root trans)))
(set! (-> v1-34 0 param2) (the-as basic (-> obj extra-trans)))
)
(set-vector! (-> obj extra-trans) 0.0 1638.4 0.0 1.0)
@@ -2248,7 +2212,7 @@ This commonly includes things such as:
(the-as skeleton-group (art-group-get-by-name *level* "skel-gun-dark-up" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(set-vector! (-> obj root-override2 scale) 3.0 3.0 3.0 1.0)
(set-vector! (-> obj root scale) 3.0 3.0 3.0 1.0)
(logclear! (-> obj flags) (collectable-flag fadeout))
)
(((pickup-type board))
@@ -2262,10 +2226,10 @@ This commonly includes things such as:
(let ((v1-48 (-> obj skel root-channel 0)))
(set! (-> v1-48 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3)))
)
(set-vector! (-> obj root-override2 scale) 2.0 2.0 2.0 1.0)
(set-vector! (-> obj root scale) 2.0 2.0 2.0 1.0)
(let ((v1-52 (-> obj node-list data)))
(set! (-> v1-52 0 param0) (the-as (function cspace transformq none) cspace<-transformq+trans!))
(set! (-> v1-52 0 param1) (the-as basic (-> obj root-override2 trans)))
(set! (-> v1-52 0 param1) (the-as basic (-> obj root trans)))
(set! (-> v1-52 0 param2) (the-as basic (-> obj extra-trans)))
)
(set-vector! (-> obj extra-trans) 0.0 2048.0 0.0 1.0)
@@ -2291,12 +2255,12 @@ This commonly includes things such as:
(set! (-> self fact pickup-amount) f30-0)
)
(set! (-> self fact options) (-> arg2 options))
(set! (-> self root-override2 trans quad) (-> arg0 quad))
(set! (-> self root-override2 transv quad) (-> arg1 quad))
(set! (-> self root trans quad) (-> arg0 quad))
(set! (-> self root transv quad) (-> arg1 quad))
(initialize-effects self (-> self fact pickup-type))
(set! (-> self notify) (the-as handle #f))
(initialize-options self 4500 1024.0 arg2)
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
(set! (-> self event-hook) (-> (method-of-object self wait) event))
(go-to-initial-state self)
(none)
@@ -2306,21 +2270,17 @@ This commonly includes things such as:
(set! (-> obj pickup-amount) arg2)
(set! (-> obj pickup-type) arg1)
(initialize-allocations obj)
(set! (-> obj root-override2 trans quad) (-> arg0 extra trans quad))
(set! (-> obj root trans quad) (-> arg0 extra trans quad))
(initialize-effects obj (-> obj fact pickup-type))
(initialize-options obj 0 1024.0 (the-as fact-info #f))
(update-transforms (-> obj root-override2))
(update-transforms (-> obj root))
(go-to-initial-state obj)
(none)
)
(defmethod common-post ammo-collectable ((obj ammo-collectable))
(with-pp
(quaternion-rotate-y!
(-> obj root-override2 quat)
(-> obj root-override2 quat)
(* 40049.777 (-> pp clock seconds-per-frame))
)
(quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (-> pp clock seconds-per-frame)))
((method-of-type collectable common-post) obj)
0
(none)
@@ -2374,8 +2334,8 @@ This commonly includes things such as:
(set! (-> self fact pickup-amount) f30-0)
)
(set! (-> self fact options) (-> arg2 options))
(set! (-> self root-override2 trans quad) (-> arg0 quad))
(set! (-> self root-override2 transv quad) (-> arg1 quad))
(set! (-> self root trans quad) (-> arg0 quad))
(set! (-> self root transv quad) (-> arg1 quad))
(initialize-effects self (-> self fact pickup-type))
(set! (-> self notify) (the-as handle #f))
(initialize-options
@@ -2388,7 +2348,7 @@ This commonly includes things such as:
(the-as fact-info #f)
)
(set! (-> self collect-timeout) (the-as seconds 300))
(update-transforms (-> self root-override2))
(update-transforms (-> self root))
(set! (-> self event-hook) (-> (method-of-object self wait) event))
(go-to-initial-state self)
(none)
+52 -69
View File
@@ -32,7 +32,7 @@
)
(deftype crate (process-focusable)
((root-override2 collide-shape-moving :offset 128)
((root collide-shape-moving :override)
(smush smush-control :inline :offset-assert 208)
(base vector :inline :offset-assert 240)
(look symbol :offset-assert 256)
@@ -476,7 +476,7 @@
(go-virtual die #f (the-as int s5-0))
)
(else
(when (and (!= s4-0 (-> self incoming-attack-id)) (= (-> self root-override2 trans y) (-> self base y)))
(when (and (!= s4-0 (-> self incoming-attack-id)) (= (-> self root trans y) (-> self base y)))
(if (not (and (demo?) (= (-> *setting-control* user-current language) (language-enum japanese))))
(talker-spawn-func (-> *talker-speech* 313) *entity-pool* (target-pos 0) (the-as region #f))
)
@@ -505,7 +505,7 @@
(go-virtual die #f (the-as int s5-0))
)
(else
(when (and (!= s4-0 (-> self incoming-attack-id)) (= (-> self root-override2 trans y) (-> self base y)))
(when (and (!= s4-0 (-> self incoming-attack-id)) (= (-> self root trans y) (-> self base y)))
(talker-spawn-func (-> *talker-speech* 318) *entity-pool* (target-pos 0) (the-as region #f))
(set! (-> self incoming-attack-id) s4-0)
(if (not (!= (-> self smush amp) 0.0))
@@ -581,7 +581,7 @@
)
)
(('bonk)
(when (= (-> self root-override2 trans y) (-> self base y))
(when (= (-> self root trans y) (-> self base y))
(activate! (-> self smush) -0.1 75 150 1.0 1.0 (-> self clock))
(go-virtual bounce-on)
)
@@ -601,7 +601,7 @@
(or (= v1-131 'notice-blue) (= v1-131 'die))
)
)
(!= (-> self root-override2 trans y) (-> self base y))
(!= (-> self root trans y) (-> self base y))
)
)
(go-virtual notice-blue (process->handle arg0))
@@ -609,7 +609,7 @@
)
(('fall)
(when (not (and (-> self next-state) (= (-> self next-state name) 'fall)))
(set! (-> self root-override2 transv quad) (-> (the-as vector (-> arg3 param 0)) quad))
(set! (-> self root transv quad) (-> (the-as vector (-> arg3 param 0)) quad))
(go-virtual fall)
)
)
@@ -621,10 +621,10 @@
:code (behavior ()
(process-entity-status! self (entity-perm-status dead) #f)
(process-entity-status! self (entity-perm-status subtask-complete) #f)
(vector+! (-> self draw origin) (-> self root-override2 trans) (-> self draw bounds))
(vector+! (-> self draw origin) (-> self root trans) (-> self draw bounds))
(set! (-> self draw origin w) (-> self draw bounds w))
(logior! (-> self draw status) (draw-control-status no-draw))
(let ((v1-9 (-> (the-as collide-shape-moving (-> self root-override2)) root-prim)))
(let ((v1-9 (-> (the-as collide-shape-moving (-> self root)) root-prim)))
(set! (-> v1-9 prim-core collide-as) (collide-spec))
(set! (-> v1-9 prim-core collide-with) (collide-spec))
)
@@ -632,24 +632,19 @@
(ja-post)
(while (or (crate-method-40 self)
(and (sphere-in-view-frustum? (the-as sphere (-> self draw origin)))
(< (vector-vector-distance (camera-pos) (-> self root-override2 trans)) 327680.0)
(< (vector-vector-distance (camera-pos) (-> self root trans)) 327680.0)
)
(and *target*
(and (>= 40960.0 (vector-vector-distance (-> self root-override2 trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
(and *target* (and (>= 40960.0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
)
)
(suspend)
)
(logclear! (-> self draw status) (draw-control-status no-draw))
(let ((v1-29 (-> (the-as collide-shape-moving (-> self root-override2)) root-prim)))
(set! (-> v1-29 prim-core collide-as)
(-> (the-as collide-shape-moving (-> self root-override2)) backup-collide-as)
)
(set! (-> v1-29 prim-core collide-with)
(-> (the-as collide-shape-moving (-> self root-override2)) backup-collide-with)
)
(let ((v1-29 (-> (the-as collide-shape-moving (-> self root)) root-prim)))
(set! (-> v1-29 prim-core collide-as) (-> (the-as collide-shape-moving (-> self root)) backup-collide-as))
(set! (-> v1-29 prim-core collide-with) (-> (the-as collide-shape-moving (-> self root)) backup-collide-with))
)
(go-virtual idle)
(none)
@@ -661,7 +656,7 @@
:event crate-standard-event-handler
:code (behavior ()
(suspend)
(update-transforms (the-as collide-shape-moving (-> self root-override2)))
(update-transforms (the-as collide-shape-moving (-> self root)))
(carry-info-method-9 (-> self carry))
(logior! (-> self mask) (process-mask sleep))
(until #f
@@ -681,7 +676,7 @@
(-> self carry)
)
(('drop)
(set! (-> self root-override2 transv quad) (-> (the-as vector (-> event param 1)) quad))
(set! (-> self root transv quad) (-> (the-as vector (-> event param 1)) quad))
(go-virtual fall)
)
)
@@ -691,7 +686,7 @@
(ja-post)
(carry-info-method-9 (-> self carry))
(carry-info-method-13 (-> self carry))
(update-transforms (the-as collide-shape-moving (-> self root-override2)))
(update-transforms (the-as collide-shape-moving (-> self root)))
(none)
)
)
@@ -716,32 +711,28 @@
(-> self carry)
)
)
(set! (-> self root-override2 status) (collide-status))
(set! (-> self root-override2 root-prim local-sphere w) (-> self carry carry-radius))
(set! (-> self root-override2 root-prim prim-core collide-with)
(set! (-> self root status) (collide-status))
(set! (-> self root root-prim local-sphere w) (-> self carry carry-radius))
(set! (-> self root root-prim prim-core collide-with)
(logior (collide-spec backgnd crate obstacle hit-by-others-list pusher)
(-> self root-override2 root-prim prim-core collide-with)
(-> self root root-prim prim-core collide-with)
)
)
(none)
)
:trans (behavior ()
(when (and (logtest? (-> (the-as collide-shape-moving (-> self root-override2)) status) (collide-status on-surface))
(< 0.8 (-> (the-as collide-shape-moving (-> self root-override2)) surface-angle))
(when (and (logtest? (-> (the-as collide-shape-moving (-> self root)) status) (collide-status on-surface))
(< 0.8 (-> (the-as collide-shape-moving (-> self root)) surface-angle))
)
(vector-reset! (-> self root-override2 transv))
(when (= (vector-length (-> self root-override2 transv)) 0.0)
(set! (-> (the-as collide-shape-moving (-> self root-override2)) root-prim local-sphere w)
(vector-reset! (-> self root transv))
(when (= (vector-length (-> self root transv)) 0.0)
(set! (-> (the-as collide-shape-moving (-> self root)) root-prim local-sphere w)
(-> self carry backup-radius)
)
(set! (-> self base quad) (-> self root-override2 trans quad))
(let ((v1-16 (-> (the-as collide-shape-moving (-> self root-override2)) root-prim)))
(set! (-> v1-16 prim-core collide-as)
(-> (the-as collide-shape-moving (-> self root-override2)) backup-collide-as)
)
(set! (-> v1-16 prim-core collide-with)
(-> (the-as collide-shape-moving (-> self root-override2)) backup-collide-with)
)
(set! (-> self base quad) (-> self root trans quad))
(let ((v1-16 (-> (the-as collide-shape-moving (-> self root)) root-prim)))
(set! (-> v1-16 prim-core collide-as) (-> (the-as collide-shape-moving (-> self root)) backup-collide-as))
(set! (-> v1-16 prim-core collide-with) (-> (the-as collide-shape-moving (-> self root)) backup-collide-with))
)
(go-virtual idle)
)
@@ -751,18 +742,13 @@
:code (the-as (function none :behavior crate) sleep-code)
:post (behavior ()
(vector-v++!
(-> self root-override2 transv)
(compute-acc-due-to-gravity (the-as collide-shape-moving (-> self root-override2)) (new-stack-vector0) 0.0)
(-> self root transv)
(compute-acc-due-to-gravity (the-as collide-shape-moving (-> self root)) (new-stack-vector0) 0.0)
)
(if (< (-> (the-as collide-shape-moving (-> self root-override2)) dynam gravity-max)
(vector-length (-> self root-override2 transv))
)
(vector-normalize!
(-> self root-override2 transv)
(-> (the-as collide-shape-moving (-> self root-override2)) dynam gravity-max)
)
(if (< (-> (the-as collide-shape-moving (-> self root)) dynam gravity-max) (vector-length (-> self root transv)))
(vector-normalize! (-> self root transv) (-> (the-as collide-shape-moving (-> self root)) dynam gravity-max))
)
(let ((gp-1 (-> self root-override2)))
(let ((gp-1 (-> self root)))
(let ((a2-1 (new 'stack-no-clear 'collide-query)))
(set! (-> gp-1 root-prim type) collide-shape-prim-sphere)
(set! (-> a2-1 collide-with) (collide-spec backgnd crate obstacle pusher))
@@ -826,7 +812,7 @@
)
)
(when v1-4
(let* ((gp-2 (-> (the-as collide-shape-moving (-> self root-override2)) root-prim prim-core))
(let* ((gp-2 (-> (the-as collide-shape-moving (-> self root)) root-prim prim-core))
(a1-3 (-> (the-as collide-shape-moving v1-4) root-prim prim-core))
(f30-0 (vector-vector-distance (the-as vector gp-2) (the-as vector a1-3)))
)
@@ -903,7 +889,7 @@
)
:code (behavior ((arg0 symbol) (arg1 int))
(logior! (-> self focus-status) (focus-status dead))
(let ((v1-3 (-> (the-as collide-shape (-> self root-override2)) root-prim)))
(let ((v1-3 (-> (the-as collide-shape (-> self root)) root-prim)))
(set! (-> v1-3 prim-core collide-as) (collide-spec))
(set! (-> v1-3 prim-core collide-with) (collide-spec))
)
@@ -941,16 +927,13 @@
)
(case (-> self defense)
(('darkeco)
(let ((f0-0
(lerp-scale 1.0 0.0 (vector-vector-distance (-> self root-override2 trans) (target-pos 0)) 8192.0 40960.0)
)
)
(let ((f0-0 (lerp-scale 1.0 0.0 (vector-vector-distance (-> self root trans) (target-pos 0)) 8192.0 40960.0)))
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 f0-0)) (seconds 0.3))
)
(process-spawn
touch-tracker
:init touch-tracker-init
(-> self root-override2 trans)
(-> self root trans)
(-> *CRATE-bank* DARKECO_EXPLODE_RADIUS)
30
:to self
@@ -974,7 +957,7 @@
(t2-4 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> self root-override2 trans quad))
(set! (-> t3-0 trans quad) (-> self root trans quad))
((the-as (function object object object object object object object object none) t9-18)
a0-34
a1-21
@@ -1006,7 +989,7 @@
(t2-5 #f)
(t3-1 *launch-matrix*)
)
(set! (-> t3-1 trans quad) (-> self root-override2 trans quad))
(set! (-> t3-1 trans quad) (-> self root trans quad))
((the-as (function object object object object object object object object none) t9-21)
a0-39
a1-27
@@ -1038,7 +1021,7 @@
(t2-6 #f)
(t3-2 *launch-matrix*)
)
(set! (-> t3-2 trans quad) (-> self root-override2 trans quad))
(set! (-> t3-2 trans quad) (-> self root trans quad))
((the-as (function object object object object object object object object none) t9-24)
a0-42
a1-32
@@ -1145,7 +1128,7 @@
)
)
)
(let ((v1-20 (-> (the-as collide-shape-moving (-> self root-override2)) root-prim)))
(let ((v1-20 (-> (the-as collide-shape-moving (-> self root)) root-prim)))
(set! (-> v1-20 prim-core collide-as) (collide-spec))
(set! (-> v1-20 prim-core collide-with) (collide-spec))
)
@@ -1173,7 +1156,7 @@
(defbehavior crate-init-by-other crate ((arg0 entity) (arg1 vector) (arg2 symbol) (arg3 fact-info-crate))
(crate-init! self (the-as entity-actor arg0))
(set! (-> self root-override2 trans quad) (-> arg1 quad))
(set! (-> self root trans quad) (-> arg1 quad))
(set! (-> self look) arg2)
(set! (-> self defense) arg2)
(skel-init! self)
@@ -1246,7 +1229,7 @@ This commonly includes things such as:
knocked
)
)
(set! (-> obj root-override2) s4-0)
(set! (-> obj root) s4-0)
)
(set! (-> obj fact)
(new 'process 'fact-info-crate obj (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc))
@@ -1295,7 +1278,7 @@ This commonly includes things such as:
"Initialize the [[crate]]'s skeleton and other parameters based on the crate type."
(case (-> obj look)
(('iron)
(set! (-> (the-as collide-shape-moving (-> obj root-override2)) penetrated-by)
(set! (-> (the-as collide-shape-moving (-> obj root)) penetrated-by)
(penetrate flop uppercut tube vehicle flut-attack board dark-skin explode)
)
(initialize-skeleton
@@ -1305,7 +1288,7 @@ This commonly includes things such as:
)
)
(('steel)
(set! (-> (the-as collide-shape-moving (-> obj root-override2)) penetrated-by)
(set! (-> (the-as collide-shape-moving (-> obj root)) penetrated-by)
(penetrate tube vehicle flut-attack board dark-skin explode)
)
(initialize-skeleton
@@ -1343,7 +1326,7 @@ This commonly includes things such as:
)
)
)
(set! (-> obj base quad) (-> obj root-override2 trans quad))
(set! (-> obj base quad) (-> obj root trans quad))
(crate-post)
(nav-mesh-connect-from-ent obj)
(none)
@@ -1384,9 +1367,9 @@ This commonly includes things such as:
(defmethod smush-update! crate ((obj crate))
(let ((f0-0 (update! (-> obj smush))))
(set! (-> obj root-override2 scale x) (+ 1.0 (* -0.5 f0-0)))
(set! (-> obj root-override2 scale y) (+ 1.0 f0-0))
(set! (-> obj root-override2 scale z) (+ 1.0 (* -0.5 f0-0)))
(set! (-> obj root scale x) (+ 1.0 (* -0.5 f0-0)))
(set! (-> obj root scale y) (+ 1.0 f0-0))
(set! (-> obj root scale z) (+ 1.0 (* -0.5 f0-0)))
)
0
(none)
+5 -5
View File
@@ -515,7 +515,7 @@ do so.
(let ((f0-3 (sqrtf (sin-rad (* 3.1415925 (-> self path-pos))))))
(update-vol! (-> self sound) f0-3)
)
(update-trans! (-> self sound) (-> self root-override trans))
(update-trans! (-> self sound) (-> self root trans))
(update! (-> self sound))
)
(plat-post)
@@ -635,7 +635,7 @@ do so.
(set-setting! 'board #f 0.0 0)
(let ((gp-0 (-> self on-activate)))
(if gp-0
(script-eval gp-0 :key (* (the int (-> self move-pos 0)) 8) :vector (-> self root-override trans))
(script-eval gp-0 :key (* (the int (-> self move-pos 0)) 8) :vector (-> self root trans))
)
)
(set! (-> self path-pos) 0.0)
@@ -726,7 +726,7 @@ do so.
)
(let ((gp-0 (-> self on-deactivate)))
(if gp-0
(script-eval gp-0 :key (* (the int (-> self move-pos 1)) 8) :vector (-> self root-override trans))
(script-eval gp-0 :key (* (the int (-> self move-pos 1)) 8) :vector (-> self root trans))
)
)
(none)
@@ -820,7 +820,7 @@ This commonly includes things such as:
(initialize-skeleton obj (the-as skeleton-group (get-art-group obj)) (the-as pair 0))
(stop-bouncing! obj)
(set! (-> obj elevator-status) (elevator-status))
(update-transforms (-> obj root-override))
(update-transforms (-> obj root))
(base-plat-method-32 obj)
(init-defaults! obj)
(set! (-> obj on-activate) (res-lump-struct (-> obj entity) 'on-activate pair))
@@ -870,7 +870,7 @@ This commonly includes things such as:
(set! (-> obj move-pos 0) sv-32)
(set! (-> obj move-pos 1) sv-32)
(get-point-in-path! sv-36 (-> obj basetrans) sv-32 'interp)
(set! (-> obj root-override pause-adjust-distance)
(set! (-> obj root pause-adjust-distance)
(+ 122880.0 (-> obj params xz-threshold) (total-distance (-> obj path)))
)
(set-ambient-sound! obj)
@@ -23,7 +23,7 @@
;; DECOMP BEGINS
(deftype manipy (process-drawable)
((root-override collide-shape :offset 128)
((root collide-shape :override)
(new-trans-hook (function none) :offset-assert 200)
(cur-trans-hook (function none) :offset-assert 204)
(cur-event-hook (function none) :offset-assert 208)
@@ -105,23 +105,23 @@
(deftype lightning-tracker (process)
((ppointer-override (pointer lightning-tracker) :offset 28)
(root trsqv :offset-assert 128)
(lightning lightning-control :offset-assert 132)
(callback (function lightning-tracker none) :offset-assert 136)
(duration uint64 :offset-assert 144)
(start-time time-frame :offset-assert 152)
(offset0 vector :inline :offset-assert 160)
(offset1 vector :inline :offset-assert 176)
(target0 handle :offset-assert 192)
(target1 handle :offset-assert 200)
(target-joint0 int32 :offset-assert 208)
(target-joint1 int32 :offset-assert 212)
(sound sound-id :offset-assert 216)
(userdata uint64 :offset-assert 224)
(user-time time-frame 2 :offset-assert 232)
(user-vector vector :inline :offset-assert 256)
(user-handle handle 2 :offset 288)
((ppointer (pointer lightning-tracker) :override)
(root trsqv :offset-assert 128)
(lightning lightning-control :offset-assert 132)
(callback (function lightning-tracker none) :offset-assert 136)
(duration uint64 :offset-assert 144)
(start-time time-frame :offset-assert 152)
(offset0 vector :inline :offset-assert 160)
(offset1 vector :inline :offset-assert 176)
(target0 handle :offset-assert 192)
(target1 handle :offset-assert 200)
(target-joint0 int32 :offset-assert 208)
(target-joint1 int32 :offset-assert 212)
(sound sound-id :offset-assert 216)
(userdata uint64 :offset-assert 224)
(user-time time-frame 2 :offset-assert 232)
(user-vector vector :inline :offset-assert 256)
(user-handle handle 2 :offset 288)
)
:heap-base #xb0
:method-count-assert 17
@@ -136,13 +136,13 @@
(deftype touch-tracker (process-drawable)
((root-override collide-shape :offset 128)
(duration time-frame :offset-assert 200)
(target handle :offset-assert 208)
(event symbol :offset-assert 216)
(run-function (function object) :offset-assert 220)
(callback (function touch-tracker none) :offset-assert 224)
(event-mode basic :offset-assert 228)
((root collide-shape :override)
(duration time-frame :offset-assert 200)
(target handle :offset-assert 208)
(event symbol :offset-assert 216)
(run-function (function object) :offset-assert 220)
(callback (function touch-tracker none) :offset-assert 224)
(event-mode basic :offset-assert 228)
)
:heap-base #x70
:method-count-assert 21
@@ -155,13 +155,13 @@
(deftype swingpole (process-drawable)
((root-override collide-shape :offset 128)
(edge-length meters :offset-assert 200)
(path-pos float :offset-assert 204)
(joint-track int32 :offset-assert 208)
(speed meters :offset-assert 212)
(dir vector :inline :offset-assert 224)
(sync sync-eased :inline :offset-assert 240)
((root collide-shape :override)
(edge-length meters :offset-assert 200)
(path-pos float :offset-assert 204)
(joint-track int32 :offset-assert 208)
(speed meters :offset-assert 212)
(dir vector :inline :offset-assert 224)
(sync sync-eased :inline :offset-assert 240)
)
:heap-base #xa0
:method-count-assert 23
@@ -219,7 +219,7 @@
(deftype explosion (process-drawable)
((root-override collide-shape :offset 128)
((root collide-shape :override)
(start-time time-frame :offset-assert 200)
(duration uint32 :offset-assert 208)
(linger-duration uint32 :offset-assert 212)
+76 -83
View File
@@ -148,10 +148,8 @@
(set! (-> obj path-pos) (get-norm! (-> obj sync) 0))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(get-point-at-percent-along-path! (-> obj path) s5-0 (-> obj path-pos) 'interp)
(set! (-> obj speed)
(* (vector-vector-distance s5-0 (-> obj root-override trans)) (-> pp clock frames-per-second))
)
(move-to-point! (-> obj root-override) s5-0)
(set! (-> obj speed) (* (vector-vector-distance s5-0 (-> obj root trans)) (-> pp clock frames-per-second)))
(move-to-point! (-> obj root) s5-0)
)
)
((>= (-> obj joint-track) 0)
@@ -162,12 +160,12 @@
(vector<-cspace! s5-1 s4-0)
(vector-normalize-copy! (-> obj dir) (the-as vector (-> s4-0 bone transform)) 1.0)
)
(move-to-point! (-> obj root-override) s5-1)
(move-to-point! (-> obj root) s5-1)
)
)
)
(when (nonzero? (-> obj sound))
(set! (-> obj sound trans quad) (-> obj root-override trans quad))
(set! (-> obj sound trans quad) (-> obj root trans quad))
(let ((f30-0 (lerp-scale -0.1 -0.05 (-> obj speed) 8192.0 20480.0))
(f0-6 (lerp-scale 0.7 1.0 (-> obj speed) 8192.0 20480.0))
)
@@ -198,7 +196,7 @@
(if (nonzero? (-> self draw))
(ja-post)
)
(update-transforms (-> self root-override))
(update-transforms (-> self root))
(cond
((or (nonzero? (-> self path)) (>= (-> self joint-track) 0))
(until #f
@@ -267,12 +265,12 @@ This commonly includes things such as:
(set! (-> s4-0 backup-collide-as) (-> v1-8 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-8 prim-core collide-with))
)
(set! (-> obj root-override) s4-0)
(set! (-> obj root) s4-0)
)
(set! (-> obj root-override trans quad) (-> arg0 extra trans quad))
(quaternion-copy! (-> obj root-override quat) (-> arg0 quat))
(vector-identity! (-> obj root-override scale))
(vector-y-quaternion! (-> obj dir) (-> obj root-override quat))
(set! (-> obj root trans quad) (-> arg0 extra trans quad))
(quaternion-copy! (-> obj root quat) (-> arg0 quat))
(vector-identity! (-> obj root scale))
(vector-y-quaternion! (-> obj dir) (-> obj root quat))
(set! (-> obj joint-track) -1)
(let ((a1-8 (res-lump-struct (-> obj entity) 'art-name structure)))
(if a1-8
@@ -305,7 +303,7 @@ This commonly includes things such as:
(set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0))
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
)
(set! (-> obj sound) (new 'process 'ambient-sound (-> obj entity) (-> obj root-override trans)))
(set! (-> obj sound) (new 'process 'ambient-sound (-> obj entity) (-> obj root trans)))
(go (method-of-object obj idle))
(none)
)
@@ -325,11 +323,11 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-7 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-7 prim-core collide-with))
)
(set! (-> self root-override) s5-0)
(set! (-> self root) s5-0)
)
(set! (-> self root-override trans quad) (-> (the-as swingpole (-> self parent 0)) root-override trans quad))
(quaternion-identity! (-> self root-override quat))
(vector-identity! (-> self root-override scale))
(set! (-> self root trans quad) (-> (the-as swingpole (-> self parent 0)) root trans quad))
(quaternion-identity! (-> self root quat))
(vector-identity! (-> self root scale))
(set! (-> self joint-track) arg0)
(set-vector! (-> self dir) 0.0 0.0 1.0 1.0)
(set! (-> self edge-length) 8192.0)
@@ -635,11 +633,11 @@ This commonly includes things such as:
)
((= v1-0 'trans)
(cond
((type? (-> self root-override) collide-shape)
(the-as object (move-to-point! (-> self root-override) (the-as vector (-> event param 0))))
((type? (-> self root) collide-shape)
(the-as object (move-to-point! (-> self root) (the-as vector (-> event param 0))))
)
(else
(set! s4-0 (-> self root-override trans))
(set! s4-0 (-> self root trans))
(set! (-> (the-as vector s4-0) quad) (-> (the-as vector (-> event param 0)) quad))
s4-0
)
@@ -648,11 +646,11 @@ This commonly includes things such as:
((= v1-0 'rot)
(let ((s5-3 (new 'stack-no-clear 'matrix)))
(matrix-rotate-y! s5-3 (the-as float (-> event param 0)))
(matrix->quaternion (-> self root-override quat) s5-3)
(matrix->quaternion (-> self root quat) s5-3)
)
)
((= v1-0 'rot-quat)
(quaternion-copy! (-> self root-override quat) (the-as quaternion (-> event param 0)))
(quaternion-copy! (-> self root quat) (the-as quaternion (-> event param 0)))
)
((= v1-0 'clone-copy-trans)
(set! s4-0 (-> event param 0))
@@ -816,14 +814,14 @@ This commonly includes things such as:
(let ((v1-20 (handle->process (-> self cur-grab-handle))))
(when v1-20
(let ((gp-1 (-> (the-as process-drawable v1-20) root trans)))
(if (type? (-> self root-override) collide-shape)
(if (type? (-> self root) collide-shape)
(move-by-vector!
(the-as collide-shape (-> self root-override))
(the-as collide-shape (-> self root))
(vector-! (new 'stack-no-clear 'vector) gp-1 (-> self old-grab-pos))
)
(vector+!
(-> self root-override trans)
(-> self root-override trans)
(-> self root trans)
(-> self root trans)
(vector-! (new 'stack-no-clear 'vector) gp-1 (-> self old-grab-pos))
)
)
@@ -968,7 +966,7 @@ This commonly includes things such as:
(set! (-> s3-1 backup-collide-as) (-> v1-14 prim-core collide-as))
(set! (-> s3-1 backup-collide-with) (-> v1-14 prim-core collide-with))
)
(set! (-> self root-override) s3-1)
(set! (-> self root) s3-1)
)
)
(arg3
@@ -985,17 +983,17 @@ This commonly includes things such as:
(set! (-> s3-2 backup-collide-as) (-> v1-21 prim-core collide-as))
(set! (-> s3-2 backup-collide-with) (-> v1-21 prim-core collide-with))
)
(set! (-> self root-override) s3-2)
(set! (-> self root) s3-2)
)
)
(else
(set! (-> self root-override) (the-as collide-shape (new 'process 'trsqv)))
(set! (-> self root) (the-as collide-shape (new 'process 'trsqv)))
)
)
(set! (-> self root-override trans quad) (-> arg0 quad))
(set! (-> self root trans quad) (-> arg0 quad))
(initialize-skeleton self arg2 (the-as pair 0))
(if (type? (-> self root-override) collide-shape)
(update-transforms (the-as collide-shape (-> self root-override)))
(if (type? (-> self root) collide-shape)
(update-transforms (the-as collide-shape (-> self root)))
)
(set! (-> self shadow-backup) (-> self draw shadow))
(set! (-> self shadow-volume-joint) -1)
@@ -1318,7 +1316,7 @@ This commonly includes things such as:
)
)
)
((or (not a0-6) (zero? (-> (the-as process-focusable a0-6) root-override)))
((or (not a0-6) (zero? (-> (the-as process-focusable a0-6) root)))
(deactivate obj)
)
((= (-> obj target-joint0) 256)
@@ -1365,7 +1363,7 @@ This commonly includes things such as:
)
)
)
((or (not a0-22) (zero? (-> (the-as process-focusable a0-22) root-override)))
((or (not a0-22) (zero? (-> (the-as process-focusable a0-22) root)))
(deactivate obj)
)
((= (-> obj target-joint1) 256)
@@ -1911,7 +1909,7 @@ This commonly includes things such as:
)
(deftype launcher (process-drawable)
((root-override collide-shape :offset 128)
((root collide-shape :override)
(spring-height meters :offset-assert 200)
(camera state :offset-assert 204)
(active-distance float :offset-assert 208)
@@ -2360,18 +2358,17 @@ This commonly includes things such as:
(go-virtual deactivated)
)
(('trans)
(move-to-point! (-> self root-override) (the-as vector (-> event param 0)))
(the-as object (update-transforms (-> self root-override)))
(move-to-point! (-> self root) (the-as vector (-> event param 0)))
(the-as object (update-transforms (-> self root)))
)
)
)
)
:trans (behavior ()
(when (and *target* (and (>= (-> self active-distance)
(vector-vector-distance (-> self root-override trans) (-> *target* control trans))
)
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
(when (and *target*
(and (>= (-> self active-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
)
(cond
((send-event *target* 'query 'powerup (pickup-type eco-blue))
@@ -2385,10 +2382,9 @@ This commonly includes things such as:
)
)
)
(if (and (and *target*
(and (>= 32768.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
(if (and (and *target* (and (>= 32768.0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
)
(not (send-event *target* 'query 'powerup (pickup-type eco-blue)))
)
@@ -2412,8 +2408,8 @@ This commonly includes things such as:
(go-virtual deactivated)
)
((= event-type 'trans)
(move-to-point! (-> self root-override) (the-as vector (-> event param 0)))
(the-as object (update-transforms (-> self root-override)))
(move-to-point! (-> self root) (the-as vector (-> event param 0)))
(the-as object (update-transforms (-> self root)))
)
)
)
@@ -2431,20 +2427,19 @@ This commonly includes things such as:
(none)
)
:trans (behavior ()
(if (or (or (not *target*) (or (< (-> self active-distance)
(vector-vector-distance (-> self root-override trans) (-> *target* control trans))
)
(focus-test? *target* teleporting)
)
(if (or (or (not *target*)
(or (< (-> self active-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(focus-test? *target* teleporting)
)
)
(not (send-event *target* 'query 'powerup (pickup-type eco-blue)))
)
(go-virtual idle)
)
(spawn (-> self part) (-> self root-override trans))
(spawn (-> self part) (-> self root trans))
(sound-play "launch-idle" :id (-> self sound-id))
(if (and (and *target* (and (>= (+ 2867.2 (-> self root-override root-prim prim-core world-sphere w))
(vector-vector-distance (-> self root-override trans) (-> *target* control trans))
(if (and (and *target* (and (>= (+ 2867.2 (-> self root root-prim prim-core world-sphere w))
(vector-vector-distance (-> self root trans) (-> *target* control trans))
)
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
@@ -2489,10 +2484,10 @@ This commonly includes things such as:
(set! (-> s4-0 backup-collide-as) (-> v1-6 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-6 prim-core collide-with))
)
(set! (-> obj root-override) s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(update-transforms (-> obj root-override))
(update-transforms (-> obj root))
(set! (-> obj active-distance) 409600.0)
(set! (-> obj spring-height) (res-lump-float arg0 'spring-height :default 163840.0))
(let ((s4-1 (res-lump-value arg0 'mode uint128 :time -1000000000.0)))
@@ -2555,12 +2550,12 @@ This commonly includes things such as:
(set! (-> s2-0 backup-collide-as) (-> v1-7 prim-core collide-as))
(set! (-> s2-0 backup-collide-with) (-> v1-7 prim-core collide-with))
)
(set! (-> self root-override) s2-0)
(set! (-> self root) s2-0)
)
(set! (-> self root-override trans quad) (-> arg0 quad))
(set-vector! (-> self root-override scale) 1.0 1.0 1.0 1.0)
(set-vector! (-> self root-override quat) 0.0 0.0 0.0 1.0)
(update-transforms (-> self root-override))
(set! (-> self root trans quad) (-> arg0 quad))
(set-vector! (-> self root scale) 1.0 1.0 1.0 1.0)
(set-vector! (-> self root quat) 0.0 0.0 0.0 1.0)
(update-transforms (-> self root))
(set! (-> self spring-height) arg1)
(set! (-> self active-distance) arg3)
(let ((v1-18 (-> self level name)))
@@ -2694,9 +2689,7 @@ This commonly includes things such as:
)
)
(if a0-6
(set! (-> self root-override trans quad)
(-> (the-as collide-shape a0-6) root-prim prim-core world-sphere quad)
)
(set! (-> self root trans quad) (-> (the-as collide-shape a0-6) root-prim prim-core world-sphere quad))
)
)
)
@@ -2704,16 +2697,16 @@ This commonly includes things such as:
(if (-> self callback)
((-> self callback) self)
)
(update-transforms (-> self root-override))
(update-transforms (-> self root))
(let ((a1-3 (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> a1-3 options) (overlaps-others-options oo1))
(set! (-> a1-3 collide-with-filter) (the-as collide-spec -1))
(set! (-> a1-3 tlist) *touching-list*)
(find-overlapping-shapes (-> self root-override) a1-3)
(find-overlapping-shapes (-> self root) a1-3)
)
(suspend)
)
(let ((v1-21 (-> self root-override root-prim)))
(let ((v1-21 (-> self root root-prim)))
(set! (-> v1-21 prim-core collide-as) (collide-spec))
(set! (-> v1-21 prim-core collide-with) (collide-spec))
)
@@ -2757,9 +2750,9 @@ This commonly includes things such as:
(set! (-> s4-0 backup-collide-with) (-> v1-9 prim-core collide-with))
)
(set! (-> s4-0 event-self) 'touched)
(set! (-> self root-override) s4-0)
(set! (-> self root) s4-0)
)
(set! (-> self root-override trans quad) (-> arg0 quad))
(set! (-> self root trans quad) (-> arg0 quad))
(set! (-> self duration) arg2)
(set! (-> self target) (the-as handle #f))
(set! (-> self event) #f)
@@ -2786,9 +2779,9 @@ This commonly includes things such as:
(set! (-> s5-0 backup-collide-as) (-> v1-6 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-6 prim-core collide-with))
)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj root-override event-self) 'touched)
(set! (-> obj root event-self) 'touched)
0
(none)
)
@@ -2801,10 +2794,10 @@ This commonly includes things such as:
(defbehavior explosion-init-by-other explosion ((arg0 explosion-init-params))
(logclear! (-> self mask) (process-mask actor-pause movie))
(setup-explosion-collision self)
(set! (-> self root-override trans quad) (-> arg0 spawn-point quad))
(quaternion-copy! (-> self root-override quat) (-> arg0 spawn-quat))
(set! (-> self root-override penetrate-using) (-> arg0 penetrate-using))
(let ((v1-9 (-> self root-override root-prim)))
(set! (-> self root trans quad) (-> arg0 spawn-point quad))
(quaternion-copy! (-> self root quat) (-> arg0 spawn-quat))
(set! (-> self root penetrate-using) (-> arg0 penetrate-using))
(let ((v1-9 (-> self root root-prim)))
(set! (-> v1-9 local-sphere w) (-> arg0 radius))
(set! (-> v1-9 prim-core world-sphere w) (-> arg0 radius))
(set! (-> v1-9 prim-core collide-with) (-> arg0 collide-with))
@@ -2823,7 +2816,7 @@ This commonly includes things such as:
)
)
(let ((v1-16 (new 'stack-no-clear 'traffic-danger-info)))
(set! (-> v1-16 sphere quad) (-> self root-override trans quad))
(set! (-> v1-16 sphere quad) (-> self root trans quad))
(vector-reset! (-> v1-16 velocity))
(set! (-> v1-16 sphere r) (* 2.0 (-> arg0 radius)))
(set! (-> v1-16 notify-radius) 204800.0)
@@ -2866,7 +2859,7 @@ This commonly includes things such as:
(let ((a0-3 (-> (the-as process-drawable v1-1) root))
(a1-2 (new 'stack-no-clear 'collide-query))
)
(let ((v1-4 (-> self root-override root-prim prim-core))
(let ((v1-4 (-> self root root-prim prim-core))
(a0-5 (-> (the-as collide-shape a0-3) root-prim prim-core))
)
0.0
@@ -2903,20 +2896,20 @@ This commonly includes things such as:
)
:code (behavior ()
(set! (-> self start-time) (current-time))
(update-transforms (-> self root-override))
(update-transforms (-> self root))
(let ((a1-0 (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> a1-0 options) (overlaps-others-options))
(set! (-> a1-0 collide-with-filter) (the-as collide-spec -1))
(set! (-> a1-0 tlist) *touching-list*)
(find-overlapping-shapes (-> self root-override) a1-0)
(find-overlapping-shapes (-> self root) a1-0)
)
(let ((v1-9 (-> self root-override root-prim)))
(let ((v1-9 (-> self root root-prim)))
(set! (-> v1-9 prim-core collide-as) (collide-spec))
(set! (-> v1-9 prim-core collide-with) (collide-spec))
)
0
(while (< (- (current-time) (-> self start-time)) (the-as time-frame (-> self duration)))
(let ((a1-1 (-> self root-override trans)))
(let ((a1-1 (-> self root trans)))
(spawn (-> self part) a1-1)
)
(suspend)
+8 -8
View File
@@ -52,7 +52,7 @@
(set! (-> collision-shape backup-collide-as) (-> prim prim-core collide-as))
(set! (-> collision-shape backup-collide-with) (-> prim prim-core collide-with))
)
(set! (-> obj root-override) collision-shape)
(set! (-> obj root) (the-as collide-shape-moving collision-shape))
)
0
(none)
@@ -128,8 +128,8 @@ otherwise, [[plat::34]]
:trans (behavior ()
(set! (-> self path-pos) (get-norm! (-> self sync) 0))
(get-point-at-percent-along-path! (-> self path) (-> self basetrans) (-> self path-pos) 'interp)
(if (< (vector-vector-distance (-> self root-override trans) (ear-trans 0)) 81920.0)
(sound-play "eco-plat-hover" :id (-> self sound-id) :position (-> self root-override trans))
(if (< (vector-vector-distance (-> self root trans) (ear-trans 0)) 81920.0)
(sound-play "eco-plat-hover" :id (-> self sound-id) :position (-> self root trans))
)
(plat-trans)
(none)
@@ -163,7 +163,7 @@ This commonly includes things such as:
(init-plat-collision! obj)
(process-drawable-from-entity! obj entity)
(initialize-skeleton obj (the-as skeleton-group (get-art-group obj)) (the-as pair 0))
(update-transforms (-> obj root-override))
(update-transforms (-> obj root))
(stop-bouncing! obj)
(base-plat-method-32 obj)
(set! (-> obj fact)
@@ -197,13 +197,13 @@ This commonly includes things such as:
)
((> (-> obj sync period) 0)
(set! (-> obj path-pos) (get-norm! (-> obj sync) 0))
(get-point-at-percent-along-path! (-> obj path) (-> obj root-override trans) (-> obj path-pos) 'interp)
(get-point-at-percent-along-path! (-> obj path) (-> obj root trans) (-> obj path-pos) 'interp)
(init-plat! obj)
(plat-path-sync obj)
)
(else
(set! (-> obj path-pos) 0.0)
(get-point-at-percent-along-path! (-> obj path) (-> obj root-override trans) (-> obj path-pos) 'interp)
(get-point-at-percent-along-path! (-> obj path) (-> obj root trans) (-> obj path-pos) 'interp)
(init-plat! obj)
(plat-path-sync obj)
)
@@ -264,7 +264,7 @@ This commonly includes things such as:
(return (the-as object #f))
)
)
(set! (-> self hit-point quad) (-> self root-override trans quad))
(set! (-> self hit-point quad) (-> self root trans quad))
(set! proc-focus (if (type? proc process-focusable)
(the-as process-focusable proc)
)
@@ -323,7 +323,7 @@ This commonly includes things such as:
:trans (the-as (function none :behavior drop-plat) rider-trans)
:code (behavior ((arg0 symbol))
(process-entity-status! self (entity-perm-status subtask-complete) #t)
(let ((v1-1 (-> self root-override root-prim)))
(let ((v1-1 (-> self root root-prim)))
(set! (-> v1-1 prim-core collide-as) (collide-spec))
(set! (-> v1-1 prim-core collide-with) (collide-spec))
)
+27 -45
View File
@@ -520,15 +520,11 @@
)
(defbehavior target-eco-process target ()
(when (and (!= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 0.0)
(>= (- (-> *display* game-clock frame-counter)
(-> (the-as fact-info-target (-> self fact-override)) eco-pickup-time)
)
(-> (the-as fact-info-target (-> self fact-override)) eco-timeout)
)
(when (and (!= (-> self fact eco-level) 0.0)
(>= (- (-> *display* game-clock frame-counter) (-> self fact eco-pickup-time)) (-> self fact eco-timeout))
)
(set! (-> (the-as fact-info-target (-> self fact-override)) eco-level) 0.0)
(set! (-> (the-as fact-info-target (-> self fact-override)) eco-timeout) 0)
(set! (-> self fact eco-level) 0.0)
(set! (-> self fact eco-timeout) 0)
(logclear! (-> self state-flags) (state-flags sf4))
(send-event self 'reset-collide)
(stop! (-> self sound))
@@ -536,25 +532,23 @@
(if (logtest? (-> self game secrets) (game-secrets endless-dark))
(set! (-> self game eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default))
)
(when (and (< 0.0 (-> (the-as fact-info-target (-> self fact-override)) eco-level))
(when (and (< 0.0 (-> self fact eco-level))
(not (focus-test? self in-head))
(not (logtest? (-> self draw status) (draw-control-status no-draw no-draw-temp)))
(not (movie?))
(rand-vu-percent? (lerp-scale
0.0
1.0
(the float (- (-> (the-as fact-info-target (-> self fact-override)) eco-timeout)
(- (-> *display* game-clock frame-counter)
(-> (the-as fact-info-target (-> self fact-override)) eco-pickup-time)
)
)
)
0.0
900.0
)
)
(rand-vu-percent?
(lerp-scale
0.0
1.0
(the float
(- (-> self fact eco-timeout) (- (-> *display* game-clock frame-counter) (-> self fact eco-pickup-time)))
)
0.0
900.0
)
)
)
(case (-> (the-as fact-info-target (-> self fact-override)) eco-type)
(case (-> self fact eco-type)
((1)
(change-sound! (-> self sound) (static-sound-name "yel-eco-jak"))
(let ((s1-0 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))
@@ -839,7 +833,6 @@
0
(none)
)
(defbehavior target-powerup-process target ()
(let ((f30-0 (-> self control collision-spheres 0 prim-core world-sphere w)))
(if (focus-test? self board)
@@ -938,30 +931,19 @@
)
)
(target-darkjak-process)
(when (nonzero? (-> (the-as fact-info-target (-> self fact-override)) trick-point-duration))
(when (>= (- (-> *display* game-clock frame-counter)
(-> (the-as fact-info-target (-> self fact-override)) trick-point-start-time)
)
(-> (the-as fact-info-target (-> self fact-override)) trick-point-duration)
(when (nonzero? (-> self fact trick-point-duration))
(when (>= (- (-> *display* game-clock frame-counter) (-> self fact trick-point-start-time))
(-> self fact trick-point-duration)
)
(format
#t
"------------> ~,,f total points~%"
(-> (the-as fact-info-target (-> self fact-override)) trick-point)
)
(send-event
(handle->process (-> self notify))
'notify
'trick-judge
(-> (the-as fact-info-target (-> self fact-override)) trick-point)
)
(reset! (-> self fact-override) 'trick-judge)
(format #t "------------> ~,,f total points~%" (-> self fact trick-point))
(send-event (handle->process (-> self notify)) 'notify 'trick-judge (-> self fact trick-point))
(reset! (-> self fact) 'trick-judge)
)
)
(cond
((logtest? (-> self game features) (game-feature unk-game-feature-01))
(cond
((< (current-time) (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout))
((< (current-time) (-> self fact stop-time-timeout))
(set-setting! 'bg-a 'abs 0.3 0)
(set-setting! 'bg-r 'abs 1.0 0)
(update-rates! (-> *display* entity-clock) 0.0)
@@ -969,15 +951,15 @@
(sound-play "stopwatch")
)
)
((nonzero? (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout))
((nonzero? (-> self fact stop-time-timeout))
(remove-setting! 'bg-a)
(remove-setting! 'bg-r)
(update-rates! (-> *display* entity-clock) 1.0)
(set! (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout) 0)
(set! (-> self fact stop-time-timeout) 0)
0
)
((cpad-pressed? (-> self control cpad number) r1)
(set! (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout) (+ (current-time) (seconds 5)))
(set! (-> self fact stop-time-timeout) (+ (current-time) (seconds 5)))
)
)
)
@@ -28,7 +28,7 @@
;; DECOMP BEGINS
(deftype projectile (process-drawable)
((root-override collide-shape-moving :offset 128)
((root collide-shape-moving :override)
(starting-pos vector :inline :offset-assert 208)
(starting-dir vector :inline :offset-assert 224)
(target-pos vector :inline :offset-assert 240)
+40 -48
View File
@@ -125,7 +125,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
(defmethod spawn-impact-particles projectile ((obj projectile))
"Spawns associated particles with the projectile if applicable"
(if (nonzero? (-> obj part))
(spawn (-> obj part) (-> obj root-override trans))
(spawn (-> obj part) (-> obj root trans))
)
0
(none)
@@ -161,7 +161,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
(defmethod made-impact? projectile ((obj projectile))
"TODO - queries the collision cache, return true/false"
(let ((v1-0 (-> obj root-override))
(let ((v1-0 (-> obj root))
(t1-0 (new 'stack-no-clear 'collide-query))
)
(let ((a1-0 t1-0))
@@ -177,7 +177,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(defun projectile-move-fill-all-dirs ((arg0 projectile))
(let ((v1-0 (-> arg0 root-override))
(let ((v1-0 (-> arg0 root))
(a2-0 (new 'stack-no-clear 'collide-query))
)
(set! (-> a2-0 collide-with) (-> v1-0 root-prim prim-core collide-with))
@@ -199,7 +199,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
(vf2 :class vf)
)
(init-vf0-vector)
(let ((gp-0 (-> arg0 root-override)))
(let ((gp-0 (-> arg0 root)))
(let ((a1-0 (new 'stack-no-clear 'collide-query)))
(let ((a2-0 (-> gp-0 root-prim)))
(set! (-> a1-0 start-pos quad) (-> gp-0 trans quad))
@@ -233,22 +233,19 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(defun projectile-update-velocity-add-gravity ((arg0 projectile))
(vector-v++!
(-> arg0 root-override transv)
(compute-acc-due-to-gravity (-> arg0 root-override) (new-stack-vector0) 1.0)
)
(vector-v++! (-> arg0 root transv) (compute-acc-due-to-gravity (-> arg0 root) (new-stack-vector0) 1.0))
0
(none)
)
(defun projectile-update-velocity-space-wars ((arg0 projectile))
(let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (-> arg0 target-pos) (-> arg0 root-override trans))))
(let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (-> arg0 target-pos) (-> arg0 root trans))))
(let ((s4-0 (new 'stack-no-clear 'vector))
(s3-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 root-override transv) 1.0))
(f30-0 (vector-length (-> arg0 root-override transv)))
(s3-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> arg0 root transv) 1.0))
(f30-0 (vector-length (-> arg0 root transv)))
)
(if (logtest? (-> arg0 root-override status) (collide-status touch-surface))
(vector-flatten! s5-1 s5-1 (-> arg0 root-override local-normal))
(if (logtest? (-> arg0 root status) (collide-status touch-surface))
(vector-flatten! s5-1 s5-1 (-> arg0 root local-normal))
)
(vector-normalize-copy! s4-0 s5-1 1.0)
(if (and (or (not (handle->process (-> arg0 last-target)))
@@ -263,20 +260,17 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(go (method-of-object arg0 dissipate))
)
(vector-deg-slerp (-> arg0 root-override transv) s3-0 s4-0 (-> arg0 tween))
(vector-normalize! (-> arg0 root-override transv) f30-0)
(vector-deg-slerp (-> arg0 root transv) s3-0 s4-0 (-> arg0 tween))
(vector-normalize! (-> arg0 root transv) f30-0)
)
(vector+! (-> arg0 root-override transv) (-> arg0 root-override transv) s5-1)
(vector+! (-> arg0 root transv) (-> arg0 root transv) s5-1)
)
(vector-v++!
(-> arg0 root-override transv)
(compute-acc-due-to-gravity (-> arg0 root-override) (new-stack-vector0) 0.0)
)
(if (< (-> arg0 max-speed) (vector-length (-> arg0 root-override transv)))
(vector-normalize! (-> arg0 root-override transv) (-> arg0 max-speed))
(vector-v++! (-> arg0 root transv) (compute-acc-due-to-gravity (-> arg0 root) (new-stack-vector0) 0.0))
(if (< (-> arg0 max-speed) (vector-length (-> arg0 root transv)))
(vector-normalize! (-> arg0 root transv) (-> arg0 max-speed))
)
(if (logtest? (-> arg0 options) (projectile-options lose-altitude))
(set! (-> arg0 root-override transv y) -40960.0)
(set! (-> arg0 root transv y) -40960.0)
)
0
(none)
@@ -305,7 +299,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(when (logtest? (-> self options) (projectile-options proj-options-2))
(seek! (-> self tween) 1.0 (* 0.5 (-> self clock seconds-per-frame)))
(let ((f0-4 (vector-vector-distance (-> self root-override trans) (-> self target-pos))))
(let ((f0-4 (vector-vector-distance (-> self root trans) (-> self target-pos))))
(cond
((< f0-4 20480.0)
(seek! (-> self tween) 1.0 (* 3.0 (-> self clock seconds-per-frame)))
@@ -316,7 +310,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
)
)
(let ((gp-0 (-> self root-override)))
(let ((gp-0 (-> self root)))
(set! (-> self pre-move-transv quad) (-> gp-0 transv quad))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set! (-> s5-0 quad) (-> gp-0 trans quad))
@@ -331,7 +325,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
(+! f0-14 (-> self old-dist v1-38))
)
(if (or (and (logtest? (-> self options) (projectile-options proj-options-4))
(and (logtest? (-> self root-override status) (collide-status touch-wall)) (< f0-14 2048.0))
(and (logtest? (-> self root status) (collide-status touch-wall)) (< f0-14 2048.0))
)
(< f0-14 (-> self stop-speed))
)
@@ -423,9 +417,9 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(set! (-> s5-0 max-iteration-count) (the-as uint 2))
(set! (-> s5-0 event-self) 'touched)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj root-override pat-ignore-mask)
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
0
@@ -480,11 +474,11 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(logior! (-> self options) (projectile-options proj-options-4))
(init-proj-collision! self)
(let ((s5-0 (-> self root-override)))
(let ((s5-0 (-> self root)))
(when (type? s5-0 collide-shape-moving)
(set! (-> self root-override dynam gravity y) 1228800.0)
(set! (-> self root-override dynam gravity-length) 1228800.0)
(set! (-> self root-override dynam gravity-max) 1228800.0)
(set! (-> self root dynam gravity y) 1228800.0)
(set! (-> self root dynam gravity-length) 1228800.0)
(set! (-> self root dynam gravity-max) 1228800.0)
)
(set! (-> self mask) (logior (process-mask projectile) (-> self mask)))
(logclear! (-> self mask) (process-mask enemy))
@@ -500,7 +494,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
(set! (-> self target-pos quad) (-> self base-target-pos quad))
(set! (-> self event-hook) projectile-event-handler)
(init-proj-settings! self)
(update-transforms (-> self root-override))
(update-transforms (-> self root))
(draw-laser-sight self)
(play-impact-sound self (projectile-options))
(when (logtest? (-> self options) (projectile-options proj-options-8000))
@@ -513,15 +507,13 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(defbehavior projectile-bounce-update-velocity projectile ((arg0 projectile-bounce))
(set! (-> arg0 root-override transv y)
(- (-> arg0 root-override transv y) (* 184320.0 (-> self clock seconds-per-frame)))
)
(set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 184320.0 (-> self clock seconds-per-frame))))
0
(none)
)
(defbehavior projectile-bounce-falling-post projectile-bounce ((arg0 projectile-bounce))
(let ((gp-0 (-> self root-override))
(let ((gp-0 (-> self root))
(s4-0 (new 'stack-no-clear 'collide-query))
(s5-0 (new 'stack-no-clear 'vector))
)
@@ -529,7 +521,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
(set! (-> s5-0 quad) (-> gp-0 trans quad))
(vector-v++! s5-0 (-> gp-0 transv))
(when (find-ground gp-0 s4-0 (collide-spec backgnd crate obstacle hit-by-others-list pusher) 4096.0 81920.0 1024.0)
(let ((f0-1 (+ (-> gp-0 gspot-pos y) (-> self root-override root-prim local-sphere w))))
(let ((f0-1 (+ (-> gp-0 gspot-pos y) (-> self root root-prim local-sphere w))))
(when (>= f0-1 (-> s5-0 y))
(set! (-> s5-0 y) f0-1)
(vector-reset! (-> gp-0 transv))
@@ -588,8 +580,8 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(defun projectile-bounce-move ((arg0 projectile-bounce))
(seek-toward-heading-vec! (-> arg0 root-override) (-> arg0 root-override transv) 131072.0 (seconds 0.1))
(quaternion*! (-> arg0 root-override quat) (-> arg0 root-override quat) (-> arg0 tumble-quat))
(seek-toward-heading-vec! (-> arg0 root) (-> arg0 root transv) 131072.0 (seconds 0.1))
(quaternion*! (-> arg0 root quat) (-> arg0 root quat) (-> arg0 tumble-quat))
(projectile-move-fill-all-dirs arg0)
(none)
)
@@ -608,7 +600,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
;; WARN: Return type mismatch sound-id vs none.
(defmethod play-impact-sound! projectile-bounce ((obj projectile-bounce))
"Plays impact sound"
(let* ((a2-0 (-> obj root-override))
(let* ((a2-0 (-> obj root))
(v1-0 (-> a2-0 status))
)
(if (logtest? v1-0 (collide-status touch-surface))
@@ -646,14 +638,14 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
)
(set! (-> s5-0 max-iteration-count) (the-as uint 2))
(set! (-> s5-0 event-self) 'touched)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(set-collide-with!
(-> obj root-override)
(-> obj root)
(collide-spec backgnd bot crate civilian enemy obstacle vehicle-sphere hit-by-others-list player-list pusher)
)
(set-collide-as! (-> obj root-override) (collide-spec projectile))
(set! (-> obj root-override pat-ignore-mask)
(set-collide-as! (-> obj root) (collide-spec projectile))
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
(none)
@@ -665,9 +657,9 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
(set! (-> obj timeout) (seconds 1.6))
(set! (-> obj update-velocity) projectile-bounce-update-velocity)
(set! (-> obj move) projectile-bounce-move)
(set! (-> obj root-override dynam gravity y) 184320.0)
(set! (-> obj root-override dynam gravity-length) 184320.0)
(set! (-> obj root-override dynam gravity-max) 184320.0)
(set! (-> obj root dynam gravity y) 184320.0)
(set! (-> obj root dynam gravity-length) 184320.0)
(set! (-> obj root dynam gravity-max) 184320.0)
(let ((f0-4 1092.2667))
(quaternion-axis-angle! (-> obj tumble-quat) 1.0 0.0 0.0 f0-4)
)
@@ -51,7 +51,7 @@
(set! (-> rigid-body-control-point-inline-array heap-base) (the-as uint 48))
(deftype rigid-body-platform (rigid-body-object)
((info-override rigid-body-platform-constants :offset 204)
((info rigid-body-platform-constants :override)
(control-point-array rigid-body-control-point-inline-array :offset-assert 272)
(player-velocity vector :inline :offset-assert 288)
(player-velocity-prev vector :inline :offset-assert 304)
@@ -118,7 +118,7 @@
)
(let* ((s4-0 (new 'stack-no-clear 'vector))
(f0-3 (- (-> ctrl-point world-pos w) (-> ctrl-point world-pos y)))
(f30-0 (/ f0-3 (-> obj info-override max-buoyancy-depth)))
(f30-0 (/ f0-3 (-> obj info max-buoyancy-depth)))
)
(when (< 0.0 f0-3)
(vector-float*!
@@ -126,8 +126,8 @@
*y-vector*
(* (-> obj rbody state info mass)
(fmin 1.0 f30-0)
(/ (-> obj info-override extra gravity) (the float (-> obj info-override control-point-count)))
(-> obj info-override buoyancy-factor)
(/ (-> obj info extra gravity) (the float (-> obj info control-point-count)))
(-> obj info buoyancy-factor)
)
)
(let ((v1-6 (-> obj rbody))
@@ -136,7 +136,7 @@
)
(rigid-body-method-18 (-> v1-6 state) a1-9 a2-0)
)
(vector-float*! s4-0 (-> ctrl-point velocity) (* -1.0 (-> obj info-override drag-factor) (fmin 1.0 f30-0)))
(vector-float*! s4-0 (-> ctrl-point velocity) (* -1.0 (-> obj info drag-factor) (fmin 1.0 f30-0)))
(let ((v1-11 (-> obj rbody))
(a1-13 (-> ctrl-point world-pos))
)
@@ -157,7 +157,7 @@
(let ((rigid-body (-> obj rbody))
(force-pos (-> obj player-force-position))
(force (-> obj player-force))
(force-dist (-> obj info-override player-force-distance))
(force-dist (-> obj info player-force-distance))
)
(rigid-body-method-21 (-> rigid-body state) force-pos force force-dist)
)
@@ -168,7 +168,7 @@
(defmethod rigid-body-platform-method-55 rigid-body-platform ((obj rigid-body-platform))
(let ((a1-0 (new 'stack-no-clear 'vector)))
(vector-float*! a1-0 *y-vector* (* -1.0 (-> obj info-override extra gravity) (-> obj rbody state info mass)))
(vector-float*! a1-0 *y-vector* (* -1.0 (-> obj info extra gravity) (-> obj rbody state info mass)))
(rigid-body-method-20 (-> obj rbody state) a1-0)
)
0
@@ -194,7 +194,7 @@
(defmethod rigid-body-object-method-29 rigid-body-platform ((obj rigid-body-platform) (arg0 float))
(let ((s4-0 (-> obj rbody state matrix)))
(dotimes (s3-0 (-> obj info-override control-point-count))
(dotimes (s3-0 (-> obj info control-point-count))
(let ((s2-0 (-> obj control-point-array data s3-0)))
(vector-matrix*! (-> s2-0 world-pos) (-> s2-0 local-pos) s4-0)
(let ((v1-4 (-> obj rbody))
@@ -214,8 +214,8 @@
)
(defmethod rigid-body-object-method-30 rigid-body-platform ((obj rigid-body-platform))
(if (-> obj info-override platform)
(detect-riders! (-> obj root-override-2))
(if (-> obj info platform)
(detect-riders! (-> obj root))
)
(set! (-> obj player-velocity-prev quad) (-> obj player-velocity quad))
(if *target*
@@ -248,7 +248,7 @@
(logior! (-> obj flags) (rigid-body-object-flag player-contact-force))
(set! (-> obj player-force-position quad) (-> (the-as rigid-body-control-point v1-1) velocity quad))
(vector-reset! (-> obj player-force))
(set! (-> obj player-force y) (* -1.0 (-> obj info-override player-weight)))
(set! (-> obj player-force y) (* -1.0 (-> obj info player-weight)))
)
)
)
@@ -267,7 +267,7 @@
)
(when (not (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force)))
(logior! (-> obj flags) (rigid-body-object-flag player-contact-force))
(set! (-> obj player-force-position quad) (-> v1-11 root-override trans quad))
(set! (-> obj player-force-position quad) (-> v1-11 root trans quad))
(vector-reset! (-> obj player-force))
(let* ((a1-5 (-> obj player-force-position))
(f30-0 0.0)
@@ -277,7 +277,7 @@
(f1-2 12288.0)
(f0-8 (fmax f30-0 (fmin f28-0 (- f26-0 (* f0-4 (/ 1.0 f1-2))))))
)
(set! (-> obj player-force y) (* -1.0 (-> obj info-override player-weight) f0-8))
(set! (-> obj player-force y) (* -1.0 (-> obj info player-weight) f0-8))
)
)
)
@@ -287,7 +287,7 @@
)
(('bonk)
(when (>= (- (current-time) (the-as int (-> obj player-bonk-timeout)))
(the-as time-frame (-> obj info-override player-force-timeout))
(the-as time-frame (-> obj info player-force-timeout))
)
(set! (-> obj player-bonk-timeout) (the-as uint (current-time)))
(let* ((s4-0 arg0)
@@ -302,10 +302,10 @@
(let ((f0-14 (fmin
(* 0.00012207031
(the-as float (-> arg3 param 1))
(-> obj info-override player-bonk-factor)
(-> obj info-override player-weight)
(-> obj info player-bonk-factor)
(-> obj info player-weight)
)
(-> obj info-override player-force-clamp)
(-> obj info player-force-clamp)
)
)
)
@@ -325,7 +325,7 @@
(defmethod rigid-body-object-method-37 rigid-body-platform ((obj rigid-body-platform))
(if (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force))
(sound-play-by-name
(string->sound-name (-> obj info-override sound-name))
(string->sound-name (-> obj info sound-name))
(new-sound-id)
1024
0
@@ -335,9 +335,9 @@
)
)
(rigid-body-object-method-30 obj)
(quaternion-copy! (-> obj root-override-2 quat) (-> obj rbody state rotation))
(quaternion-copy! (-> obj root quat) (-> obj rbody state rotation))
(let ((v1-9 (-> obj rbody))
(a1-2 (-> obj root-override-2 trans))
(a1-2 (-> obj root trans))
)
(rigid-body-method-23 (-> v1-9 state) a1-2)
)
@@ -346,16 +346,16 @@
)
(defmethod alloc-and-init-rigid-body-control rigid-body-platform ((obj rigid-body-platform) (arg0 rigid-body-object-constants))
(set! (-> obj info-override) (the-as rigid-body-platform-constants arg0))
(set! (-> obj info) (the-as rigid-body-platform-constants arg0))
(set! (-> obj rbody) (new 'process 'rigid-body-control obj))
(set! (-> obj control-point-array)
(new 'process 'rigid-body-control-point-inline-array (-> obj info-override control-point-count))
(new 'process 'rigid-body-control-point-inline-array (-> obj info control-point-count))
)
(update-transforms (-> obj root-override-2))
(update-transforms (-> obj root))
(let ((v1-5 (-> obj rbody))
(a1-3 (-> obj info-override info))
(a2-2 (-> obj root-override-2 trans))
(a3-0 (-> obj root-override-2 quat))
(a1-3 (-> obj info info))
(a2-2 (-> obj root trans))
(a3-0 (-> obj root quat))
(t0-0 (method-of-object obj rigid-body-object-method-29))
)
(rigid-body-method-25 (-> v1-5 state) a1-3 a2-2 a3-0 t0-0)
@@ -364,7 +364,7 @@
(set! (-> obj player-force quad) (-> *null-vector* quad))
(set! (-> obj player-velocity quad) (-> *null-vector* quad))
(set! (-> obj player-velocity-prev quad) (-> *null-vector* quad))
(set! (-> obj root-override-2 max-iteration-count) (the-as uint 4))
(set! (-> obj root max-iteration-count) (the-as uint 4))
(set! (-> obj max-time-step) (-> arg0 extra max-time-step))
(set! (-> obj water-anim) (the-as water-anim (entity-actor-lookup (-> obj entity) 'water-actor 0)))
0
@@ -393,7 +393,7 @@
(set! (-> s5-0 backup-collide-as) (-> v1-15 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-15 prim-core collide-with))
)
(set! (-> obj root-override-2) s5-0)
(set! (-> obj root) s5-0)
)
0
(none)
@@ -436,7 +436,7 @@
(defmethod init-skel-and-rigid-body rigid-body-platform ((obj rigid-body-platform))
(set! (-> obj float-height-offset) 0.0)
(alloc-and-init-rigid-body-control obj *rigid-body-platform-constants*)
(let ((s5-0 (-> obj info-override control-point-count)))
(let ((s5-0 (-> obj info control-point-count)))
(dotimes (s4-0 s5-0)
(let ((s3-0 (-> obj control-point-array data s4-0)))
(let ((f30-0 (* 65536.0 (/ (the float s4-0) (the float s5-0)))))
+22 -25
View File
@@ -58,14 +58,14 @@
(deftype remote (process-drawable)
((parent-override (pointer camera-slave) :offset 16)
(base-trans vector :inline :offset-assert 208)
(focus focus :inline :offset-assert 224)
(seeker cam-float-seeker :inline :offset-assert 236)
(start-time time-frame :offset-assert 264)
(blend float :offset-assert 272)
(twist float :offset-assert 276)
(speak-effect? basic :offset-assert 280)
((parent (pointer camera-slave) :override)
(base-trans vector :inline :offset-assert 208)
(focus focus :inline :offset-assert 224)
(seeker cam-float-seeker :inline :offset-assert 236)
(start-time time-frame :offset-assert 264)
(blend float :offset-assert 272)
(twist float :offset-assert 276)
(speak-effect? basic :offset-assert 280)
)
:heap-base #xa0
:method-count-assert 26
@@ -121,12 +121,9 @@
(-> obj speak-effect?)
)
)
(let ((v1-15 (vector-float*!
(new 'stack-no-clear 'vector)
(-> obj parent-override 0 velocity)
(-> pp clock frames-per-second)
)
)
(let ((v1-15
(vector-float*! (new 'stack-no-clear 'vector) (-> obj parent 0 velocity) (-> pp clock frames-per-second))
)
(a0-8 *particle-vel*)
)
(let ((a1-4 (-> obj node-list data 3 bone transform vector 2)))
@@ -159,10 +156,10 @@
(let ((gp-0 (handle->process (-> self focus handle)))
(s5-0 (new 'stack-no-clear 'vector))
)
(set! (-> s5-0 quad) (-> self parent-override 0 trans quad))
(set! (-> s5-0 quad) (-> self parent 0 trans quad))
(let ((f30-0 (get-track-pt-and-scale self s5-0)))
(let ((a1-2 (new 'stack-no-clear 'vector)))
(set! (-> a1-2 quad) (-> self parent-override 0 trans quad))
(set! (-> a1-2 quad) (-> self parent 0 trans quad))
(vector-lerp! (-> self root trans) a1-2 s5-0 (-> self blend))
)
(+! (-> self root trans y) (* 1638.4 (sin (* 54.613335 (the float (mod (current-time) 1200))))))
@@ -190,7 +187,7 @@
(set! (-> a1-9 from) (process->ppointer self))
(set! (-> a1-9 num-params) 0)
(set! (-> a1-9 message) 'blocked-side?)
(case (send-event-function (ppointer->process (-> self parent-override)) a1-9)
(case (send-event-function (ppointer->process (-> self parent)) a1-9)
((1)
(set! (-> self twist) 0.5)
)
@@ -202,7 +199,7 @@
)
)
)
(send-event (ppointer->process (-> self parent-override)) 'joystick (-> self twist) -1082130432)
(send-event (ppointer->process (-> self parent)) 'joystick (-> self twist) -1082130432)
)
(set! (-> self root scale x) f30-0)
(set! (-> self root scale y) f30-0)
@@ -230,7 +227,7 @@
)
:enter (behavior ()
(set! (-> self start-time) (-> *display* game-clock frame-counter))
(let* ((gp-0 (ppointer->process (-> self parent-override 0 parent)))
(let* ((gp-0 (ppointer->process (-> self parent 0 parent)))
(a1-1 (if (type? gp-0 process-focusable)
gp-0
)
@@ -252,7 +249,7 @@
(none)
)
:code (behavior ()
(let* ((gp-0 (ppointer->process (-> self parent-override 0 parent)))
(let* ((gp-0 (ppointer->process (-> self parent 0 parent)))
(a0-1 (if (type? gp-0 process-focusable)
(the-as process-focusable gp-0)
)
@@ -260,13 +257,13 @@
)
(if (and a0-1 (focus-test? a0-1 pilot))
(send-event
(ppointer->process (-> self parent-override))
(ppointer->process (-> self parent))
'set-dist
(new 'static 'vector :z 8192.0 :w 1.0)
(new 'static 'vector :y 20480.0 :z 12288.0 :w 1.0)
)
(send-event
(ppointer->process (-> self parent-override))
(ppointer->process (-> self parent))
'set-dist
(new 'static 'vector :z 16384.0 :w 1.0)
(new 'static 'vector :y 20480.0 :z 40960.0 :w 1.0)
@@ -310,7 +307,7 @@
:trans remote-track
:code (behavior ()
(set! (-> self blend) 1.0)
(send-event (ppointer->process (-> self parent-override)) 'change-state empty-state)
(send-event (ppointer->process (-> self parent)) 'change-state empty-state)
(suspend)
0
(none)
@@ -375,7 +372,7 @@
(suspend)
)
(set! (-> self blend) 1.0)
(send-event (ppointer->process (-> self parent-override)) 'change-state empty-state)
(send-event (ppointer->process (-> self parent)) 'change-state empty-state)
(suspend)
(cleanup-for-death self)
(none)
@@ -438,7 +435,7 @@
)
)
(if *target*
(set! (-> *game-info* score) (-> *target* fact-override trick-point))
(set! (-> *game-info* score) (-> *target* fact trick-point))
)
(let ((v1-15 (the-as int (- (-> obj total-time) (- (-> *display* game-clock frame-counter) (-> obj start-time))))))
(if (< (the-as time-frame v1-15) 0)
@@ -40,7 +40,7 @@
(set! (-> nav-graph-command-array heap-base) (the-as uint 32))
(deftype nav-graph-editor (process)
((self-override nav-graph-editor :offset 32)
((self nav-graph-editor :override)
(nav-graph mysql-nav-graph :offset-assert 128)
(mode symbol :offset-assert 132)
(command-id int32 :offset-assert 136)
@@ -2079,59 +2079,36 @@
)
(defun get-nav-graph-editor ()
(let ((v1-0 *nav-graph-editor*))
(if v1-0
(-> v1-0 0 self-override)
)
)
(ppointer->process *nav-graph-editor*)
)
(defun exit-nav-graph-editor ()
(when *nav-graph-editor*
(let ((v1-1 *nav-graph-editor*))
(deactivate (if v1-1
(-> v1-1 0 self-override)
)
)
(if *nav-graph-editor*
(deactivate (ppointer->process *nav-graph-editor*))
)
)
(none)
)
;; WARN: Return type mismatch mysql-save-flag vs uint.
(defun set-minimap-edge-flag ((arg0 nav-minimap-edge-flag))
(let ((v1-0 *nav-graph-editor*))
(the-as uint (when (if v1-0
(-> v1-0 0 self-override)
)
(let* ((a1-1 *nav-graph-editor*)
(v1-2 (if a1-1
(-> a1-1 0 self-override)
)
)
)
(when (>= (-> v1-2 edge-visibility) 0)
(let ((v1-6 (-> v1-2 nav-graph edge-array data (-> v1-2 edge-visibility))))
(set! (-> v1-6 minimap_edge_flag) arg0)
(let ((v0-0 (logior (-> v1-6 mysql-save-flag) (mysql-save-flag update))))
(set! (-> v1-6 mysql-save-flag) v0-0)
v0-0
)
(the-as uint (when (ppointer->process *nav-graph-editor*)
(let ((v1-2 (ppointer->process *nav-graph-editor*)))
(when (>= (-> v1-2 edge-visibility) 0)
(let ((v1-6 (-> v1-2 nav-graph edge-array data (-> v1-2 edge-visibility))))
(set! (-> v1-6 minimap_edge_flag) arg0)
(let ((v0-0 (logior (-> v1-6 mysql-save-flag) (mysql-save-flag update))))
(set! (-> v1-6 mysql-save-flag) v0-0)
v0-0
)
)
)
)
)
)
)
)
)
(defun set-vehicle-edit-mode ((arg0 symbol))
(let* ((a1-0 *nav-graph-editor*)
(v1-0 (if a1-0
(-> a1-0 0 self-override)
)
)
)
(let ((v1-0 (ppointer->process *nav-graph-editor*)))
(when v1-0
(set! (-> v1-0 vehicle-edit-mode) arg0)
(set! (-> v1-0 default-node nav_node_flag) (if arg0
@@ -2145,49 +2122,31 @@
)
(defun translate-nav-graph ((arg0 float) (arg1 float) (arg2 float))
(let ((v1-0 *nav-graph-editor*))
(when (if v1-0
(-> v1-0 0 self-override)
)
(let* ((a3-1 *nav-graph-editor*)
(v1-2 (if a3-1
(-> a3-1 0 self-override)
)
)
)
(dotimes (a3-2 (-> v1-2 nav-graph node-array length))
(let ((t0-3 (-> v1-2 nav-graph node-array data a3-2)))
(+! (-> t0-3 position x) arg0)
(+! (-> t0-3 position y) arg1)
(+! (-> t0-3 position z) arg2)
(logior! (-> t0-3 mysql-save-flag) (mysql-save-flag update))
)
(when (ppointer->process *nav-graph-editor*)
(let ((v1-2 (ppointer->process *nav-graph-editor*)))
(dotimes (a3-2 (-> v1-2 nav-graph node-array length))
(let ((t0-3 (-> v1-2 nav-graph node-array data a3-2)))
(+! (-> t0-3 position x) arg0)
(+! (-> t0-3 position y) arg1)
(+! (-> t0-3 position z) arg2)
(logior! (-> t0-3 mysql-save-flag) (mysql-save-flag update))
)
)
#f
)
#f
)
)
(defun update-nav-meshes ()
(let ((v1-0 *nav-graph-editor*))
(when (if v1-0
(-> v1-0 0 self-override)
)
(let* ((v1-2 *nav-graph-editor*)
(gp-0 (if v1-2
(-> v1-2 0 self-override)
)
)
)
(dotimes (s5-0 (-> gp-0 nav-graph node-array length))
(if (not (logtest? (-> gp-0 nav-graph node-array data s5-0 mysql-save-flag) (mysql-save-flag delete)))
(nav-graph-editor-method-54 gp-0 s5-0)
)
)
(when (ppointer->process *nav-graph-editor*)
(let ((gp-0 (ppointer->process *nav-graph-editor*)))
(dotimes (s5-0 (-> gp-0 nav-graph node-array length))
(if (not (logtest? (-> gp-0 nav-graph node-array data s5-0 mysql-save-flag) (mysql-save-flag delete)))
(nav-graph-editor-method-54 gp-0 s5-0)
)
)
#f
)
#f
)
)
@@ -2208,14 +2167,7 @@
(vf6 :class vf)
)
(init-vf0-vector)
(let* ((v1-0 *nav-graph-editor*)
(s5-0 (-> (if v1-0
(-> v1-0 0 self-override)
)
nav-graph
)
)
)
(let ((s5-0 (-> (ppointer->process *nav-graph-editor*) nav-graph)))
(dotimes (s4-0 (-> s5-0 node-array length))
(let ((s3-0 (-> s5-0 node-array data s4-0))
(s2-0 (new-stack-vector0))
@@ -2293,14 +2245,7 @@
)
(defun update-height ((arg0 string))
(let* ((v1-0 *nav-graph-editor*)
(v1-2 (-> (if v1-0
(-> v1-0 0 self-override)
)
nav-graph
)
)
)
(let ((v1-2 (-> (ppointer->process *nav-graph-editor*) nav-graph)))
(dotimes (a1-1 (-> v1-2 node-array length))
(let ((a2-3 (-> v1-2 node-array data a1-1)))
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
@@ -2318,14 +2263,7 @@
(defun update-width ((arg0 string))
(local-vars (sv-16 (array entity-nav-mesh)) (sv-32 int) (sv-48 uint) (sv-64 entity-nav-mesh))
(let* ((v1-0 *nav-graph-editor*)
(s5-0 (-> (if v1-0
(-> v1-0 0 self-override)
)
nav-graph
)
)
)
(let ((s5-0 (-> (ppointer->process *nav-graph-editor*) nav-graph)))
(dotimes (s4-0 (-> s5-0 edge-array length))
(let ((s3-0 (-> s5-0 edge-array data s4-0)))
(when (not (logtest? (-> s3-0 mysql-save-flag) (mysql-save-flag delete)))
+1 -1
View File
@@ -110,7 +110,7 @@
(set! (-> arg0 reg 0) (the-as uint 127))
)
(else
(let* ((s2-4 (-> v1-33 root-override))
(let* ((s2-4 (-> v1-33 root))
(v1-34 (if (type? s2-4 collide-shape-moving)
s2-4
)
+15 -15
View File
@@ -10064,7 +10064,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-2-resolution)
:index #xe
:index 14
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -10212,7 +10212,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-4-resolution)
:index #xa
:index 10
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -10584,7 +10584,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-6-resolution)
:index #xd
:index 13
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -10737,7 +10737,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-7-resolution)
:index #xc
:index 12
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -10811,7 +10811,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-8-resolution)
:index #x6
:index 6
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -10885,7 +10885,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-9-resolution)
:index #x8
:index 8
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -11106,7 +11106,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-11-resolution)
:index #x9
:index 9
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -11399,7 +11399,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-13-resolution)
:index #xb
:index 11
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -11473,7 +11473,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-get-to-14-resolution)
:index #x7
:index 7
:on-complete '(talker-spawn "bb10win")
:on-fail #f
)
@@ -11695,7 +11695,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-race-errol-resolution)
:index #x7
:index 7
:on-complete #f
:on-fail #f
)
@@ -11769,7 +11769,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node city-burning-bush-race-port-resolution)
:index #x8
:index 8
:on-complete #f
:on-fail #f
)
@@ -12079,7 +12079,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node stadium-burning-bush-race-class1-resolution)
:index #x6
:index 6
:on-complete #f
:on-fail #f
)
@@ -12150,7 +12150,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node stadium-burning-bush-race-class3-r-resolution)
:index #x9
:index 9
:on-complete #f
:on-fail #f
)
@@ -12221,7 +12221,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node stadium-burning-bush-race-class2-r-resolution)
:index #xa
:index 10
:on-complete #f
:on-fail #f
)
@@ -12292,7 +12292,7 @@
:fail-hook #f
:event-hook #f
:final-node (game-task-node stadium-burning-bush-race-class1-r-resolution)
:index #xb
:index 11
:on-complete #f
:on-fail #f
)
+4 -12
View File
@@ -84,7 +84,7 @@
0
)
)
(let ((s5-0 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s5-0 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s5-0
(let ((s4-0 (the-as connection-minimap s5-0)))
(if (and (logtest? (-> s4-0 flags) (minimap-flag task-graph))
@@ -1496,17 +1496,9 @@
(when (and (not (logtest? (-> obj flags) (fail-mission-flags famflags-6)))
(= (get-status *gui-control* (-> obj message-id)) (gui-status active))
)
(let ((gp-0 (new
'stack
'font-context
*font-default-matrix*
70
20
0.0
(font-color orange)
(font-flags shadow kerning)
)
)
(let ((gp-0
(new 'stack 'font-context *font-default-matrix* 70 20 0.0 (font-color orange) (font-flags shadow kerning))
)
)
(set! (-> gp-0 origin x) 120.0)
(let ((v1-7 gp-0))
@@ -1073,6 +1073,13 @@
(none)
)
(#when PC_PORT
;; added - drillmtn uses camera-other but only palout sets the trans
(defun init-mood-drillmnt ((arg0 mood-context))
(set-vector! (-> *math-camera* trans-other) 0.0 0.0 0.0 1.0)
)
)
(deftype drillb-states (structure)
((fire-floor float :offset-assert 0)
(fire-floor-fade float :offset-assert 4)
+1 -1
View File
@@ -1053,7 +1053,7 @@
:music-bank 'strip
:ambient-sounds '()
:mood-func 'update-mood-drillmnt
:mood-init #f
:mood-init 'init-mood-drillmnt ;; added
:ocean #f
:sky #t
:use-camera-other #t
+1 -1
View File
@@ -55,7 +55,7 @@
(deftype nav-enemy (enemy)
((enemy-info-override nav-enemy-info :offset 216)
((enemy-info nav-enemy-info :override)
(frustration-point vector :inline :offset-assert 544)
(move-dest vector :inline :offset-assert 560)
(frustration-time time-frame :offset-assert 576)
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -313,7 +313,7 @@
)
(deftype rigid-body-object (process-focusable)
((root-override-2 collide-shape-moving :offset 128)
((root collide-shape-moving :override)
(info rigid-body-object-constants :offset-assert 204)
(flags rigid-body-object-flag :offset-assert 208)
(max-time-step float :offset-assert 216)
+26 -27
View File
@@ -843,7 +843,7 @@
(+! s4-1 -1)
(s3-0 arg0 f30-0)
(let ((v1-2 obj)
(a1-2 (-> arg0 root-override-2))
(a1-2 (-> arg0 root))
(f0-4 f30-0)
)
(rigid-body-method-9 (-> v1-2 state) a1-2 f0-4)
@@ -935,17 +935,17 @@
(defmethod alloc-and-init-rigid-body-control rigid-body-object ((obj rigid-body-object) (arg0 rigid-body-object-constants))
(set! (-> obj info) arg0)
(set! (-> obj rbody) (new 'process 'rigid-body-control obj))
(update-transforms (-> obj root-override-2))
(update-transforms (-> obj root))
(rigid-body-method-25
(-> obj rbody state)
(-> obj info info)
(-> obj root-override-2 trans)
(-> obj root-override-2 quat)
(-> obj root trans)
(-> obj root quat)
(method-of-object obj rigid-body-object-method-29)
)
(rigid-body-object-method-35 obj)
(set! (-> obj max-time-step) (-> arg0 extra max-time-step))
(set! (-> obj root-override-2 max-iteration-count) (the-as uint 4))
(set! (-> obj root max-iteration-count) (the-as uint 4))
(let ((v1-15 (-> obj skel root-channel 0)))
(set! (-> v1-15 num-func) num-func-identity)
(set! (-> v1-15 frame-num) 0.0)
@@ -976,7 +976,7 @@
(set! (-> s5-0 backup-collide-as) (-> v1-16 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-16 prim-core collide-with))
)
(set! (-> obj root-override-2) s5-0)
(set! (-> obj root) s5-0)
)
0
(none)
@@ -1033,7 +1033,7 @@ This commonly includes things such as:
(rigid-body-object-method-30 obj)
(do-engine-sounds obj)
(let ((v1-4 (-> obj rbody))
(a1-0 (-> obj root-override-2))
(a1-0 (-> obj root))
)
(rigid-body-method-11 (-> v1-4 state) a1-0)
)
@@ -1044,9 +1044,9 @@ This commonly includes things such as:
(defmethod rigid-body-object-method-40 rigid-body-object ((obj rigid-body-object))
(logior! (-> obj flags) (rigid-body-object-flag enable-collision))
(let ((v1-3 (-> obj root-override-2 root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> obj root-override-2 backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> obj root-override-2 backup-collide-with))
(let ((v1-3 (-> obj root root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> obj root backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> obj root backup-collide-with))
)
0
(none)
@@ -1054,7 +1054,7 @@ This commonly includes things such as:
(defmethod rigid-body-object-method-41 rigid-body-object ((obj rigid-body-object))
(logclear! (-> obj flags) (rigid-body-object-flag enable-collision))
(let ((v1-3 (-> obj root-override-2 root-prim)))
(let ((v1-3 (-> obj root root-prim)))
(set! (-> v1-3 prim-core collide-as) (collide-spec))
(set! (-> v1-3 prim-core collide-with) (collide-spec))
)
@@ -1066,8 +1066,8 @@ This commonly includes things such as:
(defmethod rigid-body-object-method-38 rigid-body-object ((obj rigid-body-object))
(when (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)))
(logior! (-> obj rbody state flags) (rigid-body-flag enable-physics))
(rigid-body-method-26 (-> obj rbody state) (-> obj root-override-2 trans) (-> obj root-override-2 quat))
(vector-float*! (-> obj rbody state lin-momentum) (-> obj root-override-2 transv) (-> obj info info mass))
(rigid-body-method-26 (-> obj rbody state) (-> obj root trans) (-> obj root quat))
(vector-float*! (-> obj rbody state lin-momentum) (-> obj root transv) (-> obj info info mass))
(vector-reset! (-> obj rbody state ang-momentum))
)
0
@@ -1111,12 +1111,12 @@ This commonly includes things such as:
(set! (-> arg0 prim-id) (the-as uint 0))
(vector-reset! (-> arg0 normal))
(vector-reset! (-> arg0 velocity))
(set! (-> arg0 point quad) (-> obj root-override-2 trans quad))
(set! (-> arg0 point quad) (-> obj root trans quad))
(when arg1
(let ((s3-0 (-> arg1 head)))
(when s3-0
(get-intersect-point (-> arg0 point) s3-0 (-> obj root-override-2) arg1)
(let ((s5-1 (get-touched-prim s3-0 (-> obj root-override-2) arg1)))
(get-intersect-point (-> arg0 point) s3-0 (-> obj root) arg1)
(let ((s5-1 (get-touched-prim s3-0 (-> obj root) arg1)))
(when s5-1
(set! (-> arg0 prim-id) (-> s5-1 prim-id))
(vector-! (-> arg0 normal) (-> arg0 point) (the-as vector (-> s5-1 prim-core)))
@@ -1240,10 +1240,10 @@ This commonly includes things such as:
)
)
(else
(set! (-> s5-0 velocity quad) (-> obj root-override-2 transv quad))
(set! (-> s5-0 velocity quad) (-> obj root transv quad))
)
)
(let ((v1-18 (-> arg0 root-override)))
(let ((v1-18 (-> arg0 root)))
(set! (-> s4-0 quad) (-> v1-18 transv quad))
(vector-! (-> s5-0 velocity) (-> v1-18 transv) (-> s5-0 velocity))
)
@@ -1379,7 +1379,7 @@ This commonly includes things such as:
)
(when (not (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force)))
(logior! (-> obj flags) (rigid-body-object-flag player-touching player-standing-on player-contact-force))
(set! (-> obj player-force-position quad) (-> a0-34 root-override trans quad))
(set! (-> obj player-force-position quad) (-> a0-34 root trans quad))
(vector-reset! (-> obj player-force))
(let ((f0-4 (/ 163840.0 (get-inv-mass a0-34)))
(f1-1 1.0)
@@ -1401,7 +1401,7 @@ This commonly includes things such as:
)
(when a0-38
(logior! (-> obj flags) (rigid-body-object-flag player-touching player-impulse-force))
(set! (-> obj player-force-position quad) (-> a0-38 root-override trans quad))
(set! (-> obj player-force-position quad) (-> a0-38 root trans quad))
(let ((f30-2 (* 0.00012207031 (the-as float (-> arg3 param 1))))
(f0-9 (/ 163840.0 (get-inv-mass a0-38)))
)
@@ -1427,7 +1427,7 @@ This commonly includes things such as:
:virtual #t
:trans (behavior ()
(if (and *target* (and (>= (-> self info extra idle-distance)
(vector-vector-distance (-> self root-override-2 trans) (-> *target* control trans))
(vector-vector-distance (-> self root trans) (-> *target* control trans))
)
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
@@ -1444,12 +1444,11 @@ This commonly includes things such as:
:virtual #t
:event rigid-body-object-event-handler
:trans (behavior ()
(if (or (not *target*)
(or (< (+ 4096.0 (-> self info extra idle-distance))
(vector-vector-distance (-> self root-override-2 trans) (-> *target* control trans))
)
(focus-test? *target* teleporting)
)
(if (or (not *target*) (or (< (+ 4096.0 (-> self info extra idle-distance))
(vector-vector-distance (-> self root trans) (-> *target* control trans))
)
(focus-test? *target* teleporting)
)
)
(go-virtual idle)
)
@@ -33,7 +33,7 @@
(defmethod collide-check? focus ((obj focus) (arg0 process-focusable))
(when (and arg0 (not (logtest? (-> arg0 focus-status) (focus-status disable dead))))
(let* ((s5-0 (-> arg0 root-override))
(let* ((s5-0 (-> arg0 root))
(v1-2 (if (type? s5-0 collide-shape)
s5-0
)
@@ -45,8 +45,8 @@
;; DECOMP BEGINS
(deftype process-focusable (process-drawable)
((root-override collide-shape :offset 128)
(focus-status focus-status :offset-assert 200)
((root collide-shape :override)
(focus-status focus-status :offset-assert 200)
)
:heap-base #x50
:method-count-assert 27
@@ -67,7 +67,7 @@
;; WARN: Return type mismatch structure vs vector.
(defmethod get-trans process-focusable ((obj process-focusable) (arg0 int))
"@returns the `trans` [[vector]] from the process's `root` (typically either a [[trsqv]] or a [[collide-shape]])"
(let ((gp-0 (-> obj root-override)))
(let ((gp-0 (-> obj root)))
(the-as vector (cond
((zero? arg0)
(-> gp-0 trans)
@@ -90,11 +90,11 @@
)
(defmethod get-transv process-focusable ((obj process-focusable))
(-> obj root-override transv)
(-> obj root transv)
)
(defmethod get-quat process-focusable ((obj process-focusable) (arg0 int))
(-> obj root-override quat)
(-> obj root quat)
)
(defmethod time-to-apex-or-ground process-focusable ((obj process-focusable) (arg0 int))
@@ -116,4 +116,5 @@
)
(defmacro focus-test? (pfoc &rest status)
`(logtest? (-> (the process-focusable ,pfoc) focus-status) (focus-status ,@status)))
`(logtest? (-> (the process-focusable ,pfoc) focus-status) (focus-status ,@status)))
@@ -89,7 +89,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
:enter (behavior ()
(set! (-> self state-time) (current-time))
(logior! (-> self draw status) (draw-control-status no-draw-bounds))
(let ((v1-6 (-> self root-override root-prim)))
(let ((v1-6 (-> self root root-prim)))
(set! (-> v1-6 prim-core collide-as) (collide-spec))
(set! (-> v1-6 prim-core collide-with) (collide-spec))
)
@@ -98,9 +98,9 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
)
:exit (behavior ()
(logclear! (-> self draw status) (draw-control-status no-draw-bounds))
(let ((v1-3 (-> self root-override root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> self root-override backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> self root-override backup-collide-with))
(let ((v1-3 (-> self root root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> self root backup-collide-with))
)
(none)
)
@@ -146,14 +146,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
)
)
(('touch)
(send-shoves
(-> self root-override)
proc
(the-as touching-shapes-entry (-> event param 0))
0.7
6144.0
16384.0
)
(send-shoves (-> self root) proc (the-as touching-shapes-entry (-> event param 0)) 0.7 6144.0 16384.0)
)
(('say)
(let ((v0-0 (the-as object (current-time))))
@@ -208,7 +201,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
)
)
(and (not (logtest? (focus-status dead in-air in-head pole flut tube pilot mech dark) (-> *target* focus-status)))
(and (or (and (< (-> (target-pos 0) y) (+ (-> self root-override root-prim prim-core world-sphere y) (-> self talk-height)))
(and (or (and (< (-> (target-pos 0) y) (+ (-> self root root-prim prim-core world-sphere y) (-> self talk-height)))
(let ((s5-0 (get-trans self 2))
(f30-0 (if (= (-> gp-0 distance) 0.0)
(-> self talk-distance)
@@ -325,9 +318,9 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
(process-entity-status! self (entity-perm-status no-kill) #f)
(logior! (-> self mask) (process-mask actor-pause))
(logclear! (-> self draw status) (draw-control-status no-draw))
(let ((v1-13 (-> self root-override root-prim)))
(set! (-> v1-13 prim-core collide-as) (-> self root-override backup-collide-as))
(set! (-> v1-13 prim-core collide-with) (-> self root-override backup-collide-with))
(let ((v1-13 (-> self root root-prim)))
(set! (-> v1-13 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-13 prim-core collide-with) (-> self root backup-collide-with))
)
(none)
)
@@ -338,7 +331,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
(suspend)
)
(logior! (-> self draw status) (draw-control-status no-draw))
(let ((v1-17 (-> self root-override root-prim)))
(let ((v1-17 (-> self root root-prim)))
(set! (-> v1-17 prim-core collide-as) (collide-spec))
(set! (-> v1-17 prim-core collide-with) (collide-spec))
)
@@ -402,7 +395,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
(set! (-> s5-0 backup-collide-as) (-> v1-14 prim-core collide-as))
(set! (-> s5-0 backup-collide-with) (-> v1-14 prim-core collide-with))
)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
0
(none)
@@ -428,7 +421,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
(set! s5-0 (+ (-> v1-15 number) 1))
)
)
(let ((v1-19 (the-as collide-shape-prim-group (-> obj root-override root-prim))))
(let ((v1-19 (the-as collide-shape-prim-group (-> obj root root-prim))))
(set! (-> v1-19 transform-index) s5-0)
(dotimes (a0-7 (the-as int (-> v1-19 num-children)))
(set! (-> v1-19 child a0-7 transform-index) s5-0)
@@ -468,8 +461,7 @@ This commonly includes things such as:
(format (clear *temp-string*) "skel-~S" (-> obj draw art-group name))
(let ((s4-3 (s4-2 s5-1 *temp-string* (the-as (pointer uint32) #f))))
(when s4-3
(let ((s5-2 (process-spawn manipy :init manipy-init (-> obj root-override trans) (-> obj entity) s4-3 #f 0 :to obj))
)
(let ((s5-2 (process-spawn manipy :init manipy-init (-> obj root trans) (-> obj entity) s4-3 #f 0 :to obj)))
(send-event (ppointer->process s5-2) 'anim-mode 'mirror)
(send-event (ppointer->process s5-2) 'mirror #t)
)
@@ -22,7 +22,7 @@
(defmethod get-trans simple-focus ((obj simple-focus) (arg0 int))
"@returns the `trans` [[vector]] from the process's `root` (typically either a [[trsqv]] or a [[collide-shape]])"
(-> obj root-override trans)
(-> obj root trans)
)
(defmethod run-logic? simple-focus ((obj simple-focus))
@@ -37,7 +37,7 @@
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('move-trans)
(let ((v0-0 (-> self root-override trans)))
(let ((v0-0 (-> self root trans)))
(set! (-> v0-0 quad) (-> (the-as vector (-> event param 0)) quad))
v0-0
)
@@ -52,7 +52,7 @@
(defbehavior simple-focus-init-by-other simple-focus ()
"Initializes the new [[simple-focus]]. `first-time?` will be set to [[#t]]"
(let ((root (new 'process 'trsqv)))
(set! (-> self root-override) (the-as collide-shape root))
(set! (-> self root) (the-as collide-shape root))
(vector-identity! (-> root scale))
(quaternion-identity! (-> root quat))
)
@@ -8,9 +8,9 @@
;; DECOMP BEGINS
(deftype simple-nav-sphere (process-drawable)
((root-override collide-shape :offset 128)
(first-time? symbol :offset-assert 200)
(track-joint int32 :offset-assert 204)
((root collide-shape :override)
(first-time? symbol :offset-assert 200)
(track-joint int32 :offset-assert 204)
)
:heap-base #x50
:method-count-assert 22
@@ -30,12 +30,12 @@
(go empty-state)
)
(('move-trans)
(move-to-point! (-> self root-override) (the-as vector (-> event param 0)))
(move-to-point! (-> self root) (the-as vector (-> event param 0)))
#t
)
(('set-radius)
(let ((radius (the-as float (-> event param 0)))
(collide-shape (-> self root-override))
(collide-shape (-> self root))
)
(set! (-> collide-shape nav-radius) radius)
(set! (-> collide-shape root-prim local-sphere w) radius)
@@ -73,8 +73,8 @@
(add-debug-sphere
#t
(bucket-id debug2)
(-> self root-override trans)
(-> self root-override nav-radius)
(-> self root trans)
(-> self root nav-radius)
(new 'static 'rgba :r #x80 :g #x40 :a #x80)
)
)
@@ -94,7 +94,7 @@
(gp-0 (new 'stack-no-clear 'vector))
)
(vector<-cspace! gp-0 (-> (the-as process-drawable v1-0) node-list data (-> self track-joint)))
(move-to-point! (-> self root-override) gp-0)
(move-to-point! (-> self root) gp-0)
)
(none)
)
@@ -130,7 +130,7 @@
)
0
(update-transforms s5-0)
(set! (-> self root-override) s5-0)
(set! (-> self root) s5-0)
)
(logclear! (-> self mask) (process-mask actor-pause enemy))
(set! (-> self event-hook)
+58 -8
View File
@@ -20,13 +20,63 @@
;; +++speech-type
(defenum speech-type
:type int8
:bitfield #t
(speech-type-0 0)
(speech-type-1 1)
(speech-type-2 2)
(speech-type-3 3)
(speech-type-4 4)
(speech-type-5 5)
(speech-type-0)
(speech-type-1)
(speech-type-2)
(speech-type-3)
(speech-type-4)
(speech-type-5)
(speech-type-6)
(speech-type-7)
(speech-type-8)
(speech-type-9)
(speech-type-10)
(speech-type-11)
(speech-type-12)
(speech-type-13)
(speech-type-14)
(speech-type-15)
(speech-type-16)
(speech-type-17)
(speech-type-18)
(speech-type-19)
(speech-type-20)
(speech-type-21)
(speech-type-22)
(speech-type-23)
(speech-type-24)
(speech-type-25)
(speech-type-26)
(speech-type-27)
(speech-type-28)
(speech-type-29)
(speech-type-30)
(speech-type-31)
(speech-type-32)
(speech-type-33)
(speech-type-34)
(speech-type-35)
(speech-type-36)
(speech-type-37)
(speech-type-38)
(speech-type-39)
(speech-type-40)
(speech-type-41)
(speech-type-42)
(speech-type-43)
(speech-type-44)
(speech-type-45)
(speech-type-46)
(speech-type-47)
(speech-type-48)
(speech-type-49)
(speech-type-50)
(speech-type-51)
(speech-type-52)
(speech-type-53)
(speech-type-54)
(speech-type-55)
(speech-type-56)
)
;; ---speech-type
@@ -105,7 +155,7 @@
:flag-assert #x11000001c4
(:methods
(speech-control-method-9 (_type_) none 9)
(speech-control-method-10 (_type_ int speech-type-info) none 10)
(speech-table-set! (_type_ speech-type speech-type-info) none 10)
(speech-control-method-11 (_type_) none 11)
(speech-control-method-12 (_type_ process-drawable speech-type) none 12)
(speech-control-method-13 (_type_ handle) none 13)
+160 -160
View File
@@ -242,7 +242,7 @@
(none)
)
(defmethod speech-control-method-10 speech-control ((obj speech-control) (arg0 int) (arg1 speech-type-info))
(defmethod speech-table-set! speech-control ((obj speech-control) (arg0 speech-type) (arg1 speech-type-info))
(set! (-> obj speech-table arg0) arg1)
0
(none)
@@ -278,13 +278,13 @@
(when v1-3
(cond
((focus-test? v1-3 dark)
(speech-control-method-12 obj arg0 (speech-type speech-type-3))
(speech-control-method-12 obj arg0 (speech-type speech-type-8))
)
((focus-test? v1-3 pilot)
(speech-control-method-12 obj arg0 (speech-type speech-type-0 speech-type-1 speech-type-2))
(speech-control-method-12 obj arg0 (speech-type speech-type-7))
)
(else
(speech-control-method-12 obj arg0 (speech-type speech-type-1 speech-type-2))
(speech-control-method-12 obj arg0 (speech-type speech-type-6))
)
)
)
@@ -329,162 +329,162 @@
(dotimes (s5-0 2)
(speech-channel-method-12 (-> obj channel-array s5-0))
)
(speech-control-method-10 obj 0 (new 'static 'speech-type-info
:priority 3
:request-timeout #x12c
:min-delay #x12c
:max-delay #x12c
:list (new 'static 'boxed-array :type string)
)
)
(speech-control-method-10 obj 3 (new 'static 'speech-type-info
:priority 3
:request-timeout #x12c
:min-delay #x12c
:max-delay #x12c
:list (new 'static 'boxed-array :type string
"kg136"
"kg139"
"kg140"
"kg141"
"kg142"
"kg134"
"kg157"
"kg143"
"kg156"
"kg176"
"kg177"
"kg536"
"kg551"
)
)
)
(speech-control-method-10 obj 9 (new 'static 'speech-type-info
:priority 1
:min-delay #x258
:max-delay #x4b0
:list (new 'static 'boxed-array :type string
"kg133"
"kg135"
"kg137"
"kg138"
"kg144"
"kg145"
"kg146"
"kg147"
"kg148"
"kg149"
"kg150"
"kg151"
"kg152"
"kg153"
"kg154"
"kg155"
"kg158"
"kg159"
"kg160"
"kg163"
"kg164"
"kg507"
"kg508"
"kg509"
"kg511"
"kg513"
"kg514"
"kg515"
"kg516"
"kg517"
"kg518"
"kg520"
"kg521"
"kg523"
"kg526"
"kg527"
"kg528"
"kg529"
"kg530"
"kg532"
"kg534"
"kg535"
"kg537"
"kg538"
"kg539"
"kg540"
"kg541"
"kg542"
"kg543"
"kg544"
"kg545"
"kg546"
"kg549"
"kg550"
)
)
)
(speech-control-method-10 obj 10 (new 'static 'speech-type-info
:flags (speech-type-flag random-order)
:priority #xa
:request-timeout #x258
:min-delay #x258
:max-delay #x4b0
:list (new 'static 'boxed-array :type string
"kg165"
"kg165a"
"kg165b"
"kg166"
"kg166a"
"kg166b"
"kg167"
"kg167a"
"kg167b"
"kg168"
"kg168a"
"kg168b"
"kg169"
"kg169a"
"kg169b"
"kg170"
"kg170a"
"kg170b"
"kg171"
"kg171a"
"kg171b"
"kg172"
"kg172a"
"kg172b"
"kg173"
"kg173a"
"kg173b"
"kg174"
"kg174a"
"kg174b"
"kg175"
"kg175a"
"kg175b"
"kg510"
)
)
)
(speech-control-method-10 obj 11 (new 'static 'speech-type-info
:priority 2
:min-delay #x1e
:max-delay #x1e
:list (new 'static 'boxed-array :type string
"kg386a"
"kg428a"
"kg641"
"kg650"
"kg338a"
"kg339a"
"kg340a"
"kg341a"
"kg342a"
"kg343a"
"kg344a"
"kg512"
)
)
)
(speech-table-set! obj (speech-type speech-type-0) (new 'static 'speech-type-info
:priority 3
:request-timeout #x12c
:min-delay (seconds 1)
:max-delay (seconds 1)
:list (new 'static 'boxed-array :type string)
)
)
(speech-table-set! obj (speech-type speech-type-3) (new 'static 'speech-type-info
:priority 3
:request-timeout #x12c
:min-delay (seconds 1)
:max-delay (seconds 1)
:list (new 'static 'boxed-array :type string
"kg136"
"kg139"
"kg140"
"kg141"
"kg142"
"kg134"
"kg157"
"kg143"
"kg156"
"kg176"
"kg177"
"kg536"
"kg551"
)
)
)
(speech-table-set! obj (speech-type speech-type-9) (new 'static 'speech-type-info
:priority 1
:min-delay (seconds 2)
:max-delay (seconds 4)
:list (new 'static 'boxed-array :type string
"kg133"
"kg135"
"kg137"
"kg138"
"kg144"
"kg145"
"kg146"
"kg147"
"kg148"
"kg149"
"kg150"
"kg151"
"kg152"
"kg153"
"kg154"
"kg155"
"kg158"
"kg159"
"kg160"
"kg163"
"kg164"
"kg507"
"kg508"
"kg509"
"kg511"
"kg513"
"kg514"
"kg515"
"kg516"
"kg517"
"kg518"
"kg520"
"kg521"
"kg523"
"kg526"
"kg527"
"kg528"
"kg529"
"kg530"
"kg532"
"kg534"
"kg535"
"kg537"
"kg538"
"kg539"
"kg540"
"kg541"
"kg542"
"kg543"
"kg544"
"kg545"
"kg546"
"kg549"
"kg550"
)
)
)
(speech-table-set! obj (speech-type speech-type-10) (new 'static 'speech-type-info
:flags (speech-type-flag random-order)
:priority 10
:request-timeout #x258
:min-delay (seconds 2)
:max-delay (seconds 4)
:list (new 'static 'boxed-array :type string
"kg165"
"kg165a"
"kg165b"
"kg166"
"kg166a"
"kg166b"
"kg167"
"kg167a"
"kg167b"
"kg168"
"kg168a"
"kg168b"
"kg169"
"kg169a"
"kg169b"
"kg170"
"kg170a"
"kg170b"
"kg171"
"kg171a"
"kg171b"
"kg172"
"kg172a"
"kg172b"
"kg173"
"kg173a"
"kg173b"
"kg174"
"kg174a"
"kg174b"
"kg175"
"kg175a"
"kg175b"
"kg510"
)
)
)
(speech-table-set! obj (speech-type speech-type-11) (new 'static 'speech-type-info
:priority 2
:min-delay (seconds 0.1)
:max-delay (seconds 0.1)
:list (new 'static 'boxed-array :type string
"kg386a"
"kg428a"
"kg641"
"kg650"
"kg338a"
"kg339a"
"kg340a"
"kg341a"
"kg342a"
"kg343a"
"kg344a"
"kg512"
)
)
)
0
(none)
)
@@ -3110,7 +3110,7 @@
(when (= *cheat-mode* 'debug)
(when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2))
(set! (-> self control time-of-last-debug-heal) (current-time))
(pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) 100.0 (the-as handle #f))
(go target-board-stance)
)
)
@@ -3188,22 +3188,22 @@
(go target-stance)
)
(else
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(go target-death (-> gp-0 mode))
)
)
)
(('drown-death 'sharkey 'lava 'dark-eco-pool 'melt 'instant-death 'crush 'death 'grenade 'big-explosion 'bot)
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(if (= (-> self game mode) 'play)
(go target-death (-> gp-0 mode))
)
)
(('death)
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
)
(else
(pickup-collectable! (-> self fact-override) (pickup-type health) (- (-> gp-0 damage)) (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) (- (-> gp-0 damage)) (the-as handle #f))
)
)
(target-hit-effect gp-0)
@@ -3216,8 +3216,7 @@
)
)
)
(when (not (and (= (-> self game mode) 'play) (>= 0.0 (-> (the-as fact-info-target (-> self fact-override)) health)))
)
(when (not (and (= (-> self game mode) 'play) (>= 0.0 (-> (the-as fact-info-target (-> self fact)) health))))
(when (= (-> gp-0 knock) 8)
(set-quaternion! (-> self control) (-> self control dir-targ))
(set-forward-vel (* -3.0 (-> gp-0 shove-back)))
@@ -3244,7 +3243,7 @@
)
(target-hit-move gp-0 (target-hit-orient gp-0 s5-0) target-board-falling-anim-trans (-> gp-0 speed))
)
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> (the-as fact-info-target (-> self fact-override)) health)))
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> (the-as fact-info-target (-> self fact)) health)))
(go target-death (-> gp-0 mode))
)
)
@@ -24,7 +24,7 @@
(defbehavior board-post board ()
(let* ((a0-0 (-> self parent))
(v1-0 (if a0-0
(-> (the-as target (-> a0-0 0)) self-override)
(-> (the-as target (-> a0-0 0)) self)
)
)
)
@@ -2965,13 +2965,11 @@
"Add specified trick and point amount to trick list."
(send-event (handle->process (-> obj process 0 notify)) 'notify 'trick-point arg0)
(when (and (< (-> obj trick-count) 16)
(and (< 0.0 arg1)
(nonzero? (-> (the-as fact-info-target (-> obj process 0 fact-override)) trick-point-duration))
)
(and (< 0.0 arg1) (nonzero? (-> (the-as fact-info-target (-> obj process 0 fact)) trick-point-duration)))
)
(let ((s4-0 0))
(when (>= (- (-> *display* game-clock frame-counter)
(-> (the-as fact-info-target (-> obj process 0 fact-override)) trick-point-pickup-time)
(-> (the-as fact-info-target (-> obj process 0 fact)) trick-point-pickup-time)
)
(seconds 30)
)
@@ -3025,44 +3023,27 @@
(defmethod flush-trick-list board-info ((obj board-info))
"Flush trick list and give out points."
(with-pp
(let ((f30-0 0.0))
(dotimes (v1-0 (-> obj trick-count))
(+! f30-0 (-> obj trick-points-array v1-0))
)
(when (< 0.0 f30-0)
(send-event
(handle->process (-> obj process 0 notify))
'notify
'trick-flush
f30-0
(-> obj trick-list)
(-> obj trick-count)
)
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 2)
(set! (-> a1-1 message) 'get-pickup)
(set! (-> a1-1 param 0) (the-as uint 19))
(set! (-> a1-1 param 1) (the-as uint f30-0))
(let ((t9-1 send-event-function)
(v1-22 (-> obj process))
)
(t9-1
(if v1-22
(-> v1-22 0 self-override)
)
a1-1
)
)
)
(sound-play "trick-score")
(#when PC_PORT
(end-combo! *board-trick-tracker*)))
(let ((f30-0 0.0))
(dotimes (v1-0 (-> obj trick-count))
(+! f30-0 (-> obj trick-points-array v1-0))
)
(when (< 0.0 f30-0)
(send-event
(handle->process (-> obj process 0 notify))
'notify
'trick-flush
f30-0
(-> obj trick-list)
(-> obj trick-count)
)
(send-event (ppointer->process (-> obj process)) 'get-pickup 19 f30-0)
(sound-play "trick-score")
(#when PC_PORT
(end-combo! *board-trick-tracker*))
)
(set! (-> obj trick-count) 0)
0
0
(none)
)
(set! (-> obj trick-count) 0)
0
0
(none)
)
@@ -64,7 +64,7 @@
(vector-rotate-y! s1-0 s1-0 16384.0)
(vector+float*! s1-0 s5-1 s1-0 -8806.4)
(set! (-> s2-0 start-pos quad) (-> s1-0 quad))
(vector-float*! (-> s2-0 move-dist) (-> obj root-override dynam gravity-normal) -81920.0)
(vector-float*! (-> s2-0 move-dist) (-> obj root dynam gravity-normal) -81920.0)
(let ((v1-11 s2-0))
(set! (-> v1-11 radius) 1228.8)
(set! (-> v1-11 collide-with) (collide-spec backgnd obstacle hit-by-player-list hit-by-others-list))
@@ -83,7 +83,7 @@
)
(let ((s4-1 (get-field-spec-by-id s4-0 (sp-field-id spt-rotate-y))))
(if s4-1
(set! (-> s4-1 initial-valuef) (y-angle (-> obj root-override)))
(set! (-> s4-1 initial-valuef) (y-angle (-> obj root)))
)
)
(let ((t9-7 sp-launch-particles-var)
@@ -96,7 +96,7 @@
)
(let ((s4-2 (get-field-spec-by-id (-> *part-id-table* 195) (sp-field-id spt-rotate-y))))
(if s4-2
(set! (-> s4-2 initial-valuef) (y-angle (-> obj root-override)))
(set! (-> s4-2 initial-valuef) (y-angle (-> obj root)))
)
)
(let ((t9-10 sp-launch-particles-var)
@@ -120,7 +120,7 @@
(vf6 :class vf)
)
(init-vf0-vector)
(let ((s3-1 (vector-! (new 'stack-no-clear 'vector) (-> obj root-override trans) (-> obj init-pos))))
(let ((s3-1 (vector-! (new 'stack-no-clear 'vector) (-> obj root trans) (-> obj init-pos))))
(draw-beam (-> *part-id-table* 191) (-> obj init-pos) s3-1 #t #t)
(draw-beam (-> *part-id-table* 194) (-> obj init-pos) (-> obj starting-dir) #f #t)
(let ((s5-0 (-> *part-id-table* 206))
@@ -178,7 +178,7 @@
(t2-0 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> obj root-override trans quad))
(set! (-> t3-0 trans quad) (-> obj root trans quad))
((the-as (function object object object object object object object object none) t9-13)
a0-19
a1-15
@@ -223,7 +223,7 @@
(defmethod made-impact? gun-blue-shot ((obj gun-blue-shot))
"TODO - queries the collision cache, return true/false"
(let ((v1-0 (-> obj root-override))
(let ((v1-0 (-> obj root))
(t1-0 (new 'stack-no-clear 'collide-query))
)
(let ((a1-0 t1-0))
@@ -240,7 +240,7 @@
(defun gun-blue-shot-move ((arg0 gun-blue-shot))
(projectile-move-fill-line-sphere arg0)
(if (logtest? (-> arg0 root-override status) (collide-status touch-surface))
(if (logtest? (-> arg0 root status) (collide-status touch-surface))
(go (method-of-object arg0 impact))
)
0
@@ -301,9 +301,9 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
(set! (-> s5-0 event-self) 'touched)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj root-override pat-ignore-mask)
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
0
@@ -314,13 +314,9 @@
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
(with-pp
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1))
(set! (-> obj init-pos quad) (-> obj root-override trans quad))
(set! (-> obj init-pos quad) (-> obj root trans quad))
(set! (-> obj init-dir quad) (-> obj starting-dir quad))
(vector-normalize-copy!
(-> obj root-override transv)
(-> obj init-dir)
(* 327680.0 (-> pp clock frames-per-second))
)
(vector-normalize-copy! (-> obj root transv) (-> obj init-dir) (* 327680.0 (-> pp clock frames-per-second)))
(set! (-> obj attack-mode) 'eco-blue)
(set! (-> obj max-speed) (* 327680.0 (-> pp clock frames-per-second)))
(set! (-> obj timeout) 1)
@@ -145,7 +145,7 @@
(defmethod init-proj-settings! gun-dark-shot ((obj gun-dark-shot))
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
(set! (-> obj attack-mode) 'eco-dark)
(vector-normalize! (-> obj root-override transv) (+ 225280.0 (* 225280.0 (-> obj charge-level))))
(vector-normalize! (-> obj root transv) (+ 225280.0 (* 225280.0 (-> obj charge-level))))
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 72) obj))
(set! (-> obj blast-radius) 40960.0)
(set! (-> obj size-t) 0.0)
@@ -178,7 +178,7 @@
(set! (-> *part-id-table* 218 init-specs 2 initial-valuef) (lerp 409.6 8192.0 (-> obj size-t)))
(set! (-> *part-id-table* 217 init-specs 1 initial-valuef) (lerp 0.1 1.0 (-> obj size-t)))
(set! (-> *part-id-table* 217 init-specs 2 initial-valuef) (lerp 409.6 3686.4 (-> obj size-t)))
(spawn (-> obj part) (-> obj root-override trans))
(spawn (-> obj part) (-> obj root trans))
)
)
(ja-post)
@@ -222,7 +222,7 @@
((or (< (- (current-time) (-> self state-time)) (seconds 0.3)) (cpad-hold? 0 r1))
(set! (-> self size-t) (fmin 1.0 (* 0.016666668 (the float (- (current-time) (-> self state-time))))))
(let ((t9-1 vector<-cspace!)
(a0-13 (-> self root-override trans))
(a0-13 (-> self root trans))
(v1-26 (-> self parent))
)
(t9-1 a0-13 (-> (the-as process-drawable (if v1-26
@@ -249,7 +249,7 @@
(none)
)
:post (behavior ()
(sound-play "pmkr-charge" :id (-> self charge-sound) :position (-> self root-override trans))
(sound-play "pmkr-charge" :id (-> self charge-sound) :position (-> self root trans))
(spawn-impact-particles self)
(none)
)
@@ -263,7 +263,7 @@
(t9-0)
)
)
(set! (-> self core-position quad) (-> self root-override trans quad))
(set! (-> self core-position quad) (-> self root trans quad))
(let ((v1-5 (-> self core-velocity))
(a0-3 (-> self parent))
)
@@ -314,7 +314,7 @@
(t2-0 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> self root-override trans quad))
(set! (-> t3-0 trans quad) (-> self root trans quad))
((the-as (function object object object object object object object object none) t9-5)
a0-18
a1-4
@@ -329,7 +329,7 @@
(-> gp-2 ppointer)
)
)
(draw-beam (-> *part-id-table* 210) (-> self root-override trans) (-> self core-velocity) #f #t)
(draw-beam (-> *part-id-table* 210) (-> self root trans) (-> self core-velocity) #f #t)
(none)
)
:trans (behavior ()
@@ -387,14 +387,14 @@
)
)
(vector-cross! (the-as vector (-> s5-0 vector)) (-> s5-0 vector 1) (-> s5-0 vector 2))
(matrix->quaternion (-> self root-override quat) s5-0)
(matrix->quaternion (-> self root quat) s5-0)
)
(vector+! (-> self core-position) (-> self core-position) (-> self core-velocity))
(vector+! gp-0 (-> self core-position) (-> self spin-vector))
(vector-! (-> self root-override transv) gp-0 (-> self root-override trans))
(vector-! (-> self root transv) gp-0 (-> self root trans))
)
(let ((v1-31 (-> self root-override transv)))
(.lvf vf1 (&-> (-> self root-override transv) quad))
(let ((v1-31 (-> self root transv)))
(.lvf vf1 (&-> (-> self root transv) quad))
(let ((f0-12 (-> self clock frames-per-second)))
(.mov at-0 f0-12)
)
@@ -404,11 +404,11 @@
(.svf (&-> v1-31 quad) vf1)
)
(projectile-move-fill-line-sphere self)
(if (logtest? (-> self root-override status) (collide-status touch-surface))
(if (logtest? (-> self root status) (collide-status touch-surface))
(go-virtual impact)
)
(sound-play "pmkr-fire" :id (-> self fire-sound) :position (-> self root-override trans))
(sound-play "pmkr-trail" :id (-> self trail-sound) :position (-> self root-override trans))
(sound-play "pmkr-fire" :id (-> self fire-sound) :position (-> self root trans))
(sound-play "pmkr-trail" :id (-> self trail-sound) :position (-> self root trans))
(none)
)
)
@@ -537,7 +537,7 @@
(a1-1 (-> *part-id-table* 215))
(a2-1 *launch-matrix*)
)
(set! (-> a2-1 trans quad) (-> self root-override trans quad))
(set! (-> a2-1 trans quad) (-> self root trans quad))
(t9-2 a0-3 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
(let ((t9-3 sp-launch-particles-var)
@@ -545,7 +545,7 @@
(a1-2 (-> *part-id-table* 216))
(a2-2 *launch-matrix*)
)
(set! (-> a2-2 trans quad) (-> self root-override trans quad))
(set! (-> a2-2 trans quad) (-> self root trans quad))
(t9-3 a0-4 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
(let ((gp-0 (-> *part-id-table* 430)))
@@ -559,7 +559,7 @@
(a0-8 *sp-particle-system-2d*)
(a2-3 *launch-matrix*)
)
(set! (-> a2-3 trans quad) (-> self root-override trans quad))
(set! (-> a2-3 trans quad) (-> self root trans quad))
(t9-5 a0-8 gp-0 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
)
@@ -594,10 +594,10 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 2))
(set! (-> s5-0 event-self) 'touched)
(set! (-> self root-override) s5-0)
(set! (-> self root) s5-0)
)
(set! (-> self root-override trans quad) (-> arg0 quad))
(let ((v1-16 (-> self root-override root-prim)))
(set! (-> self root trans quad) (-> arg0 quad))
(let ((v1-16 (-> self root root-prim)))
(set! (-> v1-16 prim-core collide-as) (collide-spec))
(set! (-> v1-16 prim-core collide-with) (collide-spec))
)
@@ -651,14 +651,14 @@
)
)
)
(let ((v1-16 (-> self root-override root-prim)))
(let ((v1-16 (-> self root root-prim)))
(set! (-> v1-16 prim-core collide-as) (collide-spec))
(set! (-> v1-16 prim-core collide-with) (collide-spec))
)
0
(let ((gp-1 (new 'stack-no-clear 'explosion-init-params)))
(set! (-> gp-1 spawn-point quad) (-> self root-override trans quad))
(quaternion-copy! (-> gp-1 spawn-quat) (-> self root-override quat))
(set! (-> gp-1 spawn-point quad) (-> self root trans quad))
(quaternion-copy! (-> gp-1 spawn-quat) (-> self root quat))
(set! (-> gp-1 radius) 36864.0)
(set! (-> gp-1 group) (-> *part-group-id-table* 71))
(set! (-> gp-1 collide-with)
@@ -671,7 +671,7 @@
(s3-0 (the-as (pointer collide-shape) (new 'stack-no-clear 'array 'collide-shape 16)))
(a1-8 (new 'stack-no-clear 'sphere))
)
(set! (-> a1-8 quad) (-> self root-override trans quad))
(set! (-> a1-8 quad) (-> self root trans quad))
(set! (-> a1-8 r) (-> self blast-radius))
(let ((gp-2 (fill-actor-list-for-sphere *actor-hash* a1-8 s3-0 16)))
(let ((s1-0 (the-as process-drawable #f))
@@ -695,7 +695,7 @@
(not (logtest? (process-mask no-track) (-> s0-0 mask)))
)
(set! sv-288 (get-trans (the-as process-focusable s0-0) 3))
(let ((f28-0 (- (vector-vector-distance (-> self root-override trans) sv-288) (-> sv-288 w))))
(let ((f28-0 (- (vector-vector-distance (-> self root trans) sv-288) (-> sv-288 w))))
(set! sv-304 s0-0)
(if (and (not (if (type? sv-304 crate)
sv-304
@@ -748,7 +748,7 @@
(go-virtual fizzle)
)
(if s5-1
(process-spawn gun-dark-shot :init gun-dark-shot-init-fizzle (-> self root-override trans))
(process-spawn gun-dark-shot :init gun-dark-shot-init-fizzle (-> self root trans))
)
)
(countdown (s5-3 gp-2)
+16 -16
View File
@@ -11,15 +11,15 @@
;; DECOMP BEGINS
(deftype gun-red-shot (process-drawable)
((root-override collide-shape-moving :offset 128)
(probe-count int32 :offset-assert 200)
(probe-mask uint32 :offset-assert 204)
(actor-count int32 :offset-assert 208)
(attack-id uint32 :offset-assert 212)
(start-pos vector :inline :offset-assert 224)
(start-dir vector :inline :offset-assert 240)
(start-rot vector :inline :offset-assert 256)
(probe-dir vector 19 :inline :offset-assert 272)
((root collide-shape-moving :override)
(probe-count int32 :offset-assert 200)
(probe-mask uint32 :offset-assert 204)
(actor-count int32 :offset-assert 208)
(attack-id uint32 :offset-assert 212)
(start-pos vector :inline :offset-assert 224)
(start-dir vector :inline :offset-assert 240)
(start-rot vector :inline :offset-assert 256)
(probe-dir vector 19 :inline :offset-assert 272)
)
:heap-base #x1c0
:method-count-assert 30
@@ -255,7 +255,7 @@
(vector-float*! s5-0 s5-0 43417.6)
(vector+! s5-0 s5-0 (-> obj start-pos))
(set! (-> s5-0 w) 43827.2)
(let ((s4-0 (-> obj root-override root-prim prim-core collide-with)))
(let ((s4-0 (-> obj root root-prim prim-core collide-with)))
(set! *actor-list-length* 0)
(if (logtest? s4-0 (collide-spec hit-by-others-list))
(set! *actor-list-length* (fill-actor-list-for-sphere *actor-hash* (the-as sphere s5-0) *actor-list* 256))
@@ -385,7 +385,7 @@
(vf2 :class vf)
)
(init-vf0-vector)
(let ((gp-0 (-> obj root-override)))
(let ((gp-0 (-> obj root)))
(let ((v1-0 (new 'stack-no-clear 'collide-query)))
(set! (-> gp-0 trans quad) (-> obj start-pos quad))
(vector-float*! (-> gp-0 transv) arg0 61440.0)
@@ -421,7 +421,7 @@
)
(defmethod gun-red-shot-method-24 gun-red-shot ((obj gun-red-shot))
(let ((v1-0 (-> obj root-override))
(let ((v1-0 (-> obj root))
(t1-0 (new 'stack-no-clear 'collide-query))
)
(let ((a1-0 t1-0))
@@ -539,14 +539,14 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
(set! (-> s5-0 event-self) 'touched)
(set! (-> self root-override) s5-0)
(set! (-> self root) s5-0)
)
(let ((s5-1 (-> self root-override)))
(let ((s5-1 (-> self root)))
(set! (-> s5-1 trans quad) (-> arg0 quad))
(quaternion-copy! (-> s5-1 quat) (-> (the-as process-drawable (-> self parent 0)) root quat))
(vector-identity! (-> s5-1 scale))
)
(update-transforms (-> self root-override))
(update-transforms (-> self root))
(set! (-> self event-hook) gun-red-shot-event-handler)
(set! (-> self mask) (logior (process-mask projectile) (-> self mask)))
(logclear! (-> self mask) (process-mask enemy))
@@ -589,7 +589,7 @@
)
(draw-beam (-> *part-id-table* 187) (-> self start-pos) (-> self start-dir) #f #t)
(sound-play "red-shot-fire")
(vector-float*! (-> self root-override transv) (-> self start-dir) 61440.0)
(vector-float*! (-> self root transv) (-> self start-dir) 61440.0)
(the-as gun-red-shot (if (gun-red-shot-method-24 self)
(go-virtual blocked)
(go-virtual idle)
+3 -8
View File
@@ -30,9 +30,9 @@
(let ((t9-3 (method-of-type projectile-bounce init-proj-settings!)))
(t9-3 obj)
)
(quaternion-copy! (-> obj root-override quat) (-> (the-as gun (-> obj parent 0)) root quat))
(quaternion-copy! (-> obj root quat) (-> (the-as gun (-> obj parent 0)) root quat))
(set! (-> obj timeout) (seconds 4))
(set! (-> (the-as collide-shape (-> obj root-override)) root-prim local-sphere w) 3276.8)
(set! (-> (the-as collide-shape (-> obj root)) root-prim local-sphere w) 3276.8)
(logclear! (-> obj mask) (process-mask projectile))
0
(none)
@@ -950,12 +950,7 @@
(let ((v1-13 s4-0))
(set! (-> v1-13 radius) (-> obj track-beam-size))
(set! (-> v1-13 collide-with) (-> obj process 0 control root-prim prim-core collide-with))
(let ((a0-9 (-> obj process)))
(set! (-> v1-13 ignore-process0) (if a0-9
(-> a0-9 0 self-override)
)
)
)
(set! (-> v1-13 ignore-process0) (ppointer->process (-> obj process)))
(set! (-> v1-13 ignore-process1) #f)
(set! (-> v1-13 ignore-pat)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
@@ -80,7 +80,7 @@
(vf7 :class vf)
)
(init-vf0-vector)
(let* ((s4-0 (-> obj root-override trans))
(let* ((s4-0 (-> obj root trans))
(a1-0 (-> obj tail-pos))
(s5-1 (vector-! (new 'stack-no-clear 'vector) s4-0 a1-0))
(f30-0 (vector-length s5-1))
@@ -191,7 +191,7 @@
(t2-0 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> obj root-override trans quad))
(set! (-> t3-0 trans quad) (-> obj root trans quad))
((the-as (function object object object object object object object object none) t9-2)
a0-3
a1-2
@@ -228,7 +228,7 @@
(t2-1 #f)
(t3-1 *launch-matrix*)
)
(set! (-> t3-1 trans quad) (-> obj root-override trans quad))
(set! (-> t3-1 trans quad) (-> obj root trans quad))
((the-as (function object object object object object object object object none) t9-5)
a0-6
a1-5
@@ -263,7 +263,7 @@
(sound-play "yellow-shot-fiz")
)
(else
(sound-play "yellow-shot-std" :id (-> obj sound-id) :position (-> obj root-override trans))
(sound-play "yellow-shot-std" :id (-> obj sound-id) :position (-> obj root trans))
)
)
)
@@ -272,7 +272,7 @@
(defmethod made-impact? gun-yellow-shot ((obj gun-yellow-shot))
"TODO - queries the collision cache, return true/false"
(let ((v1-0 (-> obj root-override))
(let ((v1-0 (-> obj root))
(t1-0 (new 'stack-no-clear 'collide-query))
)
(let ((a0-1 t1-0))
@@ -284,7 +284,7 @@
(set! (-> a0-1 action-mask) (collide-action solid))
)
(when (fill-and-try-snap-to-surface v1-0 (-> v1-0 transv) -10240.0 12697.6 -4096.0 t1-0)
(if (logtest? (-> obj root-override status) (collide-status touch-actor))
(if (logtest? (-> obj root status) (collide-status touch-actor))
(set! (-> obj hit-actor?) #t)
)
#t
@@ -294,7 +294,7 @@
(defun gun-yellow-shot-move ((arg0 gun-yellow-shot))
(projectile-move-fill-line-sphere arg0)
(let ((s5-0 (-> arg0 root-override)))
(let ((s5-0 (-> arg0 root)))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(vector-! s4-0 (-> arg0 tail-pos) (-> s5-0 trans))
(let ((f0-0 (vector-length s4-0)))
@@ -305,7 +305,7 @@
)
)
(when (logtest? (-> s5-0 status) (collide-status touch-surface))
(if (logtest? (-> arg0 root-override status) (collide-status touch-actor))
(if (logtest? (-> arg0 root status) (collide-status touch-actor))
(set! (-> arg0 hit-actor?) #t)
)
(let ((v1-14 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> arg0 tail-pos) (-> s5-0 trans)) 2048.0))
@@ -313,7 +313,7 @@
)
(set! (-> a1-5 quad) (-> s5-0 trans quad))
(vector+! a1-5 a1-5 v1-14)
(move-to-point! (-> arg0 root-override) a1-5)
(move-to-point! (-> arg0 root) a1-5)
)
(go (method-of-object arg0 impact))
)
@@ -365,9 +365,9 @@
)
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
(set! (-> s5-0 event-self) 'touched)
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj root-override pat-ignore-mask)
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
0
@@ -377,7 +377,7 @@
(defmethod init-proj-settings! gun-yellow-shot ((obj gun-yellow-shot))
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
(set! (-> obj hit-actor?) #f)
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
(set! (-> obj tail-pos quad) (-> obj root trans quad))
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1))
(set! (-> obj attack-mode) 'eco-yellow)
(set! (-> obj max-speed) 819200.0)
+6 -6
View File
@@ -34,8 +34,8 @@
(set! (-> self control time-of-last-surface-change) (current-time))
)
(surface-mult! (-> self control current-surface) (-> self control mod-surface) (-> self control surf))
(when (and (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 3)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
(when (and (and (= (-> (the-as fact-info-target (-> self fact)) eco-type) 3)
(>= (-> (the-as fact-info-target (-> self fact)) eco-level) 1.0)
)
(or (= (-> self control mod-surface name) 'run) (= (-> self control mod-surface name) 'jump))
)
@@ -2216,14 +2216,14 @@
(let ((s5-0 (new 'stack-no-clear 'vector)))
(let ((s4-1 (vector+float*!
(new 'stack-no-clear 'vector)
(-> (the-as swingpole s2-0) root-override trans)
(-> (the-as swingpole s2-0) root trans)
gp-0
(the-as float (-> (the-as swingpole s2-0) edge-length))
)
)
(s3-1 (vector+float*!
(new 'stack-no-clear 'vector)
(-> (the-as swingpole s2-0) root-override trans)
(-> (the-as swingpole s2-0) root trans)
gp-0
(- (-> (the-as swingpole s2-0) edge-length))
)
@@ -2246,7 +2246,7 @@
(add-debug-vector
#t
(bucket-id debug-no-zbuf1)
(-> (the-as swingpole s2-0) root-override trans)
(-> (the-as swingpole s2-0) root trans)
(-> (the-as swingpole s2-0) dir)
(meters 3)
(new 'static 'rgba :r #xff :b #xff :a #x80)
@@ -3259,7 +3259,7 @@
(set! (-> obj leg-ik 1 elbow-rotation-axis) (the-as uint 0))
(set! (-> obj foot 0) (new 'process 'joint-mod (joint-mod-mode foot-rot) obj 29))
(set! (-> obj foot 1) (new 'process 'joint-mod (joint-mod-mode foot-rot) obj 36))
(set! (-> obj fact-override)
(set! (-> obj fact)
(new 'process 'fact-info-target obj (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc))
)
(target-gun-setup (logtest? (-> obj game features) (game-feature gun)))
+55 -178
View File
@@ -255,74 +255,28 @@ Returns `-1.0` if it exceeds the maximum allowed"
(-> arg0 local-point z)
)
)
(let* ((t9-13 change-parent)
(v1-42 (-> arg0 process))
(a0-28 (if v1-42
(-> v1-42 0 self-override)
)
)
(v1-44 (-> obj process))
)
(t9-13 a0-28 (if v1-44
(-> v1-44 0 self-override)
)
)
)
(let* ((v1-46 (-> arg0 process))
(v1-49 (-> (the-as collide-shape (-> (the-as process-drawable (if v1-46
(-> v1-46 0 self-override)
)
)
root
)
)
root-prim
)
)
)
(let ((a0-30 (-> v1-49 prim-core collide-as))
(a1-25 (-> arg0 process))
(change-parent (ppointer->process (-> arg0 process)) (ppointer->process (-> obj process)))
(let ((v1-49 (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
root-prim
)
)
)
(set! (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
backup-collide-as
)
(-> v1-49 prim-core collide-as)
)
(set! (-> (the-as collide-shape (-> (the-as process-drawable (if a1-25
(-> a1-25 0 self-override)
)
)
root
)
)
backup-collide-as
)
a0-30
)
)
(let ((v1-50 (-> v1-49 prim-core collide-with))
(a0-31 (-> arg0 process))
(set! (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
backup-collide-with
)
(-> v1-49 prim-core collide-with)
)
(set! (-> (the-as collide-shape (-> (the-as process-drawable (if a0-31
(-> a0-31 0 self-override)
)
)
root
)
)
backup-collide-with
)
v1-50
)
)
)
(let* ((v1-51 (-> arg0 process))
(v1-54 (-> (the-as collide-shape (-> (the-as process-drawable (if v1-51
(-> v1-51 0 self-override)
)
)
root
)
)
root-prim
)
)
)
(let ((v1-54 (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
root-prim
)
)
)
(set! (-> v1-54 prim-core collide-as) (collide-spec))
(set! (-> v1-54 prim-core collide-with) (collide-spec))
)
@@ -348,54 +302,23 @@ Returns `-1.0` if it exceeds the maximum allowed"
)
(set! (-> obj other) (the-as handle #f))
(set! (-> arg0 other) (the-as handle #f))
(let ((t9-3 change-parent)
(v1-11 (-> arg0 process))
)
(t9-3
(if v1-11
(-> v1-11 0 self-override)
(change-parent (ppointer->process (-> arg0 process)) *entity-pool*)
(let ((v1-16
(-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
root-prim
)
)
)
(set! (-> v1-16 prim-core collide-as)
(-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
backup-collide-as
)
)
(set! (-> v1-16 prim-core collide-with)
(-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
backup-collide-with
)
)
*entity-pool*
)
)
(let* ((v1-13 (-> arg0 process))
(v1-16 (-> (the-as collide-shape (-> (the-as process-drawable (if v1-13
(-> v1-13 0 self-override)
)
)
root
)
)
root-prim
)
)
)
(let ((a0-8 (-> arg0 process)))
(set! (-> v1-16 prim-core collide-as)
(-> (the-as collide-shape (-> (the-as process-drawable (if a0-8
(-> a0-8 0 self-override)
)
)
root
)
)
backup-collide-as
)
)
)
(let ((a0-12 (-> arg0 process)))
(set! (-> v1-16 prim-core collide-with)
(-> (the-as collide-shape (-> (the-as process-drawable (if a0-12
(-> a0-12 0 self-override)
)
)
root
)
)
backup-collide-with
)
)
)
)
0
(none)
@@ -518,74 +441,28 @@ Returns `-1.0` if it exceeds the maximum allowed"
)
)
(vector+float*! arg1 (-> arg0 point) arg2 (- (-> arg0 carry-radius)))
(let* ((t9-7 change-parent)
(v1-42 (-> arg0 process))
(a0-30 (if v1-42
(-> v1-42 0 self-override)
)
)
(v1-44 (-> obj process))
)
(t9-7 a0-30 (if v1-44
(-> v1-44 0 self-override)
)
(change-parent (ppointer->process (-> arg0 process)) (ppointer->process (-> obj process)))
(let ((v1-49 (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
root-prim
)
)
)
(set! (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
backup-collide-as
)
(-> v1-49 prim-core collide-as)
)
(set! (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
backup-collide-with
)
(-> v1-49 prim-core collide-with)
)
)
(let* ((v1-46 (-> arg0 process))
(v1-49 (-> (the-as collide-shape (-> (the-as process-drawable (if v1-46
(-> v1-46 0 self-override)
)
)
root
)
)
root-prim
)
)
)
(let ((a0-32 (-> v1-49 prim-core collide-as))
(a1-7 (-> arg0 process))
)
(set! (-> (the-as collide-shape (-> (the-as process-drawable (if a1-7
(-> a1-7 0 self-override)
)
)
root
)
)
backup-collide-as
)
a0-32
)
)
(let ((v1-50 (-> v1-49 prim-core collide-with))
(a0-33 (-> arg0 process))
)
(set! (-> (the-as collide-shape (-> (the-as process-drawable (if a0-33
(-> a0-33 0 self-override)
)
)
root
)
)
backup-collide-with
)
v1-50
)
)
)
(let* ((v1-51 (-> arg0 process))
(v1-54 (-> (the-as collide-shape (-> (the-as process-drawable (if v1-51
(-> v1-51 0 self-override)
)
)
root
)
)
root-prim
)
)
)
(let ((v1-54 (-> (the-as collide-shape (-> (the-as process-drawable (ppointer->process (-> arg0 process))) root))
root-prim
)
)
)
(set! (-> v1-54 prim-core collide-as) (collide-spec))
(set! (-> v1-54 prim-core collide-with) (collide-spec))
)
@@ -206,7 +206,7 @@
(grunt-mech-info-method-10 s4-0)
(let ((gp-0 -1))
(let ((f30-0 0.0)
(s3-0 (-> obj root-override2 trans))
(s3-0 (-> obj root trans))
)
(countdown (s2-0 4)
(let ((s1-0 (-> s4-0 holds s2-0)))
@@ -216,7 +216,7 @@
(set! (-> s0-0 quad) (-> s1-0 world-mat vector 2 quad))
(set! (-> s0-0 y) 0.0)
(vector-normalize! s0-0 1.0)
(vector-! sv-592 (-> s1-0 world-mat trans) (-> obj root-override2 trans))
(vector-! sv-592 (-> s1-0 world-mat trans) (-> obj root trans))
(set! (-> sv-592 y) 0.0)
(vector-normalize! sv-592 1.0)
(let ((f0-2 (-> sv-592 x))
@@ -247,7 +247,7 @@
(let ((s3-1 (-> s4-0 holds gp-0 lower-hold)))
(when (!= s3-1 -1)
(if (and (or (zero? (get-rand-int obj 2))
(>= 14336.0 (vector-vector-xz-distance-squared (-> obj root-override2 trans) (target-pos 0)))
(>= 14336.0 (vector-vector-xz-distance-squared (-> obj root trans) (target-pos 0)))
)
(grunt-mech-info-method-9 s4-0 s3-1 obj #t)
)
@@ -256,7 +256,7 @@
)
)
(let ((a1-9 (new 'stack-no-clear 'collide-query)))
(set! (-> a1-9 start-pos quad) (-> obj root-override2 trans quad))
(set! (-> a1-9 start-pos quad) (-> obj root trans quad))
(set! (-> a1-9 start-pos y) (+ 6144.0 (-> a1-9 start-pos y)))
(vector-!
(-> a1-9 move-dist)
@@ -296,7 +296,7 @@
(let ((v1-4 (get-trans gp-0 0))
(a1-2 (new 'stack-no-clear 'vector))
)
(vector-! a1-2 v1-4 (-> obj root-override2 trans))
(vector-! a1-2 v1-4 (-> obj root trans))
(.lvf vf1 (&-> a1-2 quad))
)
(.add.w.vf vf2 vf0 vf0 :mask #b1)
@@ -349,13 +349,13 @@
)
0
(nav-enemy-method-167 self)
(set! (-> self dismount-dest quad) (-> self root-override2 trans quad))
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(set! (-> self dismount-dest quad) (-> self root trans quad))
(logclear! (-> self root nav-flags) (nav-flags has-root-sphere))
(none)
)
:exit (behavior ()
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(logior! (-> self root nav-flags) (nav-flags has-root-sphere))
(none)
)
:trans (behavior ()
@@ -365,8 +365,8 @@
:code (behavior ()
(ja-channel-push! 1 (seconds 0.07))
(let ((gp-0 (new 'stack-no-clear 'matrix)))
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root-override2 quat))
(set! (-> gp-0 vector 1 quad) (-> self root-override2 trans quad))
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root quat))
(set! (-> gp-0 vector 1 quad) (-> self root trans quad))
(ja-no-eval :group! (-> self draw art-group data 48)
:num! (seek!
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 48)) frames num-frames) -1))
@@ -381,12 +381,12 @@
(matrix->quaternion (the-as quaternion (-> gp-0 vector 2)) (-> s5-1 world-mat))
(let ((f30-0 (lerp-scale 0.0 1.0 (ja-aframe-num 0) 0.0 6.0)))
(quaternion-slerp!
(-> self root-override2 quat)
(-> self root quat)
(the-as quaternion (-> gp-0 vector))
(the-as quaternion (-> gp-0 vector 2))
f30-0
)
(vector-lerp! (-> self root-override2 trans) (-> gp-0 vector 1) (-> s5-1 world-mat trans) f30-0)
(vector-lerp! (-> self root trans) (-> gp-0 vector 1) (-> s5-1 world-mat trans) f30-0)
)
)
)
@@ -404,7 +404,7 @@
(let ((gp-0 *grunt-mech-info*))
(grunt-mech-info-method-10 gp-0)
(let ((v1-5 (-> gp-0 holds (-> self hold-id)))
(a0-2 (-> self root-override2))
(a0-2 (-> self root))
)
(set! (-> a0-2 trans quad) (-> v1-5 world-mat trans quad))
(matrix->quaternion (-> a0-2 quat) (-> v1-5 world-mat))
@@ -423,7 +423,7 @@
)
(init-vf0-vector)
(let ((s5-0 (new 'stack-no-clear 'nav-avoid-spheres-params)))
(vector-! (-> s5-0 current-pos) (-> obj root-override2 trans) (-> obj nav state mesh bounds))
(vector-! (-> s5-0 current-pos) (-> obj root trans) (-> obj nav state mesh bounds))
(vector-normalize-copy! (-> s5-0 travel) arg0 (the-as float arg1))
(set! (-> s5-0 pref-dir quad) (-> s5-0 travel quad))
(avoid-spheres-1! (-> obj nav) s5-0)
@@ -431,7 +431,7 @@
(let ((t0-0 (new 'stack-no-clear 'clamp-travel-vector-to-mesh-return-info)))
(clamp-vector-to-mesh-no-gaps
(-> obj nav)
(-> obj root-override2 trans)
(-> obj root trans)
(-> obj nav state current-poly)
(the-as vector (-> s5-0 out-travel))
t0-0
@@ -453,7 +453,7 @@
(set! (-> a1-3 w) (-> obj nav-radius-backup))
(when (not (add-root-sphere-to-hash! (-> obj nav) a1-3 #x80068))
(let ((s4-1 (new 'stack-no-clear 'vector)))
(vector+! s4-1 (-> obj root-override2 trans) (the-as vector (-> s5-0 out-travel)))
(vector+! s4-1 (-> obj root trans) (the-as vector (-> s5-0 out-travel)))
(let ((s5-1 (new 'stack-no-clear 'collide-query)))
(when (enemy-above-ground? obj s5-1 s4-1 (the-as collide-spec (-> obj gnd-collide)) 4096.0 122880.0 1024.0)
(set! (-> s4-1 y) (-> s5-1 best-other-tri intersect y))
@@ -472,7 +472,7 @@
)
(defmethod grunt-mech-method-192 grunt-mech ((obj grunt-mech))
(do-navigation-to-destination (-> obj nav state) (-> obj root-override2 trans))
(do-navigation-to-destination (-> obj nav state) (-> obj root trans))
(let ((a1-1 *target*))
(if (or (not a1-1) (not (logtest? (focus-status mech) (-> a1-1 focus-status))))
(return #t)
@@ -517,7 +517,7 @@
)
)
(label cfg-16)
(let ((a0-15 (-> obj root-override2 trans)))
(let ((a0-15 (-> obj root trans)))
(if (or (>= 0.0 (- (-> a0-15 y) (-> obj dismount-dest y)))
(let ((f0-4 40960.0))
(< (* f0-4 f0-4) (vector-vector-xz-distance-squared a0-15 (-> obj dismount-dest)))
@@ -567,19 +567,19 @@
:enter (behavior ()
(set! (-> self state-time) (current-time))
(set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags)))
(set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec))
(set! (-> self root root-prim prim-core collide-as) (collide-spec))
(stop-looking-at-target! self)
(set! (-> self state-timeout) (+ (current-time) (get-rand-int-range self 450 900)))
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(logclear! (-> self root nav-flags) (nav-flags has-root-sphere))
(none)
)
:exit (behavior ()
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
(let ((v1-3 (-> self root-override2 root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> self root-override2 backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> self root-override2 backup-collide-with))
(let ((v1-3 (-> self root root-prim)))
(set! (-> v1-3 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-3 prim-core collide-with) (-> self root backup-collide-with))
)
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(logior! (-> self root nav-flags) (nav-flags has-root-sphere))
(none)
)
:trans (behavior ()
@@ -709,7 +709,7 @@
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
:enter (behavior ()
(set! (-> self state-time) (current-time))
(set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec))
(set! (-> self root root-prim prim-core collide-as) (collide-spec))
(let* ((v1-4 (-> self nav))
(a1-0 (-> self dismount-dest))
(f0-0 (-> v1-4 extra-nav-sphere w))
@@ -726,30 +726,30 @@
(logior! (-> v1-9 shape nav-flags) (nav-flags has-extra-sphere))
)
0
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(logclear! (-> self root nav-flags) (nav-flags has-root-sphere))
(none)
)
:exit (behavior ()
(let ((v1-1 (-> self root-override2 root-prim)))
(set! (-> v1-1 prim-core collide-as) (-> self root-override2 backup-collide-as))
(set! (-> v1-1 prim-core collide-with) (-> self root-override2 backup-collide-with))
(let ((v1-1 (-> self root root-prim)))
(set! (-> v1-1 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-1 prim-core collide-with) (-> self root backup-collide-with))
)
(let ((v1-2 (-> self nav)))
(logclear! (-> v1-2 shape nav-flags) (nav-flags has-extra-sphere))
)
0
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
(logior! (-> self root nav-flags) (nav-flags has-root-sphere))
(none)
)
:code (behavior ()
(ja-channel-push! 1 (seconds 0.07))
(let ((gp-0 (new 'stack-no-clear 'matrix)))
(vector-! (-> gp-0 vector 1) (-> self root-override2 trans) (-> self dismount-dest))
(vector-! (-> gp-0 vector 1) (-> self root trans) (-> self dismount-dest))
(set! (-> gp-0 vector 1 y) 0.0)
(vector-normalize! (-> gp-0 vector 1) 1.0)
(quaternion-look-at! (the-as quaternion (-> gp-0 vector 2)) (-> gp-0 vector 1) *up-vector*)
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root-override2 quat))
(set! (-> gp-0 vector 1 quad) (-> self root-override2 trans quad))
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root quat))
(set! (-> gp-0 vector 1 quad) (-> self root trans quad))
(ja-no-eval :group! (-> self draw art-group data 54)
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 54)) frames num-frames) -1)))
:frame-num 0.0
@@ -757,20 +757,20 @@
(until (ja-done? 0)
(let ((f30-0 (lerp-scale 0.0 1.0 (ja-aframe-num 0) 33.0 41.0)))
(quaternion-slerp!
(-> self root-override2 quat)
(-> self root quat)
(the-as quaternion (-> gp-0 vector))
(the-as quaternion (-> gp-0 vector 2))
f30-0
)
(vector-lerp! (-> self root-override2 trans) (-> gp-0 vector 1) (-> self dismount-dest) f30-0)
(vector-lerp! (-> self root trans) (-> gp-0 vector 1) (-> self dismount-dest) f30-0)
)
(suspend)
(ja :num! (seek!))
)
)
(let ((v1-32 (-> self root-override2 root-prim)))
(set! (-> v1-32 prim-core collide-as) (-> self root-override2 backup-collide-as))
(set! (-> v1-32 prim-core collide-with) (-> self root-override2 backup-collide-with))
(let ((v1-32 (-> self root root-prim)))
(set! (-> v1-32 prim-core collide-as) (-> self root backup-collide-as))
(set! (-> v1-32 prim-core collide-with) (-> self root backup-collide-with))
)
(let ((v1-33 (-> self nav)))
(logclear! (-> v1-33 shape nav-flags) (nav-flags has-extra-sphere))
@@ -817,7 +817,7 @@
(when (>= (- (current-time) (-> self state-time)) (-> self reaction-time))
(when (>= 1 (the-as int gp-1))
(nav-enemy-method-161 self)
(if (-> self enemy-info-override use-stop-chase)
(if (-> self enemy-info use-stop-chase)
(go-virtual stop-chase)
(go-virtual active)
)
@@ -1039,7 +1039,7 @@
(when (= *cheat-mode* 'debug)
(when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2))
(set! (-> self control time-of-last-debug-heal) (current-time))
(pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) 100.0 (the-as handle #f))
(go target-mech-stance)
)
)
@@ -1114,14 +1114,14 @@
(go target-mech-stance)
)
(else
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(go target-mech-death (-> gp-0 mode))
)
)
)
)
(target-hit-effect gp-0)
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(go target-mech-death (-> gp-0 mode))
)
(else
+53 -64
View File
@@ -15,7 +15,7 @@
)
(deftype mech (process-drawable)
((root-override collide-shape-moving :offset 128)
((root collide-shape-moving :override)
(extra-trans vector :inline :offset-assert 208)
(condition int32 :offset-assert 224)
(shadow-backup basic :offset-assert 228)
@@ -40,7 +40,7 @@
(defmethod mech-method-24 mech ((obj mech))
(if (nonzero? (-> obj part))
(spawn (-> obj part) (-> obj root-override trans))
(spawn (-> obj part) (-> obj root trans))
)
(update! (-> obj sound))
0
@@ -77,18 +77,11 @@
)
(('touch)
(send-event proc 'target-mech-get-off 90)
(send-shoves
(-> self root-override)
proc
(the-as touching-shapes-entry (-> event param 0))
0.7
6144.0
16384.0
)
(send-shoves (-> self root) proc (the-as touching-shapes-entry (-> event param 0)) 0.7 6144.0 16384.0)
(the-as structure #f)
)
(('trans)
(vector+! (the-as vector (-> event param 0)) (-> self root-override trans) (-> self extra-trans))
(vector+! (the-as vector (-> event param 0)) (-> self root trans) (-> self extra-trans))
)
(('shadow)
(cond
@@ -108,8 +101,8 @@
)
)
:exit (behavior ()
(set! (-> self root-override root-prim prim-core action) (collide-action))
(set! (-> self root-override penetrated-by) (the-as penetrate -1))
(set! (-> self root root-prim prim-core action) (collide-action))
(set! (-> self root penetrated-by) (the-as penetrate -1))
(none)
)
:code (behavior ()
@@ -123,12 +116,12 @@
:event (-> (method-of-type mech wait-for-start) event)
:enter (behavior ()
(set! (-> self nav-sphere-handle) (the-as uint #f))
(let ((s5-0 (find-nearest-nav-mesh (-> self root-override trans) 8192.0)))
(let ((s5-0 (find-nearest-nav-mesh (-> self root trans) 8192.0)))
(when s5-0
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-z-quaternion! gp-0 (-> self root-override quat))
(vector-z-quaternion! gp-0 (-> self root quat))
(vector-normalize! gp-0 5120.0)
(vector+! gp-0 gp-0 (-> self root-override trans))
(vector+! gp-0 gp-0 (-> self root trans))
(set! (-> self nav-sphere-handle)
(the-as uint (ppointer->handle (process-spawn simple-nav-sphere #x46266666 gp-0 s5-0 -1 :to self)))
)
@@ -146,8 +139,8 @@
(change-parent self *entity-pool*)
(ja-channel-set! 1)
(ja :group! mech-mech-idle-ja)
(set! (-> self root-override root-prim prim-core action) (collide-action solid can-ride no-standon))
(set! (-> self root-override penetrated-by) (penetrate))
(set! (-> self root root-prim prim-core action) (collide-action solid can-ride no-standon))
(set! (-> self root penetrated-by) (penetrate))
0.0
(let ((f30-0 20480.0))
(until #f
@@ -155,7 +148,7 @@
(>= (- (current-time) (-> self probe-time)) (seconds 1))
)
(move-to-ground
(-> self root-override)
(-> self root)
8192.0
40960.0
#t
@@ -163,10 +156,9 @@
)
(set! (-> self probe-time) (current-time))
)
(when (and (and *target*
(and (>= f30-0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
(when (and (and *target* (and (>= f30-0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
)
(not (focus-test? *target* in-head pole board mech dark))
(can-display-query? self (the-as string #f) -99.0)
@@ -198,7 +190,7 @@
(go-virtual pickup (method-of-object self wait-for-return))
)
)
(target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root-override root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0)))
(target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0)))
(mech-method-24 self)
(suspend)
)
@@ -216,12 +208,12 @@
(('draw)
(ja-channel-set! 1)
(ja :group! mech-mech-idle-ja)
(set! (-> self root-override root-prim prim-core action) (collide-action solid can-ride no-standon))
(set! (-> self root-override penetrated-by) (penetrate))
(set! (-> self root root-prim prim-core action) (collide-action solid can-ride no-standon))
(set! (-> self root penetrated-by) (penetrate))
(transform-post)
)
(('trans)
(vector+! (the-as vector (-> event param 0)) (-> self root-override trans) (-> self extra-trans))
(vector+! (the-as vector (-> event param 0)) (-> self root trans) (-> self extra-trans))
)
(('touch 'attack 'bonk)
#f
@@ -254,10 +246,9 @@
(ja-channel-set! 0)
(ja-post)
(while (zero? (ja-group-size))
(if (or (not *target*)
(or (< 24576.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
(focus-test? *target* teleporting)
)
(if (or (not *target*) (or (< 24576.0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(focus-test? *target* teleporting)
)
)
(go arg0)
)
@@ -282,28 +273,26 @@
(defstate wait-for-return (mech)
:virtual #t
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as
object
(case event-type
(('trans)
(vector+! (the-as vector (-> event param 0)) (-> self root-override trans) (-> self extra-trans))
)
(('shadow)
(cond
((-> event param 0)
(let ((v0-1 (the-as structure (-> self shadow-backup))))
(set! (-> self draw shadow) (the-as shadow-geo v0-1))
v0-1
)
(the-as object (case event-type
(('trans)
(vector+! (the-as vector (-> event param 0)) (-> self root trans) (-> self extra-trans))
)
(('shadow)
(cond
((-> event param 0)
(let ((v0-1 (the-as structure (-> self shadow-backup))))
(set! (-> self draw shadow) (the-as shadow-geo v0-1))
v0-1
)
)
(else
(set! (-> self draw shadow) #f)
(the-as structure #f)
)
)
)
)
)
(else
(set! (-> self draw shadow) #f)
(the-as structure #f)
)
)
)
)
)
)
:code (behavior ()
(ja-channel-set! 0)
@@ -335,17 +324,17 @@
(set! (-> s2-0 backup-collide-as) (-> v1-9 prim-core collide-as))
(set! (-> s2-0 backup-collide-with) (-> v1-9 prim-core collide-with))
)
(set! (-> self root-override) s2-0)
(set! (-> self root) s2-0)
)
(set! (-> self rider) (the-as uint arg2))
(when arg0
(process-entity-set! self arg0)
(process-drawable-from-entity! self arg0)
(set-yaw-angle-clear-roll-pitch! (-> self root-override) (res-lump-float arg0 'rotoffset))
(set-yaw-angle-clear-roll-pitch! (-> self root) (res-lump-float arg0 'rotoffset))
)
(when arg1
(set! (-> self root-override trans quad) (-> arg1 vector 0 quad))
(quaternion-copy! (-> self root-override quat) (the-as quaternion (-> arg1 vector 1)))
(set! (-> self root trans quad) (-> arg1 vector 0 quad))
(quaternion-copy! (-> self root quat) (the-as quaternion (-> arg1 vector 1)))
)
(initialize-skeleton
self
@@ -356,7 +345,7 @@
(set! (-> self draw shadow-ctrl) *mech-shadow-control*)
(let ((v1-27 (-> self node-list data)))
(set! (-> v1-27 0 param0) (the-as (function cspace transformq none) cspace<-transformq+trans!))
(set! (-> v1-27 0 param1) (the-as basic (-> self root-override trans)))
(set! (-> v1-27 0 param1) (the-as basic (-> self root trans)))
(set! (-> v1-27 0 param2) (the-as basic (-> self extra-trans)))
)
(set! (-> self condition) (res-lump-value arg0 'index int :time -1000000000.0))
@@ -367,7 +356,7 @@
(set! (-> self nav-sphere-handle) (the-as uint #f))
(if (-> self entity)
(move-to-ground
(-> self root-override)
(-> self root)
8192.0
40960.0
#t
@@ -375,7 +364,7 @@
)
)
(set! (-> self sound)
(new 'process 'ambient-sound (static-sound-spec "zoom-teleport" :fo-max 30) (-> self root-override trans))
(new 'process 'ambient-sound (static-sound-spec "zoom-teleport" :fo-max 30) (-> self root trans))
)
(set! (-> self draw light-index) (the-as uint 30))
(if (handle->process arg2)
@@ -496,11 +485,11 @@ This commonly includes things such as:
;; WARN: Return type mismatch object vs none.
(defbehavior mech-target-init mech ((arg0 vector) (arg1 quaternion) (arg2 entity-actor))
(process-entity-set! self arg2)
(set! (-> self root-override) (the-as collide-shape-moving (new 'process 'trsqv)))
(set! (-> self root-override trans quad) (-> arg0 quad))
(quaternion-copy! (-> self root-override quat) arg1)
(set! (-> self root-override scale x) 0.0)
(set! (-> self root-override scale y) 0.0)
(set! (-> self root) (the-as collide-shape-moving (new 'process 'trsqv)))
(set! (-> self root trans quad) (-> arg0 quad))
(quaternion-copy! (-> self root quat) arg1)
(set! (-> self root scale x) 0.0)
(set! (-> self root scale y) 0.0)
(initialize-skeleton
self
(the-as skeleton-group (art-group-get-by-name *level* "skel-mech-target" (the-as (pointer uint32) #f)))
@@ -401,7 +401,7 @@
(a0-12 *sp-particle-system-2d*)
(a2-3 *launch-matrix*)
)
(set! (-> a2-3 trans quad) (-> self root-override trans quad))
(set! (-> a2-3 trans quad) (-> self root trans quad))
(t9-6 a0-12 s5-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
)
@@ -415,7 +415,7 @@
(a0-15 *sp-particle-system-2d*)
(a2-4 *launch-matrix*)
)
(set! (-> a2-4 trans quad) (-> self root-override trans quad))
(set! (-> a2-4 trans quad) (-> self root trans quad))
(t9-8 a0-15 s5-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0)
)
)
@@ -1182,19 +1182,14 @@
(send-event
(ppointer->process (-> self manipy))
'trans-hook
(lambda :behavior target
(lambda :behavior manipy
()
(let* ((a0-0 (-> self parent))
(v1-0 (if a0-0
(-> (the-as (pointer target) a0-0) 0 self-override)
)
)
)
(set! (-> self control trans quad) (-> v1-0 mech mech-trans quad))
(let ((v1-0 (ppointer->process (the-as (pointer target) (-> self parent)))))
(set! (-> self root trans quad) (-> v1-0 mech mech-trans quad))
(let ((a0-4 (-> v1-0 mech mech-quat quad)))
(set! (-> self control quat quad) a0-4)
(set! (-> self root quat quad) a0-4)
)
(set! (-> self control scale quad) (-> v1-0 mech mech-scale quad))
(set! (-> self root scale quad) (-> v1-0 mech mech-scale quad))
(set! (-> self draw light-index) (-> v1-0 draw light-index))
(let ((a0-10 (-> v1-0 draw color-mult quad)))
(set! (-> self draw color-mult quad) a0-10)
@@ -1207,7 +1202,7 @@
)
)
(dotimes (gp-0 2)
(enable-set! (-> self mech-ik gp-0) #t)
(target-set! (-> self joint gp-0) (the-as vector #t))
)
(none)
)
+128 -161
View File
@@ -67,12 +67,7 @@
("board-jump"
,(lambda :behavior sidekick
((arg0 object) (arg1 vector) (arg2 object))
(let* ((v1-0 (-> self parent-override))
(gp-0 (if v1-0
(-> v1-0 0 self-override)
)
)
)
(let ((gp-0 (ppointer->process (-> self parent))))
(when (>= (- (current-time) (-> self special-anim-time)) (seconds 1))
(set! (-> self special-anim-interp) 0.0)
(set! (-> self special-anim-frame) 0.0)
@@ -184,9 +179,7 @@
(set! (-> (the-as (inline-array cspace) v0-0) 0 param0)
(the-as (function cspace transformq none) cspace<-cspace+transformq!)
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1)
(the-as basic (-> self parent-override 0 node-list data))
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1) (the-as basic (-> self parent 0 node-list data)))
(set! (-> (the-as (inline-array cspace) v0-0) 0 param2) (the-as basic (-> self offset)))
)
(('copy-parent)
@@ -194,9 +187,7 @@
(set! (-> (the-as (inline-array cspace) v0-0) 0 param0)
(the-as (function cspace transformq none) cspace<-cspace!)
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1)
(the-as basic (-> self parent-override 0 node-list data))
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1) (the-as basic (-> self parent 0 node-list data)))
(set! (-> (the-as (inline-array cspace) v0-0) 0 param2) #f)
)
(('root)
@@ -204,9 +195,7 @@
(set! (-> (the-as (inline-array cspace) v0-0) 0 param0)
(the-as (function cspace transformq none) cspace<-cspace-normalized!)
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1)
(the-as basic (-> self parent-override 0 node-list data))
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1) (the-as basic (-> self parent 0 node-list data)))
(set! (-> (the-as (inline-array cspace) v0-0) 0 param2) #f)
)
(('indax)
@@ -214,11 +203,9 @@
(set! (-> (the-as (inline-array cspace) v0-0) 0 param0)
(the-as (function cspace transformq none) cspace<-transformq+trans!)
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1)
(the-as basic (-> self parent-override 0 control trans))
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1) (the-as basic (-> self parent 0 control trans)))
(set! (-> (the-as (inline-array cspace) v0-0) 0 param2)
(the-as basic (-> self parent-override 0 control cspace-offset))
(the-as basic (-> self parent 0 control cspace-offset))
)
)
(('board)
@@ -226,9 +213,7 @@
(set! (-> (the-as (inline-array cspace) v0-0) 0 param0)
(the-as (function cspace transformq none) cspace<-cspace-normalized!)
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1)
(the-as basic (-> self parent-override 0 node-list data 25))
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1) (the-as basic (-> self parent 0 node-list data 25)))
(set! (-> (the-as (inline-array cspace) v0-0) 0 param2) #f)
)
(else
@@ -237,7 +222,7 @@
(the-as (function cspace transformq none) cspace<-cspace+transformq!)
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param1)
(the-as basic (-> self parent-override 0 control sidekick-root parent))
(the-as basic (-> self parent 0 control sidekick-root parent))
)
(set! (-> (the-as (inline-array cspace) v0-0) 0 param2) (the-as basic (-> self offset)))
)
@@ -266,144 +251,126 @@
)
:code (the-as (function none :behavior sidekick) looping-code)
:post (behavior ()
(let ((v1-0 (-> self parent-override)))
(when (not (and (-> (if v1-0
(-> v1-0 0 self-override)
)
next-state
)
(let ((v1-4 (-> self parent-override)))
(= (-> (if v1-4
(-> v1-4 0 self-override)
)
next-state
name
)
'process-drawable-art-error
)
)
)
)
(quaternion-rotate-y!
(-> self root quat)
(-> self parent-override 0 control quat)
(-> self parent-override 0 upper-body twist z)
)
(set! (-> self anim-seed) (-> self parent-override 0 anim-seed))
(set! (-> self draw status) (-> self parent-override 0 draw status))
(logclear! (-> self draw status) (draw-control-status no-draw-bounds2))
(let ((gp-0 0))
(cond
((and (not (logtest? (-> self parent-override 0 focus-status) (focus-status edge-grab)))
(> (-> self parent-override 0 skel float-channels) 0)
)
(let ((gp-1 (-> self skel)))
(joint-control-copy! gp-1 (-> self parent-override 0 skel))
(set! (-> gp-1 root-channel)
(the-as (inline-array joint-control-channel) (-> gp-1 channel (-> gp-1 active-channels)))
)
(dotimes (s5-0 (the-as int (-> self parent-override 0 skel float-channels)))
(let ((s4-0 (-> gp-1 channel (+ s5-0 (-> gp-1 active-channels)))))
(mem-copy!
(the-as pointer s4-0)
(the-as
pointer
(-> self parent-override 0 skel channel (+ s5-0 (-> self parent-override 0 skel active-channels)))
)
64
)
(set! (-> s4-0 frame-interp 0) (-> s4-0 frame-interp 1))
(set! (-> s4-0 command) (joint-control-command blend))
)
)
(dotimes (v1-58 (the-as int (-> gp-1 allocated-length)))
(set! (-> gp-1 channel v1-58 parent) gp-1)
)
(+! (-> gp-1 active-channels) (-> self parent-override 0 skel float-channels))
(set! (-> gp-1 float-channels) (the-as uint 0))
(when (not (and (-> (ppointer->process (-> self parent)) next-state)
(= (-> (ppointer->process (-> self parent)) next-state name) 'process-drawable-art-error)
)
)
(set! gp-0 1)
)
(else
(joint-control-copy! (-> self skel) (-> self parent-override 0 skel))
)
)
(joint-control-remap!
(-> self skel)
(-> self draw art-group)
(-> self parent-override 0 draw art-group)
*sidekick-remap*
(the-as int (-> self anim-seed))
""
)
(cond
((zero? gp-0)
(set! (-> self skel effect channel-offset) (-> self parent-override 0 skel effect channel-offset))
)
((= gp-0 1)
(set! (-> self skel effect channel-offset) 0)
0
)
)
)
(let ((v1-85 (-> self parent-override 0 draw color-mult quad)))
(set! (-> self draw color-mult quad) v1-85)
)
(let ((v1-89 (-> self parent-override 0 draw color-emissive quad)))
(set! (-> self draw color-emissive quad) v1-89)
)
(set! (-> self draw force-fade) (-> self parent-override 0 draw force-fade))
(set! (-> self draw death-vertex-skip) (-> self parent-override 0 draw death-vertex-skip))
(set! (-> self draw death-effect) (-> self parent-override 0 draw death-effect))
(set! (-> self draw death-timer) (-> self parent-override 0 draw death-timer))
(set! (-> self draw death-timer-org) (-> self parent-override 0 draw death-timer-org))
(set! (-> self draw death-draw-overlap) (-> self parent-override 0 draw death-draw-overlap))
(quaternion-copy! (-> self offset quat) (-> self root quat))
(let ((f0-3 (* (-> self parent-override 0 darkjak-interp) (-> self parent-override 0 darkjak-giant-interp))))
(set! (-> self offset trans x) (* 286.72 f0-3))
(set! (-> self offset trans y) (* 204.8 f0-3))
(set! (-> self offset trans z) (* 409.6 f0-3))
)
(update-anim-data (-> self skel))
(when *debug-segment*
(let ((gp-2 (-> *display* frames (-> *display* on-screen) profile-array data 0))
(v1-132 'target-post)
(s5-1 *profile-target-post-color*)
(quaternion-rotate-y!
(-> self root quat)
(-> self parent 0 control quat)
(-> self parent 0 upper-body twist z)
)
(set! (-> self anim-seed) (-> self parent 0 anim-seed))
(set! (-> self draw status) (-> self parent 0 draw status))
(logclear! (-> self draw status) (draw-control-status no-draw-bounds2))
(let ((gp-0 0))
(cond
((and (not (logtest? (-> self parent 0 focus-status) (focus-status edge-grab)))
(> (-> self parent 0 skel float-channels) 0)
)
(when (and *dproc* *debug-segment*)
(let ((s4-1 (-> gp-2 data (-> gp-2 count))))
(let ((s3-0 (-> gp-2 base-time)))
(set! (-> s4-1 name) v1-132)
(set! (-> s4-1 start-time) (the-as int (- (timer-count (the-as timer-bank #x10000800)) (the-as uint s3-0))))
)
(set! (-> s4-1 depth) (the-as uint (-> gp-2 depth)))
(set! (-> s4-1 color) s5-1)
(set! (-> gp-2 segment (-> gp-2 depth)) s4-1)
)
(+! (-> gp-2 count) 1)
(+! (-> gp-2 depth) 1)
(set! (-> gp-2 max-depth) (max (-> gp-2 max-depth) (-> gp-2 depth)))
)
(let ((gp-1 (-> self skel)))
(joint-control-copy! gp-1 (-> self parent 0 skel))
(set! (-> gp-1 root-channel)
(the-as (inline-array joint-control-channel) (-> gp-1 channel (-> gp-1 active-channels)))
)
(dotimes (s5-0 (the-as int (-> self parent 0 skel float-channels)))
(let ((s4-0 (-> gp-1 channel (+ s5-0 (-> gp-1 active-channels)))))
(mem-copy!
(the-as pointer s4-0)
(the-as pointer (-> self parent 0 skel channel (+ s5-0 (-> self parent 0 skel active-channels))))
64
)
(set! (-> s4-0 frame-interp 0) (-> s4-0 frame-interp 1))
(set! (-> s4-0 command) (joint-control-command blend))
)
)
(dotimes (v1-58 (the-as int (-> gp-1 allocated-length)))
(set! (-> gp-1 channel v1-58 parent) gp-1)
)
(+! (-> gp-1 active-channels) (-> self parent 0 skel float-channels))
(set! (-> gp-1 float-channels) (the-as uint 0))
)
(set! gp-0 1)
)
(else
(joint-control-copy! (-> self skel) (-> self parent 0 skel))
)
0
)
(do-joint-math (-> self draw) (-> self node-list) (-> self skel))
(when *debug-segment*
(let ((gp-3 (-> *display* frames (-> *display* on-screen) profile-array data 0)))
(when (and *dproc* *debug-segment*)
(let* ((v1-158 (+ (-> gp-3 depth) -1))
(s5-2 (-> gp-3 segment v1-158))
(s4-2 (-> gp-3 base-time))
)
(when (>= v1-158 0)
(set! (-> s5-2 end-time) (the-as int (- (timer-count (the-as timer-bank #x10000800)) (the-as uint s4-2))))
(+! (-> gp-3 depth) -1)
)
(joint-control-remap!
(-> self skel)
(-> self draw art-group)
(-> self parent 0 draw art-group)
*sidekick-remap*
(the-as int (-> self anim-seed))
""
)
(cond
((zero? gp-0)
(set! (-> self skel effect channel-offset) (-> self parent 0 skel effect channel-offset))
)
((= gp-0 1)
(set! (-> self skel effect channel-offset) 0)
0
)
)
)
(let ((v1-85 (-> self parent 0 draw color-mult quad)))
(set! (-> self draw color-mult quad) v1-85)
)
(let ((v1-89 (-> self parent 0 draw color-emissive quad)))
(set! (-> self draw color-emissive quad) v1-89)
)
(set! (-> self draw force-fade) (-> self parent 0 draw force-fade))
(set! (-> self draw death-vertex-skip) (-> self parent 0 draw death-vertex-skip))
(set! (-> self draw death-effect) (-> self parent 0 draw death-effect))
(set! (-> self draw death-timer) (-> self parent 0 draw death-timer))
(set! (-> self draw death-timer-org) (-> self parent 0 draw death-timer-org))
(set! (-> self draw death-draw-overlap) (-> self parent 0 draw death-draw-overlap))
(quaternion-copy! (-> self offset quat) (-> self root quat))
(let ((f0-3 (* (-> self parent 0 darkjak-interp) (-> self parent 0 darkjak-giant-interp))))
(set! (-> self offset trans x) (* 286.72 f0-3))
(set! (-> self offset trans y) (* 204.8 f0-3))
(set! (-> self offset trans z) (* 409.6 f0-3))
)
(update-anim-data (-> self skel))
(when *debug-segment*
(let ((gp-2 (-> *display* frames (-> *display* on-screen) profile-array data 0))
(v1-132 'target-post)
(s5-1 *profile-target-post-color*)
)
(when (and *dproc* *debug-segment*)
(let ((s4-1 (-> gp-2 data (-> gp-2 count))))
(let ((s3-0 (-> gp-2 base-time)))
(set! (-> s4-1 name) v1-132)
(set! (-> s4-1 start-time) (the-as int (- (timer-count (the-as timer-bank #x10000800)) (the-as uint s3-0))))
)
(set! (-> s4-1 depth) (the-as uint (-> gp-2 depth)))
(set! (-> s4-1 color) s5-1)
(set! (-> gp-2 segment (-> gp-2 depth)) s4-1)
)
(+! (-> gp-2 count) 1)
(+! (-> gp-2 depth) 1)
(set! (-> gp-2 max-depth) (max (-> gp-2 max-depth) (-> gp-2 depth)))
)
)
0
)
(do-joint-math (-> self draw) (-> self node-list) (-> self skel))
(when *debug-segment*
(let ((gp-3 (-> *display* frames (-> *display* on-screen) profile-array data 0)))
(when (and *dproc* *debug-segment*)
(let* ((v1-158 (+ (-> gp-3 depth) -1))
(s5-2 (-> gp-3 segment v1-158))
(s4-2 (-> gp-3 base-time))
)
(when (>= v1-158 0)
(set! (-> s5-2 end-time) (the-as int (- (timer-count (the-as timer-bank #x10000800)) (the-as uint s4-2))))
(+! (-> gp-3 depth) -1)
)
)
)
0
)
0
)
)
(when *display-sidekick-stats*
@@ -412,7 +379,7 @@
(add-debug-sphere
*display-sidekick-stats*
(bucket-id debug-no-zbuf1)
(-> self parent-override 0 control sidekick-root parent bone transform trans)
(-> self parent 0 control sidekick-root parent bone transform trans)
(meters 0.1)
(new 'static 'rgba :g #xff :a #x80)
)
@@ -438,12 +405,12 @@
)
)
(set! (-> self draw shadow)
(the-as shadow-geo (if (or (and (movie?) (-> self shadow-in-movie?))
(logtest? (focus-status indax) (-> self parent-override 0 focus-status))
)
(-> self draw art-group data 3)
)
)
(the-as
shadow-geo
(if (or (and (movie?) (-> self shadow-in-movie?)) (logtest? (focus-status indax) (-> self parent 0 focus-status)))
(-> self draw art-group data 3)
)
)
)
(let ((a0-53 (-> self skel effect)))
(if a0-53
@@ -513,7 +480,7 @@
(set! (-> self draw light-index) (the-as uint 30))
(let ((v1-14 (-> self node-list data)))
(set! (-> v1-14 0 param0) (the-as (function cspace transformq none) cspace<-cspace+transformq!))
(set! (-> v1-14 0 param1) (the-as basic (-> self parent-override 0 control sidekick-root parent)))
(set! (-> v1-14 0 param1) (the-as basic (-> self parent 0 control sidekick-root parent)))
(set! (-> v1-14 0 param2) (the-as basic (-> self offset)))
)
(set! (-> self shadow-in-movie?) #t)
@@ -58,9 +58,7 @@
)
)
(or (and (not (and (focus-test? self dark) (nonzero? (-> self darkjak))))
(and (>= (- (current-time) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time))
(seconds 0.05)
)
(and (>= (- (current-time) (-> (the-as fact-info-target (-> self fact)) darkjak-start-time)) (seconds 0.05))
(>= (-> self game eco-pill-dark) (-> *FACT-bank* eco-pill-dark-max-default))
)
)
@@ -113,8 +111,8 @@
)
(target-danger-set! (-> self control danger-mode) #f)
(update-transforms (-> self control))
(if (and (or (>= (- (current-time) (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time))
(-> (the-as fact-info-target (-> self fact-override)) darkjak-effect-time)
(if (and (or (>= (- (current-time) (-> (the-as fact-info-target (-> self fact)) darkjak-start-time))
(-> (the-as fact-info-target (-> self fact)) darkjak-effect-time)
)
(not (-> *setting-control* user-current darkjak))
)
@@ -288,7 +286,7 @@
(persist-with-delay *setting-control* 'bg-a-speed (seconds 3) 'bg-a-speed 'abs 0.5 0)
(if (not (and (-> self next-state) (= (-> self next-state name) 'target-darkjak-get-off)))
(pickup-collectable!
(-> self fact-override)
(-> self fact)
(pickup-type eco-pill-dark)
(- (-> *FACT-bank* eco-pill-dark-max-default))
(the-as handle #f)
@@ -319,8 +317,8 @@
(set! (-> self darkjak-giant-interp) 1.0)
(set-setting! 'sound-flava #f 30.0 4)
(set! (-> self focus-status) (logior (focus-status dark) (-> self focus-status)))
(set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time) (current-time))
(set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-effect-time) (seconds 20))
(set! (-> (the-as fact-info-target (-> self fact)) darkjak-start-time) (current-time))
(set! (-> (the-as fact-info-target (-> self fact)) darkjak-effect-time) (seconds 20))
(if (logtest? (-> self darkjak stage) 16)
(logior! (-> self state-flags) (state-flags sf4))
(logclear! (-> self state-flags) (state-flags sf4))
+15 -15
View File
@@ -666,7 +666,7 @@
(case (-> arg4 angle)
(('jump 'up 'up-forward)
(when (and (not (focus-test? self flut pilot mech indax))
(not (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-override health))))
(not (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact health))))
)
(if (and (cpad-pressed? (-> self control cpad number) circle) (can-feet? #f))
(go target-attack-air #f)
@@ -954,7 +954,7 @@
(when (= *cheat-mode* 'debug)
(when (and (not *pause-lock*) (cpad-hold? (-> self control cpad number) r2))
(set! (-> self control time-of-last-debug-heal) (current-time))
(pickup-collectable! (-> self fact-override) (pickup-type health) 100.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) 100.0 (the-as handle #f))
(go target-stance)
)
)
@@ -995,8 +995,8 @@
)
(when (and (focus-test? self dark) (nonzero? (-> self darkjak)))
(set! (-> sv-32 damage) (fmax 1.0 (ceil (* 0.5 (-> sv-32 damage)))))
(if (< (- (-> self fact-override health) (-> sv-32 damage)) 1.0)
(set! (-> sv-32 damage) (+ -1.0 (-> self fact-override health)))
(if (< (- (-> self fact health) (-> sv-32 damage)) 1.0)
(set! (-> sv-32 damage) (+ -1.0 (-> self fact health)))
)
)
(set! (-> sv-36 quad) (-> sv-32 vector quad))
@@ -1038,13 +1038,13 @@
(go target-stance)
)
(else
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(go target-death (-> sv-32 mode))
)
)
)
(('lava 'melt)
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(let ((gp-2 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-2
(let ((t9-15 (method-of-type part-tracker activate)))
@@ -1095,23 +1095,23 @@
'centipede
'big-explosion
)
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(if (= (-> self game mode) 'play)
(go target-death (-> sv-32 mode))
)
)
(('explode)
(pickup-collectable! (-> self fact-override) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-override health)))
(pickup-collectable! (-> self fact) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact health)))
(go target-death (-> sv-32 mode))
)
)
(('smush)
(pickup-collectable! (-> self fact-override) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
(go target-hit-ground-hard (-> *TARGET-bank* fall-far))
)
(('shock 'shock-red 'shock-green)
(pickup-collectable! (-> self fact-override) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
(let* ((v1-123 (-> sv-32 mode))
(gp-3 (cond
((= v1-123 'shock-red)
@@ -1236,7 +1236,7 @@
)
)
(else
(pickup-collectable! (-> self fact-override) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) (- (-> sv-32 damage)) (the-as handle #f))
)
)
(target-hit-effect sv-32)
@@ -1249,17 +1249,17 @@
)
)
)
(when (and (= (-> self game mode) 'play) (and (>= 0.0 (-> self fact-override health)) (using-gun? self)))
(when (and (= (-> self game mode) 'play) (and (>= 0.0 (-> self fact health)) (using-gun? self)))
(send-event (ppointer->process (-> self gun gun)) 'die)
(target-gun-end-mode #f)
)
(set! (-> self control mod-surface) *smack-mods*)
(target-hit-setup-anim sv-32)
(target-hit-move sv-32 (target-hit-orient sv-32 sv-36) target-falling-anim-trans 1.0)
(if (and (and (focus-test? self dark) (nonzero? (-> self darkjak))) (>= 1.0 (-> self fact-override health)))
(if (and (and (focus-test? self dark) (nonzero? (-> self darkjak))) (>= 1.0 (-> self fact health)))
(go target-darkjak-get-off)
)
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-override health)))
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact health)))
(go target-death (-> sv-32 mode))
)
(go target-hit-ground #f)
+1 -1
View File
@@ -2324,7 +2324,7 @@
(logtest? (state-flags sf16) (-> self state-flags))
(logtest? (-> self game secrets) (game-secrets endless-ammo))
)
(pickup-collectable! (-> self fact-override) (the-as pickup-type a1-0) -1.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (the-as pickup-type a1-0) -1.0 (the-as handle #f))
(case (-> gp-0 gun-type)
(((pickup-type eco-blue))
(cond
+3 -3
View File
@@ -179,9 +179,9 @@
;; DECOMP BEGINS
(deftype target (process-focusable)
((self-override target :offset 32)
((self target :override)
(fact fact-info-target :override)
(control control-info :offset 128)
(fact-override fact-info-target :offset 160)
(skel2 joint-control :offset-assert 204)
(shadow-backup shadow-geo :offset-assert 208)
(target-flags uint32 :offset 188)
@@ -417,7 +417,7 @@
(define-perm *target* target #f)
(deftype sidekick (process-drawable)
((parent-override (pointer target) :offset 16)
((parent (pointer target) :override)
(control control-info :offset 128)
(anim-seed uint64 :offset 208)
(shadow-in-movie? symbol :offset-assert 216)
+23 -27
View File
@@ -74,10 +74,10 @@
((or (logtest? (state-flags sf2 tinvul1 tinvul2) (-> self state-flags))
(logtest? (-> self game secrets) (game-secrets invulnerable))
(and (logtest? (-> self state-flags) (state-flags sf4)) (not (attack-mode-is-invinc s4-0)))
(< 0.0 (-> (the-as fact-info-target (-> self fact-override)) shield-level))
(< 0.0 (-> (the-as fact-info-target (-> self fact)) shield-level))
(and (= s4-0 'darkeco)
(and (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
(and (and (= (-> (the-as fact-info-target (-> self fact)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact)) eco-level) 1.0)
)
(or (logtest? (-> self state-flags) (state-flags sf15)) (focus-test? self dangerous))
)
@@ -124,12 +124,12 @@
((and (logtest? (-> self attack-info-rec mask) (attack-info-mask mode))
(= (-> self attack-info-rec mode) 'damage)
(not (and (= (-> self game mode) 'play)
(>= 0.0 (- (-> (the-as fact-info-target (-> self fact-override)) health) (-> self attack-info-rec damage)))
(>= 0.0 (- (-> (the-as fact-info-target (-> self fact)) health) (-> self attack-info-rec damage)))
)
)
)
(pickup-collectable!
(-> self fact-override)
(-> self fact)
(pickup-type health)
(if (logtest? (attack-info-mask damage) (-> self attack-info-rec mask))
(- (-> self attack-info-rec damage))
@@ -191,7 +191,7 @@
(else
(logior! (-> self focus-status) (focus-status ignore hit))
(when (and (= (-> self game mode) 'play)
(and (or (and (>= 0.0 (- (-> (the-as fact-info-target (-> self fact-override)) health) (-> self attack-info-rec damage)))
(and (or (and (>= 0.0 (- (-> (the-as fact-info-target (-> self fact)) health) (-> self attack-info-rec damage)))
(not (and (focus-test? self dark) (nonzero? (-> self darkjak))))
)
(attack-mode-is-invinc s4-0)
@@ -666,8 +666,8 @@
(let ((s4-0 (-> arg3 param 0))
(f28-0 (the-as float (-> arg3 param 1)))
)
(if (!= (pickup-collectable! (-> self fact-override) (the-as pickup-type s4-0) 0.0 (the-as handle #f))
(pickup-collectable! (-> self fact-override) (the-as pickup-type s4-0) f28-0 (process->handle arg0))
(if (!= (pickup-collectable! (-> self fact) (the-as pickup-type s4-0) 0.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (the-as pickup-type s4-0) f28-0 (process->handle arg0))
)
#t
'full
@@ -677,11 +677,11 @@
)
(('test-pickup)
(let ((a1-6 (-> arg3 param 0)))
(pickup-collectable! (-> self fact-override) (the-as pickup-type a1-6) 0.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (the-as pickup-type a1-6) 0.0 (the-as handle #f))
)
)
(('reset-pickup)
(the-as object (reset! (-> self fact-override) (the-as symbol (-> arg3 param 0))))
(the-as object (reset! (-> self fact) (the-as symbol (-> arg3 param 0))))
)
(('reset-collide)
(cond
@@ -718,13 +718,9 @@
(let ((s4-1 (-> s5-1 info)))
(let ((v1-40 (-> s4-1 buzzer)))
(if (nonzero? v1-40)
(set! (-> self fact-override buzzer) 0.0)
(set! (-> self fact-override buzzer) (pickup-collectable!
(-> self fact-override)
(pickup-type buzzer)
(the float (logior -65536 v1-40))
(the-as handle #f)
)
(set! (-> self fact buzzer) 0.0)
(set! (-> self fact buzzer)
(pickup-collectable! (-> self fact) (pickup-type buzzer) (the float (logior -65536 v1-40)) (the-as handle #f))
)
)
)
@@ -769,12 +765,12 @@
(('query)
(case (-> arg3 param 0)
(('powerup)
(and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) (-> arg3 param 1))
(< 0.0 (-> (the-as fact-info-target (-> self fact-override)) eco-level))
(and (= (-> (the-as fact-info-target (-> self fact)) eco-type) (-> arg3 param 1))
(< 0.0 (-> (the-as fact-info-target (-> self fact)) eco-level))
)
)
(('pickup)
(pickup-collectable! (-> self fact-override) (the-as pickup-type (-> arg3 param 1)) 0.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (the-as pickup-type (-> arg3 param 1)) 0.0 (the-as handle #f))
)
(('ground-height)
(target-height-above-ground)
@@ -934,20 +930,20 @@
)
(('touched)
(cond
((< 0.0 (-> (the-as fact-info-target (-> self fact-override)) shield-level))
((< 0.0 (-> (the-as fact-info-target (-> self fact)) shield-level))
(let ((s4-3 (-> self control penetrate-using)))
(set! (-> self control penetrate-using) (penetrate touch shield))
(let* ((v1-193 (-> self game))
(a0-161 (+ (-> v1-193 attack-id) 1))
)
(set! (-> v1-193 attack-id) a0-161)
(set! (-> self fact-override shield-attack-id) a0-161)
(set! (-> self fact shield-attack-id) a0-161)
)
(set! v0-0 (target-send-attack
arg0
'shield
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as int (-> (the-as fact-info-target (-> self fact-override)) shield-attack-id))
(the-as int (-> (the-as fact-info-target (-> self fact)) shield-attack-id))
0
(-> self control penetrate-using)
)
@@ -1257,8 +1253,8 @@
)
((logtest? (-> arg3 param 2) 128)
(set! (-> self darkjak stage) (logand -2 (-> self darkjak stage)))
(set! v0-0 (+ (- (seconds 20) (-> self fact-override darkjak-start-time)) (current-time)))
(set! (-> self fact-override darkjak-effect-time) (the-as time-frame v0-0))
(set! v0-0 (+ (- (seconds 20) (-> self fact darkjak-start-time)) (current-time)))
(set! (-> self fact darkjak-effect-time) (the-as time-frame v0-0))
v0-0
)
)
@@ -1395,14 +1391,14 @@
(case arg2
(('touched)
(cond
((< 0.0 (-> (the-as fact-info-target (-> self fact-override)) shield-level))
((< 0.0 (-> (the-as fact-info-target (-> self fact)) shield-level))
(let ((s4-1 (-> self control penetrate-using)))
(set! (-> self control penetrate-using) (penetrate touch shield))
(let ((v0-0 (the-as object (target-send-attack
arg0
'shield
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as int (-> (the-as fact-info-target (-> self fact-override)) shield-attack-id))
(the-as int (-> (the-as fact-info-target (-> self fact)) shield-attack-id))
0
(-> self control penetrate-using)
)
+2 -2
View File
@@ -2526,7 +2526,7 @@
)
(-> s5-0 end-pos)
)
(-> sv-752 ppointer-override)
(-> sv-752 ppointer)
)
)
(when sv-624
@@ -2574,7 +2574,7 @@
(t9-5 s0-1 arg1 (symbol->string (-> lightning-tracker symbol)) (the-as pointer #x70004000))
)
(run-now-in-process s0-1 lightning-tracker-init arg2 0 arg3 arg0 s1-0 sv-16)
(-> s0-1 ppointer-override)
(-> s0-1 ppointer)
)
)
)
+1 -1
View File
@@ -680,7 +680,7 @@
(set! (-> v1-1 mode) 'damage)
)
(if (and (= (-> self game mode) 'play)
(>= 0.0 (- (-> (the-as fact-info-target (-> self fact-override)) health) (-> v1-1 damage)))
(>= 0.0 (- (-> (the-as fact-info-target (-> self fact)) health) (-> v1-1 damage)))
)
(set! (-> v1-1 mode) 'drown-death)
)
+3 -3
View File
@@ -874,13 +874,13 @@
(set! (-> self game hit-time) (current-time))
(case (-> gp-0 mode)
(('bot)
(pickup-collectable! (-> self fact-override) (pickup-type health) -1000.0 (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) -1000.0 (the-as handle #f))
(if (= (-> self game mode) 'play)
(go target-death (-> gp-0 mode))
)
)
(else
(pickup-collectable! (-> self fact-override) (pickup-type health) (- (-> gp-0 damage)) (the-as handle #f))
(pickup-collectable! (-> self fact) (pickup-type health) (- (-> gp-0 damage)) (the-as handle #f))
)
)
(target-hit-effect gp-0)
@@ -912,7 +912,7 @@
(set! (-> a0-58 quad) (-> self control transv quad))
(s5-2 s4-1 (t9-9 a0-58 1.0) (vector-y-quaternion! (new-stack-vector0) (-> self control dir-targ)))
)
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-override health)))
(if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact health)))
(go target-tube-death (-> gp-0 mode))
)
)
@@ -229,14 +229,14 @@
)
)
:code (behavior ()
(let ((root-prim (-> self root-override root-prim)))
(let ((root-prim (-> self root root-prim)))
(set! (-> (the-as collide-shape-prim-group root-prim) child 0 prim-core world-sphere w) 4915.2)
)
(let ((overlap-params (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> overlap-params options) (overlaps-others-options))
(set! (-> overlap-params collide-with-filter) (the-as collide-spec -1))
(set! (-> overlap-params tlist) *touching-list*)
(find-overlapping-shapes (-> self root-override) overlap-params)
(find-overlapping-shapes (-> self root) overlap-params)
)
(suspend)
(go-virtual die)
@@ -254,7 +254,7 @@
(vf7 :class vf)
)
(init-vf0-vector)
(let* ((gp-0 (-> obj root-override trans))
(let* ((gp-0 (-> obj root trans))
(a1-0 (-> obj tail-pos))
(s5-1 (vector-! (new 'stack-no-clear 'vector) gp-0 a1-0))
(f30-0 (vector-length s5-1))
@@ -324,7 +324,7 @@
(defmethod spawn-shell-particles turret-shot ((obj turret-shot))
"TODO - confirm"
(let* ((root (-> obj root-override))
(let* ((root (-> obj root))
(v1-2 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> obj tail-pos) (-> root trans)) 2048.0))
(gp-0 (new 'stack-no-clear 'vector))
)
@@ -388,7 +388,7 @@
;; WARN: Return type mismatch projectile-options vs none.
(defmethod init-proj-settings! turret-shot ((obj turret-shot))
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
(set! (-> obj tail-pos quad) (-> obj root trans quad))
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1))
(set! (-> obj attack-mode) 'turret)
(set! (-> obj max-speed) 1228800.0)
@@ -466,9 +466,9 @@
)
(set! (-> cshape max-iteration-count) (the-as uint 1))
(set! (-> cshape event-self) 'touched)
(set! (-> obj root-override) cshape)
(set! (-> obj root) cshape)
)
(set! (-> obj root-override pat-ignore-mask)
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
0
+56 -78
View File
@@ -759,7 +759,7 @@
(defmethod base-turret-method-36 base-turret ((obj base-turret))
(if (nonzero? (-> obj part))
(spawn (-> obj part) (-> obj root-override trans))
(spawn (-> obj part) (-> obj root trans))
)
0
(none)
@@ -776,7 +776,7 @@
(matrix->quaternion gp-0 s3-0)
(quaternion-smooth-seek! (-> obj target-quat) (-> obj target-quat) gp-0 0.33)
(let ((f0-2 (update! (-> obj smush-control))))
(quaternion-rotate-local-x! (-> obj root-override quat) gp-0 (* -910.2222 f0-2))
(quaternion-rotate-local-x! (-> obj root quat) gp-0 (* -910.2222 f0-2))
)
)
0
@@ -797,7 +797,7 @@
(set! (-> obj sound-playing 0) #f)
)
((< (* 1.2 f26-0) f30-0)
(sound-play "drill-turret-lp" :id (-> obj sound-id 0) :position (-> obj root-override trans))
(sound-play "drill-turret-lp" :id (-> obj sound-id 0) :position (-> obj root trans))
(set! (-> obj sound-playing 0) #t)
)
)
@@ -807,12 +807,12 @@
(set! (-> obj sound-playing 1) #f)
)
((< (* 1.2 f24-0) f28-0)
(sound-play "drill-turret-l2" :id (-> obj sound-id 1) :position (-> obj root-override trans))
(sound-play "drill-turret-l2" :id (-> obj sound-id 1) :position (-> obj root trans))
(set! (-> obj sound-playing 1) #t)
)
)
(if (and (or s5-0 s4-0) (< f30-0 f26-0) (< f28-0 f24-0))
(sound-play "drill-tur-stop" :position (-> obj root-override trans))
(sound-play "drill-tur-stop" :position (-> obj root trans))
)
)
(case (-> obj path-mode)
@@ -824,7 +824,7 @@
(the int (* 1524.0 (lerp-scale -0.3 0.3 (-> obj path-speed-mult) 0.0 4.0)))
0
(sound-group sfx)
(-> obj root-override trans)
(-> obj root trans)
)
(set! (-> obj sound-playing 2) #t)
)
@@ -844,7 +844,7 @@
(case arg2
(('trans)
(set! v0-0 (-> arg3 param 0))
(set! (-> (the-as vector v0-0) quad) (-> obj root-override trans quad))
(set! (-> (the-as vector v0-0) quad) (-> obj root trans quad))
v0-0
)
(('quat)
@@ -879,7 +879,7 @@
(defmethod get-trans base-turret ((obj base-turret) (arg0 int))
"@returns the `trans` [[vector]] from the process's `root` (typically either a [[trsqv]] or a [[collide-shape]])"
(if (= arg0 1)
(-> obj root-override trans)
(-> obj root trans)
((method-of-type process-focusable get-trans) obj arg0)
)
)
@@ -912,14 +912,7 @@
)
(('touch)
(send-event proc 'target-turret-get-off 90)
(send-shoves
(-> self root-override)
proc
(the-as touching-shapes-entry (-> event param 0))
0.7
6144.0
16384.0
)
(send-shoves (-> self root) proc (the-as touching-shapes-entry (-> event param 0)) 0.7 6144.0 16384.0)
#f
)
(('exit)
@@ -943,7 +936,7 @@
(let ((f30-0 20480.0))
(until #f
(when (and (and *target*
(and (>= f30-0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
(and (>= f30-0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))
(not (logtest? (focus-status teleporting) (-> *target* focus-status)))
)
)
@@ -951,7 +944,7 @@
(can-display-query? self (the-as string #f) -99.0)
(not (focus-test? *target* in-head board mech dark))
(let ((f28-0 24576.0)
(s4-0 (-> self root-override))
(s4-0 (-> self root))
(s5-0 (target-pos 0))
)
(and (< f28-0
@@ -996,7 +989,7 @@
(go-virtual setup)
)
)
(target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root-override root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0)))
(target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0)))
(base-turret-method-36 self)
(suspend)
)
@@ -1008,12 +1001,12 @@
(cond
((-> self enable-controls)
(quaternion-slerp!
(-> self root-override quat)
(-> self root-override quat)
(-> self root quat)
(-> self root quat)
(-> self init-quat)
(* 3.0 (-> self clock seconds-per-frame))
)
(quaternion-copy! (-> self target-quat) (-> self root-override quat))
(quaternion-copy! (-> self target-quat) (-> self root quat))
)
(else
(let ((s4-0 (new 'stack-no-clear 'matrix))
@@ -1026,7 +1019,7 @@
(matrix->quaternion gp-0 s4-0)
(quaternion-smooth-seek! (-> self target-quat) (-> self target-quat) gp-0 0.33)
(let ((f0-4 (update! (-> self smush-control))))
(quaternion-rotate-local-x! (-> self root-override quat) gp-0 (* -910.2222 f0-4))
(quaternion-rotate-local-x! (-> self root quat) gp-0 (* -910.2222 f0-4))
)
)
)
@@ -1177,7 +1170,7 @@
(set! (-> self focus-status) (focus-status))
(set! (-> self red-filter-timer) 0)
(set! (-> self ride-height) 0.0)
(set! (-> self roty) (y-angle (-> self root-override)))
(set! (-> self roty) (y-angle (-> self root)))
(set! (-> self rotyv) 0.0)
(set! (-> self rotx) 0.0)
(set! (-> self rotxv) 0.0)
@@ -1186,7 +1179,7 @@
(base-turret-method-34 self a1-1)
)
)
(let ((v1-14 (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 1)))
(let ((v1-14 (-> (the-as collide-shape-prim-group (-> self root root-prim)) child 1)))
(set! (-> v1-14 prim-core action) (collide-action solid))
(set! (-> v1-14 prim-core collide-as) (collide-spec obstacle))
)
@@ -1194,7 +1187,7 @@
)
:exit (behavior ()
(set-filter-color! 1.0 1.0 1.0)
(let ((v1-3 (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 1)))
(let ((v1-3 (-> (the-as collide-shape-prim-group (-> self root root-prim)) child 1)))
(set! (-> v1-3 prim-core action) (collide-action))
(set! (-> v1-3 prim-core collide-as) (collide-spec))
)
@@ -1224,8 +1217,8 @@
((2 3 4)
(let ((s5-0 (new 'stack-no-clear 'vector)))
(get-point-at-percent-along-path! (-> self path) s5-0 (-> self path-u) 'interp)
(set! (-> self root-override trans quad) (-> s5-0 quad))
(set! (-> self root-override trans y) (+ (-> s5-0 y) (-> self ride-height)))
(set! (-> self root trans quad) (-> s5-0 quad))
(set! (-> self root trans y) (+ (-> s5-0 y) (-> self ride-height)))
)
(seek! (-> self ride-height) 2048.0 (* 2048.0 (-> self clock seconds-per-frame)))
(set! (-> self path-u-prev) (-> self path-u))
@@ -1239,7 +1232,7 @@
)
(base-turret-method-38 self)
(when (= (-> self path-u) 1.0)
(get-point-at-percent-along-path! (-> self path) (-> self root-override trans) 1.0 'interp)
(get-point-at-percent-along-path! (-> self path) (-> self root trans) 1.0 'interp)
(let ((a1-9 (displacement-between-points-at-percent-normalized! (-> self path) (new 'stack-no-clear 'vector) 1.0)))
(forward-up-nopitch->quaternion (-> self init-quat) a1-9 *y-vector*)
)
@@ -1269,7 +1262,7 @@
)
)
)
(set! (-> self path-old-pos quad) (-> self root-override trans quad))
(set! (-> self path-old-pos quad) (-> self root trans quad))
(base-turret-method-36 self)
(suspend)
)
@@ -1398,7 +1391,7 @@
)
:trans (behavior ()
(when (< 0.99 (vector-dot
(vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root-override quat))
(vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root quat))
(vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self init-quat))
)
)
@@ -1420,7 +1413,7 @@
(ja :group! (-> self draw art-group data 2))
(until #f
(base-turret-method-37 self)
(target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root-override root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0)))
(target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0)))
(suspend)
)
#f
@@ -1430,8 +1423,8 @@
(when (= (-> self path-mode) 5)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(get-point-at-percent-along-path! (-> self path) gp-0 1.0 'interp)
(set! (-> self root-override trans quad) (-> gp-0 quad))
(set! (-> self root-override trans y) (+ (-> gp-0 y) (-> self ride-height)))
(set! (-> self root trans quad) (-> gp-0 quad))
(set! (-> self root trans y) (+ (-> gp-0 y) (-> self ride-height)))
)
(seek! (-> self ride-height) 0.0 (* 2048.0 (-> self clock seconds-per-frame)))
)
@@ -1514,14 +1507,7 @@
)
(('touch)
(send-event proc 'target-turret-get-off 90)
(send-shoves
(-> self root-override)
proc
(the-as touching-shapes-entry (-> event param 0))
0.7
6144.0
16384.0
)
(send-shoves (-> self root) proc (the-as touching-shapes-entry (-> event param 0)) 0.7 6144.0 16384.0)
#f
)
(('exit)
@@ -1571,13 +1557,13 @@
)
(send-event-function (handle->process (-> self rider)) a1-1)
)
(let ((v1-17 (-> self root-override root-prim)))
(let ((v1-17 (-> self root root-prim)))
(set! (-> v1-17 prim-core collide-as) (collide-spec))
(set! (-> v1-17 prim-core collide-with) (collide-spec))
)
0
(logior! (-> self draw status) (draw-control-status no-draw))
(sound-play "turret-die" :position (-> self root-override trans))
(sound-play "turret-die" :position (-> self root trans))
(let ((gp-2 (new 'stack 'joint-exploder-tuning (the-as uint 0))))
(process-spawn
joint-exploder
@@ -1589,7 +1575,7 @@
)
)
(let ((gp-3 (new 'stack-no-clear 'vector)))
(set! (-> gp-3 quad) (-> self root-override trans quad))
(set! (-> gp-3 quad) (-> self root trans quad))
(set! (-> gp-3 y) (+ 8192.0 (-> gp-3 y)))
(let ((s5-2 (get-process *default-dead-pool* part-tracker #x4000)))
(when s5-2
@@ -1636,7 +1622,7 @@
(defmethod base-turret-method-47 base-turret ((obj base-turret))
(with-pp
(let ((a0-1 (-> obj root-override trans))
(let ((a0-1 (-> obj root trans))
(f30-0 0.0)
(s4-0 (the-as process-drawable #f))
)
@@ -1667,7 +1653,7 @@
(!= s2-1 *target*)
(base-turret-method-46 obj s2-1)
)
(let ((f0-1 (vector-vector-xz-distance (-> obj root-override trans) (-> s2-1 root trans))))
(let ((f0-1 (vector-vector-xz-distance (-> obj root trans) (-> s2-1 root trans))))
(when (or (not s4-0) (< f0-1 f30-0))
(set! s4-0 s2-1)
(set! f30-0 f0-1)
@@ -1688,12 +1674,12 @@
(set! (-> s5-1 w) 1.0)
(let ((s1-1 (new 'stack-no-clear 'vector))
(s3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12)))
(s2-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override quat)))
(s2-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))
)
(vector-matrix*! s5-1 s5-1 (-> (the-as process-focusable s4-0) node-list data 0 bone transform))
(vector-line-distance-point! s5-1 s3-1 (vector+float*! (new 'stack-no-clear 'vector) s3-1 s2-2 4096.0) s1-1)
(let* ((a1-10 (vector-! (new 'stack-no-clear 'vector) s5-1 s1-1))
(s4-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) a1-10 (-> obj root-override quat)))
(s4-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) a1-10 (-> obj root quat)))
(f30-1 (vector-vector-angle-safe s2-2 (vector-! (new 'stack-no-clear 'vector) s5-1 s3-1)))
)
(let ((f0-10 (- (atan (-> s4-1 x) (-> s4-1 y)))))
@@ -1716,7 +1702,7 @@
)
(seek!
(-> obj arrow-red)
(lerp-scale 1.0 0.0 (vector-vector-distance s5-1 (-> obj root-override trans)) 122880.0 245760.0)
(lerp-scale 1.0 0.0 (vector-vector-distance s5-1 (-> obj root trans)) 122880.0 245760.0)
(-> pp clock seconds-per-frame)
)
)
@@ -1733,7 +1719,7 @@
)
(defmethod base-turret-method-43 base-turret ((obj base-turret))
(set! (-> obj roty) (y-angle (-> obj root-override)))
(set! (-> obj roty) (y-angle (-> obj root)))
(set! (-> obj rotyv) 0.0)
(set! (-> obj rotyvv) 0.0)
(set! (-> obj rotx) 0.0)
@@ -1775,15 +1761,15 @@
(set! (-> s3-0 backup-collide-as) (-> v1-19 prim-core collide-as))
(set! (-> s3-0 backup-collide-with) (-> v1-19 prim-core collide-with))
)
(set! (-> obj root-override) s3-0)
(set! (-> obj root) s3-0)
)
(when arg0
(process-drawable-from-entity! obj arg0)
(set-yaw-angle-clear-roll-pitch! (-> obj root-override) (res-lump-float arg0 'rotoffset))
(set-yaw-angle-clear-roll-pitch! (-> obj root) (res-lump-float arg0 'rotoffset))
)
(when arg1
(set! (-> obj root-override trans quad) (-> arg1 vector 0 quad))
(quaternion-copy! (-> obj root-override quat) (the-as quaternion (-> arg1 vector 1)))
(set! (-> obj root trans quad) (-> arg1 vector 0 quad))
(quaternion-copy! (-> obj root quat) (the-as quaternion (-> arg1 vector 1)))
)
(initialize-skeleton
obj
@@ -1797,13 +1783,7 @@
(new 'process 'fact-info obj (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc))
)
(if (-> obj entity)
(move-to-ground
(the-as collide-shape-moving (-> obj root-override))
40960.0
40960.0
#t
(collide-spec backgnd)
)
(move-to-ground (the-as collide-shape-moving (-> obj root)) 40960.0 40960.0 #t (collide-spec backgnd))
)
(set-zero! (-> obj smush-control))
(set! (-> obj hud) (the-as handle #f))
@@ -1849,12 +1829,12 @@
(logior! (-> s5-1 flags) (path-control-flag display draw-line draw-point draw-text))
)
(when (not (logtest? (-> obj path flags) (path-control-flag not-found)))
(get-point-at-percent-along-path! (-> obj path) (-> obj root-override trans) 0.0 'interp)
(set! (-> obj path-old-pos quad) (-> obj root-override trans quad))
(get-point-at-percent-along-path! (-> obj path) (-> obj root trans) 0.0 'interp)
(set! (-> obj path-old-pos quad) (-> obj root trans quad))
)
(set! (-> obj path-speed-mult) 1.0)
(quaternion-copy! (-> obj target-quat) *unity-quaternion*)
(quaternion-copy! (-> obj init-quat) (-> obj root-override quat))
(quaternion-copy! (-> obj init-quat) (-> obj root quat))
(set! (-> obj gun-index) 0)
(set! (-> obj shot-timeout) (seconds 0.667))
(set! (-> obj gun-recoil-jmod 0) (new 'process 'joint-mod-add-local obj 5 #t #f #f))
@@ -1883,7 +1863,7 @@
(defmethod base-turret-method-41 base-turret ((obj base-turret) (arg0 vector))
(local-vars (sv-592 int))
(let* ((s3-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj init-quat)))
(s1-0 (-> obj root-override trans))
(s1-0 (-> obj root trans))
(s5-0 (new 'stack-no-clear 'vector))
(s2-0 (new 'stack 'collide-query))
(s0-0 8)
@@ -1903,7 +1883,7 @@
(set! (-> v1-9 collide-with) (collide-spec backgnd))
(set! (-> v1-9 ignore-process0) obj)
(set! (-> v1-9 ignore-process1) #f)
(set! (-> v1-9 ignore-pat) (-> obj root-override pat-ignore-mask))
(set! (-> v1-9 ignore-pat) (-> obj root pat-ignore-mask))
(set! (-> v1-9 action-mask) (collide-action solid))
)
(when (>= (fill-and-probe-using-line-sphere *collide-cache* s2-0) 0.0)
@@ -1980,7 +1960,7 @@
(let ((s3-0 (new 'static 'array int32 4 5 11 7 9))
(s4-0 (* (-> obj gun-index) 2))
(s2-0 (+ (* (-> obj gun-index) 2) 1))
(s5-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root-override quat)))
(s5-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))
)
(set-recoil (the-as joint-mod (-> obj gun-recoil-jmod s4-0)) -819.2 arg1)
(set-recoil (the-as joint-mod (-> obj gun-recoil-jmod s2-0)) 819.2 arg1)
@@ -2314,14 +2294,12 @@ This commonly includes things such as:
)
(let ((v1-2 (handle->process (-> self turret handle))))
(if v1-2
(quaternion<-rotate-y-vector
(-> self control dir-targ)
(vector-!
(new 'stack-no-clear 'vector)
(-> (the-as process-focusable v1-2) root-override trans)
(-> self control trans)
)
)
(quaternion<-rotate-y-vector (-> self control dir-targ) (vector-!
(new 'stack-no-clear 'vector)
(-> (the-as process-focusable v1-2) root trans)
(-> self control trans)
)
)
)
)
(set! (-> self control unknown-handle02) (-> self turret handle))
@@ -2393,7 +2371,7 @@ This commonly includes things such as:
(new 'static 'vector :z -10649.6 :w 1.0)
(-> (the-as process-focusable s5-0) node-list data 0 bone transform)
)
(set! (-> self control unknown-vector40 quad) (-> (the-as process-focusable s5-0) root-override quat quad))
(set! (-> self control unknown-vector40 quad) (-> (the-as process-focusable s5-0) root quat quad))
)
)
(set! (-> self alt-cam-pos quad) (-> self control camera-pos quad))
@@ -2411,7 +2389,7 @@ This commonly includes things such as:
)
)
(if a0-39
(set! (-> self alt-cam-pos quad) (-> (the-as process-focusable a0-39) root-override trans quad))
(set! (-> self alt-cam-pos quad) (-> (the-as process-focusable a0-39) root trans quad))
)
)
(vector-lerp!
+2 -4
View File
@@ -622,7 +622,7 @@
)
)
)
(case (-> (the-as fact-info-target (-> self fact-override)) eco-type)
(case (-> self fact eco-type)
((1)
(set! (-> self control penetrate-using) (logior (penetrate eco-yellow) (-> self control penetrate-using)))
)
@@ -1305,9 +1305,7 @@
)
)
(>= (- (current-time) (-> self control last-running-attack-end-time))
(the-as time-frame (if (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 1)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(the-as time-frame (if (and (= (-> self fact eco-type) 1) (>= (-> self fact eco-level) 1.0))
(-> *TARGET-bank* yellow-attack-timeout)
(-> *TARGET-bank* attack-timeout)
)
+9 -27
View File
@@ -2216,9 +2216,7 @@
(until (ja-done? 0)
(compute-alignment! (-> self align))
(align! (-> self align) (align-opts adjust-quat) 1.0 1.0 1.0)
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(when (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 38)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
@@ -2519,9 +2517,7 @@
#f
)
)
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(when (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 22)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
@@ -2961,9 +2957,7 @@
(set! (-> self control dynam gravity-max) (-> self control standard-dynamics gravity-max))
(set! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length))
)
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(when (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 31)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
@@ -3253,9 +3247,7 @@
(go target-attack-air 'uppercut)
)
(mod-var-jump #t #t (cpad-hold? (-> self control cpad number) x) (-> self control transv))
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(when (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 22)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
)
@@ -3373,9 +3365,7 @@
)
:enter (behavior ((arg0 float) (arg1 float) (arg2 float))
(cond
((and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 1)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
((and (= (-> self fact eco-type) 1) (>= (-> self fact eco-level) 1.0))
(go target-yellow-jump-blast)
)
((and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 4))
@@ -3448,15 +3438,11 @@
)
(when gp-1
(logior! (-> self control status) (collide-status on-surface))
(when (or (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(when (or (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2))
)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5))
(if (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(if (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(do-effect (-> self skel effect) 'group-red-eco-strike-ground (ja-frame-num 0) 0)
)
(let ((v1-56 (process-spawn touch-tracker :init touch-tracker-init (-> self control trans) #x45800000 30 :to self))
@@ -3476,9 +3462,7 @@
(go target-flop-hit-ground gp-1)
)
)
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(when (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5)
22
18
@@ -3687,9 +3671,7 @@
(go target-attack-air 'flop)
)
)
(when (and (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
)
(when (and (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(< (- (current-time) (-> self state-time)) (seconds 0.25))
)
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5)
+2 -2
View File
@@ -1105,7 +1105,7 @@
(let ((f0-5 (the float (the int (+ 1.0 (/ (- arg0 (-> *TARGET-bank* fall-far)) (-> *TARGET-bank* fall-far-inc))))))
)
(pickup-collectable!
(-> self fact-override)
(-> self fact)
(pickup-type health)
(* (-> *FACT-bank* health-single-inc) (- (fmax 0.0 f0-5)))
(the-as handle #f)
@@ -1114,7 +1114,7 @@
(target-timed-invulnerable (the-as time-frame (-> *TARGET-bank* hit-invulnerable-timeout)) self 1)
)
(cond
((and (= (-> self game mode) 'play) (>= 0.0 (-> (the-as fact-info-target (-> self fact-override)) health)))
((and (= (-> self game mode) 'play) (>= 0.0 (-> (the-as fact-info-target (-> self fact)) health)))
(set! (-> self attack-info attacker) (the-as handle #f))
(go target-death 'target-hit-ground-hard)
)
+1 -1
View File
@@ -610,7 +610,7 @@
(format 0 "ERROR: bigmap: mini-map-icons texture is #f~%")
)
)
(let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s3-2
(let ((a2-3 (the-as connection-minimap s3-2)))
(when (logtest? (-> a2-3 class flags) (minimap-flag bigmap))
+8 -13
View File
@@ -7,8 +7,6 @@
;; DECOMP BEGINS
(defglobalconstant SKIP_MINIMAP_DRAW #f)
(defmethod draw hud-map ((obj hud-map))
(set-hud-piece-position!
(-> obj sprites 1)
@@ -36,9 +34,6 @@
(let ((t9-5 (method-of-type hud draw)))
(t9-5 obj)
)
(#when SKIP_MINIMAP_DRAW
(return #f)
)
(cond
((< (-> *setting-control* user-current race-minimap) 0)
(with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf))
@@ -258,10 +253,10 @@
)
(defmethod update-values hud-health ((obj hud-health))
(set! (-> obj values 0 target) (the int (* 10.0 (-> *target* fact-override health))))
(set! (-> obj values 1 target) (the-as int (-> *target* fact-override health-pickup-time)))
(set! (-> obj values 0 target) (the int (* 10.0 (-> *target* fact health))))
(set! (-> obj values 1 target) (the-as int (-> *target* fact health-pickup-time)))
(set! (-> obj values 2 target) (mod (the int (+ 0.5 (-> *target* game eco-pill-dark))) 100))
(set! (-> obj values 3 target) (the-as int (-> *target* fact-override eco-pill-dark-pickup-time)))
(set! (-> obj values 3 target) (the-as int (-> *target* fact eco-pill-dark-pickup-time)))
(if (and (zero? (-> obj values 2 target)) (!= (-> *target* game eco-pill-dark) 0.0))
(set! (-> obj values 2 target) 100)
)
@@ -402,10 +397,10 @@
)
(defmethod update-values hud-dark-eco-symbol ((obj hud-dark-eco-symbol))
(set! (-> obj values 0 target) (the int (* 10.0 (-> *target* fact-override health))))
(set! (-> obj values 1 target) (the-as int (-> *target* fact-override health-pickup-time)))
(set! (-> obj values 0 target) (the int (* 10.0 (-> *target* fact health))))
(set! (-> obj values 1 target) (the-as int (-> *target* fact health-pickup-time)))
(set! (-> obj values 2 target) (mod (the int (+ 0.5 (-> *target* game eco-pill-dark))) 100))
(set! (-> obj values 3 target) (the-as int (-> *target* fact-override eco-pill-dark-pickup-time)))
(set! (-> obj values 3 target) (the-as int (-> *target* fact eco-pill-dark-pickup-time)))
(if (and (or (and (zero? (-> obj values 2 target)) (!= (-> *target* game eco-pill-dark) 0.0))
(focus-test? *target* dark)
)
@@ -511,7 +506,7 @@
(when (not (paused?))
(let ((s5-1 (new 'stack-no-clear 'quaternion)))
(quaternion-axis-angle! s5-1 0.0 1.0 0.0 364.0889)
(quaternion*! (-> obj icons 0 icon 0 root-override quat) s5-1 (-> obj icons 0 icon 0 root-override quat))
(quaternion*! (-> obj icons 0 icon 0 root quat) s5-1 (-> obj icons 0 icon 0 root quat))
)
)
((method-of-type hud draw) obj)
@@ -1040,7 +1035,7 @@
(cond
((focus-test? *target* gun)
(set! (-> obj values 0 target) (the-as int (-> *target* gun gun-type)))
(set! (-> obj values 1 target) (the int (get-gun-ammo (-> *target* fact-override))))
(set! (-> obj values 1 target) (the int (get-gun-ammo (-> *target* fact))))
(logclear! (-> obj flags) (hud-flags disable))
(logior! (-> obj flags) (hud-flags show))
)
+69 -232
View File
@@ -261,32 +261,10 @@
(t2-0 (the int (- (-> obj max y) (-> obj min y))))
(t1-0 (/ t2-0 4))
)
(let* ((t3-0 arg0)
(t4-0 (the-as dma-packet (-> t3-0 base)))
)
(set! (-> t4-0 dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)))
(set! (-> t4-0 vif0) (new 'static 'vif-tag))
(set! (-> t4-0 vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1))
(set! (-> t3-0 base) (the-as pointer (&+ t4-0 16)))
)
(let* ((t3-1 arg0)
(t4-2 (the-as gs-gif-tag (-> t3-1 base)))
)
(set! (-> t4-2 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2))
(set! (-> t4-2 regs) GIF_REGS_ALL_AD)
(set! (-> t3-1 base) (the-as pointer (&+ t4-2 16)))
)
(let* ((t3-2 arg0)
(t4-4 (-> t3-2 base))
)
(set! (-> (the-as (pointer gs-test) t4-4) 0)
(new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))
)
(set! (-> (the-as (pointer gs-reg64) t4-4) 1) (gs-reg64 test-1))
(set! (-> (the-as (pointer gs-alpha) t4-4) 2) (new 'static 'gs-alpha :b #x2 :d #x1))
(set! (-> (the-as (pointer gs-reg64) t4-4) 3) (gs-reg64 alpha-1))
(set! (-> t3-2 base) (&+ t4-4 32))
)
(dma-buffer-add-gs-set arg0
(test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :b #x2 :d #x1))
)
(set! (-> v1-0 scanline) (mod (+ (-> v1-0 scanline) 6) (the-as uint t2-0)))
(let ((t3-6 (the-as (pointer uint128) (-> arg0 base))))
(set! (-> t3-6 0) (-> v1-0 scan-tmpl dma-vif quad))
@@ -308,30 +286,7 @@
(&+! (-> arg0 base) 80)
)
)
(let* ((a0-5 arg0)
(t2-1 (the-as dma-packet (-> a0-5 base)))
)
(set! (-> t2-1 dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)))
(set! (-> t2-1 vif0) (new 'static 'vif-tag))
(set! (-> t2-1 vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1))
(set! (-> a0-5 base) (the-as pointer (&+ t2-1 16)))
)
(let* ((a0-6 arg0)
(t2-3 (the-as gs-gif-tag (-> a0-6 base)))
)
(set! (-> t2-3 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2))
(set! (-> t2-3 regs) GIF_REGS_ALL_AD)
(set! (-> a0-6 base) (the-as pointer (&+ t2-3 16)))
)
(let* ((a0-7 arg0)
(t2-5 (-> a0-7 base))
)
(set! (-> (the-as (pointer gs-alpha) t2-5) 0) (new 'static 'gs-alpha :a #x2 :d #x1))
(set! (-> (the-as (pointer gs-reg64) t2-5) 1) (gs-reg64 alpha-1))
(set! (-> (the-as (pointer gs-rgbaq) t2-5) 2) (-> v1-0 line-color))
(set! (-> (the-as (pointer gs-reg64) t2-5) 3) (gs-reg64 rgbaq))
(set! (-> a0-7 base) (&+ t2-5 32))
)
(dma-buffer-add-gs-set arg0 (alpha-1 (new 'static 'gs-alpha :a #x2 :d #x1)) (rgbaq (-> v1-0 line-color)))
(dotimes (a0-8 t1-0)
(let ((t2-7 (the-as (inline-array vector4w) (-> arg0 base))))
(set! (-> t2-7 0 quad) (-> v1-0 line-tmpl dma-vif quad))
@@ -493,32 +448,10 @@
)
(defmethod draw-box-alpha-1 hud-box ((obj hud-box) (arg0 dma-buffer))
(let* ((v1-0 arg0)
(a2-0 (the-as dma-packet (-> v1-0 base)))
)
(set! (-> a2-0 dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)))
(set! (-> a2-0 vif0) (new 'static 'vif-tag))
(set! (-> a2-0 vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1))
(set! (-> v1-0 base) (the-as pointer (&+ a2-0 16)))
)
(let* ((v1-1 arg0)
(a2-2 (the-as gs-gif-tag (-> v1-1 base)))
)
(set! (-> a2-2 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2))
(set! (-> a2-2 regs) GIF_REGS_ALL_AD)
(set! (-> v1-1 base) (the-as pointer (&+ a2-2 16)))
)
(let* ((v1-2 arg0)
(a2-4 (-> v1-2 base))
)
(set! (-> (the-as (pointer gs-test) a2-4) 0)
(new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))
)
(set! (-> (the-as (pointer gs-reg64) a2-4) 1) (gs-reg64 test-1))
(set! (-> (the-as (pointer gs-alpha) a2-4) 2) (new 'static 'gs-alpha :a #x1 :d #x2))
(set! (-> (the-as (pointer gs-reg64) a2-4) 3) (gs-reg64 alpha-1))
(set! (-> v1-2 base) (&+ a2-4 32))
)
(dma-buffer-add-gs-set arg0
(test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :a #x1 :d #x2))
)
(let ((t0-0 *hud-sprite-work*)
(v1-3 (the-as (inline-array vector4w) (-> arg0 base)))
(a2-8 (* (+ (the int (-> obj min x)) 1792) 16))
@@ -540,32 +473,10 @@
)
(defmethod draw-box-alpha-2 hud-box ((obj hud-box) (arg0 dma-buffer))
(let* ((v1-0 arg0)
(a2-0 (the-as dma-packet (-> v1-0 base)))
)
(set! (-> a2-0 dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)))
(set! (-> a2-0 vif0) (new 'static 'vif-tag))
(set! (-> a2-0 vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1))
(set! (-> v1-0 base) (the-as pointer (&+ a2-0 16)))
)
(let* ((v1-1 arg0)
(a2-2 (the-as gs-gif-tag (-> v1-1 base)))
)
(set! (-> a2-2 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2))
(set! (-> a2-2 regs) GIF_REGS_ALL_AD)
(set! (-> v1-1 base) (the-as pointer (&+ a2-2 16)))
)
(let* ((v1-2 arg0)
(a2-4 (-> v1-2 base))
)
(set! (-> (the-as (pointer gs-test) a2-4) 0)
(new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))
)
(set! (-> (the-as (pointer gs-reg64) a2-4) 1) (gs-reg64 test-1))
(set! (-> (the-as (pointer gs-alpha) a2-4) 2) (new 'static 'gs-alpha :b #x2 :d #x1))
(set! (-> (the-as (pointer gs-reg64) a2-4) 3) (gs-reg64 alpha-1))
(set! (-> v1-2 base) (&+ a2-4 32))
)
(dma-buffer-add-gs-set arg0
(test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :b #x2 :d #x1))
)
(let ((t0-0 *hud-sprite-work*)
(v1-3 (the-as (inline-array vector4w) (-> arg0 base)))
(a2-8 (* (+ (the int (-> obj min x)) 1792) 16))
@@ -587,32 +498,10 @@
)
(defmethod draw-box-alpha-3 hud-box ((obj hud-box) (arg0 dma-buffer))
(let* ((v1-0 arg0)
(a2-0 (the-as dma-packet (-> v1-0 base)))
)
(set! (-> a2-0 dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)))
(set! (-> a2-0 vif0) (new 'static 'vif-tag))
(set! (-> a2-0 vif1) (new 'static 'vif-tag :imm #x3 :cmd (vif-cmd direct) :msk #x1))
(set! (-> v1-0 base) (the-as pointer (&+ a2-0 16)))
)
(let* ((v1-1 arg0)
(a2-2 (the-as gs-gif-tag (-> v1-1 base)))
)
(set! (-> a2-2 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x2))
(set! (-> a2-2 regs) GIF_REGS_ALL_AD)
(set! (-> v1-1 base) (the-as pointer (&+ a2-2 16)))
)
(let* ((v1-2 arg0)
(a2-4 (-> v1-2 base))
)
(set! (-> (the-as (pointer gs-test) a2-4) 0)
(new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))
)
(set! (-> (the-as (pointer gs-reg64) a2-4) 1) (gs-reg64 test-1))
(set! (-> (the-as (pointer gs-alpha) a2-4) 2) (new 'static 'gs-alpha :b #x1 :d #x1))
(set! (-> (the-as (pointer gs-reg64) a2-4) 3) (gs-reg64 alpha-1))
(set! (-> v1-2 base) (&+ a2-4 32))
)
(dma-buffer-add-gs-set arg0
(test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1))
)
(let ((t0-0 *hud-sprite-work*)
(v1-3 (the-as (inline-array vector4w) (-> arg0 base)))
(a2-8 (* (+ (the int (-> obj min x)) 1792) 16))
@@ -634,61 +523,20 @@
)
(defmethod setup-scissor hud-box ((obj hud-box) (arg0 dma-buffer))
(let* ((v1-0 arg0)
(a2-0 (the-as dma-packet (-> v1-0 base)))
)
(set! (-> a2-0 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)))
(set! (-> a2-0 vif0) (new 'static 'vif-tag))
(set! (-> a2-0 vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1))
(set! (-> v1-0 base) (the-as pointer (&+ a2-0 16)))
)
(let* ((v1-1 arg0)
(a2-2 (the-as gs-gif-tag (-> v1-1 base)))
)
(set! (-> a2-2 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1))
(set! (-> a2-2 regs) GIF_REGS_ALL_AD)
(set! (-> v1-1 base) (the-as pointer (&+ a2-2 16)))
)
(let* ((v1-2 arg0)
(a1-1 (-> v1-2 base))
)
(set! (-> (the-as (pointer gs-scissor) a1-1) 0) (new 'static 'gs-scissor
:scax0 (the int (-> obj min x))
:scay0 (the int (-> obj min y))
:scax1 (the int (-> obj max x))
:scay1 (the int (-> obj max y))
)
)
(set! (-> (the-as (pointer gs-reg64) a1-1) 1) (gs-reg64 scissor-1))
(set! (-> v1-2 base) (&+ a1-1 16))
)
(dma-buffer-add-gs-set arg0 (scissor-1 (new 'static 'gs-scissor
:scax0 (the int (-> obj min x))
:scay0 (the int (-> obj min y))
:scax1 (the int (-> obj max x))
:scay1 (the int (-> obj max y))
)
)
)
0
(none)
)
(defmethod restore-scissor hud-box ((obj hud-box) (arg0 dma-buffer))
(let* ((v1-0 arg0)
(a0-1 (the-as dma-packet (-> v1-0 base)))
)
(set! (-> a0-1 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)))
(set! (-> a0-1 vif0) (new 'static 'vif-tag))
(set! (-> a0-1 vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1))
(set! (-> v1-0 base) (the-as pointer (&+ a0-1 16)))
)
(let* ((v1-1 arg0)
(a0-3 (the-as gs-gif-tag (-> v1-1 base)))
)
(set! (-> a0-3 tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1))
(set! (-> a0-3 regs) GIF_REGS_ALL_AD)
(set! (-> v1-1 base) (the-as pointer (&+ a0-3 16)))
)
(let* ((v1-2 arg0)
(a0-5 (-> v1-2 base))
)
(set! (-> (the-as (pointer gs-scissor) a0-5) 0) (new 'static 'gs-scissor :scax1 #x1ff :scay1 #x19f))
(set! (-> (the-as (pointer gs-reg64) a0-5) 1) (gs-reg64 scissor-1))
(set! (-> v1-2 base) (&+ a0-5 16))
)
(dma-buffer-add-gs-set arg0 (scissor-1 (new 'static 'gs-scissor :scax1 #x1ff :scay1 #x19f)))
0
(none)
)
@@ -703,8 +551,6 @@
(the-as hud ((method-of-type process relocate) obj arg0))
)
;; WARN: Failed store: (s.w! (+ v1-47 8) 0) at op 126
;; WARN: Failed store: (s.w! (+ v1-47 12) 0) at op 127
(defmethod draw hud ((obj hud))
(when (not (hidden? obj))
(with-dma-buffer-add-bucket ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf))
@@ -715,17 +561,9 @@
(draw (-> obj sprites s3-0) s4-0 (-> obj level))
)
)
(let ((s3-1 (new
'stack
'font-context
*font-default-matrix*
0
0
0.0
(font-color default)
(font-flags shadow kerning)
)
)
(let ((s3-1
(new 'stack 'font-context *font-default-matrix* 0 0 0.0 (font-color default) (font-flags shadow kerning))
)
)
(dotimes (s2-0 14)
(when (and (-> obj strings s2-0 text) (nonzero? (-> obj strings s2-0 pos 0)))
@@ -747,18 +585,18 @@
(dotimes (v1-55 2)
(when (-> obj icons v1-55 icon)
(set-vector!
(-> obj icons v1-55 icon 0 root-override scale)
(-> obj icons v1-55 icon 0 root scale)
(* (-> obj icons v1-55 scale-x) (-> *video-params* relative-x-scale))
(-> obj icons v1-55 scale-y)
(* (-> obj icons v1-55 scale-x) (-> *video-params* relative-x-scale))
1.0
)
(if (-> *blit-displays-work* horizontal-flip-flag)
(set! (-> obj icons v1-55 icon 0 root-override trans x) (the float (- 256 (-> obj icons v1-55 pos 0))))
(set! (-> obj icons v1-55 icon 0 root-override trans x) (the float (+ (-> obj icons v1-55 pos 0) -256)))
(set! (-> obj icons v1-55 icon 0 root trans x) (the float (- 256 (-> obj icons v1-55 pos 0))))
(set! (-> obj icons v1-55 icon 0 root trans x) (the float (+ (-> obj icons v1-55 pos 0) -256)))
)
(set! (-> obj icons v1-55 icon 0 root-override trans y) (the float (* (+ (-> obj icons v1-55 pos 1) -208) 2)))
(set! (-> obj icons v1-55 icon 0 root-override trans z) (the float (-> obj icons v1-55 pos 2)))
(set! (-> obj icons v1-55 icon 0 root trans y) (the float (* (+ (-> obj icons v1-55 pos 1) -208) 2)))
(set! (-> obj icons v1-55 icon 0 root trans z) (the float (-> obj icons v1-55 pos 2)))
)
)
)
@@ -792,7 +630,7 @@
(the-as uint (seekl
(the-as int (-> obj values s4-0 counter))
0
(the-as int (- (-> pp clock frame-counter) (-> pp clock old-frame-counter)))
(the-as int (- (current-time) (-> pp clock old-frame-counter)))
)
)
)
@@ -826,13 +664,10 @@
)
)
(if (and (not *progress-process*)
(>= (- (-> pp clock frame-counter) (-> obj last-hide-time)) (seconds 0.05))
(>= (- (current-time) (-> obj last-hide-time)) (seconds 0.05))
(>= (- (-> *display* base-clock frame-counter) (-> *game-info* letterbox-time)) (seconds 0.1))
(>= (- (-> *display* base-clock frame-counter) (-> *game-info* blackout-time)) (seconds 0.1))
(or (not *target*)
(not (logtest? (-> *target* focus-status) (focus-status grabbed)))
(logtest? (-> obj flags) (hud-flags show))
)
(or (not *target*) (not (focus-test? *target* grabbed)) (logtest? (-> obj flags) (hud-flags show)))
(not (logtest? (-> obj flags) (hud-flags disable)))
(not (or (= *master-mode* 'progress) (= *master-mode* 'menu)))
(or s5-0
@@ -894,17 +729,21 @@
(the-as symbol (and (-> obj next-state) (= (-> obj next-state name) 'hud-hidden)))
)
;; WARN: Return type mismatch (pointer process) vs (pointer manipy).
(defun hud-create-icon ((arg0 hud) (arg1 int) (arg2 int))
(let ((s4-0 (process-spawn manipy :init manipy-init (new 'static 'vector :w 1.0) #f arg2 #f 0 :to arg0)))
(when s4-0
(set! (-> (the-as process-drawable (-> s4-0 0)) draw dma-add-func)
(the-as (function process-drawable draw-control symbol object none) dma-add-process-drawable-hud)
)
(logior! (-> s4-0 0 mask) (process-mask freeze pause))
(logclear! (-> s4-0 0 mask) (process-mask menu progress))
(send-event (ppointer->process s4-0) 'draw #f)
(set! (-> arg0 icons arg1 icon) (the-as (pointer manipy) s4-0))
s4-0
(the-as
(pointer manipy)
(when s4-0
(set! (-> (the-as process-drawable (-> s4-0 0)) draw dma-add-func)
(the-as (function process-drawable draw-control symbol object none) dma-add-process-drawable-hud)
)
(logior! (-> s4-0 0 mask) (process-mask freeze pause))
(logclear! (-> s4-0 0 mask) (process-mask menu progress))
(send-event (ppointer->process s4-0) 'draw #f)
(set! (-> arg0 icons arg1 icon) (the-as (pointer manipy) s4-0))
s4-0
)
)
)
)
@@ -924,19 +763,19 @@
(case event-type
(('show)
(if (and (not *progress-process*)
(!= (-> self last-hide-time) (-> self clock frame-counter))
(!= (-> self last-hide-time) (current-time))
(check-ready-and-maybe-show self #t)
)
(go hud-arriving)
)
)
(('hide)
(set! v0-1 (-> self clock frame-counter))
(set! v0-1 (current-time))
(set! (-> self last-hide-time) (the-as time-frame v0-1))
v0-1
)
(('force-hide)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(set! v0-1 (logclear (-> self flags) (hud-flags show)))
(set! (-> self flags) (the-as hud-flags v0-1))
v0-1
@@ -944,19 +783,19 @@
(('force-show)
(logior! (-> self flags) (hud-flags show))
(if (and (not *progress-process*)
(!= (-> self last-hide-time) (-> self clock frame-counter))
(!= (-> self last-hide-time) (current-time))
(check-ready-and-maybe-show self #t)
)
(go hud-arriving)
)
)
(('hide-quick)
(set! v0-1 (-> self clock frame-counter))
(set! v0-1 (current-time))
(set! (-> self last-hide-time) (the-as time-frame v0-1))
v0-1
)
(('hide-and-die)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(logior! (-> self flags) (hud-flags should-die))
(set! v0-1 (logclear (-> self flags) (hud-flags show)))
(set! (-> self flags) (the-as hud-flags v0-1))
@@ -1018,38 +857,38 @@
(local-vars (v0-1 object))
(case event-type
(('hide-quick)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(set! (-> self offset) 1.0)
(update-values self)
(go hud-hidden)
)
(('force-hide)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(logclear! (-> self flags) (hud-flags show))
(go hud-leaving 0.1)
)
(('force-show)
(logior! (-> self flags) (hud-flags show))
(if (and (not *progress-process*)
(!= (-> self last-hide-time) (-> self clock frame-counter))
(!= (-> self last-hide-time) (current-time))
(check-ready-and-maybe-show self #t)
)
(go hud-arriving)
)
)
(('hide)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(go hud-leaving 0.1)
)
(('hide-and-die)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(logior! (-> self flags) (hud-flags should-die))
(logclear! (-> self flags) (hud-flags show))
(go hud-leaving 0.1)
)
(('show)
(if (and (not *progress-process*)
(!= (-> self last-hide-time) (-> self clock frame-counter))
(!= (-> self last-hide-time) (current-time))
(check-ready-and-maybe-show self #t)
)
(go hud-arriving)
@@ -1077,7 +916,7 @@
)
)
:enter (behavior ()
(set! (-> self trigger-time) (-> self clock frame-counter))
(set! (-> self trigger-time) (current-time))
(let ((gp-0 (-> self child)))
(while gp-0
(send-event (ppointer->process gp-0) 'draw #t)
@@ -1096,7 +935,7 @@
)
(when (= (get-status *gui-control* (-> self gui-id)) (gui-status pending))
(set! (-> self event-hook) #f)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(set! (-> self offset) 1.0)
(update-values self)
(go hud-hidden)
@@ -1122,16 +961,14 @@
(defstate hud-in (hud)
:event (-> hud-arriving event)
:code (behavior ()
(set! (-> self trigger-time) (-> self clock frame-counter))
(while (and (< (- (-> self clock frame-counter) (-> self trigger-time)) (seconds 2))
(check-ready-and-maybe-show self #f)
)
(set! (-> self trigger-time) (current-time))
(while (and (< (- (current-time) (-> self trigger-time)) (seconds 2)) (check-ready-and-maybe-show self #f))
(set! (-> self offset) 0.0)
(suspend)
)
(when (= (get-status *gui-control* (-> self gui-id)) (gui-status pending))
(set! (-> self event-hook) #f)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(set! (-> self offset) 1.0)
(update-values self)
(go hud-hidden)
@@ -1151,7 +988,7 @@
)
(when (= (get-status *gui-control* (-> self gui-id)) (gui-status pending))
(set! (-> self event-hook) #f)
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(set! (-> self offset) 1.0)
(update-values self)
(go hud-hidden)
@@ -1172,7 +1009,7 @@
(set! (-> self mask) (process-mask menu))
(set! (-> self clock) (-> *display* real-clock))
(set! (-> self flags) (hud-flags))
(set! (-> self last-hide-time) (-> self clock frame-counter))
(set! (-> self last-hide-time) (current-time))
(set! (-> self offset) 1.0)
(dotimes (v1-9 14)
(set! (-> self strings v1-9 text) #f)
+2 -2
View File
@@ -142,8 +142,8 @@
(deftype engine-minimap (engine-pers)
((alive-list-override connection-minimap :offset 24)
(dead-list-override connection-minimap :offset 28)
((alive-list connection-minimap :override)
(dead-list connection-minimap :override)
)
:method-count-assert 15
:size-assert #x20
+10 -10
View File
@@ -1134,8 +1134,8 @@
(defmethod run-pending-updates! engine-minimap ((obj engine-minimap) (arg0 time-frame))
(with-pp
(let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list-override)))
(s3-0 (-> obj alive-list-override))
(let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list)))
(s3-0 (-> obj alive-list))
)
(while s3-0
(let ((s4-0 (-> s3-0 next)))
@@ -1172,8 +1172,8 @@
((and (logtest? (-> s3-0 flags) (minimap-flag fade-out)) (= (-> s3-0 alpha) 0.0))
(kill-callback obj s3-0)
(set! (-> s2-0 0) (-> s3-0 next))
(set! (-> s3-0 next) (-> obj dead-list-override))
(set! (-> obj dead-list-override) s3-0)
(set! (-> s3-0 next) (-> obj dead-list))
(set! (-> obj dead-list) s3-0)
(+! (-> obj length) -1)
)
((and (handle->process (-> s3-0 handle))
@@ -1974,7 +1974,7 @@
)
(dma-buffer-add-gs-set s5-0 (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x640 :ofy #x640)))
(when (!= (-> obj frustum-alpha) 0.0)
(let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s3-2
(let ((a2-6 s3-2))
(if (logtest? (-> (the-as connection-minimap a2-6) class flags) (minimap-flag frustum))
@@ -1998,7 +1998,7 @@
(format *stdcon* "minimap: mini-map-icons texture is #f~%")
)
)
(let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s3-4
(let ((a2-7 s3-4))
(if (logtest? (-> (the-as connection-minimap a2-7) class flags) (minimap-flag frustum))
@@ -2018,7 +2018,7 @@
(&+! (-> arg0 buf base) 112)
)
)
(let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s3-6
(let ((a2-8 s3-6))
(if (logtest? (-> (the-as connection-minimap a2-8) class flags) (minimap-flag racer))
@@ -2313,7 +2313,7 @@
((not a2-2)
(when (!= (-> arg1 alpha) 0.0)
(when (not (get-trail-for-connection obj arg1 #t))
(let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s2-1
(let ((a1-12 s2-1))
(if (and (= (the-as float (-> a1-12 param 1)) 0.0) (logtest? (-> arg1 class flags) (minimap-flag trail)))
@@ -2530,7 +2530,7 @@
(format *stdcon* "minimap: mini-map-icons texture is #f~%")
)
)
(let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s4-2
(let ((a2-1 s4-2))
(draw-connection obj s5-1 (the-as connection-minimap a2-1))
@@ -2638,7 +2638,7 @@
(f28-0 (the float (/ (-> s5-0 draw-pos y) 16)))
(s4-2 (the-as connection-pers #f))
)
(let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list-override))))
(let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list))))
(while s3-2
(let ((s2-2 s3-2))
(when (logtest? (-> (the-as connection-minimap s2-2) class flags) (minimap-flag racer))
+34 -49
View File
@@ -168,10 +168,10 @@
)
(deftype hud-ring-cell (process-drawable)
((parent-override (pointer progress) :offset 16)
(joint-idx int32 :offset-assert 200)
(init-angle degrees :offset-assert 204)
(graphic-index int32 :offset-assert 208)
((parent (pointer progress) :override)
(joint-idx int32 :offset-assert 200)
(init-angle degrees :offset-assert 204)
(graphic-index int32 :offset-assert 208)
)
:heap-base #x60
:method-count-assert 21
@@ -194,10 +194,10 @@
(set! (-> self joint-idx) arg0)
(set! (-> self init-angle) arg1)
(set! (-> self graphic-index) arg2)
(set! (-> self root trans quad) (-> (the-as progress (-> self parent-override 0)) root trans quad))
(quaternion-copy! (-> self root quat) (-> (the-as progress (-> self parent-override 0)) root quat))
(set! (-> self root trans quad) (-> self parent 0 root trans quad))
(quaternion-copy! (-> self root quat) (-> self parent 0 root quat))
(quaternion-normalize! (-> self root quat))
(set! (-> self root scale quad) (-> (the-as progress (-> self parent-override 0)) root scale quad))
(set! (-> self root scale quad) (-> self parent 0 root scale quad))
(let ((gp-1 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) *z-vector* (-> self init-angle))))
(quaternion-normalize! gp-1)
(quaternion*! (-> self root quat) (-> self root quat) gp-1)
@@ -217,10 +217,7 @@
(the-as
int
(-> *hud-ring-kiosk-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent-override 0)) graphic-index))
(-> *hud-ring-kiosk-graphic-remap* length)
)
(mod (+ (-> self graphic-index) (-> self parent 0 graphic-index)) (-> *hud-ring-kiosk-graphic-remap* length))
)
)
0
@@ -232,10 +229,7 @@
(the-as
int
(-> *hud-ring-demo-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent-override 0)) graphic-index))
(-> *hud-ring-kiosk-graphic-remap* length)
)
(mod (+ (-> self graphic-index) (-> self parent 0 graphic-index)) (-> *hud-ring-kiosk-graphic-remap* length))
)
)
0
@@ -247,10 +241,7 @@
(the-as
int
(-> *hud-ring-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent-override 0)) graphic-index))
(-> *hud-ring-graphic-remap* length)
)
(mod (+ (-> self graphic-index) (-> self parent 0 graphic-index)) (-> *hud-ring-graphic-remap* length))
)
)
0
@@ -273,53 +264,47 @@
:post (behavior ()
(vector<-cspace!
(-> self root trans)
(-> (the-as progress (-> self parent-override 0)) node-list data (-> self joint-idx))
(-> (the-as progress (-> self parent 0)) node-list data (-> self joint-idx))
)
(when (-> (the-as progress (-> self parent-override 0)) main-menu)
(when (-> (the-as progress (-> self parent 0)) main-menu)
(setup-masks (-> self draw) 0 2046)
(cond
((and (= *cheat-mode* #f) (= *kernel-boot-message* 'kiosk))
(setup-masks
(-> self draw)
(the-as
int
(-> *hud-ring-kiosk-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent-override 0)) graphic-index))
(-> *hud-ring-kiosk-graphic-remap* length)
(the-as int (-> *hud-ring-kiosk-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent 0)) graphic-index))
(-> *hud-ring-kiosk-graphic-remap* length)
)
)
)
)
)
0
)
)
((and (= *cheat-mode* #f) (demo?))
(setup-masks
(-> self draw)
(the-as
int
(-> *hud-ring-demo-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent-override 0)) graphic-index))
(-> *hud-ring-kiosk-graphic-remap* length)
(the-as int (-> *hud-ring-demo-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent 0)) graphic-index))
(-> *hud-ring-kiosk-graphic-remap* length)
)
)
)
)
)
0
)
)
(else
(setup-masks
(-> self draw)
(the-as
int
(-> *hud-ring-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent-override 0)) graphic-index))
(-> *hud-ring-graphic-remap* length)
(the-as int (-> *hud-ring-graphic-remap*
(mod
(+ (-> self graphic-index) (-> (the-as progress (-> self parent 0)) graphic-index))
(-> *hud-ring-graphic-remap* length)
)
)
)
)
)
0
)
)
@@ -327,8 +312,8 @@
)
(when (= (-> self init-angle) 0.0)
(cond
((= (-> (the-as progress (-> self parent-override 0)) ring-angle)
(-> (the-as progress (-> self parent-override 0)) ring-want-angle)
((= (-> (the-as progress (-> self parent 0)) ring-angle)
(-> (the-as progress (-> self parent 0)) ring-want-angle)
)
(set! (-> self draw color-mult x) 1.2)
(set! (-> self draw color-mult y) 1.2)
@@ -345,11 +330,11 @@
(a0-8 (new 'stack-no-clear 'quaternion))
(a1-26 *z-vector*)
(f0-8 (-> self init-angle))
(f1-2 (-> (the-as progress (-> self parent-override 0)) ring-angle))
(f1-2 (-> (the-as progress (-> self parent 0)) ring-angle))
(gp-0 (t9-6 a0-8 a1-26 (+ f0-8 (- f1-2 (* (the float (the int (/ f1-2 6553.6))) 6553.6)))))
)
(quaternion-normalize! gp-0)
(quaternion-copy! (-> self root quat) (-> (the-as progress (-> self parent-override 0)) root quat))
(quaternion-copy! (-> self root quat) (-> (the-as progress (-> self parent 0)) root quat))
(quaternion-normalize! (-> self root quat))
(quaternion*! (-> self root quat) (-> self root quat) gp-0)
)
+13
View File
@@ -79,3 +79,16 @@
)
)
)
(defmacro fsec (x)
"Convert number to seconds unit.
Returns float."
(cond
((or (integer? x) (float? x))
(* 1.0 TICKS_PER_SECOND x)
)
(#t
`(* 1.0 TICKS_PER_SECOND ,x)
)
)
)
+5 -4
View File
@@ -276,7 +276,8 @@
;; Base type for all actual processes.
;; this can be used directly, or child types can be made.
(deftype process (process-tree)
((pool dead-pool ) ;; where to return us when we die
((self process :override) ;; ourselves!
(pool dead-pool ) ;; where to return us when we die
(status symbol :offset-assert 40) ;; used by kernel to track init/death
(pid int32 ) ;; globally unique ID, never reused for another
(main-thread cpu-thread :offset-assert 48) ;; suspendable main thread
@@ -483,13 +484,13 @@
;; this uses the self field, which seems to always just get set to the object.
;; confirmed in Jak 1 that using self here is useless, not sure...
`(let ((the-pp ,ppointer))
(the process (if the-pp (-> the-pp 0 self)))
(if the-pp (-> the-pp 0 self))
)
)
(defmacro process->ppointer (proc)
"safely get a (pointer process) from a process, returning #f if invalid."
`(let ((the-proc (the-as process ,proc)))
`(let ((the-proc ,proc))
(if the-proc (-> the-proc ppointer))
)
)
@@ -503,7 +504,7 @@
(defmacro process->handle (proc)
"convert a process to a handle. if proc is #f, returns a #f handle."
`(ppointer->handle (process->ppointer ,proc))
`(ppointer->handle (process->ppointer (the-as process ,proc)))
)
(defmethod print handle ((obj handle))
+7 -7
View File
@@ -47,7 +47,7 @@
:skip-to -1
:on-set (lambda ((arg0 ashelin-battle))
(clear-speech-flags! arg0)
(move-to-point! (-> arg0 root-override2) (the-as vector (-> arg0 ash-course spots 0)))
(move-to-point! (-> arg0 root) (the-as vector (-> arg0 ash-course spots 0)))
(let ((v1-7 (get-current-task-event (-> arg0 task))))
(if (= (-> v1-7 action) (game-task-action say))
(add-process
@@ -63,7 +63,7 @@
)
(let ((a0-8 15))
(set! (-> arg0 hit-points) a0-8)
(set! (-> arg0 enemy-info-override default-hit-points) a0-8)
(set! (-> arg0 enemy-info default-hit-points) a0-8)
)
(set! (-> arg0 waypoint-time0) 0)
(let ((v1-10 (get-task-by-type (-> arg0 ai-ctrl) asht-wait-spot arg0)))
@@ -97,7 +97,7 @@
((and (nonzero? (-> arg1 waypoint-time0))
(and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1))
(let ((f0-0 143360.0))
(and (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans)))
(and (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root trans)))
(= (-> s5-0 action) (game-task-action say))
)
)
@@ -328,12 +328,12 @@
:on-set (lambda ((arg0 ashelin-battle))
(logclear! (-> arg0 bot-flags) (bot-flags bf06))
(bot-method-196 arg0)
(let ((v1-5 (-> arg0 root-override2 root-prim)))
(let ((v1-5 (-> arg0 root root-prim)))
(set! (-> v1-5 prim-core collide-as) (collide-spec))
(set! (-> v1-5 prim-core collide-with) (collide-spec))
)
(set! (-> arg0 root-override2 backup-collide-as) (collide-spec))
(set! (-> arg0 root-override2 backup-collide-with) (collide-spec))
(set! (-> arg0 root backup-collide-as) (collide-spec))
(set! (-> arg0 root backup-collide-with) (collide-spec))
0
(send-event arg0 'hide #t)
(let ((v1-15 (get-task-by-type (-> arg0 ai-ctrl) asht-wait-spot arg0)))
@@ -429,7 +429,7 @@
(new 'static 'bot-speech-info :hold-time #x5a :slave-id -1 :name "asha042")
)
:speech-tunings (new 'static 'inline-array bot-speech-tuning 1
(new 'static 'bot-speech-tuning :fo-min 30 :fo-max 100 :fo-curve #xb :trans? #t)
(new 'static 'bot-speech-tuning :fo-min 30 :fo-max 100 :fo-curve 11 :trans? #t)
)
:spots (new 'static 'inline-array bot-spot 8
(new 'static 'bot-spot :center (new 'static 'vector :x 2263285.8 :y 213319.69 :z -4552335.5 :w 16384.0))
+23 -23
View File
@@ -86,7 +86,7 @@
:event (-> (method-of-type piston idle) event)
:enter (behavior ()
(let ((f1-1 (- (-> self range-top) (-> self range-bottom))))
(set! (-> self root-override trans y) (+ (-> self init-height) (+ (-> self range-bottom) f1-1)))
(set! (-> self root trans y) (+ (-> self init-height) (+ (-> self range-bottom) f1-1)))
)
(none)
)
@@ -106,7 +106,7 @@
:code (the-as (function none :behavior piston) sleep-code)
:post (behavior ()
(let ((f0-1 (- (-> self range-top) (-> self range-bottom))))
(set! (-> self root-override trans y)
(set! (-> self root trans y)
(+ (-> self init-height) (+ (-> self range-bottom) (get-scaled-val! (-> self sync) f0-1 0)))
)
)
@@ -151,11 +151,11 @@ This commonly includes things such as:
(set! (-> s4-0 backup-collide-as) (-> v1-12 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-12 prim-core collide-with))
)
(set! (-> obj root-override) s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(set! (-> obj sound-trans quad) (-> obj root-override trans quad))
(set! (-> obj root-override trans y) (+ 53248.0 (-> obj root-override trans y)))
(set! (-> obj sound-trans quad) (-> obj root trans quad))
(set! (-> obj root trans y) (+ 53248.0 (-> obj root trans y)))
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-piston" (the-as (pointer uint32) #f)))
@@ -199,8 +199,8 @@ This commonly includes things such as:
(set! (-> obj range-bottom) (* 4096.0 f28-0))
(set! (-> obj range-top) (* 4096.0 f30-0))
)
(set! (-> obj init-height) (-> obj root-override trans y))
(set! (-> obj root-override trans y) (+ -40960.0 (-> obj root-override trans y)))
(set! (-> obj init-height) (-> obj root trans y))
(set! (-> obj root trans y) (+ -40960.0 (-> obj root trans y)))
(cond
((logtest? (actor-option user18) (-> obj fact options))
(set! (-> obj looping-id) (new-sound-id))
@@ -550,7 +550,7 @@ This commonly includes things such as:
)
(deftype atollrotpipe (process-drawable)
((root-override collide-shape-moving :offset 128)
((root collide-shape-moving :override)
(smush smush-control :inline :offset 200)
(init-quat quaternion :inline :offset 240)
(rot-angle float :offset 256)
@@ -589,7 +589,7 @@ This commonly includes things such as:
)
)
)
(quaternion*! (-> self root-override quat) (-> self init-quat) a2-1)
(quaternion*! (-> self root quat) (-> self init-quat) a2-1)
)
)
(none)
@@ -607,7 +607,7 @@ This commonly includes things such as:
)
)
(activate! (-> self smush) -1.0 60 225 1.0 1.0 (-> self clock))
(sound-play "rot-pipe-wiggle" :position (-> self root-override trans))
(sound-play "rot-pipe-wiggle" :position (-> self root trans))
(let ((gp-3 (current-time)))
(until (>= (- (current-time) gp-3) (seconds 0.75))
(set! (-> self shudder-angle) (* 364.0889 (update! (-> self smush))))
@@ -621,7 +621,7 @@ This commonly includes things such as:
(suspend)
)
)
(sound-play "rot-pipe-turn" :position (-> self root-override trans))
(sound-play "rot-pipe-turn" :position (-> self root trans))
(let* ((f0-7 2.0)
(f30-1 (* 16384.0 f0-7))
(gp-6 (current-time))
@@ -678,9 +678,9 @@ This commonly includes things such as:
(set! (-> s4-0 backup-collide-as) (-> v1-12 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-12 prim-core collide-with))
)
(set! (-> obj root-override) (the-as collide-shape-moving s4-0))
(set! (-> obj root) (the-as collide-shape-moving s4-0))
)
(set! (-> obj root-override rider-max-momentum) 8192.0)
(set! (-> obj root rider-max-momentum) 8192.0)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
obj
@@ -690,7 +690,7 @@ This commonly includes things such as:
(logclear! (-> obj mask) (process-mask actor-pause))
(set! (-> obj rot-angle) 0.0)
(set! (-> obj shudder-angle) 0.0)
(quaternion-copy! (-> obj init-quat) (-> obj root-override quat))
(quaternion-copy! (-> obj init-quat) (-> obj root quat))
(ja-channel-push! 1 0)
(let ((s4-2 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
@@ -719,7 +719,7 @@ This commonly includes things such as:
)
(deftype slider (process-drawable)
((root-override collide-shape-moving :offset 128)
((root collide-shape-moving :override)
(path-pos float :offset-assert 200)
(sync sync-eased :inline :offset-assert 208)
(attack-id uint32 :offset-assert 252)
@@ -758,7 +758,7 @@ This commonly includes things such as:
)
)
(when s3-0
(let ((s4-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root-override quat))))
(let ((s4-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root quat))))
(let* ((v1-7 (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat (the-as process-focusable s3-0) 0)))
(f0-1 (vector-dot s4-1 v1-7))
)
@@ -797,19 +797,19 @@ This commonly includes things such as:
:post (behavior ()
(let ((f30-0 (get-norm! (-> self sync) 0)))
(set! (-> self path-pos) f30-0)
(get-point-at-percent-along-path! (-> self path) (-> self root-override trans) (-> self path-pos) 'interp)
(get-point-at-percent-along-path! (-> self path) (-> self root trans) (-> self path-pos) 'interp)
(let ((f0-3 (sin-rad (* 3.1415925 f30-0))))
(update-vol! (-> self sound) (sqrtf f0-3))
)
)
(update-trans! (-> self sound) (-> self root-override trans))
(update-trans! (-> self sound) (-> self root trans))
(let ((a1-4 (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> a1-4 options) (overlaps-others-options oo0))
(set! (-> a1-4 collide-with-filter) (the-as collide-spec -1))
(set! (-> a1-4 tlist) *touching-list*)
(find-overlapping-shapes (-> self root-override) a1-4)
(find-overlapping-shapes (-> self root) a1-4)
)
(let ((v1-17 (-> self root-override trans))
(let ((v1-17 (-> self root trans))
(a0-6 (-> self l-bolts))
(a1-5 (-> self l-points))
)
@@ -881,7 +881,7 @@ This commonly includes things such as:
(set! (-> s4-0 backup-collide-as) (-> v1-5 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-5 prim-core collide-with))
)
(set! (-> obj root-override) (the-as collide-shape-moving s4-0))
(set! (-> obj root) (the-as collide-shape-moving s4-0))
)
(logclear! (-> obj mask) (process-mask actor-pause))
(process-drawable-from-entity! obj arg0)
@@ -945,7 +945,7 @@ This commonly includes things such as:
)
)
(s4-2 (-> obj l-points))
(s3-0 (-> obj root-override trans))
(s3-0 (-> obj root trans))
)
(dotimes (s2-0 4)
(set! (-> obj l-bolts s2-0) (new 'process 'lightning-control s5-2 obj 0.0))
@@ -965,7 +965,7 @@ This commonly includes things such as:
)
)
(set! (-> obj sound)
(new 'process 'ambient-sound (static-sound-spec "slider" :fo-max 50) (-> obj root-override trans))
(new 'process 'ambient-sound (static-sound-spec "slider" :fo-max 50) (-> obj root trans))
)
(ja-channel-push! 1 0)
(let ((s5-3 (-> obj skel root-channel 0)))
+8 -8
View File
@@ -1617,7 +1617,7 @@
(defmethod get-trans atoll-tank ((obj atoll-tank) (arg0 int))
"@returns the `trans` [[vector]] from the process's `root` (typically either a [[trsqv]] or a [[collide-shape]])"
(let ((v1-0 (-> obj root-override)))
(let ((v1-0 (-> obj root)))
(case arg0
((3 2)
(let ((v0-0 (new 'static 'vector :w 1.0)))
@@ -1636,8 +1636,8 @@
;; WARN: Return type mismatch object vs none.
(defbehavior atoll-tank-init-by-other atoll-tank ((arg0 process-drawable) (arg1 int))
(set! (-> self is-master?) #f)
(set! (-> self root-override) (the-as collide-shape (new 'process 'trsqv)))
(let ((s4-0 (-> self root-override)))
(set! (-> self root) (the-as collide-shape (new 'process 'trsqv)))
(let ((s4-0 (-> self root)))
(set! (-> s4-0 trans quad) (-> arg0 root trans quad))
(quaternion-copy! (-> s4-0 quat) (-> arg0 root quat))
(vector-identity! (-> s4-0 scale))
@@ -1685,7 +1685,7 @@
:virtual #t
:trans (behavior ()
(if (-> self is-master?)
(spawn (-> self aftermath-part) (-> self root-override trans))
(spawn (-> self aftermath-part) (-> self root trans))
)
(none)
)
@@ -1776,7 +1776,7 @@ This commonly includes things such as:
(set! (-> s4-0 backup-collide-as) (-> v1-28 prim-core collide-as))
(set! (-> s4-0 backup-collide-with) (-> v1-28 prim-core collide-with))
)
(set! (-> obj root-override) s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton
@@ -1807,12 +1807,12 @@ This commonly includes things such as:
)
(else
(logior! (-> obj draw status) (draw-control-status no-draw))
(let ((v1-54 (-> obj root-override root-prim)))
(let ((v1-54 (-> obj root root-prim)))
(set! (-> v1-54 prim-core collide-as) (collide-spec))
(set! (-> v1-54 prim-core collide-with) (collide-spec))
)
(set! (-> obj root-override backup-collide-as) (collide-spec))
(set! (-> obj root-override backup-collide-with) (collide-spec))
(set! (-> obj root backup-collide-as) (collide-spec))
(set! (-> obj root backup-collide-with) (collide-spec))
0
(go (method-of-object obj dormant))
)
+51 -62
View File
@@ -123,9 +123,9 @@
(case arg2
(('reset)
(let ((v1-1 (the-as object (-> arg3 param 0))))
(set! (-> obj root-override trans quad) (-> (the-as matrix v1-1) trans quad))
(set! (-> obj root trans quad) (-> (the-as matrix v1-1) trans quad))
(set! (-> obj starting-pos quad) (-> (the-as matrix v1-1) trans quad))
(set! (-> obj root-override transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0))
(set! (-> obj root transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0))
(set! (-> obj pre-move-transv quad) (-> (&+ (the-as matrix v1-1) 64) quad 0))
)
(set! (-> obj hits) 0)
@@ -167,7 +167,7 @@
(defmethod spawn-impact-particles juicer-shot ((obj juicer-shot))
"Spawns associated particles with the projectile if applicable"
(let ((s5-0 (-> obj starting-pos))
(s4-0 (-> obj root-override trans))
(s4-0 (-> obj root trans))
)
(when (line-in-view-frustum? s5-0 s4-0)
(let ((s3-0 (new 'stack-no-clear 'vector))
@@ -258,7 +258,7 @@
(t2-0 #f)
(t3-0 *launch-matrix*)
)
(set! (-> t3-0 trans quad) (-> obj root-override trans quad))
(set! (-> t3-0 trans quad) (-> obj root trans quad))
((the-as (function object object object object object object object object none) t9-3)
a0-4
a1-2
@@ -279,7 +279,7 @@
(defmethod made-impact? juicer-shot ((obj juicer-shot))
"TODO - queries the collision cache, return true/false"
(let ((gp-0 (-> obj root-override))
(let ((gp-0 (-> obj root))
(s5-0 (new 'stack-no-clear 'collide-query))
)
(let ((v1-0 s5-0))
@@ -306,12 +306,12 @@
(let ((s5-0 (handle->process (-> arg0 victim))))
(cond
(s5-0
(set! (-> arg0 root-override trans quad) (-> (get-trans (the-as process-focusable s5-0) 3) quad))
(set! (-> arg0 root trans quad) (-> (get-trans (the-as process-focusable s5-0) 3) quad))
((method-of-type projectile deal-damage!) arg0 s5-0 (the-as event-message-block #f))
)
(else
(projectile-move-fill-line-sphere arg0)
(if (logtest? (-> arg0 root-override status) (collide-status touch-surface))
(if (logtest? (-> arg0 root status) (collide-status touch-surface))
(go (method-of-object arg0 impact))
)
)
@@ -358,9 +358,9 @@
(set! (-> s5-0 backup-collide-with) (-> v1-10 prim-core collide-with))
)
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
(set! (-> obj root-override) s5-0)
(set! (-> obj root) s5-0)
)
(set! (-> obj root-override pat-ignore-mask)
(set! (-> obj root pat-ignore-mask)
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noproj #x1 :noendlessfall #x1)
)
(none)
@@ -381,9 +381,9 @@
(logior! (-> obj options) (projectile-options proj-options-8000))
(set! (-> obj attack-mode) 'eco-yellow)
(set! (-> obj move) juicer-proj-move)
(set! (-> obj root-override dynam gravity y) 0.0)
(set! (-> obj root-override dynam gravity-length) 0.0)
(set! (-> obj root-override dynam gravity-max) 0.0)
(set! (-> obj root dynam gravity y) 0.0)
(set! (-> obj root dynam gravity-length) 0.0)
(set! (-> obj root dynam gravity-max) 0.0)
(set! (-> obj attack-mode) 'shock-red)
(dotimes (s5-0 5)
(set! (-> obj lightning s5-0) (new
@@ -664,7 +664,7 @@
:walk-travel-speed (meters 2)
:walk-acceleration (meters 2)
:walk-turning-acceleration (meters 3)
:maximum-rotation-rate (degrees 360.0)
:maximum-rotation-rate (degrees 360)
:notice-nav-radius (meters 7.5)
:frustration-distance (meters 8)
:frustration-time (seconds 4)
@@ -742,7 +742,7 @@
)
)
(zero? (get-rand-int obj 3))
(let ((f0-0 (vector-vector-distance-squared (-> obj root-override2 trans) (target-pos 0)))
(let ((f0-0 (vector-vector-distance-squared (-> obj root trans) (target-pos 0)))
(f1-0 32768.0)
)
(>= f0-0 (* f1-0 f1-0))
@@ -812,9 +812,9 @@
(('instant-death)
(when (> (-> obj hit-points) 0)
(set! (-> obj hit-points) 0)
(set! (-> obj root-override2 penetrated-by) (get-penetrate-info obj))
(set! (-> obj root penetrated-by) (get-penetrate-info obj))
(let ((s4-0 (enemy-method-50 obj (new 'stack-no-clear 'vector))))
(vector-z-quaternion! s4-0 (-> obj root-override2 quat))
(vector-z-quaternion! s4-0 (-> obj root quat))
(vector-float*! s4-0 s4-0 -1.0)
(vector-normalize! s4-0 1.0)
)
@@ -917,7 +917,7 @@
(set! (-> v1-102 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-102 enemy-flags))))
)
(set! (-> v1-102 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-102 enemy-flags))))
(set! (-> v1-102 nav callback-info) (-> v1-102 enemy-info-override callback-info))
(set! (-> v1-102 nav callback-info) (-> v1-102 enemy-info callback-info))
)
0
)
@@ -930,7 +930,7 @@
(defmethod enemy-method-84 juicer ((obj juicer) (arg0 enemy-jump-info))
(cond
((logtest? (-> obj fact-info-override enemy-options) (enemy-option user8))
((logtest? (-> obj fact enemy-options) (enemy-option user8))
(vector-vector-xz-distance (-> arg0 start-pos) (-> arg0 dest-pos))
(let ((f0-1 8192.0))
(setup-from-to-height! (-> arg0 traj) (-> arg0 start-pos) (-> arg0 dest-pos) f0-1 -4.551111)
@@ -967,7 +967,7 @@
(format 0 "ERROR: ~A has no intro path, skipping ambush~%" (-> self name))
(go-virtual notice)
)
(get-point-in-path! (-> self intro-path) (-> self root-override2 trans) 0.0 'interp)
(get-point-in-path! (-> self intro-path) (-> self root trans) 0.0 'interp)
(none)
)
:code (behavior ()
@@ -1033,11 +1033,11 @@
:code (behavior ()
(ja-channel-push! 1 (seconds 0.075))
(let ((s5-0 0))
(let ((s4-0 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> self root-override2 quat)))
(let ((s4-0 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> self root quat)))
(gp-1 (vector-!
(new 'stack-no-clear 'vector)
(get-trans (the-as process-focusable (handle->process (-> self focus handle))) 0)
(-> self root-override2 trans)
(-> self root trans)
)
)
)
@@ -1066,7 +1066,7 @@
(let ((a1-9 (-> self nav state)))
(set! (-> gp-2 quad) (-> a1-9 travel quad))
)
(seek-toward-heading-vec! (-> self root-override2) gp-2 (-> self nav max-rotation-rate) (seconds 0.02))
(seek-toward-heading-vec! (-> self root) gp-2 (-> self nav max-rotation-rate) (seconds 0.02))
(suspend)
(ja :num! (seek! max f30-1))
)
@@ -1152,10 +1152,10 @@
(let ((a0-1 (handle->process (-> self focus handle))))
(when a0-1
(let* ((gp-0 (get-trans (the-as process-focusable a0-1) 1))
(f30-0 (vector-vector-xz-distance (-> self root-override2 trans) gp-0))
(f30-0 (vector-vector-xz-distance (-> self root trans) gp-0))
)
(cond
((< (- (-> gp-0 y) (-> self root-override2 trans y)) 4096.0)
((< (- (-> gp-0 y) (-> self root trans y)) 4096.0)
(let ((v1-10 (-> self nav state)))
(logclear! (-> v1-10 flags) (nav-state-flag directional-mode))
(logior! (-> v1-10 flags) (nav-state-flag target-poly-dirty))
@@ -1223,23 +1223,22 @@
(a0-3 self)
)
(when (and (logtest? (enemy-flag enemy-flag37) (-> a0-3 enemy-flags)) gp-0)
(let ((f0-1 (fabs (deg-diff
(quaternion-y-angle (-> self root-override2 quat))
(vector-y-angle (vector-!
(new 'stack-no-clear 'vector)
(get-trans (the-as process-focusable gp-0) 0)
(-> self root-override2 trans)
)
)
)
)
(let ((f0-1
(fabs
(deg-diff
(quaternion-y-angle (-> self root quat))
(vector-y-angle
(vector-! (new 'stack-no-clear 'vector) (get-trans (the-as process-focusable gp-0) 0) (-> self root trans))
)
)
)
)
)
(cond
((or (< 5461.3335 f0-1) (and (-> self using-turn-anim) (< 910.2222 f0-1)))
(set! (-> self using-turn-anim) #t)
(seek-to-point-toward-point!
(-> self root-override2)
(-> self root)
(get-trans (the-as process-focusable gp-0) 0)
(-> self nav max-rotation-rate)
(seconds 0.2)
@@ -1294,7 +1293,7 @@
:event (the-as (function process int symbol event-message-block object :behavior juicer) enemy-event-handler)
:enter (behavior ()
(let ((v1-1 (-> self nav state))
(a0-1 (-> self root-override2 trans))
(a0-1 (-> self root trans))
)
(logclear! (-> v1-1 flags) (nav-state-flag directional-mode))
(logior! (-> v1-1 flags) (nav-state-flag target-poly-dirty))
@@ -1358,9 +1357,7 @@
(until (ja-done? 0)
(let ((s3-0 (handle->process (-> self focus handle))))
(when s3-0
(when (< 28672.0
(vector-vector-distance (-> self root-override2 trans) (get-trans (the-as process-focusable s3-0) 0))
)
(when (< 28672.0 (vector-vector-distance (-> self root trans) (get-trans (the-as process-focusable s3-0) 0)))
(fire-projectile self (the-as process-focusable s3-0) s5-0)
(current-time)
(if (not gp-0)
@@ -1369,7 +1366,7 @@
)
)
)
(if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info-override use-victory))
(if (and (logtest? (-> self enemy-flags) (enemy-flag look-at-focus)) (-> self enemy-info use-victory))
(go-virtual victory)
)
(b!
@@ -1399,9 +1396,7 @@
(send-event (handle->process (-> self current-projectile)) 'die)
(let ((a0-37 (handle->process (-> self focus handle))))
(when a0-37
(if (>= 28672.0
(vector-vector-distance (-> self root-override2 trans) (get-trans (the-as process-focusable a0-37) 0))
)
(if (>= 28672.0 (vector-vector-distance (-> self root trans) (get-trans (the-as process-focusable a0-37) 0)))
(go-virtual circling)
)
)
@@ -1437,7 +1432,7 @@
(set! (-> v1-15 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-15 enemy-flags))))
)
(set! (-> v1-15 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-15 enemy-flags))))
(set! (-> v1-15 nav callback-info) (-> v1-15 enemy-info-override callback-info))
(set! (-> v1-15 nav callback-info) (-> v1-15 enemy-info callback-info))
)
0
(let ((v1-18 self))
@@ -1470,7 +1465,7 @@
)
)
)
(when (< 20480.0 (vector-vector-xz-distance (-> self focus-pos) (-> self root-override2 trans)))
(when (< 20480.0 (vector-vector-xz-distance (-> self focus-pos) (-> self root trans)))
(let ((v1-54 self))
(set! (-> v1-54 enemy-flags) (the-as enemy-flag (logclear (-> v1-54 enemy-flags) (enemy-flag enemy-flag36))))
(set! (-> v1-54 nav callback-info) *nav-enemy-null-callback-info*)
@@ -1480,7 +1475,7 @@
(set! (-> v1-57 enemy-flags) (the-as enemy-flag (logclear (-> v1-57 enemy-flags) (enemy-flag enemy-flag37))))
)
0
(vector-reset! (-> self root-override2 transv))
(vector-reset! (-> self root transv))
(ja-channel-push! 1 (seconds 0.1))
(let ((gp-2 (-> self draw art-group data (-> *juicer-global-info* celebrate-anim (get-rand-int self 2))))
(f30-2 (get-rand-float-range self 0.9 1.1))
@@ -1507,13 +1502,10 @@
(local-vars (v1-37 enemy-flag) (v1-45 enemy-flag))
(ja-channel-push! 1 (seconds 0.2))
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
(ja-no-eval :group! (-> self draw art-group data (-> self enemy-info-override hit-anim))
(ja-no-eval :group! (-> self draw art-group data (-> self enemy-info hit-anim))
:num! (seek!
(the float
(+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self enemy-info-override hit-anim)))
frames
num-frames
)
(+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self enemy-info hit-anim))) frames num-frames)
-1
)
)
@@ -1560,7 +1552,7 @@
:code (behavior ()
(ja-channel-push! 1 (seconds 1))
(let ((f30-0 (get-rand-float-range self 0.9 1.1))
(gp-0 (-> self draw art-group data (-> self enemy-info-override idle-anim)))
(gp-0 (-> self draw art-group data (-> self enemy-info idle-anim)))
)
(until #f
(ja-no-eval :group! gp-0
@@ -1587,7 +1579,7 @@
(s5-0 (current-time))
(f28-0 f30-0)
)
(ja-no-eval :group! (-> self draw art-group data (-> self enemy-info-override idle-anim))
(ja-no-eval :group! (-> self draw art-group data (-> self enemy-info idle-anim))
:num! (loop! f28-0)
:frame-num 0.0
)
@@ -1597,13 +1589,10 @@
)
)
(ja-channel-push! 1 (seconds 0.1))
(ja-no-eval :group! (-> self draw art-group data (-> self enemy-info-override taunt-anim))
(ja-no-eval :group! (-> self draw art-group data (-> self enemy-info taunt-anim))
:num! (seek!
(the float
(+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self enemy-info-override taunt-anim)))
frames
num-frames
)
(+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self enemy-info taunt-anim))) frames num-frames)
-1
)
)
@@ -1730,7 +1719,7 @@
;; WARN: Return type mismatch symbol vs none.
(defmethod juicer-method-184 juicer ((obj juicer) (arg0 symbol))
(let ((v1-1 (-> obj root-override2 root-prim)))
(let ((v1-1 (-> obj root root-prim)))
(dotimes (a0-1 (the-as int (-> v1-1 specific 0)))
(let ((a2-1 (-> (the-as collide-shape-prim-group v1-1) child a0-1)))
(if arg0
@@ -1839,7 +1828,7 @@
(set! (-> s5-0 backup-collide-with) (-> v1-26 prim-core collide-with))
)
(set! (-> s5-0 max-iteration-count) (the-as uint 3))
(set! (-> obj root-override2) s5-0)
(set! (-> obj root) s5-0)
)
0
(none)
@@ -1878,7 +1867,7 @@
(set! (-> v1-7 speed-scale) 1.0)
)
0
(set-gravity-length (-> obj root-override2 dynam) 573440.0)
(set-gravity-length (-> obj root dynam) 573440.0)
(set! (-> obj last-fire-time) 0)
(set! (-> obj heading) (the-as basic (if (rand-vu-percent? 0.5)
#t
@@ -1914,7 +1903,7 @@
(new 'static 'vector :x -901.12 :y -1146.88 :z 1269.76 :w 163840.0)
)
(add-connection *part-engine* obj 20 obj 4635 (new 'static 'vector :w 163840.0))
(set! (-> obj root-override2 pause-adjust-distance) 81920.0)
(set! (-> obj root pause-adjust-distance) 81920.0)
(set! (-> obj current-projectile) (the-as handle #f))
0
(none)
+61 -61
View File
@@ -152,7 +152,7 @@
)
)
(when v1-9
(if (>= 20480.0 (- (-> (the-as process-focusable v1-9) root-override trans y) (-> arg0 root-override2 trans y)))
(if (>= 20480.0 (- (-> (the-as process-focusable v1-9) root trans y) (-> arg0 root trans y)))
(logior! (-> arg0 bot-task-bits) 16)
)
)
@@ -203,15 +203,15 @@
:waypoints (new 'static 'boxed-array :type bot-waypoint
(new 'static 'bot-waypoint
:waypoint-id 1
:skip-to #xa
:skip-to 10
:on-set (lambda ((arg0 sig-atoll))
(let ((a0-1 20))
(set! (-> arg0 hit-points) a0-1)
(set! (-> arg0 enemy-info-override default-hit-points) a0-1)
(set! (-> arg0 enemy-info default-hit-points) a0-1)
)
(let ((a1-0 (new 'stack-no-clear 'vector)))
(set-vector! a1-0 0.0 32768.0 0.0 1.0)
(quaternion-zxy! (-> arg0 root-override2 quat) a1-0)
(quaternion-zxy! (-> arg0 root quat) a1-0)
)
(clear-speech-flags! arg0)
(logior! (-> arg0 focus-status) (focus-status disable))
@@ -238,9 +238,9 @@
(lambda ((arg0 object) (arg1 sig-atoll))
(when *target*
(let* ((s5-0 (target-pos 0))
(f1-0 (vector-vector-xz-distance (-> arg1 root-override2 trans) s5-0))
(f0-1 (- (-> s5-0 x) (-> arg1 root-override2 trans x)))
(f2-2 (- (-> s5-0 z) (-> arg1 root-override2 trans z)))
(f1-0 (vector-vector-xz-distance (-> arg1 root trans) s5-0))
(f0-1 (- (-> s5-0 x) (-> arg1 root trans x)))
(f2-2 (- (-> s5-0 z) (-> arg1 root trans z)))
)
(when (and (>= f2-2 -40960.0)
(or (>= 40960.0 f1-0) (< f2-2 24576.0) (and (< f2-2 192512.0) (or (< f0-1 -81920.0) (< 53248.0 f0-1))))
@@ -308,7 +308,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 3
:skip-to #xa
:skip-to 10
:on-set (lambda ((arg0 sig-atoll))
(with-pp
(if (demo?)
@@ -376,7 +376,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 4
:skip-to #xa
:skip-to 10
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 too-far-warn-dist) 286720.0)
(let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -429,7 +429,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 5
:skip-to #xa
:skip-to 10
:on-set (lambda ((arg0 sig-atoll))
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) sigt-choose-piston arg0)))
(set! (-> v1-1 bytes 5) 4)
@@ -460,7 +460,7 @@
:on-update (lambda ((arg0 sig-atoll))
(if (and (not (speech-playing? arg0 1))
(not (channel-active? arg0 (the-as uint 0)))
(< (-> arg0 root-override2 trans z) (-> (target-pos 0) z))
(< (-> arg0 root trans z) (-> (target-pos 0) z))
)
(play-speech arg0 1)
)
@@ -472,7 +472,7 @@
(new 'static 'bot-waypoint
:waypoint-id 6
:nav-mesh-index 1
:skip-to #xa
:skip-to 10
:on-set (lambda ((arg0 sig-atoll))
(logior! (-> arg0 focus-status) (focus-status ignore))
(let ((gp-0 7)
@@ -505,7 +505,7 @@
)
:on-update (lambda ((arg0 sig-atoll))
(when (not (channel-active? arg0 (the-as uint 0)))
(if (and (not (speech-playing? arg0 1)) (< (-> arg0 root-override2 trans z) (-> (target-pos 0) z)))
(if (and (not (speech-playing? arg0 1)) (< (-> arg0 root trans z) (-> (target-pos 0) z)))
(play-speech arg0 1)
)
)
@@ -517,7 +517,7 @@
(new 'static 'bot-waypoint
:waypoint-id 7
:nav-mesh-index 1
:skip-to #xa
:skip-to 10
:on-set (lambda ((arg0 sig-atoll))
(reset-warn-time! arg0)
(let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -660,7 +660,7 @@
(new 'static 'bot-waypoint
:waypoint-id 10
:nav-mesh-index 2
:skip-to #xf
:skip-to 15
:on-set (lambda ((arg0 sig-atoll))
(play-speech arg0 4)
(logior! (-> arg0 focus-status) (focus-status disable))
@@ -690,7 +690,7 @@
(if (and (not (speech-playing? arg1 5))
(not (channel-active? arg1 (the-as uint 0)))
(let ((f0-1 73728.0))
(>= (* f0-1 f0-1) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root-override2 trans)))
(>= (* f0-1 f0-1) (vector-vector-xz-distance-squared (target-pos 0) (-> arg1 root trans)))
)
)
(play-speech arg1 5)
@@ -732,10 +732,10 @@
(new 'static 'bot-waypoint
:waypoint-id 11
:nav-mesh-index 2
:skip-to #xf
:skip-to 15
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 sig-course liftcat-speech-index) 0)
(let ((f0-0 (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root-override2 trans)))
(let ((f0-0 (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root trans)))
(f1-0 98304.0)
)
(if (>= f0-0 (* f1-0 f1-0))
@@ -849,14 +849,14 @@
)
(set! (-> arg0 waypoint-bits) (logand -3 (-> arg0 waypoint-bits)))
(let ((f0-0 98304.0))
(if (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root-override2 trans)))
(if (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root trans)))
(play-speech arg0 34)
)
)
)
((and (logtest? (-> arg0 waypoint-bits) 2)
(let ((f0-3 49152.0))
(>= (* f0-3 f0-3) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root-override2 trans)))
(>= (* f0-3 f0-3) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root trans)))
)
)
(set! (-> arg0 waypoint-bits) (logand -3 (-> arg0 waypoint-bits)))
@@ -881,7 +881,7 @@
)
)
(let ((f0-6 98304.0))
(>= (* f0-6 f0-6) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root-override2 trans)))
(>= (* f0-6 f0-6) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root trans)))
)
)
(when (and (demo?)
@@ -950,7 +950,7 @@
(cond
((not (logtest? (-> arg1 waypoint-bits) 1))
(when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f)
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
(f1-0 81920.0)
)
(cond
@@ -1073,7 +1073,7 @@
)
(not (channel-active? arg1 (the-as uint 0)))
(not (focus-test? s5-0 edge-grab))
(>= (- (-> s5-0 control trans y) (-> arg1 root-override2 trans y)) -4096.0)
(>= (- (-> s5-0 control trans y) (-> arg1 root trans y)) -4096.0)
)
)
)
@@ -1139,13 +1139,13 @@
(when (scene-release? arg1)
(let ((a1-1 (new 'stack-no-clear 'vector)))
(set-vector! a1-1 0.0 -16384.0 0.0 1.0)
(quaternion-zxy! (-> arg1 root-override2 quat) a1-1)
(quaternion-zxy! (-> arg1 root quat) a1-1)
)
(let ((s5-0 (new 'stack-no-clear 'vector)))
(let ((v1-6 (-> arg1 sig-course spots)))
(vector-lerp! s5-0 (the-as vector (-> v1-6 21)) (the-as vector (-> v1-6 22)) 0.5)
)
(move-to-point! (-> arg1 root-override2) s5-0)
(move-to-point! (-> arg1 root) s5-0)
)
(clear-poi-and-focus! arg1)
(remove-setting! 'sound-mode)
@@ -1168,7 +1168,7 @@
(new 'static 'bot-waypoint
:waypoint-id 15
:nav-mesh-index 3
:skip-to #x17
:skip-to 23
:on-set (lambda ((arg0 sig-atoll))
(play-speech arg0 11)
(let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -1282,7 +1282,7 @@
(new 'static 'bot-waypoint
:waypoint-id 16
:nav-mesh-index 3
:skip-to #x17
:skip-to 23
:on-set (lambda ((arg0 sig-atoll))
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
(set! (-> v1-1 bytes 5) 1)
@@ -1378,7 +1378,7 @@
(cond
((zero? (-> arg1 waypoint-time0))
(when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f)
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
(f1-0 73728.0)
)
(cond
@@ -1501,7 +1501,7 @@
)
(not (channel-active? arg1 (the-as uint 0)))
(let ((f0-0 102400.0))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
)
)
)
@@ -1590,7 +1590,7 @@
(new 'static 'bot-waypoint
:waypoint-id 20
:nav-mesh-index 4
:skip-to #x17
:skip-to 23
:on-set (lambda ((arg0 sig-atoll))
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
(set! (-> v1-1 bytes 5) 1)
@@ -1627,7 +1627,7 @@
(new 'static 'bot-waypoint
:waypoint-id 21
:nav-mesh-index 5
:skip-to #x17
:skip-to 23
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 sig-course liftcat-speech-index) 0)
(let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -1656,7 +1656,7 @@
(cond
((zero? v1-6)
(when (not (channel-active? arg1 (the-as uint 0)))
(let ((s5-0 (-> arg1 root-override2 trans))
(let ((s5-0 (-> arg1 root trans))
(s4-0 (-> arg1 sig-course spots))
(f0-0 163840.0)
)
@@ -1751,7 +1751,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 22
:nav-mesh-index #x6
:nav-mesh-index 6
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 waypoint-time0) 0)
@@ -1778,7 +1778,7 @@
(cond
((zero? (-> arg1 waypoint-time0))
(when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f)
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
(f1-0 61440.0)
)
(cond
@@ -1833,8 +1833,8 @@
)
(new 'static 'bot-waypoint
:waypoint-id 23
:nav-mesh-index #x6
:skip-to #x1f
:nav-mesh-index 6
:skip-to 31
:on-set (lambda ((arg0 sig-atoll))
(with-pp
(add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "atoll-sniper-c" -99.0 0)
@@ -1899,7 +1899,7 @@
)
(not (channel-active? arg1 (the-as uint 0)))
(let ((f0-0 102400.0))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
)
)
)
@@ -1962,7 +1962,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 24
:nav-mesh-index #x6
:nav-mesh-index 6
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -1994,7 +1994,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 25
:nav-mesh-index #x6
:nav-mesh-index 6
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(logior! (-> arg0 focus-status) (focus-status disable))
@@ -2025,7 +2025,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 26
:nav-mesh-index #x7
:nav-mesh-index 7
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -2054,7 +2054,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 27
:nav-mesh-index #x8
:nav-mesh-index 8
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(logclear! (-> arg0 focus-status) (focus-status disable))
@@ -2101,7 +2101,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 28
:nav-mesh-index #x8
:nav-mesh-index 8
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 waypoint-time0) 0)
@@ -2125,7 +2125,7 @@
(cond
((zero? (-> arg1 waypoint-time0))
(when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f)
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
(f1-0 73728.0)
)
(cond
@@ -2187,7 +2187,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 29
:nav-mesh-index #x8
:nav-mesh-index 8
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(with-pp
@@ -2253,7 +2253,7 @@
)
(not (channel-active? arg1 (the-as uint 0)))
(let ((f0-0 102400.0))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
)
)
)
@@ -2304,7 +2304,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 30
:nav-mesh-index #x8
:nav-mesh-index 8
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -2340,8 +2340,8 @@
)
(new 'static 'bot-waypoint
:waypoint-id 31
:nav-mesh-index #x9
:skip-to #x25
:nav-mesh-index 9
:skip-to 37
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 too-far-warn-dist) 327680.0)
(set! (-> arg0 too-far-fail-dist-delta) 163840.0)
@@ -2414,7 +2414,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 32
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(with-pp
@@ -2474,7 +2474,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 33
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 too-far-warn-dist) 327680.0)
@@ -2514,7 +2514,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 34
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(with-pp
@@ -2618,7 +2618,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 35
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(with-pp
@@ -2684,7 +2684,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 36
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 too-far-warn-dist) 327680.0)
@@ -2701,7 +2701,7 @@
(not (channel-active? arg1 (the-as uint 0)))
)
(let ((f0-0 122880.0))
(if (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(if (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
(play-speech arg1 30)
)
)
@@ -2722,7 +2722,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 37
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(set! (-> arg0 too-far-warn-dist) 327680.0)
@@ -2747,7 +2747,7 @@
(cond
((zero? (-> arg1 waypoint-time0))
(when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f)
(let ((f0-0 (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(let ((f0-0 (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
(f1-0 61440.0)
)
(cond
@@ -2818,7 +2818,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 38
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(with-pp
@@ -2884,7 +2884,7 @@
)
(not (channel-active? arg1 (the-as uint 0)))
(let ((f0-0 102400.0))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root-override2 trans) (target-pos 0)))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
)
)
)
@@ -2943,7 +2943,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 39
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
@@ -2974,7 +2974,7 @@
)
(new 'static 'bot-waypoint
:waypoint-id 40
:nav-mesh-index #xa
:nav-mesh-index 10
:skip-to -1
:on-set (lambda ((arg0 sig-atoll))
(task-node-close! (game-task-node atoll-sig-resolution))
@@ -3056,7 +3056,7 @@
(new 'static 'bot-speech-info :hold-time #x5a :slave-id -1 :name "sigt092")
)
:speech-tunings (new 'static 'inline-array bot-speech-tuning 1
(new 'static 'bot-speech-tuning :fo-min 30 :fo-max #x78 :fo-curve #xb :trans? #t)
(new 'static 'bot-speech-tuning :fo-min 30 :fo-max #x78 :fo-curve 11 :trans? #t)
)
:spots (new 'static 'inline-array bot-spot 42
(new 'static 'bot-spot :center (new 'static 'vector :x 2341970.0 :y 4915.2 :z -3590061.8 :w 16384.0))

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