jak-project/goal_src/levels/firecanyon/assistant-firecanyon.gc

539 lines
25 KiB
Common Lisp
Raw Normal View History

;;-*-Lisp-*-
2020-09-04 14:44:23 -04:00
(in-package goal)
;; name: assistant-firecanyon.gc
;; name in dgo: assistant-firecanyon
;; dgos: L1, FIC
decomp: Continuing full pass of gameplay code (#839) * decomp: finish `babak` - :code is called in `(code nav-enemy-patrol babak)` * decomp: almost finish `process-taskable` * blocked: mistycannon / pelican * decomp: finish `babak-with-cannon` write a script to fix gsrc * decomp: finish `process-taskable` * decomp: finish `flutflut` and `yakow` * decomp: finish `fishermans-boat` * blocked: state decomp `training-obs` * decomp: finish `muse` * decomp: finish `bonelurker` * blocked: state decomp in `quicksandlurker`| `balloonlurker` * decomp: finish `assistant-village2` * scripts: script to help updating goal_src * starting to update goal_src * tests: update ref tests * src: more src updating * src: waiting on `process-taskable` and `muse` * blocked: `citb-plat` state decomp * decomp: finish `square-platform` * blocked: `orbit-plat` due to overlays + static data * decomp: finish `qbert-plat` * blocked: almost finish `misty-conveyor`, sparticle-callback * blocked: jungle-mirrors * blocked: state decomp in `swamp-blimp` * decomp: finish `swamp-bat` * decomp: finish `swamp-rat` * decomp: finish `swamp-rat-nest` * blocked: state decomp `kermit` * decomp: finish `cavecrystal-light` * decomp: finish `spiderwebs` * blocked: state decomp `dark-crystal` * decomp: finish `baby-spider` * decomp: finish `mother-spider-h` * decomp: finish `mother-spider-proj` * blocked: state decomp in `gnawer` * blocked: state decomp in `driller-lurker` * blocked: `sun-exit-chamber` breaks when adding handle cast * decomp: finish `sunken-water` * blocked: `target-tube` ShortCircuitElement::push_to_stack * decomp: finish `sunken-fish` * blocked: `minecart` decomp crash when adding stack cast * decomp: finish `assistant-village3` * decomp: finish `sage-village3` * blocked: `cave-trap` done but ran into `go` issue * blocked: `spider-egg` state decomp * decomp: finish `target-snowball` * blocked/stuck: `target-ice` decomp issue around cpad * pausing: ice-cube has some weird collide-shape-prim handling * blocked: `snow-ball` state decomp * blocked: `snow-bumper` state decomp * decomp: finish `snow-ram-h` * decomp: finish `yeti` * decomp: finish `assistant-lavatube` * re-enable the float cast log * decomp: updating to new sparticle definitions * decomp: address feedback up to `swamp-rat-nest` * address remaining feedback * all-types: move the `pointer` def * add back temporary `hud-hidden?`
2021-09-28 20:42:00 -04:00
;; DECOMP BEGINS
(deftype assistant-firecanyon (process-taskable)
()
:heap-base #x110
:method-count-assert 53
:size-assert #x17c
:flag-assert #x350110017c
)
(defskelgroup *assistant-firecanyon-sg* assistant-firecanyon
0
3
((1 (meters 999999)))
:bounds (static-spherem 0 0 0 4)
:longest-edge (meters 0)
:shadow 2
)
(defmethod play-anim! assistant-firecanyon ((obj assistant-firecanyon) (arg0 symbol))
(case (current-status (-> obj tasks))
(((task-status need-reward-speech))
(if arg0
(close-current! (-> obj tasks))
)
(new 'static 'spool-anim
:name "assistant-firecanyon-resolution"
:index 13
:parts 11
:command-list
'((0 want-levels village1 firecanyon)
(151 joint "cameraB")
(346 joint "camera")
(346 shadow self #f)
(461 joint "cameraB")
(546 joint "camera")
(636 joint "cameraB")
(695 alive "balloon-12")
(696 joint "camera")
(821 alive "balloon-16")
(822 joint "cameraB")
(962 joint "camera")
(1268 shadow self #t)
)
)
)
(else
(if arg0
(format
0
"ERROR: <GMJ>: ~S playing anim for task status ~S~%"
(-> obj name)
(task-status->string (current-status (-> obj tasks)))
)
)
(-> obj draw art-group data 3)
)
)
)
(defmethod get-art-elem assistant-firecanyon ((obj assistant-firecanyon))
(if (= (current-status (-> obj tasks)) (task-status invalid))
(-> obj draw art-group data 8)
(-> obj draw art-group data 3)
)
)
(defstate hidden (assistant-firecanyon)
:virtual #t
:trans
(behavior ()
((-> (method-of-type process-taskable hidden) trans))
(when (and (cond
((and *target* (>= 61440.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
#t
)
(else
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
)
(and (not (closed? (-> self tasks) (game-task firecanyon-assistant) (task-status need-reward-speech)))
(not (movie?))
(not (level-hint-displayed?))
(not (and *cheat-mode* (cpad-hold? 0 l3)))
(< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10))
)
)
(hide-hud)
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
(when (and (seen-text? *game-info* (game-text-id firecanyon-not-enough-cells))
(hud-hidden?)
(can-grab-display? self)
(not (-> *setting-control* current hint))
)
(let ((gp-0
(new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning))
)
)
(let ((v1-26 gp-0))
(set! (-> v1-26 width) (the float 448))
decomp: Continuing full pass of gameplay code (#839) * decomp: finish `babak` - :code is called in `(code nav-enemy-patrol babak)` * decomp: almost finish `process-taskable` * blocked: mistycannon / pelican * decomp: finish `babak-with-cannon` write a script to fix gsrc * decomp: finish `process-taskable` * decomp: finish `flutflut` and `yakow` * decomp: finish `fishermans-boat` * blocked: state decomp `training-obs` * decomp: finish `muse` * decomp: finish `bonelurker` * blocked: state decomp in `quicksandlurker`| `balloonlurker` * decomp: finish `assistant-village2` * scripts: script to help updating goal_src * starting to update goal_src * tests: update ref tests * src: more src updating * src: waiting on `process-taskable` and `muse` * blocked: `citb-plat` state decomp * decomp: finish `square-platform` * blocked: `orbit-plat` due to overlays + static data * decomp: finish `qbert-plat` * blocked: almost finish `misty-conveyor`, sparticle-callback * blocked: jungle-mirrors * blocked: state decomp in `swamp-blimp` * decomp: finish `swamp-bat` * decomp: finish `swamp-rat` * decomp: finish `swamp-rat-nest` * blocked: state decomp `kermit` * decomp: finish `cavecrystal-light` * decomp: finish `spiderwebs` * blocked: state decomp `dark-crystal` * decomp: finish `baby-spider` * decomp: finish `mother-spider-h` * decomp: finish `mother-spider-proj` * blocked: state decomp in `gnawer` * blocked: state decomp in `driller-lurker` * blocked: `sun-exit-chamber` breaks when adding handle cast * decomp: finish `sunken-water` * blocked: `target-tube` ShortCircuitElement::push_to_stack * decomp: finish `sunken-fish` * blocked: `minecart` decomp crash when adding stack cast * decomp: finish `assistant-village3` * decomp: finish `sage-village3` * blocked: `cave-trap` done but ran into `go` issue * blocked: `spider-egg` state decomp * decomp: finish `target-snowball` * blocked/stuck: `target-ice` decomp issue around cpad * pausing: ice-cube has some weird collide-shape-prim handling * blocked: `snow-ball` state decomp * blocked: `snow-bumper` state decomp * decomp: finish `snow-ram-h` * decomp: finish `yeti` * decomp: finish `assistant-lavatube` * re-enable the float cast log * decomp: updating to new sparticle definitions * decomp: address feedback up to `swamp-rat-nest` * address remaining feedback * all-types: move the `pointer` def * add back temporary `hud-hidden?`
2021-09-28 20:42:00 -04:00
)
(let ((v1-27 gp-0))
(set! (-> v1-27 height) (the float 80))
decomp: Continuing full pass of gameplay code (#839) * decomp: finish `babak` - :code is called in `(code nav-enemy-patrol babak)` * decomp: almost finish `process-taskable` * blocked: mistycannon / pelican * decomp: finish `babak-with-cannon` write a script to fix gsrc * decomp: finish `process-taskable` * decomp: finish `flutflut` and `yakow` * decomp: finish `fishermans-boat` * blocked: state decomp `training-obs` * decomp: finish `muse` * decomp: finish `bonelurker` * blocked: state decomp in `quicksandlurker`| `balloonlurker` * decomp: finish `assistant-village2` * scripts: script to help updating goal_src * starting to update goal_src * tests: update ref tests * src: more src updating * src: waiting on `process-taskable` and `muse` * blocked: `citb-plat` state decomp * decomp: finish `square-platform` * blocked: `orbit-plat` due to overlays + static data * decomp: finish `qbert-plat` * blocked: almost finish `misty-conveyor`, sparticle-callback * blocked: jungle-mirrors * blocked: state decomp in `swamp-blimp` * decomp: finish `swamp-bat` * decomp: finish `swamp-rat` * decomp: finish `swamp-rat-nest` * blocked: state decomp `kermit` * decomp: finish `cavecrystal-light` * decomp: finish `spiderwebs` * blocked: state decomp `dark-crystal` * decomp: finish `baby-spider` * decomp: finish `mother-spider-h` * decomp: finish `mother-spider-proj` * blocked: state decomp in `gnawer` * blocked: state decomp in `driller-lurker` * blocked: `sun-exit-chamber` breaks when adding handle cast * decomp: finish `sunken-water` * blocked: `target-tube` ShortCircuitElement::push_to_stack * decomp: finish `sunken-fish` * blocked: `minecart` decomp crash when adding stack cast * decomp: finish `assistant-village3` * decomp: finish `sage-village3` * blocked: `cave-trap` done but ran into `go` issue * blocked: `spider-egg` state decomp * decomp: finish `target-snowball` * blocked/stuck: `target-ice` decomp issue around cpad * pausing: ice-cube has some weird collide-shape-prim handling * blocked: `snow-ball` state decomp * blocked: `snow-bumper` state decomp * decomp: finish `snow-ram-h` * decomp: finish `yeti` * decomp: finish `assistant-lavatube` * re-enable the float cast log * decomp: updating to new sparticle definitions * decomp: address feedback up to `swamp-rat-nest` * address remaining feedback * all-types: move the `pointer` def * add back temporary `hud-hidden?`
2021-09-28 20:42:00 -04:00
)
(let ((v1-28 gp-0))
(set! (-> v1-28 scale) 0.8)
)
(set! (-> gp-0 flags) (font-flags shadow kerning middle large))
(print-game-text (lookup-text! *common-text* (game-text-id firecanyon-collect-cells-text) #f) gp-0 #f 128 22)
)
)
(level-hint-spawn
(game-text-id firecanyon-not-enough-cells)
"asstvb09"
(the-as entity #f)
*entity-pool*
(game-task none)
)
)
(none)
)
)
(defstate idle (assistant-firecanyon)
:virtual #t
:code
(behavior ()
(if (!= (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
(get-art-elem self)
)
(ja-channel-push! 1 15)
)
(while #t
(let ((gp-0 #t))
(cond
((= (current-status (-> self tasks)) (task-status invalid))
(let* ((v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-9 (the-as number (logior #x3f800000 v1-8)))
)
(when (< (+ -1.0 (the-as float v1-9)) 0.5)
(let ((v1-14 (-> self skel root-channel 0)))
(set! (-> v1-14 frame-group) (the-as art-joint-anim (-> self draw art-group data 8)))
)
(let* ((f30-0 2.0)
(v1-16 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-17 (the-as number (logior #x3f800000 v1-16)))
)
(countdown (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-17)))) 3))
(let ((a0-15 (-> self skel root-channel 0)))
(set! (-> a0-15 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set! (-> a0-15 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-15 param 1) 1.0)
(set! (-> a0-15 frame-num) 0.0)
(joint-control-channel-group!
a0-15
(if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-16 (-> self skel root-channel 0)))
(set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1)))
(set! (-> a0-16 param 1) 1.0)
(joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(set! gp-0 #f)
)
)
(when (or gp-0 (let* ((v1-53 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-54 (the-as number (logior #x3f800000 v1-53)))
)
(< (+ -1.0 (the-as float v1-54)) 0.5)
)
)
(let ((a0-20 (-> self skel root-channel 0)))
(set! (-> a0-20 frame-group) (the-as art-joint-anim (-> self draw art-group data 9)))
(set! (-> a0-20 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1))
)
(set! (-> a0-20 param 1) 1.0)
(set! (-> a0-20 frame-num) 0.0)
(joint-control-channel-group! a0-20 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-21 (-> self skel root-channel 0)))
(set! (-> a0-21 param 0) (the float (+ (-> a0-21 frame-group data 0 length) -1)))
(set! (-> a0-21 param 1) 1.0)
(joint-control-channel-group-eval! a0-21 (the-as art-joint-anim #f) num-func-seek!)
)
)
(let ((v1-81 (-> self skel root-channel 0)))
(set! (-> v1-81 frame-group) (the-as art-joint-anim (-> self draw art-group data 10)))
)
(let* ((f30-1 2.0)
(v1-83 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-84 (the-as number (logior #x3f800000 v1-83)))
)
(countdown (gp-2 (+ (the int (* f30-1 (+ -1.0 (the-as float v1-84)))) 3))
(let ((a0-28 (-> self skel root-channel 0)))
(set! (-> a0-28 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set! (-> a0-28 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-28 param 1) 1.0)
(set! (-> a0-28 frame-num) 0.0)
(joint-control-channel-group!
a0-28
(if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-29 (-> self skel root-channel 0)))
(set! (-> a0-29 param 0) (the float (+ (-> a0-29 frame-group data 0 length) -1)))
(set! (-> a0-29 param 1) 1.0)
(joint-control-channel-group-eval! a0-29 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(let ((a0-31 (-> self skel root-channel 0)))
(set! (-> a0-31 frame-group) (the-as art-joint-anim (-> self draw art-group data 11)))
(set! (-> a0-31 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 11)) data 0 length) -1))
)
(set! (-> a0-31 param 1) 1.0)
(set! (-> a0-31 frame-num) 0.0)
(joint-control-channel-group! a0-31 (the-as art-joint-anim (-> self draw art-group data 11)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-32 (-> self skel root-channel 0)))
(set! (-> a0-32 param 0) (the float (+ (-> a0-32 frame-group data 0 length) -1)))
(set! (-> a0-32 param 1) 1.0)
(joint-control-channel-group-eval! a0-32 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
(let* ((v1-140 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-141 (the-as number (logior #x3f800000 v1-140)))
)
(when (< (+ -1.0 (the-as float v1-141)) 0.25)
(let ((v1-146 (-> self skel root-channel 0)))
(set! (-> v1-146 frame-group) (the-as art-joint-anim (-> self draw art-group data 12)))
)
(let ((a0-39 (-> self skel root-channel 0)))
(set! (-> a0-39 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set! (-> a0-39 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-39 param 1) 1.0)
(set! (-> a0-39 frame-num) 0.0)
(joint-control-channel-group!
a0-39
(if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-40 (-> self skel root-channel 0)))
(set! (-> a0-40 param 0) (the float (+ (-> a0-40 frame-group data 0 length) -1)))
(set! (-> a0-40 param 1) 1.0)
(joint-control-channel-group-eval! a0-40 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
)
(else
(let* ((v1-176 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-177 (the-as number (logior #x3f800000 v1-176)))
)
(when (< (+ -1.0 (the-as float v1-177)) 0.8)
(let ((v1-182 (-> self skel root-channel 0)))
(set! (-> v1-182 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
)
(let* ((f30-2 4.0)
(v1-184 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-185 (the-as number (logior #x3f800000 v1-184)))
)
(countdown (gp-3 (+ (the int (* f30-2 (+ -1.0 (the-as float v1-185)))) 8))
(let ((a0-49 (-> self skel root-channel 0)))
(set! (-> a0-49 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set! (-> a0-49 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-49 param 1) 1.0)
(set! (-> a0-49 frame-num) 0.0)
(joint-control-channel-group!
a0-49
(if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-50 (-> self skel root-channel 0)))
(set! (-> a0-50 param 0) (the float (+ (-> a0-50 frame-group data 0 length) -1)))
(set! (-> a0-50 param 1) 1.0)
(joint-control-channel-group-eval! a0-50 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(set! gp-0 #f)
)
)
(when (or gp-0 (let* ((v1-221 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-222 (the-as number (logior #x3f800000 v1-221)))
)
(< (+ -1.0 (the-as float v1-222)) 0.5)
)
)
(let ((a0-54 (-> self skel root-channel 0)))
(set! (-> a0-54 frame-group) (the-as art-joint-anim (-> self draw art-group data 4)))
(set! (-> a0-54 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1))
)
(set! (-> a0-54 param 1) 1.0)
(set! (-> a0-54 frame-num) 0.0)
(joint-control-channel-group! a0-54 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-55 (-> self skel root-channel 0)))
(set! (-> a0-55 param 0) (the float (+ (-> a0-55 frame-group data 0 length) -1)))
(set! (-> a0-55 param 1) 1.0)
(joint-control-channel-group-eval! a0-55 (the-as art-joint-anim #f) num-func-seek!)
)
)
(let ((v1-249 (-> self skel root-channel 0)))
(set! (-> v1-249 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
)
(let* ((f30-3 2.0)
(v1-251 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-252 (the-as number (logior #x3f800000 v1-251)))
)
(countdown (gp-4 (+ (the int (* f30-3 (+ -1.0 (the-as float v1-252)))) 3))
(let ((a0-62 (-> self skel root-channel 0)))
(set! (-> a0-62 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set! (-> a0-62 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-62 param 1) 1.0)
(set! (-> a0-62 frame-num) 0.0)
(joint-control-channel-group!
a0-62
(if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-63 (-> self skel root-channel 0)))
(set! (-> a0-63 param 0) (the float (+ (-> a0-63 frame-group data 0 length) -1)))
(set! (-> a0-63 param 1) 1.0)
(joint-control-channel-group-eval! a0-63 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(let ((a0-65 (-> self skel root-channel 0)))
(set! (-> a0-65 frame-group) (the-as art-joint-anim (-> self draw art-group data 6)))
(set! (-> a0-65 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 6)) data 0 length) -1))
)
(set! (-> a0-65 param 1) 1.0)
(set! (-> a0-65 frame-num) 0.0)
(joint-control-channel-group! a0-65 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-66 (-> self skel root-channel 0)))
(set! (-> a0-66 param 0) (the float (+ (-> a0-66 frame-group data 0 length) -1)))
(set! (-> a0-66 param 1) 1.0)
(joint-control-channel-group-eval! a0-66 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
(let* ((v1-308 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-309 (the-as number (logior #x3f800000 v1-308)))
)
(when (< (+ -1.0 (the-as float v1-309)) 0.5)
(let ((v1-314 (-> self skel root-channel 0)))
(set! (-> v1-314 frame-group) (the-as art-joint-anim (-> self draw art-group data 7)))
)
(let* ((f30-4 2.0)
(v1-316 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-317 (the-as number (logior #x3f800000 v1-316)))
)
(countdown (gp-5 (+ (the int (* f30-4 (+ -1.0 (the-as float v1-317)))) 3))
(let ((a0-75 (-> self skel root-channel 0)))
(set! (-> a0-75 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set! (-> a0-75 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-75 param 1) 1.0)
(set! (-> a0-75 frame-num) 0.0)
(joint-control-channel-group!
a0-75
(if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-76 (-> self skel root-channel 0)))
(set! (-> a0-76 param 0) (the float (+ (-> a0-76 frame-group data 0 length) -1)))
(set! (-> a0-76 param 1) 1.0)
(joint-control-channel-group-eval! a0-76 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
)
)
)
)
)
)
(none)
)
)
(defmethod should-display? assistant-firecanyon ((obj assistant-firecanyon))
(first-any (-> obj tasks) #t)
(= (current-status (-> obj tasks)) (task-status need-reward-speech))
)
(defmethod init-from-entity! assistant-firecanyon ((obj assistant-firecanyon) (arg0 entity-actor))
(dummy-40 obj arg0 *assistant-firecanyon-sg* 3 29 (new 'static 'vector :w 4096.0) 5)
(set! (-> obj tasks) (get-task-control (game-task firecanyon-assistant)))
(first-any (-> obj tasks) #t)
(dummy-42 obj)
(none)
)