mirror of
https://github.com/open-goal/jak-project
synced 2026-06-18 23:37:22 -04:00
9969445cf7
* decompile transform * types for quaternion * part of quaternion * finish quaternion * fix offline test reference * wip fix to let issue * fix
119 lines
4.6 KiB
Common Lisp
119 lines
4.6 KiB
Common Lisp
;; GCOMMON
|
|
(define-extern name= (function basic basic symbol))
|
|
(define-extern fact (function int int))
|
|
(define-extern max (function int int int))
|
|
(define-extern min (function int int int))
|
|
|
|
;; KERNEL
|
|
(declare-type process basic)
|
|
(declare-type stack-frame basic)
|
|
(declare-type state basic)
|
|
(declare-type cpu-thread basic)
|
|
(declare-type dead-pool basic)
|
|
(declare-type event-message-block structure)
|
|
(declare-type thread basic)
|
|
|
|
(deftype process (process-tree)
|
|
((pool dead-pool :offset-assert #x20)
|
|
(status basic :offset-assert #x24)
|
|
(pid int32 :offset-assert #x28)
|
|
(main-thread cpu-thread :offset-assert #x2c)
|
|
(top-thread thread :offset-assert #x30)
|
|
(entity basic :offset-assert #x34)
|
|
(state state :offset-assert #x38)
|
|
(trans-hook function :offset-assert #x3c)
|
|
(post-hook function :offset-assert #x40)
|
|
(event-hook (function basic int basic event-message-block object) :offset-assert #x44)
|
|
(allocated-length int32 :offset-assert #x48)
|
|
(next-state state :offset-assert #x4c)
|
|
(heap-base pointer :offset-assert #x50)
|
|
(heap-top pointer :offset-assert #x54)
|
|
(heap-cur pointer :offset-assert #x58)
|
|
(stack-frame-top stack-frame :offset-assert #x5c)
|
|
(connection-list connectable :inline :offset-assert #x60)
|
|
(stack uint8 :dynamic :offset-assert #x70)
|
|
)
|
|
|
|
(:methods
|
|
(new (symbol type basic int) _type_ 0)
|
|
(activate (_type_ process-tree basic pointer) process-tree 9)
|
|
(deactivate (process) none 10)
|
|
(dummy-method-11 () none 11)
|
|
(run-logic? (process) symbol 12)
|
|
(dummy-method () none 13)
|
|
)
|
|
|
|
:size-assert #x70
|
|
:method-count-assert 14
|
|
:no-runtime-type ;; already defined by kscheme. Don't do it again.
|
|
)
|
|
|
|
(declare-type dead-pool-heap basic)
|
|
(define-extern *debug-dead-pool* dead-pool-heap)
|
|
(define-extern change-parent (function process-tree process-tree process-tree))
|
|
(define-extern *null-process* process)
|
|
(define-extern *vis-boot* basic)
|
|
(define-extern *stdcon* string)
|
|
(declare-type kernel-context basic)
|
|
(define-extern iterate-process-tree (function process-tree (function object object) kernel-context object))
|
|
(define-extern execute-process-tree (function process-tree (function object object) kernel-context object))
|
|
(define-extern search-process-tree (function process-tree (function process-tree object) process-tree))
|
|
|
|
(define-extern *listener-process* process)
|
|
(define-extern *active-pool* process-tree)
|
|
(define-extern reset-and-call (function thread function object))
|
|
(define-extern ash (function int int int))
|
|
(define-extern inspect-process-tree (function process-tree int int symbol process-tree))
|
|
(define-extern set-to-run-bootstrap (function none))
|
|
(define-extern dead-state state)
|
|
(define-extern *display-pool* process-tree)
|
|
(define-extern *camera-pool* process-tree)
|
|
(define-extern *target-pool* process-tree)
|
|
(define-extern *entity-pool* process-tree)
|
|
(define-extern *default-pool* process-tree)
|
|
(define-extern *stdcon0* string)
|
|
(define-extern *stdcon1* string)
|
|
(define-extern *debug-draw-pauseable* symbol)
|
|
|
|
;; gstate
|
|
(define-extern enter-state (function object object object object object object object))
|
|
(define-extern throw (function symbol object int))
|
|
(defmacro suspend()
|
|
'(none)
|
|
)
|
|
|
|
|
|
;; math
|
|
(define-extern fabs (function float float))
|
|
(define-extern abs (function int int))
|
|
(define-extern rand-vu-init (function float none))
|
|
(define-extern rand-vu (function float))
|
|
|
|
;; matrix
|
|
(declare-type matrix structure)
|
|
(declare-type vector structure)
|
|
(define-extern matrix-transpose! (function matrix matrix matrix))
|
|
(define-extern sin (function float float))
|
|
(define-extern cos (function float float))
|
|
(define-extern vector-sincos! (function vector vector vector int))
|
|
(define-extern matrix-axis-sin-cos! (function matrix vector float float none))
|
|
(define-extern atan (function float float float))
|
|
|
|
;; transform
|
|
(define-extern vector-identity! (function vector vector))
|
|
|
|
;; quaternion
|
|
(define-extern acos (function float float))
|
|
(define-extern acos-rad (function float float))
|
|
(define-extern atan2-rad (function float float float))
|
|
(define-extern vector-length (function vector float))
|
|
(define-extern sincos-rad! (function (pointer float) float int))
|
|
(define-extern atan-series-rad (function float float))
|
|
(define-extern vector-sin-rad! (function vector vector vector))
|
|
(define-extern vector-rad<-vector-deg/2! (function vector vector int))
|
|
(define-extern vector-sincos-rad! (function vector vector vector int))
|
|
(define-extern deg-diff (function float float float))
|
|
(define-extern vector-xz-normalize! (function vector float vector))
|
|
(declare-type quaternion structure)
|
|
(define-extern quaternion-from-two-vectors-max-angle! (function quaternion vector vector float quaternion))
|
|
(define-extern vector-xz-length (function vector float)) |