mirror of
https://github.com/open-goal/jak-project
synced 2026-09-09 20:21:28 -04:00
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?`
This commit is contained in:
@@ -427,7 +427,7 @@
|
||||
(dummy-46 (_type_) none 46)
|
||||
(dummy-47 (_type_) none 47)
|
||||
(dummy-48 (_type_) none 48)
|
||||
(dummy-49 () none 49)
|
||||
(dummy-49 (_type_) none 49)
|
||||
(dummy-50 (_type_) none 50)
|
||||
(dummy-51 () none 51)
|
||||
(dummy-52 () none 52)
|
||||
@@ -507,7 +507,7 @@
|
||||
(dummy-58 (_type_ vector) none 58)
|
||||
(dummy-59 (_type_ vector uint float symbol symbol symbol) none 59)
|
||||
(dummy-60 (_type_ float float symbol uint) none 60)
|
||||
(dummy-61 () none 61)
|
||||
(TODO-RENAME-61 (_type_ vector vector vector) none 61)
|
||||
(dummy-62 (_type_ vector float) vector 62)
|
||||
(dummy-63 () none 63)
|
||||
(dummy-64 () none 64)
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
(unknown-vector61 vector :inline :offset 1504)
|
||||
(unknown-float70 float :offset 1520)
|
||||
(unknown-vector70 vector :inline :offset 1536)
|
||||
(unknown-vector71 vector :inline :offset 1552)
|
||||
(unknown-handle00 handle :offset 1600)
|
||||
(unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608)
|
||||
(unknown-sphere00 collide-shape-prim-sphere :offset 1632)
|
||||
|
||||
+1
-1
@@ -229,7 +229,7 @@
|
||||
:flag-assert #xd00000014
|
||||
(:methods
|
||||
(login (_type_) _type_ 9)
|
||||
(dummy-10 (_type_ string type) art-element 10)
|
||||
(dummy-10 (_type_ string type) joint 10)
|
||||
(dummy-11 (_type_ string type) int 11)
|
||||
(dummy-12 (_type_) symbol 12)
|
||||
)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(dummy-9 () none 9)
|
||||
(dummy-10 () none 10)
|
||||
(dummy-10 (_type_ symbol float int) none 10)
|
||||
(dummy-11 () none 11)
|
||||
(dummy-12 () none 12)
|
||||
(set-channel-offset! (_type_ int) none 13)
|
||||
|
||||
+13
-13
@@ -234,21 +234,21 @@
|
||||
|
||||
;; definition of type gui-query
|
||||
(deftype gui-query (structure)
|
||||
((x-position int32 :offset-assert 0)
|
||||
(y-position int32 :offset-assert 4)
|
||||
(message basic :offset-assert 8)
|
||||
(decision basic :offset-assert 12)
|
||||
(only-allow-cancel basic :offset-assert 16)
|
||||
(no-msg basic :offset-assert 20)
|
||||
(message-space int32 :offset-assert 24)
|
||||
((x-position int32 :offset-assert 0)
|
||||
(y-position int32 :offset-assert 4)
|
||||
(message symbol :offset-assert 8)
|
||||
(decision symbol :offset-assert 12)
|
||||
(only-allow-cancel symbol :offset-assert 16)
|
||||
(no-msg symbol :offset-assert 20)
|
||||
(message-space int32 :offset-assert 24)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 11
|
||||
:size-assert #x1c
|
||||
:flag-assert #xb0000001c
|
||||
(:methods
|
||||
(dummy-9 () none 9)
|
||||
(dummy-10 () none 10)
|
||||
(init! (_type_ symbol int int int symbol symbol) none 9)
|
||||
(dummy-10 (_type_) symbol 10)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
|
||||
;; definition of type othercam
|
||||
(deftype othercam (process)
|
||||
((hand uint64 :offset-assert 112)
|
||||
((hand handle :offset-assert 112)
|
||||
(old-global-mask uint32 :offset-assert 120)
|
||||
(mask-to-clear uint32 :offset-assert 124)
|
||||
(cam-joint-index int32 :offset-assert 128)
|
||||
@@ -275,9 +275,9 @@
|
||||
(old-mat-z vector :inline :offset-assert 160)
|
||||
(had-valid-frame basic :offset-assert 176)
|
||||
(border-value basic :offset-assert 180)
|
||||
(die? basic :offset-assert 184)
|
||||
(survive-anim-end? basic :offset-assert 188)
|
||||
(spooling? basic :offset-assert 192)
|
||||
(die? symbol :offset-assert 184)
|
||||
(survive-anim-end? symbol :offset-assert 188)
|
||||
(spooling? symbol :offset-assert 192)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 14
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -74,7 +74,7 @@
|
||||
(:methods
|
||||
(dummy-9 (_type_ vector int float process-drawable) none 9)
|
||||
(TODO-RENAME-10 (_type_ vector int float process-drawable) vector 10)
|
||||
(dummy-11 (_type_ string symbol vector) none 11)
|
||||
(dummy-11 (_type_ string symbol vector) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -89,15 +89,16 @@
|
||||
|
||||
;; definition of type process-taskable
|
||||
(deftype process-taskable (process-drawable)
|
||||
((tasks task-control :offset-assert 176)
|
||||
((root-override collide-shape :offset 112)
|
||||
(tasks task-control :offset-assert 176)
|
||||
(query gui-query :inline :offset-assert 180)
|
||||
(old-target-pos transformq :inline :offset-assert 208)
|
||||
(cell-for-task game-task :offset-assert 256)
|
||||
(cell-x uint64 :offset-assert 264)
|
||||
(cell-x handle :offset-assert 264)
|
||||
(cam-joint-index int32 :offset-assert 272)
|
||||
(skippable basic :offset-assert 276)
|
||||
(blend-on-exit basic :offset-assert 280)
|
||||
(camera uint64 :offset-assert 288)
|
||||
(camera handle :offset-assert 288)
|
||||
(will-talk symbol :offset-assert 296)
|
||||
(talk-message uint32 :offset-assert 300)
|
||||
(last-talk uint64 :offset-assert 304)
|
||||
@@ -112,7 +113,7 @@
|
||||
(music basic :offset-assert 360)
|
||||
(have-music symbol :offset-assert 364)
|
||||
(been-kicked symbol :offset-assert 368)
|
||||
(cur-trans-hook function :offset-assert 372)
|
||||
(cur-trans-hook (function none) :offset-assert 372)
|
||||
(shadow-backup shadow-geo :offset-assert 376)
|
||||
)
|
||||
:heap-base #x110
|
||||
@@ -120,38 +121,38 @@
|
||||
:size-assert #x17c
|
||||
:flag-assert #x350110017c
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(release () _type_ :state 20)
|
||||
(give-cell () _type_ :state 21)
|
||||
(dummy-22 () none 22)
|
||||
(enter-playing () none 23)
|
||||
(play-accept () none 24)
|
||||
(dummy-25 () none 25)
|
||||
(query () none 26)
|
||||
(lose () _type_ :state 22)
|
||||
(enter-playing () _type_ :state 23)
|
||||
(play-accept () _type_ :state 24)
|
||||
(play-reject () _type_ :state 25)
|
||||
(query () _type_ :state 26)
|
||||
(play-anim () _type_ :state 27)
|
||||
(hidden () _type_ :state 28)
|
||||
(dummy-29 () none 29)
|
||||
(be-clone (handle) _type_ :state 29)
|
||||
(idle () _type_ :state 30)
|
||||
(get-art-elem (_type_) art-element 31)
|
||||
(play-anim! (_type_ symbol) basic 32)
|
||||
(dummy-33 (_type_) none 33)
|
||||
(dummy-34 (_type_) none 34)
|
||||
(TODO-RENAME-34 (_type_ symbol) symbol 34)
|
||||
(dummy-35 (_type_) none 35)
|
||||
(dummy-36 (_type_) none 36)
|
||||
(dummy-37 (_type_) none 37)
|
||||
(get-spool-anim-or-?? (_type_ symbol) basic 36)
|
||||
(spool-push-anim (_type_) none 37)
|
||||
(dummy-38 (_type_) none 38)
|
||||
(should-display? (_type_) symbol 39)
|
||||
(dummy-40 (_type_ object skeleton-group int int vector int) none 40)
|
||||
(initialize-collision (_type_ int) none 41)
|
||||
(initialize-collision (_type_ int vector) none 41)
|
||||
(dummy-42 (_type_) none 42)
|
||||
(TODO-RENAME-43 (_type_) none 43)
|
||||
(TODO-RENAME-43 (_type_) symbol 43)
|
||||
(play-reminder (_type_) symbol 44)
|
||||
(dummy-45 (_type_) none 45)
|
||||
(dummy-46 (_type_) none 46)
|
||||
(target-above-threshold? (_type_) symbol 47)
|
||||
(draw-shadow (_type_) none 48)
|
||||
(dummy-49 (_type_) none 49)
|
||||
(dummy-50 (_type_) none 50)
|
||||
(dummy-51 (_type_) none 51)
|
||||
(draw-npc-shadow (_type_) none 48)
|
||||
(hidden-other () _type_ :state 49)
|
||||
(TODO-RENAME-50 (_type_) symbol 50)
|
||||
(close-anim-file! (_type_) symbol 51)
|
||||
(dummy-52 (_type_) none 52)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
(func function :offset 4)
|
||||
(tex uint32 :offset 4)
|
||||
(pntr pointer :offset 4)
|
||||
(sound basic :offset 4)
|
||||
(sound sound-spec :offset 4)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
|
||||
+2
-2
@@ -384,11 +384,11 @@
|
||||
(dummy-11 (_type_ vector) none 11)
|
||||
(dummy-12 () none 12)
|
||||
(dummy-13 () none 13)
|
||||
(dummy-14 (_type_) none 14)
|
||||
(set-current-poly! (_type_ nav-poly) none 14)
|
||||
(set-target-pos! (_type_ vector) none 15)
|
||||
(dummy-16 (_type_ vector) nav-poly 16)
|
||||
(dummy-17 () none 17)
|
||||
(dummy-18 () none 18)
|
||||
(TODO-RENAME-18 (_type_ vector) nav-poly 18)
|
||||
(dummy-19 (_type_ vector collide-shape-moving vector float) none 19)
|
||||
(dummy-20 () none 20)
|
||||
(dummy-21 () none 21)
|
||||
|
||||
@@ -2781,7 +2781,7 @@
|
||||
(set-continue! *game-info* arg0)
|
||||
(stack-size-set! (-> self main-thread) 1024)
|
||||
(logior! (-> self mask) (process-mask target))
|
||||
(set! (-> self state-hook) nothing)
|
||||
(set! (-> self state-hook) (the-as (function none :behavior target) nothing))
|
||||
(let ((s5-0 (new 'process 'control-info self (collide-list-enum player))))
|
||||
(set! (-> self control) s5-0)
|
||||
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
|
||||
|
||||
+25
-25
@@ -3,31 +3,31 @@
|
||||
|
||||
;; definition of type target
|
||||
(deftype target (process-drawable)
|
||||
((control control-info :offset 112)
|
||||
(fact-info-target fact-info-target :offset 144)
|
||||
(skel2 basic :offset-assert 176)
|
||||
(racer basic :offset-assert 180)
|
||||
(game game-info :offset-assert 184)
|
||||
(neck joint-mod :offset-assert 188)
|
||||
(state-hook-time uint64 :offset-assert 192)
|
||||
(state-hook function :offset-assert 200)
|
||||
(cam-user-mode symbol :offset-assert 204)
|
||||
(sidekick (pointer sidekick) :offset-assert 208)
|
||||
(manipy (pointer manipy) :offset-assert 212)
|
||||
(attack-info attack-info :inline :offset-assert 224)
|
||||
(attack-info-rec attack-info :inline :offset-assert 336)
|
||||
(anim-seed uint64 :offset-assert 440)
|
||||
(alt-cam-pos vector :inline :offset-assert 448)
|
||||
(snowball basic :offset-assert 464)
|
||||
(tube basic :offset-assert 468)
|
||||
(flut basic :offset-assert 472)
|
||||
(current-level level :offset-assert 476)
|
||||
(saved-pos transformq :inline :offset-assert 480)
|
||||
(saved-owner uint64 :offset-assert 528)
|
||||
(alt-neck-pos vector :inline :offset-assert 544)
|
||||
(fp-hud uint64 :offset-assert 560)
|
||||
(no-load-wait uint64 :offset-assert 568)
|
||||
(no-look-around-wait uint64 :offset-assert 576)
|
||||
((control control-info :offset 112)
|
||||
(fact-info-target fact-info-target :offset 144)
|
||||
(skel2 basic :offset-assert 176)
|
||||
(racer basic :offset-assert 180)
|
||||
(game game-info :offset-assert 184)
|
||||
(neck joint-mod :offset-assert 188)
|
||||
(state-hook-time uint64 :offset-assert 192)
|
||||
(state-hook (function none :behavior target) :offset-assert 200)
|
||||
(cam-user-mode symbol :offset-assert 204)
|
||||
(sidekick (pointer sidekick) :offset-assert 208)
|
||||
(manipy (pointer manipy) :offset-assert 212)
|
||||
(attack-info attack-info :inline :offset-assert 224)
|
||||
(attack-info-rec attack-info :inline :offset-assert 336)
|
||||
(anim-seed uint64 :offset-assert 440)
|
||||
(alt-cam-pos vector :inline :offset-assert 448)
|
||||
(snowball snowball-info :offset-assert 464)
|
||||
(tube tube-info :offset-assert 468)
|
||||
(flut basic :offset-assert 472)
|
||||
(current-level level :offset-assert 476)
|
||||
(saved-pos transformq :inline :offset-assert 480)
|
||||
(saved-owner uint64 :offset-assert 528)
|
||||
(alt-neck-pos vector :inline :offset-assert 544)
|
||||
(fp-hud uint64 :offset-assert 560)
|
||||
(no-load-wait uint64 :offset-assert 568)
|
||||
(no-look-around-wait uint64 :offset-assert 576)
|
||||
)
|
||||
:heap-base #x1e0
|
||||
:method-count-assert 21
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
(run-now-in-process
|
||||
s5-1
|
||||
manipy-init
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
(-> obj entity)
|
||||
*flutflut-naked-sg*
|
||||
#f
|
||||
@@ -138,7 +138,7 @@
|
||||
(run-now-in-process
|
||||
s5-2
|
||||
manipy-init
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
(-> obj entity)
|
||||
*flutflutegg-sg*
|
||||
#f
|
||||
|
||||
+6
-7
@@ -42,7 +42,7 @@
|
||||
(defmethod dummy-52 bird-lady ((obj bird-lady))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root trans y)))
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -1024.0 f0-0)))
|
||||
)
|
||||
@@ -59,7 +59,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type bird-lady
|
||||
(defmethod draw-shadow bird-lady ((obj bird-lady))
|
||||
(defmethod draw-npc-shadow bird-lady ((obj bird-lady))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -71,7 +71,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -243,18 +243,17 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.66 f0-2)
|
||||
(dummy-11 (-> obj ambient) "BIR-LO02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "BIR-LO02" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.33 f0-2)
|
||||
(dummy-11 (-> obj ambient) "BIR-LO03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "BIR-LO03" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "BIR-am08" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "BIR-am08" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 47 of type bird-lady
|
||||
|
||||
+3
-5
@@ -3,8 +3,7 @@
|
||||
|
||||
;; definition of type mayor
|
||||
(deftype mayor (process-taskable)
|
||||
((root-override collide-shape :offset 112)
|
||||
)
|
||||
()
|
||||
:heap-base #x110
|
||||
:method-count-assert 53
|
||||
:size-assert #x17c
|
||||
@@ -56,7 +55,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type mayor
|
||||
(defmethod draw-shadow mayor ((obj mayor))
|
||||
(defmethod draw-npc-shadow mayor ((obj mayor))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -68,7 +67,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -2149,7 +2148,6 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
|
||||
+11
-12
@@ -60,7 +60,7 @@
|
||||
(defmethod dummy-52 sculptor ((obj sculptor))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root trans y)))
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -2048.0 f0-0)))
|
||||
)
|
||||
@@ -74,7 +74,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type sculptor
|
||||
(defmethod draw-shadow sculptor ((obj sculptor))
|
||||
(defmethod draw-npc-shadow sculptor ((obj sculptor))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -86,7 +86,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -307,7 +307,7 @@
|
||||
(run-now-in-process
|
||||
s5-1
|
||||
manipy-init
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
(-> obj entity)
|
||||
*sculptor-muse-sg*
|
||||
#f
|
||||
@@ -390,30 +390,29 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.85714287 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SCU-LO01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SCU-LO01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.71428573 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SCU-AM05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SCU-AM05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.5714286 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SCU-AM06" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SCU-AM06" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.42857143 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SCU-AM03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SCU-AM03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.2857143 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SCU-AM04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SCU-AM04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.14285715 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SCU-AM01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SCU-AM01" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "SCU-AM02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SCU-AM02" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
|
||||
@@ -146,7 +146,10 @@
|
||||
*target*
|
||||
(>=
|
||||
61440.0
|
||||
(vector-vector-distance (-> self root trans) (-> *target* control trans))
|
||||
(vector-vector-distance
|
||||
(-> self root-override trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(not
|
||||
@@ -274,7 +277,3 @@
|
||||
(dummy-42 obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,732 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type babak-with-cannon
|
||||
(deftype babak-with-cannon (babak)
|
||||
((cannon-ent entity :offset-assert 400)
|
||||
(distance float :offset-assert 404)
|
||||
)
|
||||
:heap-base #x130
|
||||
:method-count-assert 76
|
||||
:size-assert #x198
|
||||
:flag-assert #x4c01300198
|
||||
)
|
||||
|
||||
;; definition for method 3 of type babak-with-cannon
|
||||
(defmethod inspect babak-with-cannon ((obj babak-with-cannon))
|
||||
(let ((t9-0 (method-of-type babak inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tcannon-ent: ~A~%" (-> obj cannon-ent))
|
||||
(format #t "~T~Tdistance: ~f~%" (-> obj distance))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
nav-enemy-default-event-handler
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-idle (babak-with-cannon)
|
||||
:virtual #t
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak-with-cannon)
|
||||
nav-enemy-default-event-handler
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(if
|
||||
(and
|
||||
(and
|
||||
*target*
|
||||
(>=
|
||||
(-> self enemy-info idle-distance)
|
||||
(vector-vector-distance
|
||||
(-> self collide-info trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self state-timeout)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-patrol)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-push! 1 22)
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 frame-group)
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info idle-anim))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info idle-anim))
|
||||
)
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-1 param 1) 1.0)
|
||||
(set! (-> a0-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-1
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info idle-anim))
|
||||
)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(ja-post)
|
||||
(suspend)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(anim-loop)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior babak-with-cannon) #f)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-patrol (babak-with-cannon)
|
||||
:virtual #t
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak-with-cannon)
|
||||
nav-enemy-default-event-handler
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
30
|
||||
)
|
||||
(let ((f30-0 (- (-> (target-pos 0) y) (-> self collide-info trans y))))
|
||||
(if
|
||||
(and
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
900
|
||||
)
|
||||
(or
|
||||
(or
|
||||
(not *target*)
|
||||
(<
|
||||
(-> self distance)
|
||||
(vector-vector-distance
|
||||
(-> self collide-info trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(< f30-0 -40960.0)
|
||||
)
|
||||
)
|
||||
(go babak-run-to-cannon)
|
||||
)
|
||||
)
|
||||
(when
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self state-timeout)
|
||||
)
|
||||
(if
|
||||
(or
|
||||
(not *target*)
|
||||
(<
|
||||
(-> self enemy-info idle-distance)
|
||||
(vector-vector-distance
|
||||
(-> self collide-info trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-idle)
|
||||
)
|
||||
)
|
||||
(if (nav-enemy-notice-player?)
|
||||
(go-virtual nav-enemy-notice)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(-> (method-of-type babak nav-enemy-patrol) code)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate babak-run-to-cannon (babak)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak)
|
||||
nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! (-> self nav destination-pos quad) (-> self entity extra trans quad))
|
||||
(set! (-> self nav target-pos quad) (-> self entity extra trans quad))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(if (nav-enemy-notice-player?)
|
||||
(go-virtual nav-enemy-chase)
|
||||
)
|
||||
(if (logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(go babak-with-cannon-jump-onto-cannon)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-push! 1 22)
|
||||
(while #t
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 8))
|
||||
)
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 8))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-1 param 1) 1.0)
|
||||
(set! (-> a0-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 8))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(nav-enemy-travel-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function handle->process-safe
|
||||
(defun handle->process-safe ((arg0 handle))
|
||||
(let ((v0-0 (the-as process #f)))
|
||||
(if (handle->process arg0)
|
||||
(set! v0-0 (-> arg0 process 0))
|
||||
)
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function babak-with-cannon-compute-cannon-dir
|
||||
;; Used lq/sq
|
||||
(defun babak-with-cannon-compute-cannon-dir ((arg0 mistycannon) (arg1 vector))
|
||||
(set! (-> arg1 quad) (-> arg0 node-list data 3 bone transform vector 2 quad))
|
||||
arg1
|
||||
)
|
||||
|
||||
;; definition for function babak-with-cannon-compute-ride-point
|
||||
;; Used lq/sq
|
||||
(defun babak-with-cannon-compute-ride-point ((arg0 mistycannon) (arg1 vector))
|
||||
(set! (-> arg1 quad) (-> arg0 root trans quad))
|
||||
(let ((a1-4 (new 'static 'vector :y 18149.377 :z -17289.217 :w 1.0))
|
||||
(a2-0 (-> arg0 node-list data 3 bone transform))
|
||||
)
|
||||
(vector-matrix*! arg1 a1-4 a2-0)
|
||||
)
|
||||
arg1
|
||||
)
|
||||
|
||||
;; definition for function babak-with-cannon-ride-cannon-post
|
||||
(defbehavior babak-with-cannon-ride-cannon-post babak-with-cannon ()
|
||||
(let* ((v1-0 (-> self cannon-ent))
|
||||
(s5-0 (if v1-0
|
||||
(-> v1-0 extra process)
|
||||
)
|
||||
)
|
||||
(gp-0
|
||||
(if (and (nonzero? s5-0) (type-type? (-> s5-0 type) process-drawable))
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(when gp-0
|
||||
(let ((s5-1 (new 'stack-no-clear 'vector)))
|
||||
(babak-with-cannon-compute-cannon-dir (the-as mistycannon gp-0) s5-1)
|
||||
(forward-up->quaternion (-> self collide-info quat) s5-1 *y-vector*)
|
||||
)
|
||||
(babak-with-cannon-compute-ride-point
|
||||
(the-as mistycannon gp-0)
|
||||
(-> self collide-info trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(nav-enemy-simple-post)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate babak-with-cannon-jump-onto-cannon (babak-with-cannon)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak-with-cannon)
|
||||
nav-enemy-jump-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! (-> self rotate-speed) (-> self nav-info run-rotate-speed))
|
||||
(set! (-> self turn-time) (the-as int (-> self nav-info run-turn-time)))
|
||||
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
|
||||
(nav-enemy-neck-control-inactive)
|
||||
(let* ((v1-7 (-> self cannon-ent))
|
||||
(gp-0 (if v1-7
|
||||
(-> v1-7 extra process)
|
||||
)
|
||||
)
|
||||
(a0-2
|
||||
(if
|
||||
(and (nonzero? gp-0) (type-type? (-> gp-0 type) process-drawable))
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(a0-2
|
||||
(babak-with-cannon-compute-ride-point
|
||||
(the-as mistycannon a0-2)
|
||||
(-> self event-param-point)
|
||||
)
|
||||
(nav-enemy-initialize-jump (-> self event-param-point))
|
||||
)
|
||||
(else
|
||||
(go-virtual nav-enemy-idle)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335))
|
||||
(ja-channel-push! 1 60)
|
||||
(nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(nav-enemy-execute-jump)
|
||||
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
|
||||
(let* ((v1-20 (-> self cannon-ent))
|
||||
(gp-1 (if v1-20
|
||||
(-> v1-20 extra process)
|
||||
)
|
||||
)
|
||||
(a0-9
|
||||
(if
|
||||
(and (nonzero? gp-1) (type-type? (-> gp-1 type) process-drawable))
|
||||
gp-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(when a0-9
|
||||
(let
|
||||
((gp-2
|
||||
(babak-with-cannon-compute-cannon-dir
|
||||
(the-as mistycannon a0-9)
|
||||
(new 'stack-no-clear 'vector)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (not (nav-enemy-facing-direction? gp-2 1820.4445))
|
||||
(ja-channel-push! 1 60)
|
||||
(nav-enemy-turn-to-face-dir gp-2 182.04445)
|
||||
(forward-up->quaternion (-> self collide-info quat) gp-2 *y-vector*)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((a0-15 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-15 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 17))
|
||||
)
|
||||
(set!
|
||||
(-> a0-15 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 17))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-15 param 1) 1.0)
|
||||
(set! (-> a0-15 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-15
|
||||
(the-as art-joint-anim (-> self draw art-group data 17))
|
||||
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!
|
||||
)
|
||||
)
|
||||
)
|
||||
(go babak-with-cannon-shooting)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior babak-with-cannon) nav-enemy-jump-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate babak-with-cannon-jump-off-cannon (babak-with-cannon)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak-with-cannon)
|
||||
nav-enemy-jump-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(nav-enemy-initialize-jump (-> self entity extra trans))
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 17))
|
||||
)
|
||||
(set! (-> a0-2 param 0) 0.0)
|
||||
(set! (-> a0-2 param 1) 2.0)
|
||||
(set!
|
||||
(-> a0-2 frame-num)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 17))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim (-> self draw art-group data 17))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-3 param 0) 0.0)
|
||||
(set! (-> a0-3 param 1) 2.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335))
|
||||
(ja-channel-push! 1 60)
|
||||
(nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(nav-enemy-execute-jump)
|
||||
(let ((a1-6 (dummy-16 (-> self nav) (-> self jump-dest))))
|
||||
(set-current-poly! (-> self nav) a1-6)
|
||||
)
|
||||
(go-virtual nav-enemy-jump-land)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior babak-with-cannon) nav-enemy-jump-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate babak-with-cannon-shooting (babak-with-cannon)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak-with-cannon)
|
||||
nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor 0)))
|
||||
(if v1-2
|
||||
(logior! (-> v1-2 extra perm status) (entity-perm-status complete))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(let ((v1-0 (entity-actor-lookup (-> self entity) 'alt-actor 0)))
|
||||
(if v1-0
|
||||
(logclear! (-> v1-0 extra perm status) (entity-perm-status complete))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(let ((f0-1 (- (-> (target-pos 0) y) (-> self collide-info trans y))))
|
||||
(if
|
||||
(and
|
||||
(< -40960.0 f0-1)
|
||||
(and
|
||||
(and
|
||||
*target*
|
||||
(>=
|
||||
(-> self distance)
|
||||
(vector-vector-distance
|
||||
(-> self collide-info trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
900
|
||||
)
|
||||
)
|
||||
)
|
||||
(go babak-with-cannon-jump-off-cannon)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
babak-with-cannon-ride-cannon-post
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-die (babak-with-cannon)
|
||||
:virtual #t
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak-with-cannon)
|
||||
nav-enemy-default-event-handler
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(if (and *target* (= (-> *target* current-level name) 'beach))
|
||||
(spool-push *art-control* "beachcam-cannon" 0 self -1.0)
|
||||
)
|
||||
(if (and *target* (= (-> *target* current-level name) 'misty))
|
||||
(spool-push *art-control* "mistycam-cannon" 0 self -1.0)
|
||||
)
|
||||
(let
|
||||
((t9-3
|
||||
(->
|
||||
(the-as (state nav-enemy) (find-parent-method babak-with-cannon 23))
|
||||
trans
|
||||
)
|
||||
)
|
||||
)
|
||||
(if t9-3
|
||||
(t9-3)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-fuel-cell (babak-with-cannon)
|
||||
:virtual #t
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior babak-with-cannon)
|
||||
process-drawable-fuel-cell-handler
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-set! 0)
|
||||
(dummy-48 (-> self collide-info))
|
||||
(ja-post)
|
||||
(when (not (task-complete? *game-info* (-> self entity extra perm task)))
|
||||
(when
|
||||
(not
|
||||
(and
|
||||
(-> self entity)
|
||||
(logtest?
|
||||
(-> self entity extra perm status)
|
||||
(entity-perm-status complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
(process-entity-status! self (entity-perm-status complete) #t)
|
||||
(if (and *target* (= (-> *target* current-level name) 'beach))
|
||||
(beachcam-spawn)
|
||||
)
|
||||
(if (and *target* (= (-> *target* current-level name) 'misty))
|
||||
(mistycam-spawn)
|
||||
)
|
||||
)
|
||||
(if (not (-> self child))
|
||||
(birth-pickup-at-point
|
||||
(-> self collide-info trans)
|
||||
6
|
||||
(the float (-> self entity extra perm task))
|
||||
#f
|
||||
self
|
||||
#f
|
||||
)
|
||||
)
|
||||
(while (-> self child)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(dummy-18 self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 39 of type babak-with-cannon
|
||||
(defmethod common-post babak-with-cannon ((obj babak-with-cannon))
|
||||
(cond
|
||||
((= (level-status *level* 'beach) 'active)
|
||||
(spool-push *art-control* "beachcam-cannon" 0 obj -99.0)
|
||||
)
|
||||
((= (level-status *level* 'misty) 'active)
|
||||
(spool-push *art-control* "mistycam-cannon" 0 obj -99.0)
|
||||
)
|
||||
)
|
||||
((method-of-type nav-enemy common-post) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type babak-with-cannon
|
||||
(defmethod
|
||||
copy-defaults!
|
||||
babak-with-cannon
|
||||
((obj babak-with-cannon) (arg0 res-lump))
|
||||
(initialize-collision obj)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(TODO-RENAME-48 obj)
|
||||
(set! (-> obj distance) (res-lump-float arg0 'distance :default 163840.0))
|
||||
(set! (-> obj cannon-ent) (entity-actor-lookup (-> obj entity) 'alt-actor 0))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(if
|
||||
(or
|
||||
(not
|
||||
(and
|
||||
(-> obj entity)
|
||||
(logtest? (-> obj entity extra perm status) (entity-perm-status complete))
|
||||
)
|
||||
)
|
||||
(zero? (logand (-> obj enemy-info options) 2))
|
||||
)
|
||||
(go (method-of-object obj nav-enemy-idle))
|
||||
)
|
||||
(go (method-of-object obj nav-enemy-fuel-cell))
|
||||
(none)
|
||||
)
|
||||
@@ -0,0 +1,717 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type babak
|
||||
(deftype babak (nav-enemy)
|
||||
()
|
||||
:heap-base #x120
|
||||
:method-count-assert 76
|
||||
:size-assert #x190
|
||||
:flag-assert #x4c01200190
|
||||
)
|
||||
|
||||
;; definition for method 3 of type babak
|
||||
(defmethod inspect babak ((obj babak))
|
||||
(let ((t9-0 (method-of-type nav-enemy inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "babak"
|
||||
:bounds
|
||||
(new 'static 'vector :y 8192.0 :w 12288.0)
|
||||
:max-lod 2
|
||||
:longest-edge (meters 1.0)
|
||||
:version #x6
|
||||
:shadow 4
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) -1)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 81920.0)
|
||||
(set! (-> v1-1 mgeo 1) (the-as uint 2))
|
||||
(set! (-> v1-1 lod-dist 1) 163840.0)
|
||||
(set! (-> v1-1 mgeo 2) (the-as uint 3))
|
||||
(set! (-> v1-1 lod-dist 2) 4095996000.0)
|
||||
(set! *babak-sg* v1-1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-patrol (babak)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(cond
|
||||
((= (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
(-> self draw art-group data 10)
|
||||
)
|
||||
(ja-channel-push! 1 45)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-0 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
)
|
||||
(set!
|
||||
(-> gp-0 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 param 1) 1.0)
|
||||
(set! (-> gp-0 frame-num) (ja-aframe 12.0 0))
|
||||
(joint-control-channel-group!
|
||||
gp-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-7 param 0)
|
||||
(the float (+ (-> a0-7 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-7 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-7
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(ja-channel-push! 1 60)
|
||||
)
|
||||
)
|
||||
((the-as
|
||||
(function none)
|
||||
(-> (method-of-type nav-enemy nav-enemy-patrol) code)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-chase (babak)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1)))
|
||||
(cond
|
||||
((= (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
(-> self draw art-group data 14)
|
||||
)
|
||||
(let ((a0-5 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-5 param 0)
|
||||
(the float (+ (-> a0-5 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-5 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-5
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 51)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-7 frame-group)
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info run-anim))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> a0-7 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info run-anim))
|
||||
)
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-7 param 1) f30-0)
|
||||
(set! (-> a0-7 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-7
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info run-anim))
|
||||
)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(ja-blend-eval)
|
||||
(suspend)
|
||||
(let ((a0-8 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-8 param 0)
|
||||
(the float (+ (-> a0-8 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-8 param 1) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-8
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(ja-channel-push! 1 60)
|
||||
(let ((v1-42 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> v1-42 frame-group)
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info run-anim))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-45 (-> self skel root-channel 0)))
|
||||
(set! (-> v1-45 num-func) num-func-identity)
|
||||
(set! (-> v1-45 frame-num) 0.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(while #t
|
||||
(suspend)
|
||||
(let ((a0-17 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-17 param 0) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-17
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-stare (babak)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self turn-time) 60)
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2)))
|
||||
(when
|
||||
(or
|
||||
(logtest? (-> self nav-enemy-flags) 256)
|
||||
(and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5))
|
||||
)
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-0 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 11))
|
||||
)
|
||||
(set! (-> gp-0 param 0) (ja-aframe 68.0 0))
|
||||
(set! (-> gp-0 param 1) f30-0)
|
||||
(set! (-> gp-0 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
gp-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 11))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-1 param 0) (ja-aframe 68.0 0))
|
||||
(set! (-> gp-1 param 1) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
gp-1
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(while #t
|
||||
(when (not (nav-enemy-facing-player? 2730.6667))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(let ((a0-9 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-9 param 0) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-9
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 60)
|
||||
(let ((v1-25 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> v1-25 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 16))
|
||||
)
|
||||
)
|
||||
(let ((v1-28 (-> self skel root-channel 0)))
|
||||
(set! (-> v1-28 num-func) num-func-identity)
|
||||
(set! (-> v1-28 frame-num) 0.0)
|
||||
)
|
||||
(until (nav-enemy-facing-player? 1820.4445)
|
||||
(ja-blend-eval)
|
||||
(suspend)
|
||||
(let ((a0-15 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-15 param 0) 0.75)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-15
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
)
|
||||
(if (not (= (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
(-> self draw art-group data 5)
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 60)
|
||||
)
|
||||
(let ((a0-23 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-23 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
)
|
||||
(set!
|
||||
(-> a0-23 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-23 param 1) f30-0)
|
||||
(set! (-> a0-23 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-23
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-24 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-24 param 0)
|
||||
(the float (+ (-> a0-24 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-24 param 1) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-24
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (nav-enemy-rnd-percent? 0.3)
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((gp-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-2 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 11))
|
||||
)
|
||||
(set! (-> gp-2 param 0) (ja-aframe 68.0 0))
|
||||
(set! (-> gp-2 param 1) f30-0)
|
||||
(set! (-> gp-2 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
gp-2
|
||||
(the-as art-joint-anim (-> self draw art-group data 11))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((gp-3 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-3 param 0) (ja-aframe 68.0 0))
|
||||
(set! (-> gp-3 param 1) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
gp-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-give-up (babak)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self rotate-speed) 218453.33)
|
||||
(set! (-> self turn-time) 150)
|
||||
(ja-channel-push! 1 45)
|
||||
(let ((s4-0 (-> self collide-info))
|
||||
(s5-0 (target-pos 0))
|
||||
)
|
||||
(when
|
||||
(<
|
||||
(fabs
|
||||
(deg-diff
|
||||
(y-angle s4-0)
|
||||
(vector-y-angle
|
||||
(vector-! (new 'stack-no-clear 'vector) s5-0 (-> s4-0 trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
12743.111
|
||||
)
|
||||
(let ((a0-6 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-6 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 9))
|
||||
)
|
||||
(set!
|
||||
(-> a0-6 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 9))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-6 param 1) 1.0)
|
||||
(set! (-> a0-6 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-6
|
||||
(the-as art-joint-anim (-> self draw art-group data 9))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-7 param 0)
|
||||
(the float (+ (-> a0-7 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-7 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-7
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-12 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-12 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 10))
|
||||
)
|
||||
(set!
|
||||
(-> a0-12 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 10))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-12 param 1) 1.0)
|
||||
(set! (-> a0-12 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-12
|
||||
(the-as art-joint-anim (-> self draw art-group data 10))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(seek-to-point-toward-point!
|
||||
(-> self collide-info)
|
||||
(-> self nav destination-pos)
|
||||
(-> self rotate-speed)
|
||||
(-> self turn-time)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-14 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-14 param 0)
|
||||
(the float (+ (-> a0-14 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-14 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-14
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-patrol)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-jump-land (babak)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a0-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-0 param 0)
|
||||
(the float (+ (-> a0-0 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-0 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-0
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 22)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-0 frame-group)
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info jump-land-anim))
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 param 0) (ja-aframe 32.0 0))
|
||||
(set! (-> gp-0 param 1) 0.5)
|
||||
(set! (-> gp-0 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
gp-0
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info jump-land-anim))
|
||||
)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(ja-blend-eval)
|
||||
(suspend)
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-1 param 0) (ja-aframe 32.0 0))
|
||||
(set! (-> gp-1 param 1) 0.5)
|
||||
(joint-control-channel-group-eval!
|
||||
gp-1
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-chase)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *babak-nav-enemy-info*, type nav-enemy-info
|
||||
(define
|
||||
*babak-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:idle-anim 5
|
||||
:walk-anim 6
|
||||
:turn-anim 16
|
||||
:notice-anim 7
|
||||
:run-anim 8
|
||||
:jump-anim 13
|
||||
:jump-land-anim 14
|
||||
:victory-anim 11
|
||||
:taunt-anim 11
|
||||
:die-anim 12
|
||||
:neck-joint 5
|
||||
:player-look-at-joint 5
|
||||
:run-travel-speed (meters 6.0)
|
||||
:run-rotate-speed (degrees 2880.0)
|
||||
:run-acceleration (meters 1.0)
|
||||
:run-turn-time #x1e
|
||||
:walk-travel-speed (meters 3.0)
|
||||
:walk-rotate-speed (degrees 720.0)
|
||||
:walk-acceleration (meters 1.0)
|
||||
:walk-turn-time #x96
|
||||
:attack-shove-back (meters 3.0)
|
||||
:attack-shove-up (meters 2.0)
|
||||
:shadow-size (meters 2.0)
|
||||
:notice-nav-radius (meters 2.0)
|
||||
:nav-nearest-y-threshold (meters 10.0)
|
||||
:notice-distance (meters 30.0)
|
||||
:proximity-notice-distance (meters 20.0)
|
||||
:stop-chase-distance (meters 40.0)
|
||||
:frustration-distance (meters 8.0)
|
||||
:frustration-time #x4b0
|
||||
:die-anim-hold-frame 24.0
|
||||
:jump-anim-start-frame 10.0
|
||||
:jump-land-anim-end-frame 10000000000.0
|
||||
:jump-height-min (meters 3.0)
|
||||
:jump-height-factor 0.5
|
||||
:jump-start-anim-speed 1.0
|
||||
:shadow-max-y (meters 1.0)
|
||||
:shadow-min-y (meters -1.0)
|
||||
:shadow-locus-dist (meters 150.0)
|
||||
:use-align #t
|
||||
:draw-shadow #t
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:use-momentum #f
|
||||
:use-flee #t
|
||||
:use-proximity-notice #t
|
||||
:use-jump-blocked #t
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 47 of type babak
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod initialize-collision babak ((obj babak))
|
||||
(let
|
||||
((s5-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-moving
|
||||
obj
|
||||
(collide-list-enum usually-hit-by-player)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s5-0 reaction) default-collision-reaction)
|
||||
(set! (-> s5-0 no-reaction) nothing)
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 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-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 12288.0)
|
||||
(dummy-46 s5-0)
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3))))
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-0 prim-core offense) 1)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 3072.0)
|
||||
)
|
||||
(dummy-28 s4-0)
|
||||
(let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3))))
|
||||
(set! (-> s3-1 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s3-1 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-1 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-1 prim-core offense) 1)
|
||||
(set-vector! (-> s3-1 local-sphere) 0.0 9830.4 0.0 3072.0)
|
||||
)
|
||||
(dummy-28 s4-0)
|
||||
(let ((s3-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1))))
|
||||
(set! (-> s3-2 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s3-2 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-2 prim-core offense) 2)
|
||||
(set! (-> s3-2 transform-index) 6)
|
||||
(set-vector! (-> s3-2 local-sphere) 0.0 0.0 0.0 2048.0)
|
||||
)
|
||||
(dummy-28 s4-0)
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) 6144.0)
|
||||
(dummy-50 s5-0)
|
||||
(set! (-> s5-0 max-iteration-count) (the-as uint 2))
|
||||
(set! (-> obj collide-info) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 48 of type babak
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-48 babak ((obj babak))
|
||||
(dummy-14 obj *babak-sg* '())
|
||||
(TODO-RENAME-45 obj *babak-nav-enemy-info*)
|
||||
(set! (-> obj neck up) (the-as uint 0))
|
||||
(set! (-> obj neck nose) (the-as uint 1))
|
||||
(set! (-> obj neck ear) (the-as uint 2))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 59 of type babak
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-59 babak ((obj babak))
|
||||
(cond
|
||||
((and
|
||||
(and
|
||||
(-> obj entity)
|
||||
(logtest? (-> obj entity extra perm status) (entity-perm-status complete))
|
||||
)
|
||||
(logtest? (-> obj enemy-info options) 2)
|
||||
)
|
||||
(go (method-of-object obj nav-enemy-fuel-cell))
|
||||
)
|
||||
((logtest? (-> obj enemy-info options) 32)
|
||||
(go (method-of-object obj nav-enemy-wait-for-cue))
|
||||
)
|
||||
(else
|
||||
(go (method-of-object obj nav-enemy-idle))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
+1
-1
@@ -431,7 +431,7 @@ eco-door-event-handler
|
||||
eco-door-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
((method-of-object (-> self root-override) dummy-49))
|
||||
(dummy-49 (-> self root-override))
|
||||
(set! (-> self draw status) (logand -3 (-> self draw status)))
|
||||
(let ((gp-0 (new 'stack 'overlaps-others-params)))
|
||||
(set! (-> gp-0 options) (the-as uint 1))
|
||||
|
||||
@@ -202,9 +202,9 @@
|
||||
(TODO-RENAME-48 (_type_) none 48)
|
||||
(TODO-RENAME-49 (_type_ nav-enemy-info) float 49)
|
||||
(TODO-RENAME-50 (_type_ vector) symbol 50)
|
||||
(dummy-51 (_type_) none 51)
|
||||
(dummy-52 (_type_) none 52)
|
||||
(dummy-53 (_type_) none 53)
|
||||
(dummy-51 (_type_) float 51)
|
||||
(dummy-52 (_type_ vector) vector 52)
|
||||
(dummy-53 (_type_) symbol 53)
|
||||
(dummy-54 (_type_) none 54)
|
||||
(dummy-55 (_type_) none 55)
|
||||
(dummy-56 (_type_) none 56)
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
(dummy-54 (-> obj collide-info) 2 1)
|
||||
(set! (-> obj nav-enemy-flags) (logand -257 (-> obj nav-enemy-flags)))
|
||||
)
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
(when *target*
|
||||
(if *target*
|
||||
(look-at-enemy!
|
||||
@@ -2781,7 +2781,7 @@ nav-enemy-default-event-handler
|
||||
(set! a1-0 (dummy-16 (-> self nav) (-> self jump-dest)))
|
||||
)
|
||||
(if a1-0
|
||||
(dummy-14 (-> self nav))
|
||||
(set-current-poly! (-> self nav) a1-0)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-jump-land)
|
||||
|
||||
+11
-11
@@ -367,8 +367,8 @@
|
||||
(cm-joint-y meters :offset-assert 84)
|
||||
(cm-joint-z meters :offset-assert 88)
|
||||
(idle-distance meters :offset-assert 92)
|
||||
(platform basic :offset-assert 96)
|
||||
(sound-name basic :offset-assert 100)
|
||||
(platform symbol :offset-assert 96)
|
||||
(sound-name symbol :offset-assert 100)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x68
|
||||
@@ -462,9 +462,9 @@
|
||||
(:methods
|
||||
(rigid-body-platform-idle () _type_ :state 20)
|
||||
(rigid-body-platform-float () _type_ :state 21)
|
||||
(TODO-RENAME-22 (_type_ vector basic) float 22)
|
||||
(TODO-RENAME-23 (_type_ basic) none 23)
|
||||
(TODO-RENAME-24 (_type_ rigid-body-control-point basic) none 24)
|
||||
(TODO-RENAME-22 (_type_ vector float) float 22)
|
||||
(TODO-RENAME-23 (_type_ float) none 23)
|
||||
(TODO-RENAME-24 (_type_ rigid-body-control-point float) none 24)
|
||||
(TODO-RENAME-25 (_type_) none 25)
|
||||
(TODO-RENAME-26 (_type_) none 26)
|
||||
(TODO-RENAME-27 (_type_ vector) none 27)
|
||||
@@ -472,8 +472,8 @@
|
||||
(TODO-RENAME-29 (_type_ rigid-body-platform-constants) none 29)
|
||||
(TODO-RENAME-30 (_type_) none 30)
|
||||
(TODO-RENAME-31 (_type_) none 31)
|
||||
(dummy-32 (_type_) none 32)
|
||||
(dummy-33 (_type_) none 33)
|
||||
(dummy-32 (_type_) sound-id 32)
|
||||
(dummy-33 (_type_) object 33)
|
||||
(TODO-RENAME-34 (_type_) none 34)
|
||||
)
|
||||
)
|
||||
@@ -540,7 +540,7 @@
|
||||
(defmethod
|
||||
TODO-RENAME-22
|
||||
rigid-body-platform
|
||||
((obj rigid-body-platform) (arg0 vector) (arg1 basic))
|
||||
((obj rigid-body-platform) (arg0 vector) (arg1 float))
|
||||
(let ((v1-0 (-> obj water-anim)))
|
||||
0.0
|
||||
(+ (the-as float (cond
|
||||
@@ -572,7 +572,7 @@
|
||||
(defmethod
|
||||
TODO-RENAME-24
|
||||
rigid-body-platform
|
||||
((obj rigid-body-platform) (arg0 rigid-body-control-point) (arg1 basic))
|
||||
((obj rigid-body-platform) (arg0 rigid-body-control-point) (arg1 float))
|
||||
(set! (-> arg0 world-pos w) (TODO-RENAME-22 obj (-> arg0 world-pos) arg1))
|
||||
(let* ((s4-0 (new 'stack-no-clear 'vector))
|
||||
(f0-2 (- (-> arg0 world-pos w) (-> arg0 world-pos y)))
|
||||
@@ -667,7 +667,7 @@
|
||||
(defmethod
|
||||
TODO-RENAME-23
|
||||
rigid-body-platform
|
||||
((obj rigid-body-platform) (arg0 basic))
|
||||
((obj rigid-body-platform) (arg0 float))
|
||||
(let ((s4-0 (-> obj rbody matrix)))
|
||||
(dotimes (s3-0 (-> obj info control-point-count))
|
||||
(let ((s2-0 (-> obj control-point-array data s3-0)))
|
||||
@@ -715,7 +715,7 @@
|
||||
)
|
||||
(while (>= (-> obj sim-time-remaining) (* 0.5 f30-0))
|
||||
(clear-force-torque! (-> obj rbody))
|
||||
(TODO-RENAME-23 obj (the-as basic f28-0))
|
||||
(TODO-RENAME-23 obj f28-0)
|
||||
(dummy-10 (-> obj rbody) f30-0)
|
||||
(set! (-> obj sim-time-remaining) (- (-> obj sim-time-remaining) f30-0))
|
||||
)
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
(>=
|
||||
61440.0
|
||||
(vector-vector-distance
|
||||
(-> self root trans)
|
||||
(-> self root-override trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
@@ -151,30 +151,28 @@
|
||||
#f
|
||||
)
|
||||
)
|
||||
(let ((a0-1 (-> self tasks)))
|
||||
(and
|
||||
(not
|
||||
(closed?
|
||||
a0-1
|
||||
(game-task firecanyon-assistant)
|
||||
(task-status need-reward-speech)
|
||||
)
|
||||
(and
|
||||
(not
|
||||
(closed?
|
||||
(-> self tasks)
|
||||
(game-task firecanyon-assistant)
|
||||
(task-status need-reward-speech)
|
||||
)
|
||||
(not (movie?))
|
||||
(not (level-hint-displayed? (the-as symbol a0-1)))
|
||||
(not
|
||||
(and
|
||||
*cheat-mode*
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
|
||||
)
|
||||
)
|
||||
(not (movie?))
|
||||
(not (level-hint-displayed?))
|
||||
(not
|
||||
(and
|
||||
*cheat-mode*
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
|
||||
)
|
||||
(<
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as int (-> self state-time))
|
||||
)
|
||||
3000
|
||||
)
|
||||
(<
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as int (-> self state-time))
|
||||
)
|
||||
3000
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -0,0 +1,646 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(if (not (nmember "flutp" *kernel-packages*))
|
||||
(set! *kernel-packages* (cons "flutp" *kernel-packages*))
|
||||
)
|
||||
|
||||
;; definition of type flutflut
|
||||
(deftype flutflut (process-drawable)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(extra-trans vector :inline :offset-assert 176)
|
||||
(condition int32 :offset-assert 192)
|
||||
(auto-get-off symbol :offset-assert 196)
|
||||
(cell handle :offset-assert 200)
|
||||
(path-data path-control 2 :offset-assert 208)
|
||||
(path-target path-control :offset 208)
|
||||
(path-flut path-control :offset 212)
|
||||
(touch-time uint64 :offset-assert 216)
|
||||
)
|
||||
:pack-me
|
||||
:heap-base #x70
|
||||
:method-count-assert 24
|
||||
:size-assert #xe0
|
||||
:flag-assert #x18007000e0
|
||||
(:methods
|
||||
(wait-for-start () _type_ :state 20)
|
||||
(idle () _type_ :state 21)
|
||||
(pickup ((state flutflut)) _type_ :state 22)
|
||||
(wait-for-return () _type_ :state 23)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type flutflut
|
||||
(defmethod inspect flutflut ((obj flutflut))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Textra-trans: ~`vector`P~%" (-> obj extra-trans))
|
||||
(format #t "~T~Tcondition: ~D~%" (-> obj condition))
|
||||
(format #t "~T~Tauto-get-off: ~A~%" (-> obj auto-get-off))
|
||||
(format #t "~T~Tcell: ~D~%" (-> obj cell))
|
||||
(format #t "~T~Tpath-data[2] @ #x~X~%" (-> obj path-data))
|
||||
(format #t "~T~Tpath-target: ~A~%" (-> obj path-target))
|
||||
(format #t "~T~Tpath-flut: ~A~%" (-> obj path-flut))
|
||||
(format #t "~T~Ttouch-time: ~D~%" (-> obj touch-time))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 7 of type flutflut
|
||||
;; INFO: Return type mismatch process-drawable vs flutflut.
|
||||
(defmethod relocate flutflut ((obj flutflut) (arg0 int))
|
||||
(countdown (v1-0 2)
|
||||
(if (-> obj path-data v1-0)
|
||||
(&+! (-> obj path-data v1-0) arg0)
|
||||
)
|
||||
)
|
||||
(the-as flutflut ((method-of-type process-drawable relocate) obj arg0))
|
||||
)
|
||||
|
||||
;; definition for symbol *flutflut-shadow-control*, type shadow-control
|
||||
(define
|
||||
*flutflut-shadow-control*
|
||||
(new 'static 'shadow-control
|
||||
:settings
|
||||
(new 'static 'shadow-settings
|
||||
:center
|
||||
(new 'static 'vector :w (the-as float #xa))
|
||||
:shadow-dir
|
||||
(new 'static 'vector :y -1.0 :w 614400.0)
|
||||
:bot-plane (new 'static 'plane :y 1.0 :w 81920.0)
|
||||
:top-plane (new 'static 'plane :y 1.0 :w -2867.2)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-5
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "flut-saddle"
|
||||
:bounds (new 'static 'vector :w 14336.0)
|
||||
:version #x6
|
||||
:shadow 2
|
||||
:sort 1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-5 jgeo) 0)
|
||||
(set! (-> v1-5 janim) -1)
|
||||
(set! (-> v1-5 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-5 lod-dist 0) 4095996000.0)
|
||||
(set! *flutflut-sg* v1-5)
|
||||
)
|
||||
|
||||
;; definition for function flutflut-effect
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior flutflut-effect flutflut ()
|
||||
(spawn (-> self part) (-> self root-override trans))
|
||||
(update! (-> self sound))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate wait-for-start (flutflut)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (cond
|
||||
((= v1-0 'trans)
|
||||
(vector+!
|
||||
(the-as vector (-> arg3 param 0))
|
||||
(-> self root-override trans)
|
||||
(-> self extra-trans)
|
||||
)
|
||||
)
|
||||
((= v1-0 'notify)
|
||||
(let ((v0-1 (the-as structure #t)))
|
||||
(set! (-> self auto-get-off) (the-as symbol v0-1))
|
||||
v0-1
|
||||
)
|
||||
)
|
||||
((or (= v1-0 'touch) (= v1-0 'attack))
|
||||
(set!
|
||||
(-> self touch-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(set! (-> self root-override root-prim prim-core action) (the-as uint 0))
|
||||
(set! (-> self root-override root-prim prim-core offense) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(let ((v1-0 (-> self condition)))
|
||||
(cond
|
||||
((or (zero? v1-0) (= v1-0 1))
|
||||
(if
|
||||
(or
|
||||
(and
|
||||
(task-complete? *game-info* (game-task beach-flutflut))
|
||||
(or
|
||||
(and
|
||||
(zero? (-> self condition))
|
||||
(task-closed?
|
||||
(game-task village2-levitator)
|
||||
(task-status need-hint)
|
||||
)
|
||||
)
|
||||
(and
|
||||
(= (-> self condition) 1)
|
||||
(task-closed? (game-task village3-button) (task-status need-hint))
|
||||
)
|
||||
)
|
||||
)
|
||||
(and
|
||||
*cheat-mode*
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
|
||||
)
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
)
|
||||
)
|
||||
(goto cfg-75)
|
||||
)
|
||||
)
|
||||
((= v1-0 4)
|
||||
(if
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
)
|
||||
(goto cfg-75)
|
||||
)
|
||||
)
|
||||
((= v1-0 3)
|
||||
(cond
|
||||
((and
|
||||
(task-complete? *game-info* (-> self entity extra perm task))
|
||||
(not (handle->process (-> self cell)))
|
||||
)
|
||||
(when
|
||||
(and
|
||||
(-> self auto-get-off)
|
||||
(let ((a1-6 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-6 from) self)
|
||||
(set! (-> a1-6 num-params) 0)
|
||||
(set! (-> a1-6 message) 'end-mode)
|
||||
(send-event-function *target* a1-6)
|
||||
)
|
||||
)
|
||||
(set! (-> self auto-get-off) #f)
|
||||
(go-virtual pickup (method-of-object self idle))
|
||||
)
|
||||
(set! (-> self auto-get-off) #f)
|
||||
(if (= (-> self condition) 3)
|
||||
(goto cfg-75)
|
||||
)
|
||||
(if
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
(<
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as int (-> self touch-time))
|
||||
)
|
||||
15
|
||||
)
|
||||
)
|
||||
(go-virtual pickup (method-of-object self idle))
|
||||
)
|
||||
)
|
||||
((not (handle->process (-> self cell)))
|
||||
(set!
|
||||
(-> self cell)
|
||||
(ppointer->handle
|
||||
(birth-pickup-at-point
|
||||
(vector+!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> self root-override trans)
|
||||
(new 'static 'vector :y 8192.0 :w 1.0)
|
||||
)
|
||||
6
|
||||
(the float (-> self entity extra perm task))
|
||||
#f
|
||||
self
|
||||
(the-as symbol (-> self fact))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(goto cfg-75)
|
||||
)
|
||||
)
|
||||
)
|
||||
(flutflut-effect)
|
||||
(suspend)
|
||||
)
|
||||
(label cfg-75)
|
||||
(if
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
)
|
||||
(go-virtual wait-for-return)
|
||||
(go-virtual idle)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (flutflut)
|
||||
:virtual #t
|
||||
:event
|
||||
(-> (method-of-type flutflut wait-for-start) event)
|
||||
:enter
|
||||
(behavior ()
|
||||
(blocking-plane-destroy)
|
||||
(blocking-plane-spawn (the-as curve-control (-> self path-target)))
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
(-> (method-of-type flutflut wait-for-start) exit)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-set! 1)
|
||||
(let ((v1-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> v1-2 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
)
|
||||
)
|
||||
(set! (-> self root-override root-prim prim-core action) (the-as uint 2049))
|
||||
(set! (-> self root-override root-prim prim-core offense) 4)
|
||||
(while #t
|
||||
(if
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
)
|
||||
(go-virtual wait-for-return)
|
||||
)
|
||||
(when (logtest? (-> self draw status) 8)
|
||||
(if
|
||||
(and
|
||||
*target*
|
||||
(>=
|
||||
40960.0
|
||||
(vector-vector-distance
|
||||
(-> self root-override trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(level-hint-spawn
|
||||
(game-text-id flutflut-reminder)
|
||||
"sksp0160"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when
|
||||
(and
|
||||
(and
|
||||
*target*
|
||||
(>=
|
||||
20480.0
|
||||
(vector-vector-distance
|
||||
(-> self root-override trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(not (movie?))
|
||||
(not (level-hint-displayed?))
|
||||
(!= (-> self condition) 4)
|
||||
)
|
||||
(hide-hud)
|
||||
(level-hint-surpress!)
|
||||
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
|
||||
(when
|
||||
(and (hud-hidden?) (can-grab-display? (the-as process-taskable self)))
|
||||
(let
|
||||
((gp-0
|
||||
(new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
160
|
||||
0.0
|
||||
(font-color default)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-34 gp-0))
|
||||
(set! (-> v1-34 width) (the float 440))
|
||||
)
|
||||
(let ((v1-35 gp-0))
|
||||
(set! (-> v1-35 height) (the float 80))
|
||||
)
|
||||
(set! (-> gp-0 flags) (font-flags shadow kerning large))
|
||||
(print-game-text
|
||||
(lookup-text! *common-text* (game-text-id press-to-use) #f)
|
||||
gp-0
|
||||
#f
|
||||
128
|
||||
22
|
||||
)
|
||||
)
|
||||
(if
|
||||
(and
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))
|
||||
(let ((a1-7 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-7 from) self)
|
||||
(set! (-> a1-7 num-params) 2)
|
||||
(set! (-> a1-7 message) 'change-mode)
|
||||
(set! (-> a1-7 param 0) (the-as uint 'flut))
|
||||
(set! (-> a1-7 param 1) (the-as uint self))
|
||||
(send-event-function *target* a1-7)
|
||||
)
|
||||
)
|
||||
(go-virtual pickup (method-of-object self wait-for-return))
|
||||
)
|
||||
)
|
||||
)
|
||||
(flutflut-effect)
|
||||
(suspend)
|
||||
(let ((a0-26 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-26 param 0) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-26
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior flutflut) ja-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pickup (flutflut)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('draw)
|
||||
(ja-channel-set! 1)
|
||||
(let ((v1-3 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> v1-3 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> self root-override root-prim prim-core action)
|
||||
(the-as uint 2049)
|
||||
)
|
||||
(set! (-> self root-override root-prim prim-core offense) 4)
|
||||
(transform-post)
|
||||
)
|
||||
(('trans)
|
||||
(vector+!
|
||||
(the-as vector (-> arg3 param 0))
|
||||
(-> self root-override trans)
|
||||
(-> self extra-trans)
|
||||
)
|
||||
)
|
||||
(('touch 'attack)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ((arg0 (state flutflut)))
|
||||
((-> arg0 enter))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ((arg0 (state flutflut)))
|
||||
(ja-channel-set! 0)
|
||||
(ja-post)
|
||||
(while (zero? (ja-group-size))
|
||||
(if
|
||||
(or
|
||||
(not *target*)
|
||||
(<
|
||||
24576.0
|
||||
(vector-vector-distance
|
||||
(-> self root-override trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go arg0)
|
||||
)
|
||||
(flutflut-effect)
|
||||
(suspend)
|
||||
)
|
||||
(while
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
)
|
||||
(flutflut-effect)
|
||||
(suspend)
|
||||
)
|
||||
(let ((s5-0 (-> *display* base-frame-counter)))
|
||||
(until (>= (- (-> *display* base-frame-counter) s5-0) 300)
|
||||
(flutflut-effect)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(go arg0)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate wait-for-return (flutflut)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(if
|
||||
(and
|
||||
(or (= arg2 'touch) (= arg2 'attack))
|
||||
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-1 from) self)
|
||||
(set! (-> a1-1 num-params) 0)
|
||||
(set! (-> a1-1 message) 'end-mode)
|
||||
(send-event-function *target* a1-1)
|
||||
)
|
||||
)
|
||||
(go-virtual pickup (method-of-object self idle))
|
||||
)
|
||||
(the-as object (if (= arg2 'trans)
|
||||
(vector+!
|
||||
(the-as vector (-> arg3 param 0))
|
||||
(-> self root-override trans)
|
||||
(-> self extra-trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(blocking-plane-destroy)
|
||||
(blocking-plane-spawn (the-as curve-control (-> self path-flut)))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-set! 0)
|
||||
(ja-post)
|
||||
(while #t
|
||||
(if
|
||||
(not
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
)
|
||||
)
|
||||
(go-virtual idle)
|
||||
)
|
||||
(flutflut-effect)
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type flutflut
|
||||
(defmethod copy-defaults! flutflut ((obj flutflut) (arg0 res-lump))
|
||||
(let
|
||||
((s4-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) default-collision-reaction)
|
||||
(set! (-> s4-0 no-reaction) nothing)
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 6144.0 0.0 6144.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set-yaw-angle-clear-roll-pitch!
|
||||
(-> obj root-override)
|
||||
(res-lump-float arg0 'rotoffset)
|
||||
)
|
||||
(dummy-14 obj *flutflut-sg* '())
|
||||
(logior! (-> obj skel status) 256)
|
||||
(set! (-> obj draw shadow-ctrl) *flutflut-shadow-control*)
|
||||
(let ((v1-24 (-> obj node-list data)))
|
||||
(set! (-> v1-24 0 param0) cspace<-transformq+trans!)
|
||||
(set! (-> v1-24 0 param1) (the-as basic (-> obj root-override trans)))
|
||||
(set! (-> v1-24 0 param2) (the-as basic (-> obj extra-trans)))
|
||||
)
|
||||
(dotimes (s4-2 2)
|
||||
(let ((v1-27 (new 'process 'curve-control obj 'path (the float (+ s4-2 1)))))
|
||||
(set! (-> obj path-data s4-2) v1-27)
|
||||
(if v1-27
|
||||
(logior!
|
||||
(-> v1-27 flags)
|
||||
(path-control-flag display draw-line draw-point draw-text)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj condition) (res-lump-value arg0 'index int))
|
||||
(set!
|
||||
(-> obj fact)
|
||||
(new
|
||||
'process
|
||||
'fact-info
|
||||
obj
|
||||
(pickup-type eco-pill-random)
|
||||
(-> *FACT-bank* default-pill-inc)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj part)
|
||||
(create-launch-control (-> *part-group-id-table* 120) obj)
|
||||
)
|
||||
(set! (-> obj auto-get-off) #f)
|
||||
(dummy-60 (-> obj root-override) 40960.0 40960.0 #t (the-as uint 1))
|
||||
(set! (-> obj cell) (the-as handle #f))
|
||||
(blocking-plane-spawn
|
||||
(the-as
|
||||
curve-control
|
||||
(if
|
||||
(and
|
||||
*target*
|
||||
(logtest? (-> *target* control root-prim prim-core action) #x4000)
|
||||
)
|
||||
(-> obj path-flut)
|
||||
(-> obj path-target)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj sound)
|
||||
(new
|
||||
'process
|
||||
'ambient-sound
|
||||
(new 'static 'sound-spec
|
||||
:mask #x80
|
||||
:num 1.0
|
||||
:group #x1
|
||||
:sound-name-char
|
||||
(new 'static 'array uint8 16
|
||||
#x7a
|
||||
#x6f
|
||||
#x6f
|
||||
#x6d
|
||||
#x2d
|
||||
#x74
|
||||
#x65
|
||||
#x6c
|
||||
#x65
|
||||
#x70
|
||||
#x6f
|
||||
#x72
|
||||
#x74
|
||||
#x0
|
||||
#x0
|
||||
#x0
|
||||
)
|
||||
:volume #x400
|
||||
:fo-max 30
|
||||
)
|
||||
(-> obj root-override trans)
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj wait-for-start))
|
||||
(none)
|
||||
)
|
||||
@@ -0,0 +1,345 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type assistant-lavatube-start
|
||||
(deftype assistant-lavatube-start (process-taskable)
|
||||
()
|
||||
:heap-base #x110
|
||||
:method-count-assert 53
|
||||
:size-assert #x17c
|
||||
:flag-assert #x350110017c
|
||||
)
|
||||
|
||||
;; definition for method 3 of type assistant-lavatube-start
|
||||
(defmethod inspect assistant-lavatube-start ((obj assistant-lavatube-start))
|
||||
(let ((t9-0 (method-of-type process-taskable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "assistant-lavatube-start"
|
||||
:bounds (new 'static 'vector :w 16384.0)
|
||||
:version #x6
|
||||
:shadow 2
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) 3)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 4095996000.0)
|
||||
(set! *assistant-lavatube-start-sg* v1-1)
|
||||
)
|
||||
|
||||
;; definition for method 32 of type assistant-lavatube-start
|
||||
(defmethod
|
||||
play-anim!
|
||||
assistant-lavatube-start
|
||||
((obj assistant-lavatube-start) (arg0 symbol))
|
||||
(case (current-status (-> obj tasks))
|
||||
((6)
|
||||
(if arg0
|
||||
(close-current! (-> obj tasks))
|
||||
)
|
||||
(new 'static 'spool-anim
|
||||
:name "assistant-lavatube-start-resolution"
|
||||
:index 5
|
||||
:parts 11
|
||||
:command-list
|
||||
'(
|
||||
((the binteger 232)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 491)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 866)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 1061) joint "camera")
|
||||
)
|
||||
)
|
||||
)
|
||||
(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 31 of type assistant-lavatube-start
|
||||
(defmethod get-art-elem assistant-lavatube-start ((obj assistant-lavatube-start))
|
||||
(-> obj draw art-group data 3)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate hidden (assistant-lavatube-start)
|
||||
: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)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
(and
|
||||
(not
|
||||
(closed?
|
||||
(-> self tasks)
|
||||
(game-task lavatube-start)
|
||||
(task-status need-reward-speech)
|
||||
)
|
||||
)
|
||||
(not (movie?))
|
||||
(not (level-hint-displayed?))
|
||||
(not
|
||||
(and
|
||||
*cheat-mode*
|
||||
(logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))
|
||||
)
|
||||
)
|
||||
(<
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as int (-> self state-time))
|
||||
)
|
||||
3000
|
||||
)
|
||||
)
|
||||
)
|
||||
(hide-hud)
|
||||
(kill-current-level-hint '() '(sidekick voicebox) 'exit)
|
||||
(when
|
||||
(and
|
||||
(seen-text? *game-info* (game-text-id assistant-lavatube-powercell-hint))
|
||||
(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))
|
||||
)
|
||||
(let ((v1-27 gp-0))
|
||||
(set! (-> v1-27 height) (the float 80))
|
||||
)
|
||||
(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 lavatube-powercell-req-text)
|
||||
#f
|
||||
)
|
||||
gp-0
|
||||
#f
|
||||
128
|
||||
22
|
||||
)
|
||||
)
|
||||
)
|
||||
(level-hint-spawn
|
||||
(game-text-id assistant-lavatube-powercell-hint)
|
||||
"asstva74"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (assistant-lavatube-start)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(when (!= (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
(get-art-elem self)
|
||||
)
|
||||
(ja-channel-push! 1 15)
|
||||
(let ((v1-5 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> v1-5 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((f30-0 2.0)
|
||||
(v1-7 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-8 (the-as number (logior #x3f800000 v1-7)))
|
||||
)
|
||||
(countdown (gp-0 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-8)))) 2))
|
||||
(let ((a0-12 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-12 frame-group) (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> a0-12 param 0)
|
||||
(the float (+ (-> (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-12 param 1) 1.0)
|
||||
(set! (-> a0-12 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-12
|
||||
(if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(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!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 15)
|
||||
(let ((a0-16 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-16 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
)
|
||||
(set!
|
||||
(-> a0-16 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-16 param 1) 1.0)
|
||||
(set! (-> a0-16 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-16
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-17 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-17 param 0)
|
||||
(the float (+ (-> a0-17 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-17 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-17
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 39 of type assistant-lavatube-start
|
||||
(defmethod
|
||||
should-display?
|
||||
assistant-lavatube-start
|
||||
((obj assistant-lavatube-start))
|
||||
(first-any (-> obj tasks) #t)
|
||||
(= (current-status (-> obj tasks)) 6)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type assistant-lavatube-start
|
||||
(defmethod
|
||||
copy-defaults!
|
||||
assistant-lavatube-start
|
||||
((obj assistant-lavatube-start) (arg0 res-lump))
|
||||
(dummy-40
|
||||
obj
|
||||
arg0
|
||||
*assistant-lavatube-start-sg*
|
||||
3
|
||||
29
|
||||
(new 'static 'vector :w 4096.0)
|
||||
5
|
||||
)
|
||||
(set! (-> obj tasks) (get-task-control (game-task lavatube-start)))
|
||||
(first-any (-> obj tasks) #t)
|
||||
(dummy-42 obj)
|
||||
(none)
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,287 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *cavecrystal-engine*, type engine
|
||||
(define *cavecrystal-engine* (new 'loading-level 'engine 'cavecrystal 64))
|
||||
|
||||
;; definition of type cavecrystal-light
|
||||
(deftype cavecrystal-light (structure)
|
||||
((next cavecrystal-light :offset-assert 0)
|
||||
(crystal-id int32 :offset-assert 4)
|
||||
(intensity float :offset-assert 8)
|
||||
(fade-start float :offset-assert 12)
|
||||
(fade-end float :offset-assert 16)
|
||||
(crystal-handle handle :offset-assert 24)
|
||||
(trans vector :inline :offset-assert 32)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x30
|
||||
:flag-assert #x900000030
|
||||
)
|
||||
|
||||
;; definition for method 3 of type cavecrystal-light
|
||||
(defmethod inspect cavecrystal-light ((obj cavecrystal-light))
|
||||
(format #t "[~8x] ~A~%" obj 'cavecrystal-light)
|
||||
(format #t "~Tnext: #<cavecrystal-light @ #x~X>~%" (-> obj next))
|
||||
(format #t "~Tcrystal-id: ~D~%" (-> obj crystal-id))
|
||||
(format #t "~Tintensity: ~f~%" (-> obj intensity))
|
||||
(format #t "~Tfade-start: ~f~%" (-> obj fade-start))
|
||||
(format #t "~Tfade-end: ~f~%" (-> obj fade-end))
|
||||
(format #t "~Tcrystal-handle: ~D~%" (-> obj crystal-handle))
|
||||
(format #t "~Ttrans: #<vector @ #x~X>~%" (-> obj trans))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type cavecrystal-light-control
|
||||
(deftype cavecrystal-light-control (basic)
|
||||
((active-count int32 :offset-assert 4)
|
||||
(head cavecrystal-light :offset-assert 8)
|
||||
(last-known-valid-time uint64 :offset-assert 16)
|
||||
(crystal cavecrystal-light 7 :inline :offset-assert 32)
|
||||
)
|
||||
:method-count-assert 15
|
||||
:size-assert #x170
|
||||
:flag-assert #xf00000170
|
||||
(:methods
|
||||
(TODO-RENAME-9 (_type_ int float cavecrystal) object 9)
|
||||
(TODO-RENAME-10 (_type_ vector) float 10)
|
||||
(inc-intensites! (_type_) int 11)
|
||||
(TODO-RENAME-12 (_type_) symbol 12)
|
||||
(create-connection! (_type_ cavecrystal res-lump (function object object object object object) object object) connection 13)
|
||||
(execute-connections (_type_) int 14)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type cavecrystal-light-control
|
||||
(defmethod inspect cavecrystal-light-control ((obj cavecrystal-light-control))
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~Tactive-count: ~D~%" (-> obj active-count))
|
||||
(format #t "~Thead: #<cavecrystal-light @ #x~X>~%" (-> obj head))
|
||||
(format #t "~Tlast-known-valid-time: ~D~%" (-> obj last-known-valid-time))
|
||||
(format #t "~Tcrystal[7] @ #x~X~%" (-> obj crystal))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for symbol *cavecrystal-light-control*, type cavecrystal-light-control
|
||||
(define
|
||||
*cavecrystal-light-control*
|
||||
(new 'static 'cavecrystal-light-control :head #f)
|
||||
)
|
||||
|
||||
;; definition for function cavecrystal-light-control-default-callback
|
||||
;; INFO: Return type mismatch vector vs none.
|
||||
;; Used lq/sq
|
||||
(defun
|
||||
cavecrystal-light-control-default-callback
|
||||
((arg0 (pointer process-drawable)) (arg1 int) (arg2 float))
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(let ((v1-1 (-> arg0 0 node-list)))
|
||||
(if (and (>= arg1 0) (nonzero? v1-1))
|
||||
(vector<-cspace! s5-0 (-> v1-1 data arg1))
|
||||
(set! (-> s5-0 quad) (-> arg0 0 root trans quad))
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 w) arg2)
|
||||
(let ((f0-1 (TODO-RENAME-10 *cavecrystal-light-control* s5-0))
|
||||
(a2-2 (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
|
||||
(a1-5 (new 'static 'vector :x 0.05 :y 0.05 :z 0.05 :w 1.0))
|
||||
)
|
||||
(vector-lerp! (-> arg0 0 draw color-mult) a1-5 a2-2 f0-1)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type cavecrystal-light-control
|
||||
(defmethod
|
||||
create-connection!
|
||||
cavecrystal-light-control
|
||||
((obj cavecrystal-light-control)
|
||||
(arg0 cavecrystal)
|
||||
(arg1 res-lump)
|
||||
(arg2 (function object object object object object))
|
||||
(arg3 object)
|
||||
(arg4 object)
|
||||
)
|
||||
(if (nonzero? (res-lump-value arg1 'crystal-light uint128))
|
||||
(add-connection
|
||||
*cavecrystal-engine*
|
||||
arg0
|
||||
arg2
|
||||
(process->ppointer arg0)
|
||||
arg3
|
||||
arg4
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type cavecrystal-light-control
|
||||
(defmethod
|
||||
execute-connections
|
||||
cavecrystal-light-control
|
||||
((obj cavecrystal-light-control))
|
||||
(execute-connections *cavecrystal-engine* #f)
|
||||
)
|
||||
|
||||
;; definition for method 12 of type cavecrystal-light-control
|
||||
(defmethod
|
||||
TODO-RENAME-12
|
||||
cavecrystal-light-control
|
||||
((obj cavecrystal-light-control))
|
||||
(let ((v1-0 (-> obj last-known-valid-time))
|
||||
(a1-1 (-> *display* base-frame-counter))
|
||||
)
|
||||
(when (!= v1-0 a1-1)
|
||||
(set! (-> obj last-known-valid-time) (the-as uint a1-1))
|
||||
(cond
|
||||
((zero? v1-0)
|
||||
(set! (-> obj active-count) 0)
|
||||
(set! (-> obj head) #f)
|
||||
(dotimes (v1-1 7)
|
||||
(let ((a1-5 (-> obj crystal v1-1)))
|
||||
(set! (-> a1-5 next) #f)
|
||||
(set! (-> a1-5 crystal-id) v1-1)
|
||||
(set! (-> a1-5 intensity) 0.0)
|
||||
(set! (-> a1-5 fade-start) 20480.0)
|
||||
(set! (-> a1-5 fade-end) 286720.0)
|
||||
(set! (-> a1-5 crystal-handle) (the-as handle #f))
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
(else
|
||||
(when (> (-> obj active-count) 0)
|
||||
(let ((v1-4 (the-as cavecrystal-light #f))
|
||||
(a1-7 (-> obj head))
|
||||
)
|
||||
(while a1-7
|
||||
(cond
|
||||
((handle->process (-> a1-7 crystal-handle))
|
||||
(set! v1-4 a1-7)
|
||||
(set! a1-7 (-> a1-7 next))
|
||||
)
|
||||
(else
|
||||
(let ((a2-4 (-> a1-7 next)))
|
||||
(+! (-> obj active-count) -1)
|
||||
(set! (-> a1-7 next) #f)
|
||||
(set! (-> a1-7 intensity) 0.0)
|
||||
(if v1-4
|
||||
(set! (-> obj head) a2-4)
|
||||
(set! (-> v1-4 next) a2-4)
|
||||
)
|
||||
(set! a1-7 a2-4)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type cavecrystal-light-control
|
||||
(defmethod
|
||||
inc-intensites!
|
||||
cavecrystal-light-control
|
||||
((obj cavecrystal-light-control))
|
||||
(set! (-> obj head) #f)
|
||||
(let ((a1-0 (the-as cavecrystal-light #f))
|
||||
(v0-0 0)
|
||||
)
|
||||
(dotimes (v1-0 7)
|
||||
(let ((a2-3 (-> obj crystal v1-0)))
|
||||
(set! (-> a2-3 next) #f)
|
||||
(when (< 0.0 (-> a2-3 intensity))
|
||||
(+! v0-0 1)
|
||||
(if a1-0
|
||||
(set! (-> a1-0 next) a2-3)
|
||||
(set! (-> obj head) a2-3)
|
||||
)
|
||||
(set! a1-0 a2-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj active-count) v0-0)
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 9 of type cavecrystal-light-control
|
||||
;; Used lq/sq
|
||||
(defmethod
|
||||
TODO-RENAME-9
|
||||
cavecrystal-light-control
|
||||
((obj cavecrystal-light-control) (arg0 int) (arg1 float) (arg2 cavecrystal))
|
||||
(TODO-RENAME-12 obj)
|
||||
(when (or (< arg0 0) (>= arg0 7))
|
||||
(format 0 "ERROR: Bogus cavecrystal id!~%")
|
||||
(return #f)
|
||||
)
|
||||
(let ((s3-0 (-> obj crystal arg0)))
|
||||
(cond
|
||||
((and (< 0.0 arg1) (>= 0.0 (-> s3-0 intensity)))
|
||||
(+! (-> obj active-count) 1)
|
||||
(set! (-> s3-0 intensity) arg1)
|
||||
(set! (-> s3-0 crystal-handle) (process->handle arg2))
|
||||
(set! (-> s3-0 trans quad) (-> arg2 root-override trans quad))
|
||||
(inc-intensites! obj)
|
||||
)
|
||||
((and (>= 0.0 arg1) (< 0.0 (-> s3-0 intensity)))
|
||||
(+! (-> obj active-count) -1)
|
||||
(set! (-> s3-0 intensity) 0.0)
|
||||
(inc-intensites! obj)
|
||||
)
|
||||
((< 0.0 arg1)
|
||||
(set! (-> s3-0 intensity) arg1)
|
||||
)
|
||||
)
|
||||
(TODO-RENAME-10 *palette-fade-controls* (+ arg0 1) arg1 0.0 (-> s3-0 trans))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type cavecrystal-light-control
|
||||
(defmethod
|
||||
TODO-RENAME-10
|
||||
cavecrystal-light-control
|
||||
((obj cavecrystal-light-control) (arg0 vector))
|
||||
(TODO-RENAME-12 obj)
|
||||
(let ((s5-1 (-> obj head))
|
||||
(f30-0 0.0)
|
||||
)
|
||||
(when s5-1
|
||||
(until (not s5-1)
|
||||
(let* ((f26-0 (-> s5-1 fade-start))
|
||||
(f28-0 (- (-> s5-1 fade-end) f26-0))
|
||||
(f1-1
|
||||
(fmin
|
||||
(fmax
|
||||
0.0
|
||||
(-
|
||||
(- (vector-vector-distance (-> s5-1 trans) arg0) (-> arg0 w))
|
||||
f26-0
|
||||
)
|
||||
)
|
||||
f28-0
|
||||
)
|
||||
)
|
||||
(f0-7 (* (- 1.0 (/ f1-1 f28-0)) (-> s5-1 intensity)))
|
||||
)
|
||||
(if (< f30-0 f0-7)
|
||||
(set! f30-0 f0-7)
|
||||
)
|
||||
)
|
||||
(set! s5-1 (-> s5-1 next))
|
||||
)
|
||||
(set! f30-0 (fmin 2.0 f30-0))
|
||||
)
|
||||
f30-0
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,241 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type mother-spider-leg
|
||||
(deftype mother-spider-leg (process-drawable)
|
||||
((gravity float :offset-assert 176)
|
||||
(transv vector :inline :offset-assert 192)
|
||||
(facing-rot vector :inline :offset-assert 208)
|
||||
(facing-rotv vector :inline :offset-assert 224)
|
||||
)
|
||||
:heap-base #x80
|
||||
:method-count-assert 20
|
||||
:size-assert #xf0
|
||||
:flag-assert #x14008000f0
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mother-spider-leg
|
||||
(defmethod inspect mother-spider-leg ((obj mother-spider-leg))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tgravity: ~f~%" (-> obj gravity))
|
||||
(format #t "~T~Ttransv: #<vector @ #x~X>~%" (-> obj transv))
|
||||
(format #t "~T~Tfacing-rot: #<vector @ #x~X>~%" (-> obj facing-rot))
|
||||
(format #t "~T~Tfacing-rotv: #<vector @ #x~X>~%" (-> obj facing-rotv))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type mother-spider-thread
|
||||
(deftype mother-spider-thread (structure)
|
||||
((joint-index int32 :offset-assert 0)
|
||||
(trans-u float :offset-assert 4)
|
||||
(swing-arc-u float :offset-assert 8)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #xc
|
||||
:flag-assert #x90000000c
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mother-spider-thread
|
||||
(defmethod inspect mother-spider-thread ((obj mother-spider-thread))
|
||||
(format #t "[~8x] ~A~%" obj 'mother-spider-thread)
|
||||
(format #t "~Tjoint-index: ~D~%" (-> obj joint-index))
|
||||
(format #t "~Ttrans-u: ~f~%" (-> obj trans-u))
|
||||
(format #t "~Tswing-arc-u: ~f~%" (-> obj swing-arc-u))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type mother-spider-leg-info
|
||||
(deftype mother-spider-leg-info (structure)
|
||||
((joint-index0 int32 :offset-assert 0)
|
||||
(joint-index1 int32 :offset-assert 4)
|
||||
(cprim-index int32 :offset-assert 8)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #xc
|
||||
:flag-assert #x90000000c
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mother-spider-leg-info
|
||||
(defmethod inspect mother-spider-leg-info ((obj mother-spider-leg-info))
|
||||
(format #t "[~8x] ~A~%" obj 'mother-spider-leg-info)
|
||||
(format #t "~Tjoint-index0: ~D~%" (-> obj joint-index0))
|
||||
(format #t "~Tjoint-index1: ~D~%" (-> obj joint-index1))
|
||||
(format #t "~Tcprim-index: ~D~%" (-> obj cprim-index))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type mother-spider-history
|
||||
(deftype mother-spider-history (structure)
|
||||
((trans vector :inline :offset-assert 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mother-spider-history
|
||||
(defmethod inspect mother-spider-history ((obj mother-spider-history))
|
||||
(format #t "[~8x] ~A~%" obj 'mother-spider-history)
|
||||
(format #t "~Ttrans: #<vector @ #x~X>~%" (-> obj trans))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type mother-spider-history-array
|
||||
(deftype mother-spider-history-array (inline-array-class)
|
||||
((data mother-spider-history :dynamic :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mother-spider-history-array
|
||||
(defmethod
|
||||
inspect
|
||||
mother-spider-history-array
|
||||
((obj mother-spider-history-array))
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~Tlength: ~D~%" (-> obj length))
|
||||
(format #t "~Tallocated-length: ~D~%" (-> obj allocated-length))
|
||||
(format #t "~Tdata[0] @ #x~X~%" (-> obj data))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> mother-spider-history-array heap-base) (the-as uint 16))
|
||||
|
||||
;; definition of type mother-spider
|
||||
(deftype mother-spider (process-drawable)
|
||||
((mode uint64 :offset-assert 176)
|
||||
(damage int32 :offset-assert 184)
|
||||
(baby-count int32 :offset-assert 188)
|
||||
(max-baby-count int32 :offset-assert 192)
|
||||
(birthing-counter int32 :offset-assert 196)
|
||||
(spit-counter int32 :offset-assert 200)
|
||||
(leg-socket-part-mask int32 :offset-assert 204)
|
||||
(dist-from-anchor float :offset-assert 208)
|
||||
(targ-dist-from-anchor float :offset-assert 212)
|
||||
(idle-dist-from-anchor float :offset-assert 216)
|
||||
(player-sticky-dist-from-anchor float :offset-assert 220)
|
||||
(max-dist-from-anchor float :offset-assert 224)
|
||||
(activate-xz-dist float :offset-assert 228)
|
||||
(deactivate-xz-dist float :offset-assert 232)
|
||||
(max-spit-xz-dist float :offset-assert 236)
|
||||
(max-swing-radius float :offset-assert 240)
|
||||
(spin-vel float :offset-assert 244)
|
||||
(thread-speed float :offset-assert 248)
|
||||
(thread-vel float :offset-assert 252)
|
||||
(history mother-spider-history-array :offset-assert 256)
|
||||
(history-len int32 :offset-assert 260)
|
||||
(history-next-index int32 :offset-assert 264)
|
||||
(hit? symbol :offset-assert 268)
|
||||
(going-up? symbol :offset-assert 272)
|
||||
(check-z-thresh? symbol :offset-assert 276)
|
||||
(activate-z-thresh float :offset-assert 280)
|
||||
(deactivate-z-thresh float :offset-assert 284)
|
||||
(spawned-time uint64 :offset-assert 288)
|
||||
(last-update-time uint64 :offset-assert 296)
|
||||
(spin-time uint64 :offset-assert 304)
|
||||
(last-spit-time uint64 :offset-assert 312)
|
||||
(last-player-in-air-time uint64 :offset-assert 320)
|
||||
(started-birthing-time uint64 :offset-assert 328)
|
||||
(neck joint-mod :offset-assert 336)
|
||||
(player-attack-id uint64 :offset-assert 344)
|
||||
(leg-socket-part-time uint64 6 :offset-assert 352)
|
||||
(orient-rot vector :inline :offset-assert 400)
|
||||
(anchor-trans vector :inline :offset-assert 416)
|
||||
(thread-min-trans vector :inline :offset-assert 432)
|
||||
(swing-pos vector :inline :offset-assert 448)
|
||||
(swing-base-pos vector :inline :offset-assert 464)
|
||||
(swing-vel vector :inline :offset-assert 480)
|
||||
)
|
||||
:heap-base #x180
|
||||
:method-count-assert 32
|
||||
:size-assert #x1f0
|
||||
:flag-assert #x20018001f0
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(dummy-21 () none 21)
|
||||
(dummy-22 () none 22)
|
||||
(dummy-23 () none 23)
|
||||
(dummy-24 () none 24)
|
||||
(dummy-25 () none 25)
|
||||
(dummy-26 () none 26)
|
||||
(dummy-27 () none 27)
|
||||
(dummy-28 () none 28)
|
||||
(dummy-29 () none 29)
|
||||
(dummy-30 () none 30)
|
||||
(dummy-31 () none 31)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mother-spider
|
||||
(defmethod inspect mother-spider ((obj mother-spider))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tmode: ~D~%" (-> obj mode))
|
||||
(format #t "~T~Tdamage: ~D~%" (-> obj damage))
|
||||
(format #t "~T~Tbaby-count: ~D~%" (-> obj baby-count))
|
||||
(format #t "~T~Tmax-baby-count: ~D~%" (-> obj max-baby-count))
|
||||
(format #t "~T~Tbirthing-counter: ~D~%" (-> obj birthing-counter))
|
||||
(format #t "~T~Tspit-counter: ~D~%" (-> obj spit-counter))
|
||||
(format #t "~T~Tleg-socket-part-mask: ~D~%" (-> obj leg-socket-part-mask))
|
||||
(format #t "~T~Tdist-from-anchor: ~f~%" (-> obj dist-from-anchor))
|
||||
(format #t "~T~Ttarg-dist-from-anchor: ~f~%" (-> obj targ-dist-from-anchor))
|
||||
(format #t "~T~Tidle-dist-from-anchor: ~f~%" (-> obj idle-dist-from-anchor))
|
||||
(format
|
||||
#t
|
||||
"~T~Tplayer-sticky-dist-from-anchor: ~f~%"
|
||||
(-> obj player-sticky-dist-from-anchor)
|
||||
)
|
||||
(format #t "~T~Tmax-dist-from-anchor: ~f~%" (-> obj max-dist-from-anchor))
|
||||
(format #t "~T~Tactivate-xz-dist: ~f~%" (-> obj activate-xz-dist))
|
||||
(format #t "~T~Tdeactivate-xz-dist: ~f~%" (-> obj deactivate-xz-dist))
|
||||
(format #t "~T~Tmax-spit-xz-dist: ~f~%" (-> obj max-spit-xz-dist))
|
||||
(format #t "~T~Tmax-swing-radius: ~f~%" (-> obj max-swing-radius))
|
||||
(format #t "~T~Tspin-vel: ~f~%" (-> obj spin-vel))
|
||||
(format #t "~T~Tthread-speed: ~f~%" (-> obj thread-speed))
|
||||
(format #t "~T~Tthread-vel: ~f~%" (-> obj thread-vel))
|
||||
(format #t "~T~Thistory: ~A~%" (-> obj history))
|
||||
(format #t "~T~Thistory-len: ~D~%" (-> obj history-len))
|
||||
(format #t "~T~Thistory-next-index: ~D~%" (-> obj history-next-index))
|
||||
(format #t "~T~Thit?: ~A~%" (-> obj hit?))
|
||||
(format #t "~T~Tgoing-up?: ~A~%" (-> obj going-up?))
|
||||
(format #t "~T~Tcheck-z-thresh?: ~A~%" (-> obj check-z-thresh?))
|
||||
(format #t "~T~Tactivate-z-thresh: ~f~%" (-> obj activate-z-thresh))
|
||||
(format #t "~T~Tdeactivate-z-thresh: ~f~%" (-> obj deactivate-z-thresh))
|
||||
(format #t "~T~Tspawned-time: ~D~%" (-> obj spawned-time))
|
||||
(format #t "~T~Tlast-update-time: ~D~%" (-> obj last-update-time))
|
||||
(format #t "~T~Tspin-time: ~D~%" (-> obj spin-time))
|
||||
(format #t "~T~Tlast-spit-time: ~D~%" (-> obj last-spit-time))
|
||||
(format
|
||||
#t
|
||||
"~T~Tlast-player-in-air-time: ~D~%"
|
||||
(-> obj last-player-in-air-time)
|
||||
)
|
||||
(format #t "~T~Tstarted-birthing-time: ~D~%" (-> obj started-birthing-time))
|
||||
(format #t "~T~Tneck: ~A~%" (-> obj neck))
|
||||
(format #t "~T~Tplayer-attack-id: ~D~%" (-> obj player-attack-id))
|
||||
(format
|
||||
#t
|
||||
"~T~Tleg-socket-part-time[6] @ #x~X~%"
|
||||
(-> obj leg-socket-part-time)
|
||||
)
|
||||
(format #t "~T~Torient-rot: #<vector @ #x~X>~%" (-> obj orient-rot))
|
||||
(format #t "~T~Tanchor-trans: #<vector @ #x~X>~%" (-> obj anchor-trans))
|
||||
(format
|
||||
#t
|
||||
"~T~Tthread-min-trans: #<vector @ #x~X>~%"
|
||||
(-> obj thread-min-trans)
|
||||
)
|
||||
(format #t "~T~Tswing-pos: #<vector @ #x~X>~%" (-> obj swing-pos))
|
||||
(format #t "~T~Tswing-base-pos: #<vector @ #x~X>~%" (-> obj swing-base-pos))
|
||||
(format #t "~T~Tswing-vel: #<vector @ #x~X>~%" (-> obj swing-vel))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
@@ -0,0 +1,601 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type mother-spider-proj
|
||||
(deftype mother-spider-proj (projectile)
|
||||
((parent-process (pointer projectile) :offset 12)
|
||||
(facing-dir vector :inline :offset-assert 416)
|
||||
)
|
||||
:heap-base #x140
|
||||
:method-count-assert 29
|
||||
:size-assert #x1b0
|
||||
:flag-assert #x1d014001b0
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mother-spider-proj
|
||||
(defmethod inspect mother-spider-proj ((obj mother-spider-proj))
|
||||
(let ((t9-0 (method-of-type projectile inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tfacing-dir: #<vector @ #x~X>~%" (-> obj facing-dir))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 326)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 48
|
||||
:duration #x12c
|
||||
:linger-duration #x5dc
|
||||
:name "group-mother-spider-proj-fly"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 48
|
||||
(sp-item 718 :flags (launch-asap) :binding 716)
|
||||
(sp-item 716 :flags (start-dead) :binding 717)
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
(sp-item 717 :flags (start-dead launch-asap))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 12288.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 718)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 9
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-scale-x (meters 0.01))
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-int spt-timer 1200)
|
||||
(sp-cpuinfo-flags bit3)
|
||||
(sp-func spt-func 'sparticle-track-root-prim)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 716)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 22
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-scale-x (meters 1.0))
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 96.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-g 64.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-b 96.0 64.0 1.0)
|
||||
(sp-flt spt-a 128.0)
|
||||
(sp-flt spt-scalevel-x (meters -0.006666667))
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-r -1.0666667)
|
||||
(sp-flt spt-fade-g -1.0666667)
|
||||
(sp-flt spt-fade-b 0.0)
|
||||
(sp-int spt-timer 150)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 81)
|
||||
(sp-launcher-by-id spt-next-launcher 720)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 0.1))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 720)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 4
|
||||
(sp-flt spt-fade-r 0.0)
|
||||
(sp-flt spt-fade-g 0.0)
|
||||
(sp-flt spt-fade-b 0.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 717)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 25
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
|
||||
(sp-rnd-flt spt-num 1.0 5.0 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.1) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 96.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-g 64.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-b 96.0 64.0 1.0)
|
||||
(sp-flt spt-a 128.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.006666667) (meters 0.0033333334) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters -0.0026666666))
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-r -1.0666667)
|
||||
(sp-flt spt-fade-g -1.0666667)
|
||||
(sp-flt spt-fade-b 0.0)
|
||||
(sp-flt spt-accel-y -2.7306666)
|
||||
(sp-flt spt-friction 0.97)
|
||||
(sp-int-plain-rnd spt-timer 30 119 1)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 60)
|
||||
(sp-launcher-by-id spt-next-launcher 720)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-radius (meters 0.0) (meters 0.4) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 327)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 3
|
||||
:duration #x5
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-mother-spider-proj-hit"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 3
|
||||
(sp-item 722)
|
||||
(sp-item 723)
|
||||
(sp-item 724)
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 722)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 24
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
|
||||
(sp-flt spt-num 64.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.2) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 192.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-g 64.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-b 96.0 64.0 1.0)
|
||||
(sp-flt spt-a 128.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.10666667) (meters 0.10666667) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters -0.006666667))
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-r -0.7111111)
|
||||
(sp-flt spt-fade-g -0.7111111)
|
||||
(sp-flt spt-fade-b 0.0)
|
||||
(sp-flt spt-accel-y -0.68266666)
|
||||
(sp-rnd-flt spt-friction 0.85 0.05 1.0)
|
||||
(sp-int-plain-rnd spt-timer 30 119 1)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 90)
|
||||
(sp-launcher-by-id spt-next-launcher 720)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-radius (meters 0.0) (meters 0.4) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 724)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 21
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-flt spt-num 6.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 96.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-g 64.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-b 96.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-a 32.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-flt spt-fade-r -0.35555556)
|
||||
(sp-flt spt-fade-g -0.35555556)
|
||||
(sp-flt spt-fade-b 0.0)
|
||||
(sp-flt spt-fade-a -0.30476192)
|
||||
(sp-rnd-flt spt-accel-y -0.68266666 0.68266666 1.0)
|
||||
(sp-int spt-timer 210)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 60)
|
||||
(sp-launcher-by-id spt-next-launcher 720)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 180.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 723)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 13
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 6.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 128.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-g 64.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-b 128.0 32.0 1.0)
|
||||
(sp-flt spt-a 96.0)
|
||||
(sp-flt spt-fade-a -4.8)
|
||||
(sp-int spt-timer 15)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 328)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 1
|
||||
:duration #x5
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-mother-spider-proj-die"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 1 (sp-item 722))
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 24 of type mother-spider-proj
|
||||
(defmethod dummy-24 mother-spider-proj ((obj mother-spider-proj))
|
||||
(with-pp
|
||||
(spawn
|
||||
(-> obj part)
|
||||
(the-as vector (-> obj root-override root-prim prim-core))
|
||||
)
|
||||
(let ((s5-0 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
|
||||
(set! (-> s5-0 command) (sound-command set-param))
|
||||
(set! (-> s5-0 id) (-> obj sound-id))
|
||||
(let ((a1-1 (-> obj root-override trans)))
|
||||
(let ((s4-0 pp))
|
||||
(when (= a1-1 #t)
|
||||
(if
|
||||
(and
|
||||
s4-0
|
||||
(type-type? (-> s4-0 type) process-drawable)
|
||||
(nonzero? (-> (the-as process-drawable s4-0) root))
|
||||
)
|
||||
(set! a1-1 (-> (the-as process-drawable s4-0) root trans))
|
||||
(set! a1-1 (the-as vector #f))
|
||||
)
|
||||
)
|
||||
)
|
||||
(sound-trans-convert (-> s5-0 parms trans) a1-1)
|
||||
)
|
||||
(set! (-> s5-0 parms mask) (the-as uint 32))
|
||||
(-> s5-0 id)
|
||||
)
|
||||
(let
|
||||
((f0-5
|
||||
(*
|
||||
5120.0
|
||||
(+
|
||||
0.9
|
||||
(*
|
||||
0.1
|
||||
(cos
|
||||
(* 873.81335 (the float (mod (-> *display* base-frame-counter) 75)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(find-ground-and-draw-shadow
|
||||
(-> obj root-override trans)
|
||||
(the-as vector #f)
|
||||
f0-5
|
||||
(the-as uint 1)
|
||||
(the-as process #f)
|
||||
0.0
|
||||
81920.0
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function mother-spider-proj-update-velocity
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun mother-spider-proj-update-velocity ((arg0 mother-spider-proj))
|
||||
(when
|
||||
(>=
|
||||
(vector-vector-xz-distance
|
||||
(-> arg0 parent-process 0 root-override trans)
|
||||
(-> arg0 target)
|
||||
)
|
||||
(vector-vector-xz-distance
|
||||
(-> arg0 parent-process 0 root-override trans)
|
||||
(-> arg0 root-override trans)
|
||||
)
|
||||
)
|
||||
(let
|
||||
((s3-1
|
||||
(vector-!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> arg0 target)
|
||||
(-> arg0 root-override trans)
|
||||
)
|
||||
)
|
||||
(s4-0 (new 'stack-no-clear 'vector))
|
||||
(s5-0
|
||||
(vector-normalize-copy!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(-> arg0 root-override transv)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (logtest? (-> arg0 root-override status) 4)
|
||||
(vector-flatten! s3-1 s3-1 (-> arg0 root-override local-normal))
|
||||
)
|
||||
(vector-normalize-copy! s4-0 s3-1 1.0)
|
||||
(let ((s3-2 (new 'stack-no-clear 'vector)))
|
||||
(matrix-from-two-vectors-max-angle-partial!
|
||||
(the-as matrix s3-2)
|
||||
s5-0
|
||||
s4-0
|
||||
(* (-> arg0 max-turn) (-> *display* seconds-per-frame))
|
||||
(-> arg0 tween)
|
||||
)
|
||||
(vector-matrix*! s5-0 s5-0 (the-as matrix s3-2))
|
||||
)
|
||||
(vector-normalize! s5-0 1.0)
|
||||
(vector-float*! (-> arg0 root-override transv) s5-0 (-> arg0 max-speed))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 26 of type mother-spider-proj
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod dummy-26 mother-spider-proj ((obj mother-spider-proj))
|
||||
(let
|
||||
((s5-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s5-0 reaction) projectile-collision-reaction)
|
||||
(set! (-> s5-0 no-reaction) nothing)
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> s4-0 prim-core collide-as) (the-as uint 1024))
|
||||
(set! (-> s4-0 collide-with) (the-as uint 2973))
|
||||
(set! (-> s4-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s4-0 prim-core offense) 3)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 1228.8)
|
||||
)
|
||||
(dummy-46 s5-0)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(dummy-50 s5-0)
|
||||
(set! (-> s5-0 max-iteration-count) (the-as uint 2))
|
||||
(set! (-> s5-0 event-self) 'touched)
|
||||
(set! (-> obj root-override) s5-0)
|
||||
)
|
||||
(logclear! (-> obj mask) (process-mask enemy))
|
||||
(logclear! (-> obj mask) (process-mask crate))
|
||||
(logclear! (-> obj mask) (process-mask attackable))
|
||||
(set! (-> obj mask) (logior (process-mask projectile) (-> obj mask)))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 27 of type mother-spider-proj
|
||||
;; INFO: Return type mismatch sound-id vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod dummy-27 mother-spider-proj ((obj mother-spider-proj))
|
||||
(set!
|
||||
(-> obj part)
|
||||
(create-launch-control (-> *part-group-id-table* 326) obj)
|
||||
)
|
||||
(set! (-> obj max-speed) 32768.0)
|
||||
(set! (-> obj update-velocity) mother-spider-proj-update-velocity)
|
||||
(set! (-> obj max-turn) 5916.4443)
|
||||
(set! (-> obj tween) 0.02)
|
||||
(set! (-> obj attack-mode) 'mother-spider-proj)
|
||||
(set! (-> obj timeout) (the-as uint 1200))
|
||||
(set! (-> obj target quad) (-> (target-pos 0) quad))
|
||||
(set! (-> obj target y) (+ 4915.2 (-> obj target y)))
|
||||
(set! (-> obj target-base quad) (-> obj target quad))
|
||||
(set!
|
||||
(-> obj sound-id)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "mother-track")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "mother-fire")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 28 of type mother-spider-proj
|
||||
;; INFO: Return type mismatch vector vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod dummy-28 mother-spider-proj ((obj mother-spider-proj))
|
||||
(when (and *target* (zero? (logand (-> *target* state-flags) #x80f8)))
|
||||
(let ((gp-0 (-> obj target)))
|
||||
(set! (-> gp-0 quad) (-> (target-pos 0) quad))
|
||||
(set! (-> gp-0 y) (+ 4915.2 (-> gp-0 y)))
|
||||
(let ((f0-2 (vector-vector-distance gp-0 (-> obj root-override trans)))
|
||||
(a2-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(if (>= 0.0 f0-2)
|
||||
(set! f0-2 409.6)
|
||||
)
|
||||
(set! (-> a2-0 quad) (-> *target* control transv quad))
|
||||
(set! (-> a2-0 y) 0.0)
|
||||
(let ((f0-3 (/ f0-2 (* 32768.0 (-> *display* seconds-per-frame)))))
|
||||
(vector+float*! gp-0 gp-0 a2-0 (* f0-3 (-> *display* seconds-per-frame)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate projectile-impact (mother-spider-proj)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when gp-0
|
||||
(let ((t9-1 (method-of-type part-tracker activate)))
|
||||
(t9-1
|
||||
(the-as part-tracker gp-0)
|
||||
*entity-pool*
|
||||
'part-tracker
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
gp-0
|
||||
part-tracker-init
|
||||
(-> *part-group-id-table* 327)
|
||||
-1
|
||||
#f
|
||||
#f
|
||||
#f
|
||||
(-> self root-override trans)
|
||||
)
|
||||
(-> gp-0 ppointer)
|
||||
)
|
||||
)
|
||||
(if (nonzero? (-> self sound-id))
|
||||
(sound-stop (-> self sound-id))
|
||||
)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "mother-hit")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
(suspend)
|
||||
(go-virtual projectile-die)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate projectile-dissipate (mother-spider-proj)
|
||||
:virtual #t
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when gp-0
|
||||
(let ((t9-1 (method-of-type part-tracker activate)))
|
||||
(t9-1
|
||||
(the-as part-tracker gp-0)
|
||||
*entity-pool*
|
||||
'part-tracker
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
gp-0
|
||||
part-tracker-init
|
||||
(-> *part-group-id-table* 328)
|
||||
-1
|
||||
#f
|
||||
#f
|
||||
#f
|
||||
(-> self root-override trans)
|
||||
)
|
||||
(-> gp-0 ppointer)
|
||||
)
|
||||
)
|
||||
(if (nonzero? (-> self sound-id))
|
||||
(sound-stop (-> self sound-id))
|
||||
)
|
||||
(suspend)
|
||||
(go-virtual projectile-die)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,351 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *spider-jump-mods*, type surface
|
||||
(define
|
||||
*spider-jump-mods*
|
||||
(new 'static 'surface
|
||||
:name 'jump
|
||||
:turnv 131072.0
|
||||
:turnvv 18204.445
|
||||
:tiltv 32768.0
|
||||
:tiltvv 131072.0
|
||||
:transv-max 49152.0
|
||||
:target-speed 49152.0
|
||||
:seek0 0.6
|
||||
:seek90 0.6
|
||||
:seek180 0.6
|
||||
:fric 0.2
|
||||
:nonlin-fric-dist 1.0
|
||||
:slip-factor 1.0
|
||||
:slide-factor 1.0
|
||||
:slope-up-factor 1.0
|
||||
:slope-down-factor 1.0
|
||||
:slope-slip-angle 1.0
|
||||
:impact-fric 1.0
|
||||
:bend-factor 1.0
|
||||
:bend-speed 1.0
|
||||
:alignv 1.0
|
||||
:slope-up-traction 1.0
|
||||
:align-speed 1.0
|
||||
:mode 'air
|
||||
:flags #xc00
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type spiderwebs
|
||||
(deftype spiderwebs (process-drawable)
|
||||
((spring-height meters :offset-assert 176)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 20
|
||||
:size-assert #xb4
|
||||
:flag-assert #x14005000b4
|
||||
)
|
||||
|
||||
;; definition for method 3 of type spiderwebs
|
||||
(defmethod inspect spiderwebs ((obj spiderwebs))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tspring-height: (meters ~m)~%" (-> obj spring-height))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-2
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "spiderwebs"
|
||||
:bounds (new 'static 'vector :w 14336.0)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-2 jgeo) 0)
|
||||
(set! (-> v1-2 janim) -1)
|
||||
(set! (-> v1-2 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-2 lod-dist 0) 4095996000.0)
|
||||
(set! *spiderwebs-sg* v1-2)
|
||||
)
|
||||
|
||||
;; definition for function spiderwebs-default-event-handler
|
||||
;; INFO: Return type mismatch none vs object.
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
|
||||
(defbehavior
|
||||
spiderwebs-default-event-handler spiderwebs
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (cond
|
||||
((= v1-0 'bonk)
|
||||
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-1 from) self)
|
||||
(set! (-> a1-1 num-params) 3)
|
||||
(set! (-> a1-1 message) 'jump)
|
||||
(set!
|
||||
(-> a1-1 param 0)
|
||||
(the-as uint (-> self spring-height))
|
||||
)
|
||||
(set!
|
||||
(-> a1-1 param 1)
|
||||
(the-as uint (-> self spring-height))
|
||||
)
|
||||
(set! (-> a1-1 param 2) (the-as uint *spider-jump-mods*))
|
||||
(if (send-event-function arg0 a1-1)
|
||||
(go spiderwebs-bounce)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= v1-0 'touch)
|
||||
(when (= (-> arg0 type) target)
|
||||
(let* ((a0-8 (target-pos 0))
|
||||
(f1-1 (- (-> a0-8 y) (-> self root trans y)))
|
||||
)
|
||||
(if
|
||||
(and
|
||||
(>= 2048.0 (fabs f1-1))
|
||||
(and
|
||||
(>=
|
||||
13516.8
|
||||
(vector-vector-distance a0-8 (-> self root trans))
|
||||
)
|
||||
(let
|
||||
((a1-3 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-3 from) self)
|
||||
(set! (-> a1-3 num-params) 3)
|
||||
(set! (-> a1-3 message) 'jump)
|
||||
(set!
|
||||
(-> a1-3 param 0)
|
||||
(the-as uint (-> self spring-height))
|
||||
)
|
||||
(set!
|
||||
(-> a1-3 param 1)
|
||||
(the-as uint (-> self spring-height))
|
||||
)
|
||||
(set!
|
||||
(-> a1-3 param 2)
|
||||
(the-as uint *spider-jump-mods*)
|
||||
)
|
||||
(send-event-function arg0 a1-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go spiderwebs-bounce)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= v1-0 'attack)
|
||||
(if
|
||||
(and
|
||||
(= (-> arg3 param 1) 'flop)
|
||||
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-4 from) self)
|
||||
(set! (-> a1-4 num-params) 3)
|
||||
(set! (-> a1-4 message) 'jump)
|
||||
(set!
|
||||
(-> a1-4 param 0)
|
||||
(the-as uint (-> self spring-height))
|
||||
)
|
||||
(set!
|
||||
(-> a1-4 param 1)
|
||||
(the-as uint (-> self spring-height))
|
||||
)
|
||||
(set! (-> a1-4 param 2) (the-as uint *spider-jump-mods*))
|
||||
(send-event-function arg0 a1-4)
|
||||
)
|
||||
)
|
||||
(go spiderwebs-bounce)
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate spiderwebs-idle (spiderwebs)
|
||||
:event
|
||||
spiderwebs-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(logior! (-> self mask) (process-mask actor-pause))
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
gp-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> gp-0 frame-num) 0.0)
|
||||
)
|
||||
(transform-post)
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate spiderwebs-bounce (spiderwebs)
|
||||
:code
|
||||
(behavior ()
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(sound-play-by-name
|
||||
(static-sound-name "web-tramp")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-1 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
)
|
||||
(set! (-> gp-1 param 0) (ja-aframe 10.0 0))
|
||||
(set! (-> gp-1 param 1) 1.0)
|
||||
(set! (-> gp-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
gp-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((gp-2 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-2 param 0) (ja-aframe 10.0 0))
|
||||
(set! (-> gp-2 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
gp-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self event-hook) (-> spiderwebs-idle event))
|
||||
(let ((gp-3 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-3 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
)
|
||||
(set!
|
||||
(-> gp-3 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-3 param 1) 1.0)
|
||||
(set! (-> gp-3 frame-num) (ja-aframe 10.0 0))
|
||||
(joint-control-channel-group!
|
||||
gp-3
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-10 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-10 param 0)
|
||||
(the float (+ (-> a0-10 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-10 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-10
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(go spiderwebs-idle)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior spiderwebs) transform-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type spiderwebs
|
||||
(defmethod copy-defaults! spiderwebs ((obj spiderwebs) (arg0 res-lump))
|
||||
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
|
||||
(let
|
||||
((s4-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) default-collision-reaction)
|
||||
(set! (-> s4-0 no-reaction) nothing)
|
||||
(let
|
||||
((s3-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set! (-> s3-0 transform-index) 3)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 14336.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) 13926.4)
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(dummy-14 obj *spiderwebs-sg* '())
|
||||
(set!
|
||||
(-> obj spring-height)
|
||||
(res-lump-float arg0 'spring-height :default 45056.0)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((a0-11 (-> obj skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-11 param 0)
|
||||
(the float (+ (-> a0-11 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-11 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-11
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(nav-mesh-connect obj (-> obj root) (the-as nav-control #f))
|
||||
(transform-post)
|
||||
(go spiderwebs-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+1027
File diff suppressed because it is too large
Load Diff
@@ -1717,7 +1717,7 @@
|
||||
(run-now-in-process
|
||||
s5-0
|
||||
manipy-init
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
(-> obj entity)
|
||||
*bonelurker-sg*
|
||||
#f
|
||||
@@ -2343,7 +2343,11 @@
|
||||
(run-now-in-process
|
||||
s5-0
|
||||
manipy-init
|
||||
(-> self root trans)
|
||||
(->
|
||||
self
|
||||
root-override
|
||||
trans
|
||||
)
|
||||
gp-2
|
||||
*evilbro-sg*
|
||||
#f
|
||||
@@ -2445,7 +2449,11 @@
|
||||
(run-now-in-process
|
||||
s5-1
|
||||
manipy-init
|
||||
(-> self root trans)
|
||||
(->
|
||||
self
|
||||
root-override
|
||||
trans
|
||||
)
|
||||
gp-4
|
||||
*evilsis-sg*
|
||||
#f
|
||||
@@ -2734,7 +2742,7 @@
|
||||
(run-now-in-process
|
||||
s5-0
|
||||
manipy-init
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
(-> obj entity)
|
||||
*bonelurker-sg*
|
||||
#f
|
||||
@@ -2778,7 +2786,7 @@
|
||||
(run-now-in-process
|
||||
s5-1
|
||||
manipy-init
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
(-> obj entity)
|
||||
*darkecocan-sg*
|
||||
#f
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type ram
|
||||
(deftype ram (process-drawable)
|
||||
((ram-id int32 :offset-assert 176)
|
||||
(give-fuel-cell? symbol :offset-assert 180)
|
||||
(give-fuel-cell-anim spool-anim :offset-assert 184)
|
||||
(part2 sparticle-launch-control :offset-assert 188)
|
||||
(orient-ry float :offset-assert 192)
|
||||
(fuel-cell-dest-pos vector :inline :offset-assert 208)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 23
|
||||
:size-assert #xe0
|
||||
:flag-assert #x17007000e0
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(dummy-21 () none 21)
|
||||
(dummy-22 () none 22)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type ram
|
||||
(defmethod inspect ram ((obj ram))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tram-id: ~D~%" (-> obj ram-id))
|
||||
(format #t "~T~Tgive-fuel-cell?: ~A~%" (-> obj give-fuel-cell?))
|
||||
(format #t "~T~Tgive-fuel-cell-anim: ~A~%" (-> obj give-fuel-cell-anim))
|
||||
(format #t "~T~Tpart2: ~A~%" (-> obj part2))
|
||||
(format #t "~T~Torient-ry: ~f~%" (-> obj orient-ry))
|
||||
(format
|
||||
#t
|
||||
"~T~Tfuel-cell-dest-pos: #<vector @ #x~X>~%"
|
||||
(-> obj fuel-cell-dest-pos)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type snowball-info
|
||||
(deftype snowball-info (basic)
|
||||
((entity basic :offset-assert 4)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x8
|
||||
:flag-assert #x900000008
|
||||
)
|
||||
|
||||
;; definition for method 3 of type snowball-info
|
||||
(defmethod inspect snowball-info ((obj snowball-info))
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~Tentity: ~A~%" (-> obj entity))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type snowball-bank
|
||||
(deftype snowball-bank (basic)
|
||||
()
|
||||
:method-count-assert 9
|
||||
:size-assert #x4
|
||||
:flag-assert #x900000004
|
||||
)
|
||||
|
||||
;; definition for method 3 of type snowball-bank
|
||||
(defmethod inspect snowball-bank ((obj snowball-bank))
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for symbol *SNOWBALL-bank*, type snowball-bank
|
||||
(define *SNOWBALL-bank* (the-as snowball-bank L24))
|
||||
|
||||
;; definition for function target-snowball-post
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior target-snowball-post target ()
|
||||
(let ((gp-0 (the int (-> *display* time-ratio))))
|
||||
(set-time-ratios *display* 1.0)
|
||||
(countdown (s5-0 gp-0)
|
||||
(set! (-> self control unknown-int40) s5-0)
|
||||
(flag-setup)
|
||||
(build-conversions (-> self control transv))
|
||||
(reverse-conversions (-> self control transv))
|
||||
(post-flag-setup)
|
||||
)
|
||||
(set-time-ratios *display* (the float gp-0))
|
||||
)
|
||||
(rot->dir-targ! (-> self control))
|
||||
(ja-post)
|
||||
(joint-points)
|
||||
(do-target-shadow)
|
||||
(target-powerup-process)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate target-snowball-start (target)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(the-as object (cond
|
||||
((and (= arg2 'query) (= (-> arg3 param 0) 'mode))
|
||||
'snowball
|
||||
)
|
||||
((let ((v1-3 arg2))
|
||||
(= v1-3 'end-mode)
|
||||
)
|
||||
enter-state
|
||||
(-> *TARGET-bank* duck-jump-height-min)
|
||||
(-> *TARGET-bank* duck-jump-height-max)
|
||||
(go target-jump)
|
||||
)
|
||||
(else
|
||||
(target-generic-event-handler arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(when (!= (-> self next-state name) 'target-snowball)
|
||||
(let ((v1-1 (-> self manipy)))
|
||||
(when v1-1
|
||||
(deactivate (-> v1-1 0))
|
||||
(set! (-> self manipy) (the-as (pointer manipy) #f))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> self control root-prim prim-core action)
|
||||
(logand -4097 (-> self control root-prim prim-core action))
|
||||
)
|
||||
(set! (-> self control unknown-surface00) *walk-mods*)
|
||||
(set!
|
||||
(-> self control dynam gravity-max)
|
||||
(-> self control unknown-dynamics00 gravity-max)
|
||||
)
|
||||
(set!
|
||||
(-> self control dynam gravity-length)
|
||||
(-> self control unknown-dynamics00 gravity-length)
|
||||
)
|
||||
(target-collide-set! 'normal 0.0)
|
||||
(set! (-> self control reaction) target-collision-reaction)
|
||||
(target-exit)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ((arg0 handle))
|
||||
(target-exit)
|
||||
(set! *display-profile* #f)
|
||||
(set! *display-entity-errors* #f)
|
||||
(if (zero? (-> self snowball))
|
||||
(set! (-> self snowball) (new 'process 'snowball-info))
|
||||
)
|
||||
(set! (-> self snowball entity) #f)
|
||||
(let ((a0-2 (handle->process arg0)))
|
||||
(if a0-2
|
||||
(set! (-> self snowball entity) (-> a0-2 entity))
|
||||
)
|
||||
)
|
||||
(reset-target-state #t)
|
||||
(set! (-> self control transv quad) (the-as uint128 0))
|
||||
(set! (-> self control unknown-float01) 0.0)
|
||||
(let* ((a0-6 (-> self control))
|
||||
(t9-3 (method-of-object a0-6 TODO-RENAME-28))
|
||||
)
|
||||
(new 'static 'vector :y 4096.0 :w 1.0)
|
||||
(t9-3 a0-6)
|
||||
)
|
||||
(logior! (-> self control root-prim prim-core action) 4096)
|
||||
(ja-channel-set! 1)
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
gp-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> gp-1 frame-num) 0.0)
|
||||
)
|
||||
(remove-exit)
|
||||
(go target-snowball)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior target) target-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate target-snowball (target)
|
||||
:event
|
||||
(-> target-snowball-start event)
|
||||
:exit
|
||||
(-> target-snowball-start exit)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(target-snowball-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
+1500
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,991 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type square-platform
|
||||
(deftype square-platform (baseplat)
|
||||
((plat-id int32 :offset-assert 228)
|
||||
(pos-u float :offset-assert 232)
|
||||
(water-entity entity-actor :offset-assert 236)
|
||||
(splash-counter int32 :offset-assert 240)
|
||||
(start-splash-time uint64 :offset-assert 248)
|
||||
(part2 sparticle-launch-control :offset-assert 256)
|
||||
(part3 sparticle-launch-control :offset-assert 260)
|
||||
(part4 sparticle-launch-control :offset-assert 264)
|
||||
(up-pos vector :inline :offset-assert 272)
|
||||
(down-pos vector :inline :offset-assert 288)
|
||||
)
|
||||
:heap-base #xc0
|
||||
:method-count-assert 28
|
||||
:size-assert #x130
|
||||
:flag-assert #x1c00c00130
|
||||
(:methods
|
||||
(TODO-RENAME-27 (_type_ symbol) none 27)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type square-platform
|
||||
(defmethod inspect square-platform ((obj square-platform))
|
||||
(let ((t9-0 (method-of-type baseplat inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tplat-id: ~D~%" (-> obj plat-id))
|
||||
(format #t "~T~Tpos-u: ~f~%" (-> obj pos-u))
|
||||
(format #t "~T~Twater-entity: ~A~%" (-> obj water-entity))
|
||||
(format #t "~T~Tsplash-counter: ~D~%" (-> obj splash-counter))
|
||||
(format #t "~T~Tstart-splash-time: ~D~%" (-> obj start-splash-time))
|
||||
(format #t "~T~Tpart2: ~A~%" (-> obj part2))
|
||||
(format #t "~T~Tpart3: ~A~%" (-> obj part3))
|
||||
(format #t "~T~Tpart4: ~A~%" (-> obj part4))
|
||||
(format #t "~T~Tup-pos: #<vector @ #x~X>~%" (-> obj up-pos))
|
||||
(format #t "~T~Tdown-pos: #<vector @ #x~X>~%" (-> obj down-pos))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "square-platform"
|
||||
:bounds
|
||||
(new 'static 'vector :y -45056.0 :w 32768.0)
|
||||
:max-lod 1
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) 3)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 81920.0)
|
||||
(set! (-> v1-1 mgeo 1) (the-as uint 2))
|
||||
(set! (-> v1-1 lod-dist 1) 4095996000.0)
|
||||
(set! *square-platform-sg* v1-1)
|
||||
)
|
||||
|
||||
;; definition of type square-platform-button
|
||||
(deftype square-platform-button (basebutton)
|
||||
()
|
||||
:heap-base #x90
|
||||
:method-count-assert 32
|
||||
:size-assert #x100
|
||||
:flag-assert #x2000900100
|
||||
)
|
||||
|
||||
;; definition for method 3 of type square-platform-button
|
||||
(defmethod inspect square-platform-button ((obj square-platform-button))
|
||||
(let ((t9-0 (method-of-type basebutton inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type square-platform-master
|
||||
(deftype square-platform-master (process-drawable)
|
||||
((button-id int32 :offset-assert 176)
|
||||
(plat-id int32 :offset-assert 180)
|
||||
(plat-mask uint32 :offset-assert 184)
|
||||
(plat-id-dir int32 :offset-assert 188)
|
||||
(wiggled? symbol :offset-assert 192)
|
||||
(timeout uint64 :offset-assert 200)
|
||||
(last-plat-activated-time uint64 :offset-assert 208)
|
||||
(delay-til-wiggle uint64 :offset-assert 216)
|
||||
(ticker ticky :inline :offset-assert 224)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 20
|
||||
:size-assert #x100
|
||||
:flag-assert #x1400900100
|
||||
)
|
||||
|
||||
;; definition for method 3 of type square-platform-master
|
||||
(defmethod inspect square-platform-master ((obj square-platform-master))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tbutton-id: ~D~%" (-> obj button-id))
|
||||
(format #t "~T~Tplat-id: ~D~%" (-> obj plat-id))
|
||||
(format #t "~T~Tplat-mask: ~D~%" (-> obj plat-mask))
|
||||
(format #t "~T~Tplat-id-dir: ~D~%" (-> obj plat-id-dir))
|
||||
(format #t "~T~Twiggled?: ~A~%" (-> obj wiggled?))
|
||||
(format #t "~T~Ttimeout: ~D~%" (-> obj timeout))
|
||||
(format
|
||||
#t
|
||||
"~T~Tlast-plat-activated-time: ~D~%"
|
||||
(-> obj last-plat-activated-time)
|
||||
)
|
||||
(format #t "~T~Tdelay-til-wiggle: ~D~%" (-> obj delay-til-wiggle))
|
||||
(format #t "~T~Tticker: #<ticky @ #x~X>~%" (-> obj ticker))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 437)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 2
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-square-platform-breach-splash"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 2
|
||||
(sp-item 2222 :flags (is-3d))
|
||||
(sp-item 2315 :flags (is-3d))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 2222)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 21
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
|
||||
(sp-flt spt-num 8.0)
|
||||
(sp-rnd-flt spt-x (meters 0.0) (meters 3.0) 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 3.5) (meters 3.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 128.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-b 128.0 64.0 1.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.013333334) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 3.2)
|
||||
(sp-int spt-timer 600)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int-plain-rnd spt-next-time 10 29 1)
|
||||
(sp-launcher-by-id spt-next-launcher 2316)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 20.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 2316)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a -0.17066666)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 2315)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 21
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
|
||||
(sp-flt spt-num 8.0)
|
||||
(sp-rnd-flt spt-x (meters 3.0) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 128.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-g 128.0 64.0 1.0)
|
||||
(sp-rnd-flt spt-b 128.0 64.0 1.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.013333334) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 3.2)
|
||||
(sp-int spt-timer 600)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int-plain-rnd spt-next-time 10 29 1)
|
||||
(sp-launcher-by-id spt-next-launcher 2316)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 20.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 438)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 1
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name
|
||||
"group-square-platform-submerge-bubbles"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 1 (sp-item 2223))
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 2223)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 20
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
|
||||
(sp-flt spt-num 2.0)
|
||||
(sp-rnd-flt spt-x (meters -4.0) (meters 8.0) 1.0)
|
||||
(sp-rnd-flt spt-z -16384.0 32768.0 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 0.15) (meters 0.05) 1.0)
|
||||
(sp-rnd-flt spt-scale-y (meters 0.125) (meters 0.025) 1.0)
|
||||
(sp-flt spt-r 255.0)
|
||||
(sp-flt spt-g 255.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.006666667) 1.0)
|
||||
(sp-flt spt-fade-a 0.8)
|
||||
(sp-int spt-timer 900)
|
||||
(sp-cpuinfo-flags bit2 bit3 bit14)
|
||||
(sp-flt spt-userdata -663298.44)
|
||||
(sp-func spt-func 'check-water-level-above-and-die)
|
||||
(sp-int-plain-rnd spt-next-time 30 29 1)
|
||||
(sp-launcher-by-id spt-next-launcher 2317)
|
||||
(sp-flt spt-rotate-y (degrees 0.0))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 2317)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a 0.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 439)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 2
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-square-platform-submerge-splash"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 2
|
||||
(sp-item 2222 :flags (is-3d))
|
||||
(sp-item 2315 :flags (is-3d))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 27 of type square-platform
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod TODO-RENAME-27 square-platform ((obj square-platform) (arg0 symbol))
|
||||
(local-vars (v0-3 sound-id) (sv-48 int))
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> s4-0 quad) (-> obj root-override trans quad))
|
||||
(set! (-> s4-0 y) (+ -20480.0 (-> s4-0 y)))
|
||||
(let* ((v1-1 (-> obj water-entity))
|
||||
(a0-4 (if v1-1
|
||||
(-> v1-1 extra process)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (not a0-4)
|
||||
(set!
|
||||
(-> obj water-entity)
|
||||
(entity-actor-lookup (-> obj entity) 'alt-actor 0)
|
||||
)
|
||||
(let ((v1-4 (-> obj water-entity)))
|
||||
(set! a0-4 (if v1-4
|
||||
(-> v1-4 extra process)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (the-as water-vol a0-4)
|
||||
(let ((f0-2 (get-ripple-height (the-as water-vol a0-4) s4-0))
|
||||
(s3-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s3-0 quad) (-> s4-0 quad))
|
||||
(set! (-> s3-0 y) f0-2)
|
||||
(if (zero? (-> obj start-splash-time))
|
||||
(set! v0-3 (cond
|
||||
(arg0
|
||||
(if (>= (-> s4-0 y) f0-2)
|
||||
(set!
|
||||
(-> obj start-splash-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
)
|
||||
v0-3
|
||||
)
|
||||
(else
|
||||
(when (>= f0-2 (-> s4-0 y))
|
||||
(set!
|
||||
(-> obj start-splash-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
(let ((s2-0 sound-play-by-name)
|
||||
(s1-0
|
||||
(make-u128
|
||||
#x6873616c
|
||||
(the-as uint #x70732d656772616c)
|
||||
)
|
||||
)
|
||||
(s0-0 (new-sound-id))
|
||||
)
|
||||
(set! sv-48 1024)
|
||||
(let
|
||||
((a3-0
|
||||
(the int (* 1524.0 (rand-vu-float-range -0.8 0.8)))
|
||||
)
|
||||
(t0-0 0)
|
||||
(t1-0 1)
|
||||
(t2-0 #t)
|
||||
)
|
||||
(s2-0
|
||||
(the-as sound-name s1-0)
|
||||
s0-0
|
||||
sv-48
|
||||
a3-0
|
||||
t0-0
|
||||
(the-as uint t1-0)
|
||||
(the-as vector t2-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (nonzero? (-> obj start-splash-time))
|
||||
(cond
|
||||
(arg0
|
||||
(let ((v1-21 (-> obj splash-counter)))
|
||||
(when (< v1-21 2)
|
||||
(set! (-> obj splash-counter) (+ v1-21 1))
|
||||
(spawn (-> obj part2) s3-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(spawn (-> obj part3) s4-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (not arg0)
|
||||
(let ((v1-25 (-> obj splash-counter)))
|
||||
(when (< v1-25 2)
|
||||
(set! (-> obj splash-counter) (+ v1-25 1))
|
||||
(spawn (-> obj part4) s3-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate square-platform-lowered (square-platform)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (when (= v1-0 'trigger)
|
||||
(if
|
||||
(and
|
||||
(= (-> arg0 type) square-platform-master)
|
||||
(=
|
||||
(-> (the-as square-platform-master arg0) plat-id)
|
||||
(-> self plat-id)
|
||||
)
|
||||
)
|
||||
(go square-platform-rising)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self pos-u) 0.0)
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate square-platform-rising (square-platform)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (cond
|
||||
((or (= v1-0 'bonk) (= v1-0 'bounce))
|
||||
(dummy-22 self)
|
||||
)
|
||||
((= v1-0 'untrigger)
|
||||
(go square-platform-lowering)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self start-splash-time) (the-as uint 0))
|
||||
(set! (-> self splash-counter) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self pos-u)
|
||||
(seek-with-smooth
|
||||
(-> self pos-u)
|
||||
1.0
|
||||
(/ 1.0 (* 0.75 (-> *display* frames-per-second)))
|
||||
0.8
|
||||
0.01
|
||||
)
|
||||
)
|
||||
(vector-lerp!
|
||||
(-> self basetrans)
|
||||
(-> self down-pos)
|
||||
(-> self up-pos)
|
||||
(-> self pos-u)
|
||||
)
|
||||
(plat-trans)
|
||||
(when (= (-> self pos-u) 1.0)
|
||||
(plat-post)
|
||||
(go square-platform-raised)
|
||||
)
|
||||
(TODO-RENAME-27 self #t)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior square-platform) plat-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate square-platform-raised (square-platform)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (cond
|
||||
((or (= v1-0 'bonk) (= v1-0 'bounce))
|
||||
(dummy-22 self)
|
||||
)
|
||||
((= v1-0 'untrigger)
|
||||
(go square-platform-lowering)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(the-as (function none :behavior square-platform) plat-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self pos-u) 1.0)
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior square-platform) plat-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate square-platform-lowering (square-platform)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (cond
|
||||
((or (= v1-0 'bonk) (= v1-0 'bounce))
|
||||
(dummy-22 self)
|
||||
)
|
||||
((= v1-0 'trigger)
|
||||
(go square-platform-rising)
|
||||
)
|
||||
((= v1-0 'touch)
|
||||
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-8 from) self)
|
||||
(set! (-> a1-8 num-params) 1)
|
||||
(set! (-> a1-8 message) 'no-look-around)
|
||||
(set! (-> a1-8 param 0) (the-as uint 450))
|
||||
(send-event-function arg0 a1-8)
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self start-splash-time) (the-as uint 0))
|
||||
(set! (-> self splash-counter) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self pos-u)
|
||||
(seek-with-smooth
|
||||
(-> self pos-u)
|
||||
0.0
|
||||
(/ 1.0 (* 0.75 (-> *display* frames-per-second)))
|
||||
0.8
|
||||
0.01
|
||||
)
|
||||
)
|
||||
(vector-lerp!
|
||||
(-> self basetrans)
|
||||
(-> self down-pos)
|
||||
(-> self up-pos)
|
||||
(-> self pos-u)
|
||||
)
|
||||
(plat-trans)
|
||||
(when (= (-> self pos-u) 0.0)
|
||||
(plat-post)
|
||||
(go square-platform-lowered)
|
||||
)
|
||||
(TODO-RENAME-27 self #f)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior square-platform) plat-post)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type square-platform
|
||||
(defmethod deactivate square-platform ((obj square-platform))
|
||||
(if (nonzero? (-> obj part2))
|
||||
(kill-and-free-particles (-> obj part2))
|
||||
)
|
||||
(if (nonzero? (-> obj part3))
|
||||
(kill-and-free-particles (-> obj part3))
|
||||
)
|
||||
(if (nonzero? (-> obj part4))
|
||||
(kill-and-free-particles (-> obj part4))
|
||||
)
|
||||
((method-of-type process-drawable deactivate) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 7 of type square-platform
|
||||
;; INFO: Return type mismatch baseplat vs square-platform.
|
||||
(defmethod relocate square-platform ((obj square-platform) (arg0 int))
|
||||
(if (nonzero? (-> obj part2))
|
||||
(&+! (-> obj part2) arg0)
|
||||
)
|
||||
(if (nonzero? (-> obj part3))
|
||||
(&+! (-> obj part3) arg0)
|
||||
)
|
||||
(if (nonzero? (-> obj part4))
|
||||
(&+! (-> obj part4) arg0)
|
||||
)
|
||||
(the-as
|
||||
square-platform
|
||||
((the-as
|
||||
(function baseplat int baseplat)
|
||||
(find-parent-method square-platform 7)
|
||||
)
|
||||
obj
|
||||
arg0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type square-platform
|
||||
;; Used lq/sq
|
||||
(defmethod copy-defaults! square-platform ((obj square-platform) (arg0 res-lump))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag))
|
||||
(set! (-> obj pos-u) 0.0)
|
||||
(let
|
||||
((s4-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) default-collision-reaction)
|
||||
(set! (-> s4-0 no-reaction) nothing)
|
||||
(dummy-29 s4-0 1)
|
||||
(let
|
||||
((s3-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 3))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set! (-> s3-0 transform-index) 3)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 -24576.0 0.0 32768.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj link) (new 'process 'actor-link-info obj))
|
||||
(set! (-> obj plat-id) (actor-count-before (-> obj link)))
|
||||
(dummy-14 obj *square-platform-sg* '())
|
||||
(dummy-21 obj)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s4-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s4-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 3))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s4-1 frame-num) 0.0)
|
||||
)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let*
|
||||
((v1-32 (res-lump-data (-> obj entity) 'distance pointer :tag-ptr (& sv-16)))
|
||||
(f30-0 (if (and v1-32 (> (the-as int (-> sv-16 elt-count)) 0))
|
||||
(-> (the-as (pointer float) v1-32))
|
||||
-8192.0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-32 (new 'static 'res-tag))
|
||||
(let*
|
||||
((v1-35
|
||||
(res-lump-data (-> obj entity) 'distance pointer :tag-ptr (& sv-32))
|
||||
)
|
||||
(f0-10 (if (and v1-35 (< 1 (the-as int (-> sv-32 elt-count))))
|
||||
(-> (the-as (pointer float) v1-35) 1)
|
||||
16384.0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj down-pos quad) (-> obj root-override trans quad))
|
||||
(+! (-> obj down-pos y) f30-0)
|
||||
(set! (-> obj up-pos quad) (-> obj root-override trans quad))
|
||||
(+! (-> obj up-pos y) f0-10)
|
||||
)
|
||||
)
|
||||
(set! (-> obj basetrans quad) (-> obj down-pos quad))
|
||||
(set! (-> obj root-override trans quad) (-> obj basetrans quad))
|
||||
(set!
|
||||
(-> obj part2)
|
||||
(create-launch-control (-> *part-group-id-table* 437) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj part3)
|
||||
(create-launch-control (-> *part-group-id-table* 438) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj part4)
|
||||
(create-launch-control (-> *part-group-id-table* 439) obj)
|
||||
)
|
||||
(set! (-> obj water-entity) (entity-actor-lookup arg0 'alt-actor 0))
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(go square-platform-lowered)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate square-platform-master-idle (square-platform-master)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (when (= v1-0 'trigger)
|
||||
(when (= (-> arg0 type) square-platform-button)
|
||||
(set!
|
||||
(-> self button-id)
|
||||
(-> (the-as square-platform-button arg0) button-id)
|
||||
)
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(process-entity-status! self (entity-perm-status bit-3) #t)
|
||||
(go square-platform-master-activate)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate square-platform-master-activate (square-platform-master)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! (-> self wiggled?) #f)
|
||||
(sleep (-> self ticker) (-> self timeout))
|
||||
(set! (-> self plat-id) -1)
|
||||
(send-to-all (-> self link) 'trigger)
|
||||
(set! (-> self plat-id) 0)
|
||||
(let ((gp-0 1))
|
||||
(let ((v1-7 (-> self button-id)))
|
||||
(cond
|
||||
((zero? v1-7)
|
||||
(let* ((s5-0 (get-process *default-dead-pool* sunkencam #x4000))
|
||||
(a0-4 (when s5-0
|
||||
(let ((t9-3 (method-of-type sunkencam activate)))
|
||||
(t9-3
|
||||
(the-as sunkencam s5-0)
|
||||
self
|
||||
'sunkencam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
s5-0
|
||||
pov-camera-init-by-other
|
||||
(-> self root trans)
|
||||
*sunkencam-sg*
|
||||
"qbert-show-door-open"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> s5-0 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> (the-as sunkencam (-> a0-4 0)) seq) (the-as uint 3))
|
||||
)
|
||||
)
|
||||
((= v1-7 1)
|
||||
(let* ((gp-1 (get-process *default-dead-pool* sunkencam #x4000))
|
||||
(v1-13 (when gp-1
|
||||
(let ((t9-6 (method-of-type sunkencam activate)))
|
||||
(t9-6
|
||||
(the-as sunkencam gp-1)
|
||||
self
|
||||
'sunkencam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
gp-1
|
||||
pov-camera-init-by-other
|
||||
(-> self root trans)
|
||||
*sunkencam-sg*
|
||||
"qbert-show-door-open"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> (the-as sunkencam (-> v1-13 0)) seq) (the-as uint 4))
|
||||
)
|
||||
(set! gp-0 -1)
|
||||
)
|
||||
((= v1-7 2)
|
||||
(let* ((s5-1 (get-process *default-dead-pool* sunkencam #x4000))
|
||||
(a0-17 (when s5-1
|
||||
(let ((t9-9 (method-of-type sunkencam activate)))
|
||||
(t9-9
|
||||
(the-as sunkencam s5-1)
|
||||
self
|
||||
'sunkencam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
s5-1
|
||||
pov-camera-init-by-other
|
||||
(-> self root trans)
|
||||
*sunkencam-sg*
|
||||
"qbert-show-door-open"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> s5-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> (the-as sunkencam (-> a0-17 0)) seq) (the-as uint 5))
|
||||
)
|
||||
)
|
||||
((= v1-7 3)
|
||||
(let* ((gp-2 (get-process *default-dead-pool* sunkencam #x4000))
|
||||
(v1-24 (when gp-2
|
||||
(let ((t9-12 (method-of-type sunkencam activate)))
|
||||
(t9-12
|
||||
(the-as sunkencam gp-2)
|
||||
self
|
||||
'sunkencam
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
gp-2
|
||||
pov-camera-init-by-other
|
||||
(-> self root trans)
|
||||
*sunkencam-sg*
|
||||
"qbert-show-door-open"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-2 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> (the-as sunkencam (-> v1-24 0)) seq) (the-as uint 6))
|
||||
)
|
||||
(set! gp-0 -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (< gp-0 0)
|
||||
(set! (-> self plat-id) 32)
|
||||
)
|
||||
(set! (-> self plat-id-dir) gp-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self mask) (process-mask actor-pause))
|
||||
(process-entity-status! self (entity-perm-status bit-3) #f)
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when (completed? (-> self ticker))
|
||||
(send-to-all (-> self link) 'untrigger)
|
||||
(go square-platform-master-idle)
|
||||
)
|
||||
(when (reached-delay? (-> self ticker) (-> self delay-til-wiggle))
|
||||
(when (not (-> self wiggled?))
|
||||
(set! (-> self wiggled?) #t)
|
||||
(send-to-all (-> self link) 'bounce)
|
||||
)
|
||||
)
|
||||
(when
|
||||
(>=
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as int (-> self last-plat-activated-time))
|
||||
)
|
||||
90
|
||||
)
|
||||
(set!
|
||||
(-> self last-plat-activated-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
(let ((v1-20 (-> self plat-id))
|
||||
(a0-5 (-> self plat-id-dir))
|
||||
(a1-3 (-> self plat-mask))
|
||||
)
|
||||
(while #t
|
||||
(+! v1-20 a0-5)
|
||||
(cond
|
||||
((<= v1-20 0)
|
||||
(set! (-> self plat-id) 0)
|
||||
(return #f)
|
||||
)
|
||||
((>= v1-20 32)
|
||||
(set! (-> self plat-id) 32)
|
||||
(return #f)
|
||||
)
|
||||
(else
|
||||
(when (logtest? a1-3 (ash 1 v1-20))
|
||||
(set! (-> self plat-id) v1-20)
|
||||
(send-to-all (-> self link) 'trigger)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type square-platform-master
|
||||
(defmethod
|
||||
copy-defaults!
|
||||
square-platform-master
|
||||
((obj square-platform-master) (arg0 res-lump))
|
||||
(set! (-> obj button-id) -1)
|
||||
(set! (-> obj plat-id) -1)
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set!
|
||||
(-> obj timeout)
|
||||
(the-as
|
||||
uint
|
||||
(the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 10.0)))
|
||||
)
|
||||
)
|
||||
(set! (-> obj delay-til-wiggle) (+ (-> obj timeout) -120))
|
||||
(set! (-> obj link) (new 'process 'actor-link-info obj))
|
||||
(set!
|
||||
(-> obj plat-mask)
|
||||
(the-as uint (get-matching-actor-type-mask (-> obj link) square-platform))
|
||||
)
|
||||
(go square-platform-master-idle)
|
||||
(none)
|
||||
)
|
||||
@@ -0,0 +1,640 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type sunkenfisha
|
||||
(deftype sunkenfisha (process-drawable)
|
||||
((path-u float :offset-assert 176)
|
||||
(path-speed float :offset-assert 180)
|
||||
(path-speed-seek-speed float :offset-assert 184)
|
||||
(targ-path-speed float :offset-assert 188)
|
||||
(path-normal-speed-lo float :offset-assert 192)
|
||||
(path-normal-speed-hi float :offset-assert 196)
|
||||
(path-dir float :offset-assert 200)
|
||||
(change-path-dir-time uint64 :offset-assert 208)
|
||||
(local-path-offset vector :inline :offset-assert 224)
|
||||
(targ-local-path-offset vector :inline :offset-assert 240)
|
||||
(local-path-offset-dir vector :inline :offset-assert 256)
|
||||
(max-local-path-offset vector :inline :offset-assert 272)
|
||||
(facing-rot vector :inline :offset-assert 288)
|
||||
(path-trans-offset vector :inline :offset-assert 304)
|
||||
)
|
||||
:heap-base #xd0
|
||||
:method-count-assert 28
|
||||
:size-assert #x140
|
||||
:flag-assert #x1c00d00140
|
||||
(:methods
|
||||
(TODO-RENAME-20 (_type_) float 20)
|
||||
(TODO-RENAME-orbit?-21 (_type_ vector float vector) vector 21)
|
||||
(dummy-22 (_type_) none 22)
|
||||
(TODO-RENAME-23 (_type_) quaternion 23)
|
||||
(TODO-RENAME-24 (_type_) vector 24)
|
||||
(dummy-25 (_type_) none 25)
|
||||
(TODO-RENAME-26 (_type_) float 26)
|
||||
(TODO-RENAME-27 (_type_) float 27)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type sunkenfisha
|
||||
(defmethod inspect sunkenfisha ((obj sunkenfisha))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tpath-u: ~f~%" (-> obj path-u))
|
||||
(format #t "~T~Tpath-speed: ~f~%" (-> obj path-speed))
|
||||
(format #t "~T~Tpath-speed-seek-speed: ~f~%" (-> obj path-speed-seek-speed))
|
||||
(format #t "~T~Ttarg-path-speed: ~f~%" (-> obj targ-path-speed))
|
||||
(format #t "~T~Tpath-normal-speed-lo: ~f~%" (-> obj path-normal-speed-lo))
|
||||
(format #t "~T~Tpath-normal-speed-hi: ~f~%" (-> obj path-normal-speed-hi))
|
||||
(format #t "~T~Tpath-dir: ~f~%" (-> obj path-dir))
|
||||
(format #t "~T~Tchange-path-dir-time: ~D~%" (-> obj change-path-dir-time))
|
||||
(format
|
||||
#t
|
||||
"~T~Tlocal-path-offset: #<vector @ #x~X>~%"
|
||||
(-> obj local-path-offset)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T~Ttarg-local-path-offset: #<vector @ #x~X>~%"
|
||||
(-> obj targ-local-path-offset)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T~Tlocal-path-offset-dir: #<vector @ #x~X>~%"
|
||||
(-> obj local-path-offset-dir)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T~Tmax-local-path-offset: #<vector @ #x~X>~%"
|
||||
(-> obj max-local-path-offset)
|
||||
)
|
||||
(format #t "~T~Tfacing-rot: #<vector @ #x~X>~%" (-> obj facing-rot))
|
||||
(format
|
||||
#t
|
||||
"~T~Tpath-trans-offset: #<vector @ #x~X>~%"
|
||||
(-> obj path-trans-offset)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "sunkenfisha"
|
||||
:bounds
|
||||
(new 'static 'vector :y 6144.0 :w 10240.0)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) -1)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 4095996000.0)
|
||||
(set! *sunkenfisha-red-yellow-sg* v1-1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-2
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "sunkenfisha"
|
||||
:bounds
|
||||
(new 'static 'vector :y 6144.0 :w 10240.0)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-2 jgeo) 2)
|
||||
(set! (-> v1-2 janim) -1)
|
||||
(set! (-> v1-2 mgeo 0) (the-as uint 3))
|
||||
(set! (-> v1-2 lod-dist 0) 4095996000.0)
|
||||
(set! *sunkenfisha-yellow-blue-sg* v1-2)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-3
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "sunkenfisha"
|
||||
:bounds
|
||||
(new 'static 'vector :y 6144.0 :w 10240.0)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-3 jgeo) 4)
|
||||
(set! (-> v1-3 janim) -1)
|
||||
(set! (-> v1-3 mgeo 0) (the-as uint 5))
|
||||
(set! (-> v1-3 lod-dist 0) 4095996000.0)
|
||||
(set! *sunkenfisha-yellow-eye-sg* v1-3)
|
||||
)
|
||||
|
||||
;; definition for method 22 of type sunkenfisha
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod dummy-22 sunkenfisha ((obj sunkenfisha))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 21 of type sunkenfisha
|
||||
(defmethod
|
||||
TODO-RENAME-orbit?-21
|
||||
sunkenfisha
|
||||
((obj sunkenfisha) (arg0 vector) (arg1 float) (arg2 vector))
|
||||
(eval-path-curve! (-> obj path) arg0 arg1 'interp)
|
||||
(vector+! arg0 arg0 (-> obj path-trans-offset))
|
||||
(let ((s2-0 (new 'stack-no-clear 'vector)))
|
||||
(TODO-RENAME-14 (-> obj path) s2-0 arg1)
|
||||
(let ((f0-2 (atan (-> s2-0 x) (-> s2-0 z)))
|
||||
(s4-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-rotate-around-y! s4-1 arg2 f0-2)
|
||||
(vector+! arg0 arg0 s4-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 24 of type sunkenfisha
|
||||
(defmethod TODO-RENAME-24 sunkenfisha ((obj sunkenfisha))
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector))
|
||||
(s3-0 (new 'stack-no-clear 'matrix))
|
||||
(gp-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset))
|
||||
(when (>= (* 4096.0 (-> *display* seconds-per-frame)) (vector-length s4-0))
|
||||
(until (< (* 16384.0 (-> *display* seconds-per-frame)) (vector-length s4-0))
|
||||
(set!
|
||||
(-> obj targ-local-path-offset x)
|
||||
(rand-vu-float-range
|
||||
(- (-> obj max-local-path-offset x))
|
||||
(-> obj max-local-path-offset x)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj targ-local-path-offset y)
|
||||
(rand-vu-float-range
|
||||
(- (-> obj max-local-path-offset y))
|
||||
(-> obj max-local-path-offset y)
|
||||
)
|
||||
)
|
||||
(vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset))
|
||||
)
|
||||
)
|
||||
(vector-normalize! s4-0 1.0)
|
||||
(matrix-from-two-vectors-max-angle-partial!
|
||||
s3-0
|
||||
(-> obj local-path-offset-dir)
|
||||
s4-0
|
||||
(* 16384.0 (-> *display* seconds-per-frame))
|
||||
0.1
|
||||
)
|
||||
(vector-matrix*!
|
||||
(-> obj local-path-offset-dir)
|
||||
(-> obj local-path-offset-dir)
|
||||
s3-0
|
||||
)
|
||||
(vector-normalize! (-> obj local-path-offset-dir) 1.0)
|
||||
(vector-float*!
|
||||
gp-0
|
||||
(-> obj local-path-offset-dir)
|
||||
(* 4096.0 (-> *display* seconds-per-frame))
|
||||
)
|
||||
(vector+! (-> obj local-path-offset) (-> obj local-path-offset) gp-0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 25 of type sunkenfisha
|
||||
;; INFO: Return type mismatch float vs none.
|
||||
(defmethod dummy-25 sunkenfisha ((obj sunkenfisha))
|
||||
(let* ((f0-0 (-> obj path-speed))
|
||||
(f1-1
|
||||
(seek
|
||||
f0-0
|
||||
(-> obj targ-path-speed)
|
||||
(* (-> obj path-speed-seek-speed) (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj path-speed) f1-1)
|
||||
(let
|
||||
((f30-0
|
||||
(+
|
||||
(-> obj path-u)
|
||||
(* (-> obj path-dir) f1-1 (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((< f30-0 0.0)
|
||||
(set! f30-0 (- f30-0))
|
||||
(TODO-RENAME-20 obj)
|
||||
)
|
||||
((< 1.0 f30-0)
|
||||
(+! f30-0 (* 2.0 (- 1.0 f30-0)))
|
||||
(TODO-RENAME-20 obj)
|
||||
)
|
||||
)
|
||||
(set! (-> obj path-u) f30-0)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 23 of type sunkenfisha
|
||||
(defmethod TODO-RENAME-23 sunkenfisha ((obj sunkenfisha))
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(set-vector!
|
||||
s5-0
|
||||
(- (vector-x-angle (-> obj root transv)))
|
||||
(vector-y-angle (-> obj root transv))
|
||||
0.0
|
||||
1.0
|
||||
)
|
||||
(set!
|
||||
(-> obj facing-rot x)
|
||||
(deg-seek-smooth
|
||||
(-> obj facing-rot x)
|
||||
(-> s5-0 x)
|
||||
(* 16384.0 (-> *display* seconds-per-frame))
|
||||
0.1
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj facing-rot y)
|
||||
(deg-seek-smooth
|
||||
(-> obj facing-rot y)
|
||||
(-> s5-0 y)
|
||||
(* 32768.0 (-> *display* seconds-per-frame))
|
||||
0.1
|
||||
)
|
||||
)
|
||||
)
|
||||
(quaternion-zxy! (-> obj root quat) (-> obj facing-rot))
|
||||
)
|
||||
|
||||
;; definition for method 20 of type sunkenfisha
|
||||
(defmethod TODO-RENAME-20 sunkenfisha ((obj sunkenfisha))
|
||||
(set! (-> obj path-dir) (- (-> obj path-dir)))
|
||||
(set! (-> obj path-speed) 0.0)
|
||||
(set!
|
||||
(-> obj targ-path-speed)
|
||||
(rand-vu-float-range
|
||||
(-> obj path-normal-speed-lo)
|
||||
(-> obj path-normal-speed-hi)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj change-path-dir-time)
|
||||
(the-as
|
||||
uint
|
||||
(+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj targ-local-path-offset y)
|
||||
(* 0.5 (+ (-> obj targ-local-path-offset y) (-> obj local-path-offset y)))
|
||||
)
|
||||
(let* ((f0-8 (-> obj local-path-offset x))
|
||||
(f1-3 (- (-> obj targ-local-path-offset x) f0-8))
|
||||
)
|
||||
(when (< (fabs f1-3) 12288.0)
|
||||
(cond
|
||||
((>= f1-3 0.0)
|
||||
(let ((f0-10 (fmin (+ 12288.0 f0-8) (-> obj max-local-path-offset x))))
|
||||
(set! (-> obj targ-local-path-offset x) f0-10)
|
||||
f0-10
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let
|
||||
((f0-12 (fmax (+ -12288.0 f0-8) (- (-> obj max-local-path-offset x)))))
|
||||
(set! (-> obj targ-local-path-offset x) f0-12)
|
||||
f0-12
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate sunkenfisha-idle (sunkenfisha)
|
||||
:trans
|
||||
(behavior ()
|
||||
(local-vars (at-0 int))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(if
|
||||
(>=
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as int (-> self change-path-dir-time))
|
||||
)
|
||||
(TODO-RENAME-20 self)
|
||||
)
|
||||
(TODO-RENAME-24 self)
|
||||
(dummy-25 self)
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
||||
(TODO-RENAME-orbit?-21
|
||||
self
|
||||
gp-0
|
||||
(-> self path-u)
|
||||
(-> self local-path-offset)
|
||||
)
|
||||
(vector-! (-> self root transv) gp-0 (-> self root trans))
|
||||
(set! (-> self root trans quad) (-> gp-0 quad))
|
||||
)
|
||||
(let ((v1-16 (-> self root transv)))
|
||||
(.lvf vf1 (&-> (-> self root transv) quad))
|
||||
(let ((f0-1 (-> *display* frames-per-second)))
|
||||
(.mov at-0 f0-1)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.svf (&-> v1-16 quad) vf1)
|
||||
)
|
||||
(TODO-RENAME-23 self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(let ((a0-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-0 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
)
|
||||
(set!
|
||||
(-> a0-0 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-0 param 1) 1.0)
|
||||
(set! (-> a0-0 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the float (+ (-> a0-1 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-1 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-1
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior sunkenfisha) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 26 of type sunkenfisha
|
||||
(defmethod TODO-RENAME-26 sunkenfisha ((obj sunkenfisha))
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj (-> obj entity))
|
||||
(set-vector! (-> obj root scale) 6.0 6.0 6.0 1.0)
|
||||
(let ((v1-3 (rand-vu-int-count 3)))
|
||||
(cond
|
||||
((zero? v1-3)
|
||||
(dummy-14 obj *sunkenfisha-red-yellow-sg* '())
|
||||
)
|
||||
((= v1-3 1)
|
||||
(dummy-14 obj *sunkenfisha-yellow-blue-sg* '())
|
||||
)
|
||||
((= v1-3 2)
|
||||
(dummy-14 obj *sunkenfisha-yellow-eye-sg* '())
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s5-0 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-0
|
||||
(the-as art-joint-anim (-> obj draw art-group data 6))
|
||||
num-func-identity
|
||||
)
|
||||
(let ((f0-4 0.0))
|
||||
(set! (-> s5-0 frame-num) f0-4)
|
||||
f0-4
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 27 of type sunkenfisha
|
||||
;; Used lq/sq
|
||||
(defmethod TODO-RENAME-27 sunkenfisha ((obj sunkenfisha))
|
||||
(local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag))
|
||||
(vector-reset! (-> obj path-trans-offset))
|
||||
(set! (-> obj path-u) (rand-vu-float-range 0.0 1.0))
|
||||
(if (zero? (rand-vu-int-count 2))
|
||||
(set! (-> obj path-dir) 1.0)
|
||||
(set! (-> obj path-dir) -1.0)
|
||||
)
|
||||
(set-vector! (-> obj max-local-path-offset) 16384.0 28672.0 0.0 1.0)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let
|
||||
((v1-5
|
||||
(res-lump-data
|
||||
(-> obj entity)
|
||||
'path-max-offset
|
||||
(pointer float)
|
||||
:tag-ptr
|
||||
(& sv-16)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-5
|
||||
(set! (-> obj max-local-path-offset x) (-> v1-5 0))
|
||||
(set! (-> obj max-local-path-offset y) (-> v1-5 1))
|
||||
)
|
||||
)
|
||||
(set-vector! (-> obj local-path-offset) 0.0 0.0 0.0 1.0)
|
||||
(set!
|
||||
(-> obj local-path-offset x)
|
||||
(rand-vu-float-range
|
||||
(- (-> obj max-local-path-offset x))
|
||||
(-> obj max-local-path-offset x)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj local-path-offset y)
|
||||
(rand-vu-float-range
|
||||
(- (-> obj max-local-path-offset y))
|
||||
(-> obj max-local-path-offset y)
|
||||
)
|
||||
)
|
||||
(set! (-> obj targ-local-path-offset quad) (-> obj local-path-offset quad))
|
||||
(set!
|
||||
(-> obj targ-local-path-offset x)
|
||||
(rand-vu-float-range
|
||||
(- (-> obj max-local-path-offset x))
|
||||
(-> obj max-local-path-offset x)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj targ-local-path-offset y)
|
||||
(rand-vu-float-range
|
||||
(- (-> obj max-local-path-offset y))
|
||||
(-> obj max-local-path-offset y)
|
||||
)
|
||||
)
|
||||
(vector-!
|
||||
(-> obj local-path-offset-dir)
|
||||
(-> obj targ-local-path-offset)
|
||||
(-> obj local-path-offset)
|
||||
)
|
||||
(vector-normalize! (-> obj local-path-offset-dir) 1.0)
|
||||
(set!
|
||||
(-> obj change-path-dir-time)
|
||||
(the-as
|
||||
uint
|
||||
(+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400))
|
||||
)
|
||||
)
|
||||
(set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0))
|
||||
(logior!
|
||||
(-> obj path flags)
|
||||
(path-control-flag display draw-line draw-point draw-text)
|
||||
)
|
||||
(set! sv-32 (new 'static 'res-tag))
|
||||
(let
|
||||
((v1-16
|
||||
(res-lump-data
|
||||
(-> obj entity)
|
||||
'path-trans-offset
|
||||
(pointer float)
|
||||
:tag-ptr
|
||||
(& sv-32)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-16
|
||||
(+! (-> obj path-trans-offset x) (-> v1-16 0))
|
||||
(+! (-> obj path-trans-offset y) (-> v1-16 1))
|
||||
(+! (-> obj path-trans-offset z) (-> v1-16 2))
|
||||
)
|
||||
)
|
||||
(if (< (-> obj path curve num-cverts) 2)
|
||||
(go process-drawable-art-error "bad path")
|
||||
)
|
||||
(let ((f28-0 8192.0)
|
||||
(f30-0 26624.0)
|
||||
)
|
||||
(set! sv-48 (new 'static 'res-tag))
|
||||
(let
|
||||
((v1-23
|
||||
(res-lump-data (-> obj entity) 'speed (pointer float) :tag-ptr (& sv-48))
|
||||
)
|
||||
)
|
||||
(when v1-23
|
||||
(set! f28-0 (-> v1-23 0))
|
||||
(set! f30-0 (-> v1-23 1))
|
||||
)
|
||||
)
|
||||
(let ((f0-35 (path-distance (-> obj path))))
|
||||
(set! (-> obj path-normal-speed-lo) (/ f28-0 f0-35))
|
||||
(set! (-> obj path-normal-speed-hi) (/ f30-0 f0-35))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj path-speed-seek-speed)
|
||||
(* 2.0 (- (-> obj path-normal-speed-hi) (-> obj path-normal-speed-lo)))
|
||||
)
|
||||
(set!
|
||||
(-> obj path-speed)
|
||||
(rand-vu-float-range
|
||||
(-> obj path-normal-speed-lo)
|
||||
(-> obj path-normal-speed-hi)
|
||||
)
|
||||
)
|
||||
(set! (-> obj targ-path-speed) (-> obj path-speed))
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector)))
|
||||
(TODO-RENAME-14 (-> obj path) s4-0 (-> obj path-u))
|
||||
(set-vector! (-> obj facing-rot) 0.0 (atan (-> s4-0 x) (-> s4-0 z)) 0.0 1.0)
|
||||
)
|
||||
(when (< (-> obj path-dir) 0.0)
|
||||
(let ((f0-52 (- (-> obj facing-rot y))))
|
||||
(set! (-> obj facing-rot y) f0-52)
|
||||
f0-52
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function sunkenfisha-init-by-other
|
||||
(defbehavior sunkenfisha-init-by-other sunkenfisha ((arg0 entity))
|
||||
(set! (-> self entity) arg0)
|
||||
(TODO-RENAME-26 self)
|
||||
(TODO-RENAME-27 self)
|
||||
(go sunkenfisha-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type sunkenfisha
|
||||
(defmethod copy-defaults! sunkenfisha ((obj sunkenfisha) (arg0 res-lump))
|
||||
(TODO-RENAME-26 obj)
|
||||
(TODO-RENAME-27 obj)
|
||||
(let
|
||||
((s5-0
|
||||
(+
|
||||
(res-lump-value
|
||||
(-> obj entity)
|
||||
'count
|
||||
uint128
|
||||
:default
|
||||
(the-as uint128 1)
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(while (> (the-as int s5-0) 0)
|
||||
(let ((s4-0 (get-process *default-dead-pool* sunkenfisha #x4000)))
|
||||
(when s4-0
|
||||
(let ((t9-4 (method-of-type sunkenfisha activate)))
|
||||
(t9-4
|
||||
(the-as sunkenfisha s4-0)
|
||||
obj
|
||||
'sunkenfisha
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(run-now-in-process s4-0 sunkenfisha-init-by-other (-> obj entity))
|
||||
(-> s4-0 ppointer)
|
||||
)
|
||||
)
|
||||
(+! s5-0 -1)
|
||||
)
|
||||
)
|
||||
(go sunkenfisha-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,384 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type sunken-water
|
||||
(deftype sunken-water (water-anim)
|
||||
((use-sync? symbol :offset-assert 220)
|
||||
(playing-deadly-sound? symbol :offset-assert 224)
|
||||
(deadly-time float :offset-assert 228)
|
||||
(deadly-fade float :offset-assert 232)
|
||||
(sync sync-info :inline :offset-assert 236)
|
||||
(safe-color-mult vector :inline :offset-assert 256)
|
||||
(safe-color-emissive vector :inline :offset-assert 272)
|
||||
(deadly-color-mult vector :inline :offset-assert 288)
|
||||
(deadly-color-emissive vector :inline :offset-assert 304)
|
||||
)
|
||||
:heap-base #xd0
|
||||
:method-count-assert 31
|
||||
:size-assert #x140
|
||||
:flag-assert #x1f00d00140
|
||||
(:methods
|
||||
(draw-ripple (_type_) symbol 30)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type sunken-water
|
||||
(defmethod inspect sunken-water ((obj sunken-water))
|
||||
(let ((t9-0 (method-of-type water-anim inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tuse-sync?: ~A~%" (-> obj use-sync?))
|
||||
(format #t "~T~Tplaying-deadly-sound?: ~A~%" (-> obj playing-deadly-sound?))
|
||||
(format #t "~T~Tdeadly-time: ~f~%" (-> obj deadly-time))
|
||||
(format #t "~T~Tdeadly-fade: ~f~%" (-> obj deadly-fade))
|
||||
(format #t "~T~Tsync: #<sync-info @ #x~X>~%" (-> obj sync))
|
||||
(format #t "~T~Tsafe-color-mult: #<vector @ #x~X>~%" (-> obj safe-color-mult))
|
||||
(format
|
||||
#t
|
||||
"~T~Tsafe-color-emissive: #<vector @ #x~X>~%"
|
||||
(-> obj safe-color-emissive)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T~Tdeadly-color-mult: #<vector @ #x~X>~%"
|
||||
(-> obj deadly-color-mult)
|
||||
)
|
||||
(format
|
||||
#t
|
||||
"~T~Tdeadly-color-emissive: #<vector @ #x~X>~%"
|
||||
(-> obj deadly-color-emissive)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for symbol ripple-for-sunken-water, type ripple-wave-set
|
||||
(define
|
||||
ripple-for-sunken-water
|
||||
(new 'static 'ripple-wave-set
|
||||
:count 3
|
||||
:converted #f
|
||||
:normal-scale 1.0
|
||||
:wave
|
||||
(new 'static 'inline-array ripple-wave 4
|
||||
(new 'static 'ripple-wave :scale 40.0 :xdiv 1 :speed 1.5)
|
||||
(new 'static 'ripple-wave :scale 40.0 :xdiv -1 :zdiv 1 :speed 1.5)
|
||||
(new 'static 'ripple-wave :scale 20.0 :xdiv 5 :zdiv 3 :speed 0.75)
|
||||
(new 'static 'ripple-wave)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 446)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 1
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-sunken-water-deadly-water"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 1
|
||||
(sp-item 1736 :fade-after (meters 50.0))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 1736)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 17
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-y (meters 0.0))
|
||||
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 4.0) 1.0)
|
||||
(sp-flt spt-scale-y (meters 0.25))
|
||||
(sp-flt spt-r 255.0)
|
||||
(sp-flt spt-g 255.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-rnd-flt spt-a 96.0 32.0 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.1875))
|
||||
(sp-flt spt-scalevel-y (meters -0.001875))
|
||||
(sp-flt spt-fade-a -3.2)
|
||||
(sp-int spt-timer 81)
|
||||
(sp-cpuinfo-flags bit2 bit3 bit14)
|
||||
(sp-int spt-next-time 15)
|
||||
(sp-launcher-by-id spt-next-launcher 2022)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 2022)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 5
|
||||
(sp-flt spt-r 255.0)
|
||||
(sp-rnd-flt spt-g 128.0 128.0 1.0)
|
||||
(sp-flt spt-b 0.0)
|
||||
(sp-flt spt-fade-a -1.28)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 30 of type sunken-water
|
||||
(defmethod draw-ripple sunken-water ((obj sunken-water))
|
||||
(set! (-> obj draw ripple send-query) #t)
|
||||
(let ((gp-0 (-> obj draw ripple query)))
|
||||
(let ((a0-1 (-> *display* base-frame-counter)))
|
||||
(set! (-> gp-0 start-vertex) (logand (* 13 (logand a0-1 127)) 127))
|
||||
)
|
||||
(set! (-> gp-0 vertex-skip) 128)
|
||||
(dotimes (s5-0 (-> gp-0 vertex-count))
|
||||
(sp-launch-particles-var
|
||||
*sp-particle-system-2d*
|
||||
(-> *part-id-table* 1736)
|
||||
(-> gp-0 data s5-0)
|
||||
(the-as sparticle-launch-state #f)
|
||||
(the-as sparticle-launch-control #f)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate water-vol-idle (sunken-water)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('notify)
|
||||
(if (= (-> arg3 param 0) 'attack)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "get-shocked")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
((-> (method-of-type water-anim water-vol-idle) event) arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(let ((t9-0 (-> (method-of-type water-anim water-vol-idle) trans)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((-> self use-sync?)
|
||||
(cond
|
||||
((< (get-current-phase (-> self sync)) (-> self deadly-time))
|
||||
(when (!= (-> self deadly-fade) 1.0)
|
||||
(set!
|
||||
(-> self deadly-fade)
|
||||
(seek
|
||||
(-> self deadly-fade)
|
||||
1.0
|
||||
(* 8.0 (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
(let ((f30-0 (-> self deadly-fade)))
|
||||
(vector-lerp!
|
||||
(-> self draw color-mult)
|
||||
(-> self safe-color-mult)
|
||||
(-> self deadly-color-mult)
|
||||
f30-0
|
||||
)
|
||||
(vector-lerp!
|
||||
(-> self draw color-emissive)
|
||||
(-> self safe-color-emissive)
|
||||
(-> self deadly-color-emissive)
|
||||
f30-0
|
||||
)
|
||||
(set! (-> self draw color-mult w) 0.5)
|
||||
(if (= f30-0 1.0)
|
||||
(set! (-> self flags) (logior #x80000 (-> self flags)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(draw-ripple self)
|
||||
(when (not (-> self playing-deadly-sound?))
|
||||
(set! (-> self playing-deadly-sound?) #t)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "water-on")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
)
|
||||
(update! (-> self sound))
|
||||
)
|
||||
(else
|
||||
(set! (-> self flags) (logand -524289 (-> self flags)))
|
||||
(when (!= (-> self deadly-fade) 0.0)
|
||||
(set!
|
||||
(-> self deadly-fade)
|
||||
(seek
|
||||
(-> self deadly-fade)
|
||||
0.0
|
||||
(* 8.0 (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
(let ((f30-1 (-> self deadly-fade)))
|
||||
(vector-lerp!
|
||||
(-> self draw color-mult)
|
||||
(-> self safe-color-mult)
|
||||
(-> self deadly-color-mult)
|
||||
f30-1
|
||||
)
|
||||
(vector-lerp!
|
||||
(-> self draw color-emissive)
|
||||
(-> self safe-color-emissive)
|
||||
(-> self deadly-color-emissive)
|
||||
f30-1
|
||||
)
|
||||
(set! (-> self draw color-mult w) 0.5)
|
||||
(if (= f30-1 0.0)
|
||||
(set! (-> self flags) (logand -524289 (-> self flags)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (-> self playing-deadly-sound?)
|
||||
(set! (-> self playing-deadly-sound?) #f)
|
||||
(stop! (-> self sound))
|
||||
(sound-play-by-name
|
||||
(static-sound-name "water-off")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(TODO-RENAME-10
|
||||
*palette-fade-controls*
|
||||
3
|
||||
(-> self deadly-fade)
|
||||
(vector-vector-distance (-> self root trans) (camera-pos))
|
||||
(the-as vector #f)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (logtest? #x80000 (-> self flags))
|
||||
(draw-ripple self)
|
||||
(update! (-> self sound))
|
||||
(set! (-> self playing-deadly-sound?) #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior sunken-water) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 25 of type sunken-water
|
||||
;; INFO: Return type mismatch uint vs object.
|
||||
(defmethod TODO-RENAME-25 sunken-water ((obj sunken-water))
|
||||
(local-vars (v0-3 uint))
|
||||
(let ((t9-0 (method-of-type water-anim TODO-RENAME-25)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(set! (-> obj playing-deadly-sound?) #f)
|
||||
(set-vector! (-> obj safe-color-mult) 0.125 0.225 0.22 0.5)
|
||||
(set-vector! (-> obj safe-color-emissive) 0.0 0.0 0.0 1.0)
|
||||
(set-vector! (-> obj deadly-color-mult) 0.125 0.225 0.22 0.5)
|
||||
(set-vector! (-> obj deadly-color-emissive) 0.33 0.6 0.0 1.0)
|
||||
(let
|
||||
((s5-0 (load-params! (-> obj sync) obj (the-as uint 1500) 0.0 0.15 0.15)))
|
||||
(let ((f0-16 (res-lump-float (-> obj entity) 'percent :default -1.0)))
|
||||
(if (or (< f0-16 0.0) (< 1.0 f0-16))
|
||||
(set! f0-16 (cond
|
||||
(s5-0
|
||||
0.5
|
||||
)
|
||||
((logtest? #x80000 (-> obj flags))
|
||||
1.0
|
||||
)
|
||||
(else
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and s5-0 (or (= f0-16 0.0) (= f0-16 1.0)))
|
||||
(set! s5-0 #f)
|
||||
(if (= f0-16 0.0)
|
||||
(set! (-> obj flags) (logior #x80000 (-> obj flags)))
|
||||
(set! (-> obj flags) (logand -524289 (-> obj flags)))
|
||||
)
|
||||
)
|
||||
(set! (-> obj use-sync?) s5-0)
|
||||
(set! (-> obj deadly-time) f0-16)
|
||||
)
|
||||
(the-as object (when s5-0
|
||||
(cond
|
||||
((< (get-current-phase (-> obj sync)) (-> obj deadly-time))
|
||||
(set! v0-3 (logior (the-as uint #x80000) (-> obj flags)))
|
||||
(set! (-> obj flags) v0-3)
|
||||
)
|
||||
(else
|
||||
(set! v0-3 (logand (the-as uint -524289) (-> obj flags)))
|
||||
(set! (-> obj flags) v0-3)
|
||||
)
|
||||
)
|
||||
v0-3
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 22 of type sunken-water
|
||||
;; INFO: Return type mismatch ripple-merc-query vs ripple-wave-set.
|
||||
;; Used lq/sq
|
||||
(defmethod TODO-RENAME-22 sunken-water ((obj sunken-water))
|
||||
(let ((t9-0 (method-of-type water-anim TODO-RENAME-22)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(set! (-> obj play-ambient-sound?) #f)
|
||||
(cond
|
||||
((logtest? #x80000 (-> obj flags))
|
||||
(set! (-> obj draw color-mult quad) (-> obj deadly-color-mult quad))
|
||||
(set! (-> obj draw color-emissive quad) (-> obj deadly-color-emissive quad))
|
||||
(set! (-> obj deadly-fade) 1.0)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj draw color-mult quad) (-> obj safe-color-mult quad))
|
||||
(set! (-> obj draw color-emissive quad) (-> obj safe-color-emissive quad))
|
||||
(set! (-> obj deadly-fade) 0.0)
|
||||
)
|
||||
)
|
||||
(let ((s5-0 (new 'process 'ripple-control)))
|
||||
(set! (-> obj draw ripple) s5-0)
|
||||
(set! (-> s5-0 global-scale) 3072.0)
|
||||
(set! (-> s5-0 close-fade-dist) 163840.0)
|
||||
(set! (-> s5-0 far-fade-dist) 245760.0)
|
||||
(set! (-> s5-0 waveform) ripple-for-sunken-water)
|
||||
(let ((v0-2 (new 'process 'ripple-merc-query 100)))
|
||||
(set! (-> s5-0 query) v0-2)
|
||||
(the-as ripple-wave-set v0-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -107,7 +107,7 @@
|
||||
(the-as (function none :behavior wall-plat) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
((method-of-object (-> self root-override) dummy-49))
|
||||
(dummy-49 (-> self root-override))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
@@ -279,7 +279,7 @@
|
||||
)
|
||||
((= f30-0 1.0)
|
||||
(set! gp-0 #f)
|
||||
((method-of-object (-> self root-override) dummy-49))
|
||||
(dummy-49 (-> self root-override))
|
||||
)
|
||||
(else
|
||||
(when (not gp-0)
|
||||
@@ -294,7 +294,7 @@
|
||||
)
|
||||
(set! gp-0 #t)
|
||||
)
|
||||
((method-of-object (-> self root-override) dummy-49))
|
||||
(dummy-49 (-> self root-override))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -382,7 +382,3 @@
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1093
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,963 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type swamp-rat
|
||||
(deftype swamp-rat (nav-enemy)
|
||||
((up-vector vector :inline :offset-assert 400)
|
||||
(state-float float :offset-assert 416)
|
||||
(state-vector vector :inline :offset-assert 432)
|
||||
(_hack uint64 :offset-assert 448)
|
||||
(wiggle-time uint64 :offset-assert 456)
|
||||
(wiggle-angle float :offset-assert 464)
|
||||
(delta-wiggle-angle float :offset-assert 468)
|
||||
(wiggle-factor float :offset-assert 472)
|
||||
(min-height float :offset-assert 476)
|
||||
(chase-rest-time uint64 :offset-assert 480)
|
||||
(target-nav-time uint64 :offset-assert 488)
|
||||
)
|
||||
:heap-base #x180
|
||||
:method-count-assert 76
|
||||
:size-assert #x1f0
|
||||
:flag-assert #x4c018001f0
|
||||
)
|
||||
|
||||
;; definition for method 3 of type swamp-rat
|
||||
(defmethod inspect swamp-rat ((obj swamp-rat))
|
||||
(let ((t9-0 (method-of-type nav-enemy inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tup-vector: #<vector @ #x~X>~%" (-> obj up-vector))
|
||||
(format #t "~T~Tstate-float: ~f~%" (-> obj state-float))
|
||||
(format #t "~T~Tstate-vector: ~`vector`P~%" (-> obj state-vector))
|
||||
(format #t "~T~Tfree-time: ~D~%" (-> obj free-time))
|
||||
(format #t "~T~Twiggle-time: ~D~%" (-> obj wiggle-time))
|
||||
(format #t "~T~Twiggle-angle: ~f~%" (-> obj wiggle-angle))
|
||||
(format #t "~T~Tdelta-wiggle-angle: ~f~%" (-> obj delta-wiggle-angle))
|
||||
(format #t "~T~Twiggle-factor: ~f~%" (-> obj wiggle-factor))
|
||||
(format #t "~T~Tmin-height: ~f~%" (-> obj min-height))
|
||||
(format #t "~T~Tchase-rest-time: ~D~%" (-> obj chase-rest-time))
|
||||
(format #t "~T~Ttarget-nav-time: ~D~%" (-> obj target-nav-time))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "swamp-rat"
|
||||
:bounds
|
||||
(new 'static 'vector :y 4096.0 :w 16384.0)
|
||||
:max-lod 2
|
||||
:longest-edge (meters 1.0)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(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) 81920.0)
|
||||
(set! (-> v1-1 mgeo 1) (the-as uint 2))
|
||||
(set! (-> v1-1 lod-dist 1) 163840.0)
|
||||
(set! (-> v1-1 mgeo 2) (the-as uint 3))
|
||||
(set! (-> v1-1 lod-dist 2) 4095996000.0)
|
||||
(set! *swamp-rat-sg* v1-1)
|
||||
)
|
||||
|
||||
;; definition for method 44 of type swamp-rat
|
||||
;; INFO: Return type mismatch none vs object.
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
|
||||
(defmethod
|
||||
dummy-44
|
||||
swamp-rat
|
||||
((obj swamp-rat) (arg0 process) (arg1 event-message-block))
|
||||
(with-pp
|
||||
(the-as
|
||||
object
|
||||
(when
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
(when
|
||||
(nav-enemy-send-attack
|
||||
arg0
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
'generic
|
||||
)
|
||||
(let* ((s5-1 (-> obj parent))
|
||||
(a0-4
|
||||
(if (and (nonzero? s5-1) (type-type? pointer process-drawable))
|
||||
s5-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(a0-4
|
||||
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-4 from) pp)
|
||||
(set! (-> a1-4 num-params) 0)
|
||||
(set! (-> a1-4 message) 'victory)
|
||||
(send-event-function (the-as process a0-4) a1-4)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(go (method-of-object obj nav-enemy-victory))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function swamp-rat-default-event-handler
|
||||
;; INFO: Return type mismatch none vs object.
|
||||
(defbehavior
|
||||
swamp-rat-default-event-handler swamp-rat
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (if (= v1-0 'victory)
|
||||
(go-virtual nav-enemy-victory)
|
||||
(nav-enemy-default-event-handler arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
swamp-rat-default-event-handler
|
||||
|
||||
;; definition for method 39 of type swamp-rat
|
||||
;; Used lq/sq
|
||||
(defmethod common-post swamp-rat ((obj swamp-rat))
|
||||
(when (logtest? (-> obj collide-info status) 1)
|
||||
(vector-deg-seek
|
||||
(-> obj up-vector)
|
||||
(-> obj up-vector)
|
||||
(-> obj collide-info surface-normal)
|
||||
910.2222
|
||||
)
|
||||
(vector-normalize! (-> obj up-vector) 1.0)
|
||||
)
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> obj collide-info quat)
|
||||
(vector-z-quaternion! (new-stack-vector0) (-> obj collide-info quat))
|
||||
(-> obj up-vector)
|
||||
)
|
||||
((the-as (function nav-enemy none) (find-parent-method swamp-rat 39)) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 38 of type swamp-rat
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod TODO-RENAME-38 swamp-rat ((obj swamp-rat))
|
||||
(dummy-59
|
||||
(-> obj collide-info)
|
||||
(-> obj collide-info transv)
|
||||
(the-as uint 1)
|
||||
8192.0
|
||||
#t
|
||||
#f
|
||||
#f
|
||||
)
|
||||
(when (< (-> obj collide-info trans y) (-> obj min-height))
|
||||
(let ((a1-1 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-1 quad) (-> obj collide-info trans quad))
|
||||
(set! (-> a1-1 y) (-> obj min-height))
|
||||
(TODO-RENAME-61
|
||||
(-> obj collide-info)
|
||||
a1-1
|
||||
(-> obj collide-info transv)
|
||||
*y-vector*
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-idle (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:post
|
||||
(behavior ()
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-patrol (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1)))
|
||||
(while #t
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 frame-group)
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info walk-anim))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info walk-anim))
|
||||
)
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-1 param 1) f30-0)
|
||||
(set! (-> a0-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-1
|
||||
(the-as
|
||||
art-joint-anim
|
||||
(-> self draw art-group data (-> self nav-info walk-anim))
|
||||
)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-notice (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a0-0 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-0 param 0) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-0
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 51)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-0 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 8))
|
||||
)
|
||||
(set! (-> gp-0 param 0) (ja-aframe 30.0 0))
|
||||
(set! (-> gp-0 param 1) 1.0)
|
||||
(set! (-> gp-0 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
gp-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 8))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(ja-blend-eval)
|
||||
(suspend)
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-1 param 0) (ja-aframe 30.0 0))
|
||||
(set! (-> gp-1 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
gp-1
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-7 param 0)
|
||||
(the float (+ (-> a0-7 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-7 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-7
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-chase)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function swamp-rat-update-wiggle-params
|
||||
(defbehavior swamp-rat-update-wiggle-params swamp-rat ()
|
||||
(let* ((f0-0 (rand-vu-float-range 0.0 1.0))
|
||||
(f1-1 (+ 1.0 (* 2.0 f0-0)))
|
||||
(f2-2 f1-1)
|
||||
(f2-4 (/ 1.0 f2-2))
|
||||
(f0-2 (+ 1.0 (* 0.2 f0-0)))
|
||||
)
|
||||
(set! (-> self delta-wiggle-angle) (* 910.2222 f1-1))
|
||||
(set! (-> self wiggle-factor) (* 1.5 f2-4))
|
||||
(let ((f0-3 (* 28672.0 f0-2)))
|
||||
(set! (-> self target-speed) f0-3)
|
||||
f0-3
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function swamp-rat-update-wiggle-target
|
||||
;; Used lq/sq
|
||||
(defbehavior swamp-rat-update-wiggle-target swamp-rat ((arg0 vector))
|
||||
(+! (-> self wiggle-angle) (-> self delta-wiggle-angle))
|
||||
(if (< 65536.0 (-> self wiggle-angle))
|
||||
(set! (-> self wiggle-angle) (+ -65536.0 (-> self wiggle-angle)))
|
||||
)
|
||||
(let* ((v1-3 (-> self collide-info trans))
|
||||
(a1-1 (vector-! (new 'stack-no-clear 'vector) v1-3 arg0))
|
||||
(s3-0
|
||||
(vector-rotate-around-y! (new 'stack-no-clear 'vector) a1-1 16384.0)
|
||||
)
|
||||
(v1-4
|
||||
(vector+*!
|
||||
(new 'stack-no-clear 'vector)
|
||||
arg0
|
||||
s3-0
|
||||
(* (-> self wiggle-factor) (sin (-> self wiggle-angle)))
|
||||
)
|
||||
)
|
||||
(v0-3 (-> self nav target-pos))
|
||||
)
|
||||
(set! (-> v0-3 quad) (-> v1-4 quad))
|
||||
v0-3
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-chase (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:trans
|
||||
(behavior ()
|
||||
(if
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(the-as int (-> self chase-rest-time))
|
||||
)
|
||||
(go-virtual nav-enemy-victory)
|
||||
)
|
||||
((-> (method-of-type nav-enemy nav-enemy-chase) trans))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set!
|
||||
(-> self target-nav-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
(set!
|
||||
(-> self wiggle-time)
|
||||
(the-as uint (+ (-> *display* base-frame-counter) -3000))
|
||||
)
|
||||
(set! (-> self wiggle-angle) 0.0)
|
||||
(set! (-> self chase-rest-time) (the-as uint (rand-vu-int-range 300 1200)))
|
||||
(ja-channel-push! 1 51)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
gp-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 9))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> gp-0 frame-num) 0.0)
|
||||
)
|
||||
(while #t
|
||||
(when
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self wiggle-time)))
|
||||
300
|
||||
)
|
||||
(set!
|
||||
(-> self wiggle-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
(swamp-rat-update-wiggle-params)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-4 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-4 param 0) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-4
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(swamp-rat-update-wiggle-target (target-pos 0))
|
||||
(nav-enemy-travel-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-stop-chase (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(-> (method-of-type nav-enemy nav-enemy-stop-chase) code)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-stare (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self rotate-speed) 1456355.5)
|
||||
(set! (-> self turn-time) 22)
|
||||
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
|
||||
(while #t
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 10))
|
||||
)
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 10))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-2 param 1) f30-0)
|
||||
(set! (-> a0-2 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim (-> self draw art-group data 10))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-3 param 0)
|
||||
(the float (+ (-> a0-3 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-3 param 1) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-5 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-5 param 0) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-5
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(let ((gp-0 (rand-vu-int-range 300 600))
|
||||
(s5-0 (-> *display* base-frame-counter))
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) s5-0) gp-0)
|
||||
(let ((v1-33 (-> self skel root-channel 0)))
|
||||
(set! (-> v1-33 num-func) num-func-identity)
|
||||
(set! (-> v1-33 frame-num) 0.0)
|
||||
)
|
||||
(ja-blend-eval)
|
||||
(suspend)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-give-up (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-push! 1 22)
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
)
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-1 param 1) 1.0)
|
||||
(set! (-> a0-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-7 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
)
|
||||
(set!
|
||||
(-> a0-7 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-7 param 1) 1.0)
|
||||
(set! (-> a0-7 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-7
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(seek-to-point-toward-point!
|
||||
(-> self collide-info)
|
||||
(-> self nav destination-pos)
|
||||
(-> self rotate-speed)
|
||||
(-> self turn-time)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-9 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-9 param 0)
|
||||
(the float (+ (-> a0-9 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-9 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-9
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-patrol)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-attack (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-push! 1 22)
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
)
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-1 param 1) 1.0)
|
||||
(set! (-> a0-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-victory)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate nav-enemy-victory (swamp-rat)
|
||||
:virtual #t
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(-> (method-of-type nav-enemy nav-enemy-victory) code)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate swamp-rat-spawn (swamp-rat)
|
||||
:event
|
||||
swamp-rat-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((gp-0 (new-stack-vector0)))
|
||||
(set! (-> gp-0 x) 0.0)
|
||||
(set! (-> gp-0 y) (- (-> *standard-dynamics* gravity-length)))
|
||||
(set! (-> gp-0 z) 0.0)
|
||||
(set! (-> gp-0 w) 1.0)
|
||||
(let ((f30-0 0.125))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(let ((s5-0 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-0 frame-num) 0.0)
|
||||
)
|
||||
(while #t
|
||||
(set! f30-0 (seek f30-0 1.5 0.1))
|
||||
(vector-v++! (-> self collide-info transv) gp-0)
|
||||
(dummy-59
|
||||
(-> self collide-info)
|
||||
(-> self collide-info transv)
|
||||
(the-as uint 1)
|
||||
8192.0
|
||||
#t
|
||||
#f
|
||||
#f
|
||||
)
|
||||
(when
|
||||
(or
|
||||
(logtest? (-> self collide-info status) 4)
|
||||
(or
|
||||
(< (-> self collide-info trans y) (-> self min-height))
|
||||
(>=
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as int (-> self state-time))
|
||||
)
|
||||
300
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(goto cfg-13)
|
||||
)
|
||||
(vector-float*! (-> self collide-info scale) *identity-vector* f30-0)
|
||||
(let ((a0-6 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-6 param 0) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-6
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-13)
|
||||
(if (< (-> self collide-info trans y) (-> self min-height))
|
||||
(set! (-> self collide-info trans y) (-> self min-height))
|
||||
)
|
||||
(set! (-> self collide-info transv quad) (-> *null-vector* quad))
|
||||
(vector-float*! (-> self collide-info scale) *identity-vector* 1.5)
|
||||
(let ((a0-10 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-10 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
)
|
||||
(set!
|
||||
(-> a0-10 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-10 param 1) 1.0)
|
||||
(set! (-> a0-10 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-10
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-11 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-11 param 0)
|
||||
(the float (+ (-> a0-11 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-11 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-11
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (TODO-RENAME-46 self (-> self nav-info stop-chase-distance))
|
||||
(go-virtual nav-enemy-chase)
|
||||
(go-virtual nav-enemy-idle)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior swamp-rat) nav-enemy-simple-post)
|
||||
)
|
||||
|
||||
;; definition for symbol *swamp-rat-nav-enemy-info*, type nav-enemy-info
|
||||
(define
|
||||
*swamp-rat-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:idle-anim 4
|
||||
:walk-anim 7
|
||||
:turn-anim 7
|
||||
:notice-anim 8
|
||||
:run-anim 9
|
||||
:jump-anim 9
|
||||
:jump-land-anim 6
|
||||
:victory-anim 10
|
||||
:taunt-anim 10
|
||||
:die-anim 11
|
||||
:neck-joint 7
|
||||
:run-travel-speed (meters 7.0)
|
||||
:run-rotate-speed (degrees 7999.9995)
|
||||
:run-acceleration (meters 1.0)
|
||||
:run-turn-time #x16
|
||||
:walk-travel-speed (meters 2.0)
|
||||
:walk-rotate-speed (degrees 7999.9995)
|
||||
:walk-acceleration (meters 1.0)
|
||||
:walk-turn-time #x16
|
||||
:attack-shove-back (meters 3.0)
|
||||
:attack-shove-up (meters 2.0)
|
||||
:shadow-size (meters 1.0)
|
||||
:notice-nav-radius (meters 1.0)
|
||||
:nav-nearest-y-threshold (meters 10.0)
|
||||
:notice-distance (meters 30.0)
|
||||
:stop-chase-distance (meters 40.0)
|
||||
:frustration-distance (meters 3.0)
|
||||
:frustration-time #x1c2
|
||||
:die-anim-hold-frame 20.0
|
||||
:jump-anim-start-frame 19.0
|
||||
:jump-land-anim-end-frame 10000000000.0
|
||||
:jump-height-min (meters 1.0)
|
||||
:jump-height-factor 0.5
|
||||
:jump-start-anim-speed 1.0
|
||||
:shadow-max-y (meters 1.0)
|
||||
:shadow-min-y (meters -1.0)
|
||||
:shadow-locus-dist (meters 150.0)
|
||||
:use-align #f
|
||||
:draw-shadow #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:use-momentum #f
|
||||
:use-flee #f
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 47 of type swamp-rat
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod initialize-collision swamp-rat ((obj swamp-rat))
|
||||
(let
|
||||
((s5-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-moving
|
||||
obj
|
||||
(collide-list-enum usually-hit-by-player)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s5-0 reaction) default-collision-reaction)
|
||||
(set! (-> s5-0 no-reaction) nothing)
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3))))
|
||||
(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) 2)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 3686.4001 0.0 3686.4001)
|
||||
)
|
||||
(dummy-46 s5-0)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(dummy-50 s5-0)
|
||||
(set! (-> obj collide-info) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 48 of type swamp-rat
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod TODO-RENAME-48 swamp-rat ((obj swamp-rat))
|
||||
(dummy-14 obj *swamp-rat-sg* '())
|
||||
(TODO-RENAME-45 obj *swamp-rat-nav-enemy-info*)
|
||||
(vector-float*! (-> obj collide-info scale) *identity-vector* 1.5)
|
||||
(set! (-> obj neck up) (the-as uint 1))
|
||||
(set! (-> obj neck nose) (the-as uint 2))
|
||||
(set! (-> obj neck ear) (the-as uint 0))
|
||||
(set! (-> obj wiggle-angle) 0.0)
|
||||
(set! (-> obj delta-wiggle-angle) 910.2222)
|
||||
(set! (-> obj wiggle-factor) 1.5)
|
||||
(set! (-> obj reaction-time) (rand-vu-int-range 30 240))
|
||||
(set! (-> obj chase-rest-time) (the-as uint 300))
|
||||
(set! (-> obj water) (new 'process 'water-control obj 7 0.0 8192.0 2048.0))
|
||||
(set! (-> obj water flags) (the-as uint 2))
|
||||
(set! (-> obj water height) (res-lump-float (-> obj entity) 'water-height))
|
||||
(set! (-> obj water ripple-size) 12288.0)
|
||||
(set! (-> obj min-height) (+ -2048.0 (-> obj water height)))
|
||||
(set! (-> obj up-vector quad) (-> *y-vector* quad))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function swamp-rat-init-by-other
|
||||
;; Used lq/sq
|
||||
(defbehavior
|
||||
swamp-rat-init-by-other swamp-rat
|
||||
((arg0 swamp-rat-nest)
|
||||
(arg1 vector)
|
||||
(arg2 vector)
|
||||
(arg3 pickup-type)
|
||||
(arg4 symbol)
|
||||
)
|
||||
(initialize-collision self)
|
||||
(if arg4
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(logior! (-> self mask) (process-mask actor-pause))
|
||||
)
|
||||
(set! (-> self collide-info trans quad) (-> arg1 quad))
|
||||
(forward-up->quaternion (-> self collide-info quat) arg2 *up-vector*)
|
||||
(vector-float*! (-> self collide-info scale) *identity-vector* 1.5)
|
||||
(vector-float*! (-> self collide-info transv) arg2 49152.0)
|
||||
(set! (-> self entity) (-> arg0 entity))
|
||||
(TODO-RENAME-48 self)
|
||||
(set! (-> self enemy-info pickup-type) arg3)
|
||||
(go swamp-rat-spawn)
|
||||
(none)
|
||||
)
|
||||
+9
-13
@@ -43,7 +43,7 @@
|
||||
(defmethod dummy-52 assistant ((obj assistant))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root trans y)))
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -4096.0 f0-0)))
|
||||
)
|
||||
@@ -60,7 +60,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type assistant
|
||||
(defmethod draw-shadow assistant ((obj assistant))
|
||||
(defmethod draw-npc-shadow assistant ((obj assistant))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -72,7 +72,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -363,27 +363,27 @@
|
||||
)
|
||||
(cond
|
||||
((< 16384.0 (-> s5-0 y))
|
||||
#f
|
||||
)
|
||||
((< 0.8 f0-2)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "ASSTLP01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.6 f0-2)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "ASSTLP04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.4 f0-2)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "ASSTLP05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.2 f0-2)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "ASSTLP02" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "ASSTLP03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "ASSTLP03" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
@@ -1025,7 +1025,3 @@
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+10
-11
@@ -41,7 +41,7 @@
|
||||
(defmethod dummy-52 explorer ((obj explorer))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root trans y)))
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -4096.0 f0-0)))
|
||||
)
|
||||
@@ -58,7 +58,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type explorer
|
||||
(defmethod draw-shadow explorer ((obj explorer))
|
||||
(defmethod draw-npc-shadow explorer ((obj explorer))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -70,7 +70,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -248,7 +248,7 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.85714287 f0-2)
|
||||
(dummy-11 (-> obj ambient) "EXP-AM05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "EXP-AM05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.71428573 f0-2)
|
||||
(if
|
||||
@@ -259,17 +259,17 @@
|
||||
(task-status need-reminder)
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "EXP-LO02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "EXP-LO02" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((< 0.5714286 f0-2)
|
||||
(dummy-11 (-> obj ambient) "EXP-AM04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "EXP-AM04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.42857143 f0-2)
|
||||
(dummy-11 (-> obj ambient) "EXP-AM03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "EXP-AM03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.2857143 f0-2)
|
||||
(dummy-11 (-> obj ambient) "EXP-AM02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "EXP-AM02" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.14285715 f0-2)
|
||||
(if
|
||||
@@ -280,16 +280,15 @@
|
||||
(task-status need-reminder)
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "EXP-AM01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "EXP-AM01" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "EXP-LO1A" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "EXP-LO1A" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 47 of type explorer
|
||||
|
||||
+10
-9
@@ -135,30 +135,31 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.8333333 f0-2)
|
||||
(dummy-11 (-> obj ambient) "FAR-LO1A" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "FAR-LO1A" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.6666667 f0-2)
|
||||
(dummy-11 (-> obj ambient) "FAR-AM01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "FAR-AM01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.5 f0-2)
|
||||
#f
|
||||
)
|
||||
((< 0.33333334 f0-2)
|
||||
(dummy-11 (-> obj ambient) "FAR-AM2A" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "FAR-AM2A" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.16666667 f0-2)
|
||||
(dummy-11 (-> obj ambient) "FAR-AM02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "FAR-AM02" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 41 of type farmer
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod initialize-collision farmer ((obj farmer) (arg0 int))
|
||||
(defmethod initialize-collision farmer ((obj farmer) (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)))
|
||||
@@ -187,7 +188,7 @@
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(dummy-50 s5-0)
|
||||
(set! (-> obj root) s5-0)
|
||||
(set! (-> obj root-override) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
@@ -196,8 +197,8 @@
|
||||
;; definition for method 11 of type farmer
|
||||
(defmethod copy-defaults! farmer ((obj farmer) (arg0 res-lump))
|
||||
(dummy-40 obj arg0 *farmer-sg* 3 25 (new 'static 'vector :w 4096.0) 5)
|
||||
(set! (-> obj root nav-radius) 40960.0)
|
||||
(nav-mesh-connect obj (-> obj root) (the-as nav-control #f))
|
||||
(set! (-> obj root-override nav-radius) 40960.0)
|
||||
(nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f))
|
||||
(set! (-> obj tasks) (get-task-control (game-task village1-yakow)))
|
||||
(dummy-42 obj)
|
||||
(none)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+17
-11
@@ -650,7 +650,7 @@
|
||||
(run-now-in-process
|
||||
s5-2
|
||||
manipy-init
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
(-> obj entity)
|
||||
*assistant-sg*
|
||||
#f
|
||||
@@ -1022,7 +1022,10 @@
|
||||
)
|
||||
((and
|
||||
(-> obj reminder-played)
|
||||
(< 81920.0 (vector-vector-distance (-> obj root trans) (camera-pos)))
|
||||
(<
|
||||
81920.0
|
||||
(vector-vector-distance (-> obj root-override trans) (camera-pos))
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
@@ -1134,27 +1137,27 @@
|
||||
)
|
||||
(cond
|
||||
((< (-> s5-0 y) -12288.0)
|
||||
#f
|
||||
)
|
||||
((< 0.8 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.6 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.4 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.2 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP06" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP06" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "SAGELP11" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP11" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
@@ -1228,7 +1231,10 @@
|
||||
(if
|
||||
(and
|
||||
(-> self reminder-played)
|
||||
(< 81920.0 (vector-vector-distance (-> self root trans) (camera-pos)))
|
||||
(<
|
||||
81920.0
|
||||
(vector-vector-distance (-> self root-override trans) (camera-pos))
|
||||
)
|
||||
)
|
||||
(go-virtual idle)
|
||||
)
|
||||
@@ -1346,7 +1352,7 @@
|
||||
|
||||
;; definition for method 41 of type sage
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod initialize-collision sage ((obj sage) (arg0 int))
|
||||
(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)))
|
||||
@@ -1378,7 +1384,7 @@
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(dummy-50 s5-0)
|
||||
(set! (-> obj root) s5-0)
|
||||
(set! (-> obj root-override) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
|
||||
+1601
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+13
-14
@@ -275,50 +275,49 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.9230769 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.84615386 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM02" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.7692308 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.6923077 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.61538464 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.53846157 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM06" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM06" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.46153846 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM07" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM07" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.3846154 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM08" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM08" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.30769232 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM09" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM09" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.23076923 f0-2)
|
||||
(if (not (task-closed? (game-task ogre-boss) (task-status need-reminder)))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM10" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM10" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((< 0.15384616 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM11" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM11" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.07692308 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GAM-AM12" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM12" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "GAM-AM13" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GAM-AM13" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
|
||||
+10
-11
@@ -239,7 +239,7 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.8888889 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.7777778 f0-2)
|
||||
(if
|
||||
@@ -250,11 +250,11 @@
|
||||
(task-status need-reminder)
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM02" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((< 0.6666667 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.5555556 f0-2)
|
||||
(if
|
||||
@@ -263,14 +263,14 @@
|
||||
(game-task village2-geologist-money)
|
||||
(task-status need-introduction)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM04" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((< 0.44444445 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.33333334 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM06" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM06" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.22222222 f0-2)
|
||||
(if
|
||||
@@ -281,26 +281,25 @@
|
||||
(task-status need-reminder)
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM07" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM07" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((< 0.11111111 f0-2)
|
||||
(dummy-11 (-> obj ambient) "GEO-LO02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-LO02" #f (-> obj root-override trans))
|
||||
)
|
||||
((closed?
|
||||
(-> obj tasks)
|
||||
(game-task village2-geologist-money)
|
||||
(task-status need-resolution)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "GEO-AM08" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-AM08" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "GEO-LO01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "GEO-LO01" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type geologist
|
||||
|
||||
+10
-12
@@ -4,7 +4,7 @@
|
||||
;; definition of type assistant-bluehut
|
||||
(deftype assistant-bluehut (process-taskable)
|
||||
((sound-id sound-id :offset-assert 380)
|
||||
(jaws uint64 :offset-assert 384)
|
||||
(jaws handle :offset-assert 384)
|
||||
(sage entity-actor :offset-assert 392)
|
||||
(im-talking symbol :offset-assert 396)
|
||||
)
|
||||
@@ -258,7 +258,10 @@
|
||||
)
|
||||
((and
|
||||
(-> obj reminder-played)
|
||||
(< 81920.0 (vector-vector-distance (-> obj root trans) (camera-pos)))
|
||||
(<
|
||||
81920.0
|
||||
(vector-vector-distance (-> obj root-override trans) (camera-pos))
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
@@ -401,24 +404,23 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.8 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP20" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP20" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.6 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP21" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP21" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.4 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP22" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP22" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.2 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP23" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP23" #f (-> obj root-override trans))
|
||||
)
|
||||
((nonzero? (get-task-status (game-task citadel-sage-blue)))
|
||||
(dummy-11 (-> obj ambient) "SAGELP24" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "SAGELP24" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
@@ -622,7 +624,3 @@
|
||||
(dummy-42 obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
(defmethod dummy-52 warrior ((obj warrior))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root trans y)))
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -4096.0 f0-0)))
|
||||
)
|
||||
@@ -60,7 +60,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type warrior
|
||||
(defmethod draw-shadow warrior ((obj warrior))
|
||||
(defmethod draw-npc-shadow warrior ((obj warrior))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -72,7 +72,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -276,23 +276,22 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.66 f0-2)
|
||||
(dummy-11 (-> obj ambient) "WAR-LO1A" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "WAR-LO1A" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.33 f0-2)
|
||||
(dummy-11 (-> obj ambient) "WAR-LO1B" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "WAR-LO1B" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "WAR-LO1C" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "WAR-LO1C" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 41 of type warrior
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod initialize-collision warrior ((obj warrior) (arg0 int))
|
||||
(defmethod initialize-collision warrior ((obj warrior) (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)))
|
||||
@@ -321,7 +320,7 @@
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(dummy-50 s5-0)
|
||||
(set! (-> obj root) s5-0)
|
||||
(set! (-> obj root-override) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
|
||||
@@ -0,0 +1,360 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type assistant-villagec
|
||||
(deftype assistant-villagec (process-taskable)
|
||||
()
|
||||
:heap-base #x110
|
||||
:method-count-assert 53
|
||||
:size-assert #x17c
|
||||
:flag-assert #x350110017c
|
||||
)
|
||||
|
||||
;; definition for method 3 of type assistant-villagec
|
||||
(defmethod inspect assistant-villagec ((obj assistant-villagec))
|
||||
(let ((t9-0 (method-of-type process-taskable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "assistant-village3"
|
||||
:bounds (new 'static 'vector :w 16384.0)
|
||||
:version #x6
|
||||
:shadow 2
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) 3)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 4095996000.0)
|
||||
(set! *assistant-village3-sg* v1-1)
|
||||
)
|
||||
|
||||
;; definition for method 52 of type assistant-villagec
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod dummy-52 assistant-villagec ((obj assistant-villagec))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -2048.0 f0-0)))
|
||||
)
|
||||
0
|
||||
(set! (-> v1-1 settings top-plane w) (- (+ 1024.0 f0-0)))
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 48 of type assistant-villagec
|
||||
(defmethod draw-npc-shadow assistant-villagec ((obj assistant-villagec))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
(-> obj draw shadow)
|
||||
(zero? (-> obj draw cur-lod))
|
||||
(logtest? (-> obj draw status) 8)
|
||||
)
|
||||
(let ((v1-9 (-> obj draw shadow-ctrl)))
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
(logior! (-> v1-14 settings flags) 32)
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 32 of type assistant-villagec
|
||||
(defmethod play-anim! assistant-villagec ((obj assistant-villagec) (arg0 symbol))
|
||||
(set! (-> obj talk-message) (the-as uint 292))
|
||||
(cond
|
||||
((=
|
||||
(get-task-status (game-task finalboss-movies))
|
||||
(task-status need-introduction)
|
||||
)
|
||||
(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)
|
||||
)
|
||||
(else
|
||||
(new 'static 'spool-anim
|
||||
:name "assistant-village3-reminder"
|
||||
:index 4
|
||||
:parts 3
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 31 of type assistant-villagec
|
||||
(defmethod get-art-elem assistant-villagec ((obj assistant-villagec))
|
||||
(-> obj draw art-group data 3)
|
||||
)
|
||||
|
||||
;; definition for method 39 of type assistant-villagec
|
||||
(defmethod should-display? assistant-villagec ((obj assistant-villagec))
|
||||
(and
|
||||
(task-closed? (game-task village3-button) (task-status need-introduction))
|
||||
(not (sages-kidnapped?))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 47 of type assistant-villagec
|
||||
;; INFO: Return type mismatch basic vs symbol.
|
||||
(defmethod target-above-threshold? assistant-villagec ((obj assistant-villagec))
|
||||
(the-as symbol (and *target* (< (-> (target-pos 0) z) -14245888.0)))
|
||||
)
|
||||
|
||||
;; definition for method 43 of type assistant-villagec
|
||||
(defmethod TODO-RENAME-43 assistant-villagec ((obj assistant-villagec))
|
||||
(when
|
||||
(TODO-RENAME-10
|
||||
(-> obj ambient)
|
||||
(new 'stack-no-clear 'vector)
|
||||
9000
|
||||
122880.0
|
||||
obj
|
||||
)
|
||||
(let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-4 (the-as number (logior #x3f800000 v1-3)))
|
||||
(f0-2 (+ -1.0 (the-as float v1-4)))
|
||||
)
|
||||
(cond
|
||||
((< 0.85714287 f0-2)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP31" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.71428573 f0-2)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP32" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.5714286 f0-2)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP33" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.42857143 f0-2)
|
||||
(let ((v1-16 (get-task-status (game-task lavatube-end))))
|
||||
(if
|
||||
(not
|
||||
(or
|
||||
(= v1-16 (task-status need-reward-speech))
|
||||
(= v1-16 (task-status invalid))
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP34" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
((< 0.2857143 f0-2)
|
||||
(let ((v1-21 (get-task-status (game-task lavatube-end))))
|
||||
(if
|
||||
(not
|
||||
(or
|
||||
(= v1-21 (task-status need-reward-speech))
|
||||
(= v1-21 (task-status invalid))
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP35" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
((< 0.14285715 f0-2)
|
||||
(let ((v1-26 (get-task-status (game-task lavatube-end))))
|
||||
(if
|
||||
(not
|
||||
(or
|
||||
(= v1-26 (task-status need-reward-speech))
|
||||
(= v1-26 (task-status invalid))
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "ASSTLP36" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
((nonzero? (get-task-status (game-task citadel-sage-green)))
|
||||
(dummy-11 (-> obj ambient) "ASSTLP37" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (assistant-villagec)
|
||||
: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
|
||||
(TODO-RENAME-43 self)
|
||||
(let ((a0-8 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-8 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
)
|
||||
(set!
|
||||
(-> a0-8 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-8 param 1) 1.0)
|
||||
(set! (-> a0-8 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-8
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-9 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-9 param 0)
|
||||
(the float (+ (-> a0-9 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-9 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-9
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((gp-0 (-> *display* base-frame-counter)))
|
||||
(while (let* ((s5-0 (-> *display* base-frame-counter))
|
||||
(f30-0 300.0)
|
||||
(f28-0 0.16)
|
||||
(f26-0 0.17000002)
|
||||
(v1-31
|
||||
(/ (the-as int (rand-uint31-gen *random-generator*)) 256)
|
||||
)
|
||||
(v1-32 (the-as number (logior #x3f800000 v1-31)))
|
||||
)
|
||||
(<
|
||||
(-
|
||||
s5-0
|
||||
(the
|
||||
int
|
||||
(* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-32)))))
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-1 frame-group) (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 param 0) (ja-aframe 0.0 0))
|
||||
(set! (-> gp-1 param 1) 1.0)
|
||||
(set! (-> gp-1 frame-num) (ja-aframe 16.0 0))
|
||||
(joint-control-channel-group! gp-1 (if (> (-> self skel active-channels) 0)
|
||||
(->
|
||||
self
|
||||
skel
|
||||
root-channel
|
||||
0
|
||||
frame-group
|
||||
)
|
||||
)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((gp-2 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-2 param 0) (ja-aframe 0.0 0))
|
||||
(set! (-> gp-2 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
gp-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((gp-3 (-> *display* base-frame-counter)))
|
||||
(while (let* ((s5-1 (-> *display* base-frame-counter))
|
||||
(f30-1 300.0)
|
||||
(f28-1 0.16)
|
||||
(f26-1 0.17000002)
|
||||
(v1-56
|
||||
(/ (the-as int (rand-uint31-gen *random-generator*)) 256)
|
||||
)
|
||||
(v1-57 (the-as number (logior #x3f800000 v1-56)))
|
||||
)
|
||||
(<
|
||||
(-
|
||||
s5-1
|
||||
(the
|
||||
int
|
||||
(* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-57)))))
|
||||
)
|
||||
)
|
||||
gp-3
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type assistant-villagec
|
||||
(defmethod
|
||||
copy-defaults!
|
||||
assistant-villagec
|
||||
((obj assistant-villagec) (arg0 res-lump))
|
||||
(dummy-40
|
||||
obj
|
||||
arg0
|
||||
*assistant-village3-sg*
|
||||
3
|
||||
31
|
||||
(new 'static 'vector :w 4096.0)
|
||||
5
|
||||
)
|
||||
(set! (-> obj tasks) (get-task-control (game-task assistant-village3)))
|
||||
(dummy-42 obj)
|
||||
(none)
|
||||
)
|
||||
+35
-40
@@ -71,7 +71,7 @@
|
||||
(defmethod dummy-52 minertall ((obj minertall))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root trans y)))
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -4096.0 f0-0)))
|
||||
)
|
||||
@@ -88,7 +88,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type minertall
|
||||
(defmethod draw-shadow minertall ((obj minertall))
|
||||
(defmethod draw-npc-shadow minertall ((obj minertall))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -100,7 +100,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -308,7 +308,7 @@
|
||||
(defmethod dummy-52 minershort ((obj minershort))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(when v1-1
|
||||
(let ((f0-0 (-> obj root trans y)))
|
||||
(let ((f0-0 (-> obj root-override trans y)))
|
||||
(let ((a0-2 v1-1))
|
||||
(set! (-> a0-2 settings bot-plane w) (- (+ -4096.0 f0-0)))
|
||||
)
|
||||
@@ -325,7 +325,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type minershort
|
||||
(defmethod draw-shadow minershort ((obj minershort))
|
||||
(defmethod draw-npc-shadow minershort ((obj minershort))
|
||||
(-> obj draw shadow-ctrl)
|
||||
(cond
|
||||
((and
|
||||
@@ -337,7 +337,7 @@
|
||||
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
|
||||
)
|
||||
0
|
||||
((method-of-object (-> obj draw shadow-ctrl) dummy-14))
|
||||
(dummy-14 (-> obj draw shadow-ctrl))
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> obj draw shadow-ctrl)))
|
||||
@@ -818,96 +818,95 @@
|
||||
)
|
||||
(cond
|
||||
((< 0.9655172 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MIN-LO01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MIN-LO01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.9310345 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MIN-LO03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MIN-LO03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.8965517 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MIN-LO04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MIN-LO04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.86206895 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MIN-LO05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MIN-LO05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.82758623 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MIN-LO06" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MIN-LO06" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.79310346 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.7586207 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM02" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.7241379 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.6896552 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.6551724 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.62068963 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM06" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM06" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.5862069 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM07" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM07" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.55172414 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM08" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM08" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.51724136 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM09" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM09" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.4827586 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM10" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM10" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.44827586 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM11" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM11" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.41379312 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM12" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM12" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.37931034 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM1A" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM1A" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.3448276 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM2A" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM2A" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.31034482 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MSH-AM3A" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MSH-AM3A" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.27586207 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM01" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM01" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.2413793 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM02" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM02" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.20689656 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM03" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM03" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.1724138 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM04" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM04" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.13793103 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM05" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM05" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.10344828 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM06" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM06" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.06896552 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM07" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM07" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.03448276 f0-2)
|
||||
(dummy-11 (-> obj ambient) "MTA-AM08" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM08" #f (-> obj root-override trans))
|
||||
)
|
||||
(else
|
||||
(dummy-11 (-> obj ambient) "MTA-AM09" #f (-> obj root trans))
|
||||
(dummy-11 (-> obj ambient) "MTA-AM09" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
@@ -1041,7 +1040,3 @@
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,670 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type sage-villagec
|
||||
(deftype sage-villagec (process-taskable)
|
||||
((evilbro handle :offset-assert 384)
|
||||
(evilsis handle :offset-assert 392)
|
||||
(assistant entity-actor :offset-assert 400)
|
||||
)
|
||||
:heap-base #x130
|
||||
:method-count-assert 53
|
||||
:size-assert #x194
|
||||
:flag-assert #x3501300194
|
||||
)
|
||||
|
||||
;; definition for method 3 of type sage-villagec
|
||||
(defmethod inspect sage-villagec ((obj sage-villagec))
|
||||
(let ((t9-0 (method-of-type process-taskable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tevilbro: ~D~%" (-> obj evilbro))
|
||||
(format #t "~T~Tevilsis: ~D~%" (-> obj evilsis))
|
||||
(format #t "~T~Tassistant: ~A~%" (-> obj assistant))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "sage-village3"
|
||||
:bounds (new 'static 'vector :w 16384.0)
|
||||
:version #x6
|
||||
:shadow 2
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) 3)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 4095996000.0)
|
||||
(set! *sage-village3-sg* v1-1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-2
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "evilbro-village3"
|
||||
:bounds (new 'static 'vector :w 16384.0)
|
||||
:version #x6
|
||||
:shadow 2
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-2 jgeo) 0)
|
||||
(set! (-> v1-2 janim) 3)
|
||||
(set! (-> v1-2 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-2 lod-dist 0) 4095996000.0)
|
||||
(set! *evilbro-village3-sg* v1-2)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-3
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "evilsis-village3"
|
||||
:bounds (new 'static 'vector :w 16384.0)
|
||||
:version #x6
|
||||
:shadow 2
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-3 jgeo) 0)
|
||||
(set! (-> v1-3 janim) 3)
|
||||
(set! (-> v1-3 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-3 lod-dist 0) 4095996000.0)
|
||||
(set! *evilsis-village3-sg* v1-3)
|
||||
)
|
||||
|
||||
;; definition for method 32 of type sage-villagec
|
||||
(defmethod play-anim! sage-villagec ((obj sage-villagec) (arg0 symbol))
|
||||
(with-pp
|
||||
(set! (-> obj talk-message) (the-as uint 291))
|
||||
(case (current-status (-> obj tasks))
|
||||
((1 2 3)
|
||||
(if (not arg0)
|
||||
(set! (-> obj will-talk) #t)
|
||||
)
|
||||
(case (current-task (-> obj tasks))
|
||||
((105)
|
||||
(when arg0
|
||||
(close-status! (-> obj tasks) (task-status need-introduction))
|
||||
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-5 from) pp)
|
||||
(set! (-> a1-5 num-params) 1)
|
||||
(set! (-> a1-5 message) 'clone)
|
||||
(set! (-> a1-5 param 0) (the-as uint (process->handle obj)))
|
||||
(send-event-function (-> obj assistant extra process) a1-5)
|
||||
)
|
||||
(let ((s5-1 (get-process *default-dead-pool* manipy #x4000)))
|
||||
(set! (-> obj evilbro) (ppointer->handle (when s5-1
|
||||
(let
|
||||
((t9-5
|
||||
(method-of-type
|
||||
manipy
|
||||
activate
|
||||
)
|
||||
)
|
||||
)
|
||||
(t9-5
|
||||
(the-as manipy s5-1)
|
||||
obj
|
||||
'manipy
|
||||
(the-as
|
||||
pointer
|
||||
#x70004000
|
||||
)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
s5-1
|
||||
manipy-init
|
||||
(->
|
||||
obj
|
||||
root-override
|
||||
trans
|
||||
)
|
||||
(-> obj entity)
|
||||
*evilbro-village3-sg*
|
||||
#f
|
||||
)
|
||||
(-> s5-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-9 from) pp)
|
||||
(set! (-> a1-9 num-params) 1)
|
||||
(set! (-> a1-9 message) 'anim-mode)
|
||||
(set! (-> a1-9 param 0) (the-as uint 'clone-anim))
|
||||
(send-event-function (handle->process (-> obj evilbro)) a1-9)
|
||||
)
|
||||
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-10 from) pp)
|
||||
(set! (-> a1-10 num-params) 1)
|
||||
(set! (-> a1-10 message) 'blend-shape)
|
||||
(set! (-> a1-10 param 0) (the-as uint #t))
|
||||
(send-event-function (handle->process (-> obj evilbro)) a1-10)
|
||||
)
|
||||
(let ((a1-11 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-11 from) pp)
|
||||
(set! (-> a1-11 num-params) 1)
|
||||
(set! (-> a1-11 message) 'center-joint)
|
||||
(set! (-> a1-11 param 0) (the-as uint 3))
|
||||
(send-event-function (handle->process (-> obj evilbro)) a1-11)
|
||||
)
|
||||
(let ((s5-2 (get-process *default-dead-pool* manipy #x4000)))
|
||||
(set! (-> obj evilsis) (ppointer->handle (when s5-2
|
||||
(let
|
||||
((t9-11
|
||||
(method-of-type
|
||||
manipy
|
||||
activate
|
||||
)
|
||||
)
|
||||
)
|
||||
(t9-11
|
||||
(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)
|
||||
*evilsis-village3-sg*
|
||||
#f
|
||||
)
|
||||
(-> s5-2 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-15 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-15 from) pp)
|
||||
(set! (-> a1-15 num-params) 1)
|
||||
(set! (-> a1-15 message) 'anim-mode)
|
||||
(set! (-> a1-15 param 0) (the-as uint 'clone-anim))
|
||||
(send-event-function (handle->process (-> obj evilsis)) a1-15)
|
||||
)
|
||||
(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) 'blend-shape)
|
||||
(set! (-> a1-16 param 0) (the-as uint #t))
|
||||
(send-event-function (handle->process (-> obj evilsis)) 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) 'center-joint)
|
||||
(set! (-> a1-17 param 0) (the-as uint 3))
|
||||
(send-event-function (handle->process (-> obj evilsis)) a1-17)
|
||||
)
|
||||
(set! (-> obj draw bounds w) 40960.0)
|
||||
)
|
||||
(new 'static 'spool-anim
|
||||
:name "sage-village3-introduction"
|
||||
:index 8
|
||||
:parts 58
|
||||
:command-list
|
||||
'(
|
||||
((the binteger 206)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 268)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 321)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 415)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 502)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 655)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 864)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 958)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 1178)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 1295)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 1377)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 1683)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 2066)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 2209)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 2389)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 2707)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 2769)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 2901)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 3021)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 3158)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 3301)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 3533)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 3632)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 3692)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 3780)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 3818)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 4188)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 4324)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 4462)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 4542) joint "camera")
|
||||
)
|
||||
)
|
||||
)
|
||||
((79)
|
||||
(when arg0
|
||||
(let* ((s5-3 (-> obj tasks))
|
||||
(s4-0 (method-of-object s5-3 save-reminder))
|
||||
(a1-18 (new 'stack-no-clear 'event-message-block))
|
||||
)
|
||||
(set! (-> a1-18 from) pp)
|
||||
(set! (-> a1-18 num-params) 2)
|
||||
(set! (-> a1-18 message) 'query)
|
||||
(set! (-> a1-18 param 0) (the-as uint 'pickup))
|
||||
(set! (-> a1-18 param 1) (the-as uint 6))
|
||||
(s4-0
|
||||
s5-3
|
||||
(the int (the-as float (send-event-function *target* a1-18)))
|
||||
1
|
||||
)
|
||||
)
|
||||
(close-status! (-> obj tasks) (task-status need-introduction))
|
||||
)
|
||||
(new 'static 'spool-anim
|
||||
:name "sage-village3-introduction-dark-eco"
|
||||
:index 4
|
||||
:parts 9
|
||||
:command-list
|
||||
'(
|
||||
((the binteger 111)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 189)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 455)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 638)
|
||||
joint
|
||||
"camera"
|
||||
)
|
||||
((the binteger 753) joint "cameraB")
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if arg0
|
||||
(close-specific-task!
|
||||
(game-task snow-ram)
|
||||
(task-status need-introduction)
|
||||
)
|
||||
)
|
||||
(new 'static 'spool-anim
|
||||
:name "sage-village3-introduction-rams"
|
||||
:index 6
|
||||
:parts 6
|
||||
:command-list
|
||||
'(
|
||||
((the binteger 155)
|
||||
joint
|
||||
"cameraB"
|
||||
)
|
||||
((the binteger 370) joint "camera")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((4 5)
|
||||
(set! (-> obj skippable) #t)
|
||||
(let ((s4-1 (+ (get-reminder (-> obj tasks) 0) 1)))
|
||||
(if (< (the-as uint 1) (the-as uint s4-1))
|
||||
(set! s4-1 0)
|
||||
)
|
||||
(countdown (s3-0 2)
|
||||
(cond
|
||||
((zero? s4-1)
|
||||
(if
|
||||
(!=
|
||||
(get-task-status (game-task cave-dark-crystals))
|
||||
(task-status need-reminder)
|
||||
)
|
||||
(set! s4-1 1)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if
|
||||
(not
|
||||
(or
|
||||
(=
|
||||
(get-task-status (game-task snow-ram))
|
||||
(task-status need-reminder)
|
||||
)
|
||||
(=
|
||||
(get-task-status (game-task snow-ram))
|
||||
(task-status need-reminder-a)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s4-1 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if arg0
|
||||
(save-reminder (-> obj tasks) s4-1 0)
|
||||
)
|
||||
(if (zero? s4-1)
|
||||
(new 'static 'spool-anim
|
||||
:name "sage-village3-reminder-1-dark-eco"
|
||||
:index 5
|
||||
:parts 2
|
||||
:command-list '()
|
||||
)
|
||||
(new 'static 'spool-anim
|
||||
:name "sage-village3-reminder-1-rams"
|
||||
:index 7
|
||||
:parts 3
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(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 31 of type sage-villagec
|
||||
(defmethod get-art-elem sage-villagec ((obj sage-villagec))
|
||||
(-> obj draw art-group data 3)
|
||||
)
|
||||
|
||||
;; definition for method 47 of type sage-villagec
|
||||
;; INFO: Return type mismatch basic vs symbol.
|
||||
(defmethod target-above-threshold? sage-villagec ((obj sage-villagec))
|
||||
(the-as
|
||||
symbol
|
||||
(and
|
||||
*target*
|
||||
(< (-> (target-pos 0) x) 4575232.0)
|
||||
(< -14323302.0 (-> (target-pos 0) z))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 43 of type sage-villagec
|
||||
(defmethod TODO-RENAME-43 sage-villagec ((obj sage-villagec))
|
||||
(when
|
||||
(TODO-RENAME-10
|
||||
(-> obj ambient)
|
||||
(new 'stack-no-clear 'vector)
|
||||
9000
|
||||
122880.0
|
||||
obj
|
||||
)
|
||||
(let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-4 (the-as number (logior #x3f800000 v1-3)))
|
||||
(f0-2 (+ -1.0 (the-as float v1-4)))
|
||||
)
|
||||
(cond
|
||||
((< 0.875 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP31" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.75 f0-2)
|
||||
(if
|
||||
(not
|
||||
(closed?
|
||||
(-> obj tasks)
|
||||
(game-task cave-dark-crystals)
|
||||
(task-status need-reminder)
|
||||
)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "SAGELP32" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((< 0.625 f0-2)
|
||||
(if (nonzero? (get-task-status (game-task citadel-sage-green)))
|
||||
(dummy-11 (-> obj ambient) "SAGELP33" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((< 0.5 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP34" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.375 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP35" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.25 f0-2)
|
||||
(dummy-11 (-> obj ambient) "SAGELP36" #f (-> obj root-override trans))
|
||||
)
|
||||
((< 0.125 f0-2)
|
||||
(if (nonzero? (get-task-status (game-task citadel-sage-green)))
|
||||
(dummy-11 (-> obj ambient) "SAGELP37" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
((!=
|
||||
(get-task-status (game-task citadel-sage-green))
|
||||
(task-status need-resolution)
|
||||
)
|
||||
(dummy-11 (-> obj ambient) "SAGELP38" #f (-> obj root-override trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (sage-villagec)
|
||||
:virtual #t
|
||||
:trans
|
||||
(behavior ()
|
||||
(case (get-task-status (game-task village3-button))
|
||||
(((task-status need-introduction))
|
||||
(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)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate play-anim (sage-villagec)
|
||||
:virtual #t
|
||||
:exit
|
||||
(behavior ()
|
||||
(set! (-> self draw bounds w) 10240.0)
|
||||
(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) 'end-mode)
|
||||
(send-event-function (-> self assistant extra process) a1-0)
|
||||
)
|
||||
(let ((a0-2 (handle->process (-> self evilbro))))
|
||||
(if a0-2
|
||||
(deactivate a0-2)
|
||||
)
|
||||
)
|
||||
(let ((a0-6 (handle->process (-> self evilsis))))
|
||||
(if a0-6
|
||||
(deactivate a0-6)
|
||||
)
|
||||
)
|
||||
((-> (method-of-type process-taskable play-anim) exit))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 39 of type sage-villagec
|
||||
(defmethod should-display? sage-villagec ((obj sage-villagec))
|
||||
(cond
|
||||
((not
|
||||
(closed?
|
||||
(-> obj tasks)
|
||||
(game-task village3-button)
|
||||
(task-status need-hint)
|
||||
)
|
||||
)
|
||||
(dummy-33 obj)
|
||||
#f
|
||||
)
|
||||
((sages-kidnapped?)
|
||||
(dummy-33 obj)
|
||||
#f
|
||||
)
|
||||
(else
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 48 of type sage-villagec
|
||||
(defmethod draw-npc-shadow sage-villagec ((obj sage-villagec))
|
||||
(let ((v1-1 (-> obj draw shadow-ctrl)))
|
||||
(cond
|
||||
((and
|
||||
(-> obj draw shadow)
|
||||
(zero? (-> obj draw cur-lod))
|
||||
(logtest? (-> obj draw status) 8)
|
||||
)
|
||||
(set! (-> v1-1 settings flags) (logand -9 (-> v1-1 settings flags)))
|
||||
(set! (-> v1-1 settings flags) (logand -5 (-> v1-1 settings flags)))
|
||||
(set! (-> v1-1 settings bot-plane w) 20480.0)
|
||||
(let ((a0-8 v1-1))
|
||||
(set! (-> a0-8 settings flags) (logand -33 (-> a0-8 settings flags)))
|
||||
)
|
||||
0
|
||||
(dummy-14 v1-1)
|
||||
)
|
||||
(else
|
||||
(logior! (-> v1-1 settings flags) 32)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type sage-villagec
|
||||
(defmethod copy-defaults! sage-villagec ((obj sage-villagec) (arg0 res-lump))
|
||||
(dummy-40 obj arg0 *sage-village3-sg* 3 40 (new 'static 'vector :w 8192.0) 5)
|
||||
(set! (-> obj tasks) (get-task-control (game-task cave-dark-crystals)))
|
||||
(set! (-> obj assistant) (entity-actor-lookup arg0 'alt-actor 0))
|
||||
(set! (-> obj evilbro) (the-as handle #f))
|
||||
(set! (-> obj evilsis) (the-as handle #f))
|
||||
(set! (-> obj sound-flava) (the-as uint 5))
|
||||
(dummy-42 obj)
|
||||
(none)
|
||||
)
|
||||
@@ -625,7 +625,7 @@
|
||||
:volume #x400
|
||||
:fo-max 50
|
||||
)
|
||||
(-> obj root trans)
|
||||
(-> obj root-override trans)
|
||||
)
|
||||
)
|
||||
(set! (-> obj first-task) (the-as uint (-> arg0 extra perm task)))
|
||||
@@ -638,7 +638,7 @@
|
||||
(set! (-> obj left-eye-cell) (the-as handle #f))
|
||||
(logior! (-> obj draw status) 32)
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector))
|
||||
(s5-1 (lambda :behavior oracle () (let* ((gp-0 (-> self root))
|
||||
(s5-1 (lambda :behavior oracle () (let* ((gp-0 (-> self root-override))
|
||||
(v1-1
|
||||
(if
|
||||
(and
|
||||
@@ -653,14 +653,15 @@
|
||||
)
|
||||
(a1-1 (if v1-1
|
||||
(->
|
||||
(the-as
|
||||
collide-shape
|
||||
v1-1
|
||||
)
|
||||
v1-1
|
||||
root-prim
|
||||
prim-core
|
||||
)
|
||||
(-> self root trans)
|
||||
(->
|
||||
self
|
||||
root-override
|
||||
trans
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -15,8 +15,9 @@ namespace {
|
||||
|
||||
// list of object files to ignore during reference checks
|
||||
const std::unordered_set<std::string> g_files_to_skip_compiling = {
|
||||
"timer", // accessing timer regs
|
||||
"display", // interrupt handlers
|
||||
"timer", // accessing timer regs
|
||||
"display", // interrupt handlers
|
||||
"target-snowball", // screwed up labels, likely cut content
|
||||
};
|
||||
|
||||
// the functions we expect the decompiler to skip
|
||||
@@ -186,7 +187,8 @@ std::vector<decomp_meta> g_object_files_to_decompile_or_ref_check;
|
||||
std::vector<std::string> dgos = {
|
||||
"CGO/KERNEL.CGO", "CGO/ENGINE.CGO", "CGO/GAME.CGO", "DGO/BEA.DGO", "DGO/INT.DGO", "DGO/VI1.DGO",
|
||||
"DGO/VI2.DGO", "DGO/VI3.DGO", "DGO/CIT.DGO", "DGO/MIS.DGO", "DGO/JUB.DGO", "DGO/SUN.DGO",
|
||||
"DGO/DEM.DGO", "DGO/FIN.DGO", "DGO/JUN.DGO", "DGO/FIC.DGO", "DGO/OGR.DGO"};
|
||||
"DGO/DEM.DGO", "DGO/FIN.DGO", "DGO/JUN.DGO", "DGO/FIC.DGO", "DGO/SNO.DGO", "DGO/SWA.DGO",
|
||||
"DGO/MAI.DGO", "DGO/ROB.DGO", "DGO/LAV.DGO", "DGO/OGR.DGO"};
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
Reference in New Issue
Block a user