Files
jak-project/test/decompiler/reference/levels/village1/sage_REF.gc
T
Tyler Wilding dd959d0d0d 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

1404 lines
32 KiB
Common Lisp
Vendored

;;-*-Lisp-*-
(in-package goal)
;; definition of type sage
(deftype sage (process-taskable)
((reminder-played basic :offset-assert 380)
(assistant handle :offset-assert 384)
)
:heap-base #x120
:method-count-assert 53
:size-assert #x188
:flag-assert #x3501200188
)
;; definition for method 3 of type sage
(defmethod inspect sage ((obj sage))
(let ((t9-0 (method-of-type process-taskable inspect)))
(t9-0 obj)
)
(format #t "~T~Treminder-played: ~A~%" (-> obj reminder-played))
(format #t "~T~Tassistant: ~D~%" (-> obj assistant))
obj
)
;; failed to figure out what this is:
(let
((v1-1
(new 'static 'skeleton-group
:art-group-name "sage"
:bounds (new 'static 'vector :w 10240.0)
:version #x6
:shadow 2
)
)
)
(set! (-> v1-1 jgeo) 0)
(set! (-> v1-1 janim) 4)
(set! (-> v1-1 mgeo 0) (the-as uint 1))
(set! (-> v1-1 lod-dist 0) 4095996000.0)
(set! *sage-sg* v1-1)
)
;; definition for method 32 of type sage
(defmethod play-anim! sage ((obj sage) (arg0 symbol))
(with-pp
(when (!= *kernel-boot-message* 'play)
(close-specific-task! (game-task intro) (task-status need-resolution))
(return
(new 'static 'spool-anim
:name "sage-introduction-misty-cannon"
:index 8
:parts 12
:command-list
'(
((the binteger 1)
blackout
0
)
((the binteger 100)
want-levels
village1
misty
)
((the binteger 261)
joint
"cameraB"
)
((the binteger 521)
joint
"camera"
)
((the binteger 776)
joint
"cameraB"
)
((the binteger 810)
joint
"camera"
)
((the binteger 1171)
joint
"cameraB"
)
((the binteger 1235)
joint
"camera"
)
((the binteger 1235)
save
)
((the binteger 1418) blackout (the binteger 30))
)
)
)
)
(case (current-status (-> obj tasks))
((2 3)
(case (current-task (-> obj tasks))
((109)
(when arg0
(close-status! (-> obj tasks) (task-status need-introduction))
(set-setting! *setting-control* pp 'music-volume-movie 'abs 0.0 0)
(copy-settings-from-target! *setting-control*)
)
(new 'static 'spool-anim
:name "sage-intro-sequence-d1"
:index 16
:parts 17
:command-list
'(
(0
display-level
misty
#f
)
(0
display-level
village1
display
)
(0
want-vis
vi1
)
(0
save
)
(0
want-force-inside
village1
#t
)
(0
want-force-vis
village1
#t
)
(0
kill
"assistant-11"
)
(0
kill
"reflector-middle-2"
)
(0
kill
"eco-11"
)
(0
kill
"eco-10"
)
(0
kill
"sharkey-12"
)
(0
kill
"reflector-end-1"
)
(0
kill
"water-vol-10"
)
(0
kill
"water-vol-8"
)
(0
kill
"water-vol-7"
)
(0
kill
"fishermans-boat-2"
)
(0
kill
"revcycleprop-2"
)
(0
kill
"revcycle-8"
)
(0
kill
"ropebridge-5"
)
(0
kill
"ropebridge-4"
)
(0
kill
"villagea-water-2"
)
(0
time-of-day
(the binteger 7)
)
((the binteger 1)
time-of-day
(the binteger -1)
)
((the binteger 3)
blackout
0
)
((the binteger 25)
blackout
0
)
((the binteger 25)
want-force-vis
village1
#f
)
((the binteger 56)
joint
"cameraB"
)
((the binteger 100)
want-force-inside
village1
#f
)
((the binteger 107)
joint
"camera"
)
((the binteger 137)
joint
"cameraB"
)
((the binteger 202)
joint
"camera"
)
((the binteger 286)
joint
"cameraB"
)
((the binteger 554)
joint
"camera"
)
((the binteger 633)
joint
"cameraB"
)
((the binteger 711)
joint
"camera"
)
((the binteger 796)
joint
"cameraB"
)
((the binteger 921)
joint
"camera"
)
((the binteger 1021)
shadow
self
#f
)
((the binteger 1021)
joint
"cameraB"
)
((the binteger 1081)
joint
"camera"
)
((the binteger 1183)
joint
"cameraB"
)
((the binteger 1221)
joint
"camera"
)
((the binteger 1496)
shadow
self
#t
)
((the binteger 1496)
joint
"cameraB"
)
((the binteger 1496)
time-of-day
(the binteger 18)
)
((the binteger 1721)
joint
"camera"
)
((the binteger 1721)
time-of-day
(the binteger 7)
)
((the binteger 1722) time-of-day (the binteger -1))
)
)
)
((15)
(when arg0
(let* ((s5-1 (-> obj tasks))
(s4-0 (method-of-object s5-1 save-reminder))
(a1-6 (new 'stack-no-clear 'event-message-block))
)
(set! (-> a1-6 from) pp)
(set! (-> a1-6 num-params) 2)
(set! (-> a1-6 message) 'query)
(set! (-> a1-6 param 0) (the-as uint 'pickup))
(set! (-> a1-6 param 1) (the-as uint 6))
(s4-0
s5-1
(the int (the-as float (send-event-function *target* a1-6)))
1
)
)
(close-status! (-> obj tasks) (task-status need-introduction))
)
(new 'static 'spool-anim
:name "sage-intro-sequence-e"
:index 14
:parts 13
:command-list
'(
(0
want-levels
village1
beach
)
(0
blackout
0
)
((the binteger 197)
joint
"cameraB"
)
((the binteger 361)
joint
"camera"
)
((the binteger 660)
joint
"cameraB"
)
((the binteger 937)
display-level
beach
movie
)
((the binteger 937)
want-force-vis
beach
#t
)
((the binteger 938)
alive
"ecoventrock-3"
)
((the binteger 938)
alive
"ecoventrock-4"
)
((the binteger 938)
alive
"ecoventrock-5"
)
((the binteger 938)
alive
"ecoventrock-6"
)
((the binteger 938)
alive
"ecoventrock-7"
)
((the binteger 938)
alive
"harvester-87"
)
((the binteger 938)
alive
"harvester-88"
)
((the binteger 938)
alive
"harvester-89"
)
((the binteger 938)
alive
"harvester-90"
)
((the binteger 938)
alive
"harvester-91"
)
((the binteger 940)
joint
"camera"
)
((the binteger 1160)
joint
"cameraB"
)
((the binteger 1162)
dead
"ecoventrock-3"
)
((the binteger 1162)
dead
"ecoventrock-4"
)
((the binteger 1162)
dead
"ecoventrock-5"
)
((the binteger 1162)
dead
"ecoventrock-6"
)
((the binteger 1162)
dead
"ecoventrock-7"
)
((the binteger 1162)
dead
"harvester-87"
)
((the binteger 1162)
dead
"harvester-88"
)
((the binteger 1162)
dead
"harvester-89"
)
((the binteger 1162)
dead
"harvester-90"
)
((the binteger 1162)
dead
"harvester-91"
)
((the binteger 1310)
joint
"camera"
)
((the binteger 1313)
want-force-vis
beach
#f
)
((the binteger 1313)
display-level
beach
#f
)
((the binteger 1313) send-event "warp-gate-switch-3" 'hide)
)
)
)
(else
(if arg0
(close-status! (-> obj tasks) (task-status need-introduction))
)
(new 'static 'spool-anim
:name "sage-introduction-misty-cannon"
:index 8
:parts 12
:command-list
'(
(0
want-levels
village1
beach
)
((the binteger 261)
joint
"cameraB"
)
((the binteger 521)
joint
"camera"
)
((the binteger 776)
joint
"cameraB"
)
((the binteger 810)
joint
"camera"
)
((the binteger 1171)
joint
"cameraB"
)
((the binteger 1235) joint "camera")
)
)
)
)
)
((5)
(set! (-> obj skippable) #t)
(if arg0
(set! (-> obj reminder-played) #t)
)
(case (get-reminder (-> obj tasks) 0)
((3)
(new 'static 'spool-anim
:name "sage-reminder-2-generic"
:index 13
:parts 4
:command-list '()
)
)
((2)
(new 'static 'spool-anim
:name "sage-reminder-1-generic"
:index 12
:parts 3
:command-list '()
)
)
((1)
(new 'static 'spool-anim
:name "sage-reminder-1-misty-cannon"
:index 9
:parts 5
:command-list
'(
((the binteger 86) joint "cameraB") ((the binteger 320) joint "camera")
)
)
)
(else
(new 'static 'spool-anim
:name "sage-reminder-1-ecorocks"
:index 11
:parts 4
:command-list
'(
(0
want-levels
village1
beach
)
((the binteger 245)
display-level
beach
movie
)
((the binteger 245)
want-force-vis
beach
#t
)
((the binteger 246)
alive
"ecoventrock-3"
)
((the binteger 246)
alive
"ecoventrock-4"
)
((the binteger 246)
alive
"ecoventrock-5"
)
((the binteger 246)
alive
"ecoventrock-6"
)
((the binteger 246)
alive
"ecoventrock-7"
)
((the binteger 246)
alive
"harvester-87"
)
((the binteger 246)
alive
"harvester-88"
)
((the binteger 246)
alive
"harvester-89"
)
((the binteger 246)
alive
"harvester-90"
)
((the binteger 246)
alive
"harvester-91"
)
((the binteger 246)
joint
"cameraB"
)
((the binteger 365)
want-force-vis
beach
#f
)
((the binteger 365)
display-level
beach
#f
)
((the binteger 366) joint "camera")
)
)
)
)
)
((6)
(when arg0
(set-setting! *setting-control* pp 'music-volume-movie 'abs 0.0 0)
(copy-settings-from-target! *setting-control*)
(close-status! (-> obj tasks) (task-status need-reward-speech))
(let ((s5-2 (get-process *default-dead-pool* manipy #x4000)))
(set! (-> obj assistant) (ppointer->handle (when s5-2
(let
((t9-15
(method-of-type
manipy
activate
)
)
)
(t9-15
(the-as manipy s5-2)
obj
'manipy
(the-as pointer #x70004000)
)
)
(run-now-in-process
s5-2
manipy-init
(-> obj root-override trans)
(-> obj entity)
*assistant-sg*
#f
)
(-> s5-2 ppointer)
)
)
)
)
(let ((a1-16 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-16 from) pp)
(set! (-> a1-16 num-params) 1)
(set! (-> a1-16 message) 'anim-mode)
(set! (-> a1-16 param 0) (the-as uint 'clone-anim))
(send-event-function (handle->process (-> obj assistant)) a1-16)
)
(let ((a1-17 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-17 from) pp)
(set! (-> a1-17 num-params) 1)
(set! (-> a1-17 message) 'blend-shape)
(set! (-> a1-17 param 0) (the-as uint #t))
(send-event-function (handle->process (-> obj assistant)) a1-17)
)
(let ((a1-18 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-18 from) pp)
(set! (-> a1-18 num-params) 1)
(set! (-> a1-18 message) 'center-joint)
(set! (-> a1-18 param 0) (the-as uint 3))
(send-event-function (handle->process (-> obj assistant)) a1-18)
)
(let ((v1-68 (handle->process (-> obj assistant))))
(if v1-68
(set! (-> (the-as assistant v1-68) draw light-index) (the-as uint 1))
)
)
(set! (-> obj draw bounds w) 40960.0)
)
(new 'static 'spool-anim
:name "sage-intro-sequence-d2"
:index 15
:parts 20
:command-list
'(
(0
want-levels
village1
beach
)
(0
kill
"assistant-11"
)
(0
kill
"reflector-middle-2"
)
(0
kill
"eco-11"
)
(0
kill
"eco-10"
)
(0
kill
"sharkey-12"
)
(0
kill
"reflector-end-1"
)
(0
kill
"water-vol-10"
)
(0
kill
"water-vol-8"
)
(0
kill
"water-vol-7"
)
(0
kill
"fishermans-boat-2"
)
(0
kill
"revcycleprop-2"
)
(0
kill
"revcycle-8"
)
((the binteger 113)
joint
"cameraB"
)
((the binteger 232)
joint
"camera"
)
((the binteger 289)
joint
"cameraB"
)
((the binteger 338)
joint
"camera"
)
((the binteger 405)
joint
"cameraB"
)
((the binteger 560)
joint
"camera"
)
((the binteger 660)
joint
"cameraB"
)
((the binteger 699)
joint
"camera"
)
((the binteger 837)
joint
"cameraB"
)
((the binteger 837)
shadow
self
#f
)
((the binteger 910)
joint
"camera"
)
((the binteger 945)
alive
"farmer-3"
)
((the binteger 945)
alive
"hutlamp-2"
)
((the binteger 950)
joint
"cameraB"
)
((the binteger 974)
display-level
beach
movie
)
((the binteger 974)
want-force-vis
beach
#t
)
((the binteger 1011)
alive
"bird-lady-4"
)
((the binteger 1015)
joint
"camera"
)
((the binteger 1018)
dead
"farmer-3"
)
((the binteger 1018)
dead
"hutlamp-2"
)
((the binteger 1075)
alive
"explorer-4"
)
((the binteger 1080)
joint
"cameraB"
)
((the binteger 1080)
want-force-vis
beach
#f
)
((the binteger 1080)
display-level
beach
#f
)
((the binteger 1082)
dead
"bird-lady-4"
)
((the binteger 1133)
joint
"camera"
)
((the binteger 1135)
dead
"explorer-4"
)
((the binteger 1244)
display-level
beach
movie
)
((the binteger 1244)
want-force-vis
beach
#t
)
((the binteger 1245)
alive
"fuel-cell-42"
)
((the binteger 1246)
joint
"cameraB"
)
((the binteger 1369)
joint
"camera"
)
((the binteger 1438)
alive
"fuel-cell-42"
)
((the binteger 1438)
want-force-vis
beach
#f
)
((the binteger 1438)
dead
"fuel-cell-42"
)
((the binteger 1438)
kill
"villagea-water-2"
)
((the binteger 1438)
kill
"crate-3147"
)
((the binteger 1438)
kill
"crate-3146"
)
((the binteger 1438)
kill
"crate-3143"
)
((the binteger 1438)
kill
"sagesail-6"
)
((the binteger 1438)
kill
"windmill-sail-4"
)
((the binteger 1438)
kill
"ropebridge-4"
)
((the binteger 1438)
kill
"ropebridge-5"
)
((the binteger 1438)
kill
"windspinner-8"
)
((the binteger 1438)
kill
"windspinner-9"
)
((the binteger 1438)
joint
"cameraB"
)
((the binteger 1439)
want-levels
village1
training
)
((the binteger 1439)
save
)
((the binteger 1529)
joint
"camera"
)
((the binteger 1691)
joint
"cameraB"
)
((the binteger 1753)
joint
"camera"
)
((the binteger 1874)
joint
"cameraB"
)
((the binteger 2057)
joint
"camera"
)
((the binteger 2176)
joint
"cameraB"
)
((the binteger 2226)
joint
"camera"
)
((the binteger 2226) shadow self #t)
)
)
)
(else
(if arg0
(format
0
"ERROR: <GMJ>: ~S playing anim for task status ~S~%"
(-> obj name)
(task-status->string
(the-as task-status (current-status (-> obj tasks)))
)
)
)
(get-art-elem obj)
)
)
)
)
;; definition for method 45 of type sage
;; INFO: Return type mismatch symbol vs none.
(defmethod dummy-45 sage ((obj sage))
(cond
((and
(closed?
(-> obj tasks)
(game-task beach-ecorocks)
(task-status need-reminder)
)
(= (get-reminder (-> obj tasks) 0) 0)
)
#t
)
((and
(closed?
(-> obj tasks)
(game-task misty-cannon)
(task-status need-reminder)
)
(= (get-reminder (-> obj tasks) 0) 1)
)
#t
)
((and
(-> obj reminder-played)
(<
81920.0
(vector-vector-distance (-> obj root-override trans) (camera-pos))
)
)
#t
)
(else
)
)
(none)
)
;; definition for method 31 of type sage
(defmethod get-art-elem sage ((obj sage))
(cond
((and
(= (current-task (-> obj tasks)) 15)
(or
(= (current-status (-> obj tasks)) 2)
(= (current-status (-> obj tasks)) 3)
)
)
(save-reminder (-> obj tasks) 0 0)
)
((and
(= (current-task (-> obj tasks)) 26)
(or
(= (current-status (-> obj tasks)) 2)
(= (current-status (-> obj tasks)) 3)
)
)
(save-reminder (-> obj tasks) 1 0)
)
((dummy-45 obj)
(set! (-> obj reminder-played) #f)
(cond
((zero? (current-task (-> obj tasks)))
(case (get-reminder (-> obj tasks) 0)
((2)
(save-reminder (-> obj tasks) 3 0)
)
(else
(save-reminder (-> obj tasks) 2 0)
)
)
)
((closed?
(-> obj tasks)
(game-task beach-ecorocks)
(task-status need-reminder)
)
(save-reminder (-> obj tasks) 1 0)
)
((or
(closed?
(-> obj tasks)
(game-task misty-cannon)
(task-status need-reminder)
)
(not
(closed?
(-> obj tasks)
(game-task misty-cannon)
(task-status need-introduction)
)
)
)
(save-reminder (-> obj tasks) 0 0)
)
((zero? (get-reminder (-> obj tasks) 0))
(save-reminder (-> obj tasks) 1 0)
)
(else
(save-reminder (-> obj tasks) 0 0)
)
)
)
)
(case (get-reminder (-> obj tasks) 0)
((3)
(-> obj draw art-group data 7)
)
((2)
(-> obj draw art-group data 6)
)
((1)
(-> obj draw art-group data 3)
)
(else
(-> obj draw art-group data 4)
)
)
)
;; definition for method 43 of type sage
(defmethod TODO-RENAME-43 sage ((obj sage))
(let
((s5-0
(TODO-RENAME-10
(-> obj ambient)
(new 'stack-no-clear 'vector)
9000
122880.0
obj
)
)
)
(when s5-0
(let* ((v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-3 (the-as number (logior #x3f800000 v1-2)))
(f0-2 (+ -1.0 (the-as float v1-3)))
)
(cond
((< (-> s5-0 y) -12288.0)
#f
)
((< 0.8 f0-2)
(dummy-11 (-> obj ambient) "SAGELP03" #f (-> obj root-override trans))
)
((< 0.6 f0-2)
(dummy-11 (-> obj ambient) "SAGELP04" #f (-> obj root-override trans))
)
((< 0.4 f0-2)
(dummy-11 (-> obj ambient) "SAGELP05" #f (-> obj root-override trans))
)
((< 0.2 f0-2)
(dummy-11 (-> obj ambient) "SAGELP06" #f (-> obj root-override trans))
)
(else
(dummy-11 (-> obj ambient) "SAGELP11" #f (-> obj root-override trans))
)
)
)
)
)
)
;; failed to figure out what this is:
(defstate idle (sage)
:virtual #t
:trans
(behavior ()
(case (get-task-status (game-task intro))
(((task-status need-reward-speech))
(when (process-grab? *target*)
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) self)
(set! (-> a1-0 num-params) 0)
(set! (-> a1-0 message) 'play-anim)
(send-event-function self a1-0)
)
)
)
)
((-> (method-of-type process-taskable idle) trans))
(none)
)
:code
(behavior ()
(if (!= (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
(get-art-elem self)
)
(ja-channel-push! 1 60)
)
(while #t
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 frame-group) (the-as art-joint-anim (get-art-elem self)))
)
(let* ((f30-0 3.0)
(v1-9 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-10 (the-as number (logior #x3f800000 v1-9)))
)
(countdown (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-10)))) 5))
(TODO-RENAME-43 self)
(let ((a0-11 (-> self skel root-channel 0)))
(set! (-> a0-11 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set!
(-> a0-11 param 0)
(the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-11 param 1) 1.0)
(set! (-> a0-11 frame-num) 0.0)
(joint-control-channel-group!
a0-11
(if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
num-func-seek!
)
)
(until (ja-done? 0)
(if
(and
(-> self reminder-played)
(<
81920.0
(vector-vector-distance (-> self root-override trans) (camera-pos))
)
)
(go-virtual idle)
)
(suspend)
(let ((a0-13 (-> self skel root-channel 0)))
(set!
(-> a0-13 param 0)
(the float (+ (-> a0-13 frame-group data 0 length) -1))
)
(set! (-> a0-13 param 1) 1.0)
(joint-control-channel-group-eval!
a0-13
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
)
(when (= (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
(-> self draw art-group data 4)
)
(let ((a0-20 (-> self skel root-channel 0)))
(set!
(-> a0-20 frame-group)
(the-as art-joint-anim (-> self draw art-group data 5))
)
(set!
(-> a0-20 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 5))
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 5))
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!
)
)
)
)
)
(none)
)
)
;; failed to figure out what this is:
(defstate play-anim (sage)
:virtual #t
:exit
(behavior ()
(set! (-> self draw bounds w) 10240.0)
(let ((a0-1 (handle->process (-> self assistant))))
(if a0-1
(deactivate a0-1)
)
)
((-> (method-of-type process-taskable play-anim) exit))
(case (get-task-status (game-task intro))
(((task-status need-resolution))
(clear-pending-settings-from-process
*setting-control*
self
'music-volume-movie
)
(close-specific-task! (game-task intro) (task-status need-resolution))
(start 'play (get-continue-by-name *game-info* "game-start"))
)
)
(none)
)
:trans
(behavior ()
(case (get-task-status (game-task intro))
(((task-status need-reward-speech))
(spool-push *art-control* "sage-intro-sequence-d2" 0 self -1.0)
)
)
((-> (method-of-type process-taskable play-anim) trans))
(none)
)
)
;; definition for method 39 of type sage
(defmethod should-display? sage ((obj sage))
(not (sages-kidnapped?))
)
;; definition for method 41 of type sage
;; INFO: Return type mismatch int vs none.
(defmethod initialize-collision sage ((obj sage) (arg0 int) (arg1 vector))
(let
((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0)))
(set! (-> s4-0 prim-core collide-as) (the-as uint 256))
(set! (-> s4-0 collide-with) (the-as uint 16))
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set! (-> s4-0 transform-index) arg0)
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 10240.0)
(dummy-46 s5-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 256))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 1))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) arg0)
(set-vector! (-> s2-0 local-sphere) 0.0 -2048.0 0.0 5324.8)
)
(dummy-28 s4-0)
(let ((s2-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s2-1 prim-core collide-as) (the-as uint 256))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 1))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) arg0)
(set-vector! (-> s2-1 local-sphere) 0.0 2048.0 0.0 5324.8)
)
(dummy-28 s4-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(dummy-50 s5-0)
(set! (-> obj root-override) s5-0)
)
0
(none)
)
;; definition for method 11 of type sage
(defmethod copy-defaults! sage ((obj sage) (arg0 res-lump))
(dummy-40 obj arg0 *sage-sg* 3 40 (new 'static 'vector :w 4096.0) 5)
(set! (-> obj tasks) (get-task-control (game-task misty-cannon)))
(set! (-> obj reminder-played) #f)
(set! (-> obj sound-flava) (the-as uint 5))
(set! (-> obj assistant) (the-as handle #f))
(set! (-> obj draw light-index) (the-as uint 1))
(dummy-42 obj)
(none)
)