mirror of
https://github.com/open-goal/jak-project.git
synced 2025-02-21 14:40:50 +00:00
decomp: generic-obs
(#894)
* stash * more * and more * like 80% done * trying to update things * refreshed work on generic-obs * blocked: down to only decompiler issues! * decomp: finish `generic-obs` skip over the failing functions for now * `pair` -> `object`s and fix 2/4 of the functions i had skipped * address feedback
This commit is contained in:
parent
1aad6c55e3
commit
f605b0ee38
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
@ -106,6 +106,15 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"(dsll32 v1, s5, 30)": {
|
||||
"filterFileRegex": ".*ir2\\.asm",
|
||||
"decorations": [
|
||||
{
|
||||
"overviewRulerColor": "transparent",
|
||||
"color": "magenta"
|
||||
}
|
||||
]
|
||||
},
|
||||
"(jalr)": {
|
||||
"filterFileRegex": ".*ir2\\.asm",
|
||||
"decorations": [
|
||||
|
@ -954,9 +954,8 @@
|
||||
(firecanyon-not-enough-cells #x24f)
|
||||
|
||||
(sidekick-hint-orb-cache-top #x251)
|
||||
|
||||
(daxter-launcher-no-eco #x25c)
|
||||
(jungle-precursorbridge-hint #x25b)
|
||||
|
||||
(beach-gimmie #x262)
|
||||
(beach-sentinel #x263)
|
||||
(jungle-canyon-end #x264)
|
||||
@ -10312,10 +10311,11 @@
|
||||
|
||||
;; - Types
|
||||
|
||||
;; NOTE - root can also be a collide-shape
|
||||
(deftype manipy (process-drawable)
|
||||
((new-trans-hook function :offset-assert 176)
|
||||
(cur-trans-hook function :offset-assert 180)
|
||||
(cur-event-hook function :offset-assert 184)
|
||||
((new-trans-hook (function none) :offset-assert 176) ;; TODO - no idea on these types
|
||||
(cur-trans-hook (function none) :offset-assert 180) ;; TODO - no idea on these types
|
||||
(cur-event-hook (function none) :offset-assert 184) ;; TODO - no idea on these types
|
||||
(new-joint-anim art-joint-anim :offset-assert 188)
|
||||
(new-joint-anim-blend uint64 :offset-assert 192)
|
||||
(anim-mode symbol :offset-assert 200)
|
||||
@ -10323,8 +10323,8 @@
|
||||
(cur-target-handle handle :offset-assert 216)
|
||||
(old-grab-pos vector :inline :offset-assert 224)
|
||||
(joint process-drawable 4 :offset-assert 240)
|
||||
(new-post-hook function :offset-assert 256)
|
||||
(cur-post-hook function :offset-assert 260)
|
||||
(new-post-hook (function none) :offset-assert 256) ;; TODO - no idea on these types
|
||||
(cur-post-hook (function none) :offset-assert 260) ;; TODO - no idea on these types
|
||||
(clone-copy-trans basic :offset-assert 264)
|
||||
(shadow-backup basic :offset-assert 268)
|
||||
(draw? symbol :offset-assert 272)
|
||||
@ -10335,9 +10335,10 @@
|
||||
:flag-assert #x1400b00114
|
||||
)
|
||||
|
||||
(declare-type sparticle-launch-group structure)
|
||||
(deftype part-spawner (process-drawable)
|
||||
((mode uint32 :offset-assert 176)
|
||||
(enable basic :offset-assert 180)
|
||||
((mode (pointer sparticle-launch-group) :offset-assert 176) ;; takes a part-spawner as it's first arg in method 9
|
||||
(enable symbol :offset-assert 180)
|
||||
(radius meters :offset-assert 184)
|
||||
(world-sphere sphere :inline :offset-assert 192)
|
||||
)
|
||||
@ -10346,19 +10347,19 @@
|
||||
:size-assert #xd0
|
||||
:flag-assert #x15006000d0
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(dummy-20 (_type_) none 20)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype part-tracker (process)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target uint64 :offset-assert 120)
|
||||
(callback basic :offset-assert 128)
|
||||
(linger-callback basic :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target handle :offset-assert 120)
|
||||
(callback (function part-tracker none) :offset-assert 128)
|
||||
(linger-callback (function part-tracker none) :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
@ -10372,9 +10373,10 @@
|
||||
)
|
||||
|
||||
(deftype camera-tracker (process)
|
||||
((grab-target handle :offset 120)
|
||||
(grab-event basic :offset-assert 128)
|
||||
(release-event basic :offset-assert 132)
|
||||
((entity-override entity-actor :score 100 :offset 52)
|
||||
(grab-target handle :offset 120)
|
||||
(grab-event symbol :offset-assert 128)
|
||||
(release-event symbol :offset-assert 132)
|
||||
(old-global-mask uint32 :offset-assert 136)
|
||||
(old-self-mask uint32 :offset-assert 140)
|
||||
(old-parent-mask uint32 :offset-assert 144)
|
||||
@ -10388,27 +10390,28 @@
|
||||
(message basic :offset-assert 200)
|
||||
(border-value basic :offset-assert 204)
|
||||
(mask-to-clear uint32 :offset-assert 208)
|
||||
(script basic :offset-assert 212)
|
||||
(script-line basic :offset-assert 216)
|
||||
(script-func basic :offset-assert 220)
|
||||
(script pair :offset-assert 212)
|
||||
(script-line pair :offset-assert 216)
|
||||
(script-func (function none) :offset-assert 220) ;; TODO - unconfirmed, see generic-obs::lambda::33
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 15
|
||||
:size-assert #xe0
|
||||
:flag-assert #xf007000e0
|
||||
;; field ~Tuserdata is a basic loaded with a signed load
|
||||
(:methods
|
||||
(dummy-14 () none 14)
|
||||
(dummy-14 (_type_ pair) process 14)
|
||||
)
|
||||
)
|
||||
|
||||
(declare-type collide-shape-moving basic)
|
||||
(deftype touch-tracker (process-drawable)
|
||||
((duration uint64 :offset-assert 176)
|
||||
(target uint64 :offset-assert 184)
|
||||
(event basic :offset-assert 192)
|
||||
(run-function basic :offset-assert 196)
|
||||
(callback basic :offset-assert 200)
|
||||
(event-mode basic :offset-assert 204)
|
||||
((root-override collide-shape-moving :score 100 :offset 112)
|
||||
(duration uint64 :offset-assert 176)
|
||||
(target handle :offset-assert 184)
|
||||
(event symbol :offset-assert 192)
|
||||
(run-function (function none) :offset-assert 196)
|
||||
(callback (function touch-tracker none) :offset-assert 200)
|
||||
(event-mode basic :offset-assert 204) ;; not a basic!
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 20
|
||||
@ -17991,7 +17994,7 @@
|
||||
(define-extern load-state-want-force-vis (function symbol symbol int))
|
||||
(define-extern command-get-param (function object object object))
|
||||
(define-extern entity-birth-no-kill (function entity none))
|
||||
(define-extern part-tracker-init (function sparticle-launch-group int basic basic basic vector none)) ;; TODO - not confirmed
|
||||
(define-extern part-tracker-init (function sparticle-launch-group int (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker))
|
||||
(define-extern command-list-get-process (function object process))
|
||||
(define-extern command-get-quoted-param (function object object object))
|
||||
(define-extern command-get-int (function object int int))
|
||||
@ -18598,10 +18601,6 @@
|
||||
(define-extern cam-master-active (state camera-master))
|
||||
(define-extern list-keeper-active (state camera-master))
|
||||
(define-extern *CAMERA_MASTER-bank* camera-master-bank)
|
||||
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
(define-extern cam-fixed (state camera-slave))
|
||||
(define-extern cam-decel (state camera-slave))
|
||||
(define-extern cam-eye (state camera-slave))
|
||||
@ -19456,8 +19455,8 @@
|
||||
)
|
||||
|
||||
(deftype med-res-level (process-drawable)
|
||||
((level basic :offset-assert 176)
|
||||
(part-mode basic :offset-assert 180)
|
||||
((level symbol :offset-assert 176)
|
||||
(part-mode basic :offset-assert 180) ;; sometimes a sound-mode, but too low a sample size to know for sure
|
||||
(index int32 :offset-assert 184)
|
||||
)
|
||||
:method-count-assert 20
|
||||
@ -19467,10 +19466,11 @@
|
||||
)
|
||||
|
||||
(deftype launcher (process-drawable)
|
||||
((spring-height meters :offset-assert 176)
|
||||
(camera basic :offset-assert 180)
|
||||
((root-override collide-shape :score 100 :offset 112)
|
||||
(spring-height meters :offset-assert 176)
|
||||
(camera state :offset-assert 180)
|
||||
(active-distance float :offset-assert 184)
|
||||
(seek-time int64 :offset-assert 192)
|
||||
(seek-time uint64 :offset-assert 192)
|
||||
(dest vector :inline :offset-assert 208)
|
||||
(sound-id sound-id :offset-assert 224)
|
||||
)
|
||||
@ -19482,47 +19482,47 @@
|
||||
|
||||
;; - Functions
|
||||
|
||||
(define-extern line-in-view-frustum? function)
|
||||
(define-extern line-in-view-frustum? (function vector vector symbol)) ;; TODO - not confirmed
|
||||
(define-extern process-drawable-random-point! (function process-drawable vector vector))
|
||||
(define-extern process-drawable-from-entity! (function process-drawable res-lump none))
|
||||
(define-extern cam-launcher-long-joystick function)
|
||||
(define-extern cam-launcher-long-joystick (function vector :behavior camera-slave))
|
||||
(define-extern hide-hud-quick (function none))
|
||||
(define-extern command-get-process (function basic process-drawable process))
|
||||
(define-extern camera-change-to (function string int symbol none)) ;; TODO - not confirmed yet
|
||||
(define-extern camera-look-at (function process int none)) ;; TODO - process is likely a target
|
||||
(define-extern camera-pov-from function)
|
||||
(define-extern command-get-trans function)
|
||||
(define-extern manipy-init (function vector entity skeleton-group vector none :behavior manipy))
|
||||
(define-extern part-tracker-notify function)
|
||||
(define-extern command-get-process (function object process-drawable process :behavior camera-tracker))
|
||||
(define-extern camera-change-to (function string int symbol symbol))
|
||||
(define-extern camera-look-at (function pair uint process :behavior camera-tracker))
|
||||
(define-extern camera-pov-from (function pair uint process :behavior camera-tracker))
|
||||
(define-extern command-get-trans (function object vector vector)) ;; object types - null | symbol (null | target) | pair
|
||||
(define-extern manipy-init (function vector entity skeleton-group vector none :behavior manipy)) ;; TODO - not confirmed yet
|
||||
(define-extern part-tracker-notify (function object :behavior part-tracker))
|
||||
(define-extern clone-anim-once (function handle int symbol string none :behavior process-drawable))
|
||||
(define-extern merc-eye-anim (function process-drawable none))
|
||||
(define-extern clone-anim (function handle int symbol string none :behavior process-drawable))
|
||||
(define-extern convert-to-hud-object (function process-drawable hud none :behavior hud))
|
||||
(define-extern command-get-camera function)
|
||||
(define-extern ja-anim-done? (function symbol)) ;; TODO - not confirmed
|
||||
(define-extern camera-anim function)
|
||||
(define-extern camera-tracker-init (function function none)) ;; TODO - not confirmed, see misty-warehouse::camera-view
|
||||
(define-extern cam-launcher-joystick function)
|
||||
(define-extern launcher-init-by-other (function vector float vector float none :behavior launcher))
|
||||
(define-extern touch-tracker-init (function object object object none))
|
||||
(define-extern clone-anim (function handle int symbol string none :behavior process-drawable))
|
||||
(define-extern merc-eye-anim (function process-drawable none))
|
||||
(define-extern ja-anim-done? (function pair symbol)) ;; TODO - has a behavior, no idea what it is
|
||||
(define-extern command-get-camera (function object state object)) ;; ret - (state camera) | string | symbol
|
||||
(define-extern camera-anim (function symbol basic entity (pointer process) :behavior camera-tracker)) ;; unused
|
||||
(define-extern camera-tracker-init (function object object :behavior camera-tracker)) ;; TODO - nested SC
|
||||
(define-extern cam-launcher-joystick (function vector :behavior camera-slave))
|
||||
(define-extern launcher-init-by-other (function vector float int float none :behavior launcher))
|
||||
(define-extern touch-tracker-init (function vector float uint none :behavior touch-tracker)) ;; last arg is a handle to `target`
|
||||
(define-extern process-drawable-pair-random-point! (function process-drawable process-drawable vector float vector))
|
||||
(define-extern birth-func-set-quat function)
|
||||
(define-extern birth-func-set-quat (function int sparticle-cpuinfo sparticle-launchinfo none))
|
||||
(define-extern draw-eco-beam (function vector vector none))
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
(define-extern *particle-quat* quaternion)
|
||||
(define-extern touch-tracker-idle (state touch-tracker))
|
||||
(define-extern cam-launcher-longfall (state camera-tracker))
|
||||
(define-extern cam-launcher-shortfall (state camera-tracker))
|
||||
(define-extern cam-launcher-longfall (state camera-slave))
|
||||
(define-extern cam-launcher-shortfall (state camera-slave))
|
||||
(define-extern launcher-idle (state launcher))
|
||||
(define-extern launcher-deactivated (state launcher))
|
||||
(define-extern launcher-active (state launcher))
|
||||
(define-extern part-spawner-active (state part-spawner))
|
||||
(define-extern *lev-string* string)
|
||||
(define-extern med-res-level-idle (state med-res-level))
|
||||
(define-extern camera-tracker-process camera-tracker)
|
||||
(define-extern part-tracker-process part-tracker)
|
||||
(define-extern camera-tracker-process (state camera-tracker))
|
||||
(define-extern part-tracker-process (state part-tracker))
|
||||
(define-extern manipy-idle (state manipy))
|
||||
(define-extern swingpole-stance (state swingpole))
|
||||
(define-extern swingpole-active (state swingpole))
|
||||
@ -21938,7 +21938,7 @@
|
||||
(define-extern dm-cam-settings-func (function int int symbol))
|
||||
(define-extern dm-cam-settings-func-int (function int int debug-menu debug-menu debug-menu))
|
||||
(define-extern debug-create-cam-restore (function none)) ;; TODO - level-group type isn't complete
|
||||
(define-extern dm-cam-mode-func (function (state camera-slave) int symbol))
|
||||
(define-extern dm-cam-mode-func (function (state camera-slave) int object))
|
||||
(define-extern dm-instance-pick-func (function string int basic))
|
||||
(define-extern dm-enable-instance-func (function string int symbol))
|
||||
(define-extern dm-shader-pick-func (function texture-id int object)) ;; TODO - more texture stuff...
|
||||
|
@ -817,5 +817,9 @@
|
||||
[4, "(function sparticle-launch-control :behavior ogreboss-village2)"]
|
||||
],
|
||||
|
||||
"generic-obs": [
|
||||
[5, "(function symbol :behavior touch-tracker)"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
@ -282,9 +282,6 @@
|
||||
// ambient
|
||||
"ambient-inspect",
|
||||
|
||||
// generic-obs BUG
|
||||
"camera-change-to",
|
||||
|
||||
// target BUG
|
||||
"target-falling-anim-trans",
|
||||
|
||||
@ -401,7 +398,10 @@
|
||||
"load-boundary-from-template",
|
||||
"command-get-time",
|
||||
"command-get-param",
|
||||
"command-get-quoted-param"
|
||||
"command-get-quoted-param",
|
||||
"command-get-trans",
|
||||
"command-get-camera",
|
||||
"(method 14 camera-tracker)"
|
||||
],
|
||||
|
||||
// If format is used with the wrong number of arguments,
|
||||
|
@ -486,9 +486,6 @@
|
||||
],
|
||||
|
||||
"projectiles": [["L150", "attack-info"]],
|
||||
|
||||
"generic-obs": [["L455", "quaternion"]],
|
||||
|
||||
"blocking-plane": [
|
||||
["L18", "vector"],
|
||||
["L19", "vector"],
|
||||
@ -1246,6 +1243,11 @@
|
||||
["L105", "vector"]
|
||||
],
|
||||
|
||||
"generic-obs": [
|
||||
["L455", "quaternion"],
|
||||
["L457", "attack-info"]
|
||||
],
|
||||
|
||||
// please do not add things after this entry! git is dumb.
|
||||
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
|
||||
}
|
||||
|
@ -3453,5 +3453,177 @@
|
||||
[32, "event-message-block"]
|
||||
],
|
||||
|
||||
"(anon-function 54 generic-obs)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"part-tracker-notify": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"process-grab?": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"process-release?": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"camera-change-to": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"camera-look-at": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"ja-anim-done?": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"draw-eco-beam": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "quaternion"]
|
||||
],
|
||||
|
||||
"process-drawable-pair-random-point!": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"(anon-function 7 generic-obs)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(anon-function 11 generic-obs)": [
|
||||
[16, "event-message-block"] // trans
|
||||
],
|
||||
|
||||
"(anon-function 13 generic-obs)": [
|
||||
[16, "event-message-block"] // event
|
||||
],
|
||||
|
||||
"(anon-function 14 generic-obs)": [
|
||||
[16, "event-message-block"] // trans
|
||||
],
|
||||
|
||||
"(anon-function 16 generic-obs)": [ // code
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "event-message-block"]
|
||||
],
|
||||
|
||||
"(anon-function 18 generic-obs)": [ // enter
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"cam-launcher-long-joystick": [
|
||||
[16, "matrix"]
|
||||
],
|
||||
|
||||
"(anon-function 21 generic-obs)": [ // code
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(anon-function 23 generic-obs)": [ // enter
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"cam-launcher-joystick": [
|
||||
[16, "matrix"],
|
||||
[80, "vector"]
|
||||
],
|
||||
|
||||
"(anon-function 31 generic-obs)": [
|
||||
[16, "vector"] // code
|
||||
],
|
||||
|
||||
"(code swingpole-stance)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"camera-anim": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"camera-pov-from": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 14 camera-tracker)": [
|
||||
[16, "event-message-block"],
|
||||
[96, "event-message-block"]
|
||||
],
|
||||
|
||||
"(anon-function 33 generic-obs)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans manipy-idle)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"(anon-function 34 generic-obs)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(exit camera-tracker-process)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code camera-tracker-process)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code cam-launcher-shortfall)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans launcher-idle)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event launcher-active)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event touch-tracker-idle)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans launcher-active)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code touch-tracker-idle)": [
|
||||
[16, "touching-shapes-entry"]
|
||||
],
|
||||
|
||||
"(event manipy-idle)": [
|
||||
[16, "matrix"]
|
||||
],
|
||||
|
||||
"(code med-res-level-idle)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(enter cam-launcher-longfall)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(enter cam-launcher-shortfall)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(code cam-launcher-longfall)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "event-message-block"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below!": []
|
||||
}
|
||||
|
@ -2338,8 +2338,6 @@
|
||||
[64, "a0", "process-drawable"]
|
||||
],
|
||||
|
||||
"process-drawable-random-point!": [[[28, 40], "s4", "collide-shape"]],
|
||||
|
||||
"(anon-function 0 dark-eco-pool)": [[2, "v1", "state"]],
|
||||
|
||||
"(method 25 dark-eco-pool)": [
|
||||
@ -2408,7 +2406,10 @@
|
||||
|
||||
"(method 27 projectile-yellow)": [[70, "v1", "process-mask"]],
|
||||
|
||||
"manipy-init": [[143, "a0", "collide-shape"]],
|
||||
"manipy-init": [
|
||||
[143, "a0", "collide-shape"],
|
||||
[145, "a0", "collide-shape"]
|
||||
],
|
||||
|
||||
"forall-particles-with-key-runner": [
|
||||
[32, "s3", "(inline-array sparticle-cpuinfo)"],
|
||||
@ -4218,10 +4219,6 @@
|
||||
[18, "s6", "camera-tracker"]
|
||||
],
|
||||
|
||||
"command-get-process": [
|
||||
[62, "s6", "camera-tracker"]
|
||||
],
|
||||
|
||||
"joint-control-copy!": [
|
||||
[8, "a0", "pointer"],
|
||||
[8, "a2", "pointer"]
|
||||
@ -5008,5 +5005,125 @@
|
||||
[[8, 16], "a0", "dma-packet"]
|
||||
],
|
||||
|
||||
"(method 11 swingpole)": [
|
||||
[27, "s5", "entity-actor"]
|
||||
],
|
||||
|
||||
"(anon-function 54 generic-obs)": [
|
||||
[57, "v1", "process-drawable"],
|
||||
[66, "a0", "collide-shape"]
|
||||
],
|
||||
|
||||
"(code manipy-idle)": [
|
||||
[58, "a1", "process-drawable"],
|
||||
[73, "gp", "process-drawable"],
|
||||
[79, "gp", "process-drawable"],
|
||||
[110, "a0", "process-drawable"]
|
||||
],
|
||||
|
||||
"(anon-function 49 generic-obs)": [
|
||||
[25, "gp", "process-drawable"],
|
||||
[30, "gp", "process-drawable"]
|
||||
],
|
||||
|
||||
"ja-anim-done?": [
|
||||
[27, "gp", "process-drawable"]
|
||||
],
|
||||
|
||||
"camera-pov-from": [
|
||||
[23, "gp", "process-drawable"],
|
||||
[26, "gp", "process-drawable"]
|
||||
],
|
||||
|
||||
"process-drawable-random-point!": [
|
||||
[29, "s4", "collide-shape"],
|
||||
[33, "s4", "collide-shape"]
|
||||
],
|
||||
|
||||
"launcher-init-by-other": [
|
||||
[134, "v0", "vector"]
|
||||
],
|
||||
|
||||
"(method 11 launcher)": [
|
||||
[130, "v0", "vector"]
|
||||
],
|
||||
|
||||
"(method 11 part-spawner)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
[62, "v0", "(pointer (pointer sparticle-launch-group))"]
|
||||
],
|
||||
|
||||
"(method 11 med-res-level)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
[21, "v0", "(pointer (pointer sparticle-launch-group))"],
|
||||
[57, "s4", "(pointer sparticle-launch-group)"]
|
||||
],
|
||||
|
||||
"(anon-function 28 generic-obs)": [
|
||||
[25, "v1", "quaternion"] // code
|
||||
],
|
||||
|
||||
"camera-tracker-init": [
|
||||
[69, "v1", "process"]
|
||||
],
|
||||
|
||||
"camera-anim": [
|
||||
[26, "t9", "(function process function object object object object object)"]
|
||||
],
|
||||
|
||||
"(event manipy-idle)": [
|
||||
[59, "t9", "(function manipy none)"],
|
||||
[118, "v1", "float"],
|
||||
[131, "a0", "process"],
|
||||
[151, "v1", "process-drawable"],
|
||||
[160, "a0", "process"],
|
||||
[177, "a0", "collide-shape"],
|
||||
[180, "a0", "collide-shape"],
|
||||
[185, "v1", "vector"],
|
||||
[313, "a0", "float"]
|
||||
],
|
||||
|
||||
"command-get-trans": [
|
||||
[29, "s4", "target"]
|
||||
],
|
||||
|
||||
"(trans manipy-idle)": [
|
||||
[57, "v1", "process-drawable"],
|
||||
[66, "a0", "collide-shape"]
|
||||
],
|
||||
|
||||
"(method 14 camera-tracker)": [
|
||||
[196, "s4", "basic"],
|
||||
[202, "s4", "(function camera-tracker symbol)"],
|
||||
[270, "v0", "target"]
|
||||
],
|
||||
|
||||
"(event touch-tracker-idle)": [
|
||||
[105, "a0", "process"],
|
||||
[129, "t9", "(function touch-tracker none)"]
|
||||
],
|
||||
|
||||
"(code touch-tracker-idle)": [
|
||||
[25, "a0", "process-drawable"],
|
||||
[38, "a0", "collide-shape"]
|
||||
],
|
||||
|
||||
"(code part-tracker-process)": [
|
||||
[25, "gp", "process-drawable"],
|
||||
[30, "gp", "process-drawable"]
|
||||
],
|
||||
|
||||
"(event part-spawner-active)": [
|
||||
[25, "v1", "vector"]
|
||||
],
|
||||
|
||||
"(exit launcher-active)": [
|
||||
[2, "v0", "sound-rpc-set-param"]
|
||||
],
|
||||
|
||||
"command-get-camera": [
|
||||
[27, "gp", "symbol"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
@ -13,6 +13,8 @@
|
||||
;; Necessary forward declarations
|
||||
(define-extern cam-robotboss (state camera-slave))
|
||||
|
||||
(define-extern dm-cam-mode-func (function (state camera-slave) int object))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
;; this file is debug only
|
||||
|
@ -55,4 +55,6 @@
|
||||
(define-extern add-process-drawable (function process-drawable draw-control symbol dma-buffer none))
|
||||
(define-extern dma-add-process-drawable-hud (function process-drawable draw-control symbol dma-buffer none))
|
||||
(define-extern dma-add-process-drawable (function process-drawable draw-control symbol dma-buffer none))
|
||||
(define-extern vis-cull (function int symbol))
|
||||
(define-extern vis-cull (function int symbol))
|
||||
|
||||
(define-extern line-in-view-frustum? (function vector vector symbol)) ;; TODO - not confirmed
|
||||
|
@ -549,7 +549,6 @@
|
||||
)
|
||||
|
||||
(declare-type vent process-drawable)
|
||||
(define-extern touch-tracker-init (function object object object none))
|
||||
|
||||
(defmethod pickup-collectable! fact-info-target ((obj fact-info-target) (kind pickup-type) (amount float) (source-handle handle))
|
||||
"Pickup a thing!"
|
||||
|
@ -10,8 +10,6 @@
|
||||
;; TODO - for babak-with-cannon
|
||||
(define-extern beachcam-spawn (function none))
|
||||
|
||||
(define-extern ja-anim-done? (function symbol))
|
||||
|
||||
(define-extern draw-eco-beam (function vector vector none))
|
||||
|
||||
(define-extern process-grab? (function process symbol :behavior process))
|
||||
@ -21,24 +19,33 @@
|
||||
|
||||
(define-extern birth-pickup-at-point (function vector int float symbol process-drawable fact-info (pointer process)))
|
||||
|
||||
;; decomp begins
|
||||
(declare-type collide-shape-moving basic)
|
||||
(declare-type sparticle-launch-group basic)
|
||||
(declare-type part-tracker process)
|
||||
(declare-type collide-prim-core structure)
|
||||
(define-extern part-tracker-init (function sparticle-launch-group int (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker))
|
||||
|
||||
(declare-type touch-tracker process-drawable)
|
||||
(define-extern touch-tracker-init (function vector float uint none :behavior touch-tracker)) ;; last arg is a handle to `target`
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype manipy (process-drawable)
|
||||
((new-trans-hook function :offset-assert 176)
|
||||
(cur-trans-hook function :offset-assert 180)
|
||||
(cur-event-hook function :offset-assert 184)
|
||||
(new-joint-anim art-joint-anim :offset-assert 188)
|
||||
(new-joint-anim-blend uint64 :offset-assert 192)
|
||||
(anim-mode symbol :offset-assert 200)
|
||||
(cur-grab-handle handle :offset-assert 208)
|
||||
(cur-target-handle handle :offset-assert 216)
|
||||
(old-grab-pos vector :inline :offset-assert 224)
|
||||
(joint process-drawable 4 :offset-assert 240)
|
||||
(new-post-hook function :offset-assert 256)
|
||||
(cur-post-hook function :offset-assert 260)
|
||||
(clone-copy-trans basic :offset-assert 264)
|
||||
(shadow-backup basic :offset-assert 268)
|
||||
(draw? symbol :offset-assert 272)
|
||||
((new-trans-hook (function none) :offset-assert 176)
|
||||
(cur-trans-hook (function none) :offset-assert 180)
|
||||
(cur-event-hook (function none) :offset-assert 184)
|
||||
(new-joint-anim art-joint-anim :offset-assert 188)
|
||||
(new-joint-anim-blend uint64 :offset-assert 192)
|
||||
(anim-mode symbol :offset-assert 200)
|
||||
(cur-grab-handle handle :offset-assert 208)
|
||||
(cur-target-handle handle :offset-assert 216)
|
||||
(old-grab-pos vector :inline :offset-assert 224)
|
||||
(joint process-drawable 4 :offset-assert 240)
|
||||
(new-post-hook (function none) :offset-assert 256)
|
||||
(cur-post-hook (function none) :offset-assert 260)
|
||||
(clone-copy-trans basic :offset-assert 264)
|
||||
(shadow-backup basic :offset-assert 268)
|
||||
(draw? symbol :offset-assert 272)
|
||||
)
|
||||
:heap-base #xb0
|
||||
:method-count-assert 20
|
||||
@ -46,35 +53,37 @@
|
||||
:flag-assert #x1400b00114
|
||||
)
|
||||
|
||||
|
||||
(deftype part-spawner (process-drawable)
|
||||
((mode uint32 :offset-assert 176)
|
||||
(enable basic :offset-assert 180)
|
||||
(radius meters :offset-assert 184)
|
||||
(world-sphere sphere :inline :offset-assert 192)
|
||||
((mode (pointer sparticle-launch-group) :offset-assert 176)
|
||||
(enable symbol :offset-assert 180)
|
||||
(radius meters :offset-assert 184)
|
||||
(world-sphere sphere :inline :offset-assert 192)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 21
|
||||
:size-assert #xd0
|
||||
:flag-assert #x15006000d0
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(dummy-20 (_type_) none 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype part-tracker (process)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target uint64 :offset-assert 120)
|
||||
(callback basic :offset-assert 128)
|
||||
(linger-callback basic :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target handle :offset-assert 120)
|
||||
(callback (function part-tracker none) :offset-assert 128)
|
||||
(linger-callback (function part-tracker none) :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 14
|
||||
@ -82,44 +91,47 @@
|
||||
:flag-assert #xe009000f8
|
||||
)
|
||||
|
||||
|
||||
(deftype camera-tracker (process)
|
||||
((grab-target handle :offset 120)
|
||||
(grab-event basic :offset-assert 128)
|
||||
(release-event basic :offset-assert 132)
|
||||
(old-global-mask uint32 :offset-assert 136)
|
||||
(old-self-mask uint32 :offset-assert 140)
|
||||
(old-parent-mask uint32 :offset-assert 144)
|
||||
(look-at-target handle :offset-assert 152)
|
||||
(pov-target handle :offset-assert 160)
|
||||
(work-process handle :offset-assert 168)
|
||||
(anim-process handle :offset-assert 176)
|
||||
(start-time int64 :offset-assert 184)
|
||||
(callback basic :offset-assert 192)
|
||||
(userdata basic :offset-assert 196)
|
||||
(message basic :offset-assert 200)
|
||||
(border-value basic :offset-assert 204)
|
||||
(mask-to-clear uint32 :offset-assert 208)
|
||||
(script basic :offset-assert 212)
|
||||
(script-line basic :offset-assert 216)
|
||||
(script-func basic :offset-assert 220)
|
||||
((entity-override entity-actor :offset 52)
|
||||
(grab-target handle :offset 120)
|
||||
(grab-event symbol :offset-assert 128)
|
||||
(release-event symbol :offset-assert 132)
|
||||
(old-global-mask uint32 :offset-assert 136)
|
||||
(old-self-mask uint32 :offset-assert 140)
|
||||
(old-parent-mask uint32 :offset-assert 144)
|
||||
(look-at-target handle :offset-assert 152)
|
||||
(pov-target handle :offset-assert 160)
|
||||
(work-process handle :offset-assert 168)
|
||||
(anim-process handle :offset-assert 176)
|
||||
(start-time int64 :offset-assert 184)
|
||||
(callback basic :offset-assert 192)
|
||||
(userdata basic :offset-assert 196)
|
||||
(message basic :offset-assert 200)
|
||||
(border-value basic :offset-assert 204)
|
||||
(mask-to-clear uint32 :offset-assert 208)
|
||||
(script pair :offset-assert 212)
|
||||
(script-line pair :offset-assert 216)
|
||||
(script-func (function none) :offset-assert 220)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 15
|
||||
:size-assert #xe0
|
||||
:flag-assert #xf007000e0
|
||||
;; field ~Tuserdata is a basic loaded with a signed load
|
||||
(:methods
|
||||
(dummy-14 () none 14)
|
||||
(dummy-14 (_type_ pair) process 14)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype touch-tracker (process-drawable)
|
||||
((duration uint64 :offset-assert 176)
|
||||
(target uint64 :offset-assert 184)
|
||||
(event basic :offset-assert 192)
|
||||
(run-function basic :offset-assert 196)
|
||||
(callback basic :offset-assert 200)
|
||||
(event-mode basic :offset-assert 204)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(duration uint64 :offset-assert 176)
|
||||
(target handle :offset-assert 184)
|
||||
(event symbol :offset-assert 192)
|
||||
(run-function (function none) :offset-assert 196)
|
||||
(callback (function touch-tracker none) :offset-assert 200)
|
||||
(event-mode basic :offset-assert 204)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 20
|
||||
@ -127,6 +139,7 @@
|
||||
:flag-assert #x14006000d0
|
||||
)
|
||||
|
||||
|
||||
(deftype swingpole (process)
|
||||
((root trsq :offset-assert 112)
|
||||
(dir vector :inline :offset-assert 128)
|
||||
@ -139,14 +152,15 @@
|
||||
:flag-assert #xe00300098
|
||||
)
|
||||
|
||||
|
||||
(deftype gui-query (structure)
|
||||
((x-position int32 :offset-assert 0)
|
||||
(y-position int32 :offset-assert 4)
|
||||
(message string :offset-assert 8)
|
||||
(decision symbol :offset-assert 12)
|
||||
(only-allow-cancel symbol :offset-assert 16)
|
||||
(no-msg string :offset-assert 20)
|
||||
(message-space int32 :offset-assert 24)
|
||||
((x-position int32 :offset-assert 0)
|
||||
(y-position int32 :offset-assert 4)
|
||||
(message string :offset-assert 8)
|
||||
(decision symbol :offset-assert 12)
|
||||
(only-allow-cancel symbol :offset-assert 16)
|
||||
(no-msg string :offset-assert 20)
|
||||
(message-space int32 :offset-assert 24)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 11
|
||||
@ -158,6 +172,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype othercam (process)
|
||||
((hand handle :offset-assert 112)
|
||||
(old-global-mask uint32 :offset-assert 120)
|
||||
@ -167,9 +182,9 @@
|
||||
(old-mat-z vector :inline :offset-assert 160)
|
||||
(had-valid-frame basic :offset-assert 176)
|
||||
(border-value basic :offset-assert 180)
|
||||
(die? symbol :offset-assert 184)
|
||||
(die? symbol :offset-assert 184)
|
||||
(survive-anim-end? symbol :offset-assert 188)
|
||||
(spooling? symbol :offset-assert 192)
|
||||
(spooling? symbol :offset-assert 192)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 14
|
||||
@ -177,6 +192,7 @@
|
||||
:flag-assert #xe006000c4
|
||||
)
|
||||
|
||||
|
||||
(deftype process-hidden (process)
|
||||
()
|
||||
:method-count-assert 15
|
||||
@ -187,5 +203,9 @@
|
||||
)
|
||||
)
|
||||
|
||||
(declare-type sparticle-launch-group basic)
|
||||
(define-extern part-tracker-init (function sparticle-launch-group int basic basic basic vector none)) ;; TODO - not confirmed
|
||||
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1817,33 +1817,40 @@
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(-> self hand process 0)
|
||||
(when
|
||||
(or (-> self die?) (and (not (-> self survive-anim-end?)) (ja-anim-done?)))
|
||||
(let ((gp-1 (-> *display* base-frame-counter)))
|
||||
(while
|
||||
(let ((a0-25 (-> self hand process 0)))
|
||||
(when
|
||||
(or
|
||||
(-> self die?)
|
||||
(and
|
||||
(< (- (-> *display* base-frame-counter) gp-1) #x4650)
|
||||
(or
|
||||
(and
|
||||
(-> self entity)
|
||||
(not
|
||||
(is-object-visible?
|
||||
(-> self entity extra level)
|
||||
(-> self entity extra vis-id)
|
||||
(not (-> self survive-anim-end?))
|
||||
(ja-anim-done? (the-as pair a0-25))
|
||||
)
|
||||
)
|
||||
(let ((gp-1 (-> *display* base-frame-counter)))
|
||||
(while
|
||||
(and
|
||||
(< (- (-> *display* base-frame-counter) gp-1) #x4650)
|
||||
(or
|
||||
(and
|
||||
(-> self entity)
|
||||
(not
|
||||
(is-object-visible?
|
||||
(-> self entity extra level)
|
||||
(-> self entity extra vis-id)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(<
|
||||
81920.0
|
||||
(vector-vector-distance (camera-pos) (-> *math-camera* trans))
|
||||
(<
|
||||
81920.0
|
||||
(vector-vector-distance (camera-pos) (-> *math-camera* trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
(deactivate self)
|
||||
)
|
||||
(deactivate self)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
|
@ -152,9 +152,8 @@
|
||||
(firecanyon-not-enough-cells #x24f)
|
||||
|
||||
(sidekick-hint-orb-cache-top #x251)
|
||||
|
||||
(daxter-launcher-no-eco #x25c)
|
||||
(jungle-precursorbridge-hint #x25b)
|
||||
|
||||
(beach-gimmie #x262)
|
||||
(beach-sentinel #x263)
|
||||
(jungle-canyon-end #x264)
|
||||
|
@ -120,8 +120,7 @@
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
self
|
||||
(when ((method-of-object self dummy-20))
|
||||
(when (dummy-20 self)
|
||||
(let* ((gp-0 (camera-pos))
|
||||
(f0-0 (vector-vector-distance (-> self root trans) gp-0))
|
||||
)
|
||||
|
@ -425,10 +425,13 @@
|
||||
)
|
||||
(camera-look-at
|
||||
(the-as
|
||||
process
|
||||
pair
|
||||
"ecovent-171"
|
||||
)
|
||||
0
|
||||
(the-as
|
||||
uint
|
||||
0
|
||||
)
|
||||
)
|
||||
(camera-change-to
|
||||
"camera-223"
|
||||
@ -489,8 +492,14 @@
|
||||
)
|
||||
)
|
||||
(camera-look-at
|
||||
*target*
|
||||
0
|
||||
(the-as
|
||||
pair
|
||||
*target*
|
||||
)
|
||||
(the-as
|
||||
uint
|
||||
0
|
||||
)
|
||||
)
|
||||
(camera-change-to
|
||||
(the-as
|
||||
|
@ -26,6 +26,7 @@ files_with_modifications = [
|
||||
"viewer",
|
||||
"sunken-obs",
|
||||
"cam-master",
|
||||
"generic-obs",
|
||||
"default-menu"
|
||||
]
|
||||
|
||||
|
100
test/decompiler/reference/engine/game/generic-obs-h_REF.gc
generated
vendored
100
test/decompiler/reference/engine/game/generic-obs-h_REF.gc
generated
vendored
@ -3,9 +3,9 @@
|
||||
|
||||
;; definition of type manipy
|
||||
(deftype manipy (process-drawable)
|
||||
((new-trans-hook function :offset-assert 176)
|
||||
(cur-trans-hook function :offset-assert 180)
|
||||
(cur-event-hook function :offset-assert 184)
|
||||
((new-trans-hook (function none) :offset-assert 176)
|
||||
(cur-trans-hook (function none) :offset-assert 180)
|
||||
(cur-event-hook (function none) :offset-assert 184)
|
||||
(new-joint-anim art-joint-anim :offset-assert 188)
|
||||
(new-joint-anim-blend uint64 :offset-assert 192)
|
||||
(anim-mode symbol :offset-assert 200)
|
||||
@ -13,8 +13,8 @@
|
||||
(cur-target-handle handle :offset-assert 216)
|
||||
(old-grab-pos vector :inline :offset-assert 224)
|
||||
(joint process-drawable 4 :offset-assert 240)
|
||||
(new-post-hook function :offset-assert 256)
|
||||
(cur-post-hook function :offset-assert 260)
|
||||
(new-post-hook (function none) :offset-assert 256)
|
||||
(cur-post-hook (function none) :offset-assert 260)
|
||||
(clone-copy-trans basic :offset-assert 264)
|
||||
(shadow-backup basic :offset-assert 268)
|
||||
(draw? symbol :offset-assert 272)
|
||||
@ -50,17 +50,17 @@
|
||||
|
||||
;; definition of type part-spawner
|
||||
(deftype part-spawner (process-drawable)
|
||||
((mode uint32 :offset-assert 176)
|
||||
(enable basic :offset-assert 180)
|
||||
(radius meters :offset-assert 184)
|
||||
(world-sphere sphere :inline :offset-assert 192)
|
||||
((mode (pointer sparticle-launch-group) :offset-assert 176)
|
||||
(enable symbol :offset-assert 180)
|
||||
(radius meters :offset-assert 184)
|
||||
(world-sphere sphere :inline :offset-assert 192)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 21
|
||||
:size-assert #xd0
|
||||
:flag-assert #x15006000d0
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(dummy-20 (_type_) none 20)
|
||||
)
|
||||
)
|
||||
|
||||
@ -78,19 +78,19 @@
|
||||
|
||||
;; definition of type part-tracker
|
||||
(deftype part-tracker (process)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target uint64 :offset-assert 120)
|
||||
(callback basic :offset-assert 128)
|
||||
(linger-callback basic :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target handle :offset-assert 120)
|
||||
(callback (function part-tracker none) :offset-assert 128)
|
||||
(linger-callback (function part-tracker none) :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 14
|
||||
@ -121,32 +121,33 @@
|
||||
|
||||
;; definition of type camera-tracker
|
||||
(deftype camera-tracker (process)
|
||||
((grab-target handle :offset 120)
|
||||
(grab-event basic :offset-assert 128)
|
||||
(release-event basic :offset-assert 132)
|
||||
(old-global-mask uint32 :offset-assert 136)
|
||||
(old-self-mask uint32 :offset-assert 140)
|
||||
(old-parent-mask uint32 :offset-assert 144)
|
||||
(look-at-target handle :offset-assert 152)
|
||||
(pov-target handle :offset-assert 160)
|
||||
(work-process handle :offset-assert 168)
|
||||
(anim-process handle :offset-assert 176)
|
||||
(start-time int64 :offset-assert 184)
|
||||
(callback basic :offset-assert 192)
|
||||
(userdata basic :offset-assert 196)
|
||||
(message basic :offset-assert 200)
|
||||
(border-value basic :offset-assert 204)
|
||||
(mask-to-clear uint32 :offset-assert 208)
|
||||
(script basic :offset-assert 212)
|
||||
(script-line basic :offset-assert 216)
|
||||
(script-func basic :offset-assert 220)
|
||||
((entity-override entity-actor :offset 52)
|
||||
(grab-target handle :offset 120)
|
||||
(grab-event symbol :offset-assert 128)
|
||||
(release-event symbol :offset-assert 132)
|
||||
(old-global-mask uint32 :offset-assert 136)
|
||||
(old-self-mask uint32 :offset-assert 140)
|
||||
(old-parent-mask uint32 :offset-assert 144)
|
||||
(look-at-target handle :offset-assert 152)
|
||||
(pov-target handle :offset-assert 160)
|
||||
(work-process handle :offset-assert 168)
|
||||
(anim-process handle :offset-assert 176)
|
||||
(start-time int64 :offset-assert 184)
|
||||
(callback basic :offset-assert 192)
|
||||
(userdata basic :offset-assert 196)
|
||||
(message basic :offset-assert 200)
|
||||
(border-value basic :offset-assert 204)
|
||||
(mask-to-clear uint32 :offset-assert 208)
|
||||
(script pair :offset-assert 212)
|
||||
(script-line pair :offset-assert 216)
|
||||
(script-func (function none) :offset-assert 220)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 15
|
||||
:size-assert #xe0
|
||||
:flag-assert #xf007000e0
|
||||
(:methods
|
||||
(dummy-14 () none 14)
|
||||
(dummy-14 (_type_ pair) process 14)
|
||||
)
|
||||
)
|
||||
|
||||
@ -180,12 +181,13 @@
|
||||
|
||||
;; definition of type touch-tracker
|
||||
(deftype touch-tracker (process-drawable)
|
||||
((duration uint64 :offset-assert 176)
|
||||
(target uint64 :offset-assert 184)
|
||||
(event basic :offset-assert 192)
|
||||
(run-function basic :offset-assert 196)
|
||||
(callback basic :offset-assert 200)
|
||||
(event-mode basic :offset-assert 204)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(duration uint64 :offset-assert 176)
|
||||
(target handle :offset-assert 184)
|
||||
(event symbol :offset-assert 192)
|
||||
(run-function (function none) :offset-assert 196)
|
||||
(callback (function touch-tracker none) :offset-assert 200)
|
||||
(event-mode basic :offset-assert 204)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 20
|
||||
|
3279
test/decompiler/reference/engine/game/generic-obs_REF.gc
generated
vendored
Normal file
3279
test/decompiler/reference/engine/game/generic-obs_REF.gc
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
45
test/decompiler/reference/engine/game/task/process-taskable_REF.gc
generated
vendored
45
test/decompiler/reference/engine/game/task/process-taskable_REF.gc
generated
vendored
@ -1879,33 +1879,40 @@
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(-> self hand process 0)
|
||||
(when
|
||||
(or (-> self die?) (and (not (-> self survive-anim-end?)) (ja-anim-done?)))
|
||||
(let ((gp-1 (-> *display* base-frame-counter)))
|
||||
(while
|
||||
(let ((a0-25 (-> self hand process 0)))
|
||||
(when
|
||||
(or
|
||||
(-> self die?)
|
||||
(and
|
||||
(< (- (-> *display* base-frame-counter) gp-1) #x4650)
|
||||
(or
|
||||
(and
|
||||
(-> self entity)
|
||||
(not
|
||||
(is-object-visible?
|
||||
(-> self entity extra level)
|
||||
(-> self entity extra vis-id)
|
||||
(not (-> self survive-anim-end?))
|
||||
(ja-anim-done? (the-as pair a0-25))
|
||||
)
|
||||
)
|
||||
(let ((gp-1 (-> *display* base-frame-counter)))
|
||||
(while
|
||||
(and
|
||||
(< (- (-> *display* base-frame-counter) gp-1) #x4650)
|
||||
(or
|
||||
(and
|
||||
(-> self entity)
|
||||
(not
|
||||
(is-object-visible?
|
||||
(-> self entity extra level)
|
||||
(-> self entity extra vis-id)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(<
|
||||
81920.0
|
||||
(vector-vector-distance (camera-pos) (-> *math-camera* trans))
|
||||
(<
|
||||
81920.0
|
||||
(vector-vector-distance (camera-pos) (-> *math-camera* trans))
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
(deactivate self)
|
||||
)
|
||||
(deactivate self)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
|
3
test/decompiler/reference/levels/beach/beach-part_REF.gc
generated
vendored
3
test/decompiler/reference/levels/beach/beach-part_REF.gc
generated
vendored
@ -128,8 +128,7 @@
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
self
|
||||
(when ((method-of-object self dummy-20))
|
||||
(when (dummy-20 self)
|
||||
(let* ((gp-0 (camera-pos))
|
||||
(f0-0 (vector-vector-distance (-> self root trans) gp-0))
|
||||
)
|
||||
|
17
test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc
generated
vendored
17
test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc
generated
vendored
@ -435,10 +435,13 @@
|
||||
)
|
||||
(camera-look-at
|
||||
(the-as
|
||||
process
|
||||
pair
|
||||
"ecovent-171"
|
||||
)
|
||||
0
|
||||
(the-as
|
||||
uint
|
||||
0
|
||||
)
|
||||
)
|
||||
(camera-change-to
|
||||
"camera-223"
|
||||
@ -499,8 +502,14 @@
|
||||
)
|
||||
)
|
||||
(camera-look-at
|
||||
*target*
|
||||
0
|
||||
(the-as
|
||||
pair
|
||||
*target*
|
||||
)
|
||||
(the-as
|
||||
uint
|
||||
0
|
||||
)
|
||||
)
|
||||
(camera-change-to
|
||||
(the-as
|
||||
|
@ -1,161 +1,200 @@
|
||||
{
|
||||
"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/SNO.DGO", "DGO/SWA.DGO", "DGO/MAI.DGO", "DGO/ROB.DGO",
|
||||
"DGO/LAV.DGO", "DGO/OGR.DGO", "DGO/TRA.DGO", "DGO/ROL.DGO", "DGO/DAR.DGO"],
|
||||
"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/SNO.DGO",
|
||||
"DGO/SWA.DGO",
|
||||
"DGO/MAI.DGO",
|
||||
"DGO/ROB.DGO",
|
||||
"DGO/LAV.DGO",
|
||||
"DGO/OGR.DGO",
|
||||
"DGO/TRA.DGO",
|
||||
"DGO/ROL.DGO",
|
||||
"DGO/DAR.DGO"
|
||||
],
|
||||
|
||||
"skip_compile_files": [
|
||||
"timer", // accessing timer regs
|
||||
"display", // interrupt handlers
|
||||
"target-snowball" // screwed up labels, likely cut content
|
||||
"skip_compile_files": [
|
||||
"timer", // accessing timer regs
|
||||
"display", // interrupt handlers
|
||||
"target-snowball" // screwed up labels, likely cut content
|
||||
],
|
||||
|
||||
"skip_compile_functions": [
|
||||
/// GCOMMON
|
||||
// these functions are not implemented by the compiler in OpenGOAL, but are in GOAL.
|
||||
"abs",
|
||||
"ash",
|
||||
"min",
|
||||
"max",
|
||||
"lognor",
|
||||
// weird PS2 specific debug registers:
|
||||
"breakpoint-range-set!",
|
||||
// inline assembly
|
||||
"valid?",
|
||||
|
||||
/// GKERNEL
|
||||
// asm
|
||||
"(method 10 process)",
|
||||
"(method 14 dead-pool)",
|
||||
|
||||
/// GSTATE
|
||||
"enter-state", // stack pointer asm
|
||||
|
||||
/// MATH
|
||||
"rand-vu-init",
|
||||
"rand-vu",
|
||||
"rand-vu-nostep", // random hardware
|
||||
|
||||
// trig
|
||||
"sin-rad", // fpu acc
|
||||
"cos-rad", // fpu acc
|
||||
"atan-series-rad", // fpu acc
|
||||
|
||||
/// VECTOR-H
|
||||
"(method 3 vector)", // this function appears twice, which confuses the compiler.
|
||||
"vector4-dot", // fpu acc
|
||||
|
||||
"(method 3 profile-frame)", // double definition.
|
||||
|
||||
// dma-disasm
|
||||
"disasm-dma-list", // missing a single cast :(
|
||||
|
||||
// math camera
|
||||
"transform-point-vector!",
|
||||
"transform-point-qword!",
|
||||
"transform-point-vector-scale!",
|
||||
|
||||
// display-h
|
||||
"put-draw-env",
|
||||
|
||||
// geometry
|
||||
"calculate-basis-functions-vector!", // asm requiring manual rewrite
|
||||
"curve-evaluate!", // asm requiring manual rewrite
|
||||
"point-in-triangle-cross", // logior on floats manual fixup
|
||||
|
||||
// texture
|
||||
"(method 9 texture-page-dir)", // multiplication on pointers
|
||||
"adgif-shader<-texture-with-update!", // misrecognized bitfield stuff.
|
||||
|
||||
// asm
|
||||
"invalidate-cache-line",
|
||||
|
||||
// stats-h
|
||||
"(method 11 perf-stat)",
|
||||
"(method 12 perf-stat)",
|
||||
|
||||
// sprite-distorter
|
||||
"sprite-draw-distorters", // uses clipping flag.
|
||||
|
||||
// sync-info
|
||||
"(method 15 sync-info)", // needs display stuff first
|
||||
"(method 15 sync-info-eased)", // needs display stuff first
|
||||
"(method 15 sync-info-paused)", // needs display stuff first
|
||||
|
||||
// sparticle
|
||||
"lookup-part-group-pointer-by-name", // address of element in array issue
|
||||
|
||||
// ripple - calls an asm function
|
||||
"ripple-execute",
|
||||
|
||||
"get-task-status",
|
||||
|
||||
"print-game-text-scaled", // float/int, looks like a bug in original code?
|
||||
|
||||
// aligner - return-from-thread, currently not supported
|
||||
"(method 9 align-control)",
|
||||
|
||||
// stat collection
|
||||
"start-perf-stat-collection",
|
||||
"end-perf-stat-collection",
|
||||
|
||||
// double definition
|
||||
"(method 3 game-save)",
|
||||
|
||||
// new stack boxed array
|
||||
"update-time-of-day",
|
||||
|
||||
// weird asm, was rewritten
|
||||
"close-sky-buffer",
|
||||
|
||||
// float to int
|
||||
"(method 10 bsp-header)",
|
||||
|
||||
// multiply defined.
|
||||
"(method 3 sprite-aux-list)",
|
||||
|
||||
// camera
|
||||
"slave-set-rotation!",
|
||||
"v-slrp2!",
|
||||
"v-slrp3!", // vector-dot involving the stack
|
||||
|
||||
// function returning float with a weird cast.
|
||||
"debug-menu-item-var-make-float",
|
||||
|
||||
// decompiler BUG
|
||||
"level-hint-task-process",
|
||||
"(method 26 level)",
|
||||
"(method 9 level)",
|
||||
"(method 10 level)", // asm
|
||||
|
||||
// cam-states
|
||||
"cam-los-collide", // vector-dot involving the stack
|
||||
|
||||
// cam-layout
|
||||
"cam-layout-save-cam-trans", // temporary, im sure this can be fixed
|
||||
|
||||
// anim-tester
|
||||
"(method 3 anim-tester)",
|
||||
"anim-tester-save-object-seqs", // anim-tester -- new basic on the stack
|
||||
|
||||
// default-menu
|
||||
"all-texture-tweak-adjust", // dynamic-field access placeholder case TODO
|
||||
"debug-menu-make-instance-menu", // also disabled
|
||||
|
||||
// joint
|
||||
"(method 9 art-mesh-geo)", // PLACEHOLDER array access
|
||||
"flatten-joint-control-to-spr",
|
||||
"make-joint-jump-tables",
|
||||
"(method 5 art-joint-anim)", // defined identically twice in the same file...probably a bug?
|
||||
|
||||
// process-drawable
|
||||
"fill-skeleton-cache", // cache dxwbin
|
||||
"execute-math-engine", // handle casts -- was fixed manually
|
||||
|
||||
// ambient
|
||||
"ambient-type-music", // IR_StoreConstOffset::do_codegen can't handle this (c {} sz {})
|
||||
|
||||
// main
|
||||
"display-loop",
|
||||
"on",
|
||||
|
||||
// generic-obs
|
||||
"command-get-process", // handle casts
|
||||
|
||||
// sage-finalboss
|
||||
"(method 7 sage-finalboss)" // inline-array stuff
|
||||
],
|
||||
|
||||
"skip_compile_states": {
|
||||
"cam-master-active": [
|
||||
"event"
|
||||
],
|
||||
|
||||
"skip_compile_functions": [
|
||||
/// GCOMMON
|
||||
// these functions are not implemented by the compiler in OpenGOAL, but are in GOAL.
|
||||
"abs", "ash", "min", "max", "lognor",
|
||||
// weird PS2 specific debug registers:
|
||||
"breakpoint-range-set!",
|
||||
// inline assembly
|
||||
"valid?",
|
||||
|
||||
/// GKERNEL
|
||||
// asm
|
||||
"(method 10 process)", "(method 14 dead-pool)",
|
||||
|
||||
/// GSTATE
|
||||
"enter-state", // stack pointer asm
|
||||
|
||||
/// MATH
|
||||
"rand-vu-init", "rand-vu",
|
||||
"rand-vu-nostep", // random hardware
|
||||
|
||||
// trig
|
||||
"sin-rad", // fpu acc
|
||||
"cos-rad", // fpu acc
|
||||
"atan-series-rad", // fpu acc
|
||||
|
||||
/// VECTOR-H
|
||||
"(method 3 vector)", // this function appears twice, which confuses the compiler.
|
||||
"vector4-dot", // fpu acc
|
||||
|
||||
"(method 3 profile-frame)", // double definition.
|
||||
|
||||
// dma-disasm
|
||||
"disasm-dma-list", // missing a single cast :(
|
||||
|
||||
// math camera
|
||||
"transform-point-vector!", "transform-point-qword!", "transform-point-vector-scale!",
|
||||
|
||||
// display-h
|
||||
"put-draw-env",
|
||||
|
||||
// geometry
|
||||
"calculate-basis-functions-vector!", // asm requiring manual rewrite
|
||||
"curve-evaluate!", // asm requiring manual rewrite
|
||||
"point-in-triangle-cross", // logior on floats manual fixup
|
||||
|
||||
// texture
|
||||
"(method 9 texture-page-dir)", // multiplication on pointers
|
||||
"adgif-shader<-texture-with-update!", // misrecognized bitfield stuff.
|
||||
|
||||
// asm
|
||||
"invalidate-cache-line",
|
||||
|
||||
// stats-h
|
||||
"(method 11 perf-stat)", "(method 12 perf-stat)",
|
||||
|
||||
// sprite-distorter
|
||||
"sprite-draw-distorters", // uses clipping flag.
|
||||
|
||||
// sync-info
|
||||
"(method 15 sync-info)", // needs display stuff first
|
||||
"(method 15 sync-info-eased)", // needs display stuff first
|
||||
"(method 15 sync-info-paused)", // needs display stuff first
|
||||
|
||||
// sparticle
|
||||
"lookup-part-group-pointer-by-name", // address of element in array issue
|
||||
|
||||
// ripple - calls an asm function
|
||||
"ripple-execute",
|
||||
|
||||
"get-task-status",
|
||||
|
||||
"print-game-text-scaled", // float/int, looks like a bug in original code?
|
||||
|
||||
// aligner - return-from-thread, currently not supported
|
||||
"(method 9 align-control)",
|
||||
|
||||
// stat collection
|
||||
"start-perf-stat-collection", "end-perf-stat-collection",
|
||||
|
||||
// double definition
|
||||
"(method 3 game-save)",
|
||||
|
||||
// new stack boxed array
|
||||
"update-time-of-day",
|
||||
|
||||
// weird asm, was rewritten
|
||||
"close-sky-buffer",
|
||||
|
||||
// float to int
|
||||
"(method 10 bsp-header)",
|
||||
|
||||
// multiply defined.
|
||||
"(method 3 sprite-aux-list)",
|
||||
|
||||
// camera
|
||||
"slave-set-rotation!", "v-slrp2!", "v-slrp3!", // vector-dot involving the stack
|
||||
|
||||
// function returning float with a weird cast.
|
||||
"debug-menu-item-var-make-float",
|
||||
|
||||
// decompiler BUG
|
||||
"level-hint-task-process",
|
||||
"(method 26 level)",
|
||||
"(method 9 level)",
|
||||
"(method 10 level)", // asm
|
||||
|
||||
// cam-states
|
||||
"cam-los-collide", // vector-dot involving the stack
|
||||
|
||||
// cam-layout
|
||||
"cam-layout-save-cam-trans", // temporary, im sure this can be fixed
|
||||
|
||||
// anim-tester
|
||||
"(method 3 anim-tester)",
|
||||
"anim-tester-save-object-seqs", // anim-tester -- new basic on the stack
|
||||
|
||||
// default-menu
|
||||
"all-texture-tweak-adjust", // dynamic-field access placeholder case TODO
|
||||
"debug-menu-make-instance-menu", // also disabled
|
||||
|
||||
// joint
|
||||
"(method 9 art-mesh-geo)", // PLACEHOLDER array access
|
||||
"flatten-joint-control-to-spr",
|
||||
"make-joint-jump-tables",
|
||||
"(method 5 art-joint-anim)", // defined identically twice in the same file...probably a bug?
|
||||
|
||||
// process-drawable
|
||||
"fill-skeleton-cache", // cache dxwbin
|
||||
"execute-math-engine", // handle casts -- was fixed manually
|
||||
|
||||
// ambient
|
||||
"ambient-type-music", // IR_StoreConstOffset::do_codegen can't handle this (c {} sz {})
|
||||
|
||||
// main
|
||||
"display-loop",
|
||||
"on",
|
||||
|
||||
// sage-finalboss
|
||||
"(method 7 sage-finalboss)" // inline-array stuff
|
||||
],
|
||||
|
||||
"skip_compile_states": {
|
||||
"cam-master-active": [
|
||||
"event"
|
||||
]
|
||||
}
|
||||
"manipy-idle": [
|
||||
"code" // handle casts
|
||||
]
|
||||
}
|
||||
}
|
||||
|
2
third-party/googletest
generated
vendored
2
third-party/googletest
generated
vendored
@ -1 +1 @@
|
||||
Subproject commit 955c7f837efad184ec63e771c42542d37545eaef
|
||||
Subproject commit 7153098229e88295f9655ff1d3b0e2fa9eada5f8
|
Loading…
x
Reference in New Issue
Block a user