better decomp of set-subtask-hook!, sub-task-list array and *-setting! macros (#2654)

Improves code readability considerably.
This commit is contained in:
ManDude
2023-05-16 23:08:35 +01:00
committed by GitHub
parent 263f4caaf9
commit 0dccd048ef
229 changed files with 10526 additions and 11420 deletions
+1
View File
@@ -1240,6 +1240,7 @@ class DerefToken {
return m_kind == Kind::FIELD_NAME && m_name == name;
}
bool is_int() const { return m_kind == Kind::INTEGER_CONSTANT; }
bool is_int(int x) const { return m_kind == Kind::INTEGER_CONSTANT && m_int_constant == x; }
bool is_expr() const { return m_kind == Kind::INTEGER_EXPRESSION; }
+91 -16
View File
@@ -1,3 +1,6 @@
#include <unordered_map>
#include <unordered_set>
#include "Form.h"
#include "FormStack.h"
#include "GenericElementMatcher.h"
@@ -3307,11 +3310,27 @@ void FunctionCallElement::update_from_stack(const Env& env,
ASSERT(head_obj.is_symbol("get-art-by-name-method"));
head = pool.form<ConstantTokenElement>("get-art-by-name");
} else {
if (head_obj.is_symbol() &&
tp_type.method_from_type().base_type() == "setting-control" &&
arg_forms.at(0)->to_form(env).is_symbol("*setting-control*") &&
arg_forms.size() > 1) {
if (head_obj.is_symbol("set-subtask-hook!")) {
// change the integer argument to a constant.
auto arg2o = arg_forms.at(2)->to_form(env);
if (arg2o.is_int()) {
int hook = arg2o.as_int();
static const std::vector<std::string> hook_names = {
"TASK_MANAGER_INIT_HOOK", "TASK_MANAGER_CLEANUP_HOOK",
"TASK_MANAGER_UPDATE_HOOK", "TASK_MANAGER_CODE_HOOK",
"TASK_MANAGER_COMPLETE_HOOK", "TASK_MANAGER_FAIL_HOOK",
"TASK_MANAGER_EVENT_HOOK"};
if (hook >= 0 && hook < hook_names.size()) {
arg_forms.at(2) = pool.alloc_single_element_form<ConstantTokenElement>(
arg_forms.at(2)->parent_element, hook_names.at(hook));
}
}
} else if (head_obj.is_symbol() &&
tp_type.method_from_type().base_type() == "setting-control" &&
arg_forms.at(0)->to_form(env).is_symbol("*setting-control*") &&
arg_forms.size() > 1) {
auto arg1_reg = get_form_reg_acc(arg_forms.at(1));
bool has_params = true;
if (arg1_reg && arg1_reg->reg().is_s6()) {
std::string new_head;
if (head_obj.is_symbol("add-setting")) {
@@ -3320,6 +3339,7 @@ void FunctionCallElement::update_from_stack(const Env& env,
new_head = "set-setting!";
} else if (head_obj.is_symbol("remove-setting")) {
new_head = "remove-setting!";
has_params = false;
}
if (!new_head.empty()) {
auto oldp = head->parent_element;
@@ -3327,24 +3347,70 @@ void FunctionCallElement::update_from_stack(const Env& env,
head->parent_element = oldp;
arg_forms.erase(arg_forms.begin());
arg_forms.erase(arg_forms.begin());
if (arg_forms.size() > 3) {
if (has_params) {
auto argset = arg_forms.at(0)->to_string(env);
argset = argset.substr(1);
auto argsym = arg_forms.at(1)->to_string(env);
// convert the float param
if (env.version == GameVersion::Jak2) {
static const std::unordered_set<std::string> use_degrees_settings = {
"matrix-blend-max-angle",
"fov",
};
static const std::unordered_set<std::string> use_meters_settings = {
"string-spline-max-move",
"string-spline-max-move-player",
"string-spline-accel",
"string-spline-accel-player",
"string-max-length",
"string-min-length",
"string-max-height",
"string-min-height",
"gun-max-height",
"gun-min-height",
"head-offset",
"foot-offset",
"extra-follow-height",
"target-height",
};
auto argf = arg_forms.at(2);
arg_forms.at(2) = try_cast_simplify(argf, TypeSpec("float"), pool, env, true);
if (argsym != "'rel") {
if (use_degrees_settings.find(argset) != use_degrees_settings.end()) {
arg_forms.at(2) = try_cast_simplify(arg_forms.at(2), TypeSpec("degrees"),
pool, env, true);
} else if (use_meters_settings.find(argset) != use_meters_settings.end()) {
arg_forms.at(2) = try_cast_simplify(arg_forms.at(2), TypeSpec("meters"),
pool, env, true);
}
}
arg_forms.at(2)->parent_element = argf->parent_element;
}
// convert the int param
static const std::unordered_map<std::string, std::string> use_bitenum_settings =
{
{"process-mask", "process-mask"},
{"features", "game-feature"},
{"slave-options", "cam-slave-options"},
{"minimap", "minimap-flag"},
{"task-mask", "task-mask"},
};
static const std::unordered_map<std::string, std::string> use_enum_settings = {
{"sound-flava", "music-flava"},
{"exclusive-task", "game-task"},
};
auto argi = arg_forms.at(3);
auto argi_o = argi->to_form(env);
if (argi_o.is_int()) {
auto argset = arg_forms.at(0)->to_string(env);
if (argset == "'process-mask") {
auto en = env.dts->ts.try_enum_lookup("process-mask");
if (use_bitenum_settings.find(argset) != use_bitenum_settings.end()) {
auto en = env.dts->ts.try_enum_lookup(use_bitenum_settings.at(argset));
if (en) {
arg_forms.at(3) =
cast_to_bitfield_enum(env.dts->ts.try_enum_lookup("process-mask"),
pool, env, argi_o.as_int());
arg_forms.at(3) = cast_to_bitfield_enum(en, pool, env, argi_o.as_int());
}
} else if (argset == "'sound-flava") {
auto en = env.dts->ts.try_enum_lookup("music-flava");
} else if (use_enum_settings.find(argset) != use_enum_settings.end()) {
auto en = env.dts->ts.try_enum_lookup(use_enum_settings.at(argset));
if (en) {
arg_forms.at(3) =
cast_to_int_enum(env.dts->ts.try_enum_lookup("music-flava"), pool,
env, argi_o.as_int());
arg_forms.at(3) = cast_to_int_enum(en, pool, env, argi_o.as_int());
}
}
}
@@ -3836,6 +3902,15 @@ void DerefElement::update_from_stack(const Env& env,
return;
}
auto as_simple_expr = m_base->try_as_element<SimpleExpressionElement>();
if (env.version == GameVersion::Jak2 && as_simple_expr && as_simple_expr->expr().is_identity() &&
as_simple_expr->expr().get_arg(0).is_sym_val() &&
as_simple_expr->expr().get_arg(0).get_str() == "*game-info*" && m_tokens.size() >= 2 &&
m_tokens.at(0).is_field_name("sub-task-list") && m_tokens.at(1).is_int()) {
m_tokens.at(1) = DerefToken::make_int_expr(cast_to_int_enum(
env.dts->ts.try_enum_lookup("game-task-node"), pool, env, m_tokens.at(1).int_constant()));
}
result->push_back(this);
}
+5 -5
View File
@@ -7800,7 +7800,7 @@
(subtitle symbol :offset-assert 276)
(borrow pair)
(doorway symbol)
(gen symbol)
(gem symbol)
(half-speed symbol)
(gun-buoy symbol)
(double-jump symbol)
@@ -9647,7 +9647,7 @@
(say 2)
(talk 3)
(show 4)
(shade 5)
(trade 5)
(play 6)
(menu 7)
)
@@ -9833,7 +9833,7 @@
(complete-hook (function object))
(fail-hook (function object))
(event-hook (function process int symbol event-message-block object))
(hooks (function object) 7 :overlay-at init-hook) ;; added, likely hidden
(hooks function 7 :overlay-at init-hook) ;; added, likely hidden
(final-node game-task-node)
(time-limit int32)
(sphere-count int8)
@@ -13107,7 +13107,7 @@
(give (_type_ symbol float handle) float 10)
(task-complete? (_type_ game-task) symbol 11)
(subtask-index-by-name (_type_ string) int 12)
(set-subtask-hook! (_type_ int int (function object :behavior task-manager)) (function object :behavior task-manager) 13)
(set-subtask-hook! (_type_ game-task-node int function) function 13)
(actor-perm (_type_ actor-id) entity-perm 14)
(task-perm-by-index (_type_ int) entity-perm 15)
(copy-perms-from-level! (_type_ level) int 16)
@@ -30888,7 +30888,7 @@
(define-extern draw-decoration-load-save (function menu-option font-context float int pointer))
(define-extern sort-task-node-result (function int none))
(define-extern find-mission-text-at-index (function int game-task-node-info))
(define-extern draw-secret-list (function secret-item-option progress font-context int symbol float pointer))
(define-extern draw-secret-list (function secret-item-option progress font-context int symbol float none))
(define-extern draw-highscore-icon (function menu-highscores-option uint int int float pointer))
(define-extern draw-highscore-cup "First int is an enum" (function texture-page int int int float float pointer))
(define-extern get-highscore-score "TODO - takes and returns an enum?" (function int int))
@@ -1016,7 +1016,7 @@
;; WARN: Return type mismatch float vs none.
(defun shuttle-init ((arg0 task-manager) (arg1 (array city-shuttle-info)))
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(let ((s3-0 *traffic-manager*)
(s4-0 (new 'stack 'traffic-object-spawn-params))
)
@@ -1090,7 +1090,7 @@
(else
(set! (-> arg0 start-time) (-> pp clock frame-counter))
(when (< (vector-vector-xz-distance (target-pos 0) (-> arg0 begin-pos)) 102400.0)
(set-setting! 'airlock #f 0 0)
(set-setting! 'airlock #f 0.0 0)
(set! (-> arg0 data-int32 9) 1)
)
)
@@ -1502,142 +1502,125 @@
(set-subtask-hook!
*game-info*
95
6
(the-as (function object) (lambda :behavior task-manager
((arg0 citizen-rebel) (arg1 object) (arg2 symbol))
(case arg2
(('task-done)
(format #t "task-done~%")
(set! (-> self sub-state) (+ (-> arg0 index) 2))
(set! (-> *game-info* counter) (+ -1.0 (-> *game-info* counter)))
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
95
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x 4698112.0 :y 40960.0 :z 81920.0 :w 1.0) quad))
(let ((v1-4 (entity-by-name "parking-spot-8")))
(if v1-4
(logior! (-> v1-4 extra perm status) (entity-perm-status bit-9))
)
)
(shuttle-init self *city-shuttle-info*)
(none)
(game-task-node city-shuttle-shuttle)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 citizen-rebel) (arg1 object) (arg2 symbol))
(case arg2
(('task-done)
(format #t "task-done~%")
(set! (-> self sub-state) (+ (-> arg0 index) 2))
(set! (-> *game-info* counter) (+ -1.0 (-> *game-info* counter)))
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
95
1
(the-as (function object) (lambda :behavior task-manager
()
(let ((t9-0 shuttle-cleanup)
(a0-0 self)
)
*city-shuttle-info*
(t9-0 a0-0)
)
(send-event *traffic-manager* 'restore-default-settings)
(none)
)
(game-task-node city-shuttle-shuttle)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x 4698112.0 :y 40960.0 :z 81920.0 :w 1.0) quad))
(let ((v1-4 (entity-by-name "parking-spot-8")))
(if v1-4
(logior! (-> v1-4 extra perm status) (entity-perm-status bit-9))
)
)
(set-subtask-hook!
*game-info*
95
2
(the-as
(function object)
(lambda :behavior task-manager () (shuttle-update self *city-shuttle-info* (the-as uint 95)) (none))
)
)
(set-subtask-hook!
*game-info*
95
3
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-citizen :init hud-init-by-other :to self)))
(send-event *traffic-manager* 'set-target-level #x3f400000)
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 2)
(send-event *traffic-manager* 'set-guard-target-count-range 1 0 3)
(while (zero? (-> self sub-state))
(suspend)
)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(send-event *traffic-manager* 'set-alert-level 2)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
)
(shuttle-init self *city-shuttle-info*)
(none)
)
)
(set-subtask-hook!
*game-info*
95
5
(the-as
(function object)
(lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'die) (none))
(game-task-node city-shuttle-shuttle)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(let ((t9-0 shuttle-cleanup)
(a0-0 self)
)
*city-shuttle-info*
(t9-0 a0-0)
)
(send-event *traffic-manager* 'restore-default-settings)
(none)
)
)
(set-subtask-hook!
*game-info*
95
4
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(talker-spawn-func (-> *talker-speech* 97) *entity-pool* (target-pos 0) (the-as region #f))
(let ((gp-1 (-> self clock frame-counter)))
(until #f
(let ((v1-4 0))
(dotimes (a0-2 4)
(let ((a1-5 (handle->process (-> self slave (* a0-2 2)))))
(if (or (not a1-5) (and (-> a1-5 next-state) (= (-> a1-5 next-state name) 'inactive)))
(+! v1-4 1)
)
)
(game-task-node city-shuttle-shuttle)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager () (shuttle-update self *city-shuttle-info* (the-as uint 95)) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-shuttle-shuttle)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-citizen :init hud-init-by-other :to self)))
(send-event *traffic-manager* 'set-target-level #x3f400000)
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 2)
(send-event *traffic-manager* 'set-guard-target-count-range 1 0 3)
(while (zero? (-> self sub-state))
(suspend)
)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(send-event *traffic-manager* 'set-alert-level 2)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-shuttle-shuttle)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'die) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-shuttle-shuttle)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(talker-spawn-func (-> *talker-speech* 97) *entity-pool* (target-pos 0) (the-as region #f))
(let ((gp-1 (-> self clock frame-counter)))
(until #f
(let ((v1-4 0))
(dotimes (a0-2 4)
(let ((a1-5 (handle->process (-> self slave (* a0-2 2)))))
(if (or (not a1-5) (and (-> a1-5 next-state) (= (-> a1-5 next-state name) 'inactive)))
(+! v1-4 1)
)
)
(if (or (>= v1-4 4) (>= (- (-> self clock frame-counter) gp-1) (seconds 10)))
(goto cfg-23)
)
)
(suspend)
0
(if (or (>= v1-4 4) (>= (- (-> self clock frame-counter) gp-1) (seconds 10)))
(goto cfg-23)
)
)
(suspend)
0
)
#f
(label cfg-23)
(task-node-close! (game-task-node city-shuttle-resolution))
(none)
)
#f
(label cfg-23)
(task-node-close! (game-task-node city-shuttle-resolution))
(none)
)
)
@@ -1696,61 +1679,56 @@
(set-subtask-hook!
*game-info*
279
6
(the-as (function object) (lambda :behavior task-manager
((arg0 citizen-rebel) (arg1 object) (arg2 symbol))
(case arg2
(('task-done)
(format #t "task-done~%")
(set! (-> self sub-state) (+ (-> arg0 index) 2))
(set! (-> *game-info* counter) (+ -1.0 (-> *game-info* counter)))
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
279
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'airlock #f 0 0)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -687390.75 :y 40960.0 :z 3479224.2 :w 1.0) quad))
(shuttle-init self *city-burning-bush-shuttle-1-info*)
(none)
(game-task-node city-burning-bush-shuttle-1-resolution)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 citizen-rebel) (arg1 object) (arg2 symbol))
(case arg2
(('task-done)
(format #t "task-done~%")
(set! (-> self sub-state) (+ (-> arg0 index) 2))
(set! (-> *game-info* counter) (+ -1.0 (-> *game-info* counter)))
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
279
1
(the-as (function object) (lambda :behavior task-manager
()
(let ((t9-0 shuttle-cleanup)
(a0-0 self)
)
*city-burning-bush-shuttle-1-info*
(t9-0 a0-0)
)
(send-event *traffic-manager* 'restore-default-settings)
(none)
)
)
(game-task-node city-burning-bush-shuttle-1-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -687390.75 :y 40960.0 :z 3479224.2 :w 1.0) quad))
(shuttle-init self *city-burning-bush-shuttle-1-info*)
(none)
)
)
(set-subtask-hook!
*game-info*
279
2
(game-task-node city-burning-bush-shuttle-1-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(let ((t9-0 shuttle-cleanup)
(a0-0 self)
)
*city-burning-bush-shuttle-1-info*
(t9-0 a0-0)
)
(send-event *traffic-manager* 'restore-default-settings)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-shuttle-1-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(the-as symbol (shuttle-update self *city-burning-bush-shuttle-1-info* (the-as uint 279)))
@@ -1759,71 +1737,62 @@
(set-subtask-hook!
*game-info*
279
3
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-citizen :init hud-init-by-other :to self)))
(send-event *traffic-manager* 'set-target-level #x3f400000)
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 2)
(send-event *traffic-manager* 'set-guard-target-count-range 1 0 3)
(while (zero? (-> self sub-state))
(suspend)
)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(send-event *traffic-manager* 'set-alert-level 2)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
(game-task-node city-burning-bush-shuttle-1-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-citizen :init hud-init-by-other :to self)))
(send-event *traffic-manager* 'set-target-level #x3f400000)
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 1)
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 2)
(send-event *traffic-manager* 'set-guard-target-count-range 1 0 3)
(while (zero? (-> self sub-state))
(suspend)
)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(send-event *traffic-manager* 'set-alert-level 2)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
)
)
(set-subtask-hook!
*game-info*
279
5
(the-as
(function object)
(lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'die) (none))
)
(game-task-node city-burning-bush-shuttle-1-resolution)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager () (send-event (handle->process (-> self arrow)) 'die) (none))
)
(set-subtask-hook!
*game-info*
279
4
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(until #f
(let ((v1-2 0))
(dotimes (a0-0 4)
(let ((a1-4 (handle->process (-> self slave (* a0-0 2)))))
(if (and a1-4 (-> a1-4 next-state) (= (-> a1-4 next-state name) 'inactive))
(+! v1-2 1)
)
)
(game-task-node city-burning-bush-shuttle-1-resolution)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(until #f
(let ((v1-2 0))
(dotimes (a0-0 4)
(let ((a1-4 (handle->process (-> self slave (* a0-0 2)))))
(if (and a1-4 (-> a1-4 next-state) (= (-> a1-4 next-state name) 'inactive))
(+! v1-2 1)
)
)
(if (= v1-2 4)
(goto cfg-20)
)
)
(suspend)
0
(if (= v1-2 4)
(goto cfg-20)
)
)
#f
(label cfg-20)
(task-node-close! (game-task-node city-burning-bush-shuttle-1-resolution))
(none)
(suspend)
0
)
#f
(label cfg-20)
(task-node-close! (game-task-node city-burning-bush-shuttle-1-resolution))
(none)
)
)
+2 -2
View File
@@ -375,8 +375,8 @@
(if (logtest? (-> self message flags) 1)
(play-communicator-speech! (-> self message))
)
(set-setting! 'hint (process->ppointer self) 0 0)
(set-setting! 'speech-control #f 0 0)
(set-setting! 'hint (process->ppointer self) 0.0 0)
(set-setting! 'speech-control #f 0.0 0)
(if (nonzero? (-> self voice-id))
(set-action!
*gui-control*
+8 -9
View File
@@ -163,7 +163,6 @@
)
;; ERROR: Failed store: (s.w! (+ v1-6 8) 0) at op 22
(defun cam-layout-print ((arg0 int) (arg1 int) (arg2 string))
(with-dma-buffer-add-bucket ((s5-0 (-> *display* frames (-> *display* on-screen) debug-buf))
(bucket-id debug2)
@@ -755,7 +754,7 @@
"Displays the message `button test`"
(cam-layout-print 16 *camera-layout-message-ypos* "button test")
(set! *camera-layout-message-ypos* (+ *camera-layout-message-ypos* 14))
(set-setting! 'master-options 'set 0 32)
(set-setting! 'master-options 'set 0.0 32)
#f
)
@@ -763,7 +762,7 @@
"Displays the message `button not available`"
(cam-layout-print 16 *camera-layout-message-ypos* "button not applicable")
(set! *camera-layout-message-ypos* (+ *camera-layout-message-ypos* 14))
(set-setting! 'master-options 'set 0 32)
(set-setting! 'master-options 'set 0.0 32)
#t
)
@@ -771,7 +770,7 @@
"Displays the message `button not implemented yet`"
(cam-layout-print 16 *camera-layout-message-ypos* "button not implemented yet")
(set! *camera-layout-message-ypos* (+ *camera-layout-message-ypos* 14))
(set-setting! 'master-options 'set 0 32)
(set-setting! 'master-options 'set 0.0 32)
#t
)
@@ -925,7 +924,7 @@
)
)
)
(set-setting! 'master-options 'set 0 32)
(set-setting! 'master-options 'set 0.0 32)
#t
)
@@ -962,7 +961,7 @@
)
)
(clmf-next-volume a0-1)
(set-setting! 'master-options 'set 0 32)
(set-setting! 'master-options 'set 0.0 32)
#t
)
@@ -1066,7 +1065,7 @@
(set! (-> *camera-other-root* quad) (-> *camera-other-trans* quad))
(cam-slave-get-rot (the-as entity-actor (-> self cam-entity)) *camera-other-matrix*)
(set! *camera-look-through-other* 10)
(set-setting! 'master-options 'set 0 32)
(set-setting! 'master-options 'set 0.0 32)
#f
)
@@ -2247,7 +2246,7 @@
)
)
)
(set-setting! 'master-options 'set 0 32)
(set-setting! 'master-options 'set 0.0 32)
#t
)
@@ -3148,7 +3147,7 @@
)
(let ((s5-0 30))
(let ((s4-0 (cam-state-from-entity (-> self cam-entity))))
(set-setting! 'master-options 'clear 0 32)
(set-setting! 'master-options 'clear 0.0 32)
(let ((s3-0 (-> self cam-entity)))
(clear *temp-string*)
(if s3-0
+2 -2
View File
@@ -3619,8 +3619,8 @@
)
:enter (behavior ()
(when (not (-> self enter-has-run))
(set-setting! 'head-offset 'abs #x46800000 0)
(set-setting! 'foot-offset 'abs #x45800000 0)
(set-setting! 'head-offset 'abs (meters 4) 0)
(set-setting! 'foot-offset 'abs (meters 1) 0)
(set! (-> self view-off x) 0.0)
(set! (-> self view-off y) (-> *CAM_BIKE-bank* max-y))
(set! (-> self view-off z) (-> *CAM_BIKE-bank* max-z))
+3 -3
View File
@@ -301,7 +301,7 @@ which is obviously useful for an elevator."
)
((= evt-type 'use-camera)
(if (-> event param 0)
(set-setting! 'entity-name (-> event param 0) 0 0)
(set-setting! 'entity-name (-> event param 0) 0.0 0)
(remove-setting! 'entity-name)
)
)
@@ -632,7 +632,7 @@ do so.
)
)
(logclear! (-> self mask) (process-mask actor-pause))
(set-setting! 'board #f 0 0)
(set-setting! 'board #f 0.0 0)
(let ((gp-0 (-> self on-activate)))
(if gp-0
(script-eval gp-0 :key (* (the int (-> self move-pos 0)) 8) :vector (-> self root-override trans))
@@ -643,7 +643,7 @@ do so.
(update-vol! (-> self sound) 0.0)
)
(when (logtest? (-> self params flags) (elevator-flags prevent-jump))
(set-setting! 'jump #f 0 0)
(set-setting! 'jump #f 0.0 0)
(apply-settings *setting-control*)
)
(none)
+2 -2
View File
@@ -968,8 +968,8 @@
((logtest? (-> self game features) (game-feature unk-game-feature-01))
(cond
((< (-> self clock frame-counter) (-> (the-as fact-info-target (-> self fact-override)) stop-time-timeout))
(set-setting! 'bg-a 'abs #x3e99999a 0)
(set-setting! 'bg-r 'abs #x3f800000 0)
(set-setting! 'bg-a 'abs 0.3 0)
(set-setting! 'bg-r 'abs 1.0 0)
(update-rates! (-> *display* entity-clock) 0.0)
(if (zero? (mod (the-as int (-> *display* base-clock integral-frame-counter)) 60))
(sound-play "stopwatch")
@@ -2077,8 +2077,8 @@
(logclear! (-> self mask) (process-mask freeze pause menu))
(set! (-> self clock) (-> *display* real-clock))
(set! (-> self current) (new 'debug 'editable-array 4096))
(add-setting! 'mouse #t 0 0)
(add-setting! 'cursor #t 0 0)
(add-setting! 'mouse #t 0.0 0)
(add-setting! 'cursor #t 0.0 0)
(set! (-> self select-command) (the-as function 3))
(set! (-> self move-command) (the-as function 18))
(set! (-> self extra-command) (the-as function 23))
+1 -1
View File
@@ -341,7 +341,7 @@
(give (_type_ symbol float handle) float 10)
(task-complete? (_type_ game-task) symbol 11)
(subtask-index-by-name (_type_ string) int 12)
(set-subtask-hook! (_type_ int int (function object :behavior task-manager)) (function object :behavior task-manager) 13)
(set-subtask-hook! (_type_ game-task-node int function) function 13)
(actor-perm (_type_ actor-id) entity-perm 14)
(task-perm-by-index (_type_ int) entity-perm 15)
(copy-perms-from-level! (_type_ level) int 16)
+4 -4
View File
@@ -66,7 +66,7 @@
0
)
(defmethod set-subtask-hook! game-info ((obj game-info) (arg0 int) (arg1 int) (arg2 (function object)))
(defmethod set-subtask-hook! game-info ((obj game-info) (arg0 game-task-node) (arg1 int) (arg2 function))
(let ((subtask (-> obj sub-task-list arg0)))
(if (and subtask (-> subtask info))
(set! (-> subtask info hooks arg1) arg2)
@@ -532,7 +532,7 @@
(set! (-> self mask) (process-mask))
(stop arg0)
(reset-actors arg1)
(close! (-> *game-info* sub-task-list 1) 'event)
(close! (-> *game-info* sub-task-list (game-task-node fortress-escape-start)) 'event)
(set-continue! *game-info* arg2 #f)
(when arg3
(load-game *game-info* arg3)
@@ -680,7 +680,7 @@
(set! (-> a1-13 num-params) 0)
(set! (-> a1-13 message) 'complete)
(let ((t9-12 send-event-function)
(v1-71 (-> *game-info* sub-task-list 43))
(v1-71 (-> *game-info* sub-task-list (game-task-node sewer-enemy-resolution)))
)
(t9-12
(handle->process (if (-> v1-71 info)
@@ -703,7 +703,7 @@
(set! (-> a1-14 num-params) 0)
(set! (-> a1-14 message) 'complete)
(let ((t9-13 send-event-function)
(v1-85 (-> *game-info* sub-task-list 177))
(v1-85 (-> *game-info* sub-task-list (game-task-node sewer-escort-get-gun)))
)
(t9-13
(handle->process (if (-> v1-85 info)
+4 -5
View File
@@ -1644,7 +1644,6 @@
)
;; ERROR: Failed store: (s.w! (+ v1-45 8) 0) at op 192
(defbehavior auto-save-post auto-save ()
(when (and (= *cheat-mode* 'debug) (cpad-hold? 0 l3))
(let ((gp-0
@@ -1731,7 +1730,7 @@ auto-save-post
(set! (-> self card) (-> *game-info* auto-save-card))
(set! (-> self which) (-> *game-info* auto-save-which))
)
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-pause #f 0.0 0)
(apply-settings *setting-control*)
)
((= arg0 'error)
@@ -2131,12 +2130,12 @@ auto-save-post
(go-virtual error (mc-status-code bad-version))
)
)
(set-setting! 'music-volume 'abs 0 0)
(set-setting! 'sfx-volume 'abs 0 0)
(set-setting! 'music-volume 'abs 0.0 0)
(set-setting! 'sfx-volume 'abs 0.0 0)
(set! (-> *game-info* mode) 'play)
(initialize! *game-info* 'game (-> self save) (the-as string #f))
(set-master-mode 'game)
(add-setting! 'process-mask 'set 0 (process-mask progress))
(add-setting! 'process-mask 'set 0.0 (process-mask progress))
(apply-settings *setting-control*)
(sleep-code)
(go-virtual done)
+1 -1
View File
@@ -189,7 +189,7 @@
(subtitle symbol :offset-assert 276)
(borrow pair :offset-assert 280)
(doorway symbol :offset-assert 284)
(gen symbol :offset-assert 288)
(gem symbol :offset-assert 288)
(half-speed symbol :offset-assert 292)
(gun-buoy symbol :offset-assert 296)
(double-jump symbol :offset-assert 300)
+4 -4
View File
@@ -451,7 +451,7 @@
)
)
(('gem)
(set! (-> obj gen) arg1)
(set! (-> obj gem) arg1)
)
(('minimap)
(case arg1
@@ -988,7 +988,7 @@
(set! (-> s5-0 features) (-> s4-0 features))
(set! (-> s5-0 rain) (-> s4-0 rain))
(set! (-> s5-0 snow) (-> s4-0 snow))
(set! (-> s5-0 gen) (-> s4-0 gen))
(set! (-> s5-0 gem) (-> s4-0 gem))
(set! (-> s5-0 minimap) (-> s4-0 minimap))
(set! (-> s5-0 race-minimap) (-> s4-0 race-minimap))
(set! (-> s5-0 half-speed) (-> s4-0 half-speed))
@@ -1461,7 +1461,7 @@
(set! (-> gp-0 speech-control) #t)
(set! (-> gp-0 vehicle-hijacking) #t)
(set! (-> gp-0 ignore-target) #f)
(set! (-> gp-0 gen) #t)
(set! (-> gp-0 gem) #t)
(set! (-> gp-0 half-speed) #f)
(set! (-> gp-0 render) #t)
(set! (-> gp-0 speed-mult) 1.0)
@@ -1551,7 +1551,7 @@
(set! (-> s5-0 gun) (-> gp-0 gun))
(set! (-> s5-0 doorway) (-> gp-0 doorway))
(set! (-> s5-0 board) (-> gp-0 board))
(set! (-> s5-0 gen) (-> gp-0 gen))
(set! (-> s5-0 gem) (-> gp-0 gem))
(set! (-> s5-0 half-speed) (-> gp-0 half-speed))
(set! (-> s5-0 render) (-> gp-0 render))
(set! (-> s5-0 speed-mult) (-> gp-0 speed-mult))
+17 -582
View File
@@ -90,7 +90,7 @@
(say 2)
(talk 3)
(show 4)
(shade 5)
(trade 5)
(play 6)
(menu 7)
)
@@ -263,344 +263,7 @@
;; DECOMP BEGINS
(defun-debug game-task->string ((arg0 game-task))
(case arg0
(((game-task forest-protect))
"forest-protect"
)
(((game-task strip-drop))
"strip-drop"
)
(((game-task fortress-dump))
"fortress-dump"
)
(((game-task ruins-tower))
"ruins-tower"
)
(((game-task city-burning-bush-race-errol))
"city-burning-bush-race-errol"
)
(((game-task canyon-insert-items))
"canyon-insert-items"
)
(((game-task city-win))
"city-win"
)
(((game-task city-burning-bush-get-to-5))
"city-burning-bush-get-to-5"
)
(((game-task tomb-water))
"tomb-water"
)
(((game-task stadium-race-class3))
"stadium-race-class3"
)
(((game-task city-burning-bush-ring-2))
"city-burning-bush-ring-2"
)
(((game-task eco-blue-button))
"eco-blue-button"
)
(((game-task stadium-burning-bush-race-class1-r))
"stadium-burning-bush-race-class1-r"
)
(((game-task ruins-enemy))
"ruins-enemy"
)
(((game-task city-burning-bush-shuttle-1))
"city-burning-bush-shuttle-1"
)
(((game-task eco-red-button))
"eco-red-button"
)
(((game-task city-burning-bush-ring-1))
"city-burning-bush-ring-1"
)
(((game-task city-krew-delivery))
"city-krew-delivery"
)
(((game-task stadium-burning-bush-race-class3-r))
"stadium-burning-bush-race-class3-r"
)
(((game-task stadium-burning-bush-race-class3))
"stadium-burning-bush-race-class3"
)
(((game-task city-burning-bush-get-to-15))
"city-burning-bush-get-to-15"
)
(((game-task city-help-kid))
"city-help-kid"
)
(((game-task under-mech))
"under-mech"
)
(((game-task city-escort-kid))
"city-escort-kid"
)
(((game-task mountain-gear))
"mountain-gear"
)
(((game-task max))
"max"
)
(((game-task city-defend-stadium))
"city-defend-stadium"
)
(((game-task city-burning-bush-get-to-12))
"city-burning-bush-get-to-12"
)
(((game-task city-burning-bush-bombbot-1))
"city-burning-bush-bombbot-1"
)
(((game-task drill-ship))
"drill-ship"
)
(((game-task city-yellow-gun-training))
"city-yellow-gun-training"
)
(((game-task sewer-enemy))
"sewer-enemy"
)
(((game-task palace-cable))
"palace-cable"
)
(((game-task city-burning-bush-get-to-10))
"city-burning-bush-get-to-10"
)
(((game-task castle-break-in))
"castle-break-in"
)
(((game-task tomb-poles))
"tomb-poles"
)
(((game-task city-vehicle-training))
"city-vehicle-training"
)
(((game-task sewer-escort))
"sewer-escort"
)
(((game-task city-errol-challenge))
"city-errol-challenge"
)
(((game-task strip-grenade))
"strip-grenade"
)
(((game-task atoll-sig))
"atoll-sig"
)
(((game-task stadium-burning-bush-race-class1))
"stadium-burning-bush-race-class1"
)
(((game-task nest-boss))
"nest-boss"
)
(((game-task forest-hunt))
"forest-hunt"
)
(((game-task stadium-race-class2))
"stadium-race-class2"
)
(((game-task city-play-onin-game))
"city-play-onin-game"
)
(((game-task city-burning-bush-collection-2))
"city-burning-bush-collection-2"
)
(((game-task none))
"none"
)
(((game-task eco-yellow-button))
"eco-yellow-button"
)
(((game-task drill-eggs))
"drill-eggs"
)
(((game-task city-burning-bush-get-to-2))
"city-burning-bush-get-to-2"
)
(((game-task city-burning-bush-racepoint-1))
"city-burning-bush-racepoint-1"
)
(((game-task city-burning-bush-get-to-11))
"city-burning-bush-get-to-11"
)
(((game-task under-sig))
"under-sig"
)
(((game-task stadium-burning-bush-race-class2))
"stadium-burning-bush-race-class2"
)
(((game-task stadium-burning-bush-race-board))
"stadium-burning-bush-race-board"
)
(((game-task city-burning-bush-race-port))
"city-burning-bush-race-port"
)
(((game-task city-burning-bush-get-to-7))
"city-burning-bush-get-to-7"
)
(((game-task atoll-battle))
"atoll-battle"
)
(((game-task drill-mech))
"drill-mech"
)
(((game-task ruins-mech))
"ruins-mech"
)
(((game-task city-burning-bush-get-to-13))
"city-burning-bush-get-to-13"
)
(((game-task city-destroy-guard-vehicles))
"city-destroy-guard-vehicles"
)
(((game-task tomb-boss))
"tomb-boss"
)
(((game-task dummy0))
"dummy0"
)
(((game-task dig-find-totem))
"dig-find-totem"
)
(((game-task dig-knock-down))
"dig-knock-down"
)
(((game-task city-protect-water-slums))
"city-protect-water-slums"
)
(((game-task city-whack))
"city-whack"
)
(((game-task city-burning-bush-ring-3))
"city-burning-bush-ring-3"
)
(((game-task city-shuttle))
"city-shuttle"
)
(((game-task fortress-save-friends))
"fortress-save-friends"
)
(((game-task city-intercept-tanker))
"city-intercept-tanker"
)
(((game-task forest-scouts))
"forest-scouts"
)
(((game-task nest-get-to-gun))
"nest-get-to-gun"
)
(((game-task stadium-race-class))
"stadium-race-class1"
)
(((game-task stadium-burning-bush-race-class2-r))
"stadium-burning-bush-race-class2-r"
)
(((game-task palace-sneak-in))
"palace-sneak-in"
)
(((game-task strip-rescue))
"strip-rescue"
)
(((game-task city-burning-bush-get-to-1))
"city-burning-bush-get-to-1"
)
(((game-task consite-find-baron))
"consite-find-baron"
)
(((game-task city-burning-bush-get-to-3))
"city-burning-bush-get-to-3"
)
(((game-task stadium-board1))
"stadium-board1"
)
(((game-task city-burning-bush-get-to-4))
"city-burning-bush-get-to-4"
)
(((game-task city-burning-bush-collection-3))
"city-burning-bush-collection-3"
)
(((game-task city-port-run))
"city-port-run"
)
(((game-task sewer-board))
"sewer-board"
)
(((game-task city-dark-gun-training))
"city-dark-gun-training"
)
(((game-task city-oracle))
"city-oracle"
)
(((game-task city-burning-bush-collection-1))
"city-burning-bush-collection-1"
)
(((game-task city-keira-delivery))
"city-keira-delivery"
)
(((game-task city-burning-bush-get-to-6))
"city-burning-bush-get-to-6"
)
(((game-task mountain-lens))
"mountain-lens"
)
(((game-task atoll-water))
"atoll-water"
)
(((game-task city-stop-bomb-bots))
"city-stop-bomb-bots"
)
(((game-task mountain-collection))
"mountain-collection"
)
(((game-task nest-enter))
"nest-enter"
)
(((game-task city-burning-bush-get-to-9))
"city-burning-bush-get-to-9"
)
(((game-task mountain-shard))
"mountain-shard"
)
(((game-task city-power))
"city-power"
)
(((game-task complete))
"complete"
)
(((game-task palace-boss))
"palace-boss"
)
(((game-task castle-boss))
"castle-boss"
)
(((game-task city-burning-bush-get-to-8))
"city-burning-bush-get-to-8"
)
(((game-task city-blue-gun-training))
"city-blue-gun-training"
)
(((game-task fortress-escape))
"fortress-escape"
)
(((game-task city-red-gun-training))
"city-red-gun-training"
)
(((game-task city-save-lurkers))
"city-save-lurkers"
)
(((game-task city-krew-collection))
"city-krew-collection"
)
(((game-task city-burning-bush-get-to-14))
"city-burning-bush-get-to-14"
)
(((game-task city-meet-brutter))
"city-meet-brutter"
)
(else
"*unknown*"
)
)
(enum->string game-task arg0)
)
;; WARN: Return type mismatch int vs game-task.
@@ -947,247 +610,11 @@
)
(defun-debug game-task-actor->string ((arg0 game-task-actor))
(case arg0
(((game-task-actor burning-bush-genc))
"burning-bush-genc"
)
(((game-task-actor minimap))
"minimap"
)
(((game-task-actor youngsamos-tomb))
"youngsamos-tomb"
)
(((game-task-actor youngsamos-onintent))
"youngsamos-onintent"
)
(((game-task-actor baron-consite))
"baron-consite"
)
(((game-task-actor burning-bush-markb))
"burning-bush-markb"
)
(((game-task-actor keira-garage))
"keira-garage"
)
(((game-task-actor burning-bush-genc-2))
"burning-bush-genc-2"
)
(((game-task-actor samos-garage))
"samos-garage"
)
(((game-task-actor kid-hideout))
"kid-hideout"
)
(((game-task-actor krew-hiphog))
"krew-hiphog"
)
(((game-task-actor burning-bush-port-2))
"burning-bush-port-2"
)
(((game-task-actor none))
"none"
)
(((game-task-actor burning-bush-port-3))
"burning-bush-port-3"
)
(((game-task-actor brutter-kiosk))
"brutter-kiosk"
)
(((game-task-actor tess-alley))
"tess-alley"
)
(((game-task-actor whack-a-metal-hiphog))
"whack-a-metal-hiphog"
)
(((game-task-actor burning-bush-gena))
"burning-bush-gena"
)
(((game-task-actor vin-vinroom))
"vin-vinroom"
)
(((game-task-actor kor-hideout))
"kor-hideout"
)
(((game-task-actor burning-bush-pal-2))
"burning-bush-pal-2"
)
(((game-task-actor kid-alley))
"kid-alley"
)
(((game-task-actor burning-bush-stadium))
"burning-bush-stadium"
)
(((game-task-actor ashelin-market))
"ashelin-market"
)
(((game-task-actor kid-tomb))
"kid-tomb"
)
(((game-task-actor burning-bush-farma))
"burning-bush-farma"
)
(((game-task-actor baron-tomb))
"baron-tomb"
)
(((game-task-actor burning-bush-slumc))
"burning-bush-slumc"
)
(((game-task-actor burning-bush-slumb-2))
"burning-bush-slumb-2"
)
(((game-task-actor baron-palace))
"baron-palace"
)
(((game-task-actor crocadog-alley))
"crocadog-alley"
)
(((game-task-actor baron-castle))
"baron-castle"
)
(((game-task-actor crocadog-vinroom))
"crocadog-vinroom"
)
(((game-task-actor burning-bush-gena-2))
"burning-bush-gena-2"
)
(((game-task-actor daxter-tomb))
"daxter-tomb"
)
(((game-task-actor burning-bush-port))
"burning-bush-port"
)
(((game-task-actor burning-bush-marka))
"burning-bush-marka"
)
(((game-task-actor crocadog-tomb))
"crocadog-tomb"
)
(((game-task-actor keira-stadium))
"keira-stadium"
)
(((game-task-actor sig-hiphog))
"sig-hiphog"
)
(((game-task-actor youngsamos-hideout))
"youngsamos-hideout"
)
(((game-task-actor burning-bush-genb-2))
"burning-bush-genb-2"
)
(((game-task-actor burning-bush-inda))
"burning-bush-inda"
)
(((game-task-actor kor-tomb))
"kor-tomb"
)
(((game-task-actor kor-consite))
"kor-consite"
)
(((game-task-actor torn-hideout))
"torn-hideout"
)
(((game-task-actor onin-onintent))
"onin-onintent"
)
(((game-task-actor kor-alley))
"kor-alley"
)
(((game-task-actor kid-vinroom))
"kid-vinroom"
)
(((game-task-actor ashelin-atoll))
"ashelin-atoll"
)
(((game-task-actor burning-bush-sluma))
"burning-bush-sluma"
)
(((game-task-actor burning-bush-slumb))
"burning-bush-slumb"
)
(((game-task-actor youngsamos-alley))
"youngsamos-alley"
)
(((game-task-actor youngsamos-forest))
"youngsamos-forest"
)
(((game-task-actor samos-hideout))
"samos-hideout"
)
(((game-task-actor burning-bush-genb))
"burning-bush-genb"
)
(((game-task-actor oracle-oracle))
"oracle-oracle"
)
(((game-task-actor torn-alley))
"torn-alley"
)
(((game-task-actor kor-onintent))
"kor-onintent"
)
(((game-task-actor tess-hiphog))
"tess-hiphog"
)
(((game-task-actor burning-bush-markb-2))
"burning-bush-markb-2"
)
(((game-task-actor ashelin-throne))
"ashelin-throne"
)
(((game-task-actor burning-bush-indb))
"burning-bush-indb"
)
(((game-task-actor pecker-onintent))
"pecker-onintent"
)
(((game-task-actor kor-vinroom))
"kor-vinroom"
)
(((game-task-actor sig-atoll))
"sig-atoll"
)
(((game-task-actor burning-bush-pal))
"burning-bush-pal"
)
(((game-task-actor burning-bush-farmb))
"burning-bush-farmb"
)
(else
"*unknown*"
)
)
(enum->string game-task-actor arg0)
)
(defun-debug game-task-action->string ((arg0 game-task-action))
(case arg0
(((game-task-action idle))
"idle"
)
(((game-task-action play))
"play"
)
(((game-task-action show))
"show"
)
(((game-task-action talk))
"talk"
)
(((game-task-action hide))
"hide"
)
(((game-task-action say))
"say"
)
(((game-task-action shade))
"trade"
)
(((game-task-action menu))
"menu"
)
(else
"*unknown*"
)
)
(enum->string game-task-action arg0)
)
(deftype game-task-event (basic)
@@ -1204,13 +631,21 @@
:flag-assert #x900000010
)
;; the decompiler uses these!
(defconstant TASK_MANAGER_INIT_HOOK 0)
(defconstant TASK_MANAGER_CLEANUP_HOOK 1)
(defconstant TASK_MANAGER_UPDATE_HOOK 2)
(defconstant TASK_MANAGER_CODE_HOOK 3)
(defconstant TASK_MANAGER_COMPLETE_HOOK 4)
(defconstant TASK_MANAGER_FAIL_HOOK 5)
(defconstant TASK_MANAGER_EVENT_HOOK 6)
(deftype task-manager-info (structure)
((mask task-manager-mask :offset-assert 0)
(level symbol :offset-assert 4)
(manager handle :offset-assert 8)
(fail-message text-id :offset-assert 16)
(retry-message text-id :offset-assert 20)
(fail-message text-id :offset-assert 16)
(retry-message text-id :offset-assert 20)
(intro-scene string :offset-assert 24)
(resolution-scene string :offset-assert 28)
(resolution-scene-continue string :offset-assert 32)
@@ -1223,7 +658,7 @@
(complete-hook (function object) :offset-assert 60)
(fail-hook (function object) :offset-assert 64)
(event-hook (function process int symbol event-message-block object) :offset-assert 68)
(hooks (function object) 7 :offset 44)
(hooks function 7 :offset 44)
(final-node game-task-node :offset-assert 72)
(time-limit int32 :offset-assert 76)
(sphere-count int8 :offset-assert 80)
@@ -1400,7 +835,7 @@
(skill-count uint16 :offset-assert 68)
(suck-death-count uint8 :offset-assert 70)
(add game-task-node-command :offset-assert 71)
(description text-id :offset-assert 72)
(description text-id :offset-assert 72)
)
:method-count-assert 14
:size-assert #x4c
@@ -1417,7 +852,7 @@
(deftype game-task-info (basic)
((name string :offset-assert 4)
(text-name text-id :offset-assert 8)
(text-name text-id :offset-assert 8)
(pre-play-node game-task-node :offset-assert 12)
(kiosk-play-node game-task-node :offset-assert 14)
(pre-play-continue string :offset-assert 16)
+19 -11
View File
@@ -39,7 +39,7 @@
(fail-continue basic :offset-assert 8)
(reset-delay uint32 :offset-assert 12)
(task game-task :offset-assert 16)
(fail-message text-id :offset-assert 20)
(fail-message text-id :offset-assert 20)
)
:method-count-assert 9
:size-assert #x18
@@ -122,7 +122,7 @@
)
)
)
(borrow-eval (-> *game-info* sub-task-list 1 borrow))
(borrow-eval (-> *game-info* sub-task-list (game-task-node fortress-escape-start) borrow))
(let ((game-nodes (-> *game-info* sub-task-list)))
(dotimes (i (-> game-nodes length))
(when (nonzero? i)
@@ -1279,7 +1279,7 @@
((= v1-1 (game-task-action say))
"say"
)
((= v1-1 (game-task-action shade))
((= v1-1 (game-task-action trade))
"trade"
)
((= v1-1 (game-task-action menu))
@@ -1732,8 +1732,8 @@
(set! (-> self reset-delay) (-> arg0 reset-delay))
(set! (-> self task) (-> arg0 task))
(set! (-> self fail-message) (the-as uint (-> arg0 fail-message)))
(set-setting! 'allow-continue #f 0 0)
(set-setting! 'minimap 'clear 0 128)
(set-setting! 'allow-continue #f 0.0 0)
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(set-action!
*gui-control*
(gui-action stop)
@@ -1761,9 +1761,9 @@
)
)
)
(set-setting! 'music-volume 'abs 0 0)
(set-setting! 'sfx-volume 'abs 0 0)
(set-setting! 'speech-control #f 0 0)
(set-setting! 'music-volume 'abs 0.0 0)
(set-setting! 'sfx-volume 'abs 0.0 0)
(set-setting! 'speech-control #f 0.0 0)
(set! (-> self clock) (-> *display* base-clock))
(apply-settings *setting-control*)
(if (or (not (logtest? (-> self flags) (fail-mission-flags famflags-2)))
@@ -1820,12 +1820,12 @@
)
(defbehavior task-manager-init-by-other task-manager ((arg0 game-task-node-info) (arg1 symbol))
(stack-size-set! (-> self main-thread) 4096) ;; increased from 1024
(stack-size-set! (-> self main-thread) 2048) ;; increased from 1024
(add-connection *task-manager-engine* self nothing self arg0 #f)
(set! (-> self node-info) arg0)
(set! (-> self lev-name) arg1)
(add-setting! 'task arg0 0 0)
(add-setting! 'task-manager (process->ppointer self) 0 0)
(add-setting! 'task arg0 0.0 0)
(add-setting! 'task-manager (process->ppointer self) 0.0 0)
(set! (-> self intro-time) (-> self clock frame-counter))
(set! (-> self fail-on-death?) (not (logtest? (-> arg0 flags) (game-task-node-flag no-fail-on-death))))
(when arg1
@@ -2118,6 +2118,8 @@
(t9-0)
)
)
(#when PC_PORT
(set! (-> self post-hook) #f))
(until #f
(if *debug-segment*
(format *stdcon* "task-manager: alive task ~A~%" (game-task->string (-> self node-info task)))
@@ -2127,6 +2129,12 @@
#f
(none)
)
;; PC port note : added this so we can see it during the code-hook
:post (behavior ()
(if *debug-segment*
(format *stdcon* "task-manager: alive in code-hook task ~A~%" (game-task->string (-> self node-info task)))
)
)
)
(defstate complete (task-manager)
+8 -53
View File
@@ -522,9 +522,7 @@
(let ((s3-0 (-> obj rec s4-0)))
(when (-> s3-0 name)
(dotimes (s2-0 2)
(when (and (file-status (-> obj buffer s2-0) (-> s3-0 name) (the-as int (-> s3-0 parts)))
(not (-> obj buffer s2-0 frame-lock))
)
(when (and (file-status (-> obj buffer s2-0) (-> s3-0 name) (-> s3-0 parts)) (not (-> obj buffer s2-0 frame-lock)))
(set! (-> obj buffer s2-0 frame-lock) #t)
(set! (-> s3-0 anim-name) (-> obj buffer s2-0))
(set! (-> obj buffer s2-0 pending-load-file-owner) (-> s3-0 owner))
@@ -547,13 +545,7 @@
(dotimes (s2-1 2)
(when (not (-> obj buffer s2-1 frame-lock))
(set! (-> obj buffer s2-1 frame-lock) #t)
(set-pending-file
(-> obj buffer s2-1)
(-> s3-1 name)
(the-as int (-> s3-1 parts))
(-> s3-1 owner)
(-> s3-1 priority)
)
(set-pending-file (-> obj buffer s2-1) (-> s3-1 name) (-> s3-1 parts) (-> s3-1 owner) (-> s3-1 priority))
(set! (-> s3-1 anim-name) (-> obj buffer s2-1))
(goto cfg-46)
)
@@ -783,43 +775,6 @@
)
)
;; to allow streaming animations to play without overload VAG streaming, set STREAM_PLAY_HACK.
;; in the ja-play-spooled-anim function below, we use the get-current-str-pos/get-str-id-is-playing?
;; instead of the usual current-str-pos/str-id-is-playing? functions. The #cond below remaps those
;; to point to hacked versions if STREAM_PLAY_HACK is true, otherwise it just maps to the original
;; version.
(defglobalconstant STREAM_PLAY_HACK #f)
(#cond
(STREAM_PLAY_HACK
(define *hack-pos-buffer-id* (new 'static 'array int 4)) ;; 4 channels?
(define *hack-pos-buffer-pos* (new 'static 'array float 4)) ;; 4 channels?
(define *hack-pos-next-idx* 0) ;; new channel, if none is found.
(define *hack-pos-speed* 8.5)
(defun get-current-str-pos ((obj sound-id))
(dotimes (i 4)
(when (= (-> *hack-pos-buffer-id* i) obj)
(return (the int (+! (-> *hack-pos-buffer-pos* i) *hack-pos-speed*)))
)
)
(set! (-> *hack-pos-buffer-id* *hack-pos-next-idx*) (the-as int obj))
(set! (-> *hack-pos-buffer-pos* *hack-pos-next-idx*) 0.0)
(+! *hack-pos-next-idx* 1)
(if (= *hack-pos-next-idx* 4)
(set! *hack-pos-next-idx* 0)
)
(the int *hack-pos-speed*)
)
(defun get-str-id-is-playing? ((obj int))
#t
)
)
(#t
(define get-current-str-pos current-str-pos)
(define get-str-id-is-playing? str-id-is-playing?)
)
)
(defbehavior ja-play-spooled-anim process-drawable ((arg0 spool-anim) (arg1 art-joint-anim) (arg2 art-joint-anim) (arg3 (function process-drawable symbol)))
(local-vars (v0-59 int) (sv-176 int))
@@ -900,8 +855,8 @@
)
)
)
(set-setting! 'spooling (process->ppointer self) 0 0)
(set-setting! 'spool-anim (-> gp-0 anim) 0 0)
(set-setting! 'spooling (process->ppointer self) 0.0 0)
(set-setting! 'spool-anim (-> gp-0 anim) 0.0 0)
(apply-settings *setting-control*)
(set! (-> gp-0 old-time) (-> self clock frame-counter))
(while (< (-> gp-0 part) (-> gp-0 anim parts))
@@ -1048,7 +1003,7 @@
(let* ((f30-0 (* 0.05859375 (-> s5-8 speed)))
(f28-0 (+ (-> gp-0 part-audio-start) (/ (the float (+ (-> s5-8 frames num-frames) -1)) f30-0)))
)
(set! sv-176 (get-current-str-pos (-> gp-0 sid))) ;; modified
(set! sv-176 (current-str-pos (-> gp-0 sid)))
(set! (-> gp-0 good-time) (-> self clock frame-counter))
(until (>= (the float v0-59) f28-0)
(if (= (-> self skel root-channel 0) (-> self skel channel))
@@ -1096,8 +1051,8 @@
(set! (-> gp-0 old-pos) sv-176)
(set! (-> gp-0 old-time) (-> self clock frame-counter))
(suspend)
(let* ((f26-0 (* (- (the float (get-current-str-pos (-> gp-0 sid))) (-> gp-0 part-audio-start)) f30-0))
(f0-16 (if (get-str-id-is-playing? (the-as int (-> gp-0 sid)))
(let* ((f26-0 (* (- (the float (current-str-pos (-> gp-0 sid))) (-> gp-0 part-audio-start)) f30-0))
(f0-16 (if (str-id-is-playing? (the-as int (-> gp-0 sid)))
(fmax 0.0 (fmin f26-0 (the float (+ (-> (ja-group) frames num-frames) -1))))
(fmax 0.0 (fmin (ja-frame-num 0) (the float (+ (-> (ja-group) frames num-frames) -1))))
)
@@ -1105,7 +1060,7 @@
)
(ja-no-eval :num! (seek!) :frame-num f0-16)
)
(set! v0-59 (get-current-str-pos (-> gp-0 sid)))
(set! v0-59 (current-str-pos (-> gp-0 sid)))
(set! sv-176 v0-59)
)
(set! (-> gp-0 part-audio-start) f28-0)
@@ -236,7 +236,7 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
)
(when (and (or (= (-> gp-0 action) (game-task-action say))
(= (-> gp-0 action) (game-task-action talk))
(= (-> gp-0 action) (game-task-action shade))
(= (-> gp-0 action) (game-task-action trade))
(= (-> gp-0 action) (game-task-action play))
)
(process-taskable-method-34 self)
@@ -256,17 +256,9 @@ Seen take in - `true-func` which takes no args TODO - seems fishy
(kill-current-talker (the-as symbol '()) '(daxter voicebox ambient) 'exit)
(talker-surpress!)
(when (can-display-query? self (the-as string #f) -99.0)
(let ((s5-1 (new
'stack
'font-context
*font-default-matrix*
32
280
0.0
(font-color default)
(font-flags shadow kerning)
)
)
(let ((s5-1
(new 'stack 'font-context *font-default-matrix* 32 280 0.0 (font-color default) (font-flags shadow kerning))
)
)
(let ((v1-84 s5-1))
(set! (-> v1-84 width) (the float 340))
+22 -21
View File
@@ -503,11 +503,11 @@
)
(process-entity-status! obj (entity-perm-status no-kill) #t)
(when arg1
(set-setting! 'region-mode #f 0 0)
(set-setting! 'process-mask 'set 0 (-> gp-0 mask-to-clear))
(set-setting! 'sound-bank-load #f 0 0)
(set-setting! 'movie (process->ppointer obj) 0 0)
(set-setting! 'movie-name (-> gp-0 name) 0 0)
(set-setting! 'region-mode #f 0.0 0)
(set-setting! 'process-mask 'set 0.0 (-> gp-0 mask-to-clear))
(set-setting! 'sound-bank-load #f 0.0 0)
(set-setting! 'movie (process->ppointer obj) 0.0 0)
(set-setting! 'movie-name (-> gp-0 name) 0.0 0)
(set-setting!
'music-volume
'rel
@@ -536,9 +536,9 @@
0
)
(if (nonzero? (the int (-> gp-0 music-delay)))
(set-setting! 'sound-mode #f 0 2)
(set-setting! 'sound-mode #f 0.0 2)
)
(set-setting! 'gem #f 0 0)
(set-setting! 'gem #f 0.0 0)
(apply-settings *setting-control*)
)
)
@@ -584,6 +584,7 @@
)
)
;; WARN: Return type mismatch pointer vs none.
(defun draw-subtitle-image ((arg0 subtitle-image) (arg1 font-context))
(local-vars (sv-16 pointer) (sv-32 int))
(let ((gp-0 (-> arg0 width))
@@ -767,7 +768,7 @@
)
(when gp-0
(when (-> self scene)
(set-setting! 'borrow (-> self scene borrow) 0 0)
(set-setting! 'borrow (-> self scene borrow) 0.0 0)
(apply-settings *setting-control*)
)
(cond
@@ -820,8 +821,8 @@
(while *progress-process*
(suspend)
)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'bg-a-force 'abs #x3f800000 0)
(set-setting! 'allow-progress #f 0.0 0)
(set-setting! 'bg-a-force 'abs 1.0 0)
(apply-settings *setting-control*)
)
(if (or (not *target*) (or (focus-test? *target* grabbed)
@@ -866,7 +867,7 @@
(-> *setting-control* user-current ambient)
)
)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-progress #f 0.0 0)
(apply-settings *setting-control*)
(dotimes (s4-0 2)
(while (or (-> *setting-control* user-current talking)
@@ -929,7 +930,7 @@
(when (and (zero? s5-1) (< (-> self scene-index) (-> self scene-list length)))
(scene-player-method-24 self (-> self scene-list (-> self scene-index)) #t)
(when (-> self scene)
(set-setting! 'borrow (-> self scene borrow) 0 0)
(set-setting! 'borrow (-> self scene borrow) 0.0 0)
(apply-settings *setting-control*)
)
)
@@ -974,11 +975,11 @@
(when (= (-> *game-info* demo-state) 100)
(logclear! (-> self mask) (process-mask pause progress))
(set-blackout-frames (seconds 0.05))
(set-setting! 'music-volume 'abs 0 0)
(set-setting! 'sfx-volume 'abs 0 0)
(set-setting! 'ambient-volume 'abs 0 0)
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'music-volume 'abs 0.0 0)
(set-setting! 'sfx-volume 'abs 0.0 0)
(set-setting! 'ambient-volume 'abs 0.0 0)
(set-setting! 'allow-pause #f 0.0 0)
(set-setting! 'allow-progress #f 0.0 0)
(setup
*screen-filter*
(new 'static 'vector)
@@ -1003,7 +1004,7 @@
(set! (-> *game-info* blackout-time) 0)
(set! (-> *game-info* demo-state) (the-as uint 1))
(set! (-> *setting-control* user-current bg-a-force) 0.0)
(set-setting! 'allow-progress #t 0 0)
(set-setting! 'allow-progress #t 0.0 0)
(remove-setting! 'process-mask)
(apply-settings *setting-control*)
(send-event *target* 'draw #t)
@@ -1487,7 +1488,7 @@
(defbehavior scene-player-init scene-player ((arg0 object) (arg1 symbol) (arg2 string))
"`object` arg can be an `(array scene)`, `pair of scene` or a `scene`"
(process-entity-set! self (the-as entity #f))
(stack-size-set! (-> self main-thread) 1024)
(stack-size-set! (-> self main-thread) 1024) ;; changed from 512
(set! (-> self root) (new 'process 'trsqv))
(case (rtype-of arg0)
((array)
@@ -1566,8 +1567,8 @@
)
(set! *scene-player* (the-as (pointer scene-player) (process->ppointer self)))
(set! *display-entity-errors* #f)
(set-setting! 'speech-control #f 0 0)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'speech-control #f 0.0 0)
(set-setting! 'allow-progress #f 0.0 0)
(apply-settings *setting-control*)
(go-virtual wait arg1)
(none)
+37 -40
View File
@@ -42,40 +42,41 @@
)
(deftype sound-iop-info (structure)
((frame uint32 :offset-assert 0)
(strpos int32 :offset-assert 4)
(str-id uint32 :offset-assert 8)
(str-id-sign int32 :offset 8)
(freemem uint32 :offset-assert 12)
(chinfo uint8 48 :offset-assert 16)
(freemem2 uint32 :offset-assert 64)
(nocd uint32 :offset-assert 68)
(dirtycd uint32 :offset-assert 72)
(diskspeed uint32 2 :offset-assert 76)
(lastspeed uint32 :offset-assert 84)
(dupseg int32 :offset-assert 88)
(times int32 41 :offset-assert 92)
(times-seq uint32 :offset-assert 256)
(iop-ticks uint32 :offset-assert 260)
(stream-position uint32 4 :offset 272)
(stream-status stream-status 4 :offset-assert 288)
((frame uint32 :offset-assert 0)
(strpos int32 :offset-assert 4)
(str-id uint32 :offset-assert 8)
(str-id-sign int32 :offset 8)
(freemem uint32 :offset-assert 12)
(chinfo uint8 48 :offset-assert 16)
(freemem2 uint32 :offset-assert 64)
(nocd uint32 :offset-assert 68)
(dirtycd uint32 :offset-assert 72)
(diskspeed uint32 2 :offset-assert 76)
(lastspeed uint32 :offset-assert 84)
(dupseg int32 :offset-assert 88)
(times int32 41 :offset-assert 92)
(times-seq uint32 :offset-assert 256)
(iop-ticks uint32 :offset-assert 260)
(stream-position uint32 4 :offset 272)
(stream-status stream-status 4 :offset-assert 288)
(stream-name sound-stream-name 4 :inline :offset-assert 304)
(stream-id sound-id 4 :offset-assert 496)
(stream-id-int32 int32 4 :overlay-at stream-id)
(music-register uint8 17 :offset-assert 512)
(music-excite int8 :offset 528)
(ramdisk-name uint8 48 :offset-assert 529)
(stream-id sound-id 4 :offset-assert 496)
(stream-id-int32 int32 4 :offset 496)
(music-register uint8 17 :offset-assert 512)
(music-excite int8 :offset 528)
(ramdisk-name uint8 48 :offset-assert 529)
)
:method-count-assert 9
:size-assert #x241
:flag-assert #x900000241
)
(define *sound-iop-info* (new 'global 'sound-iop-info))
(defun str-is-playing? ()
(countdown (v1-0 4)
(if (and (>= (-> *sound-iop-info* stream-id v1-0) 0)
(if (and (>= (the-as uint (-> *sound-iop-info* stream-id v1-0)) 0)
(logtest? (-> *sound-iop-info* stream-status v1-0) (stream-status ststatus-four))
)
(return #t)
@@ -361,6 +362,7 @@
)
)
;; WARN: Return type mismatch uint128 vs sound-name.
(defun string->sound-name ((arg0 string))
(let ((v1-0 (new 'stack-no-clear 'qword)))
(set! (-> v1-0 quad) (the-as uint128 0))
@@ -408,17 +410,10 @@
0
)
(defmacro sound-play (name &key (id (new-sound-id))
&key (vol 100.0) &key (pitch 0) &key (bend 0)
&key (group sfx)
&key (position #t))
`(sound-play-by-name (static-sound-name ,name) ,id (the int (* (/ 1024.0 100.0) ,vol)) (the int (* 1524.0 ,pitch)) ,bend (sound-group ,group) ,position)
)
(defbehavior sound-play-by-name process-drawable ((arg0 sound-name) (arg1 sound-id) (arg2 int) (arg3 int) (arg4 int) (arg5 sound-group) (arg6 object))
(local-vars (sv-16 sound-group))
"Last arg can by a symbol with value [[#t]], in which case it will pull `trans` [[vector]] off the current [[process-drawable]]
otherwise, an explicit [[vector]] can be provided"
otherwise, an explicit [[vector]] can be provided"
(local-vars (sv-16 sound-group))
(set! sv-16 arg5)
(let ((s4-0 arg6))
(when *sound-player-enable*
@@ -556,14 +551,15 @@
)
(defun sound-volume-off ()
(set-setting! 'music-volume 'abs 0 0)
(set-setting! 'sfx-volume 'abs 0 0)
(set-setting! 'ambient-volume 'abs 0 0)
(set-setting! 'music-volume 'abs 0.0 0)
(set-setting! 'sfx-volume 'abs 0.0 0)
(set-setting! 'ambient-volume 'abs 0.0 0)
0
)
(define *ambient-spec* (new 'static 'sound-spec))
;; WARN: Return type mismatch object vs ambient-sound.
(defmethod new ambient-sound ((allocation symbol) (type-to-make type) (arg0 basic) (arg1 vector))
(local-vars
(sv-16 sound-spec)
@@ -911,7 +907,6 @@
0
)
;; definition for function ear-trans
(defun ear-trans ((arg0 int))
(cond
((or (movie?) *external-cam-mode*)
@@ -929,7 +924,11 @@
(defun-debug make-sqrt-table ()
(format #t "static int sqrt_table[256] =~%{~%")
(dotimes (gp-0 256)
(let* ((f0-2 (sqrtf (* 16777216.0 (the float gp-0)))) (a2-0 (the int (+ 0.5 f0-2)))) (format #t "~D,~%" a2-0))
(let* ((f0-2 (sqrtf (* 16777216.0 (the float gp-0))))
(a2-0 (the int (+ 0.5 f0-2)))
)
(format #t "~D,~%" a2-0)
)
)
(format #t "};~%")
0
@@ -956,8 +955,6 @@
)
)
(defun loader-test-command ((arg0 sound-command) (arg1 uint))
(let ((v1-1 (the-as sound-rpc-test-cmd (add-element *sound-loader-rpc*))))
(set! (-> v1-1 command) arg0)
@@ -974,7 +971,7 @@
(let ((gp-0 (new 'stack-no-clear 'inline-array 'vector 2)))
(vector-! (-> gp-0 0) (target-pos 0) arg0)
(if *target*
(vector-! (-> gp-0 1) arg1 (-> *target* root transv))
(vector-! (-> gp-0 1) arg1 (-> *target* control transv))
(set! (-> gp-0 1 quad) (-> arg1 quad))
)
(vector-normalize! (-> gp-0 0) 1.0)
@@ -310,8 +310,8 @@
(vector-! gp-0 gp-0 (get-trans self 0))
(send-event *camera* 'relative-position gp-0)
)
(set-setting! 'matrix-blend-max-angle 'abs #x45088889 0)
(set-setting! 'matrix-blend-max-partial 'abs #x3f000000 0)
(set-setting! 'matrix-blend-max-angle 'abs (degrees 12.000001) 0)
(set-setting! 'matrix-blend-max-partial 'abs 0.5 0)
)
0
(none)
@@ -861,8 +861,8 @@
(set! (-> self board sound-air-knob) 0.0)
(set! (-> self board sound-bank-knob) 0.0)
(set! (-> self board unknown-sound-id00) (new 'static 'sound-id))
(set-setting! 'mode-sound-bank 'board 0 0)
(set-setting! 'sound-flava #f #x41f00000 2)
(set-setting! 'mode-sound-bank 'board 0.0 0)
(set-setting! 'sound-flava #f 30.0 2)
(set! (-> self board board-get-on-time) (-> self clock frame-counter))
(set! (-> self board stick-lock) #f)
(set! (-> self board stick-off) #f)
@@ -920,10 +920,10 @@
(-> self control dynam gravity-normal)
(the-as float (-> self control dynam gravity-length))
)
(set-setting! 'string-spline-max-move 'abs #x46000000 0)
(set-setting! 'string-spline-accel 'abs #x433851ec 0)
(set-setting! 'string-spline-max-move-player 'abs #x45c00000 0)
(set-setting! 'string-spline-accel-player 'abs #x430f5c29 0)
(set-setting! 'string-spline-max-move 'abs (meters 2) 0)
(set-setting! 'string-spline-accel 'abs (meters 0.045) 0)
(set-setting! 'string-spline-max-move-player 'abs (meters 1.5) 0)
(set-setting! 'string-spline-accel-player 'abs (meters 0.035) 0)
(none)
)
+2 -2
View File
@@ -3094,8 +3094,8 @@
(set! (-> obj tobot-recorder) #f)
(set! (-> obj mode-cache) #f)
(set! (-> obj color-effect) #f)
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-pause #f 0.0 0)
(set-setting! 'allow-progress #f 0.0 0)
(set! (-> *setting-control* cam-default mode-name) 'cam-string)
(apply-settings *setting-control*)
(if (not arg0)
@@ -1180,7 +1180,7 @@
(set! (-> self neck flex-blend) 0.0)
(target-timed-invulnerable-off self 0)
(target-timed-invulnerable-off self 0)
(set-setting! 'process-mask 'set 0 (process-mask platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask platform projectile death))
(apply-settings *setting-control*)
(set! (-> self control transv quad) (the-as uint128 0))
(logior! (-> self focus-status) (focus-status dead))
@@ -1196,7 +1196,7 @@
(add-process *gui-control* *target* (gui-channel daxter) (gui-action play) "jakfall" -99.0 0)
)
(set-falloff! *gui-control* (-> self control unknown-sound-id00) #t -1 100 2)
(set-setting! 'mode-name 'cam-endlessfall 0 0)
(set-setting! 'mode-name 'cam-endlessfall 0.0 0)
(set! (-> self control pat-ignore-mask)
(logior (new 'static 'pat-surface :noendlessfall #x1) (-> self control pat-ignore-mask))
)
@@ -2706,7 +2706,7 @@
(logior! (-> self state-flags) (state-flags sf5))
(set! (-> self control mod-surface) *empty-mods*)
(rot->dir-targ! (-> self control))
(set-setting! 'slave-options 'clear 0 8192)
(set-setting! 'slave-options 'clear 0.0 (cam-slave-options BIKE_MODE))
(remove-setting! 'fov)
(remove-setting! 'head-offset)
(send-event *camera* 'set-dist #f #f)
@@ -1290,14 +1290,14 @@
)
)
(logior! (-> self state-flags) (state-flags sf6))
(set-setting! 'string-max-length 'low #x46e00000 0)
(set-setting! 'string-min-length 'low #x46800000 0)
(set-setting! 'string-max-height 'low #x46a00000 0)
(set-setting! 'string-min-height 'low #x46600000 0)
(set-setting! 'fov 'abs #x46555555 0)
(set-setting! 'head-offset 'abs #x46900000 0)
(set-setting! 'mode-sound-bank 'mech 0 0)
(set-setting! 'sound-flava #f #x41f00000 3)
(set-setting! 'string-max-length 'low (meters 7) 0)
(set-setting! 'string-min-length 'low (meters 4) 0)
(set-setting! 'string-max-height 'low (meters 5) 0)
(set-setting! 'string-min-height 'low (meters 3.5) 0)
(set-setting! 'fov 'abs (degrees 75.0) 0)
(set-setting! 'head-offset 'abs (meters 4.5) 0)
(set-setting! 'mode-sound-bank 'mech 0.0 0)
(set-setting! 'sound-flava #f 30.0 3)
(set! (-> self mech hud 0) (ppointer->handle (process-spawn hud-heatmeter :init hud-init-by-other :to self)))
(remove-exit)
(if arg2
+16 -16
View File
@@ -318,7 +318,7 @@
(set! (-> self darkjak start-time) (-> self clock frame-counter))
(set! (-> self darkjak attack-count) (the-as uint 0))
(set! (-> self darkjak-giant-interp) 1.0)
(set-setting! 'sound-flava #f #x41f00000 4)
(set-setting! 'sound-flava #f 30.0 4)
(set! (-> self focus-status) (logior (focus-status dark) (-> self focus-status)))
(set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-start-time) (-> self clock frame-counter))
(set! (-> (the-as fact-info-target (-> self fact-override)) darkjak-effect-time) (seconds 20))
@@ -329,8 +329,8 @@
(if (logtest? arg0 64)
(go target-stance)
)
(set-setting! 'bg-r 'abs #x3dcccccd 0)
(set-setting! 'bg-b 'abs #x3dcccccd 0)
(set-setting! 'bg-r 'abs 0.1 0)
(set-setting! 'bg-b 'abs 0.1 0)
(set-forward-vel 0.0)
(let ((s5-0 0))
(while (not (logtest? (-> self control status) (collide-status on-surface)))
@@ -433,7 +433,7 @@
(set! (-> a1-1 message) 'target)
(set! (-> a1-1 param 0) (the-as uint 'normal))
(let ((t9-1 send-event-function)
(v1-12 (-> *game-info* sub-task-list 4))
(v1-12 (-> *game-info* sub-task-list (game-task-node city-help-kid-introduction)))
)
(t9-1
(handle->process (if (-> v1-12 info)
@@ -606,7 +606,7 @@
(sv-56 handle)
(sv-64 int)
)
(set-setting! 'rapid-tracking #f 0 0)
(set-setting! 'rapid-tracking #f 0.0 0)
((lambda :behavior target
()
(set! (-> self control bend-target) (* 0.5 (-> self control bend-target)))
@@ -1124,9 +1124,9 @@
(ja :num! (seek!))
)
)
(set-setting! 'music-volume 'rel 0 0)
(set-setting! 'sfx-volume 'rel 0 0)
(set-setting! 'ambient-volume 'rel 0 0)
(set-setting! 'music-volume 'rel 0.0 0)
(set-setting! 'sfx-volume 'rel 0.0 0)
(set-setting! 'ambient-volume 'rel 0.0 0)
(ja-no-eval :group! (-> self draw art-group data 416)
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 416)) frames num-frames) -1)))
:frame-num 0.0
@@ -1583,8 +1583,8 @@
)
(logior! (-> self state-flags) (state-flags sf4))
(set! (-> self neck flex-blend) 0.0)
(set-setting! 'music-volume 'rel 0 0)
(set-setting! 'ambient-volume 'rel 0 0)
(set-setting! 'music-volume 'rel 0.0 0)
(set-setting! 'ambient-volume 'rel 0.0 0)
(compute-alignment! (-> self align))
(set-action!
*gui-control*
@@ -1932,12 +1932,12 @@
)
)
(when gp-2
(set-setting! 'string-min-length 'rel #x3fe66666 0)
(set-setting! 'string-max-length 'rel #x3fc00000 0)
(set-setting! 'string-spline-max-move 'abs #x46000000 0)
(set-setting! 'string-spline-accel 'abs #x433851ec 0)
(set-setting! 'string-spline-max-move-player 'abs #x45c00000 0)
(set-setting! 'string-spline-accel-player 'abs #x430f5c29 0)
(set-setting! 'string-min-length 'rel 1.8 0)
(set-setting! 'string-max-length 'rel 1.5 0)
(set-setting! 'string-spline-max-move 'abs (meters 2) 0)
(set-setting! 'string-spline-accel 'abs (meters 0.045) 0)
(set-setting! 'string-spline-max-move-player 'abs (meters 1.5) 0)
(set-setting! 'string-spline-accel-player 'abs (meters 0.035) 0)
)
(ja-channel-push! 1 (seconds 0.1))
(ja-no-eval :group! (-> self draw art-group data 412) :num! (seek! (ja-aframe 17.0 0)) :frame-num 0.0)
+20 -20
View File
@@ -128,12 +128,12 @@
)
(kill-persister *setting-control* (the-as engine-pers 'fail) 'bg-a)
(when (not (logtest? (-> arg0 flags) (continue-flags cf4)))
(add-setting! 'bg-a 'abs #x3f800000 0)
(add-setting! 'bg-a 'abs 1.0 0)
(set! (-> *setting-control* user-current bg-a) 1.0)
)
(set-setting! 'sfx-volume 'abs 0 0)
(set-setting! 'ambient-volume 'abs 0 0)
(set-setting! 'dialog-volume 'abs 0 0)
(set-setting! 'sfx-volume 'abs 0.0 0)
(set-setting! 'ambient-volume 'abs 0.0 0)
(set-setting! 'dialog-volume 'abs 0.0 0)
(when (and (not (string= (-> arg0 name) "default")) (not (demo?)))
(let ((v1-37 (lookup-level-info (-> arg0 level))))
(when (and v1-37
@@ -141,15 +141,15 @@
(!= (-> v1-37 music-bank) (-> *setting-control* user-current music))
(!= (level-status *level* (-> arg0 vis-nick)) 'active)
)
(set-setting! 'music #f 0 0)
(set-setting! 'music-volume 'abs 0 0)
(set-setting! 'music #f 0.0 0)
(set-setting! 'music-volume 'abs 0.0 0)
)
)
)
(set-setting! 'region-mode #f 0 0)
(set-setting! 'border-mode #f 0 0)
(set-setting! 'allow-continue #f 0 0)
(set-setting! 'allow-timeout #f 0 0)
(set-setting! 'region-mode #f 0.0 0)
(set-setting! 'border-mode #f 0.0 0)
(set-setting! 'allow-continue #f 0.0 0)
(set-setting! 'allow-timeout #f 0.0 0)
(set! (-> *setting-control* user-default border-mode) #f)
(apply-settings *setting-control*)
(reset-target-state #t)
@@ -218,13 +218,13 @@
(remove-setting! 'music-volume)
(let ((s5-2 (-> *level* border?)))
(set! (-> *level* border?) (-> *level* play?))
(set-setting! 'allow-continue #t 0 0)
(set-setting! 'border-mode #t 0 0)
(set-setting! 'allow-continue #t 0.0 0)
(set-setting! 'border-mode #t 0.0 0)
(apply-settings *setting-control*)
(script-eval '(teleport))
(script-eval (-> arg0 on-goto))
(set-setting! 'allow-continue #f 0 0)
(set-setting! 'border-mode #f 0 0)
(set-setting! 'allow-continue #f 0.0 0)
(set-setting! 'border-mode #f 0.0 0)
(apply-settings *setting-control*)
(set! (-> *level* border?) s5-2)
)
@@ -1382,7 +1382,7 @@
(if (or (rand-vu-percent? 0.5) (nonzero? (-> *task-manager-engine* length)))
(set! gp-2 (the-as spool-anim #f))
)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-progress #f 0.0 0)
(target-death-anim gp-2)
(cond
((or (not gp-2) (or (or (logtest? (water-flags touch-water) (-> self water flags))
@@ -1566,13 +1566,13 @@
(target-timed-invulnerable-off self 0)
(case arg0
(('bot 'centipede)
(set-setting! 'process-mask 'set 0 (process-mask platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask platform projectile death))
)
(('endlessfall)
(set-setting! 'process-mask 'set 0 (process-mask enemy projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask enemy projectile death))
)
(('instant-death 'lava 'dark-eco-pool 'melt 'explode 'grenade 'big-explosion 'turret)
(set-setting! 'process-mask 'set 0 (process-mask enemy platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask enemy platform projectile death))
)
(else
(let ((v1-21 (-> self water flags)))
@@ -1585,7 +1585,7 @@
(set! arg0 'drown)
)
)
(set-setting! 'process-mask 'set 0 (process-mask enemy platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask enemy platform projectile death))
(when (using-gun? self)
(send-event (ppointer->process (-> self gun gun)) 'die)
(target-gun-end-mode #f)
@@ -1876,7 +1876,7 @@
(add-process *gui-control* *target* (gui-channel daxter) (gui-action play) "jakfall" -99.0 0)
)
(set-falloff! *gui-control* (-> self control unknown-sound-id00) #t -1 100 2)
(set-setting! 'mode-name 'cam-endlessfall 0 0)
(set-setting! 'mode-name 'cam-endlessfall 0.0 0)
(logclear! (-> self water flags) (water-flags swim-ground))
(let ((f0-1 (fmin -4096.0 (- (-> self control ground-impact-vel)))))
(set! (-> self control unknown-word04) (the-as uint f0-1))
+3 -3
View File
@@ -230,9 +230,9 @@
(if (zero? (-> self gun blue-whine-sound-id))
(set! (-> self gun blue-whine-sound-id) (the-as uint (new-sound-id)))
)
(set-setting! 'mode-sound-bank 'gun 0 0)
(set-setting! 'mode-sound-bank 'gun 0.0 0)
(sound-play "gun-takeout")
(set-setting! 'sound-flava #f #x41f00000 1)
(set-setting! 'sound-flava #f 30.0 1)
(set! (-> self gun charge-ammo) 0.0)
(set! (-> self gun charge-start-time) 0)
(set! (-> self gun top-anim-tilt-up) 0.0)
@@ -696,7 +696,7 @@
(set! (-> self gun combo-fire-delay) (the-as uint 150))
(set! (-> self gun track-beam-size) 1228.8)
(remove-setting! 'gun-min-height)
(set-setting! 'gun-max-height 'abs #x46c00000 0)
(set-setting! 'gun-max-height 'abs (meters 6) 0)
)
((4)
(set! (-> self gun gun-control) (the-as uint 2))
+2 -2
View File
@@ -571,7 +571,7 @@
(none)
)
:code (behavior ((arg0 handle))
(set-setting! 'slave-options 'set 0 8192)
(set-setting! 'slave-options 'set 0.0 (cam-slave-options BIKE_MODE))
(target-exit)
(set! (-> self control surf) *tube-surface*)
(if (zero? (-> self tube))
@@ -936,7 +936,7 @@
(local-vars (v1-42 symbol))
(set! (-> self neck flex-blend) 0.0)
(target-timed-invulnerable-off self 0)
(add-setting! 'process-mask 'set 0 (process-mask enemy platform projectile death))
(add-setting! 'process-mask 'set 0.0 (process-mask enemy platform projectile death))
(apply-settings *setting-control*)
(set! (-> self control transv quad) (the-as uint128 0))
(set! (-> self control mod-surface) *neutral-mods*)
+1 -1
View File
@@ -1043,7 +1043,7 @@
)
)
:enter (behavior ()
(set-setting! 'mode-name 'cam-turret 0 0)
(set-setting! 'mode-name 'cam-turret 0.0 0)
(none)
)
:code (the-as (function none :behavior base-turret) sleep-code)
+1 -1
View File
@@ -257,7 +257,7 @@
(set! (-> self cam-user-mode) 'look-around)
(set! (-> self control mod-surface) *look-around-mods*)
(logior! (-> self focus-status) (focus-status in-head))
(set-setting! 'mode-name 'cam-eye 0 0)
(set-setting! 'mode-name 'cam-eye 0.0 0)
(none)
)
:exit (behavior ()
+4 -4
View File
@@ -82,10 +82,10 @@
process
(lambda :behavior scene-player
()
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'music 'forest 0 0)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'allow-pause #f 0.0 0)
(set-setting! 'allow-progress #f 0.0 0)
(set-setting! 'music 'forest 0.0 0)
(set-setting! 'sound-mode #f 0.0 1)
(apply-settings *setting-control*)
(let ((gp-0 (ppointer->process (-> self parent))))
(when (type? gp-0 scene-player)
+100 -75
View File
@@ -4165,7 +4165,7 @@
(none)
)
;; WARN: Return type mismatch object vs pointer.
;; WARN: Return type mismatch object vs none.
(defun draw-secret-list ((arg0 secret-item-option) (arg1 progress) (arg2 font-context) (arg3 int) (arg4 symbol) (arg5 float))
(let ((s4-0 (and arg4 (= arg3 1))))
380.0
@@ -4242,77 +4242,74 @@
)
)
)
(the-as
pointer
(cond
((and (not s4-0) (not (logtest? (-> *game-info* purchase-secrets) (-> arg0 flag))))
(+! (-> arg2 origin x) (the float (if (= (get-aspect-ratio) 'aspect4x3)
50
45
)
)
)
(let ((s4-2 print-game-text))
(format (clear *temp-string*) "~D" (-> arg0 cost))
(s4-2 *temp-string* arg2 #f 44 (bucket-id progress))
(cond
((and (not s4-0) (not (logtest? (-> *game-info* purchase-secrets) (-> arg0 flag))))
(+! (-> arg2 origin x) (the float (if (= (get-aspect-ratio) 'aspect4x3)
50
45
)
)
)
(let ((s4-2 print-game-text))
(format (clear *temp-string*) "~D" (-> arg0 cost))
(s4-2 *temp-string* arg2 #f 44 (bucket-id progress))
)
((and (not s4-0) (= (-> arg0 can-toggle) #t) (logtest? (-> *game-info* secrets) (-> arg0 flag)))
(+! (-> arg2 origin x) (the float (if (= (get-aspect-ratio) 'aspect4x3)
50
45
)
)
)
(let ((s5-2 print-game-text))
(format (clear *temp-string*) "~S" (lookup-text! *common-text* (text-id progress-on) #f))
(s5-2 *temp-string* arg2 #f 44 (bucket-id progress))
)
((and (not s4-0) (= (-> arg0 can-toggle) #t) (logtest? (-> *game-info* secrets) (-> arg0 flag)))
(+! (-> arg2 origin x) (the float (if (= (get-aspect-ratio) 'aspect4x3)
50
45
)
)
)
(let ((s5-2 print-game-text))
(format (clear *temp-string*) "~S" (lookup-text! *common-text* (text-id progress-on) #f))
(s5-2 *temp-string* arg2 #f 44 (bucket-id progress))
)
((and (not s4-0) (= (-> arg0 can-toggle) #t) (not (logtest? (-> *game-info* secrets) (-> arg0 flag))))
(+! (-> arg2 origin x) (the float (if (= (get-aspect-ratio) 'aspect4x3)
50
45
)
)
)
(let ((s5-4 print-game-text))
(format (clear *temp-string*) "~S" (lookup-text! *common-text* (text-id progress-off) #f))
(s5-4 *temp-string* arg2 #f 44 (bucket-id progress))
)
((and (not s4-0) (= (-> arg0 can-toggle) #t) (not (logtest? (-> *game-info* secrets) (-> arg0 flag))))
(+! (-> arg2 origin x) (the float (if (= (get-aspect-ratio) 'aspect4x3)
50
45
)
)
)
(let ((s5-4 print-game-text))
(format (clear *temp-string*) "~S" (lookup-text! *common-text* (text-id progress-off) #f))
(s5-4 *temp-string* arg2 #f 44 (bucket-id progress))
)
((and (not s4-0) (!= (-> arg0 can-toggle) #t))
(let ((s3-8 80)
(s5-5 70)
(f30-3 (-> arg2 origin x))
)
(set! s3-8 (cond
((= (get-aspect-ratio) 'aspect4x3)
(empty)
s3-8
)
(else
s5-5
)
)
((and (not s4-0) (!= (-> arg0 can-toggle) #t))
(let ((s3-8 80)
(s5-5 70)
(f30-3 (-> arg2 origin x))
)
(set! s3-8 (cond
((= (get-aspect-ratio) 'aspect4x3)
(empty)
s3-8
)
(else
s5-5
)
)
(set! (-> arg2 origin x) (+ f30-3 (the float s3-8)))
)
(let ((a0-61 arg2))
(set! (-> a0-61 flags) (font-flags kerning right large))
)
(let ((s5-6 print-game-text))
(format (clear *temp-string*) "~S" (lookup-text! *common-text* (text-id progress-secrets-unlocked) #f))
(s5-6 *temp-string* arg2 #f 44 (bucket-id progress))
)
(let ((v0-15 (the-as object arg2)))
(set! (-> (the-as font-context v0-15) flags) (font-flags kerning large))
v0-15
)
)
)
(set! (-> arg2 origin x) (+ f30-3 (the float s3-8)))
)
)
(let ((a0-61 arg2))
(set! (-> a0-61 flags) (font-flags kerning right large))
)
(let ((s5-6 print-game-text))
(format (clear *temp-string*) "~S" (lookup-text! *common-text* (text-id progress-secrets-unlocked) #f))
(s5-6 *temp-string* arg2 #f 44 (bucket-id progress))
)
(let ((v0-32 arg2))
(set! (-> v0-32 flags) (font-flags kerning large))
)
)
)
)
(none)
)
(defmethod draw-option menu-secret-option ((obj menu-secret-option) (arg0 progress) (arg1 font-context) (arg2 int) (arg3 symbol))
@@ -5071,7 +5068,11 @@
(set! v0-0 #t)
)
((= v1-0 1)
(set! v0-0 (logtest? (-> *game-info* sub-task-list 75 flags) (game-task-node-flag closed)))
(set! v0-0
(logtest? (-> *game-info* sub-task-list (game-task-node city-yellow-gun-training-introduction) flags)
(game-task-node-flag closed)
)
)
)
((= v1-0 2)
(set! v0-0 (logtest? (-> *game-info* secrets) (game-secrets gungame-blue)))
@@ -5080,27 +5081,45 @@
(set! v0-0 (logtest? (-> *game-info* secrets) (game-secrets gungame-dark)))
)
((= v1-0 4)
(set! v0-0 (logtest? (-> *game-info* sub-task-list 63 flags) (game-task-node-flag closed)))
(set! v0-0 (logtest? (-> *game-info* sub-task-list (game-task-node stadium-board1-introduction) flags)
(game-task-node-flag closed)
)
)
)
((= v1-0 5)
(set! v0-0 (logtest? (-> *game-info* sub-task-list 135 flags) (game-task-node-flag closed)))
(set! v0-0 (logtest? (-> *game-info* sub-task-list (game-task-node stadium-race-class3-introduction) flags)
(game-task-node-flag closed)
)
)
)
((= v1-0 6)
(set! v0-0 (logtest? (-> *game-info* sub-task-list 181 flags) (game-task-node-flag closed)))
(set! v0-0 (logtest? (-> *game-info* sub-task-list (game-task-node stadium-race-class2-introduction) flags)
(game-task-node-flag closed)
)
)
)
((= v1-0 7)
(set! v0-0 (logtest? (-> *game-info* sub-task-list 209 flags) (game-task-node-flag closed)))
(set! v0-0 (logtest? (-> *game-info* sub-task-list (game-task-node stadium-race-class1-introduction) flags)
(game-task-node-flag closed)
)
)
)
((= v1-0 8)
(set! v0-0 (or (logtest? (-> *game-info* sub-task-list 308 flags) (game-task-node-flag closed))
(open? (-> *game-info* sub-task-list 308))
)
(set! v0-0
(or (logtest? (-> *game-info* sub-task-list (game-task-node city-burning-bush-race-port-introduction) flags)
(game-task-node-flag closed)
)
(open? (-> *game-info* sub-task-list (game-task-node city-burning-bush-race-port-introduction)))
)
)
)
((= v1-0 9)
(set! v0-0 (or (logtest? (-> *game-info* sub-task-list 306 flags) (game-task-node-flag closed))
(open? (-> *game-info* sub-task-list 306))
)
(set! v0-0
(or (logtest? (-> *game-info* sub-task-list (game-task-node city-burning-bush-race-errol-introduction) flags)
(game-task-node-flag closed)
)
(open? (-> *game-info* sub-task-list (game-task-node city-burning-bush-race-errol-introduction)))
)
)
)
((= v1-0 10)
@@ -5113,10 +5132,16 @@
(set! v0-0 (logtest? (-> *game-info* secrets) (game-secrets reverse-races)))
)
((= v1-0 13)
(set! v0-0 (logtest? (-> *game-info* sub-task-list 149 flags) (game-task-node-flag closed)))
(set! v0-0 (logtest? (-> *game-info* sub-task-list (game-task-node city-play-onin-game-introduction) flags)
(game-task-node-flag closed)
)
)
)
((= v1-0 14)
(set! v0-0 (logtest? (-> *game-info* sub-task-list 224 flags) (game-task-node-flag closed)))
(set! v0-0 (logtest? (-> *game-info* sub-task-list (game-task-node city-whack-introduction) flags)
(game-task-node-flag closed)
)
)
)
)
)
+1 -2
View File
@@ -363,7 +363,7 @@
(hide-hud #f)
(disable-level-text-file-loading)
(logclear! (-> self mask) (process-mask menu progress actor-pause))
(add-setting! 'process-mask 'set 0 (process-mask progress))
(add-setting! 'process-mask 'set 0.0 (process-mask progress))
(set! (-> self clock) (-> *display* real-clock))
(apply-settings *setting-control*)
(set-blackout-frames 0)
@@ -1293,7 +1293,6 @@
0
)
;; ERROR: Failed store: (s.w! (+ v1-8 8) 0) at op 19
(defun end-scan ((arg0 hud-box) (arg1 float))
(with-dma-buffer-add-bucket ((s5-0 (-> *display* frames (-> *display* on-screen) global-buf))
(bucket-id progress)
+2 -2
View File
@@ -166,9 +166,9 @@
(send-event arg0 'hide #f)
(ashelin-method-250 arg0 #t)
(set! (-> arg0 notice-enemy-dist) 245760.0)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
(logior! (-> arg0 bot-flags) (bot-flags bf06))
(set-setting! 'airlock #f 0 0)
(set-setting! 'airlock #f 0.0 0)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) (process->ppointer pp))
(set! (-> a1-4 num-params) 0)
+2 -2
View File
@@ -1305,8 +1305,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
18
3
(game-task-node atoll-water-exit)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(local-vars (v1-31 symbol))
+11 -11
View File
@@ -318,7 +318,7 @@
(logclear! (-> arg0 focus-status) (focus-status disable))
(logior! (-> arg0 bot-flags) (bot-flags bf06))
(set! (-> arg0 too-far-warn-dist) 286720.0)
(set-setting! 'airlock #f 0 0)
(set-setting! 'airlock #f 0.0 0)
(let ((a1-3 (new 'stack-no-clear 'array 'symbol 3)))
(set! (-> a1-3 2) 'atoll3)
(set! (-> a1-3 1) 'atoll2)
@@ -968,7 +968,7 @@
(process-grab? *target* #f)
(reset-warn-time! arg1)
(play-speech arg1 10)
(set-setting! 'entity-name "camera-68" 0 0)
(set-setting! 'entity-name "camera-68" 0.0 0)
)
(else
(set! (-> arg1 too-far-warn-dist) 81920.0)
@@ -992,7 +992,7 @@
(when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3))
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 2)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
)
)
)
@@ -1400,7 +1400,7 @@
(process-grab? *target* #f)
(play-speech arg1 15)
(reset-warn-time! arg1)
(set-setting! 'entity-name "camera-69" 0 0)
(set-setting! 'entity-name "camera-69" 0.0 0)
)
(else
(set! (-> arg1 too-far-warn-dist) 73728.0)
@@ -1424,7 +1424,7 @@
(when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3))
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
)
)
)
@@ -1806,7 +1806,7 @@
(process-grab? *target* #f)
(reset-warn-time! arg1)
(play-speech arg1 21)
(set-setting! 'entity-name "camera-70" 0 0)
(set-setting! 'entity-name "camera-70" 0.0 0)
)
(else
(set! (-> arg1 too-far-warn-dist) 61440.0)
@@ -1830,7 +1830,7 @@
(when (>= (- (-> pp clock frame-counter) (-> arg1 waypoint-time0)) (seconds 3))
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
)
)
)
@@ -2155,7 +2155,7 @@
(process-grab? *target* #f)
(reset-warn-time! arg1)
(play-speech arg1 23)
(set-setting! 'entity-name "camera-71" 0 0)
(set-setting! 'entity-name "camera-71" 0.0 0)
)
(else
(set! (-> arg1 too-far-warn-dist) 73728.0)
@@ -2186,7 +2186,7 @@
(set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0)
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
)
)
)
@@ -2785,7 +2785,7 @@
(process-grab? *target* #f)
(reset-warn-time! arg1)
(play-speech arg1 31)
(set-setting! 'entity-name "camera-72" 0 0)
(set-setting! 'entity-name "camera-72" 0.0 0)
)
(else
(set! (-> arg1 too-far-warn-dist) 61440.0)
@@ -2816,7 +2816,7 @@
(set-setting! 'string-startup-vector 'abs (new 'static 'vector :x -1.0) 0)
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
)
)
)
@@ -2141,7 +2141,7 @@ For example for an elevator pre-compute the distance between the first and last
)
(process-spawn scene-player :init scene-player-init "castle-krew-boss-fight-intro" #t #f)
)
(set-setting! 'music 'danger6 0 0)
(set-setting! 'music 'danger6 0.0 0)
(while (not (task-node-closed? (game-task-node castle-boss-introduction)))
(suspend)
)
@@ -3190,7 +3190,7 @@ For example for an elevator pre-compute the distance between the first and last
(t9-0)
)
)
(set-setting! 'music #f 0 0)
(set-setting! 'music #f 0.0 0)
(nav-enemy-method-166 self)
(let ((v1-8 self))
(if (not (logtest? (enemy-flag enemy-flag36) (-> v1-8 enemy-flags)))
@@ -97,7 +97,7 @@
)
(when (logtest? (-> self elevator-status) (elevator-status waiting-to-descend))
(configure-collision self #t)
(set-setting! 'jump #f 0 0)
(set-setting! 'jump #f 0.0 0)
)
(none)
)
+24 -27
View File
@@ -9,33 +9,30 @@
(set-subtask-hook!
*game-info*
219
3
(the-as
(function object)
(lambda :behavior task-manager
()
(let ((gp-0 (new 'stack-no-clear 'task-arrow-params)))
(set! (-> gp-0 pos quad) (-> self info end-sphere quad))
(quaternion-identity! (-> gp-0 quat))
(set! (-> gp-0 flags) (task-arrow-flags))
(set! (-> gp-0 map-icon) (the-as uint 15))
(set! (-> self arrow) (process->handle (task-arrow-spawn gp-0 (the-as task-arrow self))))
)
(until #f
(when (< (vector-vector-distance (target-pos 0) (-> self info end-sphere)) (-> self info end-sphere r))
(send-event (handle->process (-> self arrow)) 'leave)
(let ((gp-2 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.007))
(suspend)
)
)
(go-virtual complete)
)
(suspend)
)
#f
(none)
(game-task-node castle-break-in-castle-1)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(let ((gp-0 (new 'stack-no-clear 'task-arrow-params)))
(set! (-> gp-0 pos quad) (-> self info end-sphere quad))
(quaternion-identity! (-> gp-0 quat))
(set! (-> gp-0 flags) (task-arrow-flags))
(set! (-> gp-0 map-icon) (the-as uint 15))
(set! (-> self arrow) (process->handle (task-arrow-spawn gp-0 (the-as task-arrow self))))
)
(until #f
(when (< (vector-vector-distance (target-pos 0) (-> self info end-sphere)) (-> self info end-sphere r))
(send-event (handle->process (-> self arrow)) 'leave)
(let ((gp-2 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-2) (seconds 0.007))
(suspend)
)
)
(go-virtual complete)
)
(suspend)
)
#f
(none)
)
)
+14 -14
View File
@@ -1451,7 +1451,7 @@ This commonly includes things such as:
:code (the-as (function none :behavior cty-guard-turret) sleep-code)
:post (behavior ()
(when (>= (-> self id) 0)
(let* ((v1-4 (-> *game-info* sub-task-list 87))
(let* ((v1-4 (-> *game-info* sub-task-list (game-task-node city-power-resolution)))
(gp-0 (if (-> v1-4 info)
(-> v1-4 info manager)
(the-as handle #f)
@@ -1527,7 +1527,7 @@ This commonly includes things such as:
:to self
)
)
(when (and (>= (-> self id) 0) (let ((v1-12 (-> *game-info* sub-task-list 87)))
(when (and (>= (-> self id) 0) (let ((v1-12 (-> *game-info* sub-task-list (game-task-node city-power-resolution))))
(handle->process (if (-> v1-12 info)
(-> v1-12 info manager)
(the-as handle #f)
@@ -1542,7 +1542,7 @@ This commonly includes things such as:
(set! (-> a1-6 message) 'guard-turret-killed)
(set! (-> a1-6 param 0) (the-as uint (-> self id)))
(let ((t9-5 send-event-function)
(v1-23 (-> *game-info* sub-task-list 87))
(v1-23 (-> *game-info* sub-task-list (game-task-node city-power-resolution)))
)
(t9-5
(handle->process (if (-> v1-23 info)
@@ -1564,7 +1564,7 @@ This commonly includes things such as:
(cond
((and (>= (-> self id) 0)
(begin
(let ((v1-4 (-> *game-info* sub-task-list 87)))
(let ((v1-4 (-> *game-info* sub-task-list (game-task-node city-power-resolution))))
(set! v1-6 (if (-> v1-4 info)
(-> v1-4 info manager)
(the-as handle #f)
@@ -1598,7 +1598,7 @@ This commonly includes things such as:
(set! (-> a1-2 message) 'guard-turret-button-pushed)
(set! (-> a1-2 param 0) (the-as uint (-> self id)))
(let ((t9-1 send-event-function)
(v1-25 (-> *game-info* sub-task-list 87))
(v1-25 (-> *game-info* sub-task-list (game-task-node city-power-resolution)))
)
(t9-1
(handle->process (if (-> v1-25 info)
@@ -1663,7 +1663,7 @@ This commonly includes things such as:
(set! (-> a1-0 param 0) (the-as uint (-> self id)))
(set! (-> a1-0 param 1) (the-as uint #f))
(let ((t9-0 send-event-function)
(v1-6 (-> *game-info* sub-task-list 87))
(v1-6 (-> *game-info* sub-task-list (game-task-node city-power-resolution)))
)
(t9-0
(handle->process (if (-> v1-6 info)
@@ -1694,7 +1694,7 @@ This commonly includes things such as:
(set! (-> a1-2 message) 'guard-turret-button-pushed)
(set! (-> a1-2 param 0) (the-as uint (-> self id)))
(let ((t9-3 send-event-function)
(v1-25 (-> *game-info* sub-task-list 87))
(v1-25 (-> *game-info* sub-task-list (game-task-node city-power-resolution)))
)
(t9-3
(handle->process (if (-> v1-25 info)
@@ -1742,7 +1742,7 @@ This commonly includes things such as:
(set! (-> a1-0 param 0) (the-as uint (-> self id)))
(set! (-> a1-0 param 1) (the-as uint #t))
(let ((t9-0 send-event-function)
(v1-7 (-> *game-info* sub-task-list 87))
(v1-7 (-> *game-info* sub-task-list (game-task-node city-power-resolution)))
)
(t9-0
(handle->process (if (-> v1-7 info)
@@ -2218,7 +2218,7 @@ This commonly includes things such as:
(cond
((and (>= (-> obj id) 0)
(begin
(let ((v1-21 (-> *game-info* sub-task-list 87)))
(let ((v1-21 (-> *game-info* sub-task-list (game-task-node city-power-resolution))))
(set! v1-23 (if (-> v1-21 info)
(-> v1-21 info manager)
(the-as handle #f)
@@ -2240,7 +2240,7 @@ This commonly includes things such as:
(set! (-> a1-11 param 0) (the-as uint (-> obj id)))
(set! (-> a1-11 param 1) (the-as uint (-> obj root-override trans)))
(let* ((t9-12 send-event-function)
(v1-33 (-> *game-info* sub-task-list 87))
(v1-33 (-> *game-info* sub-task-list (game-task-node city-power-resolution)))
(v1-38 (t9-12
(handle->process (if (-> v1-33 info)
(-> v1-33 info manager)
@@ -3167,7 +3167,7 @@ This commonly includes things such as:
(defstate talking (burning-bush)
:virtual #t
:enter (behavior ()
(set-setting! 'minimap 'clear 0 128)
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(set! (-> self time) -1.0)
(process-entity-status! self (entity-perm-status no-kill) #t)
(none)
@@ -3266,7 +3266,7 @@ This commonly includes things such as:
)
)
:code (behavior ()
(set-setting! 'mode-name 'cam-really-fixed 0 0)
(set-setting! 'mode-name 'cam-really-fixed 0.0 0)
(suspend)
(until (process-grab? *target* #f)
(suspend)
@@ -3356,7 +3356,7 @@ This commonly includes things such as:
(defstate menu (burning-bush)
:virtual #t
:enter (behavior ()
(set-setting! 'minimap 'clear 0 128)
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(set! (-> self time) -1.0)
(set! (-> self state-time) (-> self clock frame-counter))
(none)
@@ -3758,7 +3758,7 @@ This commonly includes things such as:
)
)
:code (behavior ()
(set-setting! 'mode-name 'cam-really-fixed 0 0)
(set-setting! 'mode-name 'cam-really-fixed 0.0 0)
(suspend)
(until (process-grab? *target* #f)
(suspend)
File diff suppressed because it is too large Load Diff
@@ -882,21 +882,21 @@
(target-timed-invulnerable-off self 0)
(case arg0
(('bot)
(set-setting! 'process-mask 'set 0 (process-mask platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask platform projectile death))
)
(('endlessfall 'instant-death 'lava 'dark-eco-pool 'melt 'explode 'grenade)
(set-setting! 'process-mask 'set 0 (process-mask enemy platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask enemy platform projectile death))
)
(else
(set-setting! 'process-mask 'set 0 (process-mask enemy platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask enemy platform projectile death))
(when (using-gun? self)
(send-event (ppointer->process (-> self gun gun)) 'die)
(target-gun-end-mode #f)
)
)
)
(set-setting! 'mode-name 'cam-fixed 0 0)
(set-setting! 'interp-time 'abs 0 0)
(set-setting! 'mode-name 'cam-fixed 0.0 0)
(set-setting! 'interp-time 'abs 0.0 0)
(apply-settings *setting-control*)
(set! (-> self control transv quad) (the-as uint128 0))
(logior! (-> self focus-status) (focus-status dead))
@@ -2831,7 +2831,7 @@ Process is recycled and moved to reserved, if it deactivates."
(logior! (-> obj alert-state flags) (traffic-alert-flag alarm-on))
(set! (-> *game-info* wanted-flash) (the-as basic #t))
(if (= (-> *setting-control* user-current music) 'city1)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
)
)
(let ((s5-1 (new 'stack-no-clear 'vector)))
@@ -3422,8 +3422,8 @@ Process is recycled and moved to reserved, if it deactivates."
)
(let ((s5-0 (math-camera-pos))
(f30-0 (meters 20))
(f28-0 (meters 2000))
(f26-0 (meters 1200))
(f28-0 (meters 200))
(f26-0 (meters 120))
)
(dotimes (s4-0 (the-as int (-> obj city-info cell-count)))
(let ((s3-0 (-> obj city-info cell-array s4-0)))
@@ -741,7 +741,7 @@
(stack-size-set! (-> self main-thread) 128)
(ctywide-entity-hack)
(init-params self)
(add-setting! 'task-mask 'clear 0 #x4000)
(add-setting! 'task-mask 'clear 0.0 (task-mask ctywide))
(set! (-> self event-hook) traffic-manager-event-handler)
(rigid-body-queue-manager-spawn *traffic-rigid-body-queue* self)
(go-virtual idle)
@@ -140,7 +140,7 @@
:virtual #t
:event (the-as (function process int symbol event-message-block object :behavior vehicle) vehicle-event-handler)
:enter (behavior ()
(set-setting! 'sound-flava #f #x41f80000 5)
(set-setting! 'sound-flava #f 31.0 5)
(set! (-> self state-time) (-> self clock frame-counter))
(iterate-prims
(-> self root-override-2)
@@ -335,17 +335,9 @@ This commonly includes things such as:
(can-display-query? obj (the-as string #f) (/ 1.0 (-> s5-0 floats 3)))
)
)
(let ((s3-1 (new
'stack
'font-context
*font-default-matrix*
32
320
0.0
(font-color default)
(font-flags shadow kerning)
)
)
(let ((s3-1
(new 'stack 'font-context *font-default-matrix* 32 320 0.0 (font-color default) (font-flags shadow kerning))
)
)
(let ((v1-97 s3-1))
(set! (-> v1-97 width) (the float 340))
@@ -913,7 +905,7 @@ This commonly includes things such as:
(set-setting! 'string-max-height 'abs (-> obj info-override camera-string-max-height) 0)
(set-setting! 'head-offset 'abs (-> obj info-override camera-head-offset) 0)
(set-setting! 'foot-offset 'abs (-> obj info-override camera-foot-offset) 0)
(set-setting! 'target-height 'abs 0 0)
(set-setting! 'target-height 'abs (meters 0) 0)
(vehicle-method-92 obj)
(vehicle-method-89 obj)
(persist-with-delay *setting-control* 'mode-name (seconds 0.2) 'mode-name 'cam-fixed 0.0 0)
@@ -972,7 +964,7 @@ This commonly includes things such as:
(defmethod vehicle-method-89 vehicle ((obj vehicle))
(when (not (logtest? (rigid-body-object-flag camera-bike-mode) (-> obj flags)))
(set! (-> obj flags) (logior (rigid-body-object-flag camera-bike-mode) (-> obj flags)))
(set-setting! 'bike-mode #f 0 0)
(set-setting! 'bike-mode #f 0.0 0)
)
0
(none)
@@ -990,7 +982,7 @@ This commonly includes things such as:
(defmethod vehicle-method-91 vehicle ((obj vehicle))
(when (logtest? (-> obj flags) (rigid-body-object-flag player-driving))
(set! (-> obj flags) (logior (rigid-body-object-flag camera-rapid-track-mode) (-> obj flags)))
(set-setting! 'rapid-tracking #f 0 0)
(set-setting! 'rapid-tracking #f 0.0 0)
)
0
(none)
+2 -2
View File
@@ -612,7 +612,7 @@
(when (or (< 55296.0 (-> obj rbody state lin-velocity y))
(>= (- (-> pp clock frame-counter) (-> obj air-time)) (seconds 0.75))
)
(set-setting! 'extra-follow-height 'abs -964689920 0)
(set-setting! 'extra-follow-height 'abs (meters -4) 0)
(send-event *camera* 'set-max-angle-offset (-> obj info-override camera-air-max-angle-offset))
)
)
@@ -711,7 +711,7 @@
)
(cond
((and (< f0-26 0.15) (< -0.5 f0-26))
(set-setting! 'vertical-follow-matches-camera #f 0 0)
(set-setting! 'vertical-follow-matches-camera #f 0.0 0)
)
(else
(if (< (fabs (-> obj root-override-2 transv y)) 8192.0)
@@ -371,7 +371,7 @@
(>= (- (-> pp clock frame-counter) (-> obj locked-player-time)) (seconds 10))
)
(remove-setting! 'pilot-exit)
(set-setting! 'pilot #f 0 0)
(set-setting! 'pilot #f 0.0 0)
(apply-settings *setting-control*)
)
)
@@ -383,7 +383,7 @@
)
)
)
(set-setting! 'pilot-exit #f 0 0)
(set-setting! 'pilot-exit #f 0.0 0)
(apply-settings *setting-control*)
(set! (-> obj locked-player-time) (-> pp clock frame-counter))
)
@@ -697,8 +697,8 @@
:skip-to -1
:on-set (lambda ((arg0 hal-escort))
(process-entity-status! arg0 (entity-perm-status no-kill) #t)
(set-setting! 'exclusive-task #f 0 34)
(set-setting! 'allow-continue #f 0 0)
(set-setting! 'exclusive-task #f 0.0 (game-task city-escort-kid))
(set-setting! 'allow-continue #f 0.0 0)
(clear-speech-flags! arg0)
(speech-control-method-10
*speech-control*
@@ -763,8 +763,8 @@
(logior! (-> v1-12 extra perm status) (entity-perm-status bit-9))
)
)
(set-setting! 'airlock #f 0 0)
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(let ((s5-0 (new 'stack-no-clear 'task-arrow-params)))
(set! (-> s5-0 pos quad) (-> arg0 hal4-course spots 1 center quad))
(quaternion-identity! (-> s5-0 quat))
@@ -874,7 +874,7 @@
:nav-mesh-index -1
:skip-to #xf
:on-set (lambda ((arg0 hal-escort))
(set-setting! 'sound-mode #f 0 2)
(set-setting! 'sound-mode #f 0.0 2)
(let ((s5-0 (-> arg0 hal4-course spots)))
(vector-! (the-as vector (-> arg0 notice-plane)) (the-as vector (-> s5-0 4)) (the-as vector (-> s5-0 3)))
(vector-normalize! (-> arg0 notice-plane) 1.0)
@@ -949,7 +949,7 @@
:skip-to #xf
:on-set (lambda ((arg0 hal-escort))
(init-traffic-params! arg0 #t)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
(let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
(set! (-> v1-5 bytes 5) 1)
(set! (-> v1-5 bytes 6) 0)
@@ -1652,7 +1652,7 @@
(apply-settings *setting-control*)
(send-event (handle->process (-> arg0 arrow-handle)) 'die)
(play-speech arg0 11)
(set-setting! 'entity-name "camera-224" 0 0)
(set-setting! 'entity-name "camera-224" 0.0 0)
(let ((s5-0 *traffic-manager*))
(send-event s5-0 'set-guard-target-level 0)
(send-event s5-0 'set-max-alert-level 0)
@@ -1845,7 +1845,7 @@
(set! (-> a1-1 num-params) 0)
(set! (-> a1-1 message) 'fail)
(let ((t9-0 send-event-function)
(v1-8 (-> *game-info* sub-task-list 111))
(v1-8 (-> *game-info* sub-task-list (game-task-node city-escort-kid-resolution)))
)
(t9-0
(handle->process (if (-> v1-8 info)
@@ -191,8 +191,8 @@
:nav-mesh-index -1
:skip-to -1
:on-set (lambda ((arg0 ashelin-tanker))
(set-setting! 'calm #t 0 0)
(set-setting! 'exclusive-task #f 0 42)
(set-setting! 'calm #t 0.0 0)
(set-setting! 'exclusive-task #f 0.0 (game-task city-intercept-tanker))
(let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) asht-wait-spot arg0)))
(set! (-> v1-5 bytes 5) 1)
(set! (-> v1-5 bytes 6) 0)
@@ -254,7 +254,7 @@
(with-pp
(send-event arg0 'hide #f)
(remove-setting! 'calm)
(set-setting! 'music 'danger9 0 0)
(set-setting! 'music 'danger9 0.0 0)
(set! (-> arg0 notice-enemy-dist) 245760.0)
(logior! (-> arg0 bot-flags) (bot-flags bf06))
(set! (-> arg0 bot-task-bits) (logand -3 (-> arg0 bot-task-bits)))
File diff suppressed because it is too large Load Diff
@@ -206,140 +206,134 @@
(set-subtask-hook!
*game-info*
73
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -245760.0 :y 45056.0 :z 5468160.0 :w 1.0) quad))
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(let ((traffic-manager *traffic-manager*)
(traffic-obj-params (new 'stack 'traffic-object-spawn-params))
)
(set! (-> traffic-obj-params position quad) (-> self begin-pos quad))
(quaternion-axis-angle! (-> traffic-obj-params rotation) 0.0 1.0 0.0 16384.0)
(set! (-> traffic-obj-params object-type) (traffic-type bikec))
(set! (-> traffic-obj-params behavior) (the-as uint 0))
(set! (-> traffic-obj-params id) (the-as uint 0))
(set! (-> traffic-obj-params proc) #f)
(send-event traffic-manager 'spawn-object traffic-obj-params)
)
(set! (-> self start-time) 0)
(set! (-> self count) -1)
(set! (-> self max-count) 14)
(set! (-> self data-vector 0 quad)
(-> (new 'static 'vector :x 1282048.0 :y 37925.273 :z 5492736.0 :w 1.0) quad)
)
(set! (-> self data-vector 1 quad)
(-> (new 'static 'vector :x 2392064.0 :y 23235.379 :z 5980160.0 :w 1.0) quad)
)
(set! (-> self data-vector 2 quad)
(-> (new 'static 'vector :x 3231744.0 :y 38680.984 :z 4788224.0 :w 1.0) quad)
)
(set! (-> self data-vector 3 quad)
(-> (new 'static 'vector :x 3829760.0 :y 38680.984 :z 3682304.0 :w 1.0) quad)
)
(set! (-> self data-vector 4 quad)
(-> (new 'static 'vector :x 4325376.0 :y 38680.984 :z 2564096.0 :w 1.0) quad)
)
(set! (-> self data-vector 5 quad)
(-> (new 'static 'vector :x 4014080.0 :y 38680.984 :z 1822720.0 :w 1.0) quad)
)
(set! (-> self data-vector 6 quad)
(-> (new 'static 'vector :x 3698688.0 :y 38680.984 :z 1728512.0 :w 1.0) quad)
)
(set! (-> self data-vector 7 quad)
(-> (new 'static 'vector :x 3792896.0 :y 38680.984 :z 2387968.0 :w 1.0) quad)
)
(set! (-> self data-vector 8 quad)
(-> (new 'static 'vector :x 4616192.0 :y 38680.984 :z 2863104.0 :w 1.0) quad)
)
(set! (-> self data-vector 9 quad)
(-> (new 'static 'vector :x 3633152.0 :y 38680.984 :z 3477504.0 :w 1.0) quad)
)
(set! (-> self data-vector 10 quad)
(-> (new 'static 'vector :x 3993600.0 :y 38680.984 :z 4378624.0 :w 1.0) quad)
)
(set! (-> self data-vector 11 quad)
(-> (new 'static 'vector :x 3112960.0 :y 23472.947 :z 5390336.0 :w 1.0) quad)
)
(set! (-> self data-vector 12 quad)
(-> (new 'static 'vector :x 1789952.0 :y 37616.027 :z 5455872.0 :w 1.0) quad)
)
(set! (-> self data-vector 13 quad)
(-> (new 'static 'vector :x 237568.0 :y 37541.477 :z 5439488.0 :w 1.0) quad)
)
(set! (-> self data-int32 0) #x2904)
(set! (-> self data-int32 1) 9000)
(set! (-> self data-int32 2) 9000)
(set! (-> self data-int32 3) 9000)
(set! (-> self data-int32 4) 9000)
(set! (-> self data-int32 5) 9000)
(set! (-> self data-int32 6) 3000)
(set! (-> self data-int32 7) 6000)
(set! (-> self data-int32 8) 9000)
(set! (-> self data-int32 9) 9000)
(set! (-> self data-int32 10) 9000)
(set! (-> self data-int32 11) 9000)
(set! (-> self data-int32 12) 7500)
(set! (-> self data-int32 13) 7500)
(set! (-> *game-info* counter) (the float (-> self max-count)))
(none)
(game-task-node city-krew-collection-collection)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -245760.0 :y 45056.0 :z 5468160.0 :w 1.0) quad))
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(let ((traffic-manager *traffic-manager*)
(traffic-obj-params (new 'stack 'traffic-object-spawn-params))
)
(set! (-> traffic-obj-params position quad) (-> self begin-pos quad))
(quaternion-axis-angle! (-> traffic-obj-params rotation) 0.0 1.0 0.0 16384.0)
(set! (-> traffic-obj-params object-type) (traffic-type bikec))
(set! (-> traffic-obj-params behavior) (the-as uint 0))
(set! (-> traffic-obj-params id) (the-as uint 0))
(set! (-> traffic-obj-params proc) #f)
(send-event traffic-manager 'spawn-object traffic-obj-params)
)
(set! (-> self start-time) 0)
(set! (-> self count) -1)
(set! (-> self max-count) 14)
(set! (-> self data-vector 0 quad)
(-> (new 'static 'vector :x 1282048.0 :y 37925.273 :z 5492736.0 :w 1.0) quad)
)
(set! (-> self data-vector 1 quad)
(-> (new 'static 'vector :x 2392064.0 :y 23235.379 :z 5980160.0 :w 1.0) quad)
)
(set! (-> self data-vector 2 quad)
(-> (new 'static 'vector :x 3231744.0 :y 38680.984 :z 4788224.0 :w 1.0) quad)
)
(set! (-> self data-vector 3 quad)
(-> (new 'static 'vector :x 3829760.0 :y 38680.984 :z 3682304.0 :w 1.0) quad)
)
(set! (-> self data-vector 4 quad)
(-> (new 'static 'vector :x 4325376.0 :y 38680.984 :z 2564096.0 :w 1.0) quad)
)
(set! (-> self data-vector 5 quad)
(-> (new 'static 'vector :x 4014080.0 :y 38680.984 :z 1822720.0 :w 1.0) quad)
)
(set! (-> self data-vector 6 quad)
(-> (new 'static 'vector :x 3698688.0 :y 38680.984 :z 1728512.0 :w 1.0) quad)
)
(set! (-> self data-vector 7 quad)
(-> (new 'static 'vector :x 3792896.0 :y 38680.984 :z 2387968.0 :w 1.0) quad)
)
(set! (-> self data-vector 8 quad)
(-> (new 'static 'vector :x 4616192.0 :y 38680.984 :z 2863104.0 :w 1.0) quad)
)
(set! (-> self data-vector 9 quad)
(-> (new 'static 'vector :x 3633152.0 :y 38680.984 :z 3477504.0 :w 1.0) quad)
)
(set! (-> self data-vector 10 quad)
(-> (new 'static 'vector :x 3993600.0 :y 38680.984 :z 4378624.0 :w 1.0) quad)
)
(set! (-> self data-vector 11 quad)
(-> (new 'static 'vector :x 3112960.0 :y 23472.947 :z 5390336.0 :w 1.0) quad)
)
(set! (-> self data-vector 12 quad)
(-> (new 'static 'vector :x 1789952.0 :y 37616.027 :z 5455872.0 :w 1.0) quad)
)
(set! (-> self data-vector 13 quad)
(-> (new 'static 'vector :x 237568.0 :y 37541.477 :z 5439488.0 :w 1.0) quad)
)
(set! (-> self data-int32 0) #x2904)
(set! (-> self data-int32 1) 9000)
(set! (-> self data-int32 2) 9000)
(set! (-> self data-int32 3) 9000)
(set! (-> self data-int32 4) 9000)
(set! (-> self data-int32 5) 9000)
(set! (-> self data-int32 6) 3000)
(set! (-> self data-int32 7) 6000)
(set! (-> self data-int32 8) 9000)
(set! (-> self data-int32 9) 9000)
(set! (-> self data-int32 10) 9000)
(set! (-> self data-int32 11) 9000)
(set! (-> self data-int32 12) 7500)
(set! (-> self data-int32 13) 7500)
(set! (-> *game-info* counter) (the float (-> self max-count)))
(none)
)
)
(set-subtask-hook!
*game-info*
73
1
(game-task-node city-krew-collection-collection)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings))
)
(set-subtask-hook!
*game-info*
73
2
(the-as
(function object)
(lambda :behavior task-manager
()
(check-time self)
(when (>= (-> self count) 0)
(cond
((handle->process (-> self slave 0))
)
(else
(let ((task-count (-> self count)))
(cond
((< task-count (-> self max-count))
(let ((krew-item (krew-collection-item-spawn self (-> self data-vector task-count))))
(when krew-item
(set! (-> self slave 0) (process->handle krew-item))
(set! (-> self time-limit) (the-as time-frame (-> self data-int32 task-count)))
(set! (-> self start-time) (-> self clock frame-counter))
(+! (-> self count) 1)
)
(game-task-node city-krew-collection-collection)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(check-time self)
(when (>= (-> self count) 0)
(cond
((handle->process (-> self slave 0))
)
(else
(let ((task-count (-> self count)))
(cond
((< task-count (-> self max-count))
(let ((krew-item (krew-collection-item-spawn self (-> self data-vector task-count))))
(when krew-item
(set! (-> self slave 0) (process->handle krew-item))
(set! (-> self time-limit) (the-as time-frame (-> self data-int32 task-count)))
(set! (-> self start-time) (-> self clock frame-counter))
(+! (-> self count) 1)
)
)
(else
(go-virtual complete)
)
)
(else
(go-virtual complete)
)
)
)
)
)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
73
3
(game-task-node city-krew-collection-collection)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(local-vars (moved-beyond-start? symbol))
@@ -353,7 +347,7 @@
)
)
)
(set-setting! 'airlock #f 0 0)
(set-setting! 'airlock #f 0.0 0)
(set! (-> self count) 0)
(set! (-> self hud-counter)
(ppointer->handle (process-spawn hud-moneybag :init hud-init-by-other :to *target*))
@@ -370,27 +364,24 @@
(set-subtask-hook!
*game-info*
73
5
(game-task-node city-krew-collection-collection)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager () (the-as object (kill-all-children self)))
)
(set-subtask-hook!
*game-info*
73
4
(the-as
(function object)
(lambda :behavior task-manager
()
(send-event *traffic-manager* 'decrease-alert-level 0)
(send-event *traffic-manager* 'set-alert-duration 9000)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(talker-spawn-func (-> *talker-speech* 88) *entity-pool* (target-pos 0) (the-as region #f))
(none)
(game-task-node city-krew-collection-collection)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(send-event *traffic-manager* 'decrease-alert-level 0)
(send-event *traffic-manager* 'set-alert-duration 9000)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(talker-spawn-func (-> *talker-speech* 88) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
@@ -123,79 +123,73 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
24
0
(the-as
(function object)
(lambda :behavior task-manager
()
(while (!= (level-status *level* 'ctysluma) 'active)
(suspend)
)
(let ((v1-3 (entity-by-name "parking-spot-8")))
(if v1-3
(logior! (-> v1-3 extra perm status) (entity-perm-status bit-9))
(game-task-node city-krew-delivery-delivery)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(while (!= (level-status *level* 'ctysluma) 'active)
(suspend)
)
(let ((v1-3 (entity-by-name "parking-spot-8")))
(if v1-3
(logior! (-> v1-3 extra perm status) (entity-perm-status bit-9))
)
)
(set! (-> self end-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(let ((gp-1 *traffic-manager*))
(let ((s5-0 (new 'stack 'traffic-object-spawn-params)))
(set! (-> s5-0 position quad) (-> (new 'static 'vector :x 4698112.0 :y 45875.2 :z 81920.0 :w 1.0) quad))
(quaternion-axis-angle! (-> s5-0 rotation) 0.0 1.0 0.0 32768.0)
(set! (-> s5-0 object-type) (traffic-type bikea))
(set! (-> s5-0 behavior) (the-as uint 0))
(set! (-> s5-0 id) (the-as uint 0))
(set! (-> s5-0 proc) #f)
(send-event gp-1 'spawn-object s5-0)
(when (-> s5-0 proc)
(set! (-> self slave 0) (process->handle (-> s5-0 proc)))
(let ((v1-20 (-> s5-0 proc)))
(set! (-> (the-as vehicle v1-20) damage-factor) 2.0)
)
)
(set! (-> self end-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
(set-setting! 'minimap 'clear 0 32)
(let ((gp-1 *traffic-manager*))
(let ((s5-0 (new 'stack 'traffic-object-spawn-params)))
(set! (-> s5-0 position quad) (-> (new 'static 'vector :x 4698112.0 :y 45875.2 :z 81920.0 :w 1.0) quad))
(quaternion-axis-angle! (-> s5-0 rotation) 0.0 1.0 0.0 32768.0)
(set! (-> s5-0 object-type) (traffic-type bikea))
(set! (-> s5-0 behavior) (the-as uint 0))
(set! (-> s5-0 id) (the-as uint 0))
(set! (-> s5-0 proc) #f)
(send-event gp-1 'spawn-object s5-0)
(when (-> s5-0 proc)
(set! (-> self slave 0) (process->handle (-> s5-0 proc)))
(let ((v1-20 (-> s5-0 proc)))
(set! (-> (the-as vehicle v1-20) damage-factor) 2.0)
)
(let ((v1-22 (krew-package-spawn (-> s5-0 proc) (-> s5-0 proc))))
(if v1-22
(set! (-> self slave 1) (process->handle (-> v1-22 0)))
)
)
)
(let ((s4-0 (new 'stack-no-clear 'task-arrow-params)))
(set! (-> s4-0 pos quad) (-> s5-0 position quad))
(quaternion-identity! (-> s4-0 quat))
(set! (-> s4-0 flags) (task-arrow-flags task-arrow-flag-03))
(set! (-> s4-0 map-icon) (the-as uint 15))
(label cfg-21)
(let ((a0-30 (task-arrow-spawn s4-0 (the-as task-arrow self))))
(when (not a0-30)
(format #t "waiting for task-arrow~%")
(suspend)
(goto cfg-21)
(let ((v1-22 (krew-package-spawn (-> s5-0 proc) (-> s5-0 proc))))
(if v1-22
(set! (-> self slave 1) (process->handle (-> v1-22 0)))
)
(set! (-> self arrow) (process->handle a0-30))
)
)
)
(send-event gp-1 'set-target-level #x3f800000)
(send-event gp-1 'set-guard-target-count-range 4 0 1)
(send-event gp-1 'set-guard-target-count-range 5 0 0)
(let ((s4-0 (new 'stack-no-clear 'task-arrow-params)))
(set! (-> s4-0 pos quad) (-> s5-0 position quad))
(quaternion-identity! (-> s4-0 quat))
(set! (-> s4-0 flags) (task-arrow-flags task-arrow-flag-03))
(set! (-> s4-0 map-icon) (the-as uint 15))
(label cfg-21)
(let ((a0-30 (task-arrow-spawn s4-0 (the-as task-arrow self))))
(when (not a0-30)
(format #t "waiting for task-arrow~%")
(suspend)
(goto cfg-21)
)
(set! (-> self arrow) (process->handle a0-30))
)
)
)
(set! (-> self sub-state) (the-as uint -1))
(set! (-> self data-int8 0) 0)
(set! (-> self data-int8 1) 0)
0
(none)
(send-event gp-1 'set-target-level #x3f800000)
(send-event gp-1 'set-guard-target-count-range 4 0 1)
(send-event gp-1 'set-guard-target-count-range 5 0 0)
)
(set! (-> self sub-state) (the-as uint -1))
(set! (-> self data-int8 0) 0)
(set! (-> self data-int8 1) 0)
0
(none)
)
)
(set-subtask-hook!
*game-info*
24
1
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(game-task-node city-krew-delivery-delivery)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(defun delivery-task-setup-ambush-1 ()
@@ -344,178 +338,100 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
24
2
(the-as
(function object)
(lambda :behavior task-manager
()
(local-vars (a0-32 float))
(rlet ((acc :class vf)
(vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
(game-task-node city-krew-delivery-delivery)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(local-vars (a0-32 float))
(rlet ((acc :class vf)
(vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(let ((gp-0 (handle->process (-> self slave 0))))
(cond
((and gp-0 (not (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status dead))))
(cond
((zero? (-> self data-int8 0))
(when (= (level-status *level* 'ctyindb) 'active)
(set! (-> self data-int8 0) 1)
(delivery-task-setup-ambush-1)
)
)
(else
(when (!= (level-status *level* 'ctyindb) 'active)
(set! (-> self data-int8 0) 0)
0
)
)
)
(init-vf0-vector)
(let ((gp-0 (handle->process (-> self slave 0))))
(cond
((and gp-0 (not (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status dead))))
(cond
((zero? (-> self data-int8 1))
(when (= (level-status *level* 'ctyinda) 'active)
(set! (-> self data-int8 1) 1)
(delivery-task-setup-ambush-2)
)
)
(else
(when (!= (level-status *level* 'ctyinda) 'active)
(set! (-> self data-int8 1) 0)
0
)
)
)
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (target-pos 0)))
(f1-0 12288.0)
)
(cond
((zero? (-> self data-int8 0))
(when (= (level-status *level* 'ctyindb) 'active)
(set! (-> self data-int8 0) 1)
(delivery-task-setup-ambush-1)
((and (< f0-0 (* f1-0 f1-0)) *target* (focus-test? *target* pilot))
(when (nonzero? (-> self sub-state))
(send-event (handle->process (-> self arrow)) 'set-position (-> self end-pos))
(send-event (handle->process (-> self arrow)) 'modify-flags 1 0)
(send-event (handle->process (-> self arrow)) 'map-icon 8)
(set! (-> self sub-state) (the-as uint 0))
0
)
)
(else
(when (!= (level-status *level* 'ctyindb) 'active)
(set! (-> self data-int8 0) 0)
0
)
)
)
(cond
((zero? (-> self data-int8 1))
(when (= (level-status *level* 'ctyinda) 'active)
(set! (-> self data-int8 1) 1)
(delivery-task-setup-ambush-2)
)
)
(else
(when (!= (level-status *level* 'ctyinda) 'active)
(set! (-> self data-int8 1) 0)
0
)
)
)
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (target-pos 0)))
(f1-0 12288.0)
)
(cond
((and (< f0-0 (* f1-0 f1-0)) *target* (focus-test? *target* pilot))
(when (nonzero? (-> self sub-state))
(send-event (handle->process (-> self arrow)) 'set-position (-> self end-pos))
(send-event (handle->process (-> self arrow)) 'modify-flags 1 0)
(send-event (handle->process (-> self arrow)) 'map-icon 8)
(set! (-> self sub-state) (the-as uint 0))
0
)
)
(else
(let* ((v1-59 (new 'stack-no-clear 'inline-array 'vector 1))
(f0-1 409.6)
(f0-3 (* f0-1 f0-1))
)
(.lvf vf1 (&-> (-> (the-as process-drawable gp-0) root transv) quad))
(.add.w.vf vf2 vf0 vf0 :mask #b1)
(.mul.vf vf1 vf1 vf1)
(.mul.x.vf acc vf2 vf1 :mask #b1)
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
(.mov a0-32 vf1)
(when (>= f0-3 a0-32)
(set! (-> v1-59 0 quad) (-> (the-as process-drawable gp-0) root trans quad))
(set! (-> v1-59 0 y) (+ -14336.0 (-> v1-59 0 y)))
(send-event (handle->process (-> self arrow)) 'set-position (-> v1-59 0))
)
)
(when (!= (-> self sub-state) 1)
(send-event (handle->process (-> self arrow)) 'modify-flags 0 1)
(send-event (handle->process (-> self arrow)) 'map-icon 15)
(set! (-> self sub-state) (the-as uint 1))
(let* ((v1-59 (new 'stack-no-clear 'inline-array 'vector 1))
(f0-1 409.6)
(f0-3 (* f0-1 f0-1))
)
(.lvf vf1 (&-> (-> (the-as process-drawable gp-0) root transv) quad))
(.add.w.vf vf2 vf0 vf0 :mask #b1)
(.mul.vf vf1 vf1 vf1)
(.mul.x.vf acc vf2 vf1 :mask #b1)
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
(.mov a0-32 vf1)
(when (>= f0-3 a0-32)
(set! (-> v1-59 0 quad) (-> (the-as process-drawable gp-0) root trans quad))
(set! (-> v1-59 0 y) (+ -14336.0 (-> v1-59 0 y)))
(send-event (handle->process (-> self arrow)) 'set-position (-> v1-59 0))
)
)
(when (!= (-> self sub-state) 1)
(send-event (handle->process (-> self arrow)) 'modify-flags 0 1)
(send-event (handle->process (-> self arrow)) 'map-icon 15)
(set! (-> self sub-state) (the-as uint 1))
)
)
)
(let ((f30-0 49152.0)
(f0-6 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (-> self end-pos)))
)
(if (>= (* f30-0 f30-0) f0-6)
(go-virtual complete)
)
)
)
(else
(go-virtual fail)
)
(let ((f30-0 49152.0)
(f0-6 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (-> self end-pos)))
)
(if (>= (* f30-0 f30-0) f0-6)
(go-virtual complete)
)
)
)
(else
(go-virtual fail)
)
)
(none)
)
)
)
)
(set-subtask-hook!
*game-info*
24
3
(the-as
(function object)
(lambda :behavior task-manager
()
(let ((gp-0 (new 'static 'vector :x 4501504.0 :y 73728.0 :z 2338816.0 :w 204800.0))
(s5-0 #f)
)
(while (not s5-0)
(let ((v1-1 (handle->process (-> self slave 0))))
(when v1-1
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable v1-1) root trans) gp-0))
(f1-0 (-> gp-0 w))
)
(set! s5-0 (< f0-0 (* f1-0 f1-0)))
)
)
)
(suspend)
)
)
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 0)
(send-event *traffic-manager* 'set-guard-target-count-range 1 4 4)
(send-event *traffic-manager* 'set-guard-target-count-range 2 0 0)
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 10)
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 10)
(send-event *traffic-manager* 'set-alert-level 3)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(speech-control-method-10 *speech-control* 7 (new 'static 'speech-type-info
:channel #x1
:priority -2
:min-delay #x258
:max-delay #x4b0
:list (new 'static 'boxed-array :type string
"kg243a"
"kg241a"
"kg242a"
"kg244a"
"kg245a"
"kg246a"
"kg247a"
"kg248a"
"kg249a"
"kg250a"
"kg251a"
"kg252a"
)
)
)
(talker-spawn-func (-> *talker-speech* 49) *entity-pool* (target-pos 0) (the-as region #f))
(let ((gp-2 (new 'static 'vector :x 3358720.0 :y 32768.0 :z 4689920.0 :w 204800.0))
(s5-2 #f)
)
(while (not s5-2)
(let ((v1-48 (handle->process (-> self slave 0))))
(when v1-48
(let ((f0-1 (vector-vector-distance-squared (-> (the-as process-drawable v1-48) root trans) gp-2))
(f1-3 (-> gp-2 w))
)
(set! s5-2 (< f0-1 (* f1-3 f1-3)))
)
)
)
(suspend)
)
)
(talker-spawn-func (-> *talker-speech* 50) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
@@ -523,21 +439,92 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
24
4
(the-as (function object) (lambda :behavior task-manager
()
(send-event *traffic-manager* 'decrease-alert-level 0)
(send-event *traffic-manager* 'set-alert-duration 9000)
(if (and *target* (focus-test? *target* pilot))
(send-event *target* 'change-mode 'normal)
)
(set-setting! 'pilot #f 0 0)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(none)
)
(game-task-node city-krew-delivery-delivery)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(let ((gp-0 (new 'static 'vector :x 4501504.0 :y 73728.0 :z 2338816.0 :w 204800.0))
(s5-0 #f)
)
(while (not s5-0)
(let ((v1-1 (handle->process (-> self slave 0))))
(when v1-1
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable v1-1) root trans) gp-0))
(f1-0 (-> gp-0 w))
)
(set! s5-0 (< f0-0 (* f1-0 f1-0)))
)
)
)
(suspend)
)
)
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 0)
(send-event *traffic-manager* 'set-guard-target-count-range 1 4 4)
(send-event *traffic-manager* 'set-guard-target-count-range 2 0 0)
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 10)
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 10)
(send-event *traffic-manager* 'set-alert-level 3)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(speech-control-method-10 *speech-control* 7 (new 'static 'speech-type-info
:channel #x1
:priority -2
:min-delay #x258
:max-delay #x4b0
:list (new 'static 'boxed-array :type string
"kg243a"
"kg241a"
"kg242a"
"kg244a"
"kg245a"
"kg246a"
"kg247a"
"kg248a"
"kg249a"
"kg250a"
"kg251a"
"kg252a"
)
)
)
(talker-spawn-func (-> *talker-speech* 49) *entity-pool* (target-pos 0) (the-as region #f))
(let ((gp-2 (new 'static 'vector :x 3358720.0 :y 32768.0 :z 4689920.0 :w 204800.0))
(s5-2 #f)
)
(while (not s5-2)
(let ((v1-48 (handle->process (-> self slave 0))))
(when v1-48
(let ((f0-1 (vector-vector-distance-squared (-> (the-as process-drawable v1-48) root trans) gp-2))
(f1-3 (-> gp-2 w))
)
(set! s5-2 (< f0-1 (* f1-3 f1-3)))
)
)
)
(suspend)
)
)
(talker-spawn-func (-> *talker-speech* 50) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-krew-delivery-delivery)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(send-event *traffic-manager* 'decrease-alert-level 0)
(send-event *traffic-manager* 'set-alert-duration 9000)
(if (and *target* (focus-test? *target* pilot))
(send-event *target* 'change-mode 'normal)
)
(set-setting! 'pilot #f 0.0 0)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(none)
)
)
@@ -2373,7 +2373,14 @@
)
:enter (behavior ((arg0 symbol))
(when arg0
(add-connection *task-manager-engine* self nothing self (-> *game-info* sub-task-list 151) #f)
(add-connection
*task-manager-engine*
self
nothing
self
(-> *game-info* sub-task-list (game-task-node city-play-onin-game-resolution))
#f
)
(let ((a1-1 (new 'stack-no-clear 'array 'pointer 3)))
(set! (-> a1-1 2) (the-as pointer 'onin2))
(set! (-> a1-1 1) (the-as pointer 'onin1))
@@ -2399,18 +2406,18 @@
(talker-speech-class-method-11 (-> *talker-speech* 158))
(talker-speech-class-method-11 (-> *talker-speech* 159))
(talker-speech-class-method-11 (-> *talker-speech* 160))
(add-setting! 'music 'danger3 0 0)
(set-setting! 'entity-name (res-lump-struct (-> self entity) 'camera-name structure) 0 0)
(set-setting! 'airlock #f 0 0)
(set-setting! 'minimap 'clear 0 128)
(add-setting! 'music 'danger3 0.0 0)
(set-setting! 'entity-name (res-lump-struct (-> self entity) 'camera-name structure) 0.0 0)
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(set! (-> self hud-score) (ppointer->handle (process-spawn hud-big-score :init hud-init-by-other :to self)))
(set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :to self)))
(set! (-> self hud-miss) (ppointer->handle (process-spawn hud-miss :init hud-init-by-other :to self)))
(set! (-> self game-start-time) (-> self clock frame-counter))
(send-event *target* 'draw #f)
(set-setting! 'gun #f 0 0)
(set-setting! 'calm #t 0 0)
(set-setting! 'gem #f 0 0)
(set-setting! 'gun #f 0.0 0)
(set-setting! 'calm #t 0.0 0)
(set-setting! 'gem #f 0.0 0)
(let ((a0-50 (-> *part-id-table* 3429)))
(when a0-50
(let ((v1-110 (get-field-spec-by-id a0-50 (sp-field-id spt-num))))
@@ -2584,7 +2591,7 @@
(set! gp-0 (-> gp-0 0 brother))
)
)
(let* ((v1-14 (-> *game-info* sub-task-list 151))
(let* ((v1-14 (-> *game-info* sub-task-list (game-task-node city-play-onin-game-resolution)))
(gp-1 (if (-> v1-14 info)
(-> v1-14 info manager)
(the-as handle #f)
@@ -2669,7 +2676,7 @@
(talker-spawn-func (-> *talker-speech* 162) *entity-pool* (target-pos 0) (the-as region #f))
)
)
(v1-31 (-> *game-info* sub-task-list 151))
(v1-31 (-> *game-info* sub-task-list (game-task-node city-play-onin-game-resolution)))
(gp-4 (if (-> v1-31 info)
(-> v1-31 info manager)
(the-as handle #f)
@@ -2710,7 +2717,7 @@
(the-as pair 0)
)
(logior! (-> self skel status) (joint-control-status blend-shape eye-anim))
(set-setting! 'minimap 'clear 0 128)
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(set! (-> self hud-score) (the-as handle #f))
(set! (-> self hud-goal) (the-as handle #f))
(set! (-> self hud-miss) (the-as handle #f))
@@ -9,421 +9,358 @@
(set-subtask-hook!
*game-info*
251
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(none)
(game-task-node city-oracle-level0-training)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-oracle-level0-training)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-oracle-level0-training)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('notify)
(case (-> arg3 param 0)
(('attack)
(if (= (-> arg3 param 1) 16)
(go-virtual complete)
)
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
251
1
(the-as (function object) (lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
)
(set-subtask-hook!
*game-info*
251
6
(the-as (function object) (lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('notify)
(case (-> arg3 param 0)
(('attack)
(if (= (-> arg3 param 1) 16)
(go-virtual complete)
)
)
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
251
2
(the-as
(function object)
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1 (new
'stack
'font-context
*font-default-matrix*
32
280
0.0
(font-color default)
(font-flags shadow kerning)
)
)
(game-task-node city-oracle-level0-training)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
(new 'stack 'font-context *font-default-matrix* 32 280 0.0 (font-color default) (font-flags shadow kerning))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-bomb) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-bomb) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
253
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(none)
)
(game-task-node city-oracle-level1-training)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(none)
)
)
(set-subtask-hook!
*game-info*
253
1
(the-as (function object) (lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
(game-task-node city-oracle-level1-training)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
(set-subtask-hook!
*game-info*
253
6
(the-as (function object) (lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('notify)
(case (-> arg3 param 0)
(('attack)
(if (= (-> arg3 param 1) 17)
(go-virtual complete)
)
)
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
253
2
(the-as
(function object)
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1 (new
'stack
'font-context
*font-default-matrix*
32
280
0.0
(font-color default)
(font-flags shadow kerning)
)
)
(game-task-node city-oracle-level1-training)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('notify)
(case (-> arg3 param 0)
(('attack)
(if (= (-> arg3 param 1) 17)
(go-virtual complete)
)
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-oracle-level1-training)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
(new 'stack 'font-context *font-default-matrix* 32 280 0.0 (font-color default) (font-flags shadow kerning))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-blast) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-blast) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
255
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(set! (-> self start-time) (-> self clock frame-counter))
(none)
)
(game-task-node city-oracle-level2-training)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(set! (-> self start-time) (-> self clock frame-counter))
(none)
)
)
(set-subtask-hook!
*game-info*
255
1
(the-as (function object) (lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
(game-task-node city-oracle-level2-training)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
(set-subtask-hook!
*game-info*
255
2
(the-as
(function object)
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1 (new
'stack
'font-context
*font-default-matrix*
32
280
0.0
(font-color default)
(font-flags shadow kerning)
)
)
(game-task-node city-oracle-level2-training)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
(new 'stack 'font-context *font-default-matrix* 32 280 0.0 (font-color default) (font-flags shadow kerning))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-invincible) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-invincible) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
257
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(none)
)
(game-task-node city-oracle-level3-training)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
(send-event *target* 'change-mode 'darkjak #f 65)
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
(send-event *target* 'get-notify self)
(none)
)
)
(set-subtask-hook!
*game-info*
257
1
(the-as (function object) (lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
(game-task-node city-oracle-level3-training)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup 7 (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
(gui-action stop)
(-> self sound-id 0)
(gui-channel none)
(gui-action none)
(the-as string #f)
(the-as (function gui-connection symbol) #f)
(the-as process #f)
)
(close! (-> self node-info) 'event)
(none)
)
)
(set-subtask-hook!
*game-info*
257
6
(the-as (function object) (lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (case arg2
(('notify)
(case (-> arg3 param 0)
(('attack)
(if (= (-> arg3 param 1) 18)
#f
)
)
)
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
257
2
(the-as
(function object)
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1 (new
'stack
'font-context
*font-default-matrix*
32
280
0.0
(font-color default)
(font-flags shadow kerning)
(game-task-node city-oracle-level3-training)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (case arg2
(('notify)
(case (-> arg3 param 0)
(('attack)
(if (= (-> arg3 param 1) 18)
#f
)
)
)
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-oracle-level3-training)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
(new 'stack 'font-context *font-default-matrix* 32 280 0.0 (font-color default) (font-flags shadow kerning))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-giant) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
(set! (-> gp-1 flags) (font-flags shadow kerning large))
(let ((v1-14 gp-1))
(set! (-> v1-14 width) (the float 440))
)
(let ((v1-15 gp-1))
(set! (-> v1-15 height) (the float 80))
)
(let ((v1-16 gp-1))
(set! (-> v1-16 scale) 0.7)
)
(let ((s5-0 print-game-text))
(format (clear *temp-string*) (lookup-text! *common-text* (text-id oracle-tutorial-dark-giant) #f))
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
)
)
(none)
)
(none)
)
)
+272 -284
View File
@@ -224,27 +224,24 @@
(set-subtask-hook!
*game-info*
119
3
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (or (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 30))
(let ((a0-3 (level-get-target-inside *level*)))
(when (not (and a0-3 (logtest? (-> a0-3 info level-flags) 1)))
(set! (-> self state-time) (-> self clock frame-counter))
#t
)
(game-task-node city-port-run-introduction)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (or (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 30))
(let ((a0-3 (level-get-target-inside *level*)))
(when (not (and a0-3 (logtest? (-> a0-3 info level-flags) 1)))
(set! (-> self state-time) (-> self clock frame-counter))
#t
)
)
(suspend)
)
(talker-spawn-func (-> *talker-speech* 93) *entity-pool* (target-pos 0) (the-as region #f))
(send-event self 'complete)
(none)
)
(suspend)
)
(talker-spawn-func (-> *talker-speech* 93) *entity-pool* (target-pos 0) (the-as region #f))
(send-event self 'complete)
(none)
)
)
@@ -1520,8 +1517,8 @@
(none)
)
:code (behavior ()
(set-setting! 'interp-time 'abs 0 0)
(set-setting! 'mode-name 'cam-fixed 0 0)
(set-setting! 'interp-time 'abs 0.0 0)
(set-setting! 'mode-name 'cam-fixed 0.0 0)
(suspend)
(ctyport-cargo-method-30 self)
(ja-no-eval :group! (ja-group)
@@ -1657,315 +1654,306 @@
(set-subtask-hook!
*game-info*
120
0
(the-as
(function object)
(lambda :behavior task-manager
()
(if (task-node-closed? (game-task-node city-port-run-resolution))
(go-virtual complete)
(game-task-node city-port-run-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(if (task-node-closed? (game-task-node city-port-run-resolution))
(go-virtual complete)
)
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
(let ((gp-0 *traffic-manager*)
(s5-0 (new 'stack 'traffic-object-spawn-params))
)
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
(let ((gp-0 *traffic-manager*)
(s5-0 (new 'stack 'traffic-object-spawn-params))
)
(set! (-> s5-0 position quad) (-> self begin-pos quad))
(quaternion-axis-angle! (-> s5-0 rotation) 0.0 1.0 0.0 0.0)
(set! (-> s5-0 object-type) (traffic-type bikec))
(set! (-> s5-0 behavior) (the-as uint 0))
(set! (-> s5-0 id) (the-as uint 0))
(set! (-> s5-0 proc) #f)
(send-event gp-0 'spawn-object s5-0)
)
(set! (-> self max-count) (-> *city-port-run-cargo-info* length))
(set! (-> self count) (-> self max-count))
(set! (-> *game-info* counter) (the float (-> self max-count)))
(dotimes (v1-17 (-> *city-port-run-mine-info* length))
(set! (-> *city-port-run-mine-info* v1-17 handle) (the-as handle #f))
)
(set! (-> self minimap 0) #f)
(dotimes (v1-20 (-> self max-count))
(set! (-> self data-int32 v1-20) 0)
(set! (-> self slave v1-20) (the-as handle #f))
)
(set! (-> self data-int32 20) 0)
(set! (-> self data-int32 21) 0)
(set! (-> self data-int32 22) 0)
0
(none)
(set! (-> s5-0 position quad) (-> self begin-pos quad))
(quaternion-axis-angle! (-> s5-0 rotation) 0.0 1.0 0.0 0.0)
(set! (-> s5-0 object-type) (traffic-type bikec))
(set! (-> s5-0 behavior) (the-as uint 0))
(set! (-> s5-0 id) (the-as uint 0))
(set! (-> s5-0 proc) #f)
(send-event gp-0 'spawn-object s5-0)
)
(set! (-> self max-count) (-> *city-port-run-cargo-info* length))
(set! (-> self count) (-> self max-count))
(set! (-> *game-info* counter) (the float (-> self max-count)))
(dotimes (v1-17 (-> *city-port-run-mine-info* length))
(set! (-> *city-port-run-mine-info* v1-17 handle) (the-as handle #f))
)
(set! (-> self minimap 0) #f)
(dotimes (v1-20 (-> self max-count))
(set! (-> self data-int32 v1-20) 0)
(set! (-> self slave v1-20) (the-as handle #f))
)
(set! (-> self data-int32 20) 0)
(set! (-> self data-int32 21) 0)
(set! (-> self data-int32 22) 0)
0
(none)
)
)
(set-subtask-hook!
*game-info*
120
1
(the-as (function object) (lambda :behavior task-manager
()
(send-event *traffic-manager* 'restore-default-settings)
(dotimes (v1-3 (-> *city-port-run-mine-info* length))
(set! (-> *city-port-run-mine-info* v1-3 handle) (the-as handle #f))
)
(set! (-> self minimap 0) #f)
(dotimes (v1-6 (-> self max-count))
(set! (-> self data-int32 v1-6) 0)
(set! (-> self slave v1-6) (the-as handle #f))
)
(none)
)
)
(game-task-node city-port-run-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(send-event *traffic-manager* 'restore-default-settings)
(dotimes (v1-3 (-> *city-port-run-mine-info* length))
(set! (-> *city-port-run-mine-info* v1-3 handle) (the-as handle #f))
)
(set! (-> self minimap 0) #f)
(dotimes (v1-6 (-> self max-count))
(set! (-> self data-int32 v1-6) 0)
(set! (-> self slave v1-6) (the-as handle #f))
)
(none)
)
)
(set-subtask-hook!
*game-info*
120
2
(the-as
(function object)
(lambda :behavior task-manager
()
(when (task-node-open? (game-task-node city-port-run-resolution))
(check-time self)
(cond
((= (level-status *level* 'ctyport) 'active)
(when (zero? (-> self data-int32 21))
(set! (-> self data-int32 21) 1)
(dotimes (gp-1 (-> *city-port-run-mine-info* length))
(let ((a1-1 (-> *city-port-run-mine-info* gp-1)))
(if (or (zero? (-> a1-1 handle)) (not (handle->process (-> a1-1 handle))))
(ctyport-mine-spawn self a1-1)
)
)
(game-task-node city-port-run-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(when (task-node-open? (game-task-node city-port-run-resolution))
(check-time self)
(cond
((= (level-status *level* 'ctyport) 'active)
(when (zero? (-> self data-int32 21))
(set! (-> self data-int32 21) 1)
(dotimes (gp-1 (-> *city-port-run-mine-info* length))
(let ((a1-1 (-> *city-port-run-mine-info* gp-1)))
(if (or (zero? (-> a1-1 handle)) (not (handle->process (-> a1-1 handle))))
(ctyport-mine-spawn self a1-1)
)
)
)
)
(else
(dotimes (gp-2 (-> *city-port-run-mine-info* length))
(let ((s5-0 (-> *city-port-run-mine-info* gp-2)))
(when (and (nonzero? (-> s5-0 handle)) (handle->process (-> s5-0 handle)))
(deactivate (-> s5-0 handle process 0))
(set! (-> s5-0 handle) (the-as handle #f))
)
)
(else
(dotimes (gp-2 (-> *city-port-run-mine-info* length))
(let ((s5-0 (-> *city-port-run-mine-info* gp-2)))
(when (and (nonzero? (-> s5-0 handle)) (handle->process (-> s5-0 handle)))
(deactivate (-> s5-0 handle process 0))
(set! (-> s5-0 handle) (the-as handle #f))
)
)
)
)
(cond
((zero? (-> self data-int32 20))
(cond
((= (level-status *level* 'ctyport) 'active)
(let ((gp-4 (get-nav-mesh (the-as actor-id #x65e1))))
(dotimes (s5-1 (-> self max-count))
(cond
((zero? (-> self data-int32 s5-1))
(when (not (-> self slave s5-1))
(let ((a0-18 (ctyport-cargo-spawn self (-> *city-port-run-cargo-info* s5-1 pos) gp-4)))
(if a0-18
(set! (-> self slave s5-1) (process->handle a0-18))
)
)
)
(cond
((zero? (-> self data-int32 20))
(cond
((= (level-status *level* 'ctyport) 'active)
(let ((gp-4 (get-nav-mesh (the-as actor-id #x65e1))))
(dotimes (s5-1 (-> self max-count))
(cond
((zero? (-> self data-int32 s5-1))
(when (not (-> self slave s5-1))
(let ((a0-18 (ctyport-cargo-spawn self (-> *city-port-run-cargo-info* s5-1 pos) gp-4)))
(if a0-18
(set! (-> self slave s5-1) (process->handle a0-18))
)
)
)
(else
(set! (-> self slave s5-1) (the-as handle #f))
)
)
(else
(set! (-> self slave s5-1) (the-as handle #f))
)
)
)
(set! (-> self count) 0)
(dotimes (v1-61 (-> self max-count))
(if (or (not (-> self slave v1-61)) (handle->process (-> self slave v1-61)))
(+! (-> self count) 1)
(set! (-> self data-int32 v1-61) 1)
)
)
(when (-> self minimap 0)
(logior! (-> self minimap 0 flags) (minimap-flag fade-out))
(set! (-> self minimap 0) #f)
)
)
(else
(dotimes (gp-5 (-> self max-count))
(when (-> self slave gp-5)
(deactivate (-> self slave gp-5 process 0))
(set! (-> self slave gp-5) (the-as handle #f))
)
)
(set! (-> self data-int32 21) 0)
(if (not (-> self minimap 0))
(set! (-> self minimap 0) (add-icon! *minimap* self (the-as uint 15) (the-as int #f) *city-port-position* 0))
)
)
)
)
(else
(set! (-> self count) 0)
(dotimes (v1-90 (-> self max-count))
(if (handle->process (-> self slave v1-90))
(dotimes (v1-61 (-> self max-count))
(if (or (not (-> self slave v1-61)) (handle->process (-> self slave v1-61)))
(+! (-> self count) 1)
(set! (-> self data-int32 v1-90) 1)
(set! (-> self data-int32 v1-61) 1)
)
)
)
)
(let ((v1-93 0))
(dotimes (a0-48 (-> *city-port-run-mine-info* length))
(let ((a1-21 (-> *city-port-run-mine-info* a0-48)))
(if (and (nonzero? (-> a1-21 handle)) (handle->process (-> a1-21 handle)))
(+! v1-93 1)
)
(when (-> self minimap 0)
(logior! (-> self minimap 0 flags) (minimap-flag fade-out))
(set! (-> self minimap 0) #f)
)
)
)
(cond
((and (= (-> self count) (-> self max-count)) (zero? (-> self data-int32 22)))
(set! (-> self state-time) (-> self clock frame-counter))
)
((and (or (and (zero? (-> self data-int32 20)) (= (-> self count) (+ (-> self max-count) -1)))
(= (-> self data-int32 22) 1)
)
(task-node-open? (game-task-node city-port-run-resolution))
)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(set! (-> self data-int32 20) 1)
(+! (-> self data-int32 22) 1)
(set! (-> self time-limit) (seconds 135))
(set! (-> self start-time) (-> self clock frame-counter))
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-cargo :init hud-init-by-other :to self)))
)
)
(set! (-> *game-info* counter) (the float (-> self count)))
(when (= (-> self data-int32 20) 1)
(let ((v1-130 (level-get *level* 'ctyport)))
(when (or (not v1-130) (!= (-> v1-130 display?) 'display))
(backup-load-state-and-set-cmds *load-state* '())
(script-eval '(want-display 'ctyport 'display))
(restore-load-state-and-cleanup *load-state*)
(go-virtual fail)
)
)
)
)
(when (zero? (-> self count))
(cond
((not (task-node-closed? (game-task-node city-port-run-resolution)))
(talker-spawn-func (-> *talker-speech* 94) *entity-pool* (target-pos 0) (the-as region #f))
(task-node-close! (game-task-node city-port-run-resolution))
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
(send-event (handle->process (-> self hud-counter)) 'hide-and-die)
(set! (-> self fail-on-death?) #f)
(dotimes (gp-8 (-> *city-port-run-mine-info* length))
(let ((v1-161 (-> *city-port-run-mine-info* gp-8)))
(if (handle->process (-> v1-161 handle))
(send-event (handle->process (-> v1-161 handle)) 'fall)
)
(else
(dotimes (gp-5 (-> self max-count))
(when (-> self slave gp-5)
(deactivate (-> self slave gp-5 process 0))
(set! (-> self slave gp-5) (the-as handle #f))
)
)
(set! (-> self data-int32 21) 0)
(if (not (-> self minimap 0))
(set! (-> self minimap 0) (add-icon! *minimap* self (the-as uint 15) (the-as int #f) *city-port-position* 0))
)
)
)
(else
(let ((v1-168 0))
(dotimes (a0-96 (-> *city-port-run-mine-info* length))
(if (handle->process (-> *city-port-run-mine-info* a0-96 handle))
(+! v1-168 1)
)
)
(else
(set! (-> self count) 0)
(dotimes (v1-90 (-> self max-count))
(if (handle->process (-> self slave v1-90))
(+! (-> self count) 1)
(set! (-> self data-int32 v1-90) 1)
)
(if (zero? v1-168)
(go-virtual complete)
)
)
)
)
)
(none)
)
)
)
(set-subtask-hook! *game-info* 120 6 (the-as (function object) (lambda :behavior task-manager
((arg0 object) (arg1 object) (arg2 symbol))
(case arg2
(('mine-dead)
(format #t "mine-dead~%")
(+! (-> self data-int32 22) 1)
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
120
3
(the-as (function object) (lambda :behavior task-manager
()
(send-event *traffic-manager* 'set-target-level #x3f800000)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(send-event *traffic-manager* 'set-alert-level 1)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
)
)
)
(set-subtask-hook!
*game-info*
120
5
(the-as
(function object)
(lambda :behavior task-manager
()
(when (< (- (-> self time-limit) (- (-> self clock frame-counter) (-> self start-time))) 0)
(let ((gp-0 #f))
(dotimes (s5-0 (-> self max-count))
(when (zero? (-> self data-int32 s5-0))
(when (-> self slave s5-0)
(let* ((s3-0 (handle->process (-> self slave s5-0)))
(s4-0 (if (type? s3-0 process-focusable)
s3-0
)
)
)
(when (not gp-0)
(set! gp-0 #t)
(send-event s4-0 'focus-camera)
)
(send-event s4-0 'spy)
)
(let ((v1-93 0))
(dotimes (a0-48 (-> *city-port-run-mine-info* length))
(let ((a1-21 (-> *city-port-run-mine-info* a0-48)))
(if (and (nonzero? (-> a1-21 handle)) (handle->process (-> a1-21 handle)))
(+! v1-93 1)
)
)
)
)
(let ((gp-1 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 2))
(suspend)
)
)
)
(none)
(cond
((and (= (-> self count) (-> self max-count)) (zero? (-> self data-int32 22)))
(set! (-> self state-time) (-> self clock frame-counter))
)
((and (or (and (zero? (-> self data-int32 20)) (= (-> self count) (+ (-> self max-count) -1)))
(= (-> self data-int32 22) 1)
)
(task-node-open? (game-task-node city-port-run-resolution))
)
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(set! (-> self data-int32 20) 1)
(+! (-> self data-int32 22) 1)
(set! (-> self time-limit) (seconds 135))
(set! (-> self start-time) (-> self clock frame-counter))
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-cargo :init hud-init-by-other :to self)))
)
)
(set! (-> *game-info* counter) (the float (-> self count)))
(when (= (-> self data-int32 20) 1)
(let ((v1-130 (level-get *level* 'ctyport)))
(when (or (not v1-130) (!= (-> v1-130 display?) 'display))
(backup-load-state-and-set-cmds *load-state* '())
(script-eval '(want-display 'ctyport 'display))
(restore-load-state-and-cleanup *load-state*)
(go-virtual fail)
)
)
)
)
(when (zero? (-> self count))
(cond
((not (task-node-closed? (game-task-node city-port-run-resolution)))
(talker-spawn-func (-> *talker-speech* 94) *entity-pool* (target-pos 0) (the-as region #f))
(task-node-close! (game-task-node city-port-run-resolution))
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
(send-event (handle->process (-> self hud-counter)) 'hide-and-die)
(set! (-> self fail-on-death?) #f)
(dotimes (gp-8 (-> *city-port-run-mine-info* length))
(let ((v1-161 (-> *city-port-run-mine-info* gp-8)))
(if (handle->process (-> v1-161 handle))
(send-event (handle->process (-> v1-161 handle)) 'fall)
)
)
)
)
(else
(let ((v1-168 0))
(dotimes (a0-96 (-> *city-port-run-mine-info* length))
(if (handle->process (-> *city-port-run-mine-info* a0-96 handle))
(+! v1-168 1)
)
)
(if (zero? v1-168)
(go-virtual complete)
)
)
)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
120
4
(the-as (function object) (lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))
(suspend)
)
(task-node-close! (game-task-node city-port-run-post-win))
(none)
)
)
(game-task-node city-port-run-resolution)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 object) (arg1 object) (arg2 symbol))
(case arg2
(('mine-dead)
(format #t "mine-dead~%")
(+! (-> self data-int32 22) 1)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-port-run-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(send-event *traffic-manager* 'set-target-level #x3f800000)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(send-event *traffic-manager* 'set-alert-level 1)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-port-run-resolution)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager
()
(when (< (- (-> self time-limit) (- (-> self clock frame-counter) (-> self start-time))) 0)
(let ((gp-0 #f))
(dotimes (s5-0 (-> self max-count))
(when (zero? (-> self data-int32 s5-0))
(when (-> self slave s5-0)
(let* ((s3-0 (handle->process (-> self slave s5-0)))
(s4-0 (if (type? s3-0 process-focusable)
s3-0
)
)
)
(when (not gp-0)
(set! gp-0 #t)
(send-event s4-0 'focus-camera)
)
(send-event s4-0 'spy)
)
)
)
)
)
(let ((gp-1 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 2))
(suspend)
)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-port-run-resolution)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))
(suspend)
)
(task-node-close! (game-task-node city-port-run-post-win))
(none)
)
)
+243 -262
View File
@@ -1139,172 +1139,162 @@
(set-subtask-hook!
*game-info*
189
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-target-level #x3e800000)
(send-event gp-0 'set-guard-target-count-range 0 0 0)
(send-event gp-0 'set-guard-target-count-range 1 0 0)
(send-event gp-0 'set-guard-target-count-range 2 0 0)
(send-event gp-0 'set-guard-target-count-range 3 0 0)
(send-event gp-0 'set-guard-target-count-range 4 0 1)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
(until (= (level-status *level* 'ctyport) 'active)
(suspend)
)
(let ((v1-43 (entity-by-name "parking-spot-20")))
(if v1-43
(logior! (-> v1-43 extra perm status) (entity-perm-status bit-9))
)
)
(set! (-> self start-time) 0)
(set! (-> self sub-state) (the-as uint 0))
(set! (-> self count) 0)
(set! (-> self max-count) -1)
(race-start (-> self info index) (the-as symbol self) #f)
(set! (-> self begin-pos quad)
(-> (new 'static 'vector :x -326041.6 :y 36454.4 :z 5391565.0 :w 266240.0) quad)
)
(set-setting! 'attack #f 0 0)
(set-setting! 'board #f 0 0)
(set-setting! 'gun #f 0 0)
(set-setting! 'vehicle-hijacking #f 0 0)
(none)
(game-task-node city-errol-challenge-race)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-target-level #x3e800000)
(send-event gp-0 'set-guard-target-count-range 0 0 0)
(send-event gp-0 'set-guard-target-count-range 1 0 0)
(send-event gp-0 'set-guard-target-count-range 2 0 0)
(send-event gp-0 'set-guard-target-count-range 3 0 0)
(send-event gp-0 'set-guard-target-count-range 4 0 1)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
(until (= (level-status *level* 'ctyport) 'active)
(suspend)
)
(let ((v1-43 (entity-by-name "parking-spot-20")))
(if v1-43
(logior! (-> v1-43 extra perm status) (entity-perm-status bit-9))
)
)
(set! (-> self start-time) 0)
(set! (-> self sub-state) (the-as uint 0))
(set! (-> self count) 0)
(set! (-> self max-count) -1)
(race-start (-> self info index) (the-as symbol self) #f)
(set! (-> self begin-pos quad)
(-> (new 'static 'vector :x -326041.6 :y 36454.4 :z 5391565.0 :w 266240.0) quad)
)
(set-setting! 'attack #f 0.0 0)
(set-setting! 'board #f 0.0 0)
(set-setting! 'gun #f 0.0 0)
(set-setting! 'vehicle-hijacking #f 0.0 0)
(none)
)
)
(set-subtask-hook!
*game-info*
189
1
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(game-task-node city-errol-challenge-race)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(set-subtask-hook!
*game-info*
189
6
(the-as
(function object)
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('turbo-ring-pickup)
(let ((gp-0 (-> arg3 param 0)))
(format #t "player collected ring ~d~%" gp-0)
(cond
((= gp-0 (-> self sub-state))
(let ((v0-0 (the-as object (+ (-> self sub-state) 1))))
(set! (-> self sub-state) (the-as uint v0-0))
v0-0
)
(game-task-node city-errol-challenge-race)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('turbo-ring-pickup)
(let ((gp-0 (-> arg3 param 0)))
(format #t "player collected ring ~d~%" gp-0)
(cond
((= gp-0 (-> self sub-state))
(let ((v0-0 (the-as object (+ (-> self sub-state) 1))))
(set! (-> self sub-state) (the-as uint v0-0))
v0-0
)
((< (the-as int gp-0) (the-as int (-> self sub-state)))
(format #t "player re-collecting an earlier ring (~d)~%" gp-0)
)
(else
(format #t "missed a ring (ring-id ~d, sub-state ~d)~%" gp-0 (-> self sub-state))
(go-virtual fail)
)
)
((< (the-as int gp-0) (the-as int (-> self sub-state)))
(format #t "player re-collecting an earlier ring (~d)~%" gp-0)
)
(else
(format #t "missed a ring (ring-id ~d, sub-state ~d)~%" gp-0 (-> self sub-state))
(go-virtual fail)
)
)
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
189
2
(the-as
(function object)
(lambda :behavior task-manager
()
(let ((gp-0 (new 'stack-no-clear 'inline-array 'vector 1))
(s5-0 *city-errol-challenge-rings*)
)
(if (= (-> self max-count) -1)
(set! (-> self max-count) (-> s5-0 length))
)
(set! (-> gp-0 0 quad) (-> (target-pos 0) quad))
(let* ((s4-1 (new 'static 'vector :x 1305804.8 :y 102400.0 :z 3180544.0 :w 163840.0))
(f0-0 (vector-vector-distance-squared s4-1 (-> gp-0 0)))
(f1-0 (-> s4-1 w))
)
(when (< f0-0 (* f1-0 f1-0))
(if (< (-> self count) 18)
(go-virtual fail)
)
)
(game-task-node city-errol-challenge-race)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(let ((gp-0 (new 'stack-no-clear 'inline-array 'vector 1))
(s5-0 *city-errol-challenge-rings*)
)
(while (< (-> self count) (-> self max-count))
(let ((s4-2 (-> s5-0 (-> self count))))
(let ((f0-1 (-> s4-2 dist)))
(b! (< (* f0-1 f0-1) (vector-vector-distance-squared (-> gp-0 0) (-> s4-2 pos))) cfg-11)
)
(if (turbo-ring-spawn self s4-2 (-> self count) #f)
(+! (-> self count) 1)
)
)
(if (= (-> self max-count) -1)
(set! (-> self max-count) (-> s5-0 length))
)
)
(label cfg-11)
0
(none)
)
)
)
(set-subtask-hook!
*game-info*
189
3
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (not (logtest? (-> *race-state* flags) 1))
(let ((f0-0 (-> self begin-pos w)))
(if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0)))
(set! (-> gp-0 0 quad) (-> (target-pos 0) quad))
(let* ((s4-1 (new 'static 'vector :x 1305804.8 :y 102400.0 :z 3180544.0 :w 163840.0))
(f0-0 (vector-vector-distance-squared s4-1 (-> gp-0 0)))
(f1-0 (-> s4-1 w))
)
(when (< f0-0 (* f1-0 f1-0))
(if (< (-> self count) 18)
(go-virtual fail)
)
)
(suspend)
)
(set-setting! 'exclusive-load 'lerlchal 0 0)
(set-setting! 'airlock #f 0 0)
(none)
(while (< (-> self count) (-> self max-count))
(let ((s4-2 (-> s5-0 (-> self count))))
(let ((f0-1 (-> s4-2 dist)))
(b! (< (* f0-1 f0-1) (vector-vector-distance-squared (-> gp-0 0) (-> s4-2 pos))) cfg-11)
)
(if (turbo-ring-spawn self s4-2 (-> self count) #f)
(+! (-> self count) 1)
)
)
)
)
(label cfg-11)
0
(none)
)
)
(set-subtask-hook! *game-info* 189 5 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
189
4
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'decrease-alert-level 0) (none))
(game-task-node city-errol-challenge-race)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (not (logtest? (-> *race-state* flags) 1))
(let ((f0-0 (-> self begin-pos w)))
(if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0)))
(go-virtual fail)
)
)
(suspend)
)
(set-setting! 'exclusive-load 'lerlchal 0.0 0)
(set-setting! 'airlock #f 0.0 0)
(none)
)
)
(copy-hooks! (-> *game-info* sub-task-list 307) (-> *game-info* sub-task-list 189))
(set-subtask-hook!
*game-info*
(game-task-node city-errol-challenge-race)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager () (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-errol-challenge-race)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'decrease-alert-level 0) (none))
)
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-race-errol-resolution))
(-> *game-info* sub-task-list (game-task-node city-errol-challenge-race))
)
(define *city-bush-port-rings* (new 'static 'boxed-array :type city-race-ring-info
(new 'static 'city-race-ring-info
@@ -1387,147 +1377,138 @@
(set-subtask-hook!
*game-info*
309
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(set-setting! 'exclusive-load 'lprtrace 0 0)
(set-setting! 'airlock #f 0 0)
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-target-level #x3e800000)
(send-event gp-0 'set-guard-target-count-range 0 0 0)
(send-event gp-0 'set-guard-target-count-range 1 0 0)
(send-event gp-0 'set-guard-target-count-range 2 0 0)
(send-event gp-0 'set-guard-target-count-range 3 0 0)
(send-event gp-0 'set-guard-target-count-range 4 0 1)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
(until (= (level-status *level* 'ctyport) 'active)
(suspend)
)
(let ((v1-47 (entity-by-name "parking-spot-22")))
(if v1-47
(logior! (-> v1-47 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-49 (entity-by-name "parking-spot-23")))
(if v1-49
(logior! (-> v1-49 extra perm status) (entity-perm-status bit-9))
)
)
(set! (-> self start-time) 0)
(set! (-> self sub-state) (the-as uint 0))
(set! (-> self count) 0)
(let ((gp-2 *city-bush-port-rings*))
(set! (-> self max-count) (-> gp-2 length))
(dotimes (s5-0 (-> self max-count))
(let ((a1-12 (-> gp-2 s5-0)))
(if (turbo-ring-spawn self a1-12 s5-0 #t)
(+! (-> self count) 1)
)
)
)
)
(race-start (-> self info index) (the-as symbol self) #f)
(set! (-> self begin-pos quad)
(-> (new 'static 'vector :x 2519040.0 :y 40960.0 :z 6545408.0 :w 184320.0) quad)
)
(set-setting! 'attack #f 0 0)
(set-setting! 'board #f 0 0)
(set-setting! 'gun #f 0 0)
(set-setting! 'vehicle-hijacking #f 0 0)
(none)
(game-task-node city-burning-bush-race-port-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(set-setting! 'exclusive-load 'lprtrace 0.0 0)
(set-setting! 'airlock #f 0.0 0)
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-target-level #x3e800000)
(send-event gp-0 'set-guard-target-count-range 0 0 0)
(send-event gp-0 'set-guard-target-count-range 1 0 0)
(send-event gp-0 'set-guard-target-count-range 2 0 0)
(send-event gp-0 'set-guard-target-count-range 3 0 0)
(send-event gp-0 'set-guard-target-count-range 4 0 1)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
)
)
(set-subtask-hook!
*game-info*
309
1
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
)
(set-subtask-hook!
*game-info*
309
6
(the-as (function object) (lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (case arg2
(('race-win 'race-lose)
(let ((v0-0 1))
(set! (-> self sub-state) (the-as uint v0-0))
v0-0
)
)
)
)
)
(until (= (level-status *level* 'ctyport) 'active)
(suspend)
)
(let ((v1-47 (entity-by-name "parking-spot-22")))
(if v1-47
(logior! (-> v1-47 extra perm status) (entity-perm-status bit-9))
)
)
(set-subtask-hook!
*game-info*
309
3
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (not (logtest? (-> *race-state* flags) 1))
(let ((f0-0 (-> self begin-pos w)))
(if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0)))
(go-virtual fail)
)
(let ((v1-49 (entity-by-name "parking-spot-23")))
(if v1-49
(logior! (-> v1-49 extra perm status) (entity-perm-status bit-9))
)
)
(set! (-> self start-time) 0)
(set! (-> self sub-state) (the-as uint 0))
(set! (-> self count) 0)
(let ((gp-2 *city-bush-port-rings*))
(set! (-> self max-count) (-> gp-2 length))
(dotimes (s5-0 (-> self max-count))
(let ((a1-12 (-> gp-2 s5-0)))
(if (turbo-ring-spawn self a1-12 s5-0 #t)
(+! (-> self count) 1)
)
)
(suspend)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
309
2
(the-as (function object) (lambda :behavior task-manager
()
(when (zero? (-> self sub-state))
(let ((v1-2 (-> *target* pilot)))
(when (nonzero? v1-2)
(let ((v1-4 (handle->process (-> v1-2 vehicle))))
(when v1-4
(if (< (-> (the-as process-drawable v1-4) root trans y) 16384.0)
(go-virtual fail)
)
)
)
)
)
)
(none)
)
(race-start (-> self info index) (the-as symbol self) #f)
(set! (-> self begin-pos quad)
(-> (new 'static 'vector :x 2519040.0 :y 40960.0 :z 6545408.0 :w 184320.0) quad)
)
(set-setting! 'attack #f 0.0 0)
(set-setting! 'board #f 0.0 0)
(set-setting! 'gun #f 0.0 0)
(set-setting! 'vehicle-hijacking #f 0.0 0)
(none)
)
)
(set-subtask-hook! *game-info* 309 5 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
309
4
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'decrease-alert-level 0) (none))
(game-task-node city-burning-bush-race-port-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-race-port-resolution)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (case arg2
(('race-win 'race-lose)
(let ((v0-0 1))
(set! (-> self sub-state) (the-as uint v0-0))
v0-0
)
)
)
)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-race-port-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (not (logtest? (-> *race-state* flags) 1))
(let ((f0-0 (-> self begin-pos w)))
(if (< (* f0-0 f0-0) (vector-vector-distance-squared (-> self begin-pos) (target-pos 0)))
(go-virtual fail)
)
)
(suspend)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-race-port-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(when (zero? (-> self sub-state))
(let ((v1-2 (-> *target* pilot)))
(when (nonzero? v1-2)
(let ((v1-4 (handle->process (-> v1-2 vehicle))))
(when v1-4
(if (< (-> (the-as process-drawable v1-4) root trans y) 16384.0)
(go-virtual fail)
)
)
)
)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-race-port-resolution)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager () (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-race-port-resolution)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'decrease-alert-level 0) (none))
)
@@ -1426,119 +1426,115 @@
(set-subtask-hook!
*game-info*
259
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'airlock #f 0 0)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(let ((s5-0 *traffic-manager*)
(gp-0 (new 'stack 'traffic-object-spawn-params))
)
(set! (-> gp-0 position quad) (-> *bb-ring-info* (-> self info index) start-pos quad))
(quaternion-axis-angle! (-> gp-0 rotation) 0.0 1.0 0.0 (-> *bb-ring-info* (-> self info index) rotation))
(set! (-> gp-0 object-type) (traffic-type bikea))
(set! (-> gp-0 behavior) (the-as uint 0))
(set! (-> gp-0 id) (the-as uint 0))
(set! (-> gp-0 proc) #f)
(send-event s5-0 'spawn-object gp-0)
(if (-> gp-0 proc)
(set! (-> self slave 1) (process->handle (-> gp-0 proc)))
)
)
(set! (-> self start-time) 0)
(set! (-> self sub-state) (the-as uint 0))
(set! (-> self count) 0)
(set! (-> self max-count) (-> *bb-ring-info* (-> self info index) rings length))
(none)
(game-task-node city-burning-bush-ring-1-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(let ((s5-0 *traffic-manager*)
(gp-0 (new 'stack 'traffic-object-spawn-params))
)
(set! (-> gp-0 position quad) (-> *bb-ring-info* (-> self info index) start-pos quad))
(quaternion-axis-angle! (-> gp-0 rotation) 0.0 1.0 0.0 (-> *bb-ring-info* (-> self info index) rotation))
(set! (-> gp-0 object-type) (traffic-type bikea))
(set! (-> gp-0 behavior) (the-as uint 0))
(set! (-> gp-0 id) (the-as uint 0))
(set! (-> gp-0 proc) #f)
(send-event s5-0 'spawn-object gp-0)
(if (-> gp-0 proc)
(set! (-> self slave 1) (process->handle (-> gp-0 proc)))
)
)
(set! (-> self start-time) 0)
(set! (-> self sub-state) (the-as uint 0))
(set! (-> self count) 0)
(set! (-> self max-count) (-> *bb-ring-info* (-> self info index) rings length))
(none)
)
)
(set-subtask-hook!
*game-info*
259
1
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(game-task-node city-burning-bush-ring-1-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(set-subtask-hook!
*game-info*
259
2
(the-as
(function object)
(lambda :behavior task-manager
()
(check-time self)
(cond
((and (handle->process (-> self slave 0))
(-> self slave 0 process 0 next-state)
(= (-> self slave 0 process 0 next-state name) 'idle)
)
)
(else
(let ((v1-15 (-> self sub-state)))
(cond
((< v1-15 (the-as uint (-> self max-count)))
(let* ((a1-2 (-> *bb-ring-info* (-> self info index) rings v1-15))
(a0-14 (race-ring-spawn self a1-2))
)
(when a0-14
(set! (-> self slave 0) (process->handle a0-14))
(set! (-> self time-limit) (the-as time-frame (if (zero? (-> self sub-state))
4500
(the-as int (-> *bb-ring-info* (-> self info index) time))
)
)
)
(set! (-> self start-time) (-> self clock frame-counter))
(+! (-> self sub-state) 1)
)
(game-task-node city-burning-bush-ring-1-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(check-time self)
(cond
((and (handle->process (-> self slave 0))
(-> self slave 0 process 0 next-state)
(= (-> self slave 0 process 0 next-state name) 'idle)
)
)
(else
(let ((v1-15 (-> self sub-state)))
(cond
((< v1-15 (the-as uint (-> self max-count)))
(let* ((a1-2 (-> *bb-ring-info* (-> self info index) rings v1-15))
(a0-14 (race-ring-spawn self a1-2))
)
(when a0-14
(set! (-> self slave 0) (process->handle a0-14))
(set! (-> self time-limit) (the-as time-frame (if (zero? (-> self sub-state))
4500
(the-as int (-> *bb-ring-info* (-> self info index) time))
)
)
)
(set! (-> self start-time) (-> self clock frame-counter))
(+! (-> self sub-state) 1)
)
)
(else
(go-virtual complete)
)
)
(else
(go-virtual complete)
)
)
)
)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
259
3
(the-as (function object) (lambda :behavior task-manager
()
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(none)
)
)
(game-task-node city-burning-bush-ring-1-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(none)
)
)
(set-subtask-hook!
*game-info*
259
4
(the-as (function object) (lambda :behavior task-manager () (close! (-> self node-info) 'event) (none)))
(game-task-node city-burning-bush-ring-1-resolution)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager () (close! (-> self node-info) 'event) (none))
)
(copy-hooks! (-> *game-info* sub-task-list 273) (-> *game-info* sub-task-list 259))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-ring-2-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-ring-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 293) (-> *game-info* sub-task-list 259))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-ring-3-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-ring-1-resolution))
)
(defpartgroup group-bush-collect
:id 1056
@@ -2530,185 +2526,173 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
269
1
(the-as
(function object)
(lambda :behavior task-manager
()
(let ((v1-4 (-> *bb-collection-info* (-> self info index))))
(dotimes (a0-1 (-> v1-4 colls length))
(when (and (-> v1-4 colls a0-1 minimap) (nonzero? (-> v1-4 colls a0-1 minimap)))
(logior! (-> v1-4 colls a0-1 minimap flags) (minimap-flag fade-out))
(set! (-> v1-4 colls a0-1 minimap) #f)
)
(game-task-node city-burning-bush-collection-1-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(let ((v1-4 (-> *bb-collection-info* (-> self info index))))
(dotimes (a0-1 (-> v1-4 colls length))
(when (and (-> v1-4 colls a0-1 minimap) (nonzero? (-> v1-4 colls a0-1 minimap)))
(logior! (-> v1-4 colls a0-1 minimap flags) (minimap-flag fade-out))
(set! (-> v1-4 colls a0-1 minimap) #f)
)
)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
269
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'airlock #f 0 0)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(let ((gp-0 (-> *bb-collection-info* (-> self info index))))
(let ((v1-9 (-> gp-0 user-data)))
(cond
((zero? v1-9)
(set! (-> self hud-counter)
(ppointer->handle (process-spawn hud-homing-beacon :init hud-init-by-other :to *target*))
)
)
((= v1-9 1)
(set! (-> self hud-counter)
(ppointer->handle (process-spawn hud-dark-eco-pickup :init hud-init-by-other :to *target*))
)
)
((= v1-9 2)
(set! (-> self hud-counter)
(ppointer->handle (process-spawn hud-green-eco-pickup :init hud-init-by-other :to *target*))
)
)
)
(game-task-node city-burning-bush-collection-1-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(let ((gp-0 (-> *bb-collection-info* (-> self info index))))
(let ((v1-9 (-> gp-0 user-data)))
(cond
((zero? v1-9)
(set! (-> self hud-counter)
(ppointer->handle (process-spawn hud-homing-beacon :init hud-init-by-other :to *target*))
)
)
((= v1-9 1)
(set! (-> self hud-counter)
(ppointer->handle (process-spawn hud-dark-eco-pickup :init hud-init-by-other :to *target*))
)
)
((= v1-9 2)
(set! (-> self hud-counter)
(ppointer->handle (process-spawn hud-green-eco-pickup :init hud-init-by-other :to *target*))
)
)
)
(dotimes (s5-3 (-> gp-0 colls length))
(let ((v1-32 (-> gp-0 user-data)))
(cond
((zero? v1-32)
)
(dotimes (s5-3 (-> gp-0 colls length))
(let ((v1-32 (-> gp-0 user-data)))
(cond
((zero? v1-32)
(set! (-> gp-0 colls s5-3 handle)
(ppointer->handle (bush-collect-homing-beacon-spawn self (-> gp-0 colls s5-3 pos)))
)
(set! (-> gp-0 colls s5-3 minimap) (add-icon!
*minimap*
(handle->process (-> gp-0 colls s5-3 handle))
(the-as uint 16)
(the-as int #f)
(the-as vector #t)
0
)
)
)
((= v1-32 1)
(let ((t1-3 (new 'stack 'fact-info self (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc)))
)
(new 'stack-no-clear 'vector)
(set! (-> t1-3 options) (logior (actor-option fade-out no-distance-check-fadeout) (-> t1-3 options)))
(set! (-> t1-3 fade-time) (-> gp-0 time))
(set! (-> gp-0 colls s5-3 handle)
(ppointer->handle (bush-collect-homing-beacon-spawn self (-> gp-0 colls s5-3 pos)))
)
(set! (-> gp-0 colls s5-3 minimap) (add-icon!
*minimap*
(handle->process (-> gp-0 colls s5-3 handle))
(the-as uint 16)
(the-as int #f)
(the-as vector #t)
0
)
)
)
((= v1-32 1)
(let ((t1-3 (new 'stack 'fact-info self (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc)))
)
(new 'stack-no-clear 'vector)
(set! (-> t1-3 options) (logior (actor-option fade-out no-distance-check-fadeout) (-> t1-3 options)))
(set! (-> t1-3 fade-time) (-> gp-0 time))
(set! (-> gp-0 colls s5-3 handle)
(ppointer->handle
(birth-pickup-at-point (-> gp-0 colls s5-3 pos) (pickup-type eco-pill-dark) 1.0 #t self t1-3)
)
(ppointer->handle
(birth-pickup-at-point (-> gp-0 colls s5-3 pos) (pickup-type eco-pill-dark) 1.0 #t self t1-3)
)
)
(set! (-> gp-0 colls s5-3 minimap) (add-icon!
*minimap*
(handle->process (-> gp-0 colls s5-3 handle))
(the-as uint 16)
(the-as int #f)
(the-as vector #t)
0
)
)
)
((= v1-32 2)
(let ((t1-5 (new 'stack 'fact-info self (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc)))
)
(new 'stack-no-clear 'vector)
(set! (-> t1-5 options) (logior (actor-option fade-out no-distance-check-fadeout) (-> t1-5 options)))
(set! (-> t1-5 fade-time) (-> gp-0 time))
(set! (-> gp-0 colls s5-3 handle)
(ppointer->handle
(birth-pickup-at-point (-> gp-0 colls s5-3 pos) (pickup-type eco-pill-green) 1.0 #t self t1-5)
)
(set! (-> gp-0 colls s5-3 minimap) (add-icon!
*minimap*
(handle->process (-> gp-0 colls s5-3 handle))
(the-as uint 16)
(the-as int #f)
(the-as vector #t)
0
)
)
)
((= v1-32 2)
(let ((t1-5 (new 'stack 'fact-info self (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc)))
)
(new 'stack-no-clear 'vector)
(set! (-> t1-5 options) (logior (actor-option fade-out no-distance-check-fadeout) (-> t1-5 options)))
(set! (-> t1-5 fade-time) (-> gp-0 time))
(set! (-> gp-0 colls s5-3 handle)
(ppointer->handle
(birth-pickup-at-point (-> gp-0 colls s5-3 pos) (pickup-type eco-pill-green) 1.0 #t self t1-5)
)
)
(set! (-> gp-0 colls s5-3 minimap) (add-icon!
*minimap*
(handle->process (-> gp-0 colls s5-3 handle))
(the-as uint 16)
(the-as int #f)
(the-as vector #t)
0
)
)
)
(else
(set! (-> gp-0 colls s5-3 handle) (ppointer->handle (bush-collect-spawn self (-> gp-0 colls s5-3 pos))))
(set! (-> gp-0 colls s5-3 minimap) #f)
)
)
)
)
(set! (-> self start-time) (-> self clock frame-counter))
(set! (-> self time-limit) (-> gp-0 time))
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
269
2
(the-as
(function object)
(lambda :behavior task-manager
()
(check-time self)
(let ((a0-2 (-> *bb-collection-info* (-> self info index)))
(v1-6 0)
)
(dotimes (a1-0 (-> a0-2 colls length))
(cond
((and (nonzero? (-> a0-2 colls a1-0 handle)) (handle->process (-> a0-2 colls a1-0 handle)))
(+! v1-6 1)
(set! (-> gp-0 colls s5-3 minimap) (add-icon!
*minimap*
(handle->process (-> gp-0 colls s5-3 handle))
(the-as uint 16)
(the-as int #f)
(the-as vector #t)
0
)
)
)
(else
(when (-> a0-2 colls a1-0 minimap)
(logior! (-> a0-2 colls a1-0 minimap flags) (minimap-flag fade-out))
(set! (-> a0-2 colls a1-0 minimap) #f)
)
(set! (-> gp-0 colls s5-3 handle) (ppointer->handle (bush-collect-spawn self (-> gp-0 colls s5-3 pos))))
(set! (-> gp-0 colls s5-3 minimap) #f)
)
)
)
(set! (-> *game-info* counter) (the float v1-6))
(if (zero? v1-6)
(go-virtual complete)
)
)
(none)
(set! (-> self start-time) (-> self clock frame-counter))
(set! (-> self time-limit) (-> gp-0 time))
)
(none)
)
)
(set-subtask-hook!
*game-info*
269
3
(the-as
(function object)
(lambda :behavior task-manager () (set! (-> self state-time) (-> self clock frame-counter)) (none))
(game-task-node city-burning-bush-collection-1-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(check-time self)
(let ((a0-2 (-> *bb-collection-info* (-> self info index)))
(v1-6 0)
)
(dotimes (a1-0 (-> a0-2 colls length))
(cond
((and (nonzero? (-> a0-2 colls a1-0 handle)) (handle->process (-> a0-2 colls a1-0 handle)))
(+! v1-6 1)
)
(else
(when (-> a0-2 colls a1-0 minimap)
(logior! (-> a0-2 colls a1-0 minimap flags) (minimap-flag fade-out))
(set! (-> a0-2 colls a1-0 minimap) #f)
)
)
)
)
(set! (-> *game-info* counter) (the float v1-6))
(if (zero? v1-6)
(go-virtual complete)
)
)
(none)
)
)
;; PC PORT NOTE : added complete hook for collection bbush tasks where we wait for the hud to die first
(set-subtask-hook! *game-info* 269 4
(lambda :behavior task-manager ()
(while (handle->process (-> self hud-counter))
(suspend))))
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-collection-1-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager () (set! (-> self state-time) (-> self clock frame-counter)) (none))
)
(copy-hooks! (-> *game-info* sub-task-list 287) (-> *game-info* sub-task-list 269))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-collection-2-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-collection-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 305) (-> *game-info* sub-task-list 269))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-collection-3-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-collection-1-resolution))
)
(deftype burning-bush-get-on-info (structure)
((trans vector :inline :offset-assert 0)
@@ -2835,63 +2819,65 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
261
0
(the-as (function object) (lambda :behavior task-manager
()
(set-setting! 'airlock #f 0 0)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(none)
)
)
)
(set-subtask-hook! *game-info* 261 2 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
261
1
(the-as (function object) (lambda :behavior task-manager
()
(let ((a0-1 (handle->process (-> self slave 0))))
(if a0-1
(deactivate a0-1)
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
261
4
(the-as (function object) (lambda :behavior task-manager () (close! (-> self node-info) 'event) (none)))
)
(set-subtask-hook!
*game-info*
261
5
(the-as (function object) (lambda :behavior task-manager
()
(if (and *target* (focus-test? *target* grabbed))
(process-release? *target*)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
261
3
(game-task-node city-burning-bush-get-to-1-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0 128)
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-get-to-1-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager () (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-get-to-1-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(let ((a0-1 (handle->process (-> self slave 0))))
(if a0-1
(deactivate a0-1)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-get-to-1-resolution)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager () (close! (-> self node-info) 'event) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-get-to-1-resolution)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager
()
(if (and *target* (focus-test? *target* grabbed))
(process-release? *target*)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-get-to-1-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(while (not (process-grab? *target* #f))
(suspend)
)
@@ -2916,8 +2902,8 @@ This commonly includes things such as:
)
(suspend)
(send-event (handle->process (-> self slave 0)) 'get-notify self)
(set-setting! 'interp-time 'abs 0 0)
(set-setting! 'mode-name 'cam-fixed 0 0)
(set-setting! 'interp-time 'abs 0.0 0)
(set-setting! 'mode-name 'cam-fixed 0.0 0)
(set! (-> *ACTOR-bank* birth-max) 1000)
(suspend)
(let ((gp-0 (new 'stack 'transformq)))
@@ -2969,54 +2955,95 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
261
6
(the-as (function object) (lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('notify)
(case (-> arg3 param 0)
(('pickup)
(go-virtual complete)
)
(('die)
(go-virtual fail)
)
)
)
)
(none)
)
(game-task-node city-burning-bush-get-to-1-resolution)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('notify)
(case (-> arg3 param 0)
(('pickup)
(go-virtual complete)
)
(('die)
(go-virtual fail)
)
)
)
)
(none)
)
)
(copy-hooks! (-> *game-info* sub-task-list 263) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-2-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 265) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-3-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 267) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-4-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 275) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-5-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 277) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-6-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 281) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-7-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 283) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-8-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 285) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-9-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 289) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-10-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 291) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-11-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 295) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-12-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 299) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-13-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 301) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-14-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(copy-hooks! (-> *game-info* sub-task-list 303) (-> *game-info* sub-task-list 261))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-15-resolution))
(-> *game-info* sub-task-list (game-task-node city-burning-bush-get-to-1-resolution))
)
(defmethod draw hud-homing-beacon ((obj hud-homing-beacon))
(set-hud-piece-position!
+1 -1
View File
@@ -1843,7 +1843,7 @@ If the player is too far, play a warning speech."
)
)
)
(set-setting! 'immediate-string-min-max #f 0 0)
(set-setting! 'immediate-string-min-max #f 0.0 0)
(set! (-> *ACTOR-bank* birth-max) 1000)
)
((logtest? (-> obj bot-flags) (bot-flags bf14))
+2 -2
View File
@@ -1571,10 +1571,10 @@
(when (and a3-0 (not (logtest? (-> obj flags) 16)))
(case a3-0
(('sound-mode)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
)
(else
(set-setting! 'music a3-0 0 0)
(set-setting! 'music a3-0 0.0 0)
)
)
(logior! (-> obj flags) 16)
@@ -3028,304 +3028,280 @@
(set-subtask-hook!
*game-info*
186
0
(the-as (function object) (lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(set! (-> self data-int32 0) 0)
0
(none)
)
)
)
(set-subtask-hook!
*game-info*
186
1
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
(game-task-node city-stop-bomb-bots-destroy)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(set! (-> self data-int32 0) 0)
0
(none)
)
)
(set-subtask-hook!
*game-info*
186
2
(the-as
(function object)
(lambda :behavior task-manager
()
(when (nonzero? (-> self data-int32 0))
(let ((gp-0 0))
(let ((s5-0 10000))
(dotimes (s4-0 3)
(let* ((s2-0 (-> self slave s4-0 process 0))
(s3-0 (if (type? s2-0 bombbot)
(the-as bombbot s2-0)
)
)
)
(when s3-0
(+! gp-0 1)
(let ((v1-14
(the int (* 0.000030517578 (vector-vector-xz-distance
(-> s3-0 root-override2 trans)
(the-as vector (-> s3-0 city-path node (+ (-> s3-0 city-path node-count) -1)))
)
)
)
)
(game-task-node city-stop-bomb-bots-destroy)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-stop-bomb-bots-destroy)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(when (nonzero? (-> self data-int32 0))
(let ((gp-0 0))
(let ((s5-0 10000))
(dotimes (s4-0 3)
(let* ((s2-0 (-> self slave s4-0 process 0))
(s3-0 (if (type? s2-0 bombbot)
(the-as bombbot s2-0)
)
)
)
(when s3-0
(+! gp-0 1)
(let ((v1-14
(the int (* 0.000030517578 (vector-vector-xz-distance
(-> s3-0 root-override2 trans)
(the-as vector (-> s3-0 city-path node (+ (-> s3-0 city-path node-count) -1)))
)
)
)
)
(if (< v1-14 s5-0)
(set! s5-0 v1-14)
)
)
(when (= (-> s3-0 current-node) (+ (-> s3-0 city-path node-count) -1))
)
)
(if (< v1-14 s5-0)
(set! s5-0 v1-14)
)
)
(when (= (-> s3-0 current-node) (+ (-> s3-0 city-path node-count) -1))
)
)
)
(set! (-> self data-int32 1) s5-0)
(cond
((< s5-0 10)
(set! (-> *game-info* timer) (the-as time-frame (the int (* 300.0 (the float s5-0)))))
(let ((v1-25 (handle->process (-> self hud-timer))))
(if (and *target* (not v1-25))
(set! (-> self hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*)))
)
)
(when (zero? s5-0)
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
(go-virtual fail)
)
)
(else
(if (handle->process (-> self hud-timer))
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
)
)
)
)
(if (zero? gp-0)
(go-virtual complete)
)
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
186
3
(the-as
(function object)
(lambda :behavior task-manager
()
(while (!= (-> (level-get-target-inside *level*) name) 'ctysluma)
(suspend)
)
(set! (-> self data-int32 0) 1)
(set-setting! 'airlock #f 0 0)
(set-setting! 'sound-mode #f 0 1)
(let ((gp-1 *traffic-manager*))
(send-event gp-1 'set-guard-target-count-range 4 0 0)
(send-event gp-1 'set-guard-target-count-range 5 0 0)
)
(let ((gp-2 (new 'stack 'bombbot-spawn-params)))
(set! (-> gp-2 nav-mesh) (get-nav-mesh (the-as actor-id 9592)))
(set! (-> gp-2 position quad)
(-> (new 'static 'quaternion :x 4387619.0 :y 37262.54 :z 230567.11 :w 1.0) quad)
)
(quaternion-copy! (-> gp-2 quat) (new 'static 'quaternion :x 0.0006 :y -0.8345 :z -0.0013 :w -0.5509))
(set! (-> gp-2 path) *bombbot-path-1*)
(set! (-> self slave 0) (ppointer->handle (process-spawn bombbot gp-2 :to self)))
(set! (-> gp-2 path) *bombbot-path-2*)
(set! (-> self slave 1) (ppointer->handle (process-spawn bombbot gp-2 :to self)))
(set! (-> gp-2 path) *bombbot-path-3*)
(set! (-> self slave 2) (ppointer->handle (process-spawn bombbot gp-2 :to self)))
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
186
4
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(talker-spawn-func (-> *talker-speech* 117) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
)
(set-subtask-hook!
*game-info*
186
5
(the-as
(function object)
(lambda :behavior task-manager
()
(when (and *target*
(not (focus-test? *target* dead))
(zero? (-> self data-int32 1))
(nonzero? (-> self data-int32 0))
)
(cond
((= (level-status *level* 'ctysluma) 'active)
(set-setting! 'entity-name "camera-236" 0 0)
(set-setting! 'minimap 'clear 0 128)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(add-process *gui-control* self (gui-channel sig) (gui-action play) "bbotxplo" -99.0 0)
(dotimes (gp-1 3)
(let* ((s5-0 (-> self slave gp-1 process 0))
(a0-7 (if (type? s5-0 bombbot)
s5-0
)
)
)
(if a0-7
(send-event a0-7 'explode)
(set! (-> self data-int32 1) s5-0)
(cond
((< s5-0 10)
(set! (-> *game-info* timer) (the-as time-frame (the int (* 300.0 (the float s5-0)))))
(let ((v1-25 (handle->process (-> self hud-timer))))
(if (and *target* (not v1-25))
(set! (-> self hud-timer) (ppointer->handle (process-spawn hud-timer :init hud-init-by-other :to *target*)))
)
)
(when (zero? s5-0)
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
(go-virtual fail)
)
)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3))
(suspend)
)
(setup
*screen-filter*
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(-> self clock seconds-per-frame)
(bucket-id tex-all-map)
)
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))
(suspend)
)
(set-setting! 'interp-time 'abs 0 0)
(remove-setting! 'entity-name)
(else
(if (handle->process (-> self hud-timer))
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
)
)
)
)
(if (zero? gp-0)
(go-virtual complete)
)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-stop-bomb-bots-destroy)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(while (!= (-> (level-get-target-inside *level*) name) 'ctysluma)
(suspend)
)
(set! (-> self data-int32 0) 1)
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'sound-mode #f 0.0 1)
(let ((gp-1 *traffic-manager*))
(send-event gp-1 'set-guard-target-count-range 4 0 0)
(send-event gp-1 'set-guard-target-count-range 5 0 0)
)
(let ((gp-2 (new 'stack 'bombbot-spawn-params)))
(set! (-> gp-2 nav-mesh) (get-nav-mesh (the-as actor-id 9592)))
(set! (-> gp-2 position quad)
(-> (new 'static 'quaternion :x 4387619.0 :y 37262.54 :z 230567.11 :w 1.0) quad)
)
(quaternion-copy! (-> gp-2 quat) (new 'static 'quaternion :x 0.0006 :y -0.8345 :z -0.0013 :w -0.5509))
(set! (-> gp-2 path) *bombbot-path-1*)
(set! (-> self slave 0) (ppointer->handle (process-spawn bombbot gp-2 :to self)))
(set! (-> gp-2 path) *bombbot-path-2*)
(set! (-> self slave 1) (ppointer->handle (process-spawn bombbot gp-2 :to self)))
(set! (-> gp-2 path) *bombbot-path-3*)
(set! (-> self slave 2) (ppointer->handle (process-spawn bombbot gp-2 :to self)))
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-stop-bomb-bots-destroy)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(talker-spawn-func (-> *talker-speech* 117) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-stop-bomb-bots-destroy)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager
()
(when (and *target*
(not (focus-test? *target* dead))
(zero? (-> self data-int32 1))
(nonzero? (-> self data-int32 0))
)
(cond
((= (level-status *level* 'ctysluma) 'active)
(set-setting! 'entity-name "camera-236" 0.0 0)
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(else
(add-process *gui-control* self (gui-channel sig) (gui-action play) "bbotxplo" -99.0 0)
(dotimes (gp-1 3)
(let* ((s5-0 (-> self slave gp-1 process 0))
(a0-7 (if (type? s5-0 bombbot)
s5-0
)
)
)
(if a0-7
(send-event a0-7 'explode)
)
)
)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.3))
(suspend)
)
(setup
*screen-filter*
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(-> self clock seconds-per-frame)
(bucket-id tex-all-map)
)
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))
(suspend)
)
(set-setting! 'interp-time 'abs 0.0 0)
(remove-setting! 'entity-name)
)
(else
)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-stop-bomb-bots-destroy)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (disable *screen-filter*) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-bombbot-1-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-guard-target-count-range 4 0 0)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
(let ((gp-1 (new 'stack 'bombbot-spawn-params)))
(set! (-> gp-1 nav-mesh) (get-nav-mesh (the-as actor-id 9592)))
(set! (-> gp-1 position quad)
(-> (new 'static 'quaternion :x 4387619.0 :y 37262.54 :z 230567.11 :w 1.0) quad)
)
(quaternion-copy! (-> gp-1 quat) (new 'static 'quaternion :x 0.0006 :y -0.8345 :z -0.0013 :w -0.5509))
(set! (-> gp-1 path) *bombbot-path-4*)
(set! (-> self slave 0) (ppointer->handle (process-spawn bombbot gp-1 :to self)))
(set! (-> gp-1 path) *bombbot-path-5*)
(set! (-> self slave 1) (ppointer->handle (process-spawn bombbot gp-1 :to self)))
(set! (-> gp-1 path) *bombbot-path-6*)
(set! (-> self slave 2) (ppointer->handle (process-spawn bombbot gp-1 :to self)))
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-bombbot-1-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-burning-bush-bombbot-1-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(let ((gp-0 0))
10000
(dotimes (s5-0 3)
(let* ((s4-0 (-> self slave s5-0 process 0))
(v1-6 (if (type? s4-0 bombbot)
(the-as bombbot s4-0)
)
)
)
(when v1-6
(+! gp-0 1)
(when (= (-> v1-6 current-node) (+ (-> v1-6 city-path node-count) -1))
(set! (-> v1-6 current-node) (the-as uint 0))
0
)
)
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
186
1
(the-as (function object) (lambda :behavior task-manager () (disable *screen-filter*) (none)))
)
(set-subtask-hook!
*game-info*
297
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'airlock #f 0 0)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-guard-target-count-range 4 0 0)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
(let ((gp-1 (new 'stack 'bombbot-spawn-params)))
(set! (-> gp-1 nav-mesh) (get-nav-mesh (the-as actor-id 9592)))
(set! (-> gp-1 position quad)
(-> (new 'static 'quaternion :x 4387619.0 :y 37262.54 :z 230567.11 :w 1.0) quad)
)
(quaternion-copy! (-> gp-1 quat) (new 'static 'quaternion :x 0.0006 :y -0.8345 :z -0.0013 :w -0.5509))
(set! (-> gp-1 path) *bombbot-path-4*)
(set! (-> self slave 0) (ppointer->handle (process-spawn bombbot gp-1 :to self)))
(set! (-> gp-1 path) *bombbot-path-5*)
(set! (-> self slave 1) (ppointer->handle (process-spawn bombbot gp-1 :to self)))
(set! (-> gp-1 path) *bombbot-path-6*)
(set! (-> self slave 2) (ppointer->handle (process-spawn bombbot gp-1 :to self)))
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
297
1
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
)
(set-subtask-hook!
*game-info*
297
2
(the-as (function object) (lambda :behavior task-manager
()
(let ((gp-0 0))
10000
(dotimes (s5-0 3)
(let* ((s4-0 (-> self slave s5-0 process 0))
(v1-6 (if (type? s4-0 bombbot)
(the-as bombbot s4-0)
)
)
)
(when v1-6
(+! gp-0 1)
(when (= (-> v1-6 current-node) (+ (-> v1-6 city-path node-count) -1))
(set! (-> v1-6 current-node) (the-as uint 0))
0
)
)
)
)
(if (zero? gp-0)
(go-virtual complete)
)
)
(none)
)
(if (zero? gp-0)
(go-virtual complete)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
297
3
(the-as (function object) (lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(until #f
(suspend)
)
#f
(none)
)
)
(game-task-node city-burning-bush-bombbot-1-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(until #f
(suspend)
)
#f
(none)
)
)
@@ -448,8 +448,8 @@
(set-subtask-hook!
*game-info*
147
0
(game-task-node city-destroy-guard-vehicles-destroy)
TASK_MANAGER_INIT_HOOK
(the-as
(function object)
(lambda :behavior task-manager
@@ -539,12 +539,17 @@
)
)
(set-subtask-hook! *game-info* 147 1 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
(game-task-node city-destroy-guard-vehicles-destroy)
TASK_MANAGER_CLEANUP_HOOK
(the-as (function object) (lambda :behavior task-manager () (none)))
)
(set-subtask-hook!
*game-info*
147
2
(game-task-node city-destroy-guard-vehicles-destroy)
TASK_MANAGER_UPDATE_HOOK
(the-as
(function object)
(lambda :behavior task-manager
@@ -599,8 +604,8 @@
(set-subtask-hook!
*game-info*
147
3
(game-task-node city-destroy-guard-vehicles-destroy)
TASK_MANAGER_CODE_HOOK
(the-as
(function object)
(lambda :behavior task-manager
@@ -611,12 +616,17 @@
)
)
(set-subtask-hook! *game-info* 147 5 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
(game-task-node city-destroy-guard-vehicles-destroy)
TASK_MANAGER_FAIL_HOOK
(the-as (function object) (lambda :behavior task-manager () (none)))
)
(set-subtask-hook!
*game-info*
147
4
(game-task-node city-destroy-guard-vehicles-destroy)
TASK_MANAGER_COMPLETE_HOOK
(the-as
(function object)
(lambda :behavior task-manager
@@ -117,7 +117,7 @@
)
(com-elevator-method-49 self #t)
(if (not (logtest? (-> self elevator-status) (elevator-status moving)))
(set-setting! 'allow-look-around #f 0 0)
(set-setting! 'allow-look-around #f 0.0 0)
)
(none)
)
@@ -268,7 +268,7 @@ For example for an elevator pre-compute the distance between the first and last
)
)
(if (logtest? (-> self elevator-status) (elevator-status waiting-to-descend))
(set-setting! 'jump #f 0 0)
(set-setting! 'jump #f 0.0 0)
)
(none)
)
@@ -392,7 +392,7 @@
(logior! (-> obj flags) 1)
(race-state-method-17 obj)
(send-event (handle->process (-> obj manager)) 'begin-race)
(set-setting! 'sound-mode #f 0 0)
(set-setting! 'sound-mode #f 0.0 0)
(remove-setting! 'allow-progress)
(set! (-> obj race-start-time) (-> obj current-time))
(let ((s5-0 (handle->process (-> obj manager))))
@@ -409,7 +409,7 @@
(set! (-> obj hud-turbo-counter)
(ppointer->handle (process-spawn hud-race-turbo-counter :init hud-init-by-other :to s5-0))
)
(set-setting! 'race-minimap #f 0 (-> obj info map-index))
(set-setting! 'race-minimap #f 0.0 (-> obj info map-index))
)
)
(dotimes (s5-1 (-> obj racer-count))
@@ -546,7 +546,7 @@
)
(defmethod race-state-method-18 race-state ((obj race-state))
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-progress #f 0.0 0)
(send-event (handle->process (-> obj arrow)) 'leave)
(when (logtest? (-> obj info flags) 16)
(send-event *traffic-manager* 'set-target-level 0)
@@ -636,7 +636,7 @@
)
(when (< 0.4 f30-0)
(when (-> obj info start-camera)
(set-setting! 'entity-name (-> obj info start-camera) 0 0)
(set-setting! 'entity-name (-> obj info start-camera) 0.0 0)
(if (logtest? (-> obj info flags) 64)
(talker-spawn-func (-> *talker-speech* 377) *entity-pool* (target-pos 0) (the-as region #f))
)
@@ -1365,11 +1365,11 @@
#f
)
(else
(set-setting! 'music 'race 0 0)
(set-setting! 'sound-mode #f 0 2)
(set-setting! 'music 'race 0.0 0)
(set-setting! 'sound-mode #f 0.0 2)
(let ((gp-0 (-> self race-state info)))
(when (logtest? (-> gp-0 flags) 16)
(set-setting! 'borrow (-> gp-0 borrow) 0 0)
(set-setting! 'borrow (-> gp-0 borrow) 0.0 0)
(while (!= (level-status *level* 'lracelit) 'active)
(suspend)
)
@@ -1483,7 +1483,7 @@
)
(send-event (ppointer->process (-> self parent)) 'allow-fail #f)
(if (not (logtest? (-> self race-state info flags) 16))
(set-setting! 'sound-mode #f 0 2)
(set-setting! 'sound-mode #f 0.0 2)
)
(set! (-> self message-id)
(the-as uint (add-process *gui-control* self (gui-channel supertitle) (gui-action play) "fail" 81920.0 0))
@@ -1638,7 +1638,7 @@
;; WARN: Return type mismatch object vs none.
(defbehavior race-manager-init-by-other race-manager ((arg0 race-info) (arg1 symbol))
(stack-size-set! (-> self main-thread) 1024) ;; changed
(stack-size-set! (-> self main-thread) 512)
(race-vehicle-entity-hack)
(set! (-> self race-state) *race-state*)
(set! (-> self race-state info) arg0)
+8 -7
View File
@@ -795,13 +795,14 @@ This commonly includes things such as:
)
)
(if (and (= (-> v1-1 action) (game-task-action play))
(or (and *target* (focus-test? *target* grabbed)) (let ((v1-10 (-> *game-info* sub-task-list 151)))
(handle->process (if (-> v1-10 info)
(-> v1-10 info manager)
(the-as handle #f)
)
)
)
(or (and *target* (focus-test? *target* grabbed))
(let ((v1-10 (-> *game-info* sub-task-list (game-task-node city-play-onin-game-resolution))))
(handle->process (if (-> v1-10 info)
(-> v1-10 info manager)
(the-as handle #f)
)
)
)
)
)
(-> obj draw art-group data 6)
+5 -5
View File
@@ -633,15 +633,15 @@
:code (behavior ((arg0 continue-point))
(local-vars (v1-38 symbol))
(kill-current-talker (the-as symbol '()) '() 'exit)
(set-setting! 'mode-name 'cam-fixed 0 0)
(set-setting! 'interp-time 'abs 0 0)
(set-setting! 'mode-name 'cam-fixed 0.0 0)
(set-setting! 'interp-time 'abs 0.0 0)
(set! (-> self state-time) (-> self clock frame-counter))
(logclear! (-> self mask) (process-mask actor-pause))
(when (not arg0)
(process-release? *target*)
(go-virtual idle)
)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-progress #f 0.0 0)
(set! (-> *setting-control* user-default border-mode) #t)
(set! (-> *level* play?) #t)
(apply-settings *setting-control*)
@@ -979,7 +979,7 @@ This commonly includes things such as:
(lambda ((arg0 string))
(local-vars (a1-2 event-message-block))
(with-pp
(add-setting! 'entity-name arg0 0 0)
(add-setting! 'entity-name arg0 0.0 0)
(until (send-event-function *camera* a1-2)
(suspend)
(set! a1-2 (new 'stack-no-clear 'event-message-block))
@@ -1251,7 +1251,7 @@ This commonly includes things such as:
(process-release? *target*)
(go-virtual idle)
)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-progress #f 0.0 0)
(set! (-> *setting-control* user-default border-mode) #t)
(set! (-> *level* play?) #t)
(apply-settings *setting-control*)
+15 -15
View File
@@ -446,12 +446,12 @@
(set! (-> self want 0) (the-as int arg0))
(set! (-> self want 1) (-> self draw))
(when arg2
(set-setting! 'bg-a 'abs #x3f800000 0)
(set-setting! 'bg-a 'abs 1.0 0)
(set! (-> *setting-control* user-current bg-a) 1.0)
(apply-settings *setting-control*)
)
(when (>= (-> self draw) 0)
(set-setting! 'bg-a 'abs #x3f800000 0)
(set-setting! 'bg-a 'abs 1.0 0)
(apply-settings *setting-control*)
(while (!= (-> *setting-control* user-current bg-a) 1.0)
(suspend)
@@ -814,7 +814,7 @@
(send-event (ppointer->process *time-of-day*) 'change 'hour 8)
(set! (-> self mask) gp-25)
)
(set-setting! 'allow-pause #t 0 0)
(set-setting! 'allow-pause #t 0.0 0)
(let ((gp-27
(ppointer->handle (process-spawn scene-player :init scene-player-init "atoll-2-intro-demo" #t "hiphog-demo"))
)
@@ -823,8 +823,8 @@
(suspend)
)
)
(set-setting! 'allow-timeout #f 0 0)
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-timeout #f 0.0 0)
(set-setting! 'allow-pause #f 0.0 0)
(let ((t9-49 demo-screen-change)
(a0-81 0)
(a1-39 -1)
@@ -842,7 +842,7 @@
(play-task (game-task strip-rescue) 'debug #f)
(set! (-> self mask) gp-29)
)
(set-setting! 'allow-pause #t 0 0)
(set-setting! 'allow-pause #t 0.0 0)
(let ((gp-31
(ppointer->handle (process-spawn scene-player :init scene-player-init "crane-intro-demo" #t "vinroom-demo"))
)
@@ -860,8 +860,8 @@
(send-event (ppointer->process *time-of-day*) 'change 'hour 8)
(set! (-> self mask) gp-32)
)
(set-setting! 'allow-timeout #f 0 0)
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-timeout #f 0.0 0)
(set-setting! 'allow-pause #f 0.0 0)
(let ((t9-63 demo-screen-change)
(a0-105 1)
(a1-54 -1)
@@ -874,8 +874,8 @@
(start 'play (get-continue-by-name *game-info* "strip-warp"))
)
((= gp-24 2)
(set-setting! 'allow-timeout #f 0 0)
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-timeout #f 0.0 0)
(set-setting! 'allow-pause #f 0.0 0)
(demo-screen-change (the-as symbol -1) -1 #f (the-as int #t))
(set! (-> *setting-control* user-default music-volume) 0.0)
(case *kernel-boot-message*
@@ -1027,11 +1027,11 @@
)
(process-entity-set! self a1-2)
)
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'airlock #f 0 0)
(set-setting! 'music #f 0 0)
(set-setting! 'allow-timeout #f 0 0)
(set-setting! 'allow-pause #f 0.0 0)
(set-setting! 'allow-progress #f 0.0 0)
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'music #f 0.0 0)
(set-setting! 'allow-timeout #f 0.0 0)
(apply-settings *setting-control*)
(dotimes (gp-0 2)
(set! (-> self buffer gp-0)
+2 -2
View File
@@ -550,7 +550,7 @@
(defstate moving (dig-log)
:virtual #t
:enter (behavior ()
(set-setting! 'ignore-target #t 0 0)
(set-setting! 'ignore-target #t 0.0 0)
(none)
)
:exit (behavior ()
@@ -582,7 +582,7 @@
(until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.2))
(suspend)
)
(set-setting! 'entity-name "camera-249" 0 0)
(set-setting! 'entity-name "camera-249" 0.0 0)
(set-action!
*gui-control*
(gui-action play)
+2 -2
View File
@@ -1139,9 +1139,9 @@ This commonly includes things such as:
(cond
((-> self trapeze-grabbed)
(when (not (-> self grabbed))
(set-setting! 'mode-name 'cam-pov-track 0 0)
(set-setting! 'mode-name 'cam-pov-track 0.0 0)
(let ((v1-33 (process->ppointer self)))
(set-setting! 'pov-handle v1-33 #x40400000 (-> v1-33 0 pid))
(set-setting! 'pov-handle v1-33 3.0 (-> v1-33 0 pid))
)
(set! (-> self pov-cam-offset z)
(if (< 0.0 (vector-dot (-> self node-list data 0 bone transform vector 2) (-> (camera-matrix) vector 2)))
@@ -1278,7 +1278,7 @@ This commonly includes things such as:
)
)
:enter (behavior ()
(set-setting! 'music 'danger4 0 0)
(set-setting! 'music 'danger4 0.0 0)
(let ((v1-2 2)
(a0-2 (+ (-> self pass) 1))
)
@@ -104,7 +104,7 @@
(let ((gp-0 (-> arg3 param 0)))
(set! (-> *game-info* counter) (the float (-> self cpanel-count)))
(spawn-hud-panel self (the-as symbol gp-0))
(set-setting! 'music #f 0 0)
(set-setting! 'music #f 0.0 0)
(if (not gp-0)
(set! (-> self exited?) #t)
)
@@ -127,6 +127,7 @@
)
(defmethod spawn-hud-panel drill-mech-master ((obj drill-mech-master) (arg0 symbol))
"Spawn the hud panel for the drill-mech mission."
(cond
((and arg0 (nonzero? (-> obj cpanel-count)))
(if (not (handle->process (-> obj hud-cpanel)))
@@ -168,13 +169,13 @@
(task-node-close! (game-task-node drill-mech-smash-consoles))
(set! (-> self alarm-sound-id) (sound-play "drill-alarm"))
(persist-with-delay *setting-control* 'ignore-target (seconds 8) 'ignore-target #t 0.0 0)
(set-setting! 'music 'danger10 0 0)
(set-setting! 'music 'danger10 0.0 0)
(set! (-> self state-time) (-> self clock frame-counter))
(until (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))
(suspend)
)
(talker-spawn-func (-> *talker-speech* 183) *entity-pool* (target-pos 0) (the-as region #f))
(set-setting! 'pilot #f 0 0)
(set-setting! 'pilot #f 0.0 0)
(let ((v1-20 *target*))
(if v1-20
(send-event (handle->process (-> v1-20 mech hud 0)) 'hide-and-die)
@@ -245,8 +246,8 @@
:event drill-mech-master-event-handler
:enter (behavior ()
(set! (-> self state-time) (-> self clock frame-counter))
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-pause #f 0.0 0)
(set-setting! 'allow-progress #f 0.0 0)
(none)
)
:exit (behavior ()
@@ -390,7 +391,7 @@
(set! (-> self total-countdown-time) (seconds 75))
(task-node-close! (game-task-node drill-mech-smash-consoles))
(set! (-> self alarm-sound-id) (sound-play "drill-alarm"))
(set-setting! 'music 'danger10 0 0)
(set-setting! 'music 'danger10 0.0 0)
(go-virtual hostile)
)
(else
@@ -402,34 +403,33 @@
(set-subtask-hook!
*game-info*
203
6
(the-as (function object) (lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('hud-cpanel)
(let ((v1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> v1-1 from) (process->ppointer arg0))
(set! (-> v1-1 num-params) arg1)
(set! (-> v1-1 message) arg2)
(set! (-> v1-1 param 0) (-> arg3 param 0))
(set! (-> v1-1 param 1) (-> arg3 param 1))
(set! (-> v1-1 param 2) (-> arg3 param 2))
(set! (-> v1-1 param 3) (-> arg3 param 3))
(set! (-> v1-1 param 4) (-> arg3 param 4))
(set! (-> v1-1 param 5) (-> arg3 param 5))
(send-event-function (handle->process (-> self slave 0)) v1-1)
)
)
)
)
)
(game-task-node drill-mech-started-smashing)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('hud-cpanel)
(let ((v1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> v1-1 from) (process->ppointer arg0))
(set! (-> v1-1 num-params) arg1)
(set! (-> v1-1 message) arg2)
(set! (-> v1-1 param 0) (-> arg3 param 0))
(set! (-> v1-1 param 1) (-> arg3 param 1))
(set! (-> v1-1 param 2) (-> arg3 param 2))
(set! (-> v1-1 param 3) (-> arg3 param 3))
(set! (-> v1-1 param 4) (-> arg3 param 4))
(set! (-> v1-1 param 5) (-> arg3 param 5))
(send-event-function (handle->process (-> self slave 0)) v1-1)
)
)
)
)
)
(set-subtask-hook!
*game-info*
203
0
(game-task-node drill-mech-started-smashing)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager () (let ((v0-3 (ppointer->handle (process-spawn drill-mech-master :to self))))
(set! (-> self slave 0) (the-as handle v0-3))
(the-as object v0-3)
@@ -560,9 +560,9 @@ For example for an elevator pre-compute the distance between the first and last
(let ((v1-9 *target*))
(when v1-9
(if (not (focus-test? v1-9 mech))
(set-setting! 'pilot #f 0 0)
(set-setting! 'pilot #f 0.0 0)
)
(set-setting! 'pilot-exit #f 0 0)
(set-setting! 'pilot-exit #f 0.0 0)
)
)
)
@@ -1590,8 +1590,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
118
0
(game-task-node drill-ship-resolution)
TASK_MANAGER_INIT_HOOK
(lambda ()
(speech-control-method-10
*speech-control*
@@ -1690,7 +1690,12 @@ This commonly includes things such as:
)
)
(set-subtask-hook! *game-info* 118 1 (lambda () (the-as object (speech-control-method-9 *speech-control*))))
(set-subtask-hook!
*game-info*
(game-task-node drill-ship-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda () (the-as object (speech-control-method-9 *speech-control*)))
)
(defun drill-login ()
(set! *nav-network* (new 'loading-level 'nav-network))
File diff suppressed because it is too large Load Diff
+315 -326
View File
@@ -267,353 +267,342 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
142
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(set-setting! 'airlock #f 0 0)
(let ((v1-5 (entity-by-name "parking-spot-1")))
(if v1-5
(logior! (-> v1-5 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-7 (entity-by-name "parking-spot-2")))
(if v1-7
(logior! (-> v1-7 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-9 (entity-by-name "parking-spot-12")))
(if v1-9
(logior! (-> v1-9 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-11 (entity-by-name "parking-spot-59")))
(if v1-11
(logior! (-> v1-11 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-13 (entity-by-name "parking-spot-60")))
(if v1-13
(logior! (-> v1-13 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-15 (entity-by-name "parking-spot-61")))
(if v1-15
(logior! (-> v1-15 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-17 (entity-by-name "parking-spot-62")))
(if v1-17
(logior! (-> v1-17 extra perm status) (entity-perm-status bit-9))
)
)
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-alert-level 2)
(send-event gp-0 'set-alert-duration #xa4cb80)
(send-event gp-0 'deactivate-by-type 6)
(send-event gp-0 'deactivate-by-type 18)
(send-event gp-0 'deactivate-by-type 19)
(send-event gp-0 'deactivate-by-type 20)
(send-event gp-0 'deactivate-by-type 11)
(send-event gp-0 'deactivate-by-type 12)
(send-event gp-0 'deactivate-by-type 13)
(send-event gp-0 'deactivate-by-type 14)
(send-event gp-0 'deactivate-by-type 15)
(send-event gp-0 'deactivate-by-type 16)
(send-event gp-0 'set-object-target-count 6 0)
(send-event gp-0 'set-object-target-count 18 0)
(send-event gp-0 'set-object-target-count 19 0)
(send-event gp-0 'set-object-target-count 11 0)
(send-event gp-0 'set-object-target-count 12 0)
(send-event gp-0 'set-object-target-count 13 0)
(send-event gp-0 'set-object-target-count 14 0)
(send-event gp-0 'set-object-target-count 15 0)
(send-event gp-0 'set-object-target-count 16 0)
(send-event gp-0 'set-object-auto-activate 6 #f)
(send-event gp-0 'set-guard-target-count-range 0 4 4)
(send-event gp-0 'set-guard-target-count-range 1 5 5)
(send-event gp-0 'set-guard-target-count-range 4 0 0)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
(speech-control-method-10 *speech-control* 6 (new 'static 'speech-type-info
:channel #x1
:priority -2
:min-delay #x258
:max-delay #x4b0
:list (new 'static 'boxed-array :type string
"kg320a"
"kg321a"
"kg322a"
"kg323a"
"kg324a"
"kg325a"
"kg326a"
"kg327a"
"kg328a"
"kg329a"
"kg330a"
"kg331a"
"kg332a"
"kg333a"
"kg334a"
"kg335a"
"kg336a"
"kg337a"
"kg338a"
"kg339a"
"kg340a"
"kg341a"
"kg342a"
"kg343a"
"kg344a"
"kg345a"
"kg347a"
)
)
)
(dotimes (gp-1 (length *city-slums-transport-info*))
(set! (-> *city-slums-transport-info* gp-1 spawned) #f)
)
(let ((gp-2 (new 'stack-no-clear 'task-arrow-params)))
(set! (-> gp-2 pos quad) (-> (new 'static 'vector :x 1666621.9 :y 32766.771 :z -1103984.6 :w 1.0) quad))
(quaternion-identity! (-> gp-2 quat))
(set! (-> gp-2 flags) (task-arrow-flags))
(set! (-> gp-2 map-icon) (the-as uint 15))
(set! (-> self arrow) (process->handle (task-arrow-spawn gp-2 (the-as task-arrow self))))
)
(set! (-> self data-int32 0) 0)
0
(none)
(game-task-node city-protect-water-slums-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(set-setting! 'airlock #f 0.0 0)
(let ((v1-5 (entity-by-name "parking-spot-1")))
(if v1-5
(logior! (-> v1-5 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-7 (entity-by-name "parking-spot-2")))
(if v1-7
(logior! (-> v1-7 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-9 (entity-by-name "parking-spot-12")))
(if v1-9
(logior! (-> v1-9 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-11 (entity-by-name "parking-spot-59")))
(if v1-11
(logior! (-> v1-11 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-13 (entity-by-name "parking-spot-60")))
(if v1-13
(logior! (-> v1-13 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-15 (entity-by-name "parking-spot-61")))
(if v1-15
(logior! (-> v1-15 extra perm status) (entity-perm-status bit-9))
)
)
(let ((v1-17 (entity-by-name "parking-spot-62")))
(if v1-17
(logior! (-> v1-17 extra perm status) (entity-perm-status bit-9))
)
)
(let ((gp-0 *traffic-manager*))
(send-event gp-0 'set-alert-level 2)
(send-event gp-0 'set-alert-duration #xa4cb80)
(send-event gp-0 'deactivate-by-type 6)
(send-event gp-0 'deactivate-by-type 18)
(send-event gp-0 'deactivate-by-type 19)
(send-event gp-0 'deactivate-by-type 20)
(send-event gp-0 'deactivate-by-type 11)
(send-event gp-0 'deactivate-by-type 12)
(send-event gp-0 'deactivate-by-type 13)
(send-event gp-0 'deactivate-by-type 14)
(send-event gp-0 'deactivate-by-type 15)
(send-event gp-0 'deactivate-by-type 16)
(send-event gp-0 'set-object-target-count 6 0)
(send-event gp-0 'set-object-target-count 18 0)
(send-event gp-0 'set-object-target-count 19 0)
(send-event gp-0 'set-object-target-count 11 0)
(send-event gp-0 'set-object-target-count 12 0)
(send-event gp-0 'set-object-target-count 13 0)
(send-event gp-0 'set-object-target-count 14 0)
(send-event gp-0 'set-object-target-count 15 0)
(send-event gp-0 'set-object-target-count 16 0)
(send-event gp-0 'set-object-auto-activate 6 #f)
(send-event gp-0 'set-guard-target-count-range 0 4 4)
(send-event gp-0 'set-guard-target-count-range 1 5 5)
(send-event gp-0 'set-guard-target-count-range 4 0 0)
(send-event gp-0 'set-guard-target-count-range 5 0 0)
)
(speech-control-method-10 *speech-control* 6 (new 'static 'speech-type-info
:channel #x1
:priority -2
:min-delay #x258
:max-delay #x4b0
:list (new 'static 'boxed-array :type string
"kg320a"
"kg321a"
"kg322a"
"kg323a"
"kg324a"
"kg325a"
"kg326a"
"kg327a"
"kg328a"
"kg329a"
"kg330a"
"kg331a"
"kg332a"
"kg333a"
"kg334a"
"kg335a"
"kg336a"
"kg337a"
"kg338a"
"kg339a"
"kg340a"
"kg341a"
"kg342a"
"kg343a"
"kg344a"
"kg345a"
"kg347a"
)
)
)
(dotimes (gp-1 (length *city-slums-transport-info*))
(set! (-> *city-slums-transport-info* gp-1 spawned) #f)
)
(let ((gp-2 (new 'stack-no-clear 'task-arrow-params)))
(set! (-> gp-2 pos quad) (-> (new 'static 'vector :x 1666621.9 :y 32766.771 :z -1103984.6 :w 1.0) quad))
(quaternion-identity! (-> gp-2 quat))
(set! (-> gp-2 flags) (task-arrow-flags))
(set! (-> gp-2 map-icon) (the-as uint 15))
(set! (-> self arrow) (process->handle (task-arrow-spawn gp-2 (the-as task-arrow self))))
)
(set! (-> self data-int32 0) 0)
0
(none)
)
)
(set-subtask-hook!
*game-info*
142
1
(the-as (function object) (lambda :behavior task-manager
()
(let ((a0-0 *traffic-manager*))
(send-event a0-0 'restore-default-settings)
)
(none)
)
)
(game-task-node city-protect-water-slums-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(let ((a0-0 *traffic-manager*))
(send-event a0-0 'restore-default-settings)
)
(none)
)
)
(set-subtask-hook!
*game-info*
142
2
(the-as
(function object)
(lambda :behavior task-manager
()
(local-vars (s5-4 object))
(let ((s4-0 (new 'static 'vector :x 1666621.9 :y 32766.771 :z -1103984.6 :w 1.0))
(gp-0 (vector-z-quaternion!
(new 'stack-no-clear 'vector)
(new 'static 'quaternion :x -0.0015 :y -0.199 :z 0.0002 :w -0.9799)
(game-task-node city-protect-water-slums-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(local-vars (s5-4 object))
(let ((s4-0 (new 'static 'vector :x 1666621.9 :y 32766.771 :z -1103984.6 :w 1.0))
(gp-0 (vector-z-quaternion!
(new 'stack-no-clear 'vector)
(new 'static 'quaternion :x -0.0015 :y -0.199 :z 0.0002 :w -0.9799)
)
)
(s5-0 (new 'stack-no-clear 'vector))
)
(vector-! s5-0 (target-pos 0) s4-0)
(let ((v1-1 s5-0))
(if (and (< (sqrtf (+ (* (-> v1-1 x) (-> v1-1 x)) (* (-> v1-1 z) (-> v1-1 z)))) 122880.0)
(< 0.0 (vector-dot s5-0 gp-0))
)
(set! (-> self data-int32 0) 1)
)
)
)
(cond
((zero? (-> self data-int32 0))
(dotimes (gp-1 (length *city-slums-transport-info*))
(let ((s5-1 (-> *city-slums-transport-info* gp-1)))
(new 'stack-no-clear 'vector)
(new 'stack-no-clear 'vector)
(new 'stack-no-clear 'vector)
(new 'stack-no-clear 'vector)
0.0
(let ((f0-7 (vector-vector-xz-distance (target-pos 0) (-> s5-1 t-pos))))
(cond
((and (< f0-7 327680.0) (< 204800.0 f0-7))
(when (and (not (handle->process (-> self slave gp-1)))
(< (the int (-> self data-float gp-1)) (-> self clock frame-counter))
)
(let ((s4-2 (new 'stack-no-clear 'transport-params)))
(let ((s3-2 (new 'stack-no-clear 'vector)))
(set! (-> s3-2 quad) (-> s5-1 t-pos quad))
(set! (-> s4-2 spawn-pos quad) (-> s5-1 t-pos quad))
(quaternion-copy! (-> s4-2 quat) (-> s5-1 t-quat))
(set! (-> s4-2 max-guard) (-> s5-1 num-guard))
(set! (-> s4-2 max-guard) (the-as uint 8))
(set! (-> s4-2 turret?) #t)
(set! (-> s4-2 speeches?) #t)
(set! (-> s3-2 y) 0.0)
)
(let* ((s5-2 (entity-nav-mesh-by-aid (the-as actor-id 9070)))
(a0-16 (if (type? s5-2 entity-nav-mesh)
s5-2
)
)
)
(when a0-16
(set! (-> s4-2 nav-mesh) (-> a0-16 nav-mesh))
(set! (-> self slave gp-1) (ppointer->handle (process-spawn transport s4-2 :to self)))
)
)
)
)
(s5-0 (new 'stack-no-clear 'vector))
)
((< 368640.0 f0-7)
(if (handle->process (-> self slave gp-1))
(send-event (handle->process (-> self slave gp-1)) 'leave)
)
)
)
)
)
(if (and (handle->process (-> self slave gp-1))
(begin
(let ((s5-5 #t)
(a1-11 (new 'stack-no-clear 'event-message-block))
)
(set! (-> a1-11 from) (process->ppointer self))
(set! (-> a1-11 num-params) 0)
(set! (-> a1-11 message) 'guards-left)
(let ((v1-75 (the-as object (send-event-function (handle->process (-> self slave gp-1)) a1-11))))
(cmove-#f-nonzero s5-4 v1-75 s5-5)
)
)
s5-4
)
)
(set! (-> self data-float gp-1) (the float (+ (-> self clock frame-counter) (seconds 20))))
)
)
)
(else
(let ((gp-2 0))
(dotimes (s5-6 (length *city-slums-transport-info*))
(when (handle->process (-> self slave s5-6))
(send-event (handle->process (-> self slave s5-6)) 'leave)
(+! gp-2 1)
)
)
(vector-! s5-0 (target-pos 0) s4-0)
(let ((v1-1 s5-0))
(if (and (< (sqrtf (+ (* (-> v1-1 x) (-> v1-1 x)) (* (-> v1-1 z) (-> v1-1 z)))) 122880.0)
(< 0.0 (vector-dot s5-0 gp-0))
)
(set! (-> self data-int32 0) 1)
(if (zero? gp-2)
(go-virtual complete)
)
)
)
(cond
((zero? (-> self data-int32 0))
(dotimes (gp-1 (length *city-slums-transport-info*))
(let ((s5-1 (-> *city-slums-transport-info* gp-1)))
(new 'stack-no-clear 'vector)
(new 'stack-no-clear 'vector)
(new 'stack-no-clear 'vector)
(new 'stack-no-clear 'vector)
0.0
(let ((f0-7 (vector-vector-xz-distance (target-pos 0) (-> s5-1 t-pos))))
(cond
((and (< f0-7 327680.0) (< 204800.0 f0-7))
(when (and (not (handle->process (-> self slave gp-1)))
(< (the int (-> self data-float gp-1)) (-> self clock frame-counter))
)
(let ((s4-2 (new 'stack-no-clear 'transport-params)))
(let ((s3-2 (new 'stack-no-clear 'vector)))
(set! (-> s3-2 quad) (-> s5-1 t-pos quad))
(set! (-> s4-2 spawn-pos quad) (-> s5-1 t-pos quad))
(quaternion-copy! (-> s4-2 quat) (-> s5-1 t-quat))
(set! (-> s4-2 max-guard) (-> s5-1 num-guard))
(set! (-> s4-2 max-guard) (the-as uint 8))
(set! (-> s4-2 turret?) #t)
(set! (-> s4-2 speeches?) #t)
(set! (-> s3-2 y) 0.0)
)
(let* ((s5-2 (entity-nav-mesh-by-aid (the-as actor-id 9070)))
(a0-16 (if (type? s5-2 entity-nav-mesh)
s5-2
)
)
)
(when a0-16
(set! (-> s4-2 nav-mesh) (-> a0-16 nav-mesh))
(set! (-> self slave gp-1) (ppointer->handle (process-spawn transport s4-2 :to self)))
)
)
)
)
)
((< 368640.0 f0-7)
(if (handle->process (-> self slave gp-1))
(send-event (handle->process (-> self slave gp-1)) 'leave)
)
)
)
)
)
(if (and (handle->process (-> self slave gp-1))
(begin
(let ((s5-5 #t)
(a1-11 (new 'stack-no-clear 'event-message-block))
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-protect-water-slums-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(until #f
(suspend)
)
#f
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-protect-water-slums-resolution)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(send-event (handle->process (-> self arrow)) 'leave)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(talker-spawn-func (-> *talker-speech* 185) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-protect-water-slums-resolution)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager () (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-protect-water-slums-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
(set-subtask-hook!
*game-info*
(game-task-node city-protect-water-slums-fight)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set! (-> self slave 0)
(ppointer->handle (seal-of-mar-spawn
self
(new 'static 'vector :x 3150154.5 :y 41696.617 :z -2989634.8 :w 1.0)
(new 'static 'vector :x -0.0086 :y -0.0227 :z -0.691 :w 0.7223)
(new 'static 'vector :x 0.06 :y 0.06 :z 0.06 :w 1.0)
)
)
(set! (-> a1-11 from) (process->ppointer self))
(set! (-> a1-11 num-params) 0)
(set! (-> a1-11 message) 'guards-left)
(let ((v1-75 (the-as object (send-event-function (handle->process (-> self slave gp-1)) a1-11))))
(cmove-#f-nonzero s5-4 v1-75 s5-5)
)
)
s5-4
)
)
(set! (-> self data-float gp-1) (the float (+ (-> self clock frame-counter) (seconds 20))))
)
(set! (-> self slave 1) (the-as handle #f))
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-protect-water-slums-fight)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(when (handle->process (-> self slave 0))
(let ((f0-0
(vector-vector-xz-distance (new 'static 'vector :x 3132661.8 :y 33669.12 :z -2965708.8 :w 1.0) (target-pos 0))
)
)
(cond
((< f0-0 20480.0)
(when (!= (-> self slave 0) #f)
(deactivate (handle->process (-> self slave 0)))
(set! (-> self slave 0) (the-as handle #f))
)
(if (= (-> self slave 1) #f)
(set! (-> self slave 1)
(ppointer->handle (process-spawn scene-player :init scene-player-init "city-protect-slums-intro" #t #f))
)
)
)
)
(else
(let ((gp-2 0))
(dotimes (s5-6 (length *city-slums-transport-info*))
(when (handle->process (-> self slave s5-6))
(send-event (handle->process (-> self slave s5-6)) 'leave)
(+! gp-2 1)
)
)
(if (zero? gp-2)
(go-virtual complete)
)
)
((< f0-0 163840.0)
(script-eval '(want-anim "city-protect-slums-intro"))
)
)
)
(none)
)
)
)
(set-subtask-hook! *game-info* 142 3 (the-as (function object) (lambda :behavior task-manager
()
(until #f
(suspend)
)
#f
(none)
)
)
)
(set-subtask-hook!
*game-info*
142
4
(the-as
(function object)
(lambda :behavior task-manager
()
(send-event (handle->process (-> self arrow)) 'leave)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
(suspend)
)
(talker-spawn-func (-> *talker-speech* 185) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
)
(set-subtask-hook! *game-info* 142 5 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
142
1
(the-as
(function object)
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
)
)
(set-subtask-hook!
*game-info*
141
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self slave 0)
(ppointer->handle (seal-of-mar-spawn
self
(new 'static 'vector :x 3150154.5 :y 41696.617 :z -2989634.8 :w 1.0)
(new 'static 'vector :x -0.0086 :y -0.0227 :z -0.691 :w 0.7223)
(new 'static 'vector :x 0.06 :y 0.06 :z 0.06 :w 1.0)
)
)
)
(set! (-> self slave 1) (the-as handle #f))
(none)
)
)
)
(set-subtask-hook!
*game-info*
141
2
(the-as
(function object)
(lambda :behavior task-manager
()
(when (handle->process (-> self slave 0))
(let ((f0-0
(vector-vector-xz-distance (new 'static 'vector :x 3132661.8 :y 33669.12 :z -2965708.8 :w 1.0) (target-pos 0))
)
)
(cond
((< f0-0 20480.0)
(when (!= (-> self slave 0) #f)
(deactivate (handle->process (-> self slave 0)))
(set! (-> self slave 0) (the-as handle #f))
)
(if (= (-> self slave 1) #f)
(set! (-> self slave 1)
(ppointer->handle (process-spawn scene-player :init scene-player-init "city-protect-slums-intro" #t #f))
)
)
)
((< f0-0 163840.0)
(script-eval '(want-anim "city-protect-slums-intro"))
)
)
)
)
(none)
)
(none)
)
)
+34 -40
View File
@@ -1021,7 +1021,7 @@ The faster it's moving the fast it flaps it's wings, etc
)
(set! (-> self state-time) (-> self clock frame-counter))
(set! (-> self far-time) (-> self clock frame-counter))
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
(none)
)
:exit (behavior ()
@@ -1081,7 +1081,7 @@ The faster it's moving the fast it flaps it's wings, etc
)
(set! (-> self near-timer) 3000)
(set! (-> self far-time) (-> self clock frame-counter))
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
(none)
)
:exit (behavior ()
@@ -1171,7 +1171,7 @@ The faster it's moving the fast it flaps it's wings, etc
(t9-0)
)
)
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-mode #f 0.0 1)
(none)
)
:exit (behavior ()
@@ -1252,7 +1252,7 @@ The faster it's moving the fast it flaps it's wings, etc
(defmethod init-enemy-collision! pegasus ((obj pegasus))
"Initializes the [[collide-shape-moving]] and any ancillary tasks to make the enemy collide properly"
(stack-size-set! (-> obj main-thread) 512)
(stack-size-set! (-> obj main-thread) 512) ;; added
(let ((cshape (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> cshape dynam) (copy *standard-dynamics* 'process))
(set! (-> cshape reaction) cshape-reaction-default)
@@ -1410,8 +1410,8 @@ The faster it's moving the fast it flaps it's wings, etc
(set-subtask-hook!
*game-info*
107
0
(game-task-node forest-scouts-pegasus)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set! (-> *game-info* controller 0) (process->handle self))
@@ -1436,48 +1436,42 @@ The faster it's moving the fast it flaps it's wings, etc
(set-subtask-hook!
*game-info*
107
3
(the-as
(function object)
(lambda :behavior task-manager
()
(local-vars (data int))
(set! (-> self start-time) (-> self clock frame-counter))
(set! (-> self hud-timer) (ppointer->handle (process-spawn hud-pegasus :init hud-init-by-other :to self)))
(while (> (-> self data-int32 0) 0)
(set! data (-> self data-int32 1))
(when (-> self actor-group 0)
(dotimes (actor-group (the-as int (-> self actor-group 0 0)))
(let ((actor (-> (&+ (-> self actor-group 0) (* actor-group 8)) 3)))
(if (and actor (logtest? (-> actor extra perm status) (entity-perm-status subtask-complete)))
(set! data (+ data -1))
)
)
(game-task-node forest-scouts-pegasus)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(local-vars (data int))
(set! (-> self start-time) (-> self clock frame-counter))
(set! (-> self hud-timer) (ppointer->handle (process-spawn hud-pegasus :init hud-init-by-other :to self)))
(while (> (-> self data-int32 0) 0)
(set! data (-> self data-int32 1))
(when (-> self actor-group 0)
(dotimes (actor-group (the-as int (-> self actor-group 0 0)))
(let ((actor (-> (&+ (-> self actor-group 0) (* actor-group 8)) 3)))
(if (and actor (logtest? (-> actor extra perm status) (entity-perm-status subtask-complete)))
(set! data (+ data -1))
)
)
)
(let ((_data data))
(set! (-> self data-int32 0) _data)
(set! (-> *game-info* counter) (the float _data))
)
(suspend)
)
(go-virtual complete)
(none)
(let ((_data data))
(set! (-> self data-int32 0) _data)
(set! (-> *game-info* counter) (the float _data))
)
(suspend)
)
(go-virtual complete)
(none)
)
)
(set-subtask-hook!
*game-info*
107
4
(the-as
(function object)
(lambda ()
(task-node-close! (game-task-node forest-scouts-resolution))
(talker-spawn-func (-> *talker-speech* 90) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
(game-task-node forest-scouts-pegasus)
TASK_MANAGER_COMPLETE_HOOK
(lambda ()
(task-node-close! (game-task-node forest-scouts-resolution))
(talker-spawn-func (-> *talker-speech* 90) *entity-pool* (target-pos 0) (the-as region #f))
(none)
)
)
@@ -161,8 +161,8 @@
)
)
(when v1-22
(set-setting! 'entity-name "camera-180" 0 0)
(set-setting! 'process-mask 'set 0 (process-mask movie enemy))
(set-setting! 'entity-name "camera-180" 0.0 0)
(set-setting! 'process-mask 'set 0.0 (process-mask movie enemy))
(process-grab? *target* #f)
(let ((a1-13 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-13 from) (process->ppointer self))
@@ -629,8 +629,8 @@ This commonly includes things such as:
(while (not (process-grab? *target* #f))
(suspend)
)
(set-setting! 'entity-name "camera-182" 0 0)
(set-setting! 'process-mask 'set 0 (process-mask movie enemy))
(set-setting! 'entity-name "camera-182" 0.0 0)
(set-setting! 'process-mask 'set 0.0 (process-mask movie enemy))
(task-node-close! (game-task-node fortress-dump-missile))
(let ((gp-1 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.75))
@@ -749,8 +749,8 @@ This commonly includes things such as:
)
)
:enter (behavior ()
(set-setting! 'allow-pause #f 0 0)
(set-setting! 'allow-progress #f 0 0)
(set-setting! 'allow-pause #f 0.0 0)
(set-setting! 'allow-progress #f 0.0 0)
(none)
)
:exit (behavior ()
@@ -601,7 +601,7 @@
)
(ja-no-eval :group! (-> self draw art-group data 3) :num! zero)
(ja-post)
(set-setting! 'spotlight-color #f 0 (the-as uint #x80a0a0ff))
(set-setting! 'spotlight-color #f 0.0 (the-as uint #x80a0a0ff))
(go-virtual idle)
(none)
)
@@ -722,7 +722,7 @@
)
;; WARN: Return type mismatch pointer vs symbol.
;; ERROR: Failed store: (s.w! (+ t5-0 8) 0) at op 82
;; ERROR: Failed load: (set! t0-6 (l.d (+ a0-28 8))) at op 170
(defmethod fort-robotank-turret-method-32 fort-robotank-turret ((obj fort-robotank-turret) (arg0 (inline-array vector)))
(let ((gp-0 (new 'stack-no-clear 'projectile-init-by-other-params)))
@@ -205,7 +205,7 @@
(new 'static 'fort-robotank-segment-event
:event-type 'code
:pos-norm 0.01
:param-obj (lambda () (set-setting! 'target-height 'abs -981467136 0) (none))
:param-obj (lambda () (set-setting! 'target-height 'abs (meters -1) 0) (none))
)
(new 'static 'fort-robotank-segment-event
:event-type 'send-event
@@ -595,11 +595,11 @@
)
)
(('pov-cam-on)
(set-setting! 'mode-name 'cam-pov-track 0 0)
(set-setting! 'allow-look-around #f 0 0)
(set-setting! 'target-height 'abs -968884224 0)
(set-setting! 'mode-name 'cam-pov-track 0.0 0)
(set-setting! 'allow-look-around #f 0.0 0)
(set-setting! 'target-height 'abs (meters -3) 0)
(let ((v1-27 (process->ppointer obj)))
(set-setting! 'pov-handle v1-27 #x40400000 (-> v1-27 0 pid))
(set-setting! 'pov-handle v1-27 3.0 (-> v1-27 0 pid))
)
(set-setting! 'pov-offset 'asdf (-> obj pov-cam-offset) 0)
(send-event (handle->process (-> obj turret)) 'pov-cam-on)
@@ -625,8 +625,8 @@
)
(('external-cam-on)
(hide-hud-quick #f)
(set-setting! 'entity-name (-> sv-96 actor) 0 0)
(set-setting! 'process-mask 'set 0 (process-mask movie enemy))
(set-setting! 'entity-name (-> sv-96 actor) 0.0 0)
(set-setting! 'process-mask 'set 0.0 (process-mask movie enemy))
(remove-setting! 'target-height)
(process-grab? *target* #f)
(send-event (handle->process (-> obj turret)) 'fire-suppress #t)
@@ -687,8 +687,8 @@
)
(when (logtest? (-> self flags) 32)
(set! (-> self flags) (logand -33 (-> self flags)))
(set-setting! 'music 'danger11 0 0)
(set-setting! 'music-volume 'rel #x3f666666 0)
(set-setting! 'music 'danger11 0.0 0)
(set-setting! 'music-volume 'rel 0.9 0)
(go-virtual moving)
)
(none)
@@ -324,25 +324,20 @@ This commonly includes things such as:
(none)
)
;; failed to figure out what this is:
(set-subtask-hook!
*game-info*
2
3
(lambda () (with-pp
(until #f
(sound-play "fortress-alarm")
(let ((gp-1 (-> pp clock frame-counter)))
(until (>= (- (-> pp clock frame-counter) gp-1) (seconds 1))
(suspend)
)
)
)
(the-as object #f)
)
(game-task-node fortress-escape-introduction)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(until #f
(sound-play "fortress-alarm")
(let ((gp-1 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 1))
(suspend)
)
)
)
(the-as object #f)
)
)
@@ -238,8 +238,8 @@ This commonly includes things such as:
)
)
(hide-hud-quick #f)
(set-setting! 'entity-name "camera-243" 0 0)
(set-setting! 'process-mask 'set 0 (process-mask movie enemy))
(set-setting! 'entity-name "camera-243" 0.0 0)
(set-setting! 'process-mask 'set 0.0 (process-mask movie enemy))
(process-grab? *target* #f)
(let ((gp-2 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-2) (seconds 2))
@@ -347,7 +347,7 @@ This commonly includes things such as:
)
)
)
(set-setting! 'interp-time 'abs 0 0)
(set-setting! 'interp-time 'abs 0.0 0)
(remove-setting! 'entity-name)
(remove-setting! 'process-mask)
(dotimes (gp-1 2)
@@ -691,124 +691,118 @@ and return it as well. Otherwise, set it to `0`"
(set-subtask-hook!
*game-info*
172
0
(the-as
(function object)
(lambda :behavior task-manager
()
(set-setting! 'sound-mode #f 0 1)
(set-setting! 'sound-excitement 'abs #x3f4ccccd 0)
(speech-control-method-10
*speech-control*
6
(new 'static 'speech-type-info
:min-delay #x4b0
:max-delay #x960
:list (new 'static 'boxed-array :type string
"kg001"
"kg002"
"kg004"
"kg006"
"kg001a"
"kg013"
"kg016"
"kg018"
"kg019"
"kg023"
"kg024"
"kg002a"
"kg004a"
"kg078a"
"kg079a"
"kg080a"
"kg081a"
"kg004a"
"kg082a"
"kg083a"
"kg084a"
"kg085a"
"kg086a"
"kg087a"
"kg088a"
"kg091a"
"kg023a"
"kg006a"
"kg092a"
"kg020a"
"kg093a"
"kg094a"
"kg095a"
"kg103a"
"kg104a"
"kg112a"
"kg024a"
"kg134"
"kg136"
"kg137"
"kg138"
"kg139"
"kg140"
"kg141"
)
(game-task-node fortress-save-friends-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(set-setting! 'sound-mode #f 0.0 1)
(set-setting! 'sound-excitement 'abs 0.8 0)
(speech-control-method-10
*speech-control*
6
(new 'static 'speech-type-info
:min-delay #x4b0
:max-delay #x960
:list (new 'static 'boxed-array :type string
"kg001"
"kg002"
"kg004"
"kg006"
"kg001a"
"kg013"
"kg016"
"kg018"
"kg019"
"kg023"
"kg024"
"kg002a"
"kg004a"
"kg078a"
"kg079a"
"kg080a"
"kg081a"
"kg004a"
"kg082a"
"kg083a"
"kg084a"
"kg085a"
"kg086a"
"kg087a"
"kg088a"
"kg091a"
"kg023a"
"kg006a"
"kg092a"
"kg020a"
"kg093a"
"kg094a"
"kg095a"
"kg103a"
"kg104a"
"kg112a"
"kg024a"
"kg134"
"kg136"
"kg137"
"kg138"
"kg139"
"kg140"
"kg141"
)
)
(speech-control-method-10
*speech-control*
9
(new 'static 'speech-type-info
:priority 1
:min-delay #x12c
:max-delay #x258
:list (new 'static 'boxed-array :type string
"kg133"
"kg142"
"kg144"
"kg145"
"kg146"
"kg147"
"kg148"
"kg149"
"kg150"
"kg138"
"kg151"
"kg152"
"kg153"
"kg154"
"kg155"
"kg159"
"kg163"
"kg164"
)
)
)
(speech-control-method-10
*speech-control*
10
(new 'static 'speech-type-info :priority #xa :max-delay #x12c :list (new 'static 'boxed-array :type string
"kg166"
"kg167"
"kg168"
"kg169"
"kg171"
"kg172"
"kg173"
"kg174"
"kg175"
)
)
)
(none)
)
(speech-control-method-10
*speech-control*
9
(new 'static 'speech-type-info
:priority 1
:min-delay #x12c
:max-delay #x258
:list (new 'static 'boxed-array :type string
"kg133"
"kg142"
"kg144"
"kg145"
"kg146"
"kg147"
"kg148"
"kg149"
"kg150"
"kg138"
"kg151"
"kg152"
"kg153"
"kg154"
"kg155"
"kg159"
"kg163"
"kg164"
)
)
)
(speech-control-method-10
*speech-control*
10
(new 'static 'speech-type-info :priority #xa :max-delay #x12c :list (new 'static 'boxed-array :type string
"kg166"
"kg167"
"kg168"
"kg169"
"kg171"
"kg172"
"kg173"
"kg174"
"kg175"
)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
172
1
(the-as
(function object)
(lambda :behavior task-manager () (speech-control-method-9 *speech-control*) (none))
)
(game-task-node fortress-save-friends-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager () (speech-control-method-9 *speech-control*) (none))
)
+32 -18
View File
@@ -202,7 +202,7 @@ This commonly includes things such as:
(cond
((= (-> (level-get-target-inside *level*) name) 'gungame)
(when (or (zero? (-> obj in-out)) (= (-> obj in-out) 1))
(set-setting! 'minimap 'clear 0 128)
(set-setting! 'minimap 'clear 0.0 (minimap-flag minimap))
(set! (-> obj in-out) (the-as uint 2))
)
)
@@ -1166,7 +1166,7 @@ This commonly includes things such as:
(set! (-> self training-goal) 4000.0)
(set! (-> self training?) #t)
)
(set-setting! 'features 'clear 0 896)
(set-setting! 'features 'clear 0.0 (game-feature gun-red gun-blue gun-dark))
(if (!= (-> *game-info* gun-type) 1)
(send-event *target* 'change-mode 'gun #f 1)
)
@@ -1182,7 +1182,7 @@ This commonly includes things such as:
(set! (-> self training-goal) 3000.0)
(set! (-> self training?) #t)
)
(set-setting! 'features 'clear 0 832)
(set-setting! 'features 'clear 0.0 (game-feature gun-yellow gun-blue gun-dark))
(if (!= (-> *game-info* gun-type) 2)
(send-event *target* 'change-mode 'gun #f 2)
)
@@ -1193,7 +1193,7 @@ This commonly includes things such as:
(set! (-> self task-silver) (the-as uint 101))
(set! (-> self task-bronze) (the-as uint 100))
(set! (-> *game-info* goal) 4000.0)
(set-setting! 'features 'clear 0 704)
(set-setting! 'features 'clear 0.0 (game-feature gun-yellow gun-red gun-dark))
(if (!= (-> *game-info* gun-type) 3)
(send-event *target* 'change-mode 'gun #f 3)
)
@@ -1715,8 +1715,15 @@ This commonly includes things such as:
)
)
(else
(set! (-> *game-info* sub-task-list 76 death-count)
(the-as uint (seekl (the-as int (-> *game-info* sub-task-list 76 death-count)) #xffff 1))
(set! (-> *game-info* sub-task-list (game-task-node city-yellow-gun-training-resolution) death-count)
(the-as
uint
(seekl
(the-as int (-> *game-info* sub-task-list (game-task-node city-yellow-gun-training-resolution) death-count))
#xffff
1
)
)
)
(let ((v1-28 (rand-vu-int-count 4)))
(cond
@@ -1778,8 +1785,15 @@ This commonly includes things such as:
)
)
(else
(set! (-> *game-info* sub-task-list 28 death-count)
(the-as uint (seekl (the-as int (-> *game-info* sub-task-list 28 death-count)) #xffff 1))
(set! (-> *game-info* sub-task-list (game-task-node city-red-gun-training-resolution) death-count)
(the-as
uint
(seekl
(the-as int (-> *game-info* sub-task-list (game-task-node city-red-gun-training-resolution) death-count))
#xffff
1
)
)
)
(let ((v1-46 (rand-vu-int-count 4)))
(cond
@@ -2173,7 +2187,7 @@ This commonly includes things such as:
- loading the skeleton group / bones
- sounds"
(local-vars (sv-16 res-tag))
(set-setting! 'darkjak #f 0 0)
(set-setting! 'darkjak #f 0.0 0)
(set! sv-16 (new 'static 'res-tag))
(let ((v1-3 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16))))
(cond
@@ -2205,7 +2219,7 @@ This commonly includes things such as:
(training-manager-method-27 obj *blue-training-path-global-info*)
(training-manager-method-27 obj *peace-training-path-global-info*)
(training-manager-method-22 obj #f)
(set-setting! 'speech-control #f 0 0)
(set-setting! 'speech-control #f 0.0 0)
(go (method-of-object obj wait))
(none)
)
@@ -2509,8 +2523,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
43
0
(game-task-node sewer-enemy-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(let ((s5-0 (new 'static 'fact-info :pickup-type (pickup-type gun-yellow) :pickup-spawn-amount 1.0))
@@ -2539,8 +2553,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
43
2
(game-task-node sewer-enemy-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager () (the-as object (gui-control-method-12
*gui-control*
self
@@ -2557,8 +2571,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
177
0
(game-task-node sewer-escort-get-gun)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(let ((s5-0 (new 'static 'fact-info :pickup-type (pickup-type gun-dark) :pickup-spawn-amount 1.0))
@@ -2587,8 +2601,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
177
2
(game-task-node sewer-escort-get-gun)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager () (the-as object (gui-control-method-12
*gui-control*
self
+1 -1
View File
@@ -180,7 +180,7 @@ This commonly includes things such as:
(set! (-> obj draw shadow-ctrl) v1-9)
)
(hide-light-spawn obj *zero-vector* (-> obj node-list data 12))
(set-setting! 'spotlight-color #f 0 (the-as uint #x80c0c0c0))
(set-setting! 'spotlight-color #f 0.0 (the-as uint #x80c0c0c0))
(ja-post)
(go (method-of-object obj idle))
(none)
+1 -1
View File
@@ -133,7 +133,7 @@ This commonly includes things such as:
(defstate play-game (hip-whack-a-metal)
:virtual #t
:code (behavior ((arg0 game-task-event))
(set-setting! 'borrow '((hiphog 0 lwhack special)) 0 0)
(set-setting! 'borrow '((hiphog 0 lwhack special)) 0.0 0)
(process-taskable-anim-loop
(the-as (function process-taskable object) (lambda () (!= (level-status *level* 'lwhack) 'active)))
)
+8 -8
View File
@@ -2098,8 +2098,8 @@
(when arg0
(set! (-> *game-info* score) 0.0)
(sound-play "whack-start")
(add-setting! 'music 'danger3 0 0)
(set-setting! 'entity-name (res-lump-struct (-> self entity) 'camera-name structure) 0 0)
(add-setting! 'music 'danger3 0.0 0)
(set-setting! 'entity-name (res-lump-struct (-> self entity) 'camera-name structure) 0.0 0)
(set! (-> self bopper) (process-spawn
manipy
:init manipy-init
@@ -2113,8 +2113,8 @@
)
)
(send-event (ppointer->process (-> self bopper)) 'anim-mode 'clone-anim)
(set-setting! 'airlock #f 0 0)
(set-setting! 'borrow '((ctywide 1 lwidea #f) (hiphog 0 lwhack special)) 0 0)
(set-setting! 'airlock #f 0.0 0)
(set-setting! 'borrow '((ctywide 1 lwidea #f) (hiphog 0 lwhack special)) 0.0 0)
(want-display-level *load-state* 'ctyport #f)
(want-display-level *load-state* 'ctywide #f)
(set! (-> self speech-time) (-> self clock frame-counter))
@@ -2670,7 +2670,7 @@
(ja :num! (loop!))
)
)
(let* ((v1-32 (-> *game-info* sub-task-list 226))
(let* ((v1-32 (-> *game-info* sub-task-list (game-task-node city-whack-resolution)))
(v1-34 (if (-> v1-32 info)
(-> v1-32 info manager)
(the-as handle #f)
@@ -2750,7 +2750,7 @@
(set! (-> a1-11 num-params) 0)
(set! (-> a1-11 message) 'complete)
(let ((t9-20 send-event-function)
(v1-34 (-> *game-info* sub-task-list 226))
(v1-34 (-> *game-info* sub-task-list (game-task-node city-whack-resolution)))
)
(t9-20
(handle->process (if (-> v1-34 info)
@@ -2811,8 +2811,8 @@
(set-subtask-hook!
*game-info*
226
0
(game-task-node city-whack-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior whack-a-metal () (let ((gp-0 (entity-by-name "hip-whack-a-metal-2")))
(if gp-0
(process-spawn whack-a-metal :init whack-a-metal-init gp-0 :to self)
+8 -3
View File
@@ -3122,7 +3122,7 @@
(* 0.2 (-> self clock seconds-per-frame))
(bucket-id screen-filter)
)
(set-setting! 'allow-blackout #f 0 0)
(set-setting! 'allow-blackout #f 0.0 0)
)
(none)
)
@@ -3620,7 +3620,12 @@
(485
(apply
,(lambda ()
(set-setting! 'borrow '((ctywide 0 lcguard special) (prison 0 ldjakbrn special) (introcst 0 lcitylow #f)) 0 0)
(set-setting!
'borrow
'((ctywide 0 lcguard special) (prison 0 ldjakbrn special) (introcst 0 lcitylow #f))
0.0
0
)
(apply-settings *setting-control*)
)
)
@@ -3629,7 +3634,7 @@
(apply
,(lambda ()
(with-pp
(set-setting! 'allow-blackout #f 0 0)
(set-setting! 'allow-blackout #f 0.0 0)
(setup
*screen-filter*
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0)
@@ -2385,7 +2385,7 @@ This commonly includes things such as:
)
(let ((a3-4 (res-lump-struct (-> self entity) 'camera-name structure)))
(if a3-4
(set-setting! 'entity-name a3-4 0 0)
(set-setting! 'entity-name a3-4 0.0 0)
)
)
(let ((gp-5 (-> self clock frame-counter)))
@@ -2419,7 +2419,7 @@ This commonly includes things such as:
)
(let ((a3-6 (res-lump-struct (-> self entity) 'camera-name structure)))
(if a3-6
(set-setting! 'entity-name a3-6 0 0)
(set-setting! 'entity-name a3-6 0.0 0)
)
)
(let ((gp-7 (-> self clock frame-counter)))
@@ -2515,7 +2515,7 @@ This commonly includes things such as:
)
(let ((a3-2 (res-lump-struct (-> self entity) 'camera-name structure)))
(if a3-2
(set-setting! 'entity-name a3-2 0 0)
(set-setting! 'entity-name a3-2 0.0 0)
)
)
(let ((gp-2 (-> self clock frame-counter)))
@@ -1450,7 +1450,7 @@
)
(set! (-> self neck flex-blend) 0.0)
(target-timed-invulnerable-off self 0)
(set-setting! 'process-mask 'set 0 (process-mask enemy platform projectile death))
(set-setting! 'process-mask 'set 0.0 (process-mask enemy platform projectile death))
(apply-settings *setting-control*)
(set! (-> self control transv quad) (the-as uint128 0))
(logior! (-> self focus-status) (focus-status dead))
+4 -4
View File
@@ -516,7 +516,7 @@ This commonly includes things such as:
(set! (-> self camera-state) 3)
)
((and (= (-> self camera-state) 1) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 8)))
(set-setting! 'interp-time 'abs 0 0)
(set-setting! 'interp-time 'abs 0.0 0)
(set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0)
(remove-setting! 'entity-name)
(set! (-> self camera-state) 2)
@@ -534,7 +534,7 @@ This commonly includes things such as:
(suspend)
(set! v1-5 (or (not *target*) (process-grab? *target* #f)))
)
(set-setting! 'entity-name "camera-171" 0 0)
(set-setting! 'entity-name "camera-171" 0.0 0)
(set! (-> self camera-state) 1)
(ja-channel-push! 1 (seconds 2))
(ja :group! (-> self draw art-group data 3) :num! min)
@@ -627,7 +627,7 @@ This commonly includes things such as:
)
)
((and (= (-> self camera-state) 1) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 4)))
(set-setting! 'interp-time 'abs 0 0)
(set-setting! 'interp-time 'abs 0.0 0)
(set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0)
(remove-setting! 'entity-name)
(set! (-> self camera-state) 2)
@@ -656,7 +656,7 @@ This commonly includes things such as:
(suspend)
(set! v1-1 (or (not *target*) (process-grab? *target* #f)))
)
(set-setting! 'entity-name "camera-170" 0 0)
(set-setting! 'entity-name "camera-170" 0.0 0)
(set! (-> self state-time) (-> self clock frame-counter))
(set! (-> self camera-state) 1)
(ja-channel-push! 1 (seconds 2))
+3 -3
View File
@@ -655,8 +655,8 @@ This commonly includes things such as:
(set! (-> v1-15 user-int8 1) 1)
)
)
(set-setting! 'gun #f 0 0)
(set-setting! 'entity-name "camera-194" 0 0)
(set-setting! 'gun #f 0.0 0)
(set-setting! 'entity-name "camera-194" 0.0 0)
(if (and *target*
(logtest? (state-flags prevent-gun) (-> *target* state-flags))
(cpad-pressed? (-> *target* control cpad number) up right down left r1)
@@ -1989,7 +1989,7 @@ This commonly includes things such as:
(when (and (not (logtest? (-> self flags) 2))
(< (vector-vector-distance (-> self root trans) (get-trans gp-0 0)) 102400.0)
)
(set-setting! 'sound-mode #f 0 2)
(set-setting! 'sound-mode #f 0.0 2)
(logior! (-> self flags) 2)
)
(when (and (logtest? (-> self flags) 2)
@@ -401,7 +401,7 @@
(go-virtual hidden)
)
((= v1-28 1)
(set-setting! 'music 'danger4 0 0)
(set-setting! 'music 'danger4 0.0 0)
(set! (-> self hud) (ppointer->handle (process-spawn hud-metalkor :init hud-init-by-other :to self)))
(metalkor-update-hud)
(set! (-> self lowtorso)
@@ -421,17 +421,17 @@
)
)
(set-countdown-to-roar)
(set-setting! 'fov 'abs #x466eeeef 0)
(set-setting! 'fov 'abs (degrees 84.0) 0)
(ja :group! (-> self draw art-group data 9) :num! min)
(go-virtual hang-shoot-n-launch)
)
((= v1-28 2)
(set-setting! 'music 'danger4 0 0)
(set-setting! 'music 'danger4 0.0 0)
(set-countdown-to-roar)
(go-virtual start-second-stage)
)
((= v1-28 3)
(set-setting! 'music 'danger4 0 0)
(set-setting! 'music 'danger4 0.0 0)
(set! (-> self last-close-attack) 0)
(set! (-> self last-standing-attack) 0)
(cond
@@ -474,13 +474,13 @@
(set! (-> self legs)
(ppointer->handle (process-spawn metalkor-legs "" (-> self root-override trans) :to self))
)
(set-setting! 'fov 'abs #x466eeeef 0)
(set-setting! 'fov 'abs (degrees 84.0) 0)
(go-virtual chase-target)
)
)
)
((= v1-28 4)
(set-setting! 'music 'danger4 0 0)
(set-setting! 'music 'danger4 0.0 0)
(set! (-> self wings)
(ppointer->handle (process-spawn metalkor-wings "" (-> self root-override trans) :to self))
)
@@ -1499,7 +1499,7 @@
)
:enter (behavior ()
(process-grab? *target* #f)
(set-setting! 'entity-name "camera-271" 0 0)
(set-setting! 'entity-name "camera-271" 0.0 0)
(send-event *camera* 'change-target self)
(none)
)
@@ -1654,7 +1654,7 @@
)
)
)
(set-setting! 'entity-name "camera-272" 0 0)
(set-setting! 'entity-name "camera-272" 0.0 0)
(send-event *camera* 'change-target self)
(set! (-> self need-teleport) #f)
(set-setting! 'teleport-on-entity-change 'abs #t 0)
@@ -1729,7 +1729,7 @@
)
(when (< f0-10 (* f1-9 f1-9))
(set! (-> self been-to-entity) #t)
(set-setting! 'entity-name "camera-271" 0 0)
(set-setting! 'entity-name "camera-271" 0.0 0)
)
)
)
@@ -1756,9 +1756,9 @@
(defstate last-gasp (metalkor)
:virtual #t
:enter (behavior ()
(set-setting! 'music #f 0 0)
(set-setting! 'music #f 0.0 0)
(process-grab? *target* #f)
(set-setting! 'entity-name "camera-272" 0 0)
(set-setting! 'entity-name "camera-272" 0.0 0)
(remove-setting! 'point-of-interest)
(send-event *camera* 'change-target self)
(if (nonzero? (-> self neck))
+27 -28
View File
@@ -9,35 +9,34 @@
(set-subtask-hook!
*game-info*
245
0
(the-as (function object) (lambda :behavior scene-player
()
0.0
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) (process->ppointer self))
(set! (-> a1-0 num-params) 1)
(set! (-> a1-0 message) 'test-pickup)
(set! (-> a1-0 param 0) (the-as uint 7))
(let ((f30-0 (send-event-function *target* a1-0)))
(let ((gp-0 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.1))
(suspend)
)
)
(send-event *target* 'change-mode 'darkjak #f 64)
(let ((gp-1 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.1))
(suspend)
)
)
(send-event *target* 'get-pickup 7 f30-0)
)
)
(send-event *target* 'end-mode)
(none)
)
(game-task-node nest-boss-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior scene-player
()
0.0
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) (process->ppointer self))
(set! (-> a1-0 num-params) 1)
(set! (-> a1-0 message) 'test-pickup)
(set! (-> a1-0 param 0) (the-as uint 7))
(let ((f30-0 (send-event-function *target* a1-0)))
(let ((gp-0 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.1))
(suspend)
)
)
(send-event *target* 'change-mode 'darkjak #f 64)
(let ((gp-1 (-> self clock frame-counter)))
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.1))
(suspend)
)
)
(send-event *target* 'get-pickup 7 f30-0)
)
)
(send-event *target* 'end-mode)
(none)
)
)
(defskelgroup skel-metalkor-fma-spinner metalkor-fma-spinner metalkor-fma-spinner-lod0-jg metalkor-fma-spinner-idle-ja
+2 -2
View File
@@ -75,8 +75,8 @@
(when (and (not (-> self set-camera)) (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.6)))
(process-grab? *target* #f)
(hide-hud-quick #f)
(set-setting! 'process-mask 'set 0 (process-mask movie enemy))
(set-setting! 'entity-name "camera-253" 0 0)
(set-setting! 'process-mask 'set 0.0 (process-mask movie enemy))
(set-setting! 'entity-name "camera-253" 0.0 0)
(set! (-> self set-camera) #t)
)
(rider-trans)
+1 -1
View File
@@ -1564,7 +1564,7 @@
(apply
,(lambda ()
(with-pp
(set-setting! 'process-mask 'set 0 (process-mask enemy platform projectile))
(set-setting! 'process-mask 'set 0.0 (process-mask enemy platform projectile))
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-0
(let ((t9-2 (method-of-type part-tracker activate)))
@@ -521,7 +521,7 @@
(get-point-at-percent-along-path! (-> self second-path) (-> self traj-dest) 0.0 'interp)
)
(else
(set-setting! 'music #f 0 0)
(set-setting! 'music #f 0.0 0)
(process-grab? *target* #f)
(get-point-at-percent-along-path! (-> self third-path) (-> self traj-dest) 0.0 'interp)
(send-event (handle->process (-> self hud)) 'hide-and-die)
@@ -1678,7 +1678,7 @@
:virtual #t
:event squid-handler
:enter (behavior ()
(set-setting! 'music 'danger4 0 0)
(set-setting! 'music 'danger4 0.0 0)
(set! (-> self driver-blend target) 1.0)
(set! (-> self state-time) (-> self clock frame-counter))
(set! (-> self hud) (ppointer->handle (process-spawn hud-squid :init hud-init-by-other :to self)))
@@ -359,7 +359,7 @@ This commonly includes things such as:
(fadein (seconds (new 'static 'bfloat :data 0.5)))
(kill "pal-lowrez-throne-1")
(fadein (frame-time-30 10))
(apply ,(lambda :behavior scene-player () (set-setting! 'rain 'abs 0 0) (none)))
(apply ,(lambda :behavior scene-player () (set-setting! 'rain 'abs 0.0 0) (none)))
(send-event
"metalkor-head"
'trans-hook
@@ -627,7 +627,7 @@ This commonly includes things such as:
:art-group "scenecamera"
:anim "palace-sneak-in-res"
:parts 21
:command-list '((0 (fadein (seconds 1)) (apply ,(lambda :behavior scene-player () (set-setting! 'rain 'abs 0 0) (none))))
:command-list '((0 (fadein (seconds 1)) (apply ,(lambda :behavior scene-player () (set-setting! 'rain 'abs 0.0 0) (none))))
(10000
(unless (task-closed? "palace-sneak-in-meeting") (talker-spawn "miss010"))
(task-close! "palace-sneak-in-meeting")
@@ -55,234 +55,219 @@
(set-subtask-hook!
*game-info*
87
0
(the-as
(function object)
(lambda :behavior task-manager
()
(when (not (task-node-closed? (game-task-node city-power-resolution)))
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
(set-setting! 'minimap 'clear 0 32)
(set! (-> self max-count) 5)
(set! (-> self count) 0)
(set! (-> *game-info* counter) 5.0)
(dotimes (v1-9 5)
(set! (-> self data-int32 v1-9) 0)
)
(set! (-> self slave 10) (the-as handle #f))
(dotimes (gp-0 (-> self max-count))
(set! (-> self data-vector gp-0 quad) (-> *city-power-switch-on-position* gp-0 quad))
(set! (-> self minimap gp-0)
(add-icon! *minimap* self (the-as uint 15) (the-as int #f) (-> *city-power-switch-on-position* gp-0) 0)
)
)
(game-task-node city-power-resolution)
TASK_MANAGER_INIT_HOOK
(lambda :behavior task-manager
()
(when (not (task-node-closed? (game-task-node city-power-resolution)))
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
(set! (-> self begin-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
(set-setting! 'minimap 'clear 0.0 (minimap-flag task-graph))
(set! (-> self max-count) 5)
(set! (-> self count) 0)
(set! (-> *game-info* counter) 5.0)
(dotimes (v1-9 5)
(set! (-> self data-int32 v1-9) 0)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
87
1
(the-as (function object) (lambda :behavior task-manager
()
(send-event *traffic-manager* 'restore-default-settings)
(dotimes (v1-3 (-> self max-count))
(when (-> self minimap v1-3)
(logior! (-> self minimap v1-3 flags) (minimap-flag fade-out))
(set! (-> self minimap v1-3) #f)
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
87
2
(the-as
(function object)
(lambda :behavior task-manager
()
(when (not (task-node-closed? (game-task-node city-power-resolution)))
(check-time self)
(set! (-> self count) 0)
(dotimes (v1-3 (-> self max-count))
(if (>= 1 (-> self data-int32 v1-3))
(+! (-> self count) 1)
(set! (-> self slave 10) (the-as handle #f))
(dotimes (gp-0 (-> self max-count))
(set! (-> self data-vector gp-0 quad) (-> *city-power-switch-on-position* gp-0 quad))
(set! (-> self minimap gp-0)
(add-icon! *minimap* self (the-as uint 15) (the-as int #f) (-> *city-power-switch-on-position* gp-0) 0)
)
)
(if (= (-> self count) (-> self max-count))
(set! (-> self state-time) (-> self clock frame-counter))
)
(set! (-> *game-info* counter) (the float (-> self count)))
)
(when (or (zero? (-> self count)) (task-node-closed? (game-task-node city-power-resolution)))
(when (zero? (-> self count))
(talker-spawn-func (-> *talker-speech* 92) *entity-pool* (target-pos 0) (the-as region #f))
(task-node-close! (game-task-node city-power-resolution))
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
(send-event (handle->process (-> self hud-counter)) 'hide-and-die)
(set! (-> self fail-on-death?) #f)
)
(cond
((handle->process (-> self slave 10))
(let ((gp-1 (handle->process (-> self slave 10))))
(when (and gp-1
(< 40960.0 (vector-vector-xz-distance (-> (the-as process-drawable gp-1) root trans) (target-pos 0)))
)
(send-event gp-1 'close)
(go-virtual complete)
)
)
)
(else
(go-virtual complete)
)
)
)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
87
3
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-turret :init hud-init-by-other :to self)))
(send-event *traffic-manager* 'set-target-level #x3f800000)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
(game-task-node city-power-resolution)
TASK_MANAGER_CLEANUP_HOOK
(lambda :behavior task-manager
()
(send-event *traffic-manager* 'restore-default-settings)
(dotimes (v1-3 (-> self max-count))
(when (-> self minimap v1-3)
(logior! (-> self minimap v1-3 flags) (minimap-flag fade-out))
(set! (-> self minimap v1-3) #f)
)
(send-event *traffic-manager* 'set-alert-level 1)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
)
(none)
)
)
(set-subtask-hook!
*game-info*
87
5
(the-as (function object) (lambda :behavior task-manager
()
(dotimes (v1-0 (-> self max-count))
(when (-> self minimap v1-0)
(logior! (-> self minimap v1-0 flags) (minimap-flag fade-out))
(set! (-> self minimap v1-0) #f)
)
)
(kill-all-children self)
(none)
)
(game-task-node city-power-resolution)
TASK_MANAGER_UPDATE_HOOK
(lambda :behavior task-manager
()
(when (not (task-node-closed? (game-task-node city-power-resolution)))
(check-time self)
(set! (-> self count) 0)
(dotimes (v1-3 (-> self max-count))
(if (>= 1 (-> self data-int32 v1-3))
(+! (-> self count) 1)
)
)
(if (= (-> self count) (-> self max-count))
(set! (-> self state-time) (-> self clock frame-counter))
)
)
(set-subtask-hook!
*game-info*
87
4
(the-as (function object) (lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))
(suspend)
)
(task-node-close! (game-task-node city-power-post-win))
(none)
)
)
)
(set-subtask-hook!
*game-info*
87
6
(the-as
(function object)
(lambda :behavior task-manager
((arg0 process-drawable) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((gp-0 (-> (level-get *level* 'lpower) entity data 0 entity)))
(cond
((= arg2 'guard-turret-status)
(let ((v1-5 (-> arg3 param 0)))
(let ((a0-2 (the-as object (-> arg3 param 1))))
(set! (-> *city-power-switch-on-position* v1-5 quad) (-> (the-as vector a0-2) quad))
)
(-> self data-int32 v1-5)
(set! (-> *game-info* counter) (the float (-> self count)))
)
(when (or (zero? (-> self count)) (task-node-closed? (game-task-node city-power-resolution)))
(when (zero? (-> self count))
(talker-spawn-func (-> *talker-speech* 92) *entity-pool* (target-pos 0) (the-as region #f))
(task-node-close! (game-task-node city-power-resolution))
(send-event (handle->process (-> self hud-timer)) 'hide-and-die)
(send-event (handle->process (-> self hud-counter)) 'hide-and-die)
(set! (-> self fail-on-death?) #f)
)
(cond
((handle->process (-> self slave 10))
(let ((gp-1 (handle->process (-> self slave 10))))
(when (and gp-1
(< 40960.0 (vector-vector-xz-distance (-> (the-as process-drawable gp-1) root trans) (target-pos 0)))
)
(send-event gp-1 'close)
(go-virtual complete)
)
)
((= arg2 'guard-turret-killed)
(let ((s4-1 (-> arg3 param 0)))
(set! (-> self data-int32 s4-1) 1)
(let ((v1-12 (process-spawn
cty-guard-turret-button
:init basebutton-init-by-other
gp-0
(-> arg0 root trans)
(-> arg0 root quat)
(-> arg0 entity)
#f
0
:to self
)
)
(else
(go-virtual complete)
)
)
)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-power-resolution)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-turret :init hud-init-by-other :to self)))
(send-event *traffic-manager* 'set-target-level #x3f800000)
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
(suspend)
)
(send-event *traffic-manager* 'set-alert-level 1)
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-power-resolution)
TASK_MANAGER_FAIL_HOOK
(lambda :behavior task-manager
()
(dotimes (v1-0 (-> self max-count))
(when (-> self minimap v1-0)
(logior! (-> self minimap v1-0 flags) (minimap-flag fade-out))
(set! (-> self minimap v1-0) #f)
)
)
(kill-all-children self)
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-power-resolution)
TASK_MANAGER_COMPLETE_HOOK
(lambda :behavior task-manager
()
(set! (-> self state-time) (-> self clock frame-counter))
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 1))
(suspend)
)
(task-node-close! (game-task-node city-power-post-win))
(none)
)
)
(set-subtask-hook!
*game-info*
(game-task-node city-power-resolution)
TASK_MANAGER_EVENT_HOOK
(lambda :behavior task-manager
((arg0 process-drawable) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((gp-0 (-> (level-get *level* 'lpower) entity data 0 entity)))
(cond
((= arg2 'guard-turret-status)
(let ((v1-5 (-> arg3 param 0)))
(let ((a0-2 (the-as object (-> arg3 param 1))))
(set! (-> *city-power-switch-on-position* v1-5 quad) (-> (the-as vector a0-2) quad))
)
(-> self data-int32 v1-5)
)
)
((= arg2 'guard-turret-killed)
(let ((s4-1 (-> arg3 param 0)))
(set! (-> self data-int32 s4-1) 1)
(let ((v1-12 (process-spawn
cty-guard-turret-button
:init basebutton-init-by-other
gp-0
(-> arg0 root trans)
(-> arg0 root quat)
(-> arg0 entity)
#f
0
:to self
)
)
(set! (-> self slave (-> self data-int32 s4-1)) (ppointer->handle v1-12))
(set! (-> (the-as basebutton (-> v1-12 0)) event-down) 'button-down)
)
)
#t
)
((= arg2 'guard-turret-button-pushed)
(let ((v1-21 (-> arg3 param 0)))
(set! (-> self data-int32 v1-21) 2)
(set! (-> self slave 10) (process->handle arg0))
(logior! (-> self minimap v1-21 flags) (minimap-flag fade-out))
(set! (-> self minimap v1-21) #f)
)
#t
)
((= arg2 'spawn-button)
(let ((s4-2 (-> arg3 param 0))
(s3-2 (-> arg3 param 1))
)
)
(when (not (handle->process (-> self slave (-> self data-int32 s4-2))))
(let ((v0-1 (the-as object (ppointer->handle (process-spawn
cty-guard-turret-button
:init basebutton-init-by-other
gp-0
(-> arg0 root trans)
(-> arg0 root quat)
(-> arg0 entity)
s3-2
0
:to self
)
(set! (-> self slave (-> self data-int32 s4-1)) (ppointer->handle v1-12))
(set! (-> (the-as basebutton (-> v1-12 0)) event-down) 'button-down)
)
)
#t
)
((= arg2 'guard-turret-button-pushed)
(let ((v1-21 (-> arg3 param 0)))
(set! (-> self data-int32 v1-21) 2)
(set! (-> self slave 10) (process->handle arg0))
(logior! (-> self minimap v1-21 flags) (minimap-flag fade-out))
(set! (-> self minimap v1-21) #f)
)
#t
)
((= arg2 'spawn-button)
(let ((s4-2 (-> arg3 param 0))
(s3-2 (-> arg3 param 1))
)
(when (not (handle->process (-> self slave (-> self data-int32 s4-2))))
(let ((v0-1 (the-as object (ppointer->handle (process-spawn
cty-guard-turret-button
:init basebutton-init-by-other
gp-0
(-> arg0 root trans)
(-> arg0 root quat)
(-> arg0 entity)
s3-2
0
:to self
)
)
)
)
(set! (-> self slave (-> self data-int32 s4-2)) (the-as handle v0-1))
v0-1
)
)
)
)
)
(set! (-> self slave (-> self data-int32 s4-2)) (the-as handle v0-1))
v0-1
)
)
)
)
)
)
)
)
+12 -9
View File
@@ -724,8 +724,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
13
3
(game-task-node ruins-tower-exit)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(set! (-> self data-int32 0) 0)
@@ -781,12 +781,15 @@ This commonly includes things such as:
)
)
(copy-hooks! (-> *game-info* sub-task-list 99) (-> *game-info* sub-task-list 13))
(copy-hooks!
(-> *game-info* sub-task-list (game-task-node ruins-enemy-exit))
(-> *game-info* sub-task-list (game-task-node ruins-tower-exit))
)
(set-subtask-hook!
*game-info*
194
3
(game-task-node ruins-mech-break-wall-1)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(let ((s4-0 (entity-by-type mech))
@@ -873,8 +876,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
195
3
(game-task-node ruins-mech-move-block-1)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(local-vars (v1-3 object) (v1-14 symbol) (v1-18 symbol) (v1-25 object) (v1-31 symbol) (v1-32 symbol))
@@ -949,8 +952,8 @@ This commonly includes things such as:
(set-subtask-hook!
*game-info*
196
3
(game-task-node ruins-mech-throw-block-1)
TASK_MANAGER_CODE_HOOK
(lambda :behavior task-manager
()
(local-vars (v1-6 object) (v1-58 symbol))

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