mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
111af1ec19
* decomp: finish `sidekick` * decomp: got a lot of `target` done * decompiler: Add support for non power of 2 offsets for inline arr access * decomp: finish `target` mostly * decomp: finish `water` * decomp: finished `robotboss-weapon` * decomp: finish `robotboss-misc` * decomp: finish the majority of `robotboss` * blocked: `racer` has an issue around entering a state * blocked: `target-racer` done mostly, but NYI case in one function * blocked: `racer-states` mostly finished, but bitfield issue * blocked: `billy` on state decomping * blocked: `bully` on state decomping * waiting: `rolling-lightning-mole` waiting on navigate for 2 funcs * blocked: `rolling-robber` finished but `s6-1` issue * blocked: `ogreboss` uint64's for types cant label load em! * blocked: `mother-spider` state decompilation * half-done `target-flut` * blocked: `target-flut` some sort of new bitfield state * some improvements in `racer-states` with my new-found knowledge * progress: started on `target-death` * blocked: `target-death` handle casts * decomp: finish `collide-reaction-racer` * blocked: `target-handler` handler forced to return `none` * decomp: 99% of `target2` finished * decomp: finish `target2` * gsrc: update * update post merge * address feedback * scripts: add script to detect decomp issues * fix wide-spread `collide-shape` method missing arg * some small things i changed from master * address feedback * fix typeconsistency issue
121 lines
5.4 KiB
Common Lisp
121 lines
5.4 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: joint-h.gc
|
|
;; name in dgo: joint-h
|
|
;; dgos: GAME, ENGINE
|
|
|
|
(declare-type joint-control basic)
|
|
(declare-type effect-control basic)
|
|
|
|
(define-extern cspace<-parented-transformq-joint! (function cspace transformq none))
|
|
(define-extern cspace<-transformq! (function cspace transformq matrix))
|
|
(define-extern vector<-cspace! (function vector cspace vector))
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype joint-control-channel (structure)
|
|
((parent joint-control :offset-assert 0)
|
|
(command symbol :offset-assert 4)
|
|
(frame-interp float :offset-assert 8)
|
|
(frame-group art-joint-anim :offset-assert 12)
|
|
(frame-num float :offset-assert 16)
|
|
(num-func (function joint-control-channel float float float) :offset-assert 20)
|
|
(param float 2 :offset-assert 24)
|
|
(group-sub-index int16 :offset-assert 32)
|
|
(group-size int16 :offset-assert 34)
|
|
(dist meters :offset-assert 36)
|
|
(eval-time uint32 :offset-assert 40)
|
|
(inspector-amount float :offset-assert 44)
|
|
)
|
|
:method-count-assert 10
|
|
:size-assert #x30
|
|
:flag-assert #xa00000030
|
|
(:methods
|
|
(dummy-9 (_type_) _type_ 9)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype joint-control (basic)
|
|
((status uint16 :offset-assert 4)
|
|
(allocated-length int16 :offset-assert 6)
|
|
(root-channel (inline-array joint-control-channel) :offset 16)
|
|
(blend-index int32 :offset-assert 20)
|
|
(active-channels int32 :offset-assert 24)
|
|
(generate-frame-function (function pointer int process-drawable none) :offset-assert 28)
|
|
(prebind-function (function pointer int process-drawable none) :offset-assert 32)
|
|
(postbind-function (function pointer int process-drawable none) :offset-assert 36)
|
|
(effect effect-control :offset-assert 40)
|
|
(channel joint-control-channel 3 :inline :offset-assert 48) ;; actually dynamic?
|
|
(frame-group0 art-joint-anim :offset 60)
|
|
(frame-num0 float :offset 64)
|
|
(frame-interp0 float :offset 56)
|
|
(frame-group1 art-joint-anim :offset 108)
|
|
(frame-num1 float :offset 112)
|
|
(frame-interp1 float :offset 104)
|
|
(frame-group2 art-joint-anim :offset 156)
|
|
(frame-num2 float :offset 160)
|
|
(frame-interp2 float :offset 152)
|
|
)
|
|
:method-count-assert 11
|
|
:size-assert #xc0
|
|
:flag-assert #xb000000c0
|
|
(:methods
|
|
(new (symbol type int) _type_ 0)
|
|
(dummy-9 (_type_) float 9)
|
|
(dummy-10 (_type_ symbol) int 10)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype matrix-stack (structure)
|
|
((top matrix :offset-assert 0)
|
|
(data matrix 24 :inline :offset-assert 16)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x610
|
|
:flag-assert #x900000610
|
|
)
|
|
|
|
|
|
(deftype channel-upload-info (structure)
|
|
((fixed joint-anim-compressed-fixed :offset-assert 0)
|
|
(fixed-qwc int32 :offset-assert 4)
|
|
(frame joint-anim-compressed-frame :offset-assert 8)
|
|
(frame-qwc int32 :offset-assert 12)
|
|
(amount float :offset-assert 16)
|
|
(interp float :offset-assert 20)
|
|
)
|
|
:pack-me
|
|
:method-count-assert 9
|
|
:size-assert #x18
|
|
:flag-assert #x900000018
|
|
)
|
|
|
|
|
|
(deftype joint-work (structure)
|
|
((temp-mtx matrix :inline :offset-assert 0)
|
|
(joint-stack matrix-stack :inline :offset-assert 64)
|
|
(fix-jmp-table (function none) 16 :offset-assert 1616)
|
|
(frm-jmp-table (function none) 16 :offset-assert 1680)
|
|
(pair-jmp-table (function none) 16 :offset-assert 1744)
|
|
(uploads channel-upload-info 24 :inline :offset-assert 1808)
|
|
(num-uploads int32 :offset-assert 2384)
|
|
(mtx-acc matrix 2 :inline :offset-assert 2400)
|
|
(tq-acc transformq 100 :inline :offset-assert 2528)
|
|
(jacp-hdr joint-anim-compressed-hdr :inline :offset-assert 7328)
|
|
(fixed-data joint-anim-compressed-fixed :inline :offset-assert 7392)
|
|
(frame-data joint-anim-compressed-frame 2 :inline :offset-assert 9600)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x3640
|
|
:flag-assert #x900003640
|
|
)
|
|
|
|
(define-extern cspace<-parented-transformq-joint! (function cspace transformq none))
|
|
(define-extern cspace<-transformq! (function cspace transformq matrix))
|
|
(define-extern vector<-cspace! (function vector cspace vector))
|
|
(define-extern cspace<-transformq+world-trans! (function cspace transformq vector matrix))
|
|
(define-extern create-interpolated-joint-animation-frame (function joint-control int process-drawable int))
|