mirror of
https://github.com/open-goal/jak-project
synced 2026-09-03 02:14:07 -04:00
d/jak2: mostly complete sewer-enemy and sewer-board missions (#2108)
Finishes the following files: - `sewer-scenes` - `sewgun-turret` - `fordumpc-part` - `sewer-obs` - `sewer-obs2` - `gator` Fixes #2052
This commit is contained in:
+122
-151
@@ -33539,6 +33539,16 @@
|
||||
(prevent-jump)
|
||||
(elevator-flags-6)
|
||||
(elevator-flags-7)
|
||||
(elevator-flags-8)
|
||||
(elevator-flags-9)
|
||||
(elevator-flags-10)
|
||||
(elevator-flags-11)
|
||||
(elevator-flags-12)
|
||||
(elevator-flags-13)
|
||||
(elevator-flags-14)
|
||||
(elevator-flags-15)
|
||||
(elevator-flags-16)
|
||||
(elevator-flags-17)
|
||||
)
|
||||
;; ---elevator:elevator-flags
|
||||
|
||||
@@ -40631,12 +40641,11 @@
|
||||
;; jinx-bomb ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
#|
|
||||
(deftype jinx-bomb (process-focusable)
|
||||
((fuse-delay uint32 :offset-assert 200)
|
||||
(attack-id uint32 :offset-assert 204)
|
||||
(shake-screen? basic :offset-assert 208)
|
||||
(explode-func basic :offset-assert 212)
|
||||
((fuse-delay uint32 :offset-assert 204)
|
||||
(attack-id uint32 :offset-assert 208)
|
||||
(shake-screen? symbol :offset-assert 212)
|
||||
(explode-func basic :offset-assert 216)
|
||||
)
|
||||
:method-count-assert 29
|
||||
:size-assert #xdc
|
||||
@@ -40646,9 +40655,8 @@
|
||||
(explode () _type_ :state 28)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
;; (define-extern jinx-bomb-init-by-other function)
|
||||
(define-extern jinx-bomb-init-by-other (function vector quaternion none :behavior jinx-bomb))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; jinx ;;
|
||||
@@ -40760,27 +40768,24 @@
|
||||
;; sewer-obs ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
#|
|
||||
(deftype sew-blade (process-drawable)
|
||||
((y-min float :offset-assert 196)
|
||||
(y-max float :offset-assert 200)
|
||||
(snd-water uint128 :offset-assert 204)
|
||||
(snd-no-water uint128 :offset-assert 220)
|
||||
(last-sound int32 :offset-assert 236)
|
||||
(attack-id uint32 :offset-assert 240)
|
||||
((y-min float :offset-assert 200)
|
||||
(y-max float :offset-assert 204)
|
||||
(snd-water uint128 :offset-assert 208)
|
||||
(snd-no-water uint128 :offset-assert 224)
|
||||
(last-sound int32 :offset-assert 240)
|
||||
(attack-id uint32 :offset-assert 244)
|
||||
)
|
||||
:method-count-assert 21
|
||||
:size-assert #xf8
|
||||
:flag-assert #x15008000f8
|
||||
(:methods
|
||||
(sew-blade-method-20 () none 20)
|
||||
(sew-blade-method-20 (_type_) none 20)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-single-blade (sew-blade)
|
||||
((quat quaternion :inline :offset-assert 252)
|
||||
((quat quaternion :inline :offset-assert 256)
|
||||
)
|
||||
:method-count-assert 22
|
||||
:size-assert #x110
|
||||
@@ -40789,13 +40794,11 @@
|
||||
(idle () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-tri-blade (sew-blade)
|
||||
((anim-time float :offset-assert 244)
|
||||
(anim-offset float :offset-assert 248)
|
||||
(switch-state int32 :offset-assert 252)
|
||||
((anim-time float :offset-assert 248)
|
||||
(anim-offset float :offset-assert 252)
|
||||
(switch-state int32 :offset-assert 256)
|
||||
)
|
||||
:method-count-assert 22
|
||||
:size-assert #x104
|
||||
@@ -40804,9 +40807,7 @@
|
||||
(idle () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-arm-blade (sew-blade)
|
||||
()
|
||||
:method-count-assert 22
|
||||
@@ -40816,9 +40817,7 @@
|
||||
(idle () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-multi-blade (sew-blade)
|
||||
()
|
||||
:method-count-assert 22
|
||||
@@ -40828,11 +40827,11 @@
|
||||
(idle () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-twist-blade (sew-blade)
|
||||
((no-collision-timer uint64 :offset-assert 244)
|
||||
(
|
||||
(root-overide collide-shape-moving :offset 128 :score 100)
|
||||
(no-collision-timer uint64 :offset-assert 248)
|
||||
)
|
||||
:method-count-assert 22
|
||||
:size-assert #x100
|
||||
@@ -40841,50 +40840,43 @@
|
||||
(idle () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-light-switch (process-drawable)
|
||||
()
|
||||
(
|
||||
(light-state symbol :offset-assert 200)
|
||||
(actor-group (pointer actor-group) :offset-assert 204)
|
||||
(actor-group-count int32 :offset-assert 208)
|
||||
)
|
||||
:method-count-assert 24
|
||||
:size-assert #xd4
|
||||
:flag-assert #x18006000d4
|
||||
;; Failed to read fields.
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(pressed () _type_ :state 21)
|
||||
(sew-light-switch-method-22 () none 22)
|
||||
(sew-light-switch-method-23 () none 23)
|
||||
(sew-light-switch-method-22 (_type_) none 22)
|
||||
(sew-light-switch-method-23 (_type_ symbol) none 23)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-light-control (process)
|
||||
((search-switches basic :offset-assert 124)
|
||||
(search-turrets basic :offset-assert 128)
|
||||
(switch-ent basic :offset-assert 132)
|
||||
(turret-ent basic :offset-assert 136)
|
||||
((search-switches basic :offset-assert 128)
|
||||
(search-turrets basic :offset-assert 132)
|
||||
(switch-ent entity-actor :offset-assert 136)
|
||||
(turret-ent entity-actor :offset-assert 140)
|
||||
)
|
||||
:method-count-assert 17
|
||||
:size-assert #x90
|
||||
:flag-assert #x1100100090
|
||||
(:methods
|
||||
(sew-light-control-method-9 () none 9)
|
||||
(sew-light-control-method-10 () none 10)
|
||||
(sew-light-control-method-11 () none 11)
|
||||
(sew-light-control-method-12 () none 12)
|
||||
(sew-light-control-method-13 () none 13)
|
||||
(idle () _type_ :state 14)
|
||||
(sew-light-control-method-15 () none 15)
|
||||
(sew-light-control-method-16 () none 16)
|
||||
(sew-light-control-method-15 (_type_ symbol symbol) float 15)
|
||||
(sew-light-control-method-16 (_type_ object vector float) symbol 16)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
;; (define-extern sew-tri-blade-joint-callback function)
|
||||
;; (define-extern sew-light-control-init-by-other function)
|
||||
;; (define-extern sewer-startup function)
|
||||
(define-extern sew-tri-blade-joint-callback (function draw-control cspace-array joint-control none))
|
||||
(define-extern sew-light-control-init-by-other (function entity-actor entity-actor none :behavior sew-light-control))
|
||||
(define-extern sewer-startup (function none))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; sewer-obs2 ;;
|
||||
@@ -40897,25 +40889,28 @@
|
||||
:size-assert #x174
|
||||
:flag-assert #x3201000174
|
||||
(:methods
|
||||
(sew-elevator-method-49 () none 49)
|
||||
(sew-elevator-method-49 (_type_ symbol) none 49)
|
||||
)
|
||||
)
|
||||
|
||||
#|
|
||||
(deftype sew-valve (process-drawable)
|
||||
()
|
||||
(
|
||||
(joint joint-mod-rotate-local :offset-assert 200)
|
||||
(actor-group (pointer actor-group) :offset-assert 204)
|
||||
(actor-group-count int32 :offset-assert 208)
|
||||
(water-height float :offset-assert 212)
|
||||
(spin float :offset-assert 216)
|
||||
(spin-rate float :offset-assert 220)
|
||||
)
|
||||
:method-count-assert 22
|
||||
:size-assert #xe0
|
||||
:flag-assert #x16006000e0
|
||||
;; Failed to read fields.
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(turn () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-mar-statue-debris (process-drawable)
|
||||
()
|
||||
:method-count-assert 21
|
||||
@@ -40925,9 +40920,7 @@
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-mar-statue-debris-b (process-drawable)
|
||||
()
|
||||
:method-count-assert 21
|
||||
@@ -40937,11 +40930,11 @@
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-mar-statue (process-drawable)
|
||||
((spawned-debris? basic :offset-assert 196)
|
||||
(
|
||||
(root-override collide-shape :offset 128 :score 100)
|
||||
(spawned-debris? symbol :offset-assert 200)
|
||||
)
|
||||
:method-count-assert 22
|
||||
:size-assert #xcc
|
||||
@@ -40951,9 +40944,7 @@
|
||||
(hidden () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-catwalk (drop-plat)
|
||||
()
|
||||
:method-count-assert 36
|
||||
@@ -40962,11 +40953,11 @@
|
||||
(:methods
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-mine (process-drawable)
|
||||
((last-time time-frame :offset-assert 196)
|
||||
(
|
||||
(root-override collide-shape-moving :offset 128 :score 100)
|
||||
(last-time time-frame :offset-assert 200)
|
||||
)
|
||||
:method-count-assert 23
|
||||
:size-assert #xd0
|
||||
@@ -40974,12 +40965,10 @@
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(die () _type_ :state 21)
|
||||
(sew-mine-method-22 () none 22)
|
||||
(sew-mine-method-22 (_type_) none 22)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-mine-a (sew-mine)
|
||||
()
|
||||
:method-count-assert 23
|
||||
@@ -40988,14 +40977,12 @@
|
||||
(:methods
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-mine-b (sew-mine)
|
||||
((base-height float :offset-assert 204)
|
||||
(center vector :inline :offset-assert 220)
|
||||
(time-skew uint64 :offset-assert 236)
|
||||
(period float :offset-assert 244)
|
||||
((base-height float :offset-assert 208)
|
||||
(center vector :inline :offset-assert 224)
|
||||
(time-skew uint64 :offset-assert 240)
|
||||
(period float :offset-assert 248)
|
||||
)
|
||||
:method-count-assert 23
|
||||
:size-assert #xfc
|
||||
@@ -41003,29 +40990,25 @@
|
||||
(:methods
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-wall (process-focusable)
|
||||
((deadly-radius float :offset-assert 200)
|
||||
(prev-deadly-radius float :offset-assert 204)
|
||||
(attack-id uint32 :offset-assert 208)
|
||||
(first-wall? basic :offset-assert 212)
|
||||
(anim basic :offset-assert 216)
|
||||
(art-name basic :offset-assert 220)
|
||||
((deadly-radius float :offset-assert 204)
|
||||
(prev-deadly-radius float :offset-assert 208)
|
||||
(attack-id uint32 :offset-assert 212)
|
||||
(first-wall? basic :offset-assert 216)
|
||||
(anim spool-anim :offset-assert 220)
|
||||
(art-name basic :offset-assert 224)
|
||||
)
|
||||
:method-count-assert 30
|
||||
:size-assert #xe4
|
||||
:flag-assert #x1e007000e4
|
||||
(:methods
|
||||
(idle () _type_ :state 27)
|
||||
(hit () _type_ :state 28)
|
||||
(sew-wall-method-29 () none 29)
|
||||
(hit (symbol) _type_ :state 28)
|
||||
(sew-wall-method-29 (_type_) none 29)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-grill (process-drawable)
|
||||
()
|
||||
:method-count-assert 21
|
||||
@@ -41035,14 +41018,12 @@
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-scare-grunt (grunt)
|
||||
((anim basic :offset-assert 688)
|
||||
(manipy uint32 :offset-assert 692)
|
||||
(spooled-sound-id uint32 :offset-assert 696)
|
||||
(grill-actor basic :offset-assert 700)
|
||||
((anim spool-anim :offset-assert 692)
|
||||
(manipy (pointer manipy) :offset-assert 696)
|
||||
(spooled-sound-id uint32 :offset-assert 700)
|
||||
(grill-actor entity-actor :offset-assert 704)
|
||||
)
|
||||
:method-count-assert 188
|
||||
:size-assert #x2c4
|
||||
@@ -41052,12 +41033,11 @@
|
||||
(scare () _type_ :state 187)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
;; (define-extern sew-mar-statue-debris-init-by-other function)
|
||||
;; (define-extern sew-mar-statue-debris-b-init-by-other function)
|
||||
;; (define-extern sew-mar-statue-event-handler function)
|
||||
;; (define-extern *sew-scare-grunt-nav-enemy-info* nav-enemy-info)
|
||||
(define-extern sew-mar-statue-debris-init-by-other (function none :behavior sew-mar-statue-debris))
|
||||
(define-extern sew-mar-statue-debris-b-init-by-other (function none :behavior sew-mar-statue-debris-b))
|
||||
(define-extern sew-mar-statue-event-handler (function process int symbol event-message-block object :behavior sew-mar-statue))
|
||||
(define-extern *sew-scare-grunt-nav-enemy-info* nav-enemy-info)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; hosehead ;;
|
||||
@@ -41187,34 +41167,32 @@
|
||||
;; (define-extern hosehead-fake-event-handler function)
|
||||
;; (define-extern hosehead-fake-init-by-other function)
|
||||
;; (define-extern *hosehead-fakes* array)
|
||||
;; (define-extern spawn-hosehead-fakes function)
|
||||
;; (define-extern hosehead-fake-trigger function)
|
||||
(define-extern spawn-hosehead-fakes (function none))
|
||||
(define-extern hosehead-fake-trigger (function int none))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; gator ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
#|
|
||||
(deftype gator (nav-enemy)
|
||||
((ocean-y float :offset-assert 600)
|
||||
(lock-nav-target basic :offset-assert 604)
|
||||
(new-facing vector :inline :offset-assert 620)
|
||||
(old-facing vector :inline :offset-assert 636)
|
||||
(turn-time time-frame :offset-assert 652)
|
||||
((ocean-y float :offset-assert 604)
|
||||
(lock-nav-target basic :offset-assert 608)
|
||||
(new-facing vector :inline :offset-assert 624)
|
||||
(old-facing vector :inline :offset-assert 640)
|
||||
(turn-time time-frame :offset-assert 656)
|
||||
)
|
||||
:method-count-assert 182
|
||||
:size-assert #x298
|
||||
:flag-assert #xb602200298
|
||||
(:methods
|
||||
(attack-forward () _type_ :state 178)
|
||||
(gator-method-179 () none 179)
|
||||
(gator-method-180 () none 180)
|
||||
(gator-method-181 () none 181)
|
||||
(gator-method-179 (_type_) float 179)
|
||||
(gator-method-180 (_type_ vector) vector 180)
|
||||
(gator-method-181 (_type_ float float symbol) time-frame 181)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
;; (define-extern *gator-nav-enemy-info* nav-enemy-info)
|
||||
(define-extern *gator-nav-enemy-info* nav-enemy-info)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; hal2-course ;;
|
||||
@@ -41316,85 +41294,78 @@
|
||||
;; sewer-scenes ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
#|
|
||||
(deftype fake-jinx-bomb-info (basic)
|
||||
((handle uint64 :offset-assert 8)
|
||||
((handle handle :offset-assert 8)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|#
|
||||
|
||||
;; (define-extern *fake-jinx-bomb-info* fake-jinx-bomb-info)
|
||||
(define-extern *fake-jinx-bomb-info* fake-jinx-bomb-info)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; sew-gunturret ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
#|
|
||||
(deftype gun-turret-params (structure)
|
||||
((normal-sg basic :offset-assert 0)
|
||||
(explode-sg basic :offset-assert 4)
|
||||
(enemy-info basic :offset-assert 8)
|
||||
((normal-sg skeleton-group :offset-assert 0)
|
||||
(explode-sg skeleton-group :offset-assert 4)
|
||||
(enemy-info enemy-info :offset-assert 8)
|
||||
(idle-anim int32 :offset-assert 12)
|
||||
(shoot-anim int32 :offset-assert 16)
|
||||
(track-joint int32 :offset-assert 20)
|
||||
(barrel-joint int32 :offset-assert 24)
|
||||
(gun-joint int32 :offset-assert 28)
|
||||
(hole-joints UNKNOWN 8 :offset-assert 32)
|
||||
(hole-joints int32 8 :offset-assert 32)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x40
|
||||
:flag-assert #x900000040
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype sew-gunturret (enemy)
|
||||
((gun-tilt-jm basic :offset-assert 528)
|
||||
(params gun-turret-params :offset-assert 532)
|
||||
(aim-pos vector :inline :offset-assert 540)
|
||||
(gun-twist float :offset-assert 556)
|
||||
(gun-tilt float :offset-assert 560)
|
||||
(desired-twist float :offset-assert 564)
|
||||
(desired-tilt float :offset-assert 568)
|
||||
(los-clear basic :offset-assert 572)
|
||||
(smoke-part basic :offset-assert 576)
|
||||
(casing-part basic :offset-assert 580)
|
||||
(flash-state basic :offset-assert 584)
|
||||
(can-shoot basic :offset-assert 588)
|
||||
(last-hit-time time-frame :offset-assert 596)
|
||||
(init-mat matrix :inline :offset-assert 604)
|
||||
(activate-distance float :offset-assert 668)
|
||||
((gun-tilt-jm joint-mod :offset-assert 532)
|
||||
(params gun-turret-params :offset-assert 536)
|
||||
(aim-pos vector :inline :offset-assert 544)
|
||||
(gun-twist float :offset-assert 560)
|
||||
(gun-tilt float :offset-assert 564)
|
||||
(desired-twist float :offset-assert 568)
|
||||
(desired-tilt float :offset-assert 572)
|
||||
(los-clear basic :offset-assert 576)
|
||||
(smoke-part sparticle-launch-control :offset-assert 580)
|
||||
(casing-part sparticle-launch-control :offset-assert 584)
|
||||
(flash-state basic :offset-assert 588)
|
||||
(can-shoot symbol :offset-assert 592)
|
||||
(last-hit-time time-frame :offset-assert 600)
|
||||
(init-mat matrix :inline :offset-assert 608)
|
||||
(activate-distance float :offset-assert 672)
|
||||
)
|
||||
:method-count-assert 142
|
||||
:size-assert #x2a4
|
||||
:flag-assert #x8e023002a4
|
||||
(:methods
|
||||
(sew-gunturret-method-137 () none 137)
|
||||
(sew-gunturret-method-138 () none 138)
|
||||
(sew-gunturret-method-139 () none 139)
|
||||
(sew-gunturret-method-140 () none 140)
|
||||
(sew-gunturret-method-141 () none 141)
|
||||
(sew-gunturret-method-137 (_type_ symbol) none 137)
|
||||
(sew-gunturret-method-138 (_type_) none 138)
|
||||
(sew-gunturret-method-139 (_type_) none 139)
|
||||
(sew-gunturret-method-140 (_type_ symbol) none 140)
|
||||
(sew-gunturret-method-141 (_type_) none 141)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype pal-gun-turret (sew-gunturret)
|
||||
()
|
||||
:method-count-assert 142
|
||||
:size-assert #x2a4
|
||||
:flag-assert #x8e023002a4
|
||||
(:methods
|
||||
(pal-gun-turret-method-140 (_type_ symbol) float :replace 140)
|
||||
)
|
||||
)
|
||||
|#
|
||||
|
||||
;; (define-extern *sew-gunturret-exploder-params* joint-exploder-static-params)
|
||||
;; (define-extern *sew-gunturret-enemy-info* enemy-info)
|
||||
;; (define-extern *pal-gun-turret-enemy-info* enemy-info)
|
||||
(define-extern *sew-gunturret-exploder-params* joint-exploder-static-params)
|
||||
(define-extern *sew-gunturret-enemy-info* enemy-info)
|
||||
(define-extern *pal-gun-turret-enemy-info* enemy-info)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ctypower ;;
|
||||
|
||||
@@ -676,5 +676,29 @@
|
||||
[21, "(function fort-robotank none)"],
|
||||
[22, "(function fort-robotank none)"],
|
||||
[23, "(function none)"]
|
||||
],
|
||||
"sewer-scenes": [
|
||||
[0, "(function object :behavior task-manager)"],
|
||||
[1, "(function symbol :behavior task-manager)"],
|
||||
[5, "(function none :behavior scene-player)"],
|
||||
[6, "(function none :behavior scene-player)"],
|
||||
[7, "(function none :behavior scene-player)"],
|
||||
[8, "(function none :behavior scene-player)"],
|
||||
[9, "(function none :behavior scene-player)"],
|
||||
[10, "(function none :behavior scene-player)"],
|
||||
[11, "(function none :behavior scene-player)"],
|
||||
[12, "(function none :behavior scene-player)"],
|
||||
[13, "(function none :behavior scene-player)"],
|
||||
[14, "(function none :behavior scene-player)"],
|
||||
[15, "(function none :behavior scene-player)"],
|
||||
[16, "(function none :behavior scene-player)"],
|
||||
[17, "(function none :behavior scene-player)"],
|
||||
[18, "(function none :behavior scene-player)"],
|
||||
[19, "(function none :behavior scene-player)"],
|
||||
[20, "(function none :behavior scene-player)"],
|
||||
[21, "(function float :behavior scene-player)"],
|
||||
[22, "(function float :behavior scene-player)"],
|
||||
[23, "(function float :behavior scene-player)"],
|
||||
[24, "(function float :behavior scene-player)"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -211,10 +211,12 @@
|
||||
"(method 11 mtn-step-plat-rocks-a)",
|
||||
"(method 11 mtn-step-plat-rocks-b)",
|
||||
"(method 11 mtn-step-plat-rocks-c)",
|
||||
"(method 22 fort-floor-spike-b)",
|
||||
"prototypes-game-visible-set!",
|
||||
"(method 22 fort-floor-spike-a)",
|
||||
"(method 22 fort-floor-spike-b)",
|
||||
"(method 22 fort-floor-spike-c)"
|
||||
"(method 22 fort-floor-spike-c)",
|
||||
"(method 11 sew-catwalk)"
|
||||
],
|
||||
|
||||
// If format is used with the wrong number of arguments,
|
||||
@@ -481,6 +483,9 @@
|
||||
"(method 15 rigid-body)": [0, 1, 2, 5],
|
||||
"(method 63 collide-shape-moving)": [
|
||||
0, 1, 2, 3, 4, 5, 6, 10, 12, 13, 14, 28, 38, 39, 40, 44
|
||||
],
|
||||
"(method 181 gator)": [
|
||||
2, 3, 7, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 30
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
"DGO/GGA.DGO",
|
||||
"DGO/TOD.DGO",
|
||||
"DGO/MCN.DGO",
|
||||
// "DGO/SEW.DGO",
|
||||
"DGO/SEW.DGO",
|
||||
"DGO/VIN.DGO",
|
||||
"DGO/CGA.DGO",
|
||||
"DGO/CMB.DGO",
|
||||
@@ -219,6 +219,8 @@
|
||||
"PRI.DGO",
|
||||
"RUI.DGO",
|
||||
"SAG.DGO",
|
||||
"SEB.DGO",
|
||||
"SEW.DGO",
|
||||
"SKA.DGO",
|
||||
"STA.DGO",
|
||||
"TOA.DGO",
|
||||
|
||||
@@ -939,5 +939,21 @@
|
||||
],
|
||||
"dig-obs": [["L111", "(inline-array vector)", 2]],
|
||||
"dig1-obs": [["L91", "(inline-array vector)", 8]],
|
||||
"minimap": [["L250", "(inline-array minimap-class-node)", 71]]
|
||||
"minimap": [["L250", "(inline-array minimap-class-node)", 71]],
|
||||
"sew-gunturret": [
|
||||
["L106", "attack-info"],
|
||||
["L104", "gun-turret-params"],
|
||||
["L94", "gun-turret-params"]
|
||||
],
|
||||
"sewer-obs": [
|
||||
["L184", "attack-info"],
|
||||
["L177", "attack-info"],
|
||||
["L171", "attack-info"],
|
||||
["L165", "attack-info"],
|
||||
["L159", "attack-info"]
|
||||
],
|
||||
"sewer-obs2": [
|
||||
["L211", "attack-info"],
|
||||
["L196", "attack-info"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1444,5 +1444,6 @@
|
||||
"(method 14 trail-graph)": [[16, ["inline-array", "vector", 2]]],
|
||||
"(method 13 trail-graph)": [[16, ["inline-array", "vector", 2]]],
|
||||
"(method 19 trail-graph)": [[16, "trail-vis-work"]],
|
||||
"(method 15 trail-graph)": [[16, "trail-conn-search"]]
|
||||
"(method 15 trail-graph)": [[16, "trail-conn-search"]],
|
||||
"(anon-function 20 sewer-scenes)": [[16, "vector"]]
|
||||
}
|
||||
|
||||
@@ -6720,5 +6720,52 @@
|
||||
[20, "a0", "(pointer uint16)"],
|
||||
[33, "a3", "trail-conn"],
|
||||
[37, "a3", "trail-conn"]
|
||||
],
|
||||
"(method 137 sew-gunturret)": [[[19, 23], "a0", "process-focusable"]],
|
||||
"(method 138 sew-gunturret)": [[[15, 19], "a0", "process-focusable"]],
|
||||
"(method 140 pal-gun-turret)": [
|
||||
[9, "t9", "(function sew-gunturret symbol none)"]
|
||||
],
|
||||
"(anon-function 0 sewer-scenes)": [[79, "v1", "float"]],
|
||||
"(event idle sew-single-blade)": [[15, "s4", "process-focusable"]],
|
||||
"(event idle sew-multi-blade)": [[15, "s4", "process-focusable"]],
|
||||
"(event idle sew-twist-blade)": [[15, "s4", "process-focusable"]],
|
||||
"(code pressed sew-light-switch)": [[10, "v1", "art-joint-anim"]],
|
||||
"(post idle sew-light-control)": [[20, "v1", "sew-light-switch"]],
|
||||
"sew-tri-blade-joint-callback": [[[1, 82], "gp", "sew-tri-blade"]],
|
||||
"(method 49 sew-elevator)": [[2, "v1", "collide-shape-prim-group"]],
|
||||
"(post running sew-elevator)": [[4, "t9", "(function none)"]],
|
||||
"(method 10 sew-elevator)": [[10, "t9", "(function elevator none)"]],
|
||||
"(event idle sew-valve)": [[4, "v1", "attack-info"]],
|
||||
"(method 7 sew-valve)": [
|
||||
[14, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
"sew-mar-statue-debris-init-by-other": [
|
||||
[[144, 157], "gp", "process-drawable"]
|
||||
],
|
||||
"sew-mar-statue-debris-b-init-by-other": [
|
||||
[[12, 25], "gp", "process-drawable"]
|
||||
],
|
||||
"(event idle sew-mine)": [[15, "s4", "process-focusable"]],
|
||||
"(post idle sew-mine-b)": [[4, "t9", "(function none)"]],
|
||||
"(code hit sew-wall)": [
|
||||
[[7, 10], "v1", "collide-shape-prim-group"],
|
||||
[[100, 107], "a0", "collide-shape-prim-group"],
|
||||
[[109, 116], "a0", "collide-shape-prim-group"],
|
||||
[68, "v0", "object"]
|
||||
],
|
||||
"(code waiting sew-scare-grunt)": [[10, "v1", "art-joint-anim"]],
|
||||
"(enter scare sew-scare-grunt)": [[[71, 81], "gp", "sew-grill"]],
|
||||
"(exit scare sew-scare-grunt)": [[[6, 10], "v1", "sew-grill"]],
|
||||
"(code fall sew-catwalk)": [[39, "v0", "object"]],
|
||||
"(post scare sew-scare-grunt)": [[51, "v0", "sound-rpc-set-param"]],
|
||||
"(method 11 sew-valve)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
["_stack_", 32, "res-tag"]
|
||||
],
|
||||
"(trans attack-forward gator)": [[[19, 23], "gp", "process-focusable"]],
|
||||
"(code attack-forward gator)": [[14, "v1", "art-joint-anim"]],
|
||||
"(method 11 sew-light-switch)": [
|
||||
["_stack_", 16, "res-tag"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2276,5 +2276,8 @@
|
||||
},
|
||||
"(method 0 joint-exploder-tuning)": {
|
||||
"vars": { "v0-0": ["v0-0", "joint-exploder-tuning"] }
|
||||
},
|
||||
"(method 181 gator)": {
|
||||
"vars": { "s4-0": ["s4-0", "art-joint-anim"] }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,16 @@
|
||||
(prevent-jump)
|
||||
(elevator-flags-6)
|
||||
(elevator-flags-7)
|
||||
(elevator-flags-8)
|
||||
(elevator-flags-9)
|
||||
(elevator-flags-10)
|
||||
(elevator-flags-11)
|
||||
(elevator-flags-12)
|
||||
(elevator-flags-13)
|
||||
(elevator-flags-14)
|
||||
(elevator-flags-15)
|
||||
(elevator-flags-16)
|
||||
(elevator-flags-17)
|
||||
)
|
||||
;; ---elevator-flags
|
||||
|
||||
|
||||
+35
-93
@@ -3951,32 +3951,27 @@
|
||||
;; ;; SEW
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "SEW.DGO" "sew.gd")
|
||||
(cgo "SEW.DGO" "sew.gd")
|
||||
|
||||
;; (copy-textures 1059 1060 1066 2270 3479)
|
||||
(copy-textures 1059 1060 1066 2270 3479)
|
||||
|
||||
;; (copy-gos
|
||||
;; "daxter-highres-ag"
|
||||
;; "grunt-ag"
|
||||
;; "jak-highres-ag"
|
||||
;; "amphibian-ag"
|
||||
;; "sew-catwalk-ag"
|
||||
;; "sew-multi-blade-ag"
|
||||
;; "fodder-ag"
|
||||
;; "sew-gunturret-ag"
|
||||
;; "mar-statue-ag"
|
||||
;; "sew-twist-blade-ag"
|
||||
;; "sew-tri-blade-ag"
|
||||
;; "sew-single-blade-ag"
|
||||
;; "mine-a-ag"
|
||||
;; "sew-valve-ag"
|
||||
;; "mine-b-ag"
|
||||
;; "sew-arm-blade-ag"
|
||||
;; "gold-key-ag"
|
||||
;; "light-switch-ag"
|
||||
;; "grill-ag"
|
||||
;; "sewer-vis"
|
||||
;; )
|
||||
(copy-gos
|
||||
"sew-catwalk-ag"
|
||||
"sew-multi-blade-ag"
|
||||
"sew-gunturret-ag"
|
||||
"mar-statue-ag"
|
||||
"sew-twist-blade-ag"
|
||||
"sew-tri-blade-ag"
|
||||
"sew-single-blade-ag"
|
||||
"mine-a-ag"
|
||||
"sew-valve-ag"
|
||||
"mine-b-ag"
|
||||
"sew-arm-blade-ag"
|
||||
"gold-key-ag"
|
||||
"light-switch-ag"
|
||||
"grill-ag"
|
||||
"sewer-vis"
|
||||
)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; SKA
|
||||
@@ -4217,84 +4212,31 @@
|
||||
;; ;; SWB
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "SWB.DGO" "swb.gd")
|
||||
(cgo "SWB.DGO" "swb.gd")
|
||||
|
||||
;; (goal-src-sequence
|
||||
;; ""
|
||||
;; :deps ("$OUT/obj/los-control.o")
|
||||
;; "levels/common/ai/ai-task-h.gc"
|
||||
;; "levels/common/ai/bot-h.gc"
|
||||
;; "levels/common/ai/bot.gc"
|
||||
;; "levels/common/ai/bot-states.gc"
|
||||
;; "levels/undefined/hal-h.gc"
|
||||
;; "levels/undefined/hal-task.gc"
|
||||
;; "levels/undefined/hal.gc"
|
||||
;; "levels/undefined/ruf-h.gc"
|
||||
;; "levels/undefined/ruf-task.gc"
|
||||
;; "levels/undefined/ruf.gc"
|
||||
;; "levels/undefined/ruf-states.gc"
|
||||
;; "levels/sewer/escort/jinx-h.gc"
|
||||
;; "levels/sewer/escort/jinx-shot.gc"
|
||||
;; "levels/sewer/escort/jinx-bomb.gc"
|
||||
;; "levels/sewer/escort/jinx.gc"
|
||||
;; "levels/sewer/escort/jinx-states.gc"
|
||||
;; "levels/sewer/escort/mog-h.gc"
|
||||
;; "levels/sewer/escort/mog.gc"
|
||||
;; "levels/sewer/escort/grim-h.gc"
|
||||
;; "levels/sewer/escort/grim.gc"
|
||||
;; "levels/sewer/sewer-part.gc"
|
||||
;; "levels/sewer/sewer-ocean.gc"
|
||||
;; "levels/sewer/sewer-obs.gc"
|
||||
;; "levels/sewer/sewer-obs2.gc"
|
||||
;; "levels/sewer/hosehead.gc"
|
||||
;; "levels/sewer/hosehead-fake.gc"
|
||||
;; "levels/common/enemy/amphibian/amphibian.gc"
|
||||
;; "levels/sewer/gator.gc"
|
||||
;; "levels/common/enemy/fodder/fodder.gc"
|
||||
;; "levels/sewer/hal2-course.gc"
|
||||
;; "levels/sewer/mog2-course.gc"
|
||||
;; "levels/sewer/jinx2-course.gc"
|
||||
;; "levels/sewer/grim2-course.gc"
|
||||
;; "levels/sewer/sewer-scenes.gc"
|
||||
;; "levels/common/entities/sew-gunturret.gc"
|
||||
;; )
|
||||
(copy-textures 1372 1373 1458)
|
||||
|
||||
;; (copy-textures 1372 1373 1458)
|
||||
|
||||
;; (copy-gos
|
||||
;; "com-airlock-inner-ag"
|
||||
;; "sew-elevator-ag"
|
||||
;; "sewescb-vis"
|
||||
;; )
|
||||
(copy-gos
|
||||
"sewescb-vis"
|
||||
)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; SWE
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "SWE.DGO" "swe.gd")
|
||||
(cgo "SWE.DGO" "swe.gd")
|
||||
|
||||
;; (copy-textures 1370 1387 1371 2293 3478 3415)
|
||||
(copy-textures 1370 1387 1371 2293 3478 3415)
|
||||
|
||||
;; (copy-gos
|
||||
;; "jinx-ag"
|
||||
;; "daxter-highres-ag"
|
||||
;; "jak-highres-ag"
|
||||
;; "hosehead-ag"
|
||||
;; "sew-wall-ag"
|
||||
;; "sew-mar-statue-explode-ag"
|
||||
;; "sew-multi-blade-ag"
|
||||
;; "mar-statue-ag"
|
||||
;; "sew-twist-blade-ag"
|
||||
;; "heart-of-mar-ag"
|
||||
;; "mine-a-ag"
|
||||
;; "mine-b-ag"
|
||||
;; "sew-arm-blade-ag"
|
||||
;; "light-switch-ag"
|
||||
;; "jinx-bomb-ag"
|
||||
;; "grill-ag"
|
||||
;; "particleman-ag"
|
||||
;; "sewesc-vis"
|
||||
;; )
|
||||
(copy-gos
|
||||
"jinx-ag"
|
||||
"hosehead-ag"
|
||||
"sew-wall-ag"
|
||||
"sew-mar-statue-explode-ag"
|
||||
"heart-of-mar-ag"
|
||||
"jinx-bomb-ag"
|
||||
"sewesc-vis"
|
||||
)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; TBO
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,5 +5,22 @@
|
||||
;; name in dgo: jinx-bomb
|
||||
;; dgos: SEB, SWB, UNB
|
||||
|
||||
(deftype jinx-bomb (process-focusable)
|
||||
((fuse-delay uint32 :offset-assert 204)
|
||||
(attack-id uint32 :offset-assert 208)
|
||||
(shake-screen? symbol :offset-assert 212)
|
||||
(explode-func basic :offset-assert 216)
|
||||
)
|
||||
:method-count-assert 29
|
||||
:size-assert #xdc
|
||||
:flag-assert #x1d006000dc
|
||||
(:methods
|
||||
(idle () _type_ :state 27)
|
||||
(explode () _type_ :state 28)
|
||||
)
|
||||
)
|
||||
|
||||
(define-extern jinx-bomb-init-by-other (function vector quaternion none :behavior jinx-bomb))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
||||
@@ -7,3 +7,597 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defskelgroup skel-gator amphibian 0 -1
|
||||
((1 (meters 20)) (2 (meters 999999)))
|
||||
:bounds (static-spherem 0 1 0 5.5)
|
||||
)
|
||||
|
||||
(deftype gator (nav-enemy)
|
||||
((ocean-y float :offset-assert 604)
|
||||
(lock-nav-target basic :offset-assert 608)
|
||||
(new-facing vector :inline :offset-assert 624)
|
||||
(old-facing vector :inline :offset-assert 640)
|
||||
(turn-time time-frame :offset-assert 656)
|
||||
)
|
||||
:heap-base #x220
|
||||
:method-count-assert 182
|
||||
:size-assert #x298
|
||||
:flag-assert #xb602200298
|
||||
(:methods
|
||||
(attack-forward () _type_ :state 178)
|
||||
(gator-method-179 (_type_) float 179)
|
||||
(gator-method-180 (_type_ vector) vector 180)
|
||||
(gator-method-181 (_type_ float float symbol) time-frame 181)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(define *gator-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x64640d01 #x0 #x0)
|
||||
:idle-anim 13
|
||||
:notice-anim 13
|
||||
:hostile-anim 14
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 13
|
||||
:jump-in-air-anim 13
|
||||
:jump-land-anim 13
|
||||
:neck-joint -1
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "gator-hit")
|
||||
:sound-die (static-sound-name "gator-die")
|
||||
:notice-distance (meters 80)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 40)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 8)
|
||||
:walk-turning-acceleration (meters 10)
|
||||
:maximum-rotation-rate (degrees 200.00002)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *gator-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
(defmethod enemy-method-74 gator ((obj gator) (arg0 process) (arg1 object) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('hit-knocked)
|
||||
(when (= (-> obj incoming knocked-type) (knocked-type knocked-type-4))
|
||||
(set! (-> obj incoming knocked-type) (knocked-type knocked-type-0))
|
||||
0
|
||||
)
|
||||
((method-of-type nav-enemy enemy-method-74) obj arg0 arg1 arg2 arg3)
|
||||
)
|
||||
(('track)
|
||||
#f
|
||||
)
|
||||
(else
|
||||
((method-of-type nav-enemy enemy-method-74) obj arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod gator-method-179 gator ((obj gator))
|
||||
(set! (-> obj ocean-y) (get-height *ocean* (-> obj root-override2 trans) #t))
|
||||
(set! (-> obj root-override2 trans y) (+ -10240.0 (-> obj ocean-y)))
|
||||
)
|
||||
|
||||
(defmethod gator-method-180 gator ((obj gator) (arg0 vector))
|
||||
(let ((a0-3 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> obj root-override2 quat))))
|
||||
(set! (-> arg0 quad) (-> a0-3 vector 2 quad))
|
||||
)
|
||||
arg0
|
||||
)
|
||||
|
||||
(defmethod gator-method-181 gator ((obj gator) (arg0 float) (arg1 float) (arg2 symbol))
|
||||
(local-vars (v1-17 object) (a0-5 object))
|
||||
(with-pp
|
||||
(let ((f30-0 (vector-dot (-> obj new-facing) (-> obj old-facing)))
|
||||
(s5-0 75)
|
||||
(s4-0 (the-as art-joint-anim (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(b! (not arg2) cfg-26 :delay (nop!))
|
||||
(set! s5-0 18)
|
||||
(b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-8 :delay #f)
|
||||
(if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0)
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 40)))
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 39)))
|
||||
)
|
||||
(b! #t cfg-25 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(let ((v1-16 (< (cos (* 182.04445 arg1)) f30-0)))
|
||||
(b! v1-16 cfg-23 :likely-delay (set! v1-17 v1-16))
|
||||
)
|
||||
(let ((v1-20 (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
(b! (not v1-20) cfg-21 :likely-delay (set! a0-5 v1-20))
|
||||
(let ((a1-3 (= v1-20 (-> obj draw art-group data 14))))
|
||||
(b! a1-3 cfg-21 :likely-delay (set! a0-5 a1-3))
|
||||
)
|
||||
(let ((a1-4 (= v1-20 (-> obj draw art-group data 40))))
|
||||
(b! a1-4 cfg-21 :likely-delay (set! a0-5 a1-4))
|
||||
)
|
||||
(set! a0-5 (= v1-20 (-> obj draw art-group data 39)))
|
||||
)
|
||||
(label cfg-21)
|
||||
(b! (not a0-5) cfg-23 :delay (set! v1-17 #t))
|
||||
(set! v1-17 #f)
|
||||
(label cfg-23)
|
||||
(if v1-17
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 14)))
|
||||
)
|
||||
(label cfg-25)
|
||||
(b! #t cfg-48 :delay (nop!))
|
||||
(label cfg-26)
|
||||
(b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-31 :delay #f)
|
||||
(if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0)
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 38)))
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 37)))
|
||||
)
|
||||
(b! #t cfg-48 :delay (nop!))
|
||||
(label cfg-31)
|
||||
(if (or (< (cos (* 182.04445 arg1)) f30-0) (let ((v1-41 (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
(not (and v1-41 (or (= v1-41 (-> obj draw art-group data 13))
|
||||
(= v1-41 (-> obj draw art-group data 38))
|
||||
(= v1-41 (-> obj draw art-group data 37))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 13)))
|
||||
)
|
||||
(label cfg-48)
|
||||
(let ((v1-50 (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (not (and v1-50 (= v1-50 (the-as art-element s4-0))))
|
||||
(>= (- (-> pp clock frame-counter) (the-as time-frame s5-0)) (-> obj turn-time))
|
||||
)
|
||||
(let ((f30-2 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))))
|
||||
(ja-channel-push! 1 (the-as time-frame s5-0))
|
||||
(set! (-> obj skel root-channel 0 frame-group) s4-0)
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(set! (-> s5-1 num-func) num-func-identity)
|
||||
(set! (-> s5-1 frame-num) (* f30-2 (the float (ja-num-frames 0))))
|
||||
)
|
||||
)
|
||||
(let ((v0-4 (-> pp clock frame-counter)))
|
||||
(set! (-> obj turn-time) v0-4)
|
||||
v0-4
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch vector vs none.
|
||||
(defmethod enemy-method-55 gator ((obj gator))
|
||||
(let ((t9-0 (method-of-type nav-enemy enemy-method-55)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(gator-method-179 obj)
|
||||
(set! (-> obj old-facing quad) (-> obj new-facing quad))
|
||||
(gator-method-180 obj (-> obj new-facing))
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod enemy-method-56 gator ((obj gator) (arg0 process) (arg1 event-message-block))
|
||||
0
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod go-hostile gator ((obj gator))
|
||||
(go (method-of-object obj hostile))
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod enemy-method-107 gator ((obj gator))
|
||||
(let ((gp-0 ((method-of-type nav-enemy enemy-method-107) obj)))
|
||||
(if (and gp-0 (< (+ 1024.0 (get-height *ocean* (get-trans gp-0 0) #t)) (-> (get-trans gp-0 1) y)))
|
||||
(set! gp-0 (the-as process-focusable #f))
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod enemy-method-98 gator ((obj gator) (arg0 process-focusable) (arg1 vector))
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector)))
|
||||
(when (and (= *target* arg0) (not arg1) (= (-> *target* control ground-pat material) (pat-material waterbottom)))
|
||||
(set! (-> s4-0 quad) (-> (get-trans arg0 0) quad))
|
||||
(set! (-> s4-0 y) (get-height *ocean* s4-0 #t))
|
||||
(set! arg1 s4-0)
|
||||
)
|
||||
)
|
||||
((method-of-type nav-enemy enemy-method-98) obj arg0 arg1)
|
||||
)
|
||||
|
||||
(defstate hostile (gator)
|
||||
:virtual #t
|
||||
:trans (behavior ()
|
||||
(let ((t9-0 (-> (method-of-type nav-enemy hostile) trans)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(let ((a0-1 (enemy-method-107 self)))
|
||||
(when a0-1
|
||||
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (get-trans a0-1 0) (-> self root-override2 trans)))
|
||||
(a0-4 (-> self nav state))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> a0-4 heading quad))
|
||||
0
|
||||
(let ((v1-10 (vector-normalize-ret-len! gp-1 1.0)))
|
||||
(if (and (>= #x47000000 (the-as int v1-10)) (< (cos 5461.3335) (vector-dot gp-1 s5-0)))
|
||||
(go-virtual attack-forward)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
|
||||
(until #f
|
||||
(gator-method-181 self 2.0 0.5 #t)
|
||||
(suspend)
|
||||
(ja :num! (loop! f30-0))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate attack-forward (gator)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior gator) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags)))
|
||||
(let ((v1-2 self))
|
||||
(if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags)))
|
||||
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags))))
|
||||
)
|
||||
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))))
|
||||
(set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info-override callback-info))
|
||||
)
|
||||
0
|
||||
(let ((v1-5 self))
|
||||
(set! (-> v1-5 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag37) (-> v1-5 enemy-flags))))
|
||||
)
|
||||
0
|
||||
(let ((v1-8 (-> self nav state)))
|
||||
(set! (-> v1-8 speed) (* 1.25 (-> self enemy-info-override run-travel-speed)))
|
||||
)
|
||||
0
|
||||
(set! (-> self lock-nav-target) #f)
|
||||
(logior! (-> self focus-status) (focus-status dangerous))
|
||||
(let* ((v1-12 *game-info*)
|
||||
(v0-0 (+ (-> v1-12 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-12 attack-id) v0-0)
|
||||
(set! (-> self attack-id) v0-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(if (logtest? (-> self enemy-flags) (enemy-flag check-water))
|
||||
(logior! (-> self focus-status) (focus-status dangerous))
|
||||
(logclear! (-> self focus-status) (focus-status dangerous))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((gp-0 (handle->process (-> self focus handle))))
|
||||
(if (not gp-0)
|
||||
(enemy-method-72 self)
|
||||
)
|
||||
(set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable gp-0) 0) quad))
|
||||
)
|
||||
(cond
|
||||
((-> self lock-nav-target)
|
||||
)
|
||||
((or (logtest? (-> self enemy-flags) (enemy-flag look-at-focus))
|
||||
(logtest? (-> self nav state flags) (nav-state-flag at-target))
|
||||
)
|
||||
(set! (-> self lock-nav-target) (the-as basic #t))
|
||||
(let ((v1-16 (-> self nav)))
|
||||
(set! (-> v1-16 target-speed) (-> self enemy-info-override walk-travel-speed))
|
||||
)
|
||||
0
|
||||
(let ((v1-18 (-> self nav)))
|
||||
(set! (-> v1-18 acceleration) 131072.0)
|
||||
)
|
||||
0
|
||||
(let ((gp-1 (new 'stack-no-clear 'vector)))
|
||||
(let ((a1-2 (-> self nav state)))
|
||||
(set! (-> gp-1 quad) (-> a1-2 velocity quad))
|
||||
)
|
||||
(vector-normalize! gp-1 32768.0)
|
||||
(vector+! gp-1 gp-1 (-> self root-override2 trans))
|
||||
(let ((v1-24 (-> self nav state)))
|
||||
(logclear! (-> v1-24 flags) (nav-state-flag directional-mode))
|
||||
(logior! (-> v1-24 flags) (nav-state-flag target-poly-dirty))
|
||||
(set! (-> v1-24 target-post quad) (-> gp-1 quad))
|
||||
)
|
||||
)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(let ((a0-19 (-> self nav state))
|
||||
(v1-27 (-> self focus-pos))
|
||||
)
|
||||
(logclear! (-> a0-19 flags) (nav-state-flag directional-mode))
|
||||
(logior! (-> a0-19 flags) (nav-state-flag target-poly-dirty))
|
||||
(set! (-> a0-19 target-post quad) (-> v1-27 quad))
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.07))
|
||||
(ja-no-eval :group! (-> self draw art-group data 15)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 15)) frames num-frames) -1)))
|
||||
:frame-num (ja-aframe 0.0 0)
|
||||
)
|
||||
(ja-no-eval :group! (ja-group)
|
||||
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((a1-4 (new 'stack-no-clear 'vector)))
|
||||
(let ((a2-2 (-> self nav state)))
|
||||
(set! (-> a1-4 quad) (-> a2-2 target-post quad))
|
||||
)
|
||||
(if (and (-> self lock-nav-target) (< (vector-vector-distance (-> self root-override2 trans) a1-4) 8192.0))
|
||||
(enemy-method-72 self)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
(enemy-method-72 self)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior gator) nav-enemy-travel-post)
|
||||
)
|
||||
|
||||
(defstate pacing (gator)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
|
||||
(until #f
|
||||
(gator-method-181 self 2.0 0.5 #f)
|
||||
(suspend)
|
||||
(ja :num! (loop! f30-0))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate stare (gator)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((t9-0 (-> (method-of-type nav-enemy stare) trans)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017))
|
||||
(go-virtual pacing)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
|
||||
(until #f
|
||||
(gator-method-181 self 2.0 0.5 #f)
|
||||
(suspend)
|
||||
(ja :num! (loop! f30-0))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod coin-flip? gator ((obj gator))
|
||||
"@returns The result of a 50/50 RNG roll"
|
||||
#f
|
||||
)
|
||||
|
||||
(defmethod enemy-method-114 gator ((obj gator))
|
||||
"@abstract"
|
||||
(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) cshape-reaction-default)
|
||||
(set! (-> s5-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s5-0 penetrated-by) (penetrate
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech-punch
|
||||
dark-punch
|
||||
dark-giant
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 4) 0)))
|
||||
(set! (-> s5-0 total-prims) (the-as uint 5))
|
||||
(set! (-> s4-0 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> s4-0 prim-core collide-with)
|
||||
(collide-spec backgnd jak bot crate obstacle hit-by-others-list player-list)
|
||||
)
|
||||
(set! (-> s4-0 prim-core action) (collide-action deadly no-standon))
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 19660.8)
|
||||
(set! (-> s5-0 root-prim) s4-0)
|
||||
)
|
||||
(let ((v1-13 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-13 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-13 prim-core collide-with) (collide-spec jak bot crate hit-by-others-list player-list))
|
||||
(set! (-> v1-13 prim-core action) (collide-action no-standon))
|
||||
(set-vector! (-> v1-13 local-sphere) 0.0 4915.2 0.0 4915.2)
|
||||
)
|
||||
(let ((v1-15 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-15 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-15 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-15 prim-core action) (collide-action deadly))
|
||||
(set! (-> v1-15 transform-index) 12)
|
||||
(set-vector! (-> v1-15 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(let ((v1-17 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-17 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-17 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-17 transform-index) 20)
|
||||
(set-vector! (-> v1-17 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(let ((v1-19 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-19 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-19 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-19 transform-index) 22)
|
||||
(set-vector! (-> v1-19 local-sphere) 0.0 0.0 0.0 4505.6)
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) 8192.0)
|
||||
(let ((v1-21 (-> s5-0 root-prim)))
|
||||
(set! (-> s5-0 backup-collide-as) (-> v1-21 prim-core collide-as))
|
||||
(set! (-> s5-0 backup-collide-with) (-> v1-21 prim-core collide-with))
|
||||
)
|
||||
(set! (-> s5-0 max-iteration-count) (the-as uint 3))
|
||||
(set! (-> obj root-override2) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod enemy-method-115 gator ((obj gator))
|
||||
"@abstract"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-gator" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(enemy-method-113 obj *gator-nav-enemy-info*)
|
||||
(let ((v1-5 (-> obj nav)))
|
||||
(set! (-> v1-5 speed-scale) 1.0)
|
||||
)
|
||||
0
|
||||
(set-gravity-length (-> obj root-override2 dynam) 573440.0)
|
||||
(logior! (-> obj nav flags) (nav-control-flag momentum-ignore-heading))
|
||||
(gator-method-179 obj)
|
||||
(set! (-> obj turn-time) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
;; name in dgo: hosehead-fake
|
||||
;; dgos: SEB, SWB
|
||||
|
||||
(define-extern spawn-hosehead-fakes (function none))
|
||||
(define-extern hosehead-fake-trigger (function int none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1339
File diff suppressed because it is too large
Load Diff
+3034
File diff suppressed because it is too large
Load Diff
+639
@@ -0,0 +1,639 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-gator amphibian amphibian-lod0-jg -1
|
||||
((amphibian-lod0-mg (meters 20)) (amphibian-lod1-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 1 0 5.5)
|
||||
)
|
||||
|
||||
;; definition of type gator
|
||||
(deftype gator (nav-enemy)
|
||||
((ocean-y float :offset-assert 604)
|
||||
(lock-nav-target basic :offset-assert 608)
|
||||
(new-facing vector :inline :offset-assert 624)
|
||||
(old-facing vector :inline :offset-assert 640)
|
||||
(turn-time time-frame :offset-assert 656)
|
||||
)
|
||||
:heap-base #x220
|
||||
:method-count-assert 182
|
||||
:size-assert #x298
|
||||
:flag-assert #xb602200298
|
||||
(:methods
|
||||
(attack-forward () _type_ :state 178)
|
||||
(gator-method-179 (_type_) float 179)
|
||||
(gator-method-180 (_type_ vector) vector 180)
|
||||
(gator-method-181 (_type_ float float symbol) time-frame 181)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type gator
|
||||
(defmethod inspect gator ((obj gator))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type nav-enemy inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tocean-y: ~f~%" (-> obj ocean-y))
|
||||
(format #t "~2Tlock-nav-target: ~A~%" (-> obj lock-nav-target))
|
||||
(format #t "~2Tnew-facing: #<vector @ #x~X>~%" (-> obj new-facing))
|
||||
(format #t "~2Told-facing: #<vector @ #x~X>~%" (-> obj old-facing))
|
||||
(format #t "~2Tturn-time: ~D~%" (-> obj turn-time))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for symbol *gator-nav-enemy-info*, type nav-enemy-info
|
||||
(define *gator-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x64640d01 #x0 #x0)
|
||||
:idle-anim 13
|
||||
:notice-anim 13
|
||||
:hostile-anim 14
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 13
|
||||
:jump-in-air-anim 13
|
||||
:jump-land-anim 13
|
||||
:neck-joint -1
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "gator-hit")
|
||||
:sound-die (static-sound-name "gator-die")
|
||||
:notice-distance (meters 80)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 40)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 8)
|
||||
:walk-turning-acceleration (meters 10)
|
||||
:maximum-rotation-rate (degrees 200.00002)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *gator-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
;; definition for method 74 of type gator
|
||||
(defmethod enemy-method-74 gator ((obj gator) (arg0 process) (arg1 object) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('hit-knocked)
|
||||
(when (= (-> obj incoming knocked-type) (knocked-type knocked-type-4))
|
||||
(set! (-> obj incoming knocked-type) (knocked-type knocked-type-0))
|
||||
0
|
||||
)
|
||||
((method-of-type nav-enemy enemy-method-74) obj arg0 arg1 arg2 arg3)
|
||||
)
|
||||
(('track)
|
||||
#f
|
||||
)
|
||||
(else
|
||||
((method-of-type nav-enemy enemy-method-74) obj arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 179 of type gator
|
||||
(defmethod gator-method-179 gator ((obj gator))
|
||||
(set! (-> obj ocean-y) (get-height *ocean* (-> obj root-override2 trans) #t))
|
||||
(set! (-> obj root-override2 trans y) (+ -10240.0 (-> obj ocean-y)))
|
||||
)
|
||||
|
||||
;; definition for method 180 of type gator
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod gator-method-180 gator ((obj gator) (arg0 vector))
|
||||
(let ((a0-3 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> obj root-override2 quat))))
|
||||
(set! (-> arg0 quad) (-> a0-3 vector 2 quad))
|
||||
)
|
||||
arg0
|
||||
)
|
||||
|
||||
;; definition for method 181 of type gator
|
||||
(defmethod gator-method-181 gator ((obj gator) (arg0 float) (arg1 float) (arg2 symbol))
|
||||
(local-vars (v1-17 object) (a0-5 object))
|
||||
(with-pp
|
||||
(let ((f30-0 (vector-dot (-> obj new-facing) (-> obj old-facing)))
|
||||
(s5-0 75)
|
||||
(s4-0 (the-as art-joint-anim (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(b! (not arg2) cfg-26 :delay (nop!))
|
||||
(set! s5-0 18)
|
||||
(b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-8 :delay #f)
|
||||
(if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0)
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 40)))
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 39)))
|
||||
)
|
||||
(b! #t cfg-25 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(let ((v1-16 (< (cos (* 182.04445 arg1)) f30-0)))
|
||||
(b! v1-16 cfg-23 :likely-delay (set! v1-17 v1-16))
|
||||
)
|
||||
(let ((v1-20 (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
(b! (not v1-20) cfg-21 :likely-delay (set! a0-5 v1-20))
|
||||
(let ((a1-3 (= v1-20 (-> obj draw art-group data 14))))
|
||||
(b! a1-3 cfg-21 :likely-delay (set! a0-5 a1-3))
|
||||
)
|
||||
(let ((a1-4 (= v1-20 (-> obj draw art-group data 40))))
|
||||
(b! a1-4 cfg-21 :likely-delay (set! a0-5 a1-4))
|
||||
)
|
||||
(set! a0-5 (= v1-20 (-> obj draw art-group data 39)))
|
||||
)
|
||||
(label cfg-21)
|
||||
(b! (not a0-5) cfg-23 :delay (set! v1-17 #t))
|
||||
(set! v1-17 #f)
|
||||
(label cfg-23)
|
||||
(if v1-17
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 14)))
|
||||
)
|
||||
(label cfg-25)
|
||||
(b! #t cfg-48 :delay (nop!))
|
||||
(label cfg-26)
|
||||
(b! (>= f30-0 (cos (* 182.04445 arg0))) cfg-31 :delay #f)
|
||||
(if (< (-> (vector-cross! (new 'stack-no-clear 'vector) (-> obj new-facing) (-> obj old-facing)) y) 0.0)
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 38)))
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 37)))
|
||||
)
|
||||
(b! #t cfg-48 :delay (nop!))
|
||||
(label cfg-31)
|
||||
(if (or (< (cos (* 182.04445 arg1)) f30-0) (let ((v1-41 (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
(not (and v1-41 (or (= v1-41 (-> obj draw art-group data 13))
|
||||
(= v1-41 (-> obj draw art-group data 38))
|
||||
(= v1-41 (-> obj draw art-group data 37))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s4-0 (the-as art-joint-anim (-> obj draw art-group data 13)))
|
||||
)
|
||||
(label cfg-48)
|
||||
(let ((v1-50 (if (> (-> obj skel active-channels) 0)
|
||||
(-> obj skel root-channel 0 frame-group)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (not (and v1-50 (= v1-50 (the-as art-element s4-0))))
|
||||
(>= (- (-> pp clock frame-counter) (the-as time-frame s5-0)) (-> obj turn-time))
|
||||
)
|
||||
(let ((f30-2 (/ (ja-frame-num 0) (the float (ja-num-frames 0)))))
|
||||
(ja-channel-push! 1 (the-as time-frame s5-0))
|
||||
(set! (-> obj skel root-channel 0 frame-group) s4-0)
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(set! (-> s5-1 num-func) num-func-identity)
|
||||
(set! (-> s5-1 frame-num) (* f30-2 (the float (ja-num-frames 0))))
|
||||
)
|
||||
)
|
||||
(let ((v0-4 (-> pp clock frame-counter)))
|
||||
(set! (-> obj turn-time) v0-4)
|
||||
v0-4
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 55 of type gator
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch vector vs none.
|
||||
(defmethod enemy-method-55 gator ((obj gator))
|
||||
(let ((t9-0 (method-of-type nav-enemy enemy-method-55)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(gator-method-179 obj)
|
||||
(set! (-> obj old-facing quad) (-> obj new-facing quad))
|
||||
(gator-method-180 obj (-> obj new-facing))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 56 of type gator
|
||||
(defmethod enemy-method-56 gator ((obj gator) (arg0 process) (arg1 event-message-block))
|
||||
0
|
||||
)
|
||||
|
||||
;; definition for method 70 of type gator
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod go-hostile gator ((obj gator))
|
||||
(go (method-of-object obj hostile))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 107 of type gator
|
||||
(defmethod enemy-method-107 gator ((obj gator))
|
||||
(let ((gp-0 ((method-of-type nav-enemy enemy-method-107) obj)))
|
||||
(if (and gp-0 (< (+ 1024.0 (get-height *ocean* (get-trans gp-0 0) #t)) (-> (get-trans gp-0 1) y)))
|
||||
(set! gp-0 (the-as process-focusable #f))
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 98 of type gator
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod enemy-method-98 gator ((obj gator) (arg0 process-focusable) (arg1 vector))
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector)))
|
||||
(when (and (= *target* arg0) (not arg1) (= (-> *target* control ground-pat material) (pat-material waterbottom)))
|
||||
(set! (-> s4-0 quad) (-> (get-trans arg0 0) quad))
|
||||
(set! (-> s4-0 y) (get-height *ocean* s4-0 #t))
|
||||
(set! arg1 s4-0)
|
||||
)
|
||||
)
|
||||
((method-of-type nav-enemy enemy-method-98) obj arg0 arg1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate hostile (gator)
|
||||
:virtual #t
|
||||
:trans (behavior ()
|
||||
(let ((t9-0 (-> (method-of-type nav-enemy hostile) trans)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(let ((a0-1 (enemy-method-107 self)))
|
||||
(when a0-1
|
||||
(let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (get-trans a0-1 0) (-> self root-override2 trans)))
|
||||
(a0-4 (-> self nav state))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> a0-4 heading quad))
|
||||
0
|
||||
(let ((v1-10 (vector-normalize-ret-len! gp-1 1.0)))
|
||||
(if (and (>= #x47000000 (the-as int v1-10)) (< (cos 5461.3335) (vector-dot gp-1 s5-0)))
|
||||
(go-virtual attack-forward)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
|
||||
(until #f
|
||||
(gator-method-181 self 2.0 0.5 #t)
|
||||
(suspend)
|
||||
(ja :num! (loop! f30-0))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate attack-forward (gator)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior gator) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags)))
|
||||
(let ((v1-2 self))
|
||||
(if (not (logtest? (enemy-flag enemy-flag36) (-> v1-2 enemy-flags)))
|
||||
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag38) (-> v1-2 enemy-flags))))
|
||||
)
|
||||
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag36) (-> v1-2 enemy-flags))))
|
||||
(set! (-> v1-2 nav callback-info) (-> v1-2 enemy-info-override callback-info))
|
||||
)
|
||||
0
|
||||
(let ((v1-5 self))
|
||||
(set! (-> v1-5 enemy-flags) (the-as enemy-flag (logior (enemy-flag enemy-flag37) (-> v1-5 enemy-flags))))
|
||||
)
|
||||
0
|
||||
(let ((v1-8 (-> self nav state)))
|
||||
(set! (-> v1-8 speed) (* 1.25 (-> self enemy-info-override run-travel-speed)))
|
||||
)
|
||||
0
|
||||
(set! (-> self lock-nav-target) #f)
|
||||
(logior! (-> self focus-status) (focus-status dangerous))
|
||||
(let* ((v1-12 *game-info*)
|
||||
(v0-0 (+ (-> v1-12 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-12 attack-id) v0-0)
|
||||
(set! (-> self attack-id) v0-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(if (logtest? (-> self enemy-flags) (enemy-flag check-water))
|
||||
(logior! (-> self focus-status) (focus-status dangerous))
|
||||
(logclear! (-> self focus-status) (focus-status dangerous))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((gp-0 (handle->process (-> self focus handle))))
|
||||
(if (not gp-0)
|
||||
(enemy-method-72 self)
|
||||
)
|
||||
(set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable gp-0) 0) quad))
|
||||
)
|
||||
(cond
|
||||
((-> self lock-nav-target)
|
||||
)
|
||||
((or (logtest? (-> self enemy-flags) (enemy-flag look-at-focus))
|
||||
(logtest? (-> self nav state flags) (nav-state-flag at-target))
|
||||
)
|
||||
(set! (-> self lock-nav-target) (the-as basic #t))
|
||||
(let ((v1-16 (-> self nav)))
|
||||
(set! (-> v1-16 target-speed) (-> self enemy-info-override walk-travel-speed))
|
||||
)
|
||||
0
|
||||
(let ((v1-18 (-> self nav)))
|
||||
(set! (-> v1-18 acceleration) 131072.0)
|
||||
)
|
||||
0
|
||||
(let ((gp-1 (new 'stack-no-clear 'vector)))
|
||||
(let ((a1-2 (-> self nav state)))
|
||||
(set! (-> gp-1 quad) (-> a1-2 velocity quad))
|
||||
)
|
||||
(vector-normalize! gp-1 32768.0)
|
||||
(vector+! gp-1 gp-1 (-> self root-override2 trans))
|
||||
(let ((v1-24 (-> self nav state)))
|
||||
(logclear! (-> v1-24 flags) (nav-state-flag directional-mode))
|
||||
(logior! (-> v1-24 flags) (nav-state-flag target-poly-dirty))
|
||||
(set! (-> v1-24 target-post quad) (-> gp-1 quad))
|
||||
)
|
||||
)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(let ((a0-19 (-> self nav state))
|
||||
(v1-27 (-> self focus-pos))
|
||||
)
|
||||
(logclear! (-> a0-19 flags) (nav-state-flag directional-mode))
|
||||
(logior! (-> a0-19 flags) (nav-state-flag target-poly-dirty))
|
||||
(set! (-> a0-19 target-post quad) (-> v1-27 quad))
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.07))
|
||||
(ja-no-eval :group! (-> self draw art-group data 15)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 15)) frames num-frames) -1)))
|
||||
:frame-num (ja-aframe 0.0 0)
|
||||
)
|
||||
(ja-no-eval :group! (ja-group)
|
||||
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((a1-4 (new 'stack-no-clear 'vector)))
|
||||
(let ((a2-2 (-> self nav state)))
|
||||
(set! (-> a1-4 quad) (-> a2-2 target-post quad))
|
||||
)
|
||||
(if (and (-> self lock-nav-target) (< (vector-vector-distance (-> self root-override2 trans) a1-4) 8192.0))
|
||||
(enemy-method-72 self)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
(enemy-method-72 self)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior gator) nav-enemy-travel-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pacing (gator)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
|
||||
(until #f
|
||||
(gator-method-181 self 2.0 0.5 #f)
|
||||
(suspend)
|
||||
(ja :num! (loop! f30-0))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate stare (gator)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((t9-0 (-> (method-of-type nav-enemy stare) trans)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(if (>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.017))
|
||||
(go-virtual pacing)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
|
||||
(until #f
|
||||
(gator-method-181 self 2.0 0.5 #f)
|
||||
(suspend)
|
||||
(ja :num! (loop! f30-0))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 60 of type gator
|
||||
(defmethod coin-flip? gator ((obj gator))
|
||||
"@returns The result of a 50/50 RNG roll"
|
||||
#f
|
||||
)
|
||||
|
||||
;; definition for method 114 of type gator
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod enemy-method-114 gator ((obj gator))
|
||||
"@abstract"
|
||||
(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) cshape-reaction-default)
|
||||
(set! (-> s5-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s5-0 penetrated-by) (penetrate
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech-punch
|
||||
dark-punch
|
||||
dark-giant
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 4) 0)))
|
||||
(set! (-> s5-0 total-prims) (the-as uint 5))
|
||||
(set! (-> s4-0 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> s4-0 prim-core collide-with)
|
||||
(collide-spec backgnd jak bot crate obstacle hit-by-others-list player-list)
|
||||
)
|
||||
(set! (-> s4-0 prim-core action) (collide-action deadly no-standon))
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 19660.8)
|
||||
(set! (-> s5-0 root-prim) s4-0)
|
||||
)
|
||||
(let ((v1-13 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-13 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-13 prim-core collide-with) (collide-spec jak bot crate hit-by-others-list player-list))
|
||||
(set! (-> v1-13 prim-core action) (collide-action no-standon))
|
||||
(set-vector! (-> v1-13 local-sphere) 0.0 4915.2 0.0 4915.2)
|
||||
)
|
||||
(let ((v1-15 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-15 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-15 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-15 prim-core action) (collide-action deadly))
|
||||
(set! (-> v1-15 transform-index) 12)
|
||||
(set-vector! (-> v1-15 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(let ((v1-17 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-17 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-17 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-17 transform-index) 20)
|
||||
(set-vector! (-> v1-17 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(let ((v1-19 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-19 prim-core collide-as) (collide-spec enemy))
|
||||
(set! (-> v1-19 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-19 transform-index) 22)
|
||||
(set-vector! (-> v1-19 local-sphere) 0.0 0.0 0.0 4505.6)
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) 8192.0)
|
||||
(let ((v1-21 (-> s5-0 root-prim)))
|
||||
(set! (-> s5-0 backup-collide-as) (-> v1-21 prim-core collide-as))
|
||||
(set! (-> s5-0 backup-collide-with) (-> v1-21 prim-core collide-with))
|
||||
)
|
||||
(set! (-> s5-0 max-iteration-count) (the-as uint 3))
|
||||
(set! (-> obj root-override2) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 115 of type gator
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod enemy-method-115 gator ((obj gator))
|
||||
"@abstract"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-gator" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(enemy-method-113 obj *gator-nav-enemy-info*)
|
||||
(let ((v1-5 (-> obj nav)))
|
||||
(set! (-> v1-5 speed-scale) 1.0)
|
||||
)
|
||||
0
|
||||
(set-gravity-length (-> obj root-override2 dynam) 573440.0)
|
||||
(logior! (-> obj nav flags) (nav-control-flag momentum-ignore-heading))
|
||||
(gator-method-179 obj)
|
||||
(set! (-> obj turn-time) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
+2035
File diff suppressed because it is too large
Load Diff
+1398
File diff suppressed because it is too large
Load Diff
+1427
File diff suppressed because it is too large
Load Diff
@@ -272,7 +272,9 @@
|
||||
"(method 18 minimap)",
|
||||
"(method 16 minimap)",
|
||||
"(method 60 fort-turret)", // they defined the same method twice in the same file, identical impl, just returns #f
|
||||
"(method 23 dig-tether)" // working around annoying decomp array output
|
||||
"(method 23 dig-tether)", // working around annoying decomp array output
|
||||
"(method 16 sew-light-control)", // skipped for now, looking for a caller
|
||||
"(method 3 rhino)"
|
||||
],
|
||||
|
||||
"skip_compile_states": {
|
||||
|
||||
Reference in New Issue
Block a user