mirror of
https://github.com/open-goal/jak-project
synced 2026-07-09 06:53:45 -04:00
decomp: fix goal_src
This commit is contained in:
@@ -13,3 +13,5 @@
|
||||
;; TODO - for misty-teetertotter
|
||||
(define-extern transform-post (function int))
|
||||
(define-extern ja-done? (function int symbol))
|
||||
;; TODO - for misty-warehouse
|
||||
(define-extern rider-trans (function int))
|
||||
|
||||
@@ -120,3 +120,5 @@
|
||||
|
||||
;; TODO - for misty-teetertotter | rigid-body
|
||||
(define-extern process-drawable-from-entity! (function process-drawable object none))
|
||||
;; TODO - for misty-warehouse
|
||||
(define-extern process-entity-status! (function process entity-perm-status symbol int))
|
||||
|
||||
@@ -11,4 +11,10 @@
|
||||
:method-count-assert 15
|
||||
:size-assert #x70
|
||||
:flag-assert #xf00000070
|
||||
)
|
||||
)
|
||||
|
||||
;; TODO - for misty-warehouse
|
||||
(define-extern camera-tracker-init (function function none)) ;; TODO - not confirmed, see misty-warehouse::camera-view
|
||||
(define-extern process-grab? (function process symbol))
|
||||
(define-extern camera-change-to (function string int symbol none)) ;; TODO - not confirmed yet
|
||||
(define-extern process-release? (function process symbol))
|
||||
|
||||
@@ -5,3 +5,33 @@
|
||||
;; name in dgo: baseplat
|
||||
;; dgos: GAME, COMMON, L1
|
||||
|
||||
;; TODO - for misty-warehouse
|
||||
(deftype eco-door (process-drawable)
|
||||
((root-override collide-shape :score 100 :offset 112)
|
||||
(speed float :offset-assert 176)
|
||||
(open-distance float :offset-assert 180)
|
||||
(close-distance float :offset-assert 184)
|
||||
(out-dir vector :inline :offset-assert 192)
|
||||
(open-sound uint128 :offset-assert 208)
|
||||
(close-sound uint128 :offset-assert 224)
|
||||
(state-actor basic :offset-assert 240)
|
||||
(flags int32 :offset-assert 244)
|
||||
(locked symbol :offset-assert 248)
|
||||
(auto-close symbol :offset-assert 252)
|
||||
(one-way symbol :offset-assert 256)
|
||||
)
|
||||
:method-count-assert 27
|
||||
:size-assert #x104
|
||||
:heap-base #xa0
|
||||
:flag-assert #x1b00a00104
|
||||
;; inherited inspect of process-drawable
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(dummy-21 () none 21)
|
||||
(dummy-22 () none 22)
|
||||
(dummy-23 () none 23)
|
||||
(TODO-RENAME-24 (_type_) none 24)
|
||||
(TODO-RENAME-25 (_type_) none 25)
|
||||
(dummy-26 () none 26)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -360,7 +360,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 11 of type teetertotter
|
||||
(defmethod dummy-method-11 teetertotter ((obj teetertotter) (arg0 object))
|
||||
(defmethod copy-defaults! teetertotter ((obj teetertotter) (arg0 res-lump))
|
||||
(let
|
||||
((s4-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
|
||||
@@ -5,3 +5,464 @@
|
||||
;; name in dgo: misty-warehouse
|
||||
;; dgos: L1, MIS
|
||||
|
||||
(define-extern *rounddoor-sg* skeleton-group)
|
||||
(define-extern *silostep-sg* skeleton-group)
|
||||
(define-extern silostep-rise (state none)) ;; unknown type
|
||||
(define-extern silostep-idle (state none)) ;; unknown type
|
||||
(define-extern silostep-camera (state none)) ;; unknown type
|
||||
|
||||
;; definition of type silostep
|
||||
(deftype silostep (process-drawable)
|
||||
((anim-limit float :offset-assert 176)
|
||||
(cam-tracker uint64 :offset-assert 184)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 20
|
||||
:size-assert #xc0
|
||||
:flag-assert #x14005000c0
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-1
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "silostep"
|
||||
:bounds
|
||||
(new 'static 'vector :y 8192.0 :w 32768.0)
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 jgeo) 0)
|
||||
(set! (-> v1-1 janim) 2)
|
||||
(set! (-> v1-1 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-1 lod-dist 0) 4095996000.0)
|
||||
(set! *silostep-sg* v1-1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-2
|
||||
(new 'static 'state
|
||||
:name 'silostep-idle
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! silostep-idle (the-as (state none) v1-2))
|
||||
(set!
|
||||
(-> v1-2 event)
|
||||
(the-as
|
||||
(function process int symbol event-message-block object)
|
||||
(lambda :behavior silostep
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(go silostep-camera)
|
||||
)
|
||||
(('trigger-rise)
|
||||
enter-state
|
||||
(go silostep-rise)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> v1-2 code)
|
||||
(lambda :behavior silostep () (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
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-2 post) ja-post)
|
||||
)
|
||||
|
||||
;; definition for function misty-camera-view
|
||||
(defbehavior misty-camera-view silostep ()
|
||||
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
|
||||
(v1-1 (when gp-0
|
||||
(let ((t9-1 (method-of-type camera-tracker activate)))
|
||||
(t9-1
|
||||
(the-as camera-tracker gp-0)
|
||||
self
|
||||
'camera-tracker
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
((the-as
|
||||
(function object object object object)
|
||||
run-function-in-process
|
||||
)
|
||||
gp-0
|
||||
camera-tracker-init
|
||||
(lambda :behavior camera-tracker
|
||||
()
|
||||
(while (not (process-grab? *target*))
|
||||
(suspend)
|
||||
)
|
||||
(camera-change-to "camera-160" 150 #f)
|
||||
(let ((gp-0 (-> *display* base-frame-counter)))
|
||||
(until (begin
|
||||
(suspend)
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) gp-0)
|
||||
)
|
||||
900
|
||||
)
|
||||
)
|
||||
(empty)
|
||||
)
|
||||
)
|
||||
(while
|
||||
(not
|
||||
(process-release? (handle->process (-> self grab-target)))
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
(camera-change-to (the-as string 'base) 150 #f)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
(-> gp-0 ppointer)
|
||||
)
|
||||
)
|
||||
(v0-3
|
||||
(logior (shl (-> v1-1 0 pid) 32) (new 'static 'handle :process v1-1))
|
||||
)
|
||||
)
|
||||
(set! (-> self cam-tracker) (the-as uint v0-3))
|
||||
v0-3
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-4
|
||||
(new 'static 'state
|
||||
:name 'silostep-camera
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! silostep-camera (the-as (state none) v1-4))
|
||||
(set!
|
||||
(-> v1-4 code)
|
||||
(lambda :behavior silostep
|
||||
()
|
||||
(misty-camera-view)
|
||||
(let* ((gp-0 (get-task-control (game-task misty-warehouse)))
|
||||
(v1-1 (get-reminder gp-0 0))
|
||||
)
|
||||
(save-reminder gp-0 (logior v1-1 2) 0)
|
||||
)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(let ((gp-1 (-> *display* base-frame-counter)))
|
||||
(until (begin
|
||||
(suspend)
|
||||
(>= (the-as int (- (-> *display* base-frame-counter) gp-1)) 300)
|
||||
)
|
||||
(empty)
|
||||
)
|
||||
)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "arena-steps")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
(the-as uint 1)
|
||||
(the-as vector #t)
|
||||
)
|
||||
(send-to-all-after (-> self link) 'trigger-rise)
|
||||
enter-state
|
||||
(go silostep-rise)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-4 post) ja-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-5
|
||||
(new 'static 'state
|
||||
:name 'silostep-rise
|
||||
:next #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
:post #f
|
||||
:enter #f
|
||||
:event #f
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! silostep-rise (the-as (state none) v1-5))
|
||||
(set!
|
||||
(-> v1-5 code)
|
||||
(lambda :behavior silostep
|
||||
((arg0 symbol))
|
||||
(process-entity-status! self (entity-perm-status complete) #t)
|
||||
(when (not arg0)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
)
|
||||
(set! (-> a0-2 param 0) (-> self anim-limit))
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(set! (-> a0-2 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim (-> self draw art-group data 2))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (begin
|
||||
(rider-trans)
|
||||
(rider-post)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-3 param 0) (-> self anim-limit))
|
||||
(set! (-> a0-3 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(ja-done? 0)
|
||||
)
|
||||
(empty)
|
||||
)
|
||||
)
|
||||
(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 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> gp-1 frame-num) (-> self anim-limit))
|
||||
)
|
||||
(rider-post)
|
||||
(while #t
|
||||
(ja-post)
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-5 post) #f)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type silostep
|
||||
(defmethod copy-defaults! silostep ((obj silostep) (arg0 res-lump))
|
||||
(logior! (-> obj mask) (process-mask movie-subject))
|
||||
(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 ((t9-2 (method-of-object s4-0 dummy-29)))
|
||||
1
|
||||
(t9-2)
|
||||
)
|
||||
(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) 4)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 18432.0)
|
||||
)
|
||||
((method-of-object s4-0 dummy-46))
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
((method-of-object s4-0 dummy-50))
|
||||
(set! (-> obj root) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(dummy-14 obj *silostep-sg* '())
|
||||
(set!
|
||||
(-> obj anim-limit)
|
||||
(*
|
||||
(get-property-value-float
|
||||
arg0
|
||||
'distance
|
||||
'interp
|
||||
-1000000000.0
|
||||
1.0
|
||||
(the-as (pointer res-tag) #f)
|
||||
*res-static-buf*
|
||||
)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(-> (the-as art-joint-anim (-> obj draw art-group data 2)) data 0 length)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj link) (new 'process 'actor-link-info obj))
|
||||
(cond
|
||||
((and
|
||||
(-> obj entity)
|
||||
(nonzero?
|
||||
(logand (-> obj entity extra perm status) (entity-perm-status complete))
|
||||
)
|
||||
)
|
||||
enter-state
|
||||
#t
|
||||
(go silostep-rise)
|
||||
)
|
||||
(else
|
||||
(go silostep-idle)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let
|
||||
((v1-6
|
||||
(new 'static 'skeleton-group
|
||||
:art-group-name "rounddoor"
|
||||
:bounds (new 'static 'vector :w 32768.0)
|
||||
:max-lod 1
|
||||
:version #x6
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-6 jgeo) 0)
|
||||
(set! (-> v1-6 janim) 3)
|
||||
(set! (-> v1-6 mgeo 0) (the-as uint 1))
|
||||
(set! (-> v1-6 lod-dist 0) 81920.0)
|
||||
(set! (-> v1-6 mgeo 1) (the-as uint 2))
|
||||
(set! (-> v1-6 lod-dist 1) 4095996000.0)
|
||||
(set! *rounddoor-sg* v1-6)
|
||||
)
|
||||
|
||||
;; definition of type rounddoor
|
||||
(deftype rounddoor (eco-door)
|
||||
()
|
||||
:heap-base #xa0
|
||||
:method-count-assert 27
|
||||
:size-assert #x104
|
||||
:flag-assert #x1b00a00104
|
||||
)
|
||||
|
||||
;; definition for method 3 of type rounddoor
|
||||
(defmethod inspect rounddoor ((obj rounddoor))
|
||||
(let ((t9-0 (method-of-type eco-door inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 24 of type rounddoor
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-24 rounddoor ((obj rounddoor))
|
||||
(let
|
||||
((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
|
||||
(let
|
||||
((s4-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s5-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 prim-core collide-as) (the-as uint 2048))
|
||||
(set! (-> s4-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s4-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s4-0 prim-core offense) 4)
|
||||
(set! (-> s4-0 transform-index) 0)
|
||||
(set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0)
|
||||
)
|
||||
((method-of-object s5-0 dummy-46))
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
((method-of-object s5-0 dummy-50))
|
||||
(set! (-> obj root-override) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 25 of type rounddoor
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod TODO-RENAME-25 rounddoor ((obj rounddoor))
|
||||
(dummy-14 obj *rounddoor-sg* '())
|
||||
(set! (-> obj open-distance) 69632.0)
|
||||
(set! (-> obj close-distance) 81920.0)
|
||||
(set!
|
||||
(-> obj open-sound)
|
||||
(the-as
|
||||
uint128
|
||||
(make-u128 (the-as uint #x6e65706f2d72) (the-as uint #x6f6f64616e657261))
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj close-sound)
|
||||
(the-as
|
||||
uint128
|
||||
(make-u128 (the-as uint #x65736f6c632d72) (the-as uint #x6f6f64616e657261))
|
||||
)
|
||||
)
|
||||
(set! (-> obj speed) 1.5)
|
||||
(set! (-> obj auto-close) #t)
|
||||
(set! (-> obj one-way) #t)
|
||||
(vector-x-quaternion! (-> obj out-dir) (-> obj root-override quat))
|
||||
(set!
|
||||
(-> obj out-dir w)
|
||||
(- 8192.0 (vector-dot (-> obj out-dir) (-> obj root-override trans)))
|
||||
)
|
||||
(dummy-47 (-> obj root-override))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user