mirror of
https://github.com/open-goal/jak-project
synced 2026-09-03 02:14:07 -04:00
dd959d0d0d
* 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?`
1404 lines
32 KiB
Common Lisp
Vendored
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)
|
|
)
|