decomp: board-h, board-util, gun-util, darkjak-h (#1817)

* decomp: `board-util`, `gun-util`, `darkjak-h`

* address changes and decompile `board-h`

* fix `board-util`

* remove `_type_` from `projectile` method

* fix `gun-h.gc`

* Update gun-h.gc
This commit is contained in:
Hat Kid
2022-09-02 00:25:42 +02:00
committed by GitHub
parent 937ae0cb97
commit 52bb1c4915
33 changed files with 2012 additions and 451 deletions
+98 -104
View File
@@ -5854,7 +5854,7 @@
(level-get-target-inside (_type_) level 20) ;; (art-group-get-by-name (_type_ string) art-group 20)
(alloc-levels-if-needed (_type_ symbol) none 21)
(load-commands-set! (_type_ pair) pair 22) ;; (update-vis-volumes (_type_) none 22)
(level-group-method-23 () none 23) ;; (update-vis-volumes-from-nav-mesh (_type_) none 23)
(art-group-get-by-name (_type_ string (pointer uint32)) art-group 23) ;; (update-vis-volumes-from-nav-mesh (_type_) none 23)
(load-command-get-index (_type_ symbol int) pair 24) ;; (print-volume-sizes (_type_) none 24)
(level-group-method-25 () none 25) ;; (level-status (_type_ symbol) symbol 25)
(level-group-method-26 () none 26)
@@ -10117,6 +10117,7 @@
(declare-type ripple-control basic)
(declare-type shadow-control basic)
(declare-type shadow-geo basic)
(deftype draw-control (basic)
((process process :offset-assert 4)
@@ -10144,7 +10145,7 @@
(death-timer-org uint8)
(death-vertex-skip uint16)
(death-effect uint32)
(shadow uint32)
(shadow shadow-geo)
(shadow-ctrl shadow-control :offset-assert 108)
(distance meters)
(origin vector :inline)
@@ -12280,25 +12281,25 @@
(deftype top-anim-joint-control (basic)
((process uint32 :offset-assert 4)
(interp-select uint64 2 :offset-assert 8)
(base-anim basic :offset-assert 24)
(base-anim-speed float :offset-assert 28)
(base-anim-blend float :offset-assert 32)
(interp float :offset-assert 36)
(frame-group basic :offset-assert 40)
(frame-group-push basic :offset-assert 44)
(frame-num float :offset-assert 48)
(frame-targ basic :offset-assert 52)
(frame-speed float :offset-assert 56)
(frame-blend float :offset-assert 60)
(frame-cur-blend float :offset-assert 64)
(frame-start float :offset-assert 68)
(frame-post-blend float :offset-assert 72)
(frame-post-end float :offset-assert 76)
(frame-push-time time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
((process uint32 :offset-assert 4)
(interp-select uint64 2 :offset-assert 8)
(base-anim basic :offset-assert 24)
(base-anim-speed float :offset-assert 28)
(base-anim-blend float :offset-assert 32)
(interp float :offset-assert 36)
(frame-group art-joint-anim :offset-assert 40)
(frame-group-push basic :offset-assert 44)
(frame-num float :offset-assert 48)
(frame-targ basic :offset-assert 52)
(frame-speed float :offset-assert 56)
(frame-blend float :offset-assert 60)
(frame-cur-blend float :offset-assert 64)
(frame-start float :offset-assert 68)
(frame-post-blend float :offset-assert 72)
(frame-post-end float :offset-assert 76)
(frame-push-time time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
)
:method-count-assert 13
:size-assert #x68
@@ -12331,7 +12332,7 @@
((status joint-control-status)
(allocated-length uint8)
(active-channels uint8)
(root-channel (inline-array joint-control) :offset 16)
(root-channel (inline-array joint-control-channel) :offset 16)
(blend-index uint8)
(active-frame-interp uint8)
(float-channels uint8)
@@ -13582,8 +13583,8 @@
:size-assert #xc8
:flag-assert #x14005000c8
(:methods
(process-drawable-method-14 () none 14) ;; (initialize-skeleton (_type_ skeleton-group pair) none 14)
(process-drawable-method-15 () none 15) ;; (initialize-skeleton-by-name (_type_ string object) _type_ 15)
(initialize-skeleton (_type_ skeleton-group pair) none 14)
(initialize-skeleton-by-name (_type_ string object) draw-control 15)
(process-drawable-method-16 () none 16) ;; (apply-alignment (_type_ align-opts transformq vector) collide-shape 16)
(process-drawable-method-17 () none 17) ;; (do-joint-math! (_type_) none 17)
(process-drawable-method-18 () none 18) ;; (cleanup-for-death (_type_) none 18)
@@ -14296,9 +14297,16 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defenum joint-mod-mode
:bitfield #f
:type uint32
:bitfield #t
:type uint32
(flex-blend 0) ;; 1
(look-at 1) ;; 2
(world-look-at 2) ;; 4
(rotate 3) ;; 8
(joint-set 4) ;; 16
(joint-set* 5) ;; 32
;; ?? ;; 64
(reset 7) ;; 128
)
;; +++joint-mod-h:track-mode
@@ -14360,7 +14368,7 @@
:flag-assert #x10000000b8
;; Failed to read fields.
(:methods
;; (new (symbol type joint-mod-handler-mode process-drawable int) _type_ 0)
(new (symbol type joint-mod-mode process-drawable int) _type_ 0)
(joint-mod-method-9 () none 9) ;; (set-mode! (_type_ joint-mod-handler-mode) _type_ 9)
(joint-mod-method-10 () none 10) ;; (set-target! (_type_ vector) none 10)
(joint-mod-method-11 () none 11) ;; (look-at-enemy! (_type_ vector symbol process) none 11)
@@ -16185,6 +16193,7 @@
;; missing ref test - there's a useless array defintion with a list of not-yet-defined types
;; and this doesn't work in goalc.
(declare-type shadow-geo basic)
(declare-type sidekick basic)
(declare-type racer-info basic)
(declare-type tube-info basic)
@@ -16196,7 +16205,7 @@
(deftype target (process-focusable)
((control control-info :score 1 :offset 128) ;; guessed by decompiler
(skel2 basic :offset-assert 204)
(shadow-backup basic :offset-assert 208)
(shadow-backup shadow-geo :offset-assert 208)
(target-flags uint32 :offset 188)
(game game-info :offset-assert 212) ;; guessed by decompiler
(neck joint-mod :offset-assert 216) ;; guessed by decompiler
@@ -16608,6 +16617,8 @@
)
)
(declare-type collide-query structure)
(deftype collide-cache (basic)
((num-tris int32 :offset-assert 4)
(num-prims int32 :offset-assert 8)
@@ -16626,13 +16637,13 @@
(:methods
(collide-cache-method-9 () none 9) ;; (debug-draw (_type_) none 9)
(fill-and-probe-using-line-sphere (_type_ vector vector float collide-spec process collide-tri-result pat-surface) float 10)
(collide-cache-method-11 () none 11) ;; (fill-and-probe-using-spheres (_type_ collide-using-spheres-params) symbol 11)
(collide-cache-method-12 () none 12) ;; (fill-and-probe-using-y-probe (_type_ vector float collide-kind process-drawable collide-tri-result pat-surface) float 12)
(fill-and-probe-using-spheres (_type_ collide-query) symbol 11) ;; (fill-and-probe-using-spheres (_type_ collide-using-spheres-params) symbol 11)
(collide-cache-method-12 (_type_ collide-query) none 12) ;; (fill-and-probe-using-y-probe (_type_ vector float collide-kind process-drawable collide-tri-result pat-surface) float 12)
(collide-cache-method-13 () none 13) ;; (fill-using-bounding-box (_type_ bounding-box collide-kind process-drawable pat-surface) none 13)
(collide-cache-method-14 () none 14) ;; (fill-using-line-sphere (_type_ vector vector float collide-kind process-drawable pat-surface) none 14)
(fill-using-spheres (_type_ collide-query) none 14) ;; (fill-using-line-sphere (_type_ vector vector float collide-kind process-drawable pat-surface) none 14)
(collide-cache-method-15 () none 15) ;; (fill-using-spheres (_type_ collide-using-spheres-params) none 15)
(collide-cache-method-16 () none 16) ;; (fill-using-y-probe (_type_ vector float collide-kind process-drawable pat-surface) none 16)
(collide-cache-method-17 () none 17) ;; (initialize (_type_) none 17)
(probe-using-spheres (_type_ collide-query) symbol 17) ;; (initialize (_type_) none 17)
(collide-cache-method-18 () none 18) ;; (probe-using-line-sphere (_type_ vector vector float collide-kind collide-tri-result pat-surface) float 18)
(collide-cache-method-19 () none 19) ;; (probe-using-spheres (_type_ collide-using-spheres-params) symbol 19)
(collide-cache-method-20 () none 20) ;; (probe-using-y-probe (_type_ vector float collide-kind collide-tri-result pat-surface) float 20)
@@ -16688,14 +16699,14 @@
(exit-planes plane 2 :offset-assert 256) ;; ?
(radius float :offset 268)
(inv-mat matrix :inline :offset 288)
(spheres uint32 :offset 112)
(spheres (inline-array sphere) :offset 112 :score 1)
(num-spheres uint32 :offset 116)
(solid-only basic :offset 120)
(best-dist float :offset 112 :score 1)
(solid-only symbol :offset 120)
(best-dist float :offset 112 :score -1)
(best-other-prim basic :offset 116)
(best-my-prim basic :offset 120)
(move-vec vector :inline :offset 224)
(best-u float :offset 112)
(best-u float :offset 112 :score -1)
(action-mask uint32 :offset-assert 352)
(local-box4w bounding-box4w :inline :offset-assert 368)
(search-box bounding-box4w :inline :offset-assert 400)
@@ -22853,7 +22864,7 @@
;; (define-extern sp-adjust-launch function) ;; (function sparticle-launchinfo sparticle-cpuinfo (inline-array sp-field-init-spec) none)
;; (define-extern sp-euler-convert function) ;; (function sparticle-launchinfo sparticle-cpuinfo none)
;; (define-extern sp-rotate-system function) ;; (function sparticle-launchinfo sparticle-cpuinfo transformq none)
;; (define-extern sp-launch-particles-var function) ;; (function sparticle-system sparticle-launcher vector sparticle-launch-state sparticle-launch-control float none)
(define-extern sp-launch-particles-var (function sparticle-system sparticle-launcher vector sparticle-launch-state sparticle-launch-control float none))
;; (define-extern *death-adgif* object) ;; adgif-shader
;; (define-extern sp-launch-particles-death function) ;; (function sparticle-system sparticle-launcher vector none)
;; (define-extern sp-clear-queue function) ;; (function none)
@@ -22884,7 +22895,7 @@
;; (define-extern birth-func-y->userdata function) ;; (function sparticle-system sparticle-cpuinfo matrix none)
;; (define-extern birth-func-ocean-height function) ;; (function sparticle-system sparticle-cpuinfo matrix none)
;; (define-extern birth-func-camera-orient function)
;; (define-extern *particle-quat* object) ;; quaternion
(define-extern *particle-quat* quaternion)
;; (define-extern birth-func-set-quat function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none)
;; (define-extern *particle-vel* object)
;; (define-extern birth-func-set-vel function)
@@ -22895,8 +22906,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (define-extern sp-particle-copy! function) ;; (function sparticle-cpuinfo sparticle-cpuinfo none)
;; (define-extern *sp-particle-system-2d* object) ;; sparticle-system
;; (define-extern *sp-particle-system-3d* object) ;; sparticle-system
(define-extern *sp-particle-system-2d* sparticle-system)
(define-extern *sp-particle-system-3d* sparticle-system)
;; (define-extern sp-get-block-size function) ;; (function sparticle-system int int)
;; (define-extern sp-get-approx-alloc-size function) ;; (function sparticle-system int int)
;; (define-extern sp-free-particle function) ;; (function sparticle-system int sparticle-cpuinfo sprite-vec-data-2d none)
@@ -25611,24 +25622,24 @@
(define-extern process-drawable-art-error (state string process-drawable))
;; (define-extern process-drawable-idle state) ;; (state process-drawable)
;; (define-extern skeleton-group->draw-control function)
;; (define-extern ja-done? function) ;; (function int symbol :behavior process-drawable)
(define-extern ja-done? (function int symbol :behavior process-drawable))
;; (define-extern ja-min? function) ;; (function int symbol :behavior process-drawable)
;; (define-extern ja-max? function) ;; (function int symbol :behavior process-drawable)
;; (define-extern ja-num-frames function) ;; (function int int :behavior process-drawable)
;; (define-extern ja-frame-num function) ;; (function int float :behavior process-drawable)
;; (define-extern ja-aframe-num function) ;; (function int float :behavior process-drawable)
;; (define-extern ja-aframe function) ;; (function float int float :behavior process-drawable)
(define-extern ja-aframe (function float int float :behavior process-drawable))
;; (define-extern ja-speed function) ;; (function int float :behavior process-drawable)
;; (define-extern ja-step function) ;; (function int float :behavior process-drawable)
;; (define-extern ja-channel-set! function) ;; (function int int :behavior process-drawable)
;; (define-extern ja-channel-push! function) ;; (function int time-frame int :behavior process-drawable)
(define-extern ja-channel-set! (function int int :behavior process-drawable))
(define-extern ja-channel-push! (function int time-frame int :behavior process-drawable))
;; (define-extern ja-channel-float! function)
(define-extern joint-control-reset! (function joint-control joint-control-channel none :behavior process-drawable))
;; (define-extern ja-group-size function) ;; (function int :behavior process-drawable)
;; (define-extern ja-eval function) ;; (function int :behavior process-drawable)
;; (define-extern ja-blend-eval function) ;; (function int :behavior process-drawable)
;; (define-extern ja-post function) ;; (function none :behavior process-drawable)
;; (define-extern sleep-code function)
(define-extern ja-post (function none :behavior process-drawable))
(define-extern sleep-code (function symbol))
;; (define-extern transform-and-sleep function)
;; (define-extern transform-and-sleep-code function)
;; (define-extern transform-post function) ;; (function int :behavior process-drawable)
@@ -25919,28 +25930,28 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(deftype gun (process-drawable)
((control basic :offset 128)
(shadow-backup basic :offset 208)
((control control-info :offset 128)
(shadow-backup shadow-geo :offset 208)
(read-scale basic :offset-assert 212)
(gun-type pickup-type :offset-assert 216)
(barrel basic :offset-assert 220)
(mag basic 4 :offset-assert 224) ;; guessed type
(barrel joint-mod :offset-assert 220)
(mag joint-mod 4 :offset-assert 224) ;; guessed type
(mag-scale float 4 :offset-assert 240)
)
:method-count-assert 24
:size-assert #x100
:flag-assert #x1800800100
(:methods
(gun-method-20 () none 20)
(gun-method-21 () none 21)
(gun-method-22 () none 22)
(gun-method-23 () none 23)
(idle () _type_ :state 20)
(use (symbol) _type_ :state 21)
(hidden () _type_ :state 22)
(die () _type_ :state 23)
)
)
(deftype gun-info (basic)
((process uint32 :offset-assert 4)
(gun uint32 :offset-assert 8)
((process (pointer target) :offset-assert 4)
(gun (pointer gun) :offset-assert 8)
(gun-pos transformq :inline :offset-assert 16)
(gun-trans vector :inline :offset 16)
(gun-quat quaternion :inline :offset 32)
@@ -26026,7 +26037,7 @@
:size-assert #x2c0
:flag-assert #xa000002c0
(:methods
(gun-info-method-9 () none 9)
(gun-info-method-9 (_type_) none 9)
)
)
@@ -26041,17 +26052,17 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(deftype board (process-drawable)
((control basic :score 1 :offset 128)
(shadow-backup basic :offset 208)
(main basic :offset 212)
((control control-info :offset 128)
(shadow-backup shadow-geo :offset 208)
(main joint-mod :offset 212)
)
:method-count-assert 23
:size-assert #xd8
:flag-assert #x17006000d8
(:methods
(board-method-20 () none 20)
(board-method-21 () none 21)
(board-method-22 () none 22)
(idle (symbol) _type_ :state 20)
(use () _type_ :state 21)
(hidden () _type_ :state 22)
)
)
@@ -26062,7 +26073,7 @@
(board-trans vector :inline :offset-assert 16)
(board-quat vector :inline :offset-assert 32)
(board-scale vector :inline :offset-assert 48)
(main basic :offset-assert 64)
(main joint-mod :offset-assert 64)
(upper-body basic :offset-assert 68)
(sound-bank-knob float :offset-assert 72)
(sound-air-knob float :offset-assert 76)
@@ -26218,7 +26229,6 @@
;; darkjak-h ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#|
(deftype darkjak-info (basic)
((process uint32 :offset-assert 4)
(attack-id uint32 :offset-assert 8)
@@ -26229,20 +26239,18 @@
(want-stage uint32 :offset-assert 44)
(clock-pos float :offset-assert 48)
(clock-vel float :offset-assert 52)
(clock-on basic :offset-assert 56)
(hud UNKNOWN 1 :offset-assert 64)
(tone uint32 :offset-assert 72)
(bomb uint32 :offset-assert 76)
(clock-on symbol :offset-assert 56)
(hud handle 1 :offset 64)
(tone uint32 :offset 72)
(bomb uint32 :offset 76)
)
:method-count-assert 10
:size-assert #x50
:flag-assert #xa00000050
(:methods
(darkjak-info-method-9 () none 9)
(darkjak-info-method-9 (_type_ int) none :behavior target 9)
)
)
|#
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; target-util ;;
@@ -26360,7 +26368,7 @@
)
|#
;; (define-extern *target-shadow-control* shadow-control) ;; shadow-control
(define-extern *target-shadow-control* shadow-control)
;; (define-extern *TARGET-bank* target-bank) ;; target-bank
;; (define-extern target-start-attack function) ;; (function none :behavior target)
;; (define-extern target-danger-set! function) ;; (function symbol symbol float :behavior target)
@@ -26774,7 +26782,7 @@
;; (define-extern target-hide state)
;; (define-extern target-launch state) ;; (state float symbol vector int target)
;; (define-extern target-play-anim state) ;; (state string handle target)
;; (define-extern target-clone-anim state) ;; (state handle target)
(define-extern target-clone-anim (state handle target))
;; (define-extern *float-mods* object)
;; (define-extern target-float state)
@@ -26885,10 +26893,10 @@
;; (define-extern target-gun-combo-start function)
;; (define-extern target-gun-joint-pre0 function)
;; (define-extern target-gun-joint-pre function)
;; (define-extern target-gun-compute-pos function)
(define-extern target-gun-compute-pos (function matrix :behavior target))
;; (define-extern target-gun-joint-points function)
;; (define-extern target-gun-fire function)
;; (define-extern target-gun-check function)
(define-extern target-gun-check (function none :behavior target))
;; (define-extern camera-rotate-to-vector function)
;; (define-extern target-gun-real-post function)
;; (define-extern target-gun-post function)
@@ -26897,7 +26905,6 @@
;; gun-util ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#|
(deftype gun-eject (projectile-bounce)
()
:method-count-assert 42
@@ -26906,9 +26913,7 @@
(:methods
)
)
|#
#|
(deftype gun-mag-yellow (projectile-bounce)
()
:method-count-assert 42
@@ -26917,9 +26922,7 @@
(:methods
)
)
|#
#|
(deftype gun-mag-red (projectile-bounce)
()
:method-count-assert 42
@@ -26928,9 +26931,7 @@
(:methods
)
)
|#
#|
(deftype gun-mag-blue (projectile-bounce)
()
:method-count-assert 42
@@ -26939,9 +26940,7 @@
(:methods
)
)
|#
#|
(deftype gun-mag-dark (projectile-bounce)
()
:method-count-assert 42
@@ -26950,9 +26949,7 @@
(:methods
)
)
|#
#|
(deftype beam-info (structure)
((y-scale float :offset-assert 0)
)
@@ -26960,14 +26957,13 @@
:size-assert #x4
:flag-assert #x900000004
)
|#
;; (define-extern *beam-info* object)
;; (define-extern birth-func-setup-beam function)
;; (define-extern birth-func-laser-pointer function)
;; (define-extern draw-beam function)
;; (define-extern gun-post function)
;; (define-extern gun-init function)
(define-extern *beam-info* beam-info)
(define-extern birth-func-setup-beam (function int sparticle-cpuinfo sparticle-launchinfo none))
(define-extern birth-func-laser-pointer (function int sparticle-cpuinfo sparticle-launchinfo none))
(define-extern draw-beam (function sparticle-launcher vector vector symbol symbol none)) ;; probably wrong args
(define-extern gun-post (function none :behavior gun))
(define-extern gun-init (function none :behavior gun))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; gun-blue-shot ;;
@@ -26995,11 +26991,10 @@
;; gun-yellow-shot ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#|
(deftype gun-yellow-shot (projectile)
((hit-actor? basic :offset-assert 468)
(tail-pos vector :inline :offset-assert 476)
(hit-pos vector :inline :offset-assert 492)
((hit-actor? symbol :offset-assert 472)
(tail-pos vector :inline :offset-assert 480)
(hit-pos vector :inline :offset-assert 496)
)
:method-count-assert 40
:size-assert #x200
@@ -27007,9 +27002,8 @@
(:methods
)
)
|#
;; (define-extern target-gun-fire-yellow function)
(define-extern target-gun-fire-yellow (function none :behavior target))
;; (define-extern someone-fire-yellow function)
;; (define-extern gun-yellow-shot-move function)
@@ -27094,8 +27088,8 @@
;; board-util ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (define-extern board-post function)
;; (define-extern board-init function)
(define-extern board-post (function none :behavior board))
(define-extern board-init (function none :behavior board))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; target-board ;;
@@ -27408,7 +27402,7 @@
(define-extern sphere-cull (function vector symbol))
(define-extern guard-band-cull (function vector symbol))
(define-extern sphere-in-view-frustum? (function sphere symbol))
;; (define-extern line-in-view-frustum? function) ;; (function vector vector symbol)
(define-extern line-in-view-frustum? (function vector vector symbol))
(define-extern vis-cull (function int symbol))
;; (define-extern vis-cull-debug function)
(define-extern error-sphere (function drawable-error string none))
+3
View File
@@ -108,5 +108,8 @@
["L773", "(pointer uint64)", 1],
["L774", "(pointer uint64)", 1],
["L775", "(pointer uint64)", 1]
],
"collide-cache": [
["L171", "vector"]
]
}
+45 -2
View File
@@ -182,11 +182,12 @@
],
"(method 22 rigid-body)": [[16, "vector"]],
"want-to-board?": [
[16, "vector"],
[560, "matrix"],
[16, "collide-query"],
[560, ["inline-array", "sphere", 3]],
[608, "vector"]
],
"(method 10 cam-setting-data)": [[16, "event-message-block"]],
"(method 18 tracking-spline)": [
[16, "tracking-spline-sampler"],
[32, "tracking-spline-sampler"]
@@ -301,6 +302,48 @@
[32, "vector4w"]
],
"cam-debug-draw-tris": [[16, "vector4w"]],
"(code die gun)": [
[16, "matrix"],
[112, "vector"],
[128, "vector"],
[144, "vector"]
],
"draw-beam": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"gun-post": [
[16, "vector"],
[32, "vector"],
[48, "matrix"],
[144, "vector"],
[160, "vector"],
[176, "vector"]
],
"(method 9 gun-info)": [
[16, "collide-query"],
[560, "vector"],
[576, "vector"],
[592, "vector"],
[608, "vector"],
[624, "vector"],
[640, "vector"],
[656, "vector"]
],
"target-gun-fire-yellow": [
[16, "matrix"],
[112, "event-message-block"]
],
"(method 14 collide-cache)": [
[16, "bounding-box"]
],
// placeholder
"placeholder-do-not-add-below": []
}
+143
View File
@@ -1239,6 +1239,149 @@
],
"cam-collision-record-save": [[[8, 56], "v1", "cam-collision-record"]],
"(trans cam-stick)": [[157, "a0", "vector"]],
"(method 9 darkjak-info)": [
[71, "v0", "sound-rpc-set-param"]
],
"(trans idle board)": [
[4, "a0", "target"]
],
"(trans hidden board)": [
[4, "a0", "target"]
],
"(trans use board)": [
[8, "a0", "target"],
[22, "a1", "target"]
],
"board-post": [
[[3, 79], "v1", "target"],
[38, "a0", "target"],
[44, "a0", "target"],
[50, "a0", "target"],
[56, "a0", "target"],
[62, "a0", "target"],
[94, "v1", "target"]
],
"(code use board)": [
[17, "v1", "art-joint-anim"]
],
"(code idle board)": [
[19, "v1", "art-joint-anim"],
[37, "v1", "art-joint-anim"]
],
"gun-init": [
[85, "a1", "target"]
],
"gun-post": [
[7, "a0", "target"],
[12, "gp", "target"],
[16, "gp", "target"],
[22, "gp", "target"],
[31, "gp", "target"],
[42, "gp", "target"],
[46, "gp", "target"],
[57, "gp", "target"],
[[64, 77], "gp", "target"],
[82, "v1", "target"],
[88, "v1", "target"],
[94, "v1", "target"],
[100, "v1", "target"],
[106, "v1", "target"],
[110, "gp", "target"],
[121, "gp", "target"],
[126, "gp", "target"],
[132, "gp", "target"],
[148, "gp", "target"],
[169, "a0", "target"]
],
"(trans hidden gun)": [
[4, "a0", "target"]
],
"(code idle gun)": [
[16, "v1", "art-joint-anim"]
],
"(trans idle gun)": [
[2, "v1", "target"],
[9, "a0", "target"],
[20, "v1", "target"]
],
"(code die gun)": [
[13, "v1", "target"],
[74, "v1", "target"]
],
"(post use gun)": [
[6, "gp", "target"],
[12, "gp", "target"],
[21, "gp", "target"],
[29, "gp", "target"],
[34, "gp", "target"],
[36, "gp", "target"],
[40, "gp", "target"],
[57, "gp", "target"],
[63, "gp", "target"],
[65, "gp", "target"],
[67, "gp", "target"],
[71, "gp", "target"],
[75, "gp", "target"],
[77, "gp", "target"],
[83, "gp", "target"],
[91, "gp", "target"],
[93, "gp", "target"],
[96, "a0", "vector"],
[99, "gp", "target"],
[101, "gp", "target"],
[103, "gp", "target"],
[109, "gp", "target"],
[114, "gp", "target"],
[116, "gp", "target"],
[120, "gp", "target"],
[122, "gp", "target"],
[127, "gp", "target"],
[129, "gp", "target"],
[132, "a0", "vector"],
[136, "s6", "target"]
],
"(code use gun)": [
[7, "a0", "target"],
[27, "v1", "art-joint-anim"],
[87, "v1", "art-joint-anim"],
[152, "v1", "art-joint-anim"],
[207, "v1", "art-joint-anim"],
[262, "v1", "art-joint-anim"],
[312, "v1", "art-joint-anim"],
[377, "v1", "art-joint-anim"],
[427, "v1", "art-joint-anim"],
[487, "v1", "art-joint-anim"],
[547, "v1", "art-joint-anim"],
[612, "v1", "art-joint-anim"],
[667, "v1", "art-joint-anim"],
[726, "s4", "target"],
[741, "s1", "pair"],
[753, "s4", "target"],
[774, "s4", "target"],
[795, "s1", "pair"],
[801, "s4", "target"],
[804, "s4", "target"]
],
"(trans use gun)": [
[8, "a1", "target"],
[19, "a0", "target"],
[23, "v1", "target"],
[28, "v1", "target"],
[44, "v1", "target"]
],
"(method 31 gun-eject)": [
[24, "a0", "gun"],
[36, "v1", "gun"],
[44, "v1", "collide-shape"]
],
"(method 9 gun-info)": [
[115, "s0", "collide-shape-prim"],
[133, "s0", "collide-shape-prim"]
],
"(method 3 collide-query)": [
[116, "f0", "float"],
[137, "f0", "float"]
],
// placeholder
"placeholder-do-not-add-below": []
}
-4
View File
@@ -1568,10 +1568,6 @@ goos::Object decompile_pair(const DecompilerLabel& label,
fmt::format("Invalid alignment for pair {}\n", to_print.offset % 16));
} else {
auto& word = words.at(to_print.target_segment).at(to_print.offset / 4);
if (word.kind() != LinkedWord::EMPTY_PTR) {
throw std::runtime_error(
fmt::format("Based on alignment, expected to get empty list for pair, but didn't"));
}
// improper list
lg::error(
"There is an improper list. This is probably okay, but should be checked manually "
+34 -34
View File
@@ -53,25 +53,25 @@
)
(deftype top-anim-joint-control (basic)
((process uint32 :offset-assert 4)
(interp-select uint64 2 :offset-assert 8)
(base-anim basic :offset-assert 24)
(base-anim-speed float :offset-assert 28)
(base-anim-blend float :offset-assert 32)
(interp float :offset-assert 36)
(frame-group basic :offset-assert 40)
(frame-group-push basic :offset-assert 44)
(frame-num float :offset-assert 48)
(frame-targ basic :offset-assert 52)
(frame-speed float :offset-assert 56)
(frame-blend float :offset-assert 60)
(frame-cur-blend float :offset-assert 64)
(frame-start float :offset-assert 68)
(frame-post-blend float :offset-assert 72)
(frame-post-end float :offset-assert 76)
(frame-push-time time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
((process uint32 :offset-assert 4)
(interp-select uint64 2 :offset-assert 8)
(base-anim basic :offset-assert 24)
(base-anim-speed float :offset-assert 28)
(base-anim-blend float :offset-assert 32)
(interp float :offset-assert 36)
(frame-group art-joint-anim :offset-assert 40)
(frame-group-push basic :offset-assert 44)
(frame-num float :offset-assert 48)
(frame-targ basic :offset-assert 52)
(frame-speed float :offset-assert 56)
(frame-blend float :offset-assert 60)
(frame-cur-blend float :offset-assert 64)
(frame-start float :offset-assert 68)
(frame-post-blend float :offset-assert 72)
(frame-post-end float :offset-assert 76)
(frame-push-time time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
)
:method-count-assert 13
:size-assert #x68
@@ -85,21 +85,21 @@
)
(deftype joint-control (basic)
((status joint-control-status :offset-assert 4)
(allocated-length uint8 :offset-assert 6)
(active-channels uint8 :offset-assert 7)
(root-channel (inline-array joint-control) :offset 16)
(blend-index uint8 :offset-assert 20)
(active-frame-interp uint8 :offset-assert 21)
(float-channels uint8 :offset-assert 22)
(generate-frame-function function :offset-assert 24)
(prebind-function function :offset-assert 28)
(postbind-function function :offset-assert 32)
(effect basic :offset-assert 36)
(interp-select int64 2 :offset-assert 40)
(top-anim top-anim-joint-control :offset-assert 56)
(override basic :offset-assert 60)
(channel joint-control-channel :inline :dynamic :offset-assert 64)
((status joint-control-status :offset-assert 4)
(allocated-length uint8 :offset-assert 6)
(active-channels uint8 :offset-assert 7)
(root-channel (inline-array joint-control-channel) :offset 16)
(blend-index uint8 :offset-assert 20)
(active-frame-interp uint8 :offset-assert 21)
(float-channels uint8 :offset-assert 22)
(generate-frame-function function :offset-assert 24)
(prebind-function function :offset-assert 28)
(postbind-function function :offset-assert 32)
(effect basic :offset-assert 36)
(interp-select int64 2 :offset-assert 40)
(top-anim top-anim-joint-control :offset-assert 56)
(override basic :offset-assert 60)
(channel joint-control-channel :inline :dynamic :offset-assert 64)
)
:method-count-assert 12
:size-assert #x40
+11 -3
View File
@@ -6,9 +6,16 @@
;; dgos: ENGINE, GAME
(defenum joint-mod-mode
:bitfield #f
:type uint32
:bitfield #t
:type uint32
(flex-blend 0) ;; 1
(look-at 1) ;; 2
(world-look-at 2) ;; 4
(rotate 3) ;; 8
(joint-set 4) ;; 16
(joint-set* 5) ;; 32
;; ?? ;; 64
(reset 7) ;; 128
)
;; +++track-mode
@@ -74,6 +81,7 @@
:size-assert #xb8
:flag-assert #x10000000b8
(:methods
(new (symbol type joint-mod-mode process-drawable int) _type_ 0)
(joint-mod-method-9 () none 9)
(joint-mod-method-10 () none 10)
(joint-mod-method-11 () none 11)
+2 -2
View File
@@ -158,7 +158,7 @@
(set! (-> v0-0 allocated-length) (the-as uint arg0))
(set! (-> v0-0 active-channels) (the-as uint 0))
(set! (-> v0-0 float-channels) (the-as uint 0))
(set! (-> v0-0 root-channel) (the-as (inline-array joint-control) (-> v0-0 channel)))
(set! (-> v0-0 root-channel) (the-as (inline-array joint-control-channel) (-> v0-0 channel)))
(set! (-> v0-0 generate-frame-function) create-interpolated-joint-animation-frame)
(set! (-> v0-0 prebind-function) #f)
(set! (-> v0-0 postbind-function) #f)
@@ -667,7 +667,7 @@
(set! (-> arg0 float-channels) (the-as uint 0))
(set! (-> arg0 root-channel)
(the-as
(inline-array joint-control)
(inline-array joint-control-channel)
(-> arg0
channel
(/ (the-as int (- (the-as uint (-> arg1 root-channel)) (the-as uint (the-as uint (-> arg1 channel))))) 64)
@@ -5,6 +5,8 @@
;; name in dgo: collide-cache-h
;; dgos: ENGINE, GAME
(declare-type collide-query structure)
;; DECOMP BEGINS
(deftype collide-puss-sphere (structure)
@@ -90,13 +92,13 @@
(:methods
(collide-cache-method-9 () none 9)
(fill-and-probe-using-line-sphere (_type_ vector vector float collide-spec process collide-tri-result pat-surface) float 10)
(collide-cache-method-11 () none 11)
(collide-cache-method-12 () none 12)
(fill-and-probe-using-spheres (_type_ collide-query) symbol 11)
(collide-cache-method-12 (_type_ collide-query) none 12)
(collide-cache-method-13 () none 13)
(collide-cache-method-14 () none 14)
(fill-using-spheres (_type_ collide-query) none 14)
(collide-cache-method-15 () none 15)
(collide-cache-method-16 () none 16)
(collide-cache-method-17 () none 17)
(probe-using-spheres (_type_ collide-query) symbol 17)
(collide-cache-method-18 () none 18)
(collide-cache-method-19 () none 19)
(collide-cache-method-20 () none 20)
+2 -2
View File
@@ -25,9 +25,9 @@
(exit-planes plane 2 :offset-assert 256)
(radius float :offset 268)
(inv-mat matrix :inline :offset 288)
(spheres uint32 :offset 112)
(spheres (inline-array sphere) :offset 112)
(num-spheres uint32 :offset 116)
(solid-only basic :offset 120)
(solid-only symbol :offset 120)
(best-dist float :offset 112)
(best-other-prim basic :offset 116)
(best-my-prim basic :offset 120)
+2 -1
View File
@@ -9,6 +9,7 @@
(declare-type merc-ctrl art-element)
(declare-type ripple-control basic)
(declare-type shadow-control basic)
(declare-type shadow-geo basic)
(declare-type merc-eye-anim-block structure)
(defenum draw-control-status
@@ -364,7 +365,7 @@
(death-timer-org uint8 :offset-assert 97)
(death-vertex-skip uint16 :offset-assert 98)
(death-effect uint32 :offset-assert 100)
(shadow uint32 :offset-assert 104)
(shadow shadow-geo :offset-assert 104)
(shadow-ctrl shadow-control :offset-assert 108)
(distance meters :offset-assert 112)
(origin vector :inline :offset-assert 128)
-4
View File
@@ -390,7 +390,3 @@
)
(the-as manipy ((method-of-type process-drawable relocate) obj arg0))
)
+2 -2
View File
@@ -105,8 +105,8 @@
:size-assert #xc8
:flag-assert #x14005000c8
(:methods
(process-drawable-method-14 () none 14)
(process-drawable-method-15 () none 15)
(initialize-skeleton (_type_ skeleton-group pair) none 14)
(initialize-skeleton-by-name (_type_ string object) draw-control 15)
(process-drawable-method-16 () none 16)
(process-drawable-method-17 () none 17)
(process-drawable-method-18 () none 18)
+1 -1
View File
@@ -361,7 +361,7 @@
(level-get-target-inside (_type_) level 20)
(alloc-levels-if-needed (_type_ symbol) none 21)
(load-commands-set! (_type_ pair) pair 22)
(level-group-method-23 () none 23)
(art-group-get-by-name (_type_ string (pointer uint32)) art-group 23)
(load-command-get-index (_type_ symbol int) pair 24)
(level-group-method-25 () none 25)
(level-group-method-26 () none 26)
@@ -7,3 +7,291 @@
;; DECOMP BEGINS
(deftype board (process-drawable)
((control control-info :offset 128)
(shadow-backup shadow-geo :offset 208)
(main joint-mod :offset 212)
)
:heap-base #x60
:method-count-assert 23
:size-assert #xd8
:flag-assert #x17006000d8
(:methods
(idle (symbol) _type_ :state 20)
(use () _type_ :state 21)
(hidden () _type_ :state 22)
)
)
(deftype board-info (basic)
((board uint32 :offset-assert 4)
(camera-interp float :offset-assert 8)
(process uint32 :offset-assert 12)
(board-trans vector :inline :offset-assert 16)
(board-quat vector :inline :offset-assert 32)
(board-scale vector :inline :offset-assert 48)
(main joint-mod :offset-assert 64)
(upper-body basic :offset-assert 68)
(sound-bank-knob float :offset-assert 72)
(sound-air-knob float :offset-assert 76)
(wind-sound-id uint32 :offset-assert 80)
(wind-sound-pitch float :offset-assert 84)
(wind-sound-volume float :offset-assert 88)
(engine-sound-id uint32 :offset-assert 92)
(engine-sound-pitch float :offset-assert 96)
(engine-sound-volume float :offset-assert 100)
(bank-sound-id uint32 :offset-assert 104)
(bank-sound-pitch float :offset-assert 108)
(bank-sound-volume float :offset-assert 112)
(ride-sound-id uint32 :offset-assert 116)
(spin-sound-id uint32 :offset-assert 120)
(spin-sound-volume float :offset-assert 124)
(spin-sound-pitch float :offset-assert 128)
(up-vector vector 2 :inline :offset-assert 144)
(slow-transv vector :inline :offset-assert 176)
(board-time time-frame :offset-assert 192)
(board-get-on-time time-frame :offset-assert 200)
(in-air-time time-frame :offset-assert 208)
(stick-lock basic :offset 240)
(stick-off basic :offset-assert 244)
(stance-info ground-tween-info :inline :offset-assert 248)
(mods-backup basic :offset-assert 284)
(attack-id uint32 :offset-assert 288)
(latch? symbol :offset-assert 292)
(unstuck-time time-frame :offset 344)
(stuck-count int32 :offset-assert 352)
(thrust-scale float :offset-assert 356)
(flip-time time-frame :offset-assert 360)
(transv-max meters :offset-assert 368)
(turn-anim-tilt? symbol :offset-assert 372)
(turn-anim-mag float :offset-assert 376)
(turn-anim-targ float :offset-assert 380)
(turn-anim-frame float :offset-assert 384)
(turn-anim-vel float :offset-assert 388)
(turn-anim-duck float :offset-assert 392)
(turn-anim-duck-vel float :offset-assert 396)
(tilt-anim-frame vector :inline :offset-assert 400)
(tilt-anim-target vector :inline :offset-assert 416)
(smack-surface-time time-frame :offset-assert 432)
(smack-speed meters :offset-assert 440)
(smack-normal vector :inline :offset-assert 448)
(glance-time time-frame :offset-assert 464)
(glance-speed meters :offset-assert 472)
(glance-in-transv vector :inline :offset-assert 480)
(glance-out-transv vector :inline :offset-assert 496)
(glance-normal vector :inline :offset-assert 512)
(on-flat-time time-frame :offset-assert 528)
(jump-land-time time-frame :offset-assert 536)
(slip-factor float :offset-assert 544)
(ground-on-dir vector :inline :offset-assert 560)
(ride-time time-frame :offset-assert 576)
(ride-start-time time-frame :offset-assert 584)
(ride-button-time time-frame :offset-assert 592)
(ride-lean-targ float :offset-assert 600)
(ride-lean float :offset-assert 604)
(ride-leanv float :offset-assert 608)
(ride-lean-mag float :offset-assert 612)
(ride-tilt-targ float :offset-assert 616)
(ride-tilt float :offset-assert 620)
(ride-tiltv float :offset-assert 624)
(ride-tilt-mag float :offset-assert 628)
(ride-lock symbol :offset-assert 632)
(ride-lock-on symbol :offset-assert 636)
(ride-speed meters :offset-assert 640)
(ride-mode uint32 :offset-assert 644)
(ride-rot degrees :offset-assert 648)
(ride-rot-old degrees :offset-assert 652)
(ride-rot-abs degrees 2 :offset-assert 656)
(ride-rtv-abs degrees :offset-assert 664)
(ride-touch-segment vector 2 :inline :offset-assert 672)
(ride-dir vector :inline :offset-assert 704)
(ride-vertex-length int16 :offset-assert 720)
(ride-vertex-length-old int16 :offset-assert 722)
(ride-vertex-base int16 :offset-assert 724)
(ride-vertex-base2 int16 :offset-assert 726)
(ride-vertex-index float :offset-assert 728)
(ride-vertex-index2 float :offset-assert 732)
(ride-vertex-index-old float :offset-assert 736)
(ride-vertex vector 3 :inline :offset-assert 752)
(ride-segment vector :inline :offset-assert 800)
(ride-dir-lean vector :inline :offset-assert 816)
(ride-pad-vector vector 1 :inline :offset-assert 832)
(ride-vertex-old vector 3 :inline :offset-assert 848)
(ride-segment-old vector :inline :offset-assert 896)
(ride-vertex-trail vector 128 :inline :offset-assert 912)
(halfpipe-side-time time-frame :offset-assert 2960)
(halfpipe-jump-time time-frame :offset-assert 2968)
(halfpipe-lip-time time-frame :offset-assert 2976)
(halfpipe-time time-frame :offset-assert 2984)
(halfpipe-gspot-time time-frame :offset-assert 2992)
(halfpipe-lip-event symbol :offset-assert 3000)
(spin-check-time time-frame :offset-assert 3008)
(spin-time time-frame :offset-assert 3016)
(spin-start-time time-frame :offset-assert 3024)
(spin-start-dir vector :inline :offset-assert 3040)
(spin-control float :offset-assert 3056)
(spin-ground-start-time time-frame :offset-assert 3064)
(spin-ground-time time-frame :offset-assert 3072)
(spin-ground-press-time time-frame :offset-assert 3080)
(flip-control float :offset-assert 3088)
(flip-count int32 :offset-assert 3092)
(trickx-count int32 :offset 3144)
(trotyv-max degrees :offset-assert 3148)
(trotyv degrees :offset-assert 3152)
(troty degrees :offset-assert 3156)
(troty-cum degrees :offset-assert 3160)
(upper-body-rotyv-max degrees :offset 3168)
(upper-body-rotyv degrees :offset-assert 3172)
(upper-body-roty degrees :offset-assert 3176)
(cushion-base meters :offset-assert 3180)
(cushion-offset meters :offset-assert 3184)
(shock-offset meters :offset-assert 3188)
(shock-offsetv meters :offset-assert 3192)
(shock-rotx meters :offset-assert 3196)
(trick-count int32 :offset 3204)
(pad uint8 :offset 3399)
)
:method-count-assert 11
:size-assert #xd48
:flag-assert #xb00000d48
(:methods
(board-info-method-9 () none 9)
(board-info-method-10 () none 10)
)
)
(deftype target-board-bank (basic)
((jump-height-min meters :offset-assert 4)
(jump-height-max meters :offset-assert 8)
(duck-jump-height-min meters :offset-assert 12)
(duck-jump-height-max meters :offset-assert 16)
(turn-frames float :offset-assert 20)
(wall-kick-window seconds :offset-assert 24)
(cushion meters :offset-assert 32)
(trickx-jump-height-min meters :offset-assert 36)
(trickx-jump-height-max meters :offset-assert 40)
(tricky-jump-height-min meters :offset-assert 44)
(tricky-jump-height-max meters :offset-assert 48)
)
:method-count-assert 9
:size-assert #x34
:flag-assert #x900000034
)
(define *TARGET_BOARD-bank* (new 'static 'target-board-bank
:jump-height-min (meters 1.01)
:jump-height-max (meters 3.5)
:duck-jump-height-min (meters 2.5)
:duck-jump-height-max (meters 5)
:turn-frames 10.0
:wall-kick-window (seconds 0.05)
:cushion (meters 1)
:trickx-jump-height-min (meters 0.9)
:trickx-jump-height-max (meters 1.2)
:tricky-jump-height-min (meters 0.9)
:tricky-jump-height-max (meters 1.2)
)
)
(defbehavior want-to-board? target ()
"Can we get on the jetboard?"
(and (logtest? (-> self game features) (game-feature board))
(or (and (cpad-pressed? (-> self control unknown-cpad-info00 number) r2)
(or (!= *cheat-mode* 'debug)
(zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l2))
)
)
(not *pause-lock*)
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame01)) (seconds 0.1))
(>= (the-as int (-> self control unknown-dword00)) (the-as int (-> self control unknown-dword01)))
)
(-> self board latch?)
)
(zero? (logand (focus-status fs1 fs6 fs7 fs8 fs12 fs13 fs18 fs20 fs21 fs22) (-> self focus-status)))
(or (zero? (-> self board)) (>= (- (-> self clock frame-counter) (-> self board board-time)) (seconds 0.5)))
(zero? (logand (state-flags sf17) (-> self state-flags)))
(< (-> self board board-time) (-> self control unknown-time-frame00))
(zero? (logand (surface-flag no-board) (-> self control unknown-surface00 flags)))
(or (zero? (logand (-> self control unknown-surface00 flags) (surface-flag duck)))
(begin self (can-exit-duck?))
)
(not (and (logtest? (-> self water flags) (water-flags under-water))
(zero? (logand (-> self water flags) (water-flags swim-ground)))
)
)
(not *artist-fix-visible*)
(let ((gp-0 (new 'stack-no-clear 'collide-query)))
(let ((s5-0 (new 'stack-no-clear 'inline-array 'sphere 3)))
(dotimes (s4-0 3)
((method-of-type sphere new) (the-as symbol (-> s5-0 s4-0)) sphere)
)
(let ((v1-51 (new 'stack-no-clear 'vector)))
(set! (-> v1-51 quad) (-> self control trans quad))
(if (logtest? (-> self focus-status) (focus-status fs10))
(set! (-> v1-51 y) (-> self water height))
)
(set! (-> s5-0 0 quad) (-> v1-51 quad))
(set! (-> s5-0 0 y) (+ 8192.0 (-> s5-0 0 y)))
(set! (-> s5-0 0 w) 2867.2)
(set! (-> s5-0 1 quad) (-> v1-51 quad))
(set! (-> s5-0 1 y) (+ 12288.0 (-> s5-0 1 y)))
(set! (-> s5-0 1 w) 2867.2)
(set! (-> s5-0 2 quad) (-> v1-51 quad))
)
(set! (-> s5-0 2 y) (+ 16384.0 (-> s5-0 2 y)))
(set! (-> s5-0 2 w) 2867.2)
(let ((v1-55 gp-0))
(set! (-> v1-55 spheres) s5-0)
(set! (-> v1-55 num-spheres) (the-as uint 3))
(set! (-> v1-55 collide-with)
(the-as collide-spec (logand -16561 (-> self control root-prim prim-core collide-with)))
)
(set! (-> v1-55 ignore-process0) #f)
(set! (-> v1-55 ignore-process1) #f)
(set! (-> v1-55 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
(set! (-> v1-55 solid-only) #t)
(set! (-> v1-55 action-mask) (the-as uint 1))
)
)
(and (if (fill-and-probe-using-spheres *collide-cache* gp-0)
#f
#t
)
(begin
(set! (-> self board latch?) #t)
(>= (- (-> self clock frame-counter) (-> self gun gun-time)) (seconds 0.4))
)
)
)
)
)
(let ((a0-6 (new 'static 'skeleton-group
:name "skel-board"
:extra #f
:info #f
:art-group-name "board"
:bounds (new 'static 'vector :w 14336.0)
:version #x7
:shadow 2
:sort 1
:origin-joint-index 3
)
)
)
(set! (-> a0-6 jgeo) 0)
(set! (-> a0-6 janim) 5)
(set! (-> a0-6 mgeo 0) 1)
(set! (-> a0-6 lod-dist 0) 4095996000.0)
(add-to-loading-level a0-6)
)
(define *board-shadow-control*
(new 'static 'shadow-control :settings (new 'static 'shadow-settings
:center (new 'static 'vector :w (the-as float #xa))
:shadow-dir (new 'static 'vector :y -1.0 :w 614400.0)
:bot-plane (new 'static 'plane :y 1.0 :w 81920.0)
:top-plane (new 'static 'plane :y 1.0 :w 2048.0)
)
)
)
@@ -5,5 +5,261 @@
;; name in dgo: board-util
;; dgos: ENGINE, GAME
(define-extern ja-post (function none :behavior process-drawable))
(define-extern ja-channel-set! (function int int :behavior process-drawable))
(define-extern ja-channel-push! (function int time-frame int :behavior process-drawable))
(define-extern ja-done? (function int symbol :behavior process-drawable))
(define-extern sleep-code (function symbol))
(define-extern *target-shadow-control* shadow-control)
;; DECOMP BEGINS
(defmethod relocate board ((obj board) (arg0 int))
(if (nonzero? (-> obj main))
(&+! (-> obj main) arg0)
)
(the-as board ((method-of-type process-drawable relocate) obj arg0))
)
(defbehavior board-post board ()
(let* ((a0-0 (-> self parent))
(v1-0 (if a0-0
(the-as target (-> (the-as target (-> a0-0 0)) self))
)
)
)
(set! (-> self root trans quad) (-> v1-0 board board-trans quad))
(let ((a0-4 (-> v1-0 board board-quat quad)))
(set! (-> self root quat vec quad) a0-4)
)
(set! (-> self root scale quad) (-> v1-0 board board-scale quad))
(set! (-> self draw light-index) (-> v1-0 draw light-index))
(let ((a0-10 (-> v1-0 draw color-mult quad)))
(set! (-> self draw color-mult quad) a0-10)
)
(let ((a0-12 (-> v1-0 draw color-emissive quad)))
(set! (-> self draw color-emissive quad) a0-12)
)
(set! (-> self draw force-fade) (-> v1-0 draw force-fade))
(set! (-> self draw death-vertex-skip) (-> (the-as target (-> self parent 0)) draw death-vertex-skip))
(set! (-> self draw death-effect) (-> (the-as target (-> self parent 0)) draw death-effect))
(set! (-> self draw death-timer) (-> (the-as target (-> self parent 0)) draw death-timer))
(set! (-> self draw death-timer-org) (-> (the-as target (-> self parent 0)) draw death-timer-org))
(set! (-> self draw death-draw-overlap) (-> (the-as target (-> self parent 0)) draw death-draw-overlap))
(let ((a0-37 (-> v1-0 draw shadow-ctrl settings shadow-dir quad)))
(set! (-> self draw shadow-ctrl settings shadow-dir quad) a0-37)
)
(if (or (logtest? (-> v1-0 draw status) (draw-control-status no-draw no-draw-temp no-draw-bounds no-draw-bounds2))
(zero? (-> v1-0 skel active-channels))
)
(logior! (-> self draw status) (draw-control-status no-draw))
(logclear! (-> self draw status) (draw-control-status no-draw))
)
(if (logtest? (-> v1-0 draw status) (draw-control-status force-fade))
(logior! (-> self draw status) (draw-control-status force-fade))
(logclear! (-> self draw status) (draw-control-status force-fade))
)
)
(ja-post)
0
(none)
)
(defstate hidden (board)
:virtual #t
:trans (behavior ()
(let ((v1-0 (-> self parent)))
(if (zero? (logand (-> (the-as target (if v1-0
(the-as target (-> v1-0 0 self))
)
)
focus-status
)
(focus-status fs8)
)
)
(go-virtual idle #f)
)
)
(none)
)
:code (behavior ()
(ja-channel-set! 0)
(ja-post)
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
0
(none)
)
)
(defstate idle (board)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('open)
(go-virtual use)
)
)
)
:trans (behavior ()
(let ((v1-0 (-> self parent)))
(if (logtest? (-> (the-as target (if v1-0
(the-as target (-> v1-0 0 self))
)
)
focus-status
)
(focus-status fs8)
)
(go-virtual hidden)
)
)
(none)
)
:code (behavior ((arg0 symbol))
(ja-channel-push! 1 (seconds 0.1))
(cond
(arg0
(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 4))
(the-as (function joint-control-channel float float float float) num-func-identity)
)
(set! (-> gp-1 frame-num)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))
)
)
)
(else
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 4)))
(set! (-> a0-3 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))
)
(set! (-> a0-3 param 1) 1.0)
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group!
a0-3
(the-as art-joint-anim (-> self draw art-group data 4))
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-4 (-> self skel root-channel 0)))
(set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group frames num-frames) -1)))
(set! (-> a0-4 param 1) 1.0)
(joint-control-channel-group-eval!
a0-4
(the-as art-joint-anim #f)
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
)
)
)
(set! (-> self draw shadow) #f)
(sleep-code)
(none)
)
:post board-post
)
(defstate use (board)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('close)
(go-virtual idle #f)
)
)
)
:trans (behavior ()
(let ((v1-0 (-> self parent)))
(if v1-0
(-> v1-0 0 self)
)
)
(let ((v1-2 (-> self parent)))
(cond
((logtest? (-> (the-as target (if v1-2
(the-as target (-> v1-2 0 self))
)
)
focus-status
)
(focus-status fs8)
)
(go-virtual hidden)
)
((let ((v1-9 #x40000)
(a0-3 (-> self parent))
)
(zero? (logand (the-as focus-status v1-9) (-> (the-as target (if a0-3
(the-as target (-> a0-3 0 self))
)
)
focus-status
)
)
)
)
(go-virtual idle #f)
)
)
)
(none)
)
:code (behavior ()
(set! (-> self draw shadow) (-> self shadow-backup))
(ja-channel-push! 1 (seconds 0.1))
(let ((a0-2 (-> self skel root-channel 0)))
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> a0-2 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) frames num-frames) -1))
)
(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 3))
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group frames num-frames) -1)))
(set! (-> a0-3 param 1) 1.0)
(joint-control-channel-group-eval!
a0-3
(the-as art-joint-anim #f)
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
)
(sleep-code)
(none)
)
:post board-post
)
(defbehavior board-init board ()
(set! (-> self root) (new 'process 'trsqv))
(initialize-skeleton
self
(the-as skeleton-group (art-group-get-by-name *level* "skel-board" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(let ((v1-5 (-> *target-shadow-control* settings shadow-dir quad)))
(set! (-> *board-shadow-control* settings shadow-dir quad) v1-5)
)
(set! (-> self draw shadow-ctrl) *board-shadow-control*)
(set! (-> self shadow-backup) (-> self draw shadow))
(set! (-> self main) (new 'process 'joint-mod (joint-mod-mode flex-blend) self 3))
(ja-channel-set! 0)
(go-virtual idle #t)
(none)
)
+22
View File
@@ -7,3 +7,25 @@
;; DECOMP BEGINS
(deftype darkjak-info (basic)
((process uint32 :offset-assert 4)
(attack-id uint32 :offset-assert 8)
(start-time time-frame :offset-assert 16)
(attack-time time-frame :offset-assert 24)
(attack-count uint64 :offset-assert 32)
(stage uint32 :offset-assert 40)
(want-stage uint32 :offset-assert 44)
(clock-pos float :offset-assert 48)
(clock-vel float :offset-assert 52)
(clock-on symbol :offset-assert 56)
(hud handle 1 :offset 64)
(tone uint32 :offset 72)
(bomb uint32 :offset 76)
)
:method-count-assert 10
:size-assert #x50
:flag-assert #xa00000050
(:methods
(darkjak-info-method-9 (_type_ int) none :behavior target 9)
)
)
+95 -99
View File
@@ -11,116 +11,116 @@
;; DECOMP BEGINS
(deftype gun (process-drawable)
((control basic :offset 128)
(shadow-backup basic :offset 208)
(read-scale basic :offset-assert 212)
(gun-type pickup-type :offset-assert 216)
(barrel basic :offset-assert 220)
(mag basic 4 :offset-assert 224)
(mag-scale float 4 :offset-assert 240)
((control control-info :offset 128)
(shadow-backup shadow-geo :offset 208)
(read-scale basic :offset-assert 212)
(gun-type pickup-type :offset-assert 216)
(barrel joint-mod :offset-assert 220)
(mag joint-mod 4 :offset-assert 224)
(mag-scale float 4 :offset-assert 240)
)
:heap-base #x80
:method-count-assert 24
:size-assert #x100
:flag-assert #x1800800100
(:methods
(gun-method-20 () none 20)
(gun-method-21 () none 21)
(gun-method-22 () none 22)
(gun-method-23 () none 23)
(idle () _type_ :state 20)
(use (symbol) _type_ :state 21)
(hidden () _type_ :state 22)
(die () _type_ :state 23)
)
)
;; definition of type gun-info
(deftype gun-info (basic)
((process uint32 :offset-assert 4)
(gun uint32 :offset-assert 8)
(gun-pos transformq :inline :offset-assert 16)
(gun-trans vector :inline :offset 16)
(gun-quat quaternion :inline :offset 32)
(gun-scale vector :inline :offset 48)
(gun-type pickup-type :offset-assert 64)
(using-gun-type pickup-type :offset-assert 68)
(active? symbol :offset-assert 72)
(latch? symbol :offset-assert 76)
(put-away? symbol :offset-assert 80)
(surpress-time time-frame :offset-assert 88)
(fire-time time-frame :offset-assert 96)
(gun-time time-frame :offset-assert 104)
(gun-get-on-time time-frame :offset-assert 112)
(active-time time-frame :offset-assert 120)
(fire-delay uint32 :offset-assert 128)
(gun-control uint32 :offset-assert 132)
(gun-target uint32 :offset-assert 136)
(gun-daxter float :offset-assert 140)
(gun-roty-rel degrees :offset-assert 144)
(gun-roty degrees :offset-assert 148)
(gun-roty-targ degrees :offset-assert 152)
(hips basic :offset-assert 156)
(upper-body basic :offset-assert 160)
(chest basic :offset-assert 164)
(fire-dir-rot degrees :offset-assert 168)
(fire-dir vector 2 :inline :offset-assert 176)
(fire-point vector :inline :offset-assert 208)
(fire-dir-backup vector :inline :offset-assert 224)
(fire-dir-out vector :inline :offset-assert 240)
(fire-pending int32 :offset-assert 256)
(fire-pending-time time-frame :offset-assert 264)
(fire-start-time time-frame :offset-assert 272)
(fire-charge float :offset-assert 280)
(fire-spin degrees :offset-assert 284)
(fire-spinv degrees :offset-assert 288)
(fire-chamber int32 :offset-assert 292)
(fire-range meters :offset-assert 296)
(laser-active? symbol :offset-assert 300)
(laser-point vector :inline :offset-assert 304)
(laser-dir vector 2 :inline :offset-assert 320)
(laser-hit-point vector :inline :offset-assert 352)
(track? uint16 :offset-assert 368)
(track-tilt degrees :offset-assert 372)
(track-turn degrees :offset-assert 376)
(track-find-range meters :offset-assert 380)
(track-turnv-range meters :offset-assert 384)
(track-tilt-range meters :offset-assert 388)
(track-turn-range meters :offset-assert 392)
(track-tilt-max degrees :offset-assert 396)
(track-turn-max degrees :offset-assert 400)
(track-angle-mult float :offset-assert 404)
(track-beam-size float :offset-assert 408)
(track-auto-fire symbol :offset-assert 412)
(track-require uint32 :offset-assert 416)
(track-target-hold-time time-frame :offset-assert 424)
(track-start-time time-frame :offset-assert 432)
(track-press-start-time time-frame :offset-assert 440)
(track-target focus 2 :inline :offset-assert 448)
(track-trans vector :inline :offset-assert 480)
(track-dir vector :inline :offset-assert 496)
(turn-fast-hold-time time-frame :offset-assert 512)
(blue-whine-sound-id uint32 :offset-assert 520)
(blue-whine-volume float :offset-assert 524)
(top-anim-twist vector :inline :offset-assert 528)
(top-anim-twist-targ vector :inline :offset-assert 544)
(top-anim-look-at vector :inline :offset-assert 560)
(top-anim-twist-reset uint64 :offset-assert 576)
(top-anim-gun-height meters :offset-assert 584)
(top-anim-blue-cycle float :offset-assert 588)
(top-anim-low-high float :offset-assert 592)
(top-anim-extra-twistv degrees :offset-assert 596)
(top-anim-tilt-up degrees :offset-assert 600)
(attack-combo combo-tracker :inline :offset-assert 608)
(combo-window-start time-frame :offset-assert 656)
(combo-window-state uint32 :offset-assert 664)
(combo-fire-delay uint32 :offset-assert 668)
(charge-ammo float :offset-assert 672)
(charge-start-time time-frame :offset-assert 680)
(charge-inc-time time-frame :offset-assert 688)
(charge-active? uint64 :offset-assert 696)
((process (pointer target) :offset-assert 4)
(gun (pointer gun) :offset-assert 8)
(gun-pos transformq :inline :offset-assert 16)
(gun-trans vector :inline :offset 16)
(gun-quat quaternion :inline :offset 32)
(gun-scale vector :inline :offset 48)
(gun-type pickup-type :offset-assert 64)
(using-gun-type pickup-type :offset-assert 68)
(active? symbol :offset-assert 72)
(latch? symbol :offset-assert 76)
(put-away? symbol :offset-assert 80)
(surpress-time time-frame :offset-assert 88)
(fire-time time-frame :offset-assert 96)
(gun-time time-frame :offset-assert 104)
(gun-get-on-time time-frame :offset-assert 112)
(active-time time-frame :offset-assert 120)
(fire-delay uint32 :offset-assert 128)
(gun-control uint32 :offset-assert 132)
(gun-target uint32 :offset-assert 136)
(gun-daxter float :offset-assert 140)
(gun-roty-rel degrees :offset-assert 144)
(gun-roty degrees :offset-assert 148)
(gun-roty-targ degrees :offset-assert 152)
(hips basic :offset-assert 156)
(upper-body basic :offset-assert 160)
(chest basic :offset-assert 164)
(fire-dir-rot degrees :offset-assert 168)
(fire-dir vector 2 :inline :offset-assert 176)
(fire-point vector :inline :offset-assert 208)
(fire-dir-backup vector :inline :offset-assert 224)
(fire-dir-out vector :inline :offset-assert 240)
(fire-pending int32 :offset-assert 256)
(fire-pending-time time-frame :offset-assert 264)
(fire-start-time time-frame :offset-assert 272)
(fire-charge float :offset-assert 280)
(fire-spin degrees :offset-assert 284)
(fire-spinv degrees :offset-assert 288)
(fire-chamber int32 :offset-assert 292)
(fire-range meters :offset-assert 296)
(laser-active? symbol :offset-assert 300)
(laser-point vector :inline :offset-assert 304)
(laser-dir vector 2 :inline :offset-assert 320)
(laser-hit-point vector :inline :offset-assert 352)
(track? uint16 :offset-assert 368)
(track-tilt degrees :offset-assert 372)
(track-turn degrees :offset-assert 376)
(track-find-range meters :offset-assert 380)
(track-turnv-range meters :offset-assert 384)
(track-tilt-range meters :offset-assert 388)
(track-turn-range meters :offset-assert 392)
(track-tilt-max degrees :offset-assert 396)
(track-turn-max degrees :offset-assert 400)
(track-angle-mult float :offset-assert 404)
(track-beam-size float :offset-assert 408)
(track-auto-fire symbol :offset-assert 412)
(track-require uint32 :offset-assert 416)
(track-target-hold-time time-frame :offset-assert 424)
(track-start-time time-frame :offset-assert 432)
(track-press-start-time time-frame :offset-assert 440)
(track-target focus 2 :inline :offset-assert 448)
(track-trans vector :inline :offset-assert 480)
(track-dir vector :inline :offset-assert 496)
(turn-fast-hold-time time-frame :offset-assert 512)
(blue-whine-sound-id uint32 :offset-assert 520)
(blue-whine-volume float :offset-assert 524)
(top-anim-twist vector :inline :offset-assert 528)
(top-anim-twist-targ vector :inline :offset-assert 544)
(top-anim-look-at vector :inline :offset-assert 560)
(top-anim-twist-reset uint64 :offset-assert 576)
(top-anim-gun-height meters :offset-assert 584)
(top-anim-blue-cycle float :offset-assert 588)
(top-anim-low-high float :offset-assert 592)
(top-anim-extra-twistv degrees :offset-assert 596)
(top-anim-tilt-up degrees :offset-assert 600)
(attack-combo combo-tracker :inline :offset-assert 608)
(combo-window-start time-frame :offset-assert 656)
(combo-window-state uint32 :offset-assert 664)
(combo-fire-delay uint32 :offset-assert 668)
(charge-ammo float :offset-assert 672)
(charge-start-time time-frame :offset-assert 680)
(charge-inc-time time-frame :offset-assert 688)
(charge-active? uint64 :offset-assert 696)
)
:method-count-assert 10
:size-assert #x2c0
:flag-assert #xa000002c0
(:methods
(gun-info-method-9 () none 9)
(gun-info-method-9 (_type_) none 9)
)
)
@@ -313,7 +313,3 @@
(set! (-> a0-10 lod-dist 0) 4095996000.0)
(add-to-loading-level a0-10)
)
+1 -1
View File
@@ -21,7 +21,7 @@
(deftype target (process-focusable)
((control control-info :offset 128)
(skel2 basic :offset-assert 204)
(shadow-backup basic :offset-assert 208)
(shadow-backup shadow-geo :offset-assert 208)
(target-flags uint32 :offset 188)
(game game-info :offset-assert 212)
(neck joint-mod :offset-assert 216)
+34 -34
View File
@@ -82,25 +82,25 @@
;; definition of type top-anim-joint-control
(deftype top-anim-joint-control (basic)
((process uint32 :offset-assert 4)
(interp-select uint64 2 :offset-assert 8)
(base-anim basic :offset-assert 24)
(base-anim-speed float :offset-assert 28)
(base-anim-blend float :offset-assert 32)
(interp float :offset-assert 36)
(frame-group basic :offset-assert 40)
(frame-group-push basic :offset-assert 44)
(frame-num float :offset-assert 48)
(frame-targ basic :offset-assert 52)
(frame-speed float :offset-assert 56)
(frame-blend float :offset-assert 60)
(frame-cur-blend float :offset-assert 64)
(frame-start float :offset-assert 68)
(frame-post-blend float :offset-assert 72)
(frame-post-end float :offset-assert 76)
(frame-push-time time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
((process uint32 :offset-assert 4)
(interp-select uint64 2 :offset-assert 8)
(base-anim basic :offset-assert 24)
(base-anim-speed float :offset-assert 28)
(base-anim-blend float :offset-assert 32)
(interp float :offset-assert 36)
(frame-group art-joint-anim :offset-assert 40)
(frame-group-push basic :offset-assert 44)
(frame-num float :offset-assert 48)
(frame-targ basic :offset-assert 52)
(frame-speed float :offset-assert 56)
(frame-blend float :offset-assert 60)
(frame-cur-blend float :offset-assert 64)
(frame-start float :offset-assert 68)
(frame-post-blend float :offset-assert 72)
(frame-post-end float :offset-assert 76)
(frame-push-time time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
)
:method-count-assert 13
:size-assert #x68
@@ -145,21 +145,21 @@
;; definition of type joint-control
(deftype joint-control (basic)
((status joint-control-status :offset-assert 4)
(allocated-length uint8 :offset-assert 6)
(active-channels uint8 :offset-assert 7)
(root-channel (inline-array joint-control) :offset 16)
(blend-index uint8 :offset-assert 20)
(active-frame-interp uint8 :offset-assert 21)
(float-channels uint8 :offset-assert 22)
(generate-frame-function function :offset-assert 24)
(prebind-function function :offset-assert 28)
(postbind-function function :offset-assert 32)
(effect basic :offset-assert 36)
(interp-select int64 2 :offset-assert 40)
(top-anim top-anim-joint-control :offset-assert 56)
(override basic :offset-assert 60)
(channel joint-control-channel :inline :dynamic :offset-assert 64)
((status joint-control-status :offset-assert 4)
(allocated-length uint8 :offset-assert 6)
(active-channels uint8 :offset-assert 7)
(root-channel (inline-array joint-control-channel) :offset 16)
(blend-index uint8 :offset-assert 20)
(active-frame-interp uint8 :offset-assert 21)
(float-channels uint8 :offset-assert 22)
(generate-frame-function function :offset-assert 24)
(prebind-function function :offset-assert 28)
(postbind-function function :offset-assert 32)
(effect basic :offset-assert 36)
(interp-select int64 2 :offset-assert 40)
(top-anim top-anim-joint-control :offset-assert 56)
(override basic :offset-assert 60)
(channel joint-control-channel :inline :dynamic :offset-assert 64)
)
:method-count-assert 12
:size-assert #x40
+1
View File
@@ -45,6 +45,7 @@
:size-assert #xb8
:flag-assert #x10000000b8
(:methods
(new (symbol type joint-mod-mode process-drawable int) _type_ 0)
(joint-mod-method-9 () none 9)
(joint-mod-method-10 () none 10)
(joint-mod-method-11 () none 11)
+6 -2
View File
@@ -167,7 +167,7 @@
(set! (-> v0-0 allocated-length) (the-as uint arg0))
(set! (-> v0-0 active-channels) (the-as uint 0))
(set! (-> v0-0 float-channels) (the-as uint 0))
(set! (-> v0-0 root-channel) (the-as (inline-array joint-control) (-> v0-0 channel)))
(set! (-> v0-0 root-channel) (-> v0-0 channel))
(set! (-> v0-0 generate-frame-function) create-interpolated-joint-animation-frame)
(set! (-> v0-0 prebind-function) #f)
(set! (-> v0-0 postbind-function) #f)
@@ -709,7 +709,7 @@
(set! (-> arg0 float-channels) (the-as uint 0))
(set! (-> arg0 root-channel)
(the-as
(inline-array joint-control)
(inline-array joint-control-channel)
(-> arg0
channel
(/ (the-as int (- (the-as uint (-> arg1 root-channel)) (the-as uint (the-as uint (-> arg1 channel))))) 64)
@@ -2160,3 +2160,7 @@
;; failed to figure out what this is:
(kmemclose)
+8 -4
View File
@@ -154,13 +154,13 @@
(:methods
(collide-cache-method-9 () none 9)
(fill-and-probe-using-line-sphere (_type_ vector vector float collide-spec process collide-tri-result pat-surface) float 10)
(collide-cache-method-11 () none 11)
(collide-cache-method-12 () none 12)
(fill-and-probe-using-spheres (_type_ collide-query) symbol 11)
(collide-cache-method-12 (_type_ collide-query) none 12)
(collide-cache-method-13 () none 13)
(collide-cache-method-14 () none 14)
(fill-using-spheres (_type_ collide-query) none 14)
(collide-cache-method-15 () none 15)
(collide-cache-method-16 () none 16)
(collide-cache-method-17 () none 17)
(probe-using-spheres (_type_ collide-query) symbol 17)
(collide-cache-method-18 () none 18)
(collide-cache-method-19 () none 19)
(collide-cache-method-20 () none 20)
@@ -251,3 +251,7 @@
;; failed to figure out what this is:
(kmemclose)
+41 -45
View File
@@ -3,43 +3,43 @@
;; definition of type collide-query
(deftype collide-query (structure)
((best-other-tri collide-tri-result :inline :offset-assert 0)
(best-my-tri collide-tri-result :inline :offset 0)
(ignore-processes process 2 :offset-assert 88)
(ignore-process0 process :offset 88)
(ignore-process1 process :offset 92)
(ignore-pat pat-surface :offset-assert 96)
(collide-with collide-spec :offset-assert 100)
(overlay-params uint32 3 :offset 112)
(bbox bounding-box :inline :offset-assert 128)
(bbox4w bounding-box4w :inline :offset-assert 160)
(bsphere sphere :inline :offset-assert 192)
(start-pos vector :inline :offset-assert 208)
(move-dist vector :inline :offset-assert 224)
(rlength vector :inline :offset-assert 240)
(exit-planes plane 2 :offset-assert 256)
(radius float :offset 268)
(inv-mat matrix :inline :offset 288)
(spheres uint32 :offset 112)
(num-spheres uint32 :offset 116)
(solid-only basic :offset 120)
(best-dist float :offset 112)
(best-other-prim basic :offset 116)
(best-my-prim basic :offset 120)
(move-vec vector :inline :offset 224)
(best-u float :offset 112)
(action-mask uint32 :offset-assert 352)
(local-box4w bounding-box4w :inline :offset-assert 368)
(search-box bounding-box4w :inline :offset-assert 400)
(search-vector vector4w :inline :offset-assert 432)
(instance-mat matrix :inline :offset-assert 448)
(instance-ptr basic :offset-assert 512)
(x-addr uint32 :offset-assert 516)
(x-step uint32 :offset-assert 520)
(y-addr uint32 :offset-assert 524)
(y-step uint32 :offset-assert 528)
(z-addr uint32 :offset-assert 532)
(z-step uint32 :offset-assert 536)
((best-other-tri collide-tri-result :inline :offset-assert 0)
(best-my-tri collide-tri-result :inline :offset 0)
(ignore-processes process 2 :offset-assert 88)
(ignore-process0 process :offset 88)
(ignore-process1 process :offset 92)
(ignore-pat pat-surface :offset-assert 96)
(collide-with collide-spec :offset-assert 100)
(overlay-params uint32 3 :offset 112)
(bbox bounding-box :inline :offset-assert 128)
(bbox4w bounding-box4w :inline :offset-assert 160)
(bsphere sphere :inline :offset-assert 192)
(start-pos vector :inline :offset-assert 208)
(move-dist vector :inline :offset-assert 224)
(rlength vector :inline :offset-assert 240)
(exit-planes plane 2 :offset-assert 256)
(radius float :offset 268)
(inv-mat matrix :inline :offset 288)
(spheres (inline-array sphere) :offset 112)
(num-spheres uint32 :offset 116)
(solid-only symbol :offset 120)
(best-dist float :offset 112)
(best-other-prim basic :offset 116)
(best-my-prim basic :offset 120)
(move-vec vector :inline :offset 224)
(best-u float :offset 112)
(action-mask uint32 :offset-assert 352)
(local-box4w bounding-box4w :inline :offset-assert 368)
(search-box bounding-box4w :inline :offset-assert 400)
(search-vector vector4w :inline :offset-assert 432)
(instance-mat matrix :inline :offset-assert 448)
(instance-ptr basic :offset-assert 512)
(x-addr uint32 :offset-assert 516)
(x-step uint32 :offset-assert 520)
(y-addr uint32 :offset-assert 524)
(y-step uint32 :offset-assert 528)
(z-addr uint32 :offset-assert 532)
(z-step uint32 :offset-assert 536)
)
:method-count-assert 9
:size-assert #x21c
@@ -60,7 +60,7 @@
(format #t "~1Tignore-process1: ~A~%" (-> obj ignore-process1))
(format #t "~1Tignore-pat: ~D~%" (-> obj ignore-pat))
(format #t "~1Tcollide-with: ~D~%" (-> obj collide-with))
(format #t "~1Toverlay-params[3] @ #x~X~%" (&-> obj best-dist))
(format #t "~1Toverlay-params[3] @ #x~X~%" (&-> obj spheres))
(format #t "~1Tbbox: #<bounding-box @ #x~X>~%" (-> obj bbox))
(format #t "~1Tbbox4w: #<bounding-box4w @ #x~X>~%" (-> obj bbox4w))
(format #t "~1Tbsphere: #<sphere @ #x~X>~%" (-> obj bsphere))
@@ -70,14 +70,14 @@
(format #t "~1Texit-planes[2] @ #x~X~%" (-> obj exit-planes))
(format #t "~1Tradius: ~f~%" (-> obj radius))
(format #t "~1Tinv-mat: #<matrix @ #x~X>~%" (-> obj inv-mat))
(format #t "~1Tspheres: #x~X~%" (-> obj best-dist))
(format #t "~1Tspheres: #x~X~%" (-> obj spheres))
(format #t "~1Tnum-spheres: ~D~%" (-> obj num-spheres))
(format #t "~1Tsolid-only: ~A~%" (-> obj solid-only))
(format #t "~1Tbest-dist: ~f~%" (-> obj best-dist))
(format #t "~1Tbest-dist: ~f~%" (the-as float (-> obj spheres)))
(format #t "~1Tbest-other-prim: ~A~%" (-> obj num-spheres))
(format #t "~1Tbest-my-prim: ~A~%" (-> obj solid-only))
(format #t "~1Tmove-vec: #<vector @ #x~X>~%" (-> obj move-dist))
(format #t "~1Tbest-u: ~f~%" (-> obj best-dist))
(format #t "~1Tbest-u: ~f~%" (the-as float (-> obj spheres)))
(format #t "~1Taction-mask: ~D~%" (-> obj action-mask))
(format #t "~1Tlocal-box4w: #<bounding-box4w @ #x~X>~%" (-> obj local-box4w))
(format #t "~1Tsearch-box: #<bounding-box4w @ #x~X>~%" (-> obj search-box))
@@ -99,7 +99,3 @@
;; failed to figure out what this is:
0
@@ -185,7 +185,3 @@
;; failed to figure out what this is:
0
+1 -1
View File
@@ -588,7 +588,7 @@
(death-timer-org uint8 :offset-assert 97)
(death-vertex-skip uint16 :offset-assert 98)
(death-effect uint32 :offset-assert 100)
(shadow uint32 :offset-assert 104)
(shadow shadow-geo :offset-assert 104)
(shadow-ctrl shadow-control :offset-assert 108)
(distance meters :offset-assert 112)
(origin vector :inline :offset-assert 128)
+2 -2
View File
@@ -26,8 +26,8 @@
:size-assert #xc8
:flag-assert #x14005000c8
(:methods
(process-drawable-method-14 () none 14)
(process-drawable-method-15 () none 15)
(initialize-skeleton (_type_ skeleton-group pair) none 14)
(initialize-skeleton-by-name (_type_ string object) draw-control 15)
(process-drawable-method-16 () none 16)
(process-drawable-method-17 () none 17)
(process-drawable-method-18 () none 18)
+1 -1
View File
@@ -698,7 +698,7 @@
(level-get-target-inside (_type_) level 20)
(alloc-levels-if-needed (_type_ symbol) none 21)
(load-commands-set! (_type_ pair) pair 22)
(level-group-method-23 () none 23)
(art-group-get-by-name (_type_ string (pointer uint32)) art-group 23)
(load-command-get-index (_type_ symbol int) pair 24)
(level-group-method-25 () none 25)
(level-group-method-26 () none 26)
+492
View File
@@ -0,0 +1,492 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type board
(deftype board (process-drawable)
((control control-info :offset 128)
(shadow-backup shadow-geo :offset 208)
(main joint-mod :offset 212)
)
:heap-base #x60
:method-count-assert 23
:size-assert #xd8
:flag-assert #x17006000d8
(:methods
(idle (symbol) _type_ :state 20)
(use () _type_ :state 21)
(hidden () _type_ :state 22)
)
)
;; definition for method 3 of type board
(defmethod inspect board ((obj board))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 obj)
)
(format #t "~2Tcontrol: ~A~%" (-> obj root))
(format #t "~2Tstate-time: ~D~%" (-> obj state-time))
(format #t "~2Tshadow-backup: ~A~%" (-> obj shadow-backup))
(format #t "~2Tmain: ~A~%" (-> obj main))
(label cfg-4)
obj
)
;; definition of type board-info
(deftype board-info (basic)
((board uint32 :offset-assert 4)
(camera-interp float :offset-assert 8)
(process uint32 :offset-assert 12)
(board-trans vector :inline :offset-assert 16)
(board-quat vector :inline :offset-assert 32)
(board-scale vector :inline :offset-assert 48)
(main joint-mod :offset-assert 64)
(upper-body basic :offset-assert 68)
(sound-bank-knob float :offset-assert 72)
(sound-air-knob float :offset-assert 76)
(wind-sound-id uint32 :offset-assert 80)
(wind-sound-pitch float :offset-assert 84)
(wind-sound-volume float :offset-assert 88)
(engine-sound-id uint32 :offset-assert 92)
(engine-sound-pitch float :offset-assert 96)
(engine-sound-volume float :offset-assert 100)
(bank-sound-id uint32 :offset-assert 104)
(bank-sound-pitch float :offset-assert 108)
(bank-sound-volume float :offset-assert 112)
(ride-sound-id uint32 :offset-assert 116)
(spin-sound-id uint32 :offset-assert 120)
(spin-sound-volume float :offset-assert 124)
(spin-sound-pitch float :offset-assert 128)
(up-vector vector 2 :inline :offset-assert 144)
(slow-transv vector :inline :offset-assert 176)
(board-time time-frame :offset-assert 192)
(board-get-on-time time-frame :offset-assert 200)
(in-air-time time-frame :offset-assert 208)
(stick-lock basic :offset 240)
(stick-off basic :offset-assert 244)
(stance-info ground-tween-info :inline :offset-assert 248)
(mods-backup basic :offset-assert 284)
(attack-id uint32 :offset-assert 288)
(latch? symbol :offset-assert 292)
(unstuck-time time-frame :offset 344)
(stuck-count int32 :offset-assert 352)
(thrust-scale float :offset-assert 356)
(flip-time time-frame :offset-assert 360)
(transv-max meters :offset-assert 368)
(turn-anim-tilt? symbol :offset-assert 372)
(turn-anim-mag float :offset-assert 376)
(turn-anim-targ float :offset-assert 380)
(turn-anim-frame float :offset-assert 384)
(turn-anim-vel float :offset-assert 388)
(turn-anim-duck float :offset-assert 392)
(turn-anim-duck-vel float :offset-assert 396)
(tilt-anim-frame vector :inline :offset-assert 400)
(tilt-anim-target vector :inline :offset-assert 416)
(smack-surface-time time-frame :offset-assert 432)
(smack-speed meters :offset-assert 440)
(smack-normal vector :inline :offset-assert 448)
(glance-time time-frame :offset-assert 464)
(glance-speed meters :offset-assert 472)
(glance-in-transv vector :inline :offset-assert 480)
(glance-out-transv vector :inline :offset-assert 496)
(glance-normal vector :inline :offset-assert 512)
(on-flat-time time-frame :offset-assert 528)
(jump-land-time time-frame :offset-assert 536)
(slip-factor float :offset-assert 544)
(ground-on-dir vector :inline :offset-assert 560)
(ride-time time-frame :offset-assert 576)
(ride-start-time time-frame :offset-assert 584)
(ride-button-time time-frame :offset-assert 592)
(ride-lean-targ float :offset-assert 600)
(ride-lean float :offset-assert 604)
(ride-leanv float :offset-assert 608)
(ride-lean-mag float :offset-assert 612)
(ride-tilt-targ float :offset-assert 616)
(ride-tilt float :offset-assert 620)
(ride-tiltv float :offset-assert 624)
(ride-tilt-mag float :offset-assert 628)
(ride-lock symbol :offset-assert 632)
(ride-lock-on symbol :offset-assert 636)
(ride-speed meters :offset-assert 640)
(ride-mode uint32 :offset-assert 644)
(ride-rot degrees :offset-assert 648)
(ride-rot-old degrees :offset-assert 652)
(ride-rot-abs degrees 2 :offset-assert 656)
(ride-rtv-abs degrees :offset-assert 664)
(ride-touch-segment vector 2 :inline :offset-assert 672)
(ride-dir vector :inline :offset-assert 704)
(ride-vertex-length int16 :offset-assert 720)
(ride-vertex-length-old int16 :offset-assert 722)
(ride-vertex-base int16 :offset-assert 724)
(ride-vertex-base2 int16 :offset-assert 726)
(ride-vertex-index float :offset-assert 728)
(ride-vertex-index2 float :offset-assert 732)
(ride-vertex-index-old float :offset-assert 736)
(ride-vertex vector 3 :inline :offset-assert 752)
(ride-segment vector :inline :offset-assert 800)
(ride-dir-lean vector :inline :offset-assert 816)
(ride-pad-vector vector 1 :inline :offset-assert 832)
(ride-vertex-old vector 3 :inline :offset-assert 848)
(ride-segment-old vector :inline :offset-assert 896)
(ride-vertex-trail vector 128 :inline :offset-assert 912)
(halfpipe-side-time time-frame :offset-assert 2960)
(halfpipe-jump-time time-frame :offset-assert 2968)
(halfpipe-lip-time time-frame :offset-assert 2976)
(halfpipe-time time-frame :offset-assert 2984)
(halfpipe-gspot-time time-frame :offset-assert 2992)
(halfpipe-lip-event symbol :offset-assert 3000)
(spin-check-time time-frame :offset-assert 3008)
(spin-time time-frame :offset-assert 3016)
(spin-start-time time-frame :offset-assert 3024)
(spin-start-dir vector :inline :offset-assert 3040)
(spin-control float :offset-assert 3056)
(spin-ground-start-time time-frame :offset-assert 3064)
(spin-ground-time time-frame :offset-assert 3072)
(spin-ground-press-time time-frame :offset-assert 3080)
(flip-control float :offset-assert 3088)
(flip-count int32 :offset-assert 3092)
(trickx-count int32 :offset 3144)
(trotyv-max degrees :offset-assert 3148)
(trotyv degrees :offset-assert 3152)
(troty degrees :offset-assert 3156)
(troty-cum degrees :offset-assert 3160)
(upper-body-rotyv-max degrees :offset 3168)
(upper-body-rotyv degrees :offset-assert 3172)
(upper-body-roty degrees :offset-assert 3176)
(cushion-base meters :offset-assert 3180)
(cushion-offset meters :offset-assert 3184)
(shock-offset meters :offset-assert 3188)
(shock-offsetv meters :offset-assert 3192)
(shock-rotx meters :offset-assert 3196)
(trick-count int32 :offset 3204)
(pad uint8 :offset 3399)
)
:method-count-assert 11
:size-assert #xd48
:flag-assert #xb00000d48
(:methods
(board-info-method-9 () none 9)
(board-info-method-10 () none 10)
)
)
;; definition for method 3 of type board-info
(defmethod inspect board-info ((obj board-info))
(when (not obj)
(set! obj obj)
(goto cfg-19)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tboard: #x~X~%" (-> obj board))
(format #t "~1Tcamera-interp: ~f~%" (-> obj camera-interp))
(format #t "~1Tprocess: #x~X~%" (-> obj process))
(format #t "~1Tboard-trans: ~`vector`P~%" (-> obj board-trans))
(format #t "~1Tboard-quat: ~`vector`P~%" (-> obj board-quat))
(format #t "~1Tboard-scale: ~`vector`P~%" (-> obj board-scale))
(format #t "~1Tmain: ~A~%" (-> obj main))
(format #t "~1Tupper-body: ~A~%" (-> obj upper-body))
(format #t "~1Tsound-bank-knob: ~f~%" (-> obj sound-bank-knob))
(format #t "~1Tsound-air-knob: ~f~%" (-> obj sound-air-knob))
(format #t "~1Twind-sound-id: ~D~%" (-> obj wind-sound-id))
(format #t "~1Twind-sound-pitch: ~f~%" (-> obj wind-sound-pitch))
(format #t "~1Twind-sound-volume: ~f~%" (-> obj wind-sound-volume))
(format #t "~1Tengine-sound-id: ~D~%" (-> obj engine-sound-id))
(format #t "~1Tengine-sound-pitch: ~f~%" (-> obj engine-sound-pitch))
(format #t "~1Tengine-sound-volume: ~f~%" (-> obj engine-sound-volume))
(format #t "~1Tbank-sound-id: ~D~%" (-> obj bank-sound-id))
(format #t "~1Tbank-sound-pitch: ~f~%" (-> obj bank-sound-pitch))
(format #t "~1Tbank-sound-volume: ~f~%" (-> obj bank-sound-volume))
(format #t "~1Tride-sound-id: ~D~%" (-> obj ride-sound-id))
(format #t "~1Tspin-sound-id: ~D~%" (-> obj spin-sound-id))
(format #t "~1Tspin-sound-volume: ~f~%" (-> obj spin-sound-volume))
(format #t "~1Tspin-sound-pitch: ~f~%" (-> obj spin-sound-pitch))
(format #t "~1Tup-vector[2] @ #x~X~%" (-> obj up-vector))
(format #t "~1Tslow-transv: #<vector @ #x~X>~%" (-> obj slow-transv))
(format #t "~1Tboard-time: ~D~%" (-> obj board-time))
(format #t "~1Tboard-get-on-time: ~D~%" (-> obj board-get-on-time))
(format #t "~1Tin-air-time: ~D~%" (-> obj in-air-time))
(format #t "~1Tstick-lock: ~A~%" (-> obj stick-lock))
(format #t "~1Tstick-off: ~A~%" (-> obj stick-off))
(format #t "~1Tstance-info: #<ground-tween-info @ #x~X>~%" (-> obj stance-info))
(format #t "~1Tmods-backup: ~A~%" (-> obj mods-backup))
(format #t "~1Tattack-id: ~D~%" (-> obj attack-id))
(format #t "~1Tlatch?: ~A~%" (-> obj latch?))
(format #t "~1Tunstuck-time: ~D~%" (-> obj unstuck-time))
(format #t "~1Tstuck-count: ~D~%" (-> obj stuck-count))
(format #t "~1Tthrust-scale: ~f~%" (-> obj thrust-scale))
(format #t "~1Tflip-time: ~D~%" (-> obj flip-time))
(format #t "~1Ttransv-max: (meters ~m)~%" (-> obj transv-max))
(format #t "~1Tturn-anim-tilt?: ~A~%" (-> obj turn-anim-tilt?))
(format #t "~1Tturn-anim-mag: ~f~%" (-> obj turn-anim-mag))
(format #t "~1Tturn-anim-targ: ~f~%" (-> obj turn-anim-targ))
(format #t "~1Tturn-anim-frame: ~f~%" (-> obj turn-anim-frame))
(format #t "~1Tturn-anim-vel: ~f~%" (-> obj turn-anim-vel))
(format #t "~1Tturn-anim-duck: ~f~%" (-> obj turn-anim-duck))
(format #t "~1Tturn-anim-duck-vel: ~f~%" (-> obj turn-anim-duck-vel))
(format #t "~1Ttilt-anim-frame: ~`vector`P~%" (-> obj tilt-anim-frame))
(format #t "~1Ttilt-anim-targ: ~`vector`P~%" (-> obj tilt-anim-target))
(format #t "~1Tsmack-surface-time: ~D~%" (-> obj smack-surface-time))
(format #t "~1Tsmack-speed: (meters ~m)~%" (-> obj smack-speed))
(format #t "~1Tsmack-normal: ~`vector`P~%" (-> obj smack-normal))
(format #t "~1Tglance-time: ~D~%" (-> obj glance-time))
(format #t "~1Tglance-speed: (meters ~m)~%" (-> obj glance-speed))
(format #t "~1Tglance-in-transv: ~`vector`P~%" (-> obj glance-in-transv))
(format #t "~1Tglance-out-transv: ~`vector`P~%" (-> obj glance-out-transv))
(format #t "~1Tglance-normal: ~`vector`P~%" (-> obj glance-normal))
(format #t "~1Ton-flat-time: ~D~%" (-> obj on-flat-time))
(format #t "~1Tjump-land-time: ~D~%" (-> obj jump-land-time))
(format #t "~1Tslip-factor: ~f~%" (-> obj slip-factor))
(format #t "~1Tground-on-dir: ~`vector`P~%" (-> obj ground-on-dir))
(format #t "~1Tride-time: ~D~%" (-> obj ride-time))
(format #t "~1Tride-start-time: ~D~%" (-> obj ride-start-time))
(format #t "~1Tride-button-time: ~D~%" (-> obj ride-button-time))
(format #t "~1Tride-lean-targ: ~f~%" (-> obj ride-lean-targ))
(format #t "~1Tride-lean: ~f~%" (-> obj ride-lean))
(format #t "~1Tride-leanv: ~f~%" (-> obj ride-leanv))
(format #t "~1Tride-lean-mag: ~f~%" (-> obj ride-lean-mag))
(format #t "~1Tride-tilt-targ: ~f~%" (-> obj ride-tilt-targ))
(format #t "~1Tride-tilt: ~f~%" (-> obj ride-tilt))
(format #t "~1Tride-tiltv: ~f~%" (-> obj ride-tiltv))
(format #t "~1Tride-tilt-mag: ~f~%" (-> obj ride-tilt-mag))
(format #t "~1Tride-lock: ~A~%" (-> obj ride-lock))
(format #t "~1Tride-lock-on: ~A~%" (-> obj ride-lock-on))
(format #t "~1Tride-speed: (meters ~m)~%" (-> obj ride-speed))
(format #t "~1Tride-mode: ~D~%" (-> obj ride-mode))
(format #t "~1Tride-rot: (deg ~r)~%" (-> obj ride-rot))
(format #t "~1Tride-rot-old: (deg ~r)~%" (-> obj ride-rot-old))
(format #t "~1Tride-rot-abs[2] @ #x~X~%" (-> obj ride-rot-abs))
(dotimes (s5-0 2)
(format #t "~T [~D]~1Tride-rot-abs: (deg ~r)~%" s5-0 (-> obj ride-rot-abs s5-0))
)
(format #t "~1Tride-rotv-abs: (deg ~r)~%" (-> obj ride-rtv-abs))
(format #t "~1Tride-touch-segment[2] @ #x~X~%" (-> obj ride-touch-segment))
(dotimes (s5-1 2)
(format #t "~T [~D]~1Tride-touch-segment: ~`vector`P~%" s5-1 (-> obj ride-touch-segment s5-1))
)
(format #t "~1Tride-dir: ~`vector`P~%" (-> obj ride-dir))
(format #t "~1Tride-vertex-length: ~D~%" (-> obj ride-vertex-length))
(format #t "~1Tride-vertex-length-old: ~D~%" (-> obj ride-vertex-length-old))
(format #t "~1Tride-vertex-base: ~D~%" (-> obj ride-vertex-base))
(format #t "~1Tride-vertex-base2: ~D~%" (-> obj ride-vertex-base2))
(format #t "~1Tride-vertex-index: ~f~%" (-> obj ride-vertex-index))
(format #t "~1Tride-vertex-index2: ~f~%" (-> obj ride-vertex-index2))
(format #t "~1Tride-vertex-index-old: ~f~%" (-> obj ride-vertex-index-old))
(format #t "~1Tride-vertex[3] @ #x~X~%" (-> obj ride-vertex))
(dotimes (s5-2 3)
(format #t "~T [~D]~1Tride-vertex: ~`vector`P~%" s5-2 (-> obj ride-vertex s5-2))
)
(format #t "~1Tride-segment: ~`vector`P~%" (-> obj ride-segment))
(format #t "~1Tride-dir-lean: ~`vector`P~%" (-> obj ride-dir-lean))
(format #t "~1Tride-pad-vector[1] @ #x~X~%" (-> obj ride-pad-vector))
(format #t "~1Tride-vertex-old[3] @ #x~X~%" (-> obj ride-vertex-old))
(dotimes (s5-3 3)
(format #t "~T [~D]~1Tride-vertex-old: ~`vector`P~%" s5-3 (-> obj ride-vertex-old s5-3))
)
(format #t "~1Tride-segment-old: ~`vector`P~%" (-> obj ride-segment-old))
(format #t "~1Tride-vertex-trail[128] @ #x~X~%" (-> obj ride-vertex-trail))
(dotimes (s5-4 128)
(format #t "~T [~D]~1Tride-vertex-trail: ~`vector`P~%" s5-4 (-> obj ride-vertex-trail s5-4))
)
(format #t "~1Thalfpipe-side-time: ~D~%" (-> obj halfpipe-side-time))
(format #t "~1Thalfpipe-jump-time: ~D~%" (-> obj halfpipe-jump-time))
(format #t "~1Thalfpipe-lip-time: ~D~%" (-> obj halfpipe-lip-time))
(format #t "~1Thalfpipe-time: ~D~%" (-> obj halfpipe-time))
(format #t "~1Thalfpipe-gspot-time: ~D~%" (-> obj halfpipe-gspot-time))
(format #t "~1Thalfpipe-lip-event: ~A~%" (-> obj halfpipe-lip-event))
(format #t "~1Tspin-check-time: ~D~%" (-> obj spin-check-time))
(format #t "~1Tspin-time: ~D~%" (-> obj spin-time))
(format #t "~1Tspin-start-time: ~D~%" (-> obj spin-start-time))
(format #t "~1Tspin-start-dir: ~`vector`P~%" (-> obj spin-start-dir))
(format #t "~1Tspin-control: ~f~%" (-> obj spin-control))
(format #t "~1Tspin-ground-start-time: ~D~%" (-> obj spin-ground-start-time))
(format #t "~1Tspin-ground-time: ~D~%" (-> obj spin-ground-time))
(format #t "~1Tspin-ground-press-time: ~D~%" (-> obj spin-ground-press-time))
(format #t "~1Tflip-control: ~f~%" (-> obj flip-control))
(format #t "~1Tflip-count: ~D~%" (-> obj flip-count))
(format #t "~1Ttrickx-count: ~D~%" (-> obj trickx-count))
(format #t "~1Trotyv-max: (deg ~r)~%" (-> obj trotyv-max))
(format #t "~1Trotyv: (deg ~r)~%" (-> obj trotyv))
(format #t "~1Troty: (deg ~r)~%" (-> obj troty))
(format #t "~1Troty-cum: (deg ~r)~%" (&-> obj troty-cum))
(format #t "~1Tupper-body-rotyv-max: (deg ~r)~%" (-> obj upper-body-rotyv-max))
(format #t "~1Tupper-body-rotyv: (deg ~r)~%" (-> obj upper-body-rotyv))
(format #t "~1Tupper-body-roty: (deg ~r)~%" (-> obj upper-body-roty))
(format #t "~1Tcushion-base: (meters ~m)~%" (-> obj cushion-base))
(format #t "~1Tcushion-offset: (meters ~m)~%" (-> obj cushion-offset))
(format #t "~1Tshock-offset: (meters ~m)~%" (-> obj shock-offset))
(format #t "~1Tshock-offsetv: (meters ~m)~%" (-> obj shock-offsetv))
(format #t "~1Tshock-rotx: (meters ~m)~%" (-> obj shock-rotx))
(format #t "~1Ttrick-count: ~D~%" (-> obj trick-count))
(label cfg-19)
obj
)
;; definition of type target-board-bank
(deftype target-board-bank (basic)
((jump-height-min meters :offset-assert 4)
(jump-height-max meters :offset-assert 8)
(duck-jump-height-min meters :offset-assert 12)
(duck-jump-height-max meters :offset-assert 16)
(turn-frames float :offset-assert 20)
(wall-kick-window seconds :offset-assert 24)
(cushion meters :offset-assert 32)
(trickx-jump-height-min meters :offset-assert 36)
(trickx-jump-height-max meters :offset-assert 40)
(tricky-jump-height-min meters :offset-assert 44)
(tricky-jump-height-max meters :offset-assert 48)
)
:method-count-assert 9
:size-assert #x34
:flag-assert #x900000034
)
;; definition for method 3 of type target-board-bank
(defmethod inspect target-board-bank ((obj target-board-bank))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tjump-height-min: (meters ~m)~%" (-> obj jump-height-min))
(format #t "~1Tjump-height-max: (meters ~m)~%" (-> obj jump-height-max))
(format #t "~1Tduck-jump-height-min: (meters ~m)~%" (-> obj duck-jump-height-min))
(format #t "~1Tduck-jump-height-max: (meters ~m)~%" (-> obj duck-jump-height-max))
(format #t "~1Tturn-frames: ~f~%" (-> obj turn-frames))
(format #t "~1Twall-kick-window: (seconds ~e)~%" (-> obj wall-kick-window))
(format #t "~1Tcushion: (meters ~m)~%" (-> obj cushion))
(format #t "~1Ttrickx-jump-height-min: (meters ~m)~%" (-> obj trickx-jump-height-min))
(format #t "~1Ttrickx-jump-height-max: (meters ~m)~%" (-> obj trickx-jump-height-max))
(format #t "~1Ttricky-jump-height-min: (meters ~m)~%" (-> obj tricky-jump-height-min))
(format #t "~1Ttricky-jump-height-max: (meters ~m)~%" (-> obj tricky-jump-height-max))
(label cfg-4)
obj
)
;; definition for symbol *TARGET_BOARD-bank*, type target-board-bank
(define *TARGET_BOARD-bank* (new 'static 'target-board-bank
:jump-height-min (meters 1.01)
:jump-height-max (meters 3.5)
:duck-jump-height-min (meters 2.5)
:duck-jump-height-max (meters 5)
:turn-frames 10.0
:wall-kick-window (seconds 0.05)
:cushion (meters 1)
:trickx-jump-height-min (meters 0.9)
:trickx-jump-height-max (meters 1.2)
:tricky-jump-height-min (meters 0.9)
:tricky-jump-height-max (meters 1.2)
)
)
;; definition for function want-to-board?
;; INFO: Used lq/sq
(defbehavior want-to-board? target ()
(and (logtest? (-> self game features) (game-feature board))
(or (and (cpad-pressed? (-> self control unknown-cpad-info00 number) r2)
(or (!= *cheat-mode* 'debug)
(zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l2))
)
)
(not *pause-lock*)
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame01)) (seconds 0.1))
(>= (the-as int (-> self control unknown-dword00)) (the-as int (-> self control unknown-dword01)))
)
(-> self board latch?)
)
(zero? (logand (focus-status fs1 fs6 fs7 fs8 fs12 fs13 fs18 fs20 fs21 fs22) (-> self focus-status)))
(or (zero? (-> self board)) (>= (- (-> self clock frame-counter) (-> self board board-time)) (seconds 0.5)))
(zero? (logand (state-flags sf17) (-> self state-flags)))
(< (-> self board board-time) (-> self control unknown-time-frame00))
(zero? (logand (surface-flag no-board) (-> self control unknown-surface00 flags)))
(or (zero? (logand (-> self control unknown-surface00 flags) (surface-flag duck)))
(begin self (can-exit-duck?))
)
(not (and (logtest? (-> self water flags) (water-flags under-water))
(zero? (logand (-> self water flags) (water-flags swim-ground)))
)
)
(not *artist-fix-visible*)
(let ((gp-0 (new 'stack-no-clear 'collide-query)))
(let ((s5-0 (new 'stack-no-clear 'inline-array 'sphere 3)))
(dotimes (s4-0 3)
((method-of-type sphere new) (the-as symbol (-> s5-0 s4-0)) sphere)
)
(let ((v1-51 (new 'stack-no-clear 'vector)))
(set! (-> v1-51 quad) (-> self control trans quad))
(if (logtest? (-> self focus-status) (focus-status fs10))
(set! (-> v1-51 y) (-> self water height))
)
(set! (-> s5-0 0 quad) (-> v1-51 quad))
(set! (-> s5-0 0 y) (+ 8192.0 (-> s5-0 0 y)))
(set! (-> s5-0 0 w) 2867.2)
(set! (-> s5-0 1 quad) (-> v1-51 quad))
(set! (-> s5-0 1 y) (+ 12288.0 (-> s5-0 1 y)))
(set! (-> s5-0 1 w) 2867.2)
(set! (-> s5-0 2 quad) (-> v1-51 quad))
)
(set! (-> s5-0 2 y) (+ 16384.0 (-> s5-0 2 y)))
(set! (-> s5-0 2 w) 2867.2)
(let ((v1-55 gp-0))
(set! (-> v1-55 spheres) s5-0)
(set! (-> v1-55 num-spheres) (the-as uint 3))
(set! (-> v1-55 collide-with)
(the-as collide-spec (logand -16561 (-> self control root-prim prim-core collide-with)))
)
(set! (-> v1-55 ignore-process0) #f)
(set! (-> v1-55 ignore-process1) #f)
(set! (-> v1-55 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
(set! (-> v1-55 solid-only) #t)
(set! (-> v1-55 action-mask) (the-as uint 1))
)
)
(and (if (fill-and-probe-using-spheres *collide-cache* gp-0)
#f
#t
)
(begin
(set! (-> self board latch?) #t)
(>= (- (-> self clock frame-counter) (-> self gun gun-time)) (seconds 0.4))
)
)
)
)
)
;; failed to figure out what this is:
(let ((a0-6 (new 'static 'skeleton-group
:name "skel-board"
:extra #f
:info #f
:art-group-name "board"
:bounds (new 'static 'vector :w 14336.0)
:version #x7
:shadow 2
:sort 1
:origin-joint-index 3
)
)
)
(set! (-> a0-6 jgeo) 0)
(set! (-> a0-6 janim) 5)
(set! (-> a0-6 mgeo 0) 1)
(set! (-> a0-6 lod-dist 0) 4095996000.0)
(add-to-loading-level a0-6)
)
;; definition for symbol *board-shadow-control*, type shadow-control
(define *board-shadow-control*
(new 'static 'shadow-control :settings (new 'static 'shadow-settings
:center (new 'static 'vector :w (the-as float #xa))
:shadow-dir (new 'static 'vector :y -1.0 :w 614400.0)
:bot-plane (new 'static 'plane :y 1.0 :w 81920.0)
:top-plane (new 'static 'plane :y 1.0 :w 2048.0)
)
)
)
+263
View File
@@ -0,0 +1,263 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for method 7 of type board
;; INFO: Return type mismatch process-drawable vs board.
(defmethod relocate board ((obj board) (arg0 int))
(if (nonzero? (-> obj main))
(&+! (-> obj main) arg0)
)
(the-as board ((method-of-type process-drawable relocate) obj arg0))
)
;; definition for function board-post
;; INFO: Used lq/sq
;; INFO: Return type mismatch int vs none.
(defbehavior board-post board ()
(let* ((a0-0 (-> self parent))
(v1-0 (if a0-0
(the-as target (-> (the-as target (-> a0-0 0)) self))
)
)
)
(set! (-> self root trans quad) (-> v1-0 board board-trans quad))
(let ((a0-4 (-> v1-0 board board-quat quad)))
(set! (-> self root quat vec quad) a0-4)
)
(set! (-> self root scale quad) (-> v1-0 board board-scale quad))
(set! (-> self draw light-index) (-> v1-0 draw light-index))
(let ((a0-10 (-> v1-0 draw color-mult quad)))
(set! (-> self draw color-mult quad) a0-10)
)
(let ((a0-12 (-> v1-0 draw color-emissive quad)))
(set! (-> self draw color-emissive quad) a0-12)
)
(set! (-> self draw force-fade) (-> v1-0 draw force-fade))
(set! (-> self draw death-vertex-skip) (-> (the-as target (-> self parent 0)) draw death-vertex-skip))
(set! (-> self draw death-effect) (-> (the-as target (-> self parent 0)) draw death-effect))
(set! (-> self draw death-timer) (-> (the-as target (-> self parent 0)) draw death-timer))
(set! (-> self draw death-timer-org) (-> (the-as target (-> self parent 0)) draw death-timer-org))
(set! (-> self draw death-draw-overlap) (-> (the-as target (-> self parent 0)) draw death-draw-overlap))
(let ((a0-37 (-> v1-0 draw shadow-ctrl settings shadow-dir quad)))
(set! (-> self draw shadow-ctrl settings shadow-dir quad) a0-37)
)
(if (or (logtest? (-> v1-0 draw status) (draw-control-status no-draw no-draw-temp no-draw-bounds no-draw-bounds2))
(zero? (-> v1-0 skel active-channels))
)
(logior! (-> self draw status) (draw-control-status no-draw))
(logclear! (-> self draw status) (draw-control-status no-draw))
)
(if (logtest? (-> v1-0 draw status) (draw-control-status force-fade))
(logior! (-> self draw status) (draw-control-status force-fade))
(logclear! (-> self draw status) (draw-control-status force-fade))
)
)
(ja-post)
0
(none)
)
;; failed to figure out what this is:
(defstate hidden (board)
:virtual #t
:trans (behavior ()
(let ((v1-0 (-> self parent)))
(if (zero? (logand (-> (the-as target (if v1-0
(the-as target (-> v1-0 0 self))
)
)
focus-status
)
(focus-status fs8)
)
)
(go-virtual idle #f)
)
)
(none)
)
:code (behavior ()
(ja-channel-set! 0)
(ja-post)
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
0
(none)
)
)
;; failed to figure out what this is:
(defstate idle (board)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('open)
(go-virtual use)
)
)
)
:trans (behavior ()
(let ((v1-0 (-> self parent)))
(if (logtest? (-> (the-as target (if v1-0
(the-as target (-> v1-0 0 self))
)
)
focus-status
)
(focus-status fs8)
)
(go-virtual hidden)
)
)
(none)
)
:code (behavior ((arg0 symbol))
(ja-channel-push! 1 (seconds 0.1))
(cond
(arg0
(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 4))
(the-as (function joint-control-channel float float float float) num-func-identity)
)
(set! (-> gp-1 frame-num)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))
)
)
)
(else
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 4)))
(set! (-> a0-3 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) frames num-frames) -1))
)
(set! (-> a0-3 param 1) 1.0)
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group!
a0-3
(the-as art-joint-anim (-> self draw art-group data 4))
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-4 (-> self skel root-channel 0)))
(set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group frames num-frames) -1)))
(set! (-> a0-4 param 1) 1.0)
(joint-control-channel-group-eval!
a0-4
(the-as art-joint-anim #f)
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
)
)
)
(set! (-> self draw shadow) #f)
(sleep-code)
(none)
)
:post board-post
)
;; failed to figure out what this is:
(defstate use (board)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('close)
(go-virtual idle #f)
)
)
)
:trans (behavior ()
(let ((v1-0 (-> self parent)))
(if v1-0
(-> v1-0 0 self)
)
)
(let ((v1-2 (-> self parent)))
(cond
((logtest? (-> (the-as target (if v1-2
(the-as target (-> v1-2 0 self))
)
)
focus-status
)
(focus-status fs8)
)
(go-virtual hidden)
)
((let ((v1-9 #x40000)
(a0-3 (-> self parent))
)
(zero? (logand (the-as focus-status v1-9) (-> (the-as target (if a0-3
(the-as target (-> a0-3 0 self))
)
)
focus-status
)
)
)
)
(go-virtual idle #f)
)
)
)
(none)
)
:code (behavior ()
(set! (-> self draw shadow) (-> self shadow-backup))
(ja-channel-push! 1 (seconds 0.1))
(let ((a0-2 (-> self skel root-channel 0)))
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> a0-2 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) frames num-frames) -1))
)
(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 3))
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group frames num-frames) -1)))
(set! (-> a0-3 param 1) 1.0)
(joint-control-channel-group-eval!
a0-3
(the-as art-joint-anim #f)
(the-as (function joint-control-channel float float float float) num-func-seek!)
)
)
)
(sleep-code)
(none)
)
:post board-post
)
;; definition for function board-init
;; INFO: Used lq/sq
;; INFO: Return type mismatch object vs none.
(defbehavior board-init board ()
(set! (-> self root) (new 'process 'trsqv))
(initialize-skeleton
self
(the-as skeleton-group (art-group-get-by-name *level* "skel-board" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(let ((v1-5 (-> *target-shadow-control* settings shadow-dir quad)))
(set! (-> *board-shadow-control* settings shadow-dir quad) v1-5)
)
(set! (-> self draw shadow-ctrl) *board-shadow-control*)
(set! (-> self shadow-backup) (-> self draw shadow))
(set! (-> self main) (new 'process 'joint-mod (joint-mod-mode flex-blend) self 3))
(ja-channel-set! 0)
(go-virtual idle #t)
(none)
)
+53
View File
@@ -0,0 +1,53 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type darkjak-info
(deftype darkjak-info (basic)
((process uint32 :offset-assert 4)
(attack-id uint32 :offset-assert 8)
(start-time time-frame :offset-assert 16)
(attack-time time-frame :offset-assert 24)
(attack-count uint64 :offset-assert 32)
(stage uint32 :offset-assert 40)
(want-stage uint32 :offset-assert 44)
(clock-pos float :offset-assert 48)
(clock-vel float :offset-assert 52)
(clock-on symbol :offset-assert 56)
(hud handle 1 :offset 64)
(tone uint32 :offset 72)
(bomb uint32 :offset 76)
)
:method-count-assert 10
:size-assert #x50
:flag-assert #xa00000050
(:methods
(darkjak-info-method-9 (_type_ int) none :behavior target 9)
)
)
;; definition for method 3 of type darkjak-info
(defmethod inspect darkjak-info ((obj darkjak-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tprocess: #x~X~%" (-> obj process))
(format #t "~1Tattack-id: ~D~%" (-> obj attack-id))
(format #t "~1Tstart-time: ~D~%" (-> obj start-time))
(format #t "~1Tattack-time: ~D~%" (-> obj attack-time))
(format #t "~1Tattack-count: ~D~%" (-> obj attack-count))
(format #t "~1Tstage: ~D~%" (-> obj stage))
(format #t "~1Twant-stage: ~D~%" (-> obj want-stage))
(format #t "~1Tclock-pos: ~f~%" (-> obj clock-pos))
(format #t "~1Tclock-vel: ~f~%" (-> obj clock-vel))
(format #t "~1Tclock-on: ~A~%" (-> obj clock-on))
(format #t "~1Thud[1] @ #x~X~%" (-> obj hud))
(format #t "~1Ttone: ~D~%" (-> obj tone))
(format #t "~1Tbomb: ~D~%" (-> obj bomb))
(label cfg-4)
obj
)
;; failed to figure out what this is:
0
+94 -94
View File
@@ -3,23 +3,23 @@
;; definition of type gun
(deftype gun (process-drawable)
((control basic :offset 128)
(shadow-backup basic :offset 208)
(read-scale basic :offset-assert 212)
(gun-type pickup-type :offset-assert 216)
(barrel basic :offset-assert 220)
(mag basic 4 :offset-assert 224)
(mag-scale float 4 :offset-assert 240)
((control control-info :offset 128)
(shadow-backup shadow-geo :offset 208)
(read-scale basic :offset-assert 212)
(gun-type pickup-type :offset-assert 216)
(barrel joint-mod :offset-assert 220)
(mag joint-mod 4 :offset-assert 224)
(mag-scale float 4 :offset-assert 240)
)
:heap-base #x80
:method-count-assert 24
:size-assert #x100
:flag-assert #x1800800100
(:methods
(gun-method-20 () none 20)
(gun-method-21 () none 21)
(gun-method-22 () none 22)
(gun-method-23 () none 23)
(idle () _type_ :state 20)
(use (symbol) _type_ :state 21)
(hidden () _type_ :state 22)
(die () _type_ :state 23)
)
)
@@ -46,94 +46,94 @@
;; definition of type gun-info
(deftype gun-info (basic)
((process uint32 :offset-assert 4)
(gun uint32 :offset-assert 8)
(gun-pos transformq :inline :offset-assert 16)
(gun-trans vector :inline :offset 16)
(gun-quat quaternion :inline :offset 32)
(gun-scale vector :inline :offset 48)
(gun-type pickup-type :offset-assert 64)
(using-gun-type pickup-type :offset-assert 68)
(active? symbol :offset-assert 72)
(latch? symbol :offset-assert 76)
(put-away? symbol :offset-assert 80)
(surpress-time time-frame :offset-assert 88)
(fire-time time-frame :offset-assert 96)
(gun-time time-frame :offset-assert 104)
(gun-get-on-time time-frame :offset-assert 112)
(active-time time-frame :offset-assert 120)
(fire-delay uint32 :offset-assert 128)
(gun-control uint32 :offset-assert 132)
(gun-target uint32 :offset-assert 136)
(gun-daxter float :offset-assert 140)
(gun-roty-rel degrees :offset-assert 144)
(gun-roty degrees :offset-assert 148)
(gun-roty-targ degrees :offset-assert 152)
(hips basic :offset-assert 156)
(upper-body basic :offset-assert 160)
(chest basic :offset-assert 164)
(fire-dir-rot degrees :offset-assert 168)
(fire-dir vector 2 :inline :offset-assert 176)
(fire-point vector :inline :offset-assert 208)
(fire-dir-backup vector :inline :offset-assert 224)
(fire-dir-out vector :inline :offset-assert 240)
(fire-pending int32 :offset-assert 256)
(fire-pending-time time-frame :offset-assert 264)
(fire-start-time time-frame :offset-assert 272)
(fire-charge float :offset-assert 280)
(fire-spin degrees :offset-assert 284)
(fire-spinv degrees :offset-assert 288)
(fire-chamber int32 :offset-assert 292)
(fire-range meters :offset-assert 296)
(laser-active? symbol :offset-assert 300)
(laser-point vector :inline :offset-assert 304)
(laser-dir vector 2 :inline :offset-assert 320)
(laser-hit-point vector :inline :offset-assert 352)
(track? uint16 :offset-assert 368)
(track-tilt degrees :offset-assert 372)
(track-turn degrees :offset-assert 376)
(track-find-range meters :offset-assert 380)
(track-turnv-range meters :offset-assert 384)
(track-tilt-range meters :offset-assert 388)
(track-turn-range meters :offset-assert 392)
(track-tilt-max degrees :offset-assert 396)
(track-turn-max degrees :offset-assert 400)
(track-angle-mult float :offset-assert 404)
(track-beam-size float :offset-assert 408)
(track-auto-fire symbol :offset-assert 412)
(track-require uint32 :offset-assert 416)
(track-target-hold-time time-frame :offset-assert 424)
(track-start-time time-frame :offset-assert 432)
(track-press-start-time time-frame :offset-assert 440)
(track-target focus 2 :inline :offset-assert 448)
(track-trans vector :inline :offset-assert 480)
(track-dir vector :inline :offset-assert 496)
(turn-fast-hold-time time-frame :offset-assert 512)
(blue-whine-sound-id uint32 :offset-assert 520)
(blue-whine-volume float :offset-assert 524)
(top-anim-twist vector :inline :offset-assert 528)
(top-anim-twist-targ vector :inline :offset-assert 544)
(top-anim-look-at vector :inline :offset-assert 560)
(top-anim-twist-reset uint64 :offset-assert 576)
(top-anim-gun-height meters :offset-assert 584)
(top-anim-blue-cycle float :offset-assert 588)
(top-anim-low-high float :offset-assert 592)
(top-anim-extra-twistv degrees :offset-assert 596)
(top-anim-tilt-up degrees :offset-assert 600)
(attack-combo combo-tracker :inline :offset-assert 608)
(combo-window-start time-frame :offset-assert 656)
(combo-window-state uint32 :offset-assert 664)
(combo-fire-delay uint32 :offset-assert 668)
(charge-ammo float :offset-assert 672)
(charge-start-time time-frame :offset-assert 680)
(charge-inc-time time-frame :offset-assert 688)
(charge-active? uint64 :offset-assert 696)
((process (pointer target) :offset-assert 4)
(gun (pointer gun) :offset-assert 8)
(gun-pos transformq :inline :offset-assert 16)
(gun-trans vector :inline :offset 16)
(gun-quat quaternion :inline :offset 32)
(gun-scale vector :inline :offset 48)
(gun-type pickup-type :offset-assert 64)
(using-gun-type pickup-type :offset-assert 68)
(active? symbol :offset-assert 72)
(latch? symbol :offset-assert 76)
(put-away? symbol :offset-assert 80)
(surpress-time time-frame :offset-assert 88)
(fire-time time-frame :offset-assert 96)
(gun-time time-frame :offset-assert 104)
(gun-get-on-time time-frame :offset-assert 112)
(active-time time-frame :offset-assert 120)
(fire-delay uint32 :offset-assert 128)
(gun-control uint32 :offset-assert 132)
(gun-target uint32 :offset-assert 136)
(gun-daxter float :offset-assert 140)
(gun-roty-rel degrees :offset-assert 144)
(gun-roty degrees :offset-assert 148)
(gun-roty-targ degrees :offset-assert 152)
(hips basic :offset-assert 156)
(upper-body basic :offset-assert 160)
(chest basic :offset-assert 164)
(fire-dir-rot degrees :offset-assert 168)
(fire-dir vector 2 :inline :offset-assert 176)
(fire-point vector :inline :offset-assert 208)
(fire-dir-backup vector :inline :offset-assert 224)
(fire-dir-out vector :inline :offset-assert 240)
(fire-pending int32 :offset-assert 256)
(fire-pending-time time-frame :offset-assert 264)
(fire-start-time time-frame :offset-assert 272)
(fire-charge float :offset-assert 280)
(fire-spin degrees :offset-assert 284)
(fire-spinv degrees :offset-assert 288)
(fire-chamber int32 :offset-assert 292)
(fire-range meters :offset-assert 296)
(laser-active? symbol :offset-assert 300)
(laser-point vector :inline :offset-assert 304)
(laser-dir vector 2 :inline :offset-assert 320)
(laser-hit-point vector :inline :offset-assert 352)
(track? uint16 :offset-assert 368)
(track-tilt degrees :offset-assert 372)
(track-turn degrees :offset-assert 376)
(track-find-range meters :offset-assert 380)
(track-turnv-range meters :offset-assert 384)
(track-tilt-range meters :offset-assert 388)
(track-turn-range meters :offset-assert 392)
(track-tilt-max degrees :offset-assert 396)
(track-turn-max degrees :offset-assert 400)
(track-angle-mult float :offset-assert 404)
(track-beam-size float :offset-assert 408)
(track-auto-fire symbol :offset-assert 412)
(track-require uint32 :offset-assert 416)
(track-target-hold-time time-frame :offset-assert 424)
(track-start-time time-frame :offset-assert 432)
(track-press-start-time time-frame :offset-assert 440)
(track-target focus 2 :inline :offset-assert 448)
(track-trans vector :inline :offset-assert 480)
(track-dir vector :inline :offset-assert 496)
(turn-fast-hold-time time-frame :offset-assert 512)
(blue-whine-sound-id uint32 :offset-assert 520)
(blue-whine-volume float :offset-assert 524)
(top-anim-twist vector :inline :offset-assert 528)
(top-anim-twist-targ vector :inline :offset-assert 544)
(top-anim-look-at vector :inline :offset-assert 560)
(top-anim-twist-reset uint64 :offset-assert 576)
(top-anim-gun-height meters :offset-assert 584)
(top-anim-blue-cycle float :offset-assert 588)
(top-anim-low-high float :offset-assert 592)
(top-anim-extra-twistv degrees :offset-assert 596)
(top-anim-tilt-up degrees :offset-assert 600)
(attack-combo combo-tracker :inline :offset-assert 608)
(combo-window-start time-frame :offset-assert 656)
(combo-window-state uint32 :offset-assert 664)
(combo-fire-delay uint32 :offset-assert 668)
(charge-ammo float :offset-assert 672)
(charge-start-time time-frame :offset-assert 680)
(charge-inc-time time-frame :offset-assert 688)
(charge-active? uint64 :offset-assert 696)
)
:method-count-assert 10
:size-assert #x2c0
:flag-assert #xa000002c0
(:methods
(gun-info-method-9 () none 9)
(gun-info-method-9 (_type_) none 9)
)
)
+5 -1
View File
@@ -49,7 +49,7 @@
// - never fixed this one in jak 1, assumed there was an original bug?
"print-game-text",
// joint asm
"cspace<-parented-transformq-joint!", "(method 11 art-joint-anim-manager)", "make-joint-jump-tables",
"cspace<-parented-transformq-joint!", "(method 11 art-joint-anim-manager)", "make-joint-jump-tables", "joint-channel-copy!",
// default menu
// - causes a decompiler hang
"dm-cam-setting-float",
@@ -87,6 +87,10 @@
// cam-update
"update-visible", // assertion crash when filling out bsp-header
// placeholder
// gun-util
"draw-beam", "(method 9 gun-info)",
"i-hopefully-will-never-exist-dont-add-anything-after-me-please"
],