improve decomp of state handlers and art groups (#3014)

- state handlers that are not inlined lambdas have smarter type
checking, getting rid of 99.9% of the casts emitted (they were not
useful)
- art groups were not being properly linked to their "master" groups.
- `max` in `ja` in Jak 2 was not being detected.

Another huge PR...
This commit is contained in:
ManDude
2023-09-23 14:53:50 +01:00
committed by GitHub
parent f86be3df62
commit ff924f6b00
723 changed files with 8248 additions and 16144 deletions
+9
View File
@@ -136,3 +136,12 @@ void TypeSpec::add_or_modify_tag(const std::string& tag_name, const std::string&
}
m_tags.push_back({tag_name, tag_value});
}
void TypeSpec::delete_tag(const std::string& tag_name) {
for (size_t i = 0; i < m_tags.size(); ++i) {
if (m_tags.at(i).name == tag_name) {
m_tags.erase(m_tags.begin() + i);
return;
}
}
}
+1
View File
@@ -94,6 +94,7 @@ class TypeSpec {
const std::string& get_tag(const std::string& tag_name) const;
void modify_tag(const std::string& tag_name, const std::string& tag_value);
void add_or_modify_tag(const std::string& tag_name, const std::string& tag_value);
void delete_tag(const std::string& tag_name);
const std::string& base_type() const { return m_type; }
+1 -1
View File
@@ -1590,7 +1590,7 @@ bool TypeSystem::typecheck_and_throw(const TypeSpec& expected,
if (!got) {
success = false;
} else {
if (*got != tag.value) {
if (!tc(tag.value, *got)) {
success = false;
}
}
+3 -6
View File
@@ -3881,7 +3881,7 @@ void FunctionCallElement::update_from_stack(const Env& env,
macro.push_back(rate);
}
if (env.version > GameVersion::Jak1) {
if (env.version != GameVersion::Jak1) {
macro.push_back(pool.form<ConstantTokenElement>(":origin-is-matrix"));
macro.push_back(pool.form<ConstantTokenElement>("#t"));
}
@@ -3918,10 +3918,8 @@ ConstantTokenElement* DerefElement::try_as_art_const(const Env& env, FormPool& p
if (elt_name) {
return pool.alloc_element<ConstantTokenElement>(*elt_name);
} else {
if (env.version != GameVersion::Jak2) {
lg::error("function {}: did not find art element {} in {}", env.func->name(),
mr.maps.ints.at(0), env.art_group());
}
lg::error("function `{}`: did not find art element {} in {}", env.func->name(),
mr.maps.ints.at(0), env.art_group());
}
}
@@ -4841,7 +4839,6 @@ FormElement* try_make_logtest_mouse_macro(Form* in, FormPool& pool) {
t = REL;
}
printf("t is %d\n", t);
if (t != NIL) {
auto logtest_elt = dynamic_cast<GenericElement*>(in->at(0));
if (logtest_elt) {
+16 -5
View File
@@ -878,11 +878,12 @@ void get_art_info(ObjectFileDB& db, ObjectFileData& obj) {
const auto& words = obj.linked_data.words_by_seg.at(MAIN_SEGMENT);
if (words.at(0).kind() == LinkedWord::Kind::TYPE_PTR &&
words.at(0).symbol_name() == "art-group") {
auto obj_unique_name = obj.to_unique_name();
// lg::print("art-group {}:\n", obj.to_unique_name());
auto name = obj.linked_data.get_goal_string_by_label(words.at(2).label_id());
int length = words.at(3).data;
// lg::print(" length: {}\n", length);
std::unordered_map<int, std::string> art_group_elts;
for (int i = 0; i < length; ++i) {
const auto& word = words.at(8 + i);
if (word.kind() == LinkedWord::Kind::SYM_PTR && word.symbol_name() == "#f") {
@@ -891,8 +892,19 @@ void get_art_info(ObjectFileDB& db, ObjectFileData& obj) {
const auto& label = obj.linked_data.labels.at(word.label_id());
auto elt_name =
obj.linked_data.get_goal_string_by_label(words.at(label.offset / 4 + 1).label_id());
auto unique_name = elt_name;
auto ag_name = obj_unique_name;
int elt_index = i;
auto& word_master_ag = words.at(label.offset / 4 + 7);
auto& word_master_idx = words.at(label.offset / 4 + 8);
if (word_master_ag.kind() == LinkedWord::Kind::PTR &&
word_master_idx.kind() == LinkedWord::Kind::PLAIN_DATA) {
ag_name = obj.linked_data.get_goal_string_by_label(word_master_ag.label_id()) + "-ag";
elt_index = word_master_idx.data;
}
std::string elt_type = words.at(label.offset / 4 - 1).symbol_name();
std::string unique_name = elt_name;
if (elt_type == "art-joint-geo") {
// the skeleton!
unique_name += "-jg";
@@ -908,10 +920,9 @@ void get_art_info(ObjectFileDB& db, ObjectFileData& obj) {
throw std::runtime_error(
fmt::format("unknown art elt type {} in {}", elt_type, obj.to_unique_name()));
}
art_group_elts[i] = unique_name;
// lg::print(" {}: {} ({}) -> {}\n", i, elt_name, elt_type, unique_name);
// lg::print(" {}: {} ({}) -> {} @ {}\n", i, elt_name, elt_type, unique_name, elt_index);
db.dts.add_art_group_elt(ag_name, unique_name, elt_index);
}
db.dts.art_group_info[obj.to_unique_name()] = art_group_elts;
}
}
}
+2 -2
View File
@@ -111,8 +111,8 @@ bool convert_to_expressions(
// the return value of this function is not an exact match
// we cast it to avoid complicated issues with polymorphism (e.g. methods)
// we don't run this if we find a (return statement because we do not handle
// type checking on those at the moment.
// we don't run this if we find a (return statement for unknown reasons
// TODO : remove this and check?
if (!found_early_return && f.type.last_arg() != return_type) {
needs_cast = true;
}
+29 -6
View File
@@ -94,8 +94,8 @@ std::vector<DefstateElement::Entry> get_defstate_entries(
temp.to_string(env));
}
auto var = mr.maps.regs.at(0);
auto name = mr.maps.strings.at(1);
auto& var = mr.maps.regs.at(0);
auto& name = mr.maps.strings.at(1);
auto val = mr.maps.forms.at(2);
auto handler_kind = handler_name_to_kind(name);
@@ -149,12 +149,35 @@ std::vector<DefstateElement::Entry> get_defstate_entries(
// hack - lets pretend every handler (except event) returns none but remove the (none) at the
// end since the 'real' return type is object and thus anything is valid in the final form
handler_func->ir2.skip_final_none = true;
} else if (handler_atom && handler_atom->is_sym_val()) {
} else if (handler_atom && handler_atom->is_sym_val() && !handler_atom->is_sym_val("#f")) {
// value of a symbol.
// NOTE : we
auto sym_type = env.dts->lookup_symbol_type(handler_atom->get_str());
auto expected_type = get_state_handler_type(handler_kind, state_type);
if (!env.dts->ts.tc(expected_type, sym_type)) {
auto handler_type = get_state_handler_type(handler_kind, state_type);
// NOTE : we set the return value of the handlers to "none" for a sneaky hack (see right
// above) however we only need that when decompiling lambdas. so we revert that hack here.
if (handler_type.last_arg() == TypeSpec("none")) {
handler_type.last_arg() = TypeSpec("object");
}
// hack : delete the behavior tags and typecheck them separately.
auto sym_behavior = sym_type.try_get_tag("behavior");
handler_type.delete_tag("behavior");
sym_type.delete_tag("behavior");
// finally do typecheck. does argument typecheck, then we do process typecheck separately.
// this is because the logic has to be kind of backwards:
// - the process type in the symbol's behavior tag can be more generic; but
// - the arguments can be more specific.
// for example, a process of type `enemy` can run a behavior for `process-drawable` just fine
// but a behavior for `process-drawable` that requires a more specific argument than `enemy`
// would be bad.
// in practice this just allows us to use more specific types for functions in the decompiler
// without trigger extraneous casts.
if (!env.dts->ts.tc(handler_type, sym_type) ||
(sym_behavior.has_value() &&
!env.dts->ts.tc(*sym_behavior, state_type.last_arg().base_type()))) {
this_entry.val =
pool.alloc_single_element_form<CastElement>(nullptr, expected_type, this_entry.val);
pool.alloc_single_element_form<CastElement>(nullptr, handler_type, this_entry.val);
}
}
// name = code/event/etc
+12 -7
View File
@@ -1330,14 +1330,19 @@ FormElement* rewrite_joint_macro(LetElement* in, const Env& env, FormPool& pool)
Matcher::any_reg(0), false,
{DerefTokenMatcher::string("frame-group"), DerefTokenMatcher::string("frames"),
DerefTokenMatcher::string("num-frames")});
auto matcher_new_group_max_frames =
env.version == GameVersion::Jak1
? Matcher::deref(Matcher::any(1), false,
{DerefTokenMatcher::string("data"), DerefTokenMatcher::integer(0),
DerefTokenMatcher::string("length")})
: Matcher::deref(
Matcher::any(1), false,
{DerefTokenMatcher::string("frames"), DerefTokenMatcher::string("num-frames")});
auto matcher_max_num = Matcher::cast(
"float", Matcher::op_fixed(FixedOperatorKind::ADDITION,
{form_fg ? Matcher::deref(Matcher::any(1), false,
{DerefTokenMatcher::string("data"),
DerefTokenMatcher::integer(0),
DerefTokenMatcher::string("length")})
: matcher_cur_group_max_frames,
Matcher::integer(-1)}));
"float",
Matcher::op_fixed(FixedOperatorKind::ADDITION,
{form_fg ? matcher_new_group_max_frames : matcher_cur_group_max_frames,
Matcher::integer(-1)}));
// DONE CHECKING EVERYTHING!!! Now write the goddamn macro.
std::vector<Form*> args;
+1 -1
View File
@@ -33724,7 +33724,7 @@
;; - Functions
(define-extern minershort-trans-hook (function none :behavior minershort))
(define-extern miners-anim-loop (function none :behavior minershort))
(define-extern miners-anim-loop (function object :behavior process-taskable))
;; - Unknowns
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -28409,7 +28409,7 @@
(define-extern ja-eval (function int :behavior process-drawable))
(define-extern ja-blend-eval (function int :behavior process-drawable))
(define-extern ja-post (function none :behavior process-drawable))
(define-extern sleep-code (function symbol :behavior process-drawable))
(define-extern sleep-code (function symbol :behavior process))
(define-extern transform-and-sleep (function none :behavior process-drawable))
(define-extern transform-and-sleep-code (function none :behavior process-drawable))
(define-extern transform-post (function int :behavior process-drawable))
@@ -29572,7 +29572,7 @@
(define-extern projectile-update-velocity-space-wars (function projectile none))
(define-extern projectile-init-by-other (function projectile-init-by-other-params projectile :behavior projectile))
(define-extern projectile-bounce-update-velocity (function projectile-bounce none :behavior projectile))
(define-extern projectile-bounce-falling-post (function projectile-bounce none :behavior projectile-bounce))
(define-extern projectile-bounce-falling-post (function none :behavior projectile-bounce))
(define-extern projectile-bounce-move (function projectile-bounce none))
(define-extern projectile-bounce-reaction (function control-info collide-query vector vector collide-status))
File diff suppressed because one or more lines are too long
+27 -2
View File
@@ -1,4 +1,29 @@
{
"files": {},
"functions": {}
//////////////////////
// ART INFO
//////////////////////
// defines what art group each file or function is using.
// by default, the decompiler assumes to be the name of the current file + -ag
// so you only need to specify it when that's not the case.
// NOTE: it's fine to have a function and its file both in here. the function takes priority.
"files": {
"target": "jakb-ag",
"target2": "jakb-ag",
"target-death": "jakb-ag",
"target-gun": "jakb-ag",
"target-swim": "jakb-ag",
"target-tube": "jakb-ag",
"target-board": "jakb-ag",
"target-carry": "jakb-ag",
"target-darkjak": "jakb-ag",
"target-anim": "jakb-ag",
"powerups": "jakb-ag",
"sidekick": "daxter-ag"
},
"functions": {
// "(code target-warp-out)": "eichar-ag"
}
}
+9
View File
@@ -69,6 +69,15 @@ class DecompilerTypeSystem {
TypeSpec lookup_symbol_type(const std::string& name) const;
bool should_attempt_cast_simplify(const TypeSpec& expected, const TypeSpec& actual) const;
void add_art_group_elt(const std::string& ag_name, const std::string& elt_name, int elt_index) {
if (art_group_info.count(ag_name) == 0) {
art_group_info[ag_name] = {};
}
if (art_group_info.at(ag_name).count(elt_index) == 0) {
art_group_info.at(ag_name)[elt_index] = elt_name;
}
}
// todo - totally eliminate this.
struct {
std::string current_method_type;
@@ -270,7 +270,5 @@ void CollideMeshRenderer::render(SharedRenderState* render_state, ScopedProfiler
prof.add_draw_call();
prof.add_tri(lev->level->collision.vertices.size() / 3);
last_render_time = current_time;
}
}
@@ -15,9 +15,6 @@ class CollideMeshRenderer {
void render(SharedRenderState* render_state, ScopedProfilerNode& prof);
~CollideMeshRenderer();
int current_time = 0;
int last_render_time = 0;
private:
void init_pat_colors(GameVersion version);
@@ -1010,8 +1010,6 @@ void OpenGLRenderer::dispatch_buckets_jak2(DmaFollower dma,
m_render_state.bucket_for_vis_copy = (int)jak2::BucketId::BUCKET_2;
m_render_state.num_vis_to_copy = jak2::LEVEL_MAX;
++m_collide_renderer.current_time;
for (size_t bucket_id = 0; bucket_id < m_bucket_renderers.size(); bucket_id++) {
auto& renderer = m_bucket_renderers[bucket_id];
auto bucket_prof = prof.make_scoped_child(renderer->name_and_id());
@@ -1032,8 +1030,7 @@ void OpenGLRenderer::dispatch_buckets_jak2(DmaFollower dma,
// hack to draw the collision mesh in the middle the drawing
if (bucket_id + 1 == (int)jak2::BucketId::TEX_L0_ALPHA &&
Gfx::g_global_settings.collision_enable &&
m_collide_renderer.last_render_time != m_collide_renderer.current_time) {
Gfx::g_global_settings.collision_enable) {
auto p = prof.make_scoped_child("collision-draw");
m_collide_renderer.render(&m_render_state, p);
}
+1 -1
View File
@@ -523,7 +523,7 @@
(ja :num! (loop!))
)
)
:post (the-as (function none :behavior joint-exploder) ja-post)
:post ja-post
)
(defmethod joint-exploder-method-23 joint-exploder ((obj joint-exploder))
@@ -102,7 +102,7 @@
(rider-trans)
)
)
:code (the-as (function none :behavior basebutton) anim-loop)
:code anim-loop
:post (behavior ()
(when (-> self move-to?)
(set! (-> self move-to?) #f)
@@ -129,7 +129,7 @@
:enter (behavior ()
(press! self #t)
)
:trans (the-as (function none :behavior basebutton) rider-trans)
:trans rider-trans
:code (behavior ()
(ja-no-eval :num! (seek! max (-> self anim-speed)))
(until (ja-done? 0)
@@ -212,7 +212,7 @@
:enter (behavior ()
(press! self #f)
)
:trans (the-as (function none :behavior basebutton) rider-trans)
:trans rider-trans
:code (behavior ()
(ja-no-eval :num! (seek! 0.0 (-> self anim-speed)))
(until (ja-done? 0)
+2 -2
View File
@@ -251,7 +251,7 @@ eco-door-event-handler
)
(go-virtual door-open)
)
:post (the-as (function none :behavior eco-door) transform-post)
:post transform-post
)
(defstate door-open (eco-door)
@@ -309,7 +309,7 @@ eco-door-event-handler
)
(go-virtual door-closed)
)
:post (the-as (function none :behavior eco-door) transform-post)
:post transform-post
)
(defmethod eco-door-method-26 eco-door ((obj eco-door))
@@ -391,7 +391,7 @@
(go-virtual wait)
)
)
:code (the-as (function none :behavior eco-collectable) anim-loop)
:code anim-loop
)
(defstate jump (eco-collectable)
+4 -4
View File
@@ -664,7 +664,7 @@
(suspend)
)
)
:post (the-as (function none :behavior crate) ja-post)
:post ja-post
)
(defstate bounce-on (crate)
@@ -676,7 +676,7 @@
)
(go-virtual wait)
)
:post (the-as (function none :behavior crate) crate-post)
:post crate-post
)
(defstate notice-blue (crate)
@@ -751,7 +751,7 @@
(suspend)
)
)
:post (the-as (function none :behavior crate) crate-post)
:post crate-post
)
(defstate die (crate)
@@ -1292,7 +1292,7 @@
(set! (-> self root-override trans y) (-> self base y))
)
)
:post (the-as (function none :behavior crate-buzzer) #f)
:post #f
)
(defstate bounce-on (crate-buzzer)
@@ -157,7 +157,7 @@
(defstate die (process-hidden)
:virtual #t
:code (the-as (function none :behavior process-hidden) nothing)
:code nothing
)
(defmethod init-from-entity! process-hidden ((obj process-hidden) (arg0 entity-actor))
@@ -1247,7 +1247,7 @@
)
)
)
:post (the-as (function none :behavior med-res-level) ja-post)
:post ja-post
)
(define *lev-string* (new 'global 'string 64 (the-as string #f)))
@@ -1899,7 +1899,7 @@
)
)
)
:code (the-as (function none :behavior launcher) anim-loop)
:code anim-loop
)
(defstate launcher-active (launcher)
@@ -1956,7 +1956,7 @@
)
(defstate launcher-deactivated (launcher)
:code (the-as (function none :behavior launcher) anim-loop)
:code anim-loop
)
(defmethod init-from-entity! launcher ((obj launcher) (arg0 entity-actor))
+3 -9
View File
@@ -773,7 +773,7 @@ nav-enemy-default-event-handler
)
)
)
:post (the-as (function none :behavior nav-enemy) ja-post)
:post ja-post
)
(defstate nav-enemy-patrol (nav-enemy)
@@ -1234,10 +1234,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-die (nav-enemy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior nav-enemy)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:enter (behavior ()
(send-event (ppointer->process (-> self parent)) 'child-die)
)
@@ -1265,10 +1262,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-fuel-cell (nav-enemy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior nav-enemy)
process-drawable-fuel-cell-handler
)
:event process-drawable-fuel-cell-handler
:code (behavior ()
(ja-channel-set! 0)
(clear-collide-with-as (-> self collide-info))
+6 -6
View File
@@ -190,11 +190,11 @@
)
(defstate orb-cache-top-activate (orb-cache-top)
:event (the-as (function process int symbol event-message-block object :behavior orb-cache-top) plat-event)
:event plat-event
:exit (behavior ()
(process-entity-status! self (entity-perm-status bit-3) #f)
)
:trans (the-as (function none :behavior orb-cache-top) plat-trans)
:trans plat-trans
:code (behavior ((arg0 symbol))
(process-entity-status! self (entity-perm-status bit-3) #t)
(calculate-pos self arg0)
@@ -261,12 +261,12 @@
)
)
)
:post (the-as (function none :behavior orb-cache-top) plat-post)
:post plat-post
)
(defstate orb-cache-top-complete (orb-cache-top)
:event (the-as (function process int symbol event-message-block object :behavior orb-cache-top) plat-event)
:trans (the-as (function none :behavior orb-cache-top) plat-trans)
:event plat-event
:trans plat-trans
:code (behavior ((arg0 symbol))
(if (not arg0)
(sound-play "close-orb-cash")
@@ -276,7 +276,7 @@
(set! (-> self basetrans y) (+ 2048.0 (-> self root-pos)))
(anim-loop)
)
:post (the-as (function none :behavior orb-cache-top) plat-post)
:post plat-post
)
(defmethod init-from-entity! orb-cache-top ((obj orb-cache-top) (arg0 entity-actor))
@@ -127,7 +127,7 @@
(defstate plat-button-pressed (plat-button)
:virtual #t
:trans (the-as (function none :behavior plat-button) rider-trans)
:trans rider-trans
:code (behavior ()
(ja-no-eval :num! (seek!))
(until (ja-done? 0)
@@ -141,7 +141,7 @@
(go-virtual plat-button-move-upward)
)
)
:post (the-as (function none :behavior plat-button) rider-post)
:post rider-post
)
(defbehavior plat-button-camera-on plat-button ()
@@ -226,8 +226,8 @@
(set! (-> self grab-player?) (not (process-release? *target*)))
)
)
:code (the-as (function none :behavior plat-button) anim-loop)
:post (the-as (function none :behavior plat-button) rider-post)
:code anim-loop
:post rider-post
)
(defstate plat-button-move-upward (plat-button)
@@ -296,8 +296,8 @@
(set! (-> self grab-player?) (not (process-release? *target*)))
)
)
:code (the-as (function none :behavior plat-button) anim-loop)
:post (the-as (function none :behavior plat-button) rider-post)
:code anim-loop
:post rider-post
)
(defstate plat-button-at-end (plat-button)
+1 -1
View File
@@ -77,7 +77,7 @@
(update-transforms! (-> self root-override))
(anim-loop)
)
:post (the-as (function none :behavior plat-eco) ja-post)
:post ja-post
)
(defstate notice-blue (plat-eco)
+4 -4
View File
@@ -192,7 +192,7 @@
(defstate plat-idle (plat)
:virtual #t
:event (the-as (function process int symbol event-message-block object :behavior plat) plat-event)
:event plat-event
:trans (behavior ()
(baseplat-method-20 self)
)
@@ -219,7 +219,7 @@
(defstate plat-path-active (plat)
:virtual #t
:event (the-as (function process int symbol event-message-block object :behavior plat) plat-event)
:event plat-event
:exit (behavior ()
(sound-stop (-> self sound-id))
)
@@ -235,8 +235,8 @@
)
(plat-trans)
)
:code (the-as (function plat none :behavior plat) anim-loop)
:post (the-as (function none :behavior plat) plat-post)
:code (the-as (function plat object) anim-loop)
:post plat-post
)
(defmethod init-from-entity! plat ((obj plat) (arg0 entity-actor))
@@ -302,7 +302,7 @@
((-> self cur-trans-hook))
)
:code process-taskable-anim-loop
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defstate give-cell (process-taskable)
@@ -334,7 +334,7 @@
((-> self cur-trans-hook))
)
:code process-taskable-anim-loop
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defstate lose (process-taskable)
@@ -353,13 +353,13 @@
((-> self cur-trans-hook))
)
:code process-taskable-anim-loop
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defstate enter-playing (process-taskable)
:virtual #t
:code process-taskable-anim-loop
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defbehavior process-taskable-play-anim-enter process-taskable ()
@@ -492,7 +492,7 @@
(defstate play-accept (process-taskable)
:virtual #t
:enter (the-as (function none :behavior process-taskable) process-taskable-play-anim-enter)
:enter process-taskable-play-anim-enter
:exit process-taskable-play-anim-exit
:trans (behavior ()
(process-taskable-play-anim-trans)
@@ -505,12 +505,12 @@
)
(go-virtual enter-playing)
)
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defstate play-reject (process-taskable)
:virtual #t
:enter (the-as (function none :behavior process-taskable) process-taskable-play-anim-enter)
:enter process-taskable-play-anim-enter
:exit process-taskable-play-anim-exit
:trans (behavior ()
(process-taskable-play-anim-trans)
@@ -520,7 +520,7 @@
(process-taskable-play-anim-code (the-as art-joint-anim (get-art-elem self)) (get-reject-anim self #t))
(go-virtual release)
)
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defstate query (process-taskable)
@@ -568,7 +568,7 @@
((-> self cur-trans-hook))
)
:code process-taskable-anim-loop
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defstate play-anim (process-taskable)
@@ -601,7 +601,7 @@
)
)
)
:enter (the-as (function none :behavior process-taskable) process-taskable-play-anim-enter)
:enter process-taskable-play-anim-enter
:exit process-taskable-play-anim-exit
:trans (behavior ()
(process-taskable-play-anim-trans)
@@ -616,7 +616,7 @@
(process-taskable-play-anim-code (the-as art-joint-anim (get-art-elem self)) (play-anim! self #t))
(process-taskable-method-38 self)
)
:post (the-as (function none :behavior process-taskable) ja-post)
:post ja-post
)
(defbehavior process-taskable-clean-up-after-talking process-taskable ()
@@ -681,7 +681,7 @@
(defstate hidden (process-taskable)
:virtual #t
:event process-taskable-hide-handler
:enter (the-as (function none :behavior process-taskable) process-taskable-hide-enter)
:enter process-taskable-hide-enter
:exit (behavior ()
(process-taskable-hide-exit (= (-> self next-state name) 'hidden))
)
@@ -693,7 +693,7 @@
(go-virtual idle)
)
)
:code (the-as (function none :behavior process-taskable) anim-loop)
:code anim-loop
)
;; WARN: disable def twice: 4. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare.
@@ -711,7 +711,7 @@
(defstate hidden-other (process-taskable)
:virtual #t
:event process-taskable-hide-handler
:enter (the-as (function none :behavior process-taskable) process-taskable-hide-enter)
:enter process-taskable-hide-enter
:exit (behavior ()
(process-taskable-hide-exit (= (-> self next-state name) 'hidden-other))
)
@@ -731,7 +731,7 @@
)
)
)
:code (the-as (function none :behavior process-taskable) anim-loop)
:code anim-loop
)
(defstate be-clone (process-taskable)
@@ -627,7 +627,7 @@
(suspend)
)
)
:post (the-as (function none :behavior rigid-body-platform) ja-post)
:post ja-post
)
(defstate rigid-body-platform-float (rigid-body-platform)
@@ -646,7 +646,7 @@
(suspend)
)
)
:post (the-as (function none :behavior rigid-body-platform) rigid-body-platform-post)
:post rigid-body-platform-post
)
(defmethod rigid-body-platform-method-29 rigid-body-platform ((obj rigid-body-platform) (arg0 rigid-body-platform-constants))
+9 -33
View File
@@ -208,10 +208,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-idle (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf0))
@@ -270,15 +267,12 @@ nav-enemy-default-event-handler
(logior! (-> self draw status) (draw-status hidden))
(anim-loop)
)
:post (the-as (function none :behavior sharkey) #f)
:post #f
)
(defstate nav-enemy-patrol (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
(if (sharkey-notice-player?)
(go-virtual nav-enemy-chase)
@@ -316,10 +310,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-notice (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:enter (behavior ()
(go-virtual nav-enemy-chase)
)
@@ -339,10 +330,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-attack (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(let ((gp-0 (new 'stack-no-clear 'vector))
(s5-0 (new 'stack-no-clear 'vector))
@@ -411,10 +399,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-chase (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(sound-stop (-> self sound-id))
)
@@ -502,10 +487,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stop-chase (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-channel-push! 1 (seconds 0.17))
(loop
@@ -525,10 +507,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stare (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
(if (target-in-range? self (-> self nav-info notice-distance))
(go-virtual nav-enemy-chase)
@@ -552,10 +531,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-victory (sharkey)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior sharkey)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-channel-push! 1 (seconds 0.075))
(dotimes (gp-0 3)
+4 -4
View File
@@ -40,7 +40,7 @@
(defstate empty-state (process)
:code (the-as (function none :behavior process) nothing)
:code nothing
)
(defskelgroup *voicebox-sg* speaker speaker-lod0-jg speaker-idle-ja
@@ -150,7 +150,7 @@
(set! (-> self blend) 0.0)
(go-virtual idle)
)
:post (the-as (function none :behavior voicebox) ja-post)
:post ja-post
)
(defstate idle (voicebox)
@@ -163,7 +163,7 @@
(ja :num! (loop!))
)
)
:post (the-as (function none :behavior voicebox) ja-post)
:post ja-post
)
(defstate exit (voicebox)
@@ -189,7 +189,7 @@
(suspend)
0
)
:post (the-as (function none :behavior voicebox) ja-post)
:post ja-post
)
(defbehavior voicebox-init-by-other voicebox ((arg0 vector) (arg1 handle))
+1 -1
View File
@@ -1246,7 +1246,7 @@
:trans (behavior ()
(update! self)
)
:code (the-as (function none :behavior water-vol) anim-loop)
:code anim-loop
)
(defmethod set-stack-size! water-vol ((obj water-vol))
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -48,7 +48,7 @@
)
)
)
:post (the-as (function none :behavior viewer) ja-post)
:post ja-post
)
(define viewer-string (new 'global 'string 64 (the-as string #f)))
+1 -1
View File
@@ -553,7 +553,7 @@
)
;; og:preserve-this PAL patch here
(let ((f0-8 (lerp-scale 80.0 100.0 (-> self control unknown-float01) 0.0 81920.0)))
(if (not (ja-group? (-> self draw art-group data 104)))
(if (not (ja-group? eichar-ice-stance-ja))
(set! f0-8 (* 0.8 f0-8))
)
(seek! (-> self control unknown-float141) f0-8 (* 100.0 (-> *display* seconds-per-frame)))
+1 -1
View File
@@ -118,7 +118,7 @@
)
)
)
:code (the-as (function none :behavior sidekick) looping-code)
:code looping-code
:post (behavior ()
(let ((v1-0 'process-drawable-art-error)
(a0-0 (-> self parent-override))
+1 -1
View File
@@ -723,7 +723,7 @@
((and (ja-group? eichar-walk-ja) (= (-> self skel root-channel 0) (-> self skel channel)))
(set! f28-0 (ja-aframe-num 0))
)
((ja-group? (-> self draw art-group data 102))
((ja-group? eichar-ice-skate-ja)
(set! f28-0 (ja-aframe-num 0))
(ja-channel-push! 7 (seconds 0.1))
)
+6 -6
View File
@@ -964,7 +964,7 @@
)
)
(cond
((ja-group? (-> self draw art-group data 83))
((ja-group? eichar-pole-jump-loop-ja)
(while (not (-> self control unknown-int21))
(ja :num! (seek!))
(suspend)
@@ -979,7 +979,7 @@
(ja-channel-push! 1 (seconds 0.15))
)
)
(ja-no-eval :group! (-> self draw art-group data 80) :num! (seek!) :frame-num 0.0)
(ja-no-eval :group! eichar-pole-cycle-ja :num! (seek!) :frame-num 0.0)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
@@ -991,7 +991,7 @@
)
)
)
(ja-no-eval :group! (-> self draw art-group data 80) :num! (seek!) :frame-num 0.0)
(ja-no-eval :group! eichar-pole-cycle-ja :num! (seek!) :frame-num 0.0)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
@@ -1005,7 +1005,7 @@
:event target-standard-event-handler
:exit (-> target-pole-cycle exit)
:code (behavior ((arg0 object) (arg1 object) (arg2 float))
(ja-no-eval :group! (-> self draw art-group data 81)
(ja-no-eval :group! eichar-pole-flip-up-ja
:num! (seek!)
:frame-num (ja-aframe (+ 1.0 (fmin 17.0 (ja-aframe-num 0))) 0)
)
@@ -1030,7 +1030,7 @@
:code (behavior ((arg0 float) (arg1 float))
(sound-play "jump")
(send-event *camera* 'damp-up)
(ja :group! (-> self draw art-group data 83) :num! min)
(ja :group! eichar-pole-jump-loop-ja :num! min)
(let ((f0-1 (target-height-above-ground))
(f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))
)
@@ -1055,7 +1055,7 @@
:event target-standard-event-handler
:exit (-> target-pole-cycle exit)
:code (behavior ((arg0 float) (arg1 float) (arg2 float))
(ja-no-eval :group! (-> self draw art-group data 82)
(ja-no-eval :group! eichar-pole-flip-forward-ja
:num! (seek! (ja-aframe (the-as float 16.0) 0))
:frame-num (ja-aframe (+ 1.0 (ja-aframe-num 0)) 0)
)
+1 -1
View File
@@ -2439,7 +2439,7 @@
:enter #f
:event #f)))
(set! (-> dead-state code) (the (function none :behavior process) nothing))
(set! (-> dead-state code) (the (function object :behavior process) nothing))
;; this is not yet defined.
+9 -12
View File
@@ -55,7 +55,7 @@
)
)
)
:post (the-as (function none :behavior windmill-one) rider-post)
:post rider-post
)
(defmethod init-from-entity! windmill-one ((obj windmill-one) (arg0 entity-actor))
@@ -307,7 +307,7 @@
(move-grottopole self 1.0)
(go grottopole-idle)
)
:post (the-as (function none :behavior grottopole) transform-post)
:post transform-post
)
(defstate grottopole-moving-down (grottopole)
@@ -320,7 +320,7 @@
(move-grottopole self -1.0)
(go grottopole-idle)
)
:post (the-as (function none :behavior grottopole) transform-post)
:post transform-post
)
(defmethod init-from-entity! grottopole ((obj grottopole) (arg0 entity-actor))
@@ -545,10 +545,7 @@
)
(defstate ecoventrock-break (ecoventrock)
:event (the-as
(function process int symbol event-message-block object :behavior ecoventrock)
process-drawable-fuel-cell-handler
)
:event process-drawable-fuel-cell-handler
:enter (behavior ((arg0 symbol))
(set! (-> self state-time) (-> *display* base-frame-counter))
)
@@ -803,7 +800,7 @@
)
(deactivate self)
)
:post (the-as (function none :behavior flying-rock) ja-post)
:post ja-post
)
(defbehavior flying-rock-init-by-other flying-rock ((arg0 vector) (arg1 vector) (arg2 float) (arg3 entity-actor))
@@ -1146,7 +1143,7 @@
)
)
)
:post (the-as (function none :behavior flutflutegg) ja-post)
:post ja-post
)
(defstate flutflutegg-physics-fall (flutflutegg)
@@ -1210,7 +1207,7 @@
(go flutflutegg-break #f)
)
)
:post (the-as (function none :behavior flutflutegg) ja-post)
:post ja-post
)
(defstate flutflutegg-break (flutflutegg)
@@ -1264,7 +1261,7 @@
(suspend)
)
)
:post (the-as (function none :behavior flutflutegg) ja-post)
:post ja-post
)
(defmethod init-from-entity! flutflutegg ((obj flutflutegg) (arg0 entity-actor))
@@ -1381,7 +1378,7 @@
)
)
)
:post (the-as (function none :behavior harvester) ja-post)
:post ja-post
)
(defmethod init-from-entity! harvester ((obj harvester) (arg0 entity-actor))
+2 -2
View File
@@ -394,7 +394,7 @@
(set! (-> self draw bounds w) 20480.0)
(go-virtual fallen)
)
:post (the-as (function none :behavior beach-rock) transform-post)
:post transform-post
)
(defstate fallen (beach-rock)
@@ -419,7 +419,7 @@
(suspend)
0
)
:post (the-as (function none :behavior beach-rock) ja-post)
:post ja-post
)
(defmethod init-from-entity! beach-rock ((obj beach-rock) (arg0 entity-actor))
+8 -32
View File
@@ -194,10 +194,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-idle (lurkercrab)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(set! (-> self draw force-lod) -1)
)
@@ -258,10 +255,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-patrol (lurkercrab)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(lurkercrab-invulnerable)
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
@@ -331,10 +325,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-notice (lurkercrab)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-chase)
)
@@ -342,10 +333,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-chase (lurkercrab)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(lurkercrab-invulnerable)
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
@@ -414,10 +402,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stop-chase (lurkercrab)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-patrol)
)
@@ -425,10 +410,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stare (lurkercrab)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-patrol)
)
@@ -436,10 +418,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-victory (lurkercrab)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(ja-channel-push! 1 (seconds 0.075))
@@ -453,10 +432,7 @@ nav-enemy-default-event-handler
)
(defstate lurkercrab-pushed (lurkercrab)
:event (the-as
(function process int symbol event-message-block object :behavior lurkercrab)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(set! (-> self orient) #t)
)
+7 -25
View File
@@ -26,10 +26,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-notice (lurkerpuppy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkerpuppy)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-no-eval :num! (loop!))
(ja-channel-push! 1 (seconds 0.17))
@@ -45,10 +42,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-chase (lurkerpuppy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkerpuppy)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(cond
((ja-group? lurkerpuppy-jump-land-ja)
@@ -83,10 +77,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stare (lurkerpuppy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkerpuppy)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(set! (-> self rotate-speed) 1456355.5)
(set! (-> self turn-time) (seconds 0.1))
@@ -127,10 +118,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-give-up (lurkerpuppy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkerpuppy)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(set! (-> self rotate-speed) 218453.33)
(set! (-> self turn-time) (seconds 0.5))
@@ -159,10 +147,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-attack (lurkerpuppy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkerpuppy)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(sound-play "head-butt")
(go-virtual nav-enemy-victory)
@@ -171,10 +156,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-victory (lurkerpuppy)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior lurkerpuppy)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
)
@@ -196,7 +178,7 @@ nav-enemy-default-event-handler
)
(go-virtual nav-enemy-chase)
)
:post (the-as (function none :behavior lurkerpuppy) nav-enemy-face-player-post)
:post nav-enemy-face-player-post
)
(define *lurkerpuppy-nav-enemy-info* (new 'static 'nav-enemy-info
+1 -4
View File
@@ -445,10 +445,7 @@ lurkerworm-default-post-behavior
)
(defstate lurkerworm-die (lurkerworm)
:event (the-as
(function process int symbol event-message-block object :behavior lurkerworm)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:code (behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
(let ((v1-3 (-> self root-override root-prim)))
+1 -1
View File
@@ -809,7 +809,7 @@
(ja-channel-set! 0)
(anim-loop)
)
:post (the-as (function none :behavior pelican) ja-post)
:post ja-post
)
(defmethod init-from-entity! pelican ((obj pelican) (arg0 entity-actor))
+12 -12
View File
@@ -94,7 +94,7 @@
)
)
)
:post (the-as (function none :behavior citb-arm-section) ja-post)
:post ja-post
)
(defmethod init-root! citb-arm-section ((obj citb-arm-section))
@@ -144,7 +144,7 @@
(defstate idle (citb-arm)
:virtual #t
:trans (the-as (function none :behavior citb-arm) rider-trans)
:trans rider-trans
:post (behavior ()
(if (logtest? (-> self draw status) (draw-status hidden))
(clear-collide-with-as (-> self root-override))
@@ -358,7 +358,7 @@
)
)
)
:trans (the-as (function none :behavior citb-disc) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(update! (-> self sound))
@@ -372,7 +372,7 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-disc) rider-post)
:post rider-post
)
(defmethod init! citb-disc ((obj citb-disc))
@@ -823,7 +823,7 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-robotboss) ja-post)
:post ja-post
)
(defstate citb-robotboss-die (citb-robotboss)
@@ -932,7 +932,7 @@
)
(go citb-coil-broken)
)
:post (the-as (function none :behavior citb-coil) ja-post)
:post ja-post
)
(defstate citb-coil-broken (citb-coil)
@@ -947,7 +947,7 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-coil) ja-post)
:post ja-post
)
(defmethod init-from-entity! citb-coil ((obj citb-coil) (arg0 entity-actor))
@@ -1009,7 +1009,7 @@
)
)
)
:post (the-as (function none :behavior citb-hose) ja-post)
:post ja-post
)
(defstate citb-hose-spawn (citb-hose)
@@ -1023,7 +1023,7 @@
)
(go citb-hose-idle)
)
:post (the-as (function none :behavior citb-hose) ja-post)
:post ja-post
)
(defstate citb-hose-die (citb-hose)
@@ -1038,7 +1038,7 @@
)
(anim-loop)
)
:post (the-as (function none :behavior citb-hose) ja-post)
:post ja-post
)
(defmethod init-from-entity! citb-hose ((obj citb-hose) (arg0 entity-actor))
@@ -1243,7 +1243,7 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-generator) ja-post)
:post ja-post
)
(defstate citb-generator-break (citb-generator)
@@ -1298,7 +1298,7 @@
; )
(go citb-generator-broken)
)
:post (the-as (function none :behavior citb-generator) ja-post)
:post ja-post
)
(defstate citb-generator-broken (citb-generator)
@@ -111,7 +111,7 @@
)
)
)
:trans (the-as (function none :behavior citb-sagecage) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(cond
@@ -86,7 +86,7 @@
(suspend)
)
)
:post (the-as (function none :behavior drop-plat) ja-post)
:post ja-post
)
(defbehavior drop-plat-set-fade drop-plat ()
+21 -24
View File
@@ -61,8 +61,8 @@
(go-virtual citb-base-plat-active)
)
)
:code (the-as (function none :behavior citb-base-plat) anim-loop)
:post (the-as (function none :behavior citb-base-plat) ja-post)
:code anim-loop
:post ja-post
)
(defstate citb-base-plat-active (citb-base-plat)
@@ -76,8 +76,8 @@
)
(rider-trans)
)
:code (the-as (function none :behavior citb-base-plat) anim-loop)
:post (the-as (function none :behavior citb-base-plat) rider-post)
:code anim-loop
:post rider-post
)
(defmethod citb-base-plat-method-21 citb-base-plat ((obj citb-base-plat))
@@ -283,7 +283,7 @@
)
)
)
:trans (the-as (function none :behavior citb-stair-plat) #f)
:trans #f
:code (behavior ()
(logior! (-> self draw status) (draw-status hidden))
(while (not (-> self rise))
@@ -314,12 +314,12 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-stair-plat) #f)
:post #f
)
(defstate citb-base-plat-active (citb-stair-plat)
:virtual #t
:trans (the-as (function none :behavior citb-stair-plat) #f)
:trans #f
:code (behavior ()
(set! (-> self root-override trans y) (-> self rise-height))
(suspend)
@@ -327,7 +327,7 @@
(logior! (-> self mask) (process-mask actor-pause))
(anim-loop)
)
:post (the-as (function none :behavior citb-stair-plat) ja-post)
:post ja-post
)
(defmethod citb-base-plat-method-22 citb-stair-plat ((obj citb-stair-plat))
@@ -458,15 +458,12 @@
:code (behavior ()
(anim-loop)
)
:post (the-as (function none :behavior citb-chain-plat) ja-post)
:post ja-post
)
(defstate rigid-body-platform-float (citb-chain-plat)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior citb-chain-plat)
rigid-body-platform-event-handler
)
:event rigid-body-platform-event-handler
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
)
@@ -503,11 +500,11 @@
:code (behavior ()
(anim-loop)
)
:post (the-as (function none :behavior citb-chain-plat) rigid-body-platform-post)
:post rigid-body-platform-post
)
(defstate citb-chain-plat-settle (citb-chain-plat)
:trans (the-as (function none :behavior citb-chain-plat) rider-trans)
:trans rider-trans
:code (behavior ()
(let ((gp-0 (new 'stack-no-clear 'vector))
(s5-0 (new 'stack-no-clear 'quaternion))
@@ -535,7 +532,7 @@
(suspend)
(go-virtual rigid-body-platform-idle)
)
:post (the-as (function none :behavior citb-chain-plat) rider-post)
:post rider-post
)
(defmethod rigid-body-platform-method-30 citb-chain-plat ((obj citb-chain-plat))
@@ -608,7 +605,7 @@
(defstate citb-base-plat-active (citb-rotatebox)
:virtual #t
:trans (the-as (function none :behavior citb-rotatebox) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(ja-no-eval :group! (ja-group) :num! (seek!) :frame-num 0.0)
@@ -823,7 +820,7 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-firehose) ja-post)
:post ja-post
)
(defstate citb-firehose-active (citb-firehose)
@@ -848,7 +845,7 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-firehose) ja-post)
:post ja-post
)
(defbehavior citb-firehose-blast-particles citb-firehose ()
@@ -904,7 +901,7 @@
)
(go citb-firehose-active)
)
:post (the-as (function none :behavior citb-firehose) transform-post)
:post transform-post
)
(defmethod init-from-entity! citb-firehose ((obj citb-firehose) (arg0 entity-actor))
@@ -994,7 +991,7 @@
)
(defstate citb-exit-plat-rise (citb-exit-plat)
:trans (the-as (function none :behavior citb-exit-plat) rider-trans)
:trans rider-trans
:code (behavior ()
(logclear! (-> self draw status) (draw-status hidden))
(restore-collide-with-as (-> self root-override))
@@ -1010,7 +1007,7 @@
(suspend)
)
)
:post (the-as (function none :behavior citb-exit-plat) rider-post)
:post rider-post
)
(defbehavior citb-exit-plat-move-player citb-exit-plat ((arg0 vector))
@@ -1046,7 +1043,7 @@
(citb-exit-plat-move-player gp-0)
)
)
:post (the-as (function none :behavior citb-exit-plat) transform-post)
:post transform-post
)
(defstate plat-button-move-upward (citb-exit-plat)
@@ -1062,7 +1059,7 @@
(citb-exit-plat-move-player gp-0)
)
)
:post (the-as (function none :behavior citb-exit-plat) transform-post)
:post transform-post
)
(defmethod can-activate? citb-exit-plat ((obj citb-exit-plat))
@@ -409,7 +409,7 @@ battlecontroller-default-event-handler
(suspend)
)
)
:post (the-as (function none :behavior battlecontroller) #f)
:post #f
)
(defstate battlecontroller-play-intro-camera (battlecontroller)
@@ -477,7 +477,7 @@ battlecontroller-default-event-handler
(suspend)
)
)
:post (the-as (function none :behavior battlecontroller) #f)
:post #f
)
(defbehavior battlecontroller-special-contents? battlecontroller ()
@@ -512,10 +512,7 @@ battlecontroller-default-event-handler
(defstate battlecontroller-die (battlecontroller)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior battlecontroller)
process-drawable-fuel-cell-handler
)
:event process-drawable-fuel-cell-handler
:code (behavior ()
(sound-play "money-pickup" :pitch -1.5 :position #f)
(battlecontroller-battle-end)
@@ -579,7 +576,7 @@ battlecontroller-default-event-handler
)
(process-entity-status! self (entity-perm-status dead) #t)
)
:post (the-as (function none :behavior battlecontroller) #f)
:post #f
)
(defmethod relocate battlecontroller ((obj battlecontroller) (arg0 int))
+2 -2
View File
@@ -95,7 +95,7 @@
)
)
)
:post (the-as (function none :behavior launcherdoor) ja-post)
:post ja-post
)
(defstate launcherdoor-open (launcherdoor)
@@ -130,7 +130,7 @@
(suspend)
)
)
:post (the-as (function none :behavior launcherdoor) ja-post)
:post ja-post
)
(defmethod init-from-entity! launcherdoor ((obj launcherdoor) (arg0 entity-actor))
@@ -391,7 +391,7 @@
:code (behavior ()
0
)
:post (the-as (function none :behavior green-eco-lurker) transform-post)
:post transform-post
)
(defstate green-eco-lurker-wait-to-appear (green-eco-lurker)
@@ -525,14 +525,11 @@
(suspend)
)
)
:post (the-as (function none :behavior green-eco-lurker) transform-post)
:post transform-post
)
(defstate green-eco-lurker-appear-land (green-eco-lurker)
:event (the-as
(function process int symbol event-message-block object :behavior green-eco-lurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(activate! *camera-smush-control* 409.6 37 150 1.0 0.99)
(sound-play "blob-land" :pitch (nav-enemy-rnd-float-range -1.0 1.0))
@@ -559,7 +556,7 @@
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
(go-virtual nav-enemy-chase)
)
:post (the-as (function none :behavior green-eco-lurker) transform-post)
:post transform-post
)
(defstate nav-enemy-patrol (green-eco-lurker)
+6 -6
View File
@@ -401,7 +401,7 @@
(ja :num! (loop!))
)
)
:post (the-as (function none :behavior light-eco-child) transform-post)
:post transform-post
)
(defstate light-eco-child-hit-ground (light-eco-child)
@@ -447,7 +447,7 @@
(ja :num! (loop!))
)
)
:post (the-as (function none :behavior light-eco-child) transform-post)
:post transform-post
)
(defstate light-eco-child-idle (light-eco-child)
@@ -467,7 +467,7 @@
(ja :num! (loop!))
)
)
:post (the-as (function none :behavior light-eco-child) transform-post)
:post transform-post
)
(defstate light-eco-child-die (light-eco-child)
@@ -649,7 +649,7 @@
)
(go light-eco-mother-active)
)
:post (the-as (function none :behavior light-eco-mother) ja-post)
:post ja-post
)
(defstate light-eco-mother-active (light-eco-mother)
@@ -665,7 +665,7 @@
(ja :num! (loop!))
)
)
:post (the-as (function none :behavior light-eco-mother) ja-post)
:post ja-post
)
(defstate light-eco-mother-discipate (light-eco-mother)
@@ -686,7 +686,7 @@
(suspend)
)
)
:post (the-as (function none :behavior light-eco-mother) ja-post)
:post ja-post
)
(defmethod deactivate light-eco-mother ((obj light-eco-mother))
@@ -247,7 +247,7 @@
(suspend)
)
)
:post (the-as (function none :behavior ecoclaw) ja-post)
:post ja-post
)
(defstate ecoclaw-idle (ecoclaw)
@@ -260,7 +260,7 @@
(suspend)
)
)
:post (the-as (function none :behavior ecoclaw) ja-post)
:post ja-post
)
(defmethod init-from-entity! ecoclaw ((obj ecoclaw) (arg0 entity-actor))
@@ -307,7 +307,7 @@
)
)
)
:trans (the-as (function none :behavior silodoor) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(when (not (movie?))
@@ -282,7 +282,7 @@
)
(deactivate self)
)
:post (the-as (function none :behavior darkecobomb) ja-post)
:post ja-post
)
(defbehavior darkecobomb-handler darkecobomb ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -365,7 +365,7 @@
)
)
)
:post (the-as (function none :behavior darkecobomb) transform-post)
:post transform-post
)
(defstate darkecobomb-land (darkecobomb)
@@ -394,7 +394,7 @@
)
)
)
:post (the-as (function none :behavior darkecobomb) transform-post)
:post transform-post
)
(defstate darkecobomb-idle (darkecobomb)
@@ -424,7 +424,7 @@
)
)
)
:post (the-as (function none :behavior darkecobomb) transform-post)
:post transform-post
)
(defbehavior darkecobomb-init-by-other darkecobomb ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame) (arg4 float))
@@ -500,7 +500,7 @@
)
)
)
:post (the-as (function none :behavior greenshot) transform-post)
:post transform-post
)
(defbehavior greenshot-init-by-other greenshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame))
@@ -666,7 +666,7 @@
(suspend)
)
)
:post (the-as (function none :behavior redshot) transform-post)
:post transform-post
)
(defbehavior redshot-handler redshot ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -694,7 +694,7 @@
(suspend)
)
)
:post (the-as (function none :behavior redshot) transform-post)
:post transform-post
)
(defstate redshot-idle (redshot)
@@ -718,7 +718,7 @@
(suspend)
)
)
:post (the-as (function none :behavior redshot) transform-post)
:post transform-post
)
(defbehavior redshot-init-by-other redshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame) (arg4 time-frame) (arg5 int))
@@ -802,7 +802,7 @@
(suspend)
)
)
:post (the-as (function none :behavior yellowshot) transform-post)
:post transform-post
)
(defbehavior yellowshot-init-by-other yellowshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame))
+14 -14
View File
@@ -582,7 +582,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-daxter-sacrifice-movie (robotboss)
@@ -838,7 +838,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defbehavior robotboss-yellowshot robotboss ()
@@ -1200,7 +1200,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-red-dark-bomb-wait (robotboss)
@@ -1252,7 +1252,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-red-dark-bomb (robotboss)
@@ -1291,7 +1291,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(deftype redshot-launch-info (structure)
@@ -1711,7 +1711,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-red (robotboss)
@@ -1757,7 +1757,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-green-dark-bomb-wait (robotboss)
@@ -1809,7 +1809,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-green-dark-bomb (robotboss)
@@ -1849,7 +1849,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defbehavior robotboss-greenshot robotboss ((arg0 vector) (arg1 float) (arg2 int) (arg3 symbol))
@@ -2104,7 +2104,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-green (robotboss)
@@ -2151,7 +2151,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-blue-dark-bomb-wait (robotboss)
@@ -2211,7 +2211,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defstate robotboss-blue-dark-bomb (robotboss)
@@ -2250,7 +2250,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defbehavior robotboss-blue-beam robotboss ((arg0 int) (arg1 symbol))
@@ -2629,7 +2629,7 @@
)
)
)
:post (the-as (function none :behavior robotboss) transform-post)
:post transform-post
)
(defmethod init-from-entity! robotboss ((obj robotboss) (arg0 entity-actor))
@@ -131,7 +131,7 @@
)
)
)
:post (the-as (function none :behavior balloon) ja-post)
:post ja-post
)
(defmethod init-from-entity! balloon ((obj balloon) (arg0 entity-actor))
+1 -1
View File
@@ -219,7 +219,7 @@
(ja :num! (loop!))
)
)
:post (the-as (function none :behavior flutflut) ja-post)
:post ja-post
)
(defstate pickup (flutflut)
+2 -2
View File
@@ -100,7 +100,7 @@
)
)
)
:post (the-as (function none :behavior springbox) transform-post)
:post transform-post
)
(defstate bouncer-fire (springbox)
@@ -113,7 +113,7 @@
)
(go bouncer-wait)
)
:post (the-as (function none :behavior springbox) transform-post)
:post transform-post
)
(defmethod init-from-entity! springbox ((obj springbox) (arg0 entity-actor))
+3 -3
View File
@@ -901,7 +901,7 @@
)
)
)
:post (the-as (function none :behavior fisher-fish) ja-post)
:post ja-post
)
(defstate fisher-fish-caught (fisher-fish)
@@ -1369,8 +1369,8 @@
)
(spool-push *art-control* "fisher-reject" 0 self -99.0)
)
:code (the-as (function none :behavior fisher) process-taskable-anim-loop)
:post (the-as (function none :behavior fisher) ja-post)
:code process-taskable-anim-loop
:post ja-post
)
(defbehavior fisher-spawn-ambient fisher ()
+7 -22
View File
@@ -109,10 +109,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-idle (hopper)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior hopper)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-channel-push! 1 (seconds 0.075))
(loop
@@ -134,10 +131,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-patrol (hopper)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior hopper)
nav-enemy-jump-event-handler
)
:event nav-enemy-jump-event-handler
:trans (behavior ()
(if (not (logtest? (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate)))
((-> (method-of-type nav-enemy nav-enemy-patrol) trans))
@@ -186,15 +180,12 @@ nav-enemy-default-event-handler
(hopper-do-jump)
)
)
:post (the-as (function none :behavior hopper) nav-enemy-jump-post)
:post nav-enemy-jump-post
)
(defstate nav-enemy-notice (hopper)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior hopper)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-chase)
)
@@ -202,10 +193,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-chase (hopper)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior hopper)
nav-enemy-jump-event-handler
)
:event nav-enemy-jump-event-handler
:trans (behavior ()
(if (not (logtest? (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate)))
((-> (method-of-type nav-enemy nav-enemy-chase) trans))
@@ -249,15 +237,12 @@ nav-enemy-default-event-handler
(hopper-do-jump)
)
)
:post (the-as (function none :behavior hopper) nav-enemy-jump-post)
:post nav-enemy-jump-post
)
(defstate nav-enemy-stop-chase (hopper)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior hopper)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-stare)
)
@@ -1237,7 +1237,7 @@
(suspend)
)
)
:post (the-as (function none :behavior periscope) ja-post)
:post ja-post
)
(defun target-close-to-point? ((arg0 vector) (arg1 float))
@@ -1811,7 +1811,7 @@
)
)
)
:post (the-as (function none :behavior reflector-mirror) ja-post)
:post ja-post
)
(defstate reflector-mirror-broken (reflector-mirror)
+15 -15
View File
@@ -127,7 +127,7 @@
)
)
)
:post (the-as (function none :behavior towertop) ja-post)
:post ja-post
)
(defmethod init-from-entity! towertop ((obj towertop) (arg0 entity-actor))
@@ -173,7 +173,7 @@
)
)
)
:trans (the-as (function none :behavior lurkerm-tall-sail) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(ja-no-eval :group! (-> self draw art-group data 4) :num! (seek! max (* 0.5 (-> self speed))) :frame-num 0.0)
@@ -188,7 +188,7 @@
)
)
)
:post (the-as (function none :behavior lurkerm-tall-sail) rider-post)
:post rider-post
)
(defmethod init-from-entity! lurkerm-tall-sail ((obj lurkerm-tall-sail) (arg0 entity-actor))
@@ -263,7 +263,7 @@
)
)
)
:trans (the-as (function none :behavior lurkerm-short-sail) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(ja-no-eval :group! (-> self draw art-group data 4) :num! (seek! max (* 0.5 (-> self speed))) :frame-num 0.0)
@@ -278,7 +278,7 @@
)
)
)
:post (the-as (function none :behavior lurkerm-short-sail) rider-post)
:post rider-post
)
(defmethod init-from-entity! lurkerm-short-sail ((obj lurkerm-short-sail) (arg0 entity-actor))
@@ -373,7 +373,7 @@
)
)
)
:trans (the-as (function none :behavior lurkerm-piston) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(ja-no-eval :group! (-> self draw art-group data 2) :num! (seek! max (-> self speed)) :frame-num 0.0)
@@ -388,7 +388,7 @@
)
)
)
:post (the-as (function none :behavior lurkerm-piston) rider-post)
:post rider-post
)
(defmethod init-from-entity! lurkerm-piston ((obj lurkerm-piston) (arg0 entity-actor))
@@ -643,14 +643,14 @@
(suspend)
)
)
:post (the-as (function none :behavior precurbridge) ja-post)
:post ja-post
)
(defstate precurbridge-activate (precurbridge)
:exit (behavior ()
(logior! (-> self mask) (process-mask actor-pause))
)
:trans (the-as (function none :behavior precurbridge) rider-trans)
:trans rider-trans
:code (behavior ()
(process-entity-status! self (entity-perm-status complete) #t)
(sound-play "blue-eco-on" :position (the-as symbol (-> self root-override trans)))
@@ -664,7 +664,7 @@
)
(go precurbridge-active #f)
)
:post (the-as (function none :behavior precurbridge) rider-post)
:post rider-post
)
(defstate precurbridge-active (precurbridge)
@@ -682,7 +682,7 @@
)
)
)
:trans (the-as (function none :behavior precurbridge) rider-trans)
:trans rider-trans
:code (behavior ((arg0 symbol))
(set! (-> self draw bounds w) 81920.0)
(when arg0
@@ -715,7 +715,7 @@
(suspend)
)
)
:post (the-as (function none :behavior precurbridge) rider-post)
:post rider-post
)
(defmethod init-from-entity! precurbridge ((obj precurbridge) (arg0 entity-actor))
@@ -988,7 +988,7 @@
(suspend)
)
)
:post (the-as (function none :behavior maindoor) ja-post)
:post ja-post
)
(defmethod init-from-entity! maindoor ((obj maindoor) (arg0 entity-actor))
@@ -1094,7 +1094,7 @@
(defskelgroup *jngpusher-sg* jngpusher 0 2 ((1 (meters 999999))) :bounds (static-spherem 0 0 0 10))
(defstate jngpusher-idle (jngpusher)
:trans (the-as (function none :behavior jngpusher) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(ja :num-func num-func-identity
@@ -1114,7 +1114,7 @@
(suspend)
)
)
:post (the-as (function none :behavior jngpusher) rider-post)
:post rider-post
)
(defmethod init-from-entity! jngpusher ((obj jngpusher) (arg0 entity-actor))
+9 -33
View File
@@ -32,10 +32,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-patrol (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(set! (-> self target-speed) (-> self nav-info walk-travel-speed))
)
@@ -94,10 +91,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-notice (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-chase)
)
@@ -105,10 +99,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-chase (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
((-> (method-of-type nav-enemy nav-enemy-chase) trans))
(if (and *target* (>= 8192.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))))
@@ -119,10 +110,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stop-chase (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-patrol)
)
@@ -130,10 +118,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stare (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-patrol)
)
@@ -141,10 +126,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-give-up (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(go-virtual nav-enemy-patrol)
)
@@ -152,10 +134,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-attack (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-channel-push! 1 (seconds 0.1))
(ja-no-eval :group! junglefish-chomp-ja :num! (seek!) :frame-num 0.0)
@@ -165,15 +144,12 @@ nav-enemy-default-event-handler
)
(go-virtual nav-enemy-chase)
)
:post (the-as (function none :behavior junglefish) nav-enemy-chase-post)
:post nav-enemy-chase-post
)
(defstate nav-enemy-victory (junglefish)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior junglefish)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-channel-push! 1 (seconds 0.075))
(ja-no-eval :group! junglefish-swim-ja :num! (seek! max 2.0) :frame-num 0.0)
+6 -9
View File
@@ -382,7 +382,7 @@ junglesnake-default-event-handler
)
(go junglesnake-tracking)
)
:post (the-as (function none :behavior junglesnake) transform-post)
:post transform-post
)
(defstate junglesnake-tracking (junglesnake)
@@ -443,7 +443,7 @@ junglesnake-default-event-handler
)
)
)
:post (the-as (function none :behavior junglesnake) transform-post)
:post transform-post
)
(defstate junglesnake-attack (junglesnake)
@@ -509,7 +509,7 @@ junglesnake-default-event-handler
)
(go junglesnake-tracking)
)
:post (the-as (function none :behavior junglesnake) transform-post)
:post transform-post
)
(defstate junglesnake-give-up (junglesnake)
@@ -551,14 +551,11 @@ junglesnake-default-event-handler
(set-vector! (-> self root-override scale) 1.0 1.0 1.0 1.0)
(go junglesnake-sleeping)
)
:post (the-as (function none :behavior junglesnake) transform-post)
:post transform-post
)
(defstate junglesnake-die (junglesnake)
:event (the-as
(function process int symbol event-message-block object :behavior junglesnake)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:code (behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
(clear-collide-with-as (-> self root-override))
@@ -570,7 +567,7 @@ junglesnake-default-event-handler
)
(cleanup-for-death self)
)
:post (the-as (function none :behavior junglesnake) ja-post)
:post ja-post
)
(defmethod junglesnake-method-23 junglesnake ((obj junglesnake))
+2 -2
View File
@@ -202,7 +202,7 @@
(update-transforms! (-> self root-override))
(anim-loop)
)
:post (the-as (function none :behavior eggtop) ja-post)
:post ja-post
)
(defstate eggtop-close (eggtop)
@@ -286,7 +286,7 @@
(suspend)
0
)
:post (the-as (function none :behavior eggtop) rider-post)
:post rider-post
)
(defmethod init-from-entity! eggtop ((obj eggtop) (arg0 entity-actor))
+27 -27
View File
@@ -254,7 +254,7 @@
(suspend)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-arm-hit (plant-boss-arm)
@@ -275,7 +275,7 @@
)
(go plant-boss-arm-idle)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-arm-die (plant-boss-arm)
@@ -342,7 +342,7 @@
(suspend)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-back-arms-idle (plant-boss-arm)
@@ -368,7 +368,7 @@
)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-back-arms-hit (plant-boss-arm)
@@ -406,7 +406,7 @@
)
(go plant-boss-back-arms-idle)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-back-arms-die (plant-boss-arm)
@@ -431,7 +431,7 @@
(suspend)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-vine-idle (plant-boss-arm)
@@ -456,7 +456,7 @@
)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-vine-hit (plant-boss-arm)
@@ -477,7 +477,7 @@
)
(go plant-boss-vine-idle)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-vine-die (plant-boss-arm)
@@ -500,7 +500,7 @@
)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-root-idle (plant-boss-arm)
@@ -522,7 +522,7 @@
)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defstate plant-boss-root-die (plant-boss-arm)
@@ -536,7 +536,7 @@
)
)
)
:post (the-as (function none :behavior plant-boss-arm) ja-post)
:post ja-post
)
(defbehavior plant-boss-arm-init plant-boss-arm ((arg0 vector) (arg1 float) (arg2 int))
@@ -687,7 +687,7 @@
)
)
)
:post (the-as (function none :behavior plant-boss-leaf) ja-post)
:post ja-post
)
(defstate plant-boss-leaf-open (plant-boss-leaf)
@@ -701,7 +701,7 @@
)
)
)
:trans (the-as (function none :behavior plant-boss-leaf) rider-trans)
:trans rider-trans
:code (behavior ((arg0 symbol))
(ja-no-eval :num! (loop!))
(ja-channel-push! 1 (seconds 0.1))
@@ -743,7 +743,7 @@
)
(go plant-boss-leaf-open-idle #f)
)
:post (the-as (function none :behavior plant-boss-leaf) rider-post)
:post rider-post
)
(defstate plant-boss-leaf-open-idle (plant-boss-leaf)
@@ -766,7 +766,7 @@
)
)
)
:trans (the-as (function none :behavior plant-boss-leaf) rider-trans)
:trans rider-trans
:code (behavior ((arg0 symbol))
(local-vars (v1-19 symbol))
(set! (-> self state-object) arg0)
@@ -790,7 +790,7 @@
)
(go plant-boss-leaf-close)
)
:post (the-as (function none :behavior plant-boss-leaf) rider-post)
:post rider-post
)
(defstate plant-boss-leaf-bounce (plant-boss-leaf)
@@ -808,7 +808,7 @@
)
)
)
:trans (the-as (function none :behavior plant-boss-leaf) rider-trans)
:trans rider-trans
:code (behavior ()
(ja-channel-push! 1 (seconds 0.1))
(case (-> self side)
@@ -831,7 +831,7 @@
)
(go plant-boss-leaf-open-idle (-> self state-object))
)
:post (the-as (function none :behavior plant-boss-leaf) rider-post)
:post rider-post
)
(defstate plant-boss-leaf-close (plant-boss-leaf)
@@ -842,7 +842,7 @@
)
)
)
:trans (the-as (function none :behavior plant-boss-leaf) rider-trans)
:trans rider-trans
:code (behavior ()
(case (-> self side)
((1)
@@ -864,7 +864,7 @@
)
(go plant-boss-leaf-idle #f)
)
:post (the-as (function none :behavior plant-boss-leaf) rider-post)
:post rider-post
)
(defstate plant-boss-leaf-die (plant-boss-leaf)
@@ -874,7 +874,7 @@
(suspend)
)
)
:post (the-as (function none :behavior plant-boss-leaf) ja-post)
:post ja-post
)
(defbehavior plant-boss-leaf-init plant-boss-leaf ((arg0 vector) (arg1 float) (arg2 int))
@@ -948,7 +948,7 @@
)
)
)
:post (the-as (function none :behavior plant-boss) ja-post)
:post ja-post
)
(defstate plant-boss-intro (plant-boss)
@@ -1037,7 +1037,7 @@
(set! (-> self snap-count) 0)
(go plant-boss-reset 0)
)
:post (the-as (function none :behavior plant-boss) ja-post)
:post ja-post
)
(defstate plant-boss-idle (plant-boss)
@@ -1404,9 +1404,9 @@
(send-event *camera* 'change-state cam-lookat 0)
(logior! (-> self skel status) (janim-status inited))
(ja-channel-push! 2 (seconds 0.1))
(ja :group! (-> self draw art-group data 18) :num! (identity (ja-aframe f30-1 0)))
(ja :group! plant-boss-main-plant-boss-kill-ja :num! (identity (ja-aframe f30-1 0)))
(ja :chan 1
:group! (-> self draw art-group data 19)
:group! plant-boss-main-plant-boss-kill-close-ja
:num! (identity (ja-aframe f30-1 0))
:frame-interp (-> self interp)
)
@@ -1683,7 +1683,7 @@
(defstate plant-boss-dead-bounce (plant-boss)
:event plant-boss-generic-event-handler
:trans (the-as (function none :behavior plant-boss) rider-trans)
:trans rider-trans
:code (behavior ((arg0 float))
(let ((v1-2 (-> self entity extra perm)))
(if (and (< 0.3 arg0) (and (not (handle->process (-> self money))) (< (-> v1-2 user-int8 1) 5)))
@@ -1709,7 +1709,7 @@
)
(go plant-boss-dead-idle)
)
:post (the-as (function none :behavior plant-boss) rider-post)
:post rider-post
)
(defmethod init-from-entity! plant-boss ((obj plant-boss) (arg0 entity-actor))
+2 -2
View File
@@ -46,7 +46,7 @@
)
)
)
:trans (the-as (function none :behavior plat-flip) rider-trans)
:trans rider-trans
:code (behavior ()
(local-vars (f30-0 float) (f30-1 float))
(let ((gp-0 #f))
@@ -98,7 +98,7 @@
)
)
)
:post (the-as (function none :behavior plat-flip) rider-post)
:post rider-post
)
(defmethod init-from-entity! plat-flip ((obj plat-flip) (arg0 entity-actor))
@@ -421,7 +421,7 @@
(go energydoor-closed-till-task)
)
)
:post (the-as (function none :behavior energydoor) transform-post)
:post transform-post
)
(defstate energydoor-opened (energydoor)
@@ -475,7 +475,7 @@
)
(go energydoor-opened)
)
:post (the-as (function none :behavior energydoor) transform-post)
:post transform-post
)
(defstate energydoor-closed-till-task (energydoor)
@@ -637,7 +637,7 @@
)
)
)
:post (the-as (function none :behavior energybase) ja-post)
:post ja-post
)
(defstate energybase-idle (energybase)
@@ -660,7 +660,7 @@
)
)
)
:post (the-as (function none :behavior energybase) ja-post)
:post ja-post
)
(defmethod init-from-entity! energybase ((obj energybase) (arg0 entity-actor))
@@ -804,7 +804,7 @@
)
)
)
:post (the-as (function none :behavior energyball) rider-post)
:post rider-post
)
(defun energyball-init ((arg0 energyball))
@@ -900,7 +900,7 @@
)
)
)
:post (the-as (function none :behavior energyarm) rider-post)
:post rider-post
)
(defstate energyarm-no-ball (energyarm)
@@ -948,7 +948,7 @@
)
)
)
:post (the-as (function none :behavior energyarm) rider-post)
:post rider-post
)
(defstate energyarm-fall (energyarm)
@@ -976,7 +976,7 @@
)
)
)
:post (the-as (function none :behavior energyarm) rider-post)
:post rider-post
)
(defstate energyarm-idle (energyarm)
@@ -1041,7 +1041,7 @@
)
)
)
:post (the-as (function none :behavior energyarm) rider-post)
:post rider-post
)
(defun energyarm-init ((arg0 energyarm))
@@ -1194,7 +1194,7 @@
)
)
)
:post (the-as (function none :behavior energyhub) ja-post)
:post ja-post
)
(defstate energyhub-stop (energyhub)
@@ -1271,7 +1271,7 @@
)
)
)
:post (the-as (function none :behavior energyhub) ja-post)
:post ja-post
)
(defstate energyhub-idle (energyhub)
@@ -1343,7 +1343,7 @@
)
)
)
:post (the-as (function none :behavior energyhub) ja-post)
:post ja-post
)
(defmethod init-from-entity! energyhub ((obj energyhub) (arg0 entity-actor))
@@ -1411,7 +1411,7 @@
)
)
)
:post (the-as (function none :behavior energylava) ja-post)
:post ja-post
)
(defmethod init-from-entity! energylava ((obj energylava) (arg0 entity-actor))
@@ -35,7 +35,7 @@
)
)
)
:post (the-as (function none :behavior lavabase) ja-post)
:post ja-post
)
(defmethod init-from-entity! lavabase ((obj lavabase) (arg0 entity-actor))
@@ -74,7 +74,7 @@
)
)
)
:post (the-as (function none :behavior lavafall) ja-post)
:post ja-post
)
(defmethod init-from-entity! lavafall ((obj lavafall) (arg0 entity-actor))
@@ -113,7 +113,7 @@
)
)
)
:post (the-as (function none :behavior lavashortcut) ja-post)
:post ja-post
)
(defmethod init-from-entity! lavashortcut ((obj lavashortcut) (arg0 entity-actor))
@@ -598,7 +598,7 @@
(suspend)
)
)
:post (the-as (function none :behavior darkecobarrel-mover) pusher-post)
:post pusher-post
)
(defbehavior darkecobarrel-mover-init-by-other darkecobarrel-mover ((arg0 res-lump) (arg1 float) (arg2 time-frame) (arg3 time-frame))
@@ -795,7 +795,7 @@
)
)
)
:post (the-as (function none :behavior lavafallsewera) ja-post)
:post ja-post
)
(defmethod init-from-entity! lavafallsewera ((obj lavafallsewera) (arg0 entity-actor))
@@ -833,7 +833,7 @@
)
)
)
:post (the-as (function none :behavior lavafallsewerb) ja-post)
:post ja-post
)
(defmethod init-from-entity! lavafallsewerb ((obj lavafallsewerb) (arg0 entity-actor))
@@ -1046,7 +1046,7 @@
)
)
)
:post (the-as (function none :behavior chainmine) ja-post)
:post ja-post
)
(defmethod init-from-entity! chainmine ((obj chainmine) (arg0 entity-actor))
@@ -1216,7 +1216,7 @@
)
)
)
:post (the-as (function none :behavior lavaballoon) transform-post)
:post transform-post
)
(defmethod init-from-entity! lavaballoon ((obj lavaballoon) (arg0 entity-actor))
@@ -1322,7 +1322,7 @@
)
)
)
:post (the-as (function none :behavior lavayellowtarp) ja-post)
:post ja-post
)
(defmethod init-from-entity! lavayellowtarp ((obj lavayellowtarp) (arg0 entity-actor))
+2 -5
View File
@@ -313,7 +313,7 @@ baby-spider-default-event-handler
)
(go baby-spider-resume)
)
:post (the-as (function none :behavior baby-spider) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defstate baby-spider-resume (baby-spider)
@@ -603,10 +603,7 @@ baby-spider-default-event-handler
(defstate nav-enemy-die (baby-spider)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior baby-spider)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:enter (behavior ()
(let ((v1-0 (-> self event-death)))
(if v1-0
@@ -520,10 +520,7 @@
)
(defstate dark-crystal-spawn-fuel-cell (dark-crystal)
:event (the-as
(function process int symbol event-message-block object :behavior dark-crystal)
process-drawable-fuel-cell-handler
)
:event process-drawable-fuel-cell-handler
:code (behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
(clear-collide-with-as (-> self root-override))
@@ -634,7 +634,7 @@
:code (behavior ()
0
)
:post (the-as (function none :behavior driller-lurker) transform-post)
:post transform-post
)
(defstate driller-lurker-idle-drilling (driller-lurker)
@@ -685,7 +685,7 @@
)
)
)
:post (the-as (function none :behavior driller-lurker) transform-post)
:post transform-post
)
(defstate driller-lurker-patrol (driller-lurker)
@@ -726,7 +726,7 @@
)
)
)
:post (the-as (function none :behavior driller-lurker) transform-post)
:post transform-post
)
(defstate driller-lurker-patrol-pause (driller-lurker)
@@ -782,7 +782,7 @@
)
(go driller-lurker-patrol)
)
:post (the-as (function none :behavior driller-lurker) transform-post)
:post transform-post
)
(defstate driller-lurker-chase (driller-lurker)
@@ -845,7 +845,7 @@
)
)
)
:post (the-as (function none :behavior driller-lurker) transform-post)
:post transform-post
)
(defstate driller-lurker-attack (driller-lurker)
@@ -887,7 +887,7 @@
)
)
)
:post (the-as (function none :behavior driller-lurker) transform-post)
:post transform-post
)
(defstate driller-lurker-jammed-standing (driller-lurker)
@@ -920,14 +920,11 @@
)
)
)
:post (the-as (function none :behavior driller-lurker) transform-post)
:post transform-post
)
(defstate driller-lurker-die (driller-lurker)
:event (the-as
(function process int symbol event-message-block object :behavior driller-lurker)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:code (behavior ()
(shut-down! (-> self neck))
(logclear! (-> self mask) (process-mask actor-pause))
@@ -944,7 +941,7 @@
)
(cleanup-for-death self)
)
:post (the-as (function none :behavior driller-lurker) ja-post)
:post ja-post
)
(defmethod relocate driller-lurker ((obj driller-lurker) (arg0 int))
+5 -5
View File
@@ -344,7 +344,7 @@
(ja :num! (seek!))
)
)
:post (the-as (function none :behavior gnawer-falling-segment) ja-post)
:post ja-post
)
(defbehavior gnawer-falling-segment-init-by-other gnawer-falling-segment ((arg0 gnawer) (arg1 vector) (arg2 vector))
@@ -908,7 +908,7 @@
)
)
)
:post (the-as (function none :behavior gnawer) transform-post)
:post transform-post
)
(defstate gnawer-retreat-into-post (gnawer)
@@ -926,7 +926,7 @@
(quaternion-identity! (-> self root-override quat))
(go gnawer-wait-to-run)
)
:post (the-as (function none :behavior gnawer) transform-post)
:post transform-post
)
(defstate gnawer-wait-to-run (gnawer)
@@ -1039,7 +1039,7 @@
(ja :group! gnawer-run-ja :num! min)
)
)
:post (the-as (function none :behavior gnawer) transform-post)
:post transform-post
)
(defstate gnawer-die (gnawer)
@@ -1080,7 +1080,7 @@
)
(go gnawer-dying-give-pickups)
)
:post (the-as (function none :behavior gnawer) ja-post)
:post ja-post
)
(defstate gnawer-dying-give-pickups (gnawer)
@@ -152,7 +152,7 @@
)
)
)
:post (the-as (function none :behavior cavecrusher) ja-post)
:post ja-post
)
(defmethod init-from-entity! cavecrusher ((obj cavecrusher) (arg0 entity-actor))
@@ -299,7 +299,7 @@
)
(go-virtual idle)
)
:post (the-as (function none :behavior cavetrapdoor) pusher-post)
:post pusher-post
)
(defmethod init-from-entity! cavetrapdoor ((obj cavetrapdoor) (arg0 entity-actor))
@@ -681,7 +681,7 @@
(suspend)
)
)
:post (the-as (function none :behavior cavespatula) rider-post)
:post rider-post
)
(defmethod init-from-entity! cavespatula ((obj cavespatula) (arg0 entity-actor))
@@ -791,7 +791,7 @@
(suspend)
)
)
:post (the-as (function none :behavior cavespatulatwo) rider-post)
:post rider-post
)
(defmethod init-from-entity! cavespatulatwo ((obj cavespatulatwo) (arg0 entity-actor))
@@ -253,7 +253,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider-egg) transform-post)
:post transform-post
)
(defstate mother-spider-egg-on-ground (mother-spider-egg)
@@ -321,7 +321,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider-egg) transform-post)
:post transform-post
)
(defstate mother-spider-egg-hatch (mother-spider-egg)
@@ -367,7 +367,7 @@
0
(go mother-spider-egg-die-exit)
)
:post (the-as (function none :behavior mother-spider-egg) transform-post)
:post transform-post
)
(defstate mother-spider-egg-die (mother-spider-egg)
@@ -398,7 +398,7 @@
)
(go mother-spider-egg-die-exit)
)
:post (the-as (function none :behavior mother-spider-egg) ja-post)
:post ja-post
)
(defstate mother-spider-egg-die-while-falling (mother-spider-egg)
@@ -437,7 +437,7 @@
)
(go mother-spider-egg-die-exit)
)
:post (the-as (function none :behavior mother-spider-egg) ja-post)
:post ja-post
)
(defstate mother-spider-egg-die-exit (mother-spider-egg)
+12 -12
View File
@@ -158,7 +158,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider-leg) ja-post)
:post ja-post
)
(defstate wait-for-children (mother-spider)
@@ -168,7 +168,7 @@
(suspend)
)
)
:post (the-as (function none :behavior mother-spider) ja-post)
:post ja-post
)
(defbehavior mother-spider-leg-init-by-other mother-spider-leg ((arg0 mother-spider) (arg1 vector) (arg2 vector) (arg3 vector))
@@ -952,7 +952,7 @@
(ja :group! mother-spider-lowering-ja :num! min)
)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defstate mother-spider-stop-traveling (mother-spider)
@@ -989,7 +989,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defstate mother-spider-tracking (mother-spider)
@@ -1084,7 +1084,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defstate mother-spider-hit-while-tracking (mother-spider)
@@ -1118,7 +1118,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defstate mother-spider-spit (mother-spider)
@@ -1192,7 +1192,7 @@
(go mother-spider-traveling (the-as uint 2))
)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defstate mother-spider-birthing (mother-spider)
@@ -1251,7 +1251,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defstate mother-spider-birth-baby (mother-spider)
@@ -1296,7 +1296,7 @@
)
(go mother-spider-birthing)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defmethod mother-spider-method-20 mother-spider ((obj mother-spider) (arg0 vector) (arg1 vector))
@@ -1411,7 +1411,7 @@
)
)
)
:post (the-as (function none :behavior mother-spider) transform-post)
:post transform-post
)
(defstate mother-spider-die-from-uppercut (mother-spider)
@@ -1463,7 +1463,7 @@
)
(go mother-spider-die-wait-for-children)
)
:post (the-as (function none :behavior mother-spider) ja-post)
:post ja-post
)
(defstate mother-spider-die (mother-spider)
@@ -1487,7 +1487,7 @@
)
(go mother-spider-die-wait-for-children)
)
:post (the-as (function none :behavior mother-spider) ja-post)
:post ja-post
)
(defstate mother-spider-die-wait-for-children (mother-spider)
+1 -1
View File
@@ -118,7 +118,7 @@
)
(go spiderwebs-idle)
)
:post (the-as (function none :behavior spiderwebs) transform-post)
:post transform-post
)
(defmethod init-from-entity! spiderwebs ((obj spiderwebs) (arg0 entity-actor))
+11 -35
View File
@@ -29,10 +29,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-idle (babak-with-cannon)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior babak-with-cannon)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
(if (and (and *target* (>= (-> self enemy-info idle-distance)
(vector-vector-distance (-> self collide-info trans) (-> *target* control trans))
@@ -53,15 +50,12 @@ nav-enemy-default-event-handler
)
(anim-loop)
)
:post (the-as (function none :behavior babak-with-cannon) #f)
:post #f
)
(defstate nav-enemy-patrol (babak-with-cannon)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior babak-with-cannon)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1))
(let ((f30-0 (- (-> (target-pos 0) y) (-> self collide-info trans y))))
@@ -92,10 +86,7 @@ nav-enemy-default-event-handler
)
(defstate babak-run-to-cannon (babak)
:event (the-as
(function process int symbol event-message-block object :behavior babak)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self nav destination-pos quad) (-> self entity extra trans quad))
@@ -172,10 +163,7 @@ nav-enemy-default-event-handler
)
(defstate babak-with-cannon-jump-onto-cannon (babak-with-cannon)
:event (the-as
(function process int symbol event-message-block object :behavior babak-with-cannon)
nav-enemy-jump-event-handler
)
:event nav-enemy-jump-event-handler
:exit (behavior ()
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
)
@@ -240,14 +228,11 @@ nav-enemy-default-event-handler
)
(go babak-with-cannon-shooting)
)
:post (the-as (function none :behavior babak-with-cannon) nav-enemy-jump-post)
:post nav-enemy-jump-post
)
(defstate babak-with-cannon-jump-off-cannon (babak-with-cannon)
:event (the-as
(function process int symbol event-message-block object :behavior babak-with-cannon)
nav-enemy-jump-event-handler
)
:event nav-enemy-jump-event-handler
:exit (behavior ()
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
)
@@ -272,14 +257,11 @@ nav-enemy-default-event-handler
)
(go-virtual nav-enemy-jump-land)
)
:post (the-as (function none :behavior babak-with-cannon) nav-enemy-jump-post)
:post nav-enemy-jump-post
)
(defstate babak-with-cannon-shooting (babak-with-cannon)
:event (the-as
(function process int symbol event-message-block object :behavior babak-with-cannon)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor 0)))
@@ -318,10 +300,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-die (babak-with-cannon)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior babak-with-cannon)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
(if (and *target* (= (-> *target* current-level name) 'beach))
(spool-push *art-control* "beachcam-cannon" 0 self -1.0)
@@ -339,10 +318,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-fuel-cell (babak-with-cannon)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior babak-with-cannon)
process-drawable-fuel-cell-handler
)
:event process-drawable-fuel-cell-handler
:code (behavior ()
(ja-channel-set! 0)
(clear-collide-with-as (-> self collide-info))
+2 -5
View File
@@ -742,7 +742,7 @@
)
(defstate balloonlurker-die (balloonlurker)
:event (the-as (function process int symbol event-message-block object :behavior balloonlurker) #f)
:event #f
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self vulnerable) #f)
@@ -849,10 +849,7 @@
)
(defstate balloonlurker-pilot-die (balloonlurker-pilot)
:event (the-as
(function process int symbol event-message-block object :behavior balloonlurker-pilot)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:code (behavior ()
(process-spawn
part-tracker
+8 -32
View File
@@ -154,10 +154,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-idle (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:exit (behavior ()
(bonelurker-set-large-bounds-sphere)
)
@@ -169,10 +166,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-patrol (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-channel-push! 1 (seconds 0.2))
((the-as (function none :behavior bonelurker) (-> (method-of-type nav-enemy nav-enemy-patrol) code)))
@@ -181,19 +175,13 @@ nav-enemy-default-event-handler
(defstate nav-enemy-notice (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (-> (method-of-type nav-enemy nav-enemy-notice) code)
)
(defstate nav-enemy-chase (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
((-> (method-of-type nav-enemy nav-enemy-chase) trans))
(if (and (not (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf6)))
@@ -270,19 +258,13 @@ nav-enemy-default-event-handler
(defstate nav-enemy-stop-chase (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (-> (method-of-type nav-enemy nav-enemy-stop-chase) code)
)
(defstate nav-enemy-stare (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(set! (-> self rotate-speed) 524288.0)
(set! (-> self turn-time) (seconds 0.2))
@@ -330,10 +312,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-give-up (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(set! (-> self rotate-speed) 524288.0)
(set! (-> self turn-time) (seconds 0.1))
@@ -382,10 +361,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-victory (bonelurker)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bonelurker)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (-> (method-of-type nav-enemy nav-enemy-victory) code)
)
+8 -8
View File
@@ -187,7 +187,7 @@
(suspend)
)
)
:post (the-as (function none :behavior keg) keg-post)
:post keg-post
)
(defstate keg-paddle-to-path (keg)
@@ -221,7 +221,7 @@
)
)
)
:post (the-as (function none :behavior keg) keg-post)
:post keg-post
)
(defstate keg-on-path (keg)
@@ -336,7 +336,7 @@
)
)
)
:post (the-as (function none :behavior keg) keg-post)
:post keg-post
)
(defstate keg-in-chute (keg)
@@ -375,16 +375,16 @@
)
)
)
:post (the-as (function none :behavior keg) keg-post)
:post keg-post
)
(defstate keg-die (keg)
:event (the-as (function process int symbol event-message-block object :behavior keg) #f)
:event #f
:code (behavior ()
(sound-stop (-> self sound-id))
(cleanup-for-death self)
)
:post (the-as (function none :behavior keg) transform-post)
:post transform-post
)
(defbehavior keg-init-by-other keg ((arg0 keg) (arg1 int))
@@ -457,7 +457,7 @@
(suspend)
)
)
:post (the-as (function none :behavior keg-conveyor) ja-post)
:post ja-post
)
(defstate keg-conveyor-paddle-idle (keg-conveyor-paddle)
@@ -522,7 +522,7 @@
)
)
)
:post (the-as (function none :behavior keg-conveyor-paddle) transform-post)
:post transform-post
)
(defbehavior keg-conveyor-paddle-init-by-other keg-conveyor-paddle ((arg0 keg-conveyor-paddle))
+18 -24
View File
@@ -1044,7 +1044,7 @@
(suspend)
)
)
:post (the-as (function none :behavior boatpaddle) ja-post)
:post ja-post
)
(defmethod init-from-entity! boatpaddle ((obj boatpaddle) (arg0 entity-actor))
@@ -1102,7 +1102,7 @@
(suspend)
)
)
:post (the-as (function none :behavior windturbine) ja-post)
:post ja-post
)
(defmethod init-from-entity! windturbine ((obj windturbine) (arg0 entity-actor))
@@ -1195,12 +1195,12 @@
(suspend)
)
)
:post (the-as (function none :behavior mis-bone-bridge) transform-post)
:post transform-post
)
(defstate mis-bone-bridge-bump (mis-bone-bridge)
:event mis-bone-bridge-event-handler
:trans (the-as (function none :behavior mis-bone-bridge) rider-trans)
:trans rider-trans
:code (behavior ()
(ja-no-eval :group! (-> self draw art-group data 6) :num! (seek!) :frame-num 0.0)
(until (ja-done? 0)
@@ -1209,12 +1209,12 @@
)
(go mis-bone-bridge-idle)
)
:post (the-as (function none :behavior mis-bone-bridge) rider-post)
:post rider-post
)
(defstate mis-bone-bridge-hit (mis-bone-bridge)
:event mis-bone-bridge-event-handler
:trans (the-as (function none :behavior mis-bone-bridge) rider-trans)
:trans rider-trans
:code (behavior ()
(+! (-> self hit-points) -1)
(if (zero? (-> self hit-points))
@@ -1227,11 +1227,11 @@
)
(go mis-bone-bridge-idle)
)
:post (the-as (function none :behavior mis-bone-bridge) rider-post)
:post rider-post
)
(defstate mis-bone-bridge-fall (mis-bone-bridge)
:trans (the-as (function none :behavior mis-bone-bridge) rider-trans)
:trans rider-trans
:code (behavior ((arg0 symbol))
(process-entity-status! self (entity-perm-status complete) #t)
(when (not arg0)
@@ -1259,7 +1259,7 @@
(suspend)
)
)
:post (the-as (function none :behavior mis-bone-bridge) rider-post)
:post rider-post
)
(defmethod init-from-entity! mis-bone-bridge ((obj mis-bone-bridge) (arg0 entity-actor))
@@ -1364,8 +1364,8 @@
)
)
)
:code (the-as (function none :behavior breakaway) anim-loop)
:post (the-as (function none :behavior breakaway) transform-post)
:code anim-loop
:post transform-post
)
(defun actor-wait-for-period ((arg0 time-frame))
@@ -1400,7 +1400,7 @@
)
)
)
:post (the-as (function none :behavior breakaway) rider-post)
:post rider-post
)
(defstate breakaway-fall (breakaway)
@@ -1420,7 +1420,7 @@
)
(cleanup-for-death self)
)
:post (the-as (function none :behavior breakaway) rider-post)
:post rider-post
)
(defmethod init! breakaway ((obj breakaway) (arg0 res-lump) (arg1 int))
@@ -1597,15 +1597,12 @@
(suspend)
)
)
:post (the-as (function none :behavior bone-platform) ja-post)
:post ja-post
)
(defstate rigid-body-platform-float (bone-platform)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior bone-platform)
rigid-body-platform-event-handler
)
:event rigid-body-platform-event-handler
:trans (behavior ()
(-> self entity extra trans y)
(cond
@@ -1633,7 +1630,7 @@
(suspend)
)
)
:post (the-as (function none :behavior bone-platform) rigid-body-platform-post)
:post rigid-body-platform-post
)
(defmethod rigid-body-platform-method-30 bone-platform ((obj bone-platform))
@@ -1835,14 +1832,11 @@
)
)
)
:code (the-as (function none :behavior boat-fuelcell) anim-loop)
:code anim-loop
)
(defstate boat-fuelcell-spawn (boat-fuelcell)
:event (the-as
(function process int symbol event-message-block object :behavior boat-fuelcell)
process-drawable-fuel-cell-handler
)
:event process-drawable-fuel-cell-handler
:code (behavior ()
(process-drawable-birth-fuel-cell (the-as entity #f) (the-as vector #f) #f)
(when (and *target* (-> self play-cutscene?))
@@ -67,7 +67,7 @@
(suspend)
)
)
:post (the-as (function none :behavior teetertotter) transform-post)
:post transform-post
)
(defstate teetertotter-launch (teetertotter)
@@ -120,7 +120,7 @@
)
(go teetertotter-idle)
)
:post (the-as (function none :behavior teetertotter) rider-post)
:post rider-post
)
(defstate teetertotter-bend (teetertotter)
@@ -132,7 +132,7 @@
)
(go teetertotter-idle)
)
:post (the-as (function none :behavior teetertotter) rider-post)
:post rider-post
)
(defmethod init-from-entity! teetertotter ((obj teetertotter) (arg0 entity-actor))
@@ -48,7 +48,7 @@
(suspend)
)
)
:post (the-as (function none :behavior silostep) ja-post)
:post ja-post
)
(defbehavior misty-camera-view silostep ()
@@ -98,7 +98,7 @@
(send-to-all-after (-> self link) 'trigger-rise)
(go silostep-rise #f)
)
:post (the-as (function none :behavior silostep) ja-post)
:post ja-post
)
(defstate silostep-rise (silostep)
@@ -120,7 +120,7 @@
(suspend)
)
)
:post (the-as (function none :behavior silostep) #f)
:post #f
)
(defmethod init-from-entity! silostep ((obj silostep) (arg0 entity-actor))
+8 -8
View File
@@ -820,7 +820,7 @@
)
(ja-channel-set! 0)
)
:post (the-as (function none :behavior mistycannon-missile) ja-post)
:post ja-post
)
(defstate mistycannon-missile-explode (mistycannon-missile)
@@ -911,7 +911,7 @@
(kill-and-free-particles (-> self part2))
(deactivate self)
)
:post (the-as (function none :behavior mistycannon-missile) ja-post)
:post ja-post
)
(defun mistycannon-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector))
@@ -1244,7 +1244,7 @@
(suspend)
)
)
:post (the-as (function none :behavior mistycannon) rider-post)
:post rider-post
)
(deftype quadratic-solution (structure)
@@ -1434,7 +1434,7 @@
(suspend)
)
)
:post (the-as (function none :behavior mistycannon) rider-post)
:post rider-post
)
(defstate mistycannon-waiting-for-player (mistycannon)
@@ -1505,7 +1505,7 @@
(suspend)
)
)
:post (the-as (function none :behavior mistycannon) rider-post)
:post rider-post
)
(defstate cam-mistycannon (camera-slave)
@@ -1624,7 +1624,7 @@
)
)
)
:post (the-as (function none :behavior mistycannon) rider-post)
:post rider-post
)
(defstate mistycannon-waiting-for-player-to-fuck-off (mistycannon)
@@ -1647,7 +1647,7 @@
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
)
:trans (the-as (function none :behavior mistycannon) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(suspend)
@@ -1657,7 +1657,7 @@
)
)
)
:post (the-as (function none :behavior mistycannon) rider-post)
:post rider-post
)
(defmethod init-from-entity! mistycannon ((obj mistycannon) (arg0 entity-actor))
+6 -18
View File
@@ -176,10 +176,7 @@
nav-enemy-default-event-handler
(defstate muse-idle (muse)
:event (the-as
(function process int symbol event-message-block object :behavior muse)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:trans (behavior ()
(seek! (-> self sprint-distance) 61440.0 (* 8192.0 (-> *display* seconds-per-frame)))
(if (and *target* (>= 102400.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))))
@@ -210,15 +207,12 @@ nav-enemy-default-event-handler
)
)
)
:post (the-as (function none :behavior muse) ja-post)
:post ja-post
)
(defstate nav-enemy-chase (muse)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior muse)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
)
@@ -285,10 +279,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-jump (muse)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior muse)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:enter (behavior ()
((-> (method-of-type nav-enemy nav-enemy-jump) enter))
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags standing-jump))
@@ -298,10 +289,7 @@ nav-enemy-default-event-handler
(defstate nav-enemy-jump-land (muse)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior muse)
nav-enemy-default-event-handler
)
:event nav-enemy-default-event-handler
:code (behavior ()
(ja-no-eval :num! (seek!))
(ja-channel-push! 1 (seconds 0.075))
@@ -316,7 +304,7 @@ nav-enemy-default-event-handler
)
(defstate muse-caught (muse)
:event (the-as (function process int symbol event-message-block object :behavior muse) #f)
:event #f
:trans (behavior ()
(spool-push *art-control* (-> self anim name) 0 self -1.0)
)
@@ -560,7 +560,7 @@
)
(defstate quicksandlurker-idle (quicksandlurker)
:event (the-as (function process int symbol event-message-block object :behavior quicksandlurker) #f)
:event #f
:enter (behavior ()
(logior! (-> self draw status) (draw-status hidden))
)
@@ -579,7 +579,7 @@
(suspend)
)
)
:post (the-as (function none :behavior quicksandlurker) ja-post)
:post ja-post
)
(defstate quicksandlurker-wait (quicksandlurker)
@@ -850,10 +850,7 @@
)
(defstate quicksandlurker-die (quicksandlurker)
:event (the-as
(function process int symbol event-message-block object :behavior quicksandlurker)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:code (behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
(ja-channel-push! 1 (seconds 0.2))
+6 -6
View File
@@ -155,7 +155,7 @@
(suspend)
)
)
:post (the-as (function none :behavior plunger-lurker) ja-post)
:post ja-post
)
(defstate plunger-lurker-flee (plunger-lurker)
@@ -210,7 +210,7 @@
(suspend)
)
)
:post (the-as (function none :behavior plunger-lurker) ja-post)
:post ja-post
)
(defstate plunger-lurker-idle (plunger-lurker)
@@ -238,7 +238,7 @@
)
)
)
:post (the-as (function none :behavior plunger-lurker) ja-post)
:post ja-post
)
(defstate plunger-lurker-die (plunger-lurker)
@@ -737,7 +737,7 @@
)
)
)
:post (the-as (function none :behavior flying-lurker) ja-post)
:post ja-post
)
(defbehavior flying-lurker-handler flying-lurker ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -958,7 +958,7 @@
)
)
)
:post (the-as (function none :behavior flying-lurker) ja-post)
:post ja-post
)
(defstate flying-lurker-clone (flying-lurker)
@@ -1181,7 +1181,7 @@
)
)
)
:post (the-as (function none :behavior flying-lurker) ja-post)
:post ja-post
)
(defmethod init-from-entity! flying-lurker ((obj flying-lurker) (arg0 entity-actor))
+8 -11
View File
@@ -486,15 +486,12 @@
(suspend)
)
)
:post (the-as (function none :behavior ogre-plat) ja-post)
:post ja-post
)
(defstate rigid-body-platform-float (ogre-plat)
:virtual #t
:event (the-as
(function process int symbol event-message-block object :behavior ogre-plat)
rigid-body-platform-event-handler
)
:event rigid-body-platform-event-handler
:trans (behavior ()
(cond
((or (not *target*) (< (-> self info idle-distance)
@@ -519,7 +516,7 @@
(suspend)
)
)
:post (the-as (function none :behavior ogre-plat) rigid-body-platform-post)
:post rigid-body-platform-post
)
(defmethod rigid-body-platform-method-30 ogre-plat ((obj ogre-plat))
@@ -896,7 +893,7 @@
)
(go ogre-bridge-activated)
)
:post (the-as (function none :behavior ogre-bridge) rider-post)
:post rider-post
)
(defstate ogre-bridge-activated (ogre-bridge)
@@ -922,7 +919,7 @@
(suspend)
)
)
:post (the-as (function none :behavior ogre-bridge) ja-post)
:post ja-post
)
(defstate ogre-bridge-break (ogre-bridge)
@@ -959,7 +956,7 @@
)
(go ogre-bridge-idle)
)
:post (the-as (function none :behavior ogre-bridge) rider-post)
:post rider-post
)
(define *ogre-bridge-joint-array* (new 'static 'boxed-array :type uint8 #x4 #x9 #xc #x11 #x7 #xa #xf #x12))
@@ -1264,7 +1261,7 @@
(suspend)
)
)
:post (the-as (function none :behavior ogre-lava) #f)
:post #f
)
(defstate water-vol-startup (ogre-lava)
@@ -1428,7 +1425,7 @@
(cleanup-for-death self)
(deactivate self)
)
:post (the-as (function none :behavior shortcut-boulder) ja-post)
:post ja-post
)
(defstate shortcut-boulder-idle (shortcut-boulder)
+12 -15
View File
@@ -134,7 +134,7 @@
)
(cleanup-for-death self)
)
:post (the-as (function none :behavior ogreboss-missile) transform-post)
:post transform-post
)
(defstate ogreboss-missile-seek (ogreboss-missile)
@@ -350,7 +350,7 @@
)
(cleanup-for-death self)
)
:post (the-as (function none :behavior ogreboss-missile) ja-post)
:post ja-post
)
(deftype ogreboss-missile-init-data (structure)
@@ -558,7 +558,7 @@
(suspend)
)
)
:post (the-as (function none :behavior ogreboss-super-boulder) transform-post)
:post transform-post
)
(defbehavior ogreboss-super-boulder-impact-effect ogreboss-super-boulder ()
@@ -620,7 +620,7 @@
)
(go ogreboss-super-boulder-land)
)
:post (the-as (function none :behavior ogreboss-super-boulder) transform-post)
:post transform-post
)
(defstate ogreboss-super-boulder-hit (ogreboss-super-boulder)
@@ -630,7 +630,7 @@
(ogreboss-super-boulder-play-hit-anim)
(go ogreboss-super-boulder-land)
)
:post (the-as (function none :behavior ogreboss-super-boulder) transform-post)
:post transform-post
)
(defstate ogreboss-super-boulder-die (ogreboss-super-boulder)
@@ -645,7 +645,7 @@
)
(cleanup-for-death self)
)
:post (the-as (function none :behavior ogreboss-super-boulder) transform-post)
:post transform-post
)
(defstate ogreboss-super-boulder-land (ogreboss-super-boulder)
@@ -1120,7 +1120,7 @@
(ogreboss-reset-camera)
(ogreboss-idle-loop)
)
:post (the-as (function none :behavior ogreboss) ja-post)
:post ja-post
)
(defstate ogreboss-intro (ogreboss)
@@ -1161,7 +1161,7 @@
(set-setting! 'music 'ogreboss 0.0 0)
(go ogreboss-wait-for-player)
)
:post (the-as (function none :behavior ogreboss) ja-post)
:post ja-post
)
(defstate ogreboss-wait-for-player (ogreboss)
@@ -1178,7 +1178,7 @@
:code (behavior ()
(ogreboss-idle-loop)
)
:post (the-as (function none :behavior ogreboss) ja-post)
:post ja-post
)
(defun ogreboss-debug-adjust-difficulty ()
@@ -1839,7 +1839,7 @@
(set! (-> self bridge-assembled) #f)
(go ogreboss-stage1)
)
:post (the-as (function none :behavior ogreboss) transform-post)
:post transform-post
)
(defstate ogreboss-stage3-hit (ogreboss)
@@ -1862,7 +1862,7 @@
)
(go ogreboss-stage1)
)
:post (the-as (function none :behavior ogreboss) transform-post)
:post transform-post
)
(defbehavior ogreboss-trigger-steps ogreboss ()
@@ -1908,10 +1908,7 @@
)
(defstate ogreboss-dead (ogreboss)
:event (the-as
(function process int symbol event-message-block object :behavior ogreboss)
process-drawable-fuel-cell-handler
)
:event process-drawable-fuel-cell-handler
:code (behavior ()
(remove-setting! 'music)
(ogreboss-reset-camera)
+5 -5
View File
@@ -48,7 +48,7 @@
(the-as racer ((method-of-type process-drawable relocate) obj arg0))
)
(defskelgroup *racer-sg* racer racer-geo-jg 3
(defskelgroup *racer-sg* racer racer-geo-jg racer-racer-idle-ja
((racer-geo-mg (meters 999999)))
:bounds (static-spherem 0 0 0 3.5)
:shadow racer-shadow-mg
@@ -124,7 +124,7 @@
(case (current-status gp-0)
(((task-status need-reward-speech))
(ja-channel-set! 1)
(ja :group! (-> self draw art-group data 3))
(ja :group! racer-racer-idle-ja)
(set! (-> self root-override root-prim prim-core action) (collide-action solid attackable-unused))
(set! (-> self root-override root-prim prim-core offense) (collide-offense indestructible))
(ja-post)
@@ -209,7 +209,7 @@
:exit (-> (method-of-type racer wait-for-start) exit)
:code (behavior ()
(ja-channel-set! 1)
(ja :group! (-> self draw art-group data 3))
(ja :group! racer-racer-idle-ja)
(set! (-> self root-override root-prim prim-core action) (collide-action solid attackable-unused))
(set! (-> self root-override root-prim prim-core offense) (collide-offense indestructible))
0.0
@@ -253,7 +253,7 @@
)
)
)
:post (the-as (function none :behavior racer) ja-post)
:post ja-post
)
(defstate pickup (racer)
@@ -262,7 +262,7 @@
(case message
(('draw)
(ja-channel-set! 1)
(ja :group! (-> self draw art-group data 3))
(ja :group! racer-racer-idle-ja)
(set! (-> self root-override root-prim prim-core action) (collide-action solid attackable-unused))
(set! (-> self root-override root-prim prim-core offense) (collide-offense indestructible))
(transform-post)
+3 -3
View File
@@ -108,7 +108,7 @@
)
)
)
:post (the-as (function none :behavior spider-egg) ja-post)
:post ja-post
)
(defstate spider-egg-hatch (spider-egg)
@@ -148,7 +148,7 @@
(suspend)
)
)
:post (the-as (function none :behavior spider-egg) ja-post)
:post ja-post
)
(defstate spider-egg-die (spider-egg)
@@ -206,7 +206,7 @@
(suspend)
)
)
:post (the-as (function none :behavior spider-egg) ja-post)
:post ja-post
)
(defmethod init-from-entity! spider-egg ((obj spider-egg) (arg0 entity-actor))
@@ -493,7 +493,7 @@
)
)
)
:post (the-as (function none :behavior fleeing-nav-enemy) nav-enemy-travel-post)
:post nav-enemy-travel-post
)
(define *lightning-mole-hole* (new 'static 'vector :x -241664.0 :y 106496.0 :z -6393856.0))
@@ -596,7 +596,7 @@
(set! (-> self speed-adjust) 1.0)
)
:code lightning-mole-run-code
:post (the-as (function none :behavior lightning-mole) ja-post)
:post ja-post
)
(defstate lightning-mole-debug-run (lightning-mole)
@@ -791,13 +791,13 @@
)
(go-virtual nav-enemy-chase)
)
:post (the-as (function none :behavior lightning-mole) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defstate nav-enemy-stop-chase (lightning-mole)
:virtual #t
:code lightning-mole-run-code
:post (the-as (function none :behavior lightning-mole) fleeing-nav-enemy-chase-post)
:post fleeing-nav-enemy-chase-post
)
(defstate nav-enemy-chase (lightning-mole)
@@ -864,7 +864,7 @@
((-> (method-of-type fleeing-nav-enemy nav-enemy-chase) trans))
)
:code lightning-mole-run-code
:post (the-as (function none :behavior lightning-mole) fleeing-nav-enemy-chase-post)
:post fleeing-nav-enemy-chase-post
)
(defmethod attack-handler lightning-mole ((obj lightning-mole) (arg0 process) (arg1 event-message-block))
@@ -1198,7 +1198,7 @@
(suspend)
)
)
:post (the-as (function none :behavior peeper) ja-post)
:post ja-post
)
(defstate peeper-hide (peeper)
@@ -1214,7 +1214,7 @@
(logior! (-> self draw status) (draw-status hidden))
(go peeper-wait)
)
:post (the-as (function none :behavior peeper) ja-post)
:post ja-post
)
(defstate peeper-down (peeper)
@@ -1260,7 +1260,7 @@
)
(go peeper-up)
)
:post (the-as (function none :behavior peeper) ja-post)
:post ja-post
)
(defstate peeper-up (peeper)
@@ -1292,7 +1292,7 @@
(go peeper-down)
)
)
:post (the-as (function none :behavior peeper) ja-post)
:post ja-post
)
(defmethod init-from-entity! peeper ((obj peeper) (arg0 entity-actor))
+18 -18
View File
@@ -106,7 +106,7 @@
)
(defstate pusher-idle (pusher)
:trans (the-as (function none :behavior pusher) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(let ((f0-0 -1.0))
@@ -124,7 +124,7 @@
(suspend)
)
)
:post (the-as (function none :behavior pusher) rider-post)
:post rider-post
)
(defmethod init-from-entity! pusher ((obj pusher) (arg0 entity-actor))
@@ -143,7 +143,7 @@
)
(defstate gorge-pusher-idle (gorge-pusher)
:trans (the-as (function none :behavior gorge-pusher) rider-trans)
:trans rider-trans
:code (behavior ()
(loop
(if (task-closed? (game-task rolling-race) (task-status need-introduction))
@@ -153,7 +153,7 @@
(suspend)
)
)
:post (the-as (function none :behavior gorge-pusher) rider-post)
:post rider-post
)
(defmethod init-from-entity! gorge-pusher ((obj gorge-pusher) (arg0 entity-actor))
@@ -273,7 +273,7 @@
)
(go dark-plant-idle)
)
:post (the-as (function none :behavior dark-plant) ja-post)
:post ja-post
)
(defstate dark-plant-gone (dark-plant)
@@ -307,7 +307,7 @@
)
)
)
:post (the-as (function none :behavior dark-plant) ja-post)
:post ja-post
)
(defstate dark-plant-death (dark-plant)
@@ -322,7 +322,7 @@
)
(go dark-plant-gone)
)
:post (the-as (function none :behavior dark-plant) ja-post)
:post ja-post
)
(defstate dark-plant-idle (dark-plant)
@@ -376,7 +376,7 @@
)
)
)
:post (the-as (function none :behavior dark-plant) ja-post)
:post ja-post
)
(defstate dark-plant-startup (dark-plant)
@@ -397,7 +397,7 @@
)
(go dark-plant-idle)
)
:post (the-as (function none :behavior dark-plant) ja-post)
:post ja-post
)
(defpartgroup group-dark-plant
@@ -505,7 +505,7 @@
)
)
)
:post (the-as (function none :behavior happy-plant) ja-post)
:post ja-post
)
(defstate happy-plant-opening (happy-plant)
@@ -575,7 +575,7 @@
(restore-collide-with-as (-> self root-override))
(go happy-plant-opened)
)
:post (the-as (function none :behavior happy-plant) transform-post)
:post transform-post
)
(defstate happy-plant-init (happy-plant)
@@ -606,7 +606,7 @@
)
)
)
:post (the-as (function none :behavior happy-plant) ja-post)
:post ja-post
)
(defmethod init-from-entity! happy-plant ((obj happy-plant) (arg0 entity-actor))
@@ -795,7 +795,7 @@
)
)
)
:post (the-as (function none :behavior rolling-start) ja-post)
:post ja-post
)
(defstate rolling-start-whole (rolling-start)
@@ -820,7 +820,7 @@
)
)
)
:post (the-as (function none :behavior rolling-start) ja-post)
:post ja-post
)
(defbehavior rolling-start-init-by-other rolling-start ((arg0 vector) (arg1 float))
@@ -944,7 +944,7 @@
)
(defstate gorge-abort-idle (gorge-abort)
:trans (the-as (function none :behavior gorge-abort) gorge-trans)
:trans gorge-trans
:code (behavior ()
(loop
(suspend)
@@ -964,7 +964,7 @@
)
(defstate gorge-finish-idle (gorge-finish)
:trans (the-as (function none :behavior gorge-finish) gorge-trans)
:trans gorge-trans
:code (behavior ()
(loop
(suspend)
@@ -1251,7 +1251,7 @@
(send-event (handle->process (-> self start-banner)) 'unbreak)
(remove-setting! 'sound-flava)
)
:trans (the-as (function none :behavior gorge-start) gorge-trans)
:trans gorge-trans
:code (behavior ()
(set! (-> self state-time) (-> *display* game-frame-counter))
(loop
@@ -1268,7 +1268,7 @@
)
(defstate gorge-start-ready (gorge-start)
:trans (the-as (function none :behavior gorge-start) gorge-trans)
:trans gorge-trans
:code (behavior ()
(loop
(suspend)
@@ -899,7 +899,7 @@
)
)
)
:post (the-as (function none :behavior race-ring) ja-post)
:post ja-post
)
(defstate race-ring-wait (race-ring)
+10 -13
View File
@@ -9,7 +9,7 @@
;; DECOMP BEGINS
(defstate fuel-cell-spline-slider (fuel-cell)
:trans (the-as (function none :behavior fuel-cell) hide-hud-quick)
:trans hide-hud-quick
:code (behavior ((arg0 handle) (arg1 float) (arg2 float))
(logclear! (-> self mask) (process-mask actor-pause))
(ja :group! (-> self draw art-group data 2))
@@ -313,7 +313,7 @@
)
)
)
:post (the-as (function none :behavior robber) ja-post)
:post ja-post
)
(defstate robber-dead (robber)
@@ -324,10 +324,7 @@
)
(defstate robber-die (robber)
:event (the-as
(function process int symbol event-message-block object :behavior robber)
process-drawable-death-event-handler
)
:event process-drawable-death-event-handler
:code (behavior ()
(let ((gp-0 #t))
(when (robber-task-complete?)
@@ -389,7 +386,7 @@
)
(go robber-dead)
)
:post (the-as (function none :behavior robber) transform-post)
:post transform-post
)
(defstate robber-got-away (robber)
@@ -424,7 +421,7 @@
(suspend)
)
)
:post (the-as (function none :behavior robber) transform-post)
:post transform-post
)
(defstate robber-tired (robber)
@@ -478,7 +475,7 @@
)
)
)
:post (the-as (function none :behavior robber) transform-post)
:post transform-post
)
(defstate robber-flee (robber)
@@ -546,7 +543,7 @@
)
)
)
:post (the-as (function none :behavior robber) transform-post)
:post transform-post
)
(defstate robber-idle (robber)
@@ -573,7 +570,7 @@
)
)
)
:post (the-as (function none :behavior robber) transform-post)
:post transform-post
)
(defstate robber-initial-notice (robber)
@@ -615,7 +612,7 @@
(go robber-flee)
)
)
:post (the-as (function none :behavior robber) transform-post)
:post transform-post
)
(defstate robber-initial (robber)
@@ -641,7 +638,7 @@
)
)
)
:post (the-as (function none :behavior robber) transform-post)
:post transform-post
)
(defmethod init-from-entity! robber ((obj robber) (arg0 entity-actor))
+12 -12
View File
@@ -806,7 +806,7 @@
(suspend)
)
)
:post (the-as (function none :behavior ice-cube) nav-enemy-falling-post)
:post nav-enemy-falling-post
)
(defstate ice-cube-appear-land (ice-cube)
@@ -829,7 +829,7 @@
(go-virtual nav-enemy-idle)
)
)
:post (the-as (function none :behavior ice-cube) ja-post)
:post ja-post
)
(defstate nav-enemy-idle (ice-cube)
@@ -870,16 +870,16 @@
(defstate nav-enemy-notice (ice-cube)
:virtual #t
:enter (the-as (function none :behavior ice-cube) #f)
:exit (the-as (function none :behavior ice-cube) #f)
:trans (the-as (function none :behavior ice-cube) #f)
:enter #f
:exit #f
:trans #f
:code (behavior ()
(nav-enemy-method-57 self)
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
(logclear! (-> self mask) (process-mask actor-pause))
(go ice-cube-face-player)
)
:post (the-as (function none :behavior ice-cube) #f)
:post #f
)
(defstate ice-cube-face-player (ice-cube)
@@ -969,7 +969,7 @@
)
(go ice-cube-become-mean)
)
:post (the-as (function none :behavior ice-cube) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defstate ice-cube-become-mean (ice-cube)
@@ -994,7 +994,7 @@
)
(go ice-cube-mean-turn-to-charge)
)
:post (the-as (function none :behavior ice-cube) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defmethod nav-enemy-method-54 ice-cube ((obj ice-cube) (arg0 vector))
@@ -1102,7 +1102,7 @@
)
(go ice-cube-mean-charge)
)
:post (the-as (function none :behavior ice-cube) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defstate ice-cube-mean-charge (ice-cube)
@@ -1259,7 +1259,7 @@
(ja :chan 1 :num! (chan 0) :frame-interp (-> self anim-blend))
)
)
:post (the-as (function none :behavior ice-cube) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defstate ice-cube-mean-charge-done (ice-cube)
@@ -1290,7 +1290,7 @@
)
(go ice-cube-tired)
)
:post (the-as (function none :behavior ice-cube) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defstate ice-cube-tired (ice-cube)
@@ -1332,7 +1332,7 @@
)
)
)
:post (the-as (function none :behavior ice-cube) nav-enemy-simple-post)
:post nav-enemy-simple-post
)
(defstate ice-cube-shatter (ice-cube)
+2 -2
View File
@@ -127,7 +127,7 @@
(suspend)
)
)
:post (the-as (function none :behavior snow-ball-shadow) ja-post)
:post ja-post
)
(defbehavior snow-ball-shadow-init-by-other snow-ball-shadow ()
@@ -395,7 +395,7 @@
(suspend)
)
)
:post (the-as (function none :behavior snow-ball-roller) transform-post)
:post transform-post
)
(defbehavior snow-ball-roller-init-by-other snow-ball-roller ((arg0 entity-actor) (arg1 snow-ball) (arg2 float) (arg3 int) (arg4 (inline-array snow-ball-junction)))

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