[decomp] make anim-tester decompilable (#719)

* make `anim-tester` decompile

* add the anon behaviors

* fix tests
This commit is contained in:
ManDude
2021-07-25 21:28:57 +01:00
committed by GitHub
parent 859adcc7d9
commit af52341050
15 changed files with 496 additions and 112 deletions
+194 -100
View File
@@ -7598,7 +7598,7 @@
(:methods
(new (symbol type process art-joint-geo) _type_ 0)
(dummy-9 (_type_) (pointer int8) 9)
(dummy-10 (_type_ int int) int 10)
(dummy-10 (_type_ int) int 10)
(dummy-11 (_type_ pointer) int 11)
)
)
@@ -9082,6 +9082,7 @@
)
)
(declare-type effect-control basic)
(deftype joint-control (basic)
((status uint16 :offset-assert 4)
(allocated-length int16 :offset-assert 6)
@@ -9090,8 +9091,8 @@
(active-channels int32 :offset-assert 24)
(generate-frame-function basic :offset-assert 28)
(prebind-function basic :offset-assert 32)
(postbind-function basic :offset-assert 36)
(effect basic :offset-assert 40)
(postbind-function function :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)
@@ -13742,7 +13743,7 @@
(define-extern *camera-init-mat* matrix)
(define-extern *camera* camera-master)
(define-extern *camera-combiner* camera-combiner)
(define-extern *camera-orbit-target* process-drawable)
(define-extern *camera-orbit-target* (pointer process-drawable))
;; ----------------------
@@ -18026,7 +18027,7 @@
;;(define-extern *CAM_FREE-bank* object) ;; unknown type
;;(define-extern *CAM_POINT_WATCH-bank* object) ;; unknown type
;;(define-extern cam-point-watch object) ;; unknown type
;;(define-extern cam-orbit object) ;; unknown type
(define-extern cam-orbit state) ;; unknown type
;; ----------------------
@@ -20998,6 +20999,7 @@
(tailpred glst-node :offset-assert 8)
(numelem int32 :offset-assert 12)
)
:allow-misaligned
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
@@ -21047,114 +21049,206 @@
;; - Types
; (deftype anim-test-sequence (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; bad get label
; )
(deftype list-control (structure)
((listfunc (function int list-control symbol) :offset-assert 0)
(list-owner uint32 :offset-assert 4)
(top int32 :offset-assert 8)
(left int32 :offset-assert 12)
(list glst-list :offset-assert 16)
(the-node glst-node :offset-assert 20)
(top-index int32 :offset-assert 24)
(the-index int32 :offset-assert 28)
(the-disp-line int32 :offset-assert 32)
(highlight-index int32 :offset-assert 36)
(current-index int32 :offset-assert 40)
(numlines int32 :offset-assert 44)
(lines-to-disp int32 :offset-assert 48)
(charswide int32 :offset-assert 52)
(highlight-disp-line int32 :offset-assert 56)
(field-id int32 :offset-assert 60)
(xpos int32 :offset-assert 64)
(ypos int32 :offset-assert 68)
(user-info int32 :offset-assert 72)
(user-info-u uint32 :offset 72) ;; custom
(return-int int32 :offset-assert 76)
)
:allow-misaligned
:method-count-assert 9
:size-assert #x50
:flag-assert #x900000050
)
; (deftype anim-test-seq-item (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; bad get label
; )
(deftype list-field (structure)
((left int32 :offset-assert 0)
(width int32 :offset-assert 4)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
; (deftype anim-tester (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; unrecognized get op: (set! v1 process-drawable) parent was UNKNOWN
; )
(deftype DISP_LIST-bank (basic)
((TV_SPACING int32 :offset-assert 4)
(BORDER_WIDTH int32 :offset-assert 8)
(BORDER_HEIGHT int32 :offset-assert 12)
(MAX_LINES int32 :offset-assert 16)
(CHAR_WIDTH int32 :offset-assert 20)
(INC_DELAY int32 :offset-assert 24)
(BORDER_LINES int32 :offset-assert 28)
(CXOFF int32 :offset-assert 32)
(CYOFF int32 :offset-assert 36)
(BXOFF int32 :offset-assert 40)
(BYOFF int32 :offset-assert 44)
)
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030
)
; (deftype list-control (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; bad get label
; )
(deftype anim-tester-bank (basic)
((ANIM_SPEED float :offset-assert 4)
(BLEND float :offset-assert 8)
(OBJECT_LIST_X int32 :offset-assert 12)
(OBJECT_LIST_Y int32 :offset-assert 16)
(OBJECT_LIST_MIN_WIDTH int32 :offset-assert 20)
(ANIM_LIST_X int32 :offset-assert 24)
(ANIM_LIST_Y int32 :offset-assert 28)
(ANIM_LIST_MIN_WIDTH int32 :offset-assert 32)
(PICK_LIST_X int32 :offset-assert 36)
(PICK_LIST_Y int32 :offset-assert 40)
(PICK_LIST_MIN_WIDTH int32 :offset-assert 44)
(EDIT_LIST_X int32 :offset-assert 48)
(EDIT_LIST_Y int32 :offset-assert 52)
(EDIT_STATS_X int32 :offset-assert 56)
(EDIT_LIST_MIN_WIDTH int32 :offset-assert 60)
(EDIT_PICK_X int32 :offset-assert 64)
)
:method-count-assert 9
:size-assert #x44
:flag-assert #x900000044
)
; (deftype list-field (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; bad get label
; )
(deftype anim-tester (process-drawable)
((flags int32 :offset-assert 176)
(obj-list glst-list :inline :offset-assert 180)
(current-obj string :offset-assert 196)
(speed int32 :offset-assert 200)
(list-con list-control :inline :offset-assert 204)
(pick-con list-control :inline :offset-assert 284)
(item-field int64 :offset-assert 368)
(inc-delay int32 :offset-assert 376)
(inc-timer int32 :offset-assert 380)
(edit-mode int32 :offset-assert 384)
(old-mode int32 :offset-assert 388)
(anim-speed float :offset-assert 392)
(anim-gspeed float :offset-assert 396)
(anim-first float :offset-assert 400)
(anim-last float :offset-assert 404)
)
:method-count-assert 20
:size-assert #x198
:heap-base #x130
:flag-assert #x1401300198
)
; (deftype DISP_LIST-bank (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; bad get label
; )
(deftype anim-test-obj (glst-named-node)
((obj-art-group art-group :offset-assert 12)
(seq-list glst-list :inline :offset-assert 16)
(flags int32 :offset-assert 32)
(mesh-geo merc-ctrl :offset-assert 36)
(joint-geo art-joint-geo :offset-assert 40)
(list-con list-control :inline :offset-assert 44)
(parent uint32 :offset-assert 124)
(anim-index int32 :offset-assert 128)
(anim-hindex int32 :offset-assert 132)
(seq-index int32 :offset-assert 136)
(seq-hindex int32 :offset-assert 140)
)
:method-count-assert 9
:size-assert #x90
:flag-assert #x900000090
(:methods
(new (symbol type int string basic) _type_ 0)
)
)
; (deftype anim-tester-bank (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; bad get label
; )
(deftype anim-test-sequence (glst-named-node)
((item-list glst-list :inline :offset-assert 12)
(playing-item int32 :offset-assert 28)
(flags int32 :offset-assert 32)
(list-con list-control :inline :offset-assert 36)
(parent anim-test-obj :offset-assert 116)
)
:method-count-assert 9
:size-assert #x78
:flag-assert #x900000078
(:methods
(new (symbol type int string) _type_ 0)
)
)
; (deftype anim-test-obj (UNKNOWN)
; ()
; :method-count-assert 0
; :size-assert #x0
; :flag-assert #x0
; ;; bad get label
; )
(deftype anim-test-seq-item (glst-named-node)
((speed int32 :offset-assert 12)
(blend int32 :offset-assert 16)
(first-frame float :offset-assert 20)
(last-frame float :offset-assert 24)
(num-frames float :offset-assert 28)
(artist-base float :offset-assert 32)
(flags int32 :offset-assert 36)
(parent anim-test-sequence :offset-assert 40)
)
:method-count-assert 9
:size-assert #x2c
:flag-assert #x90000002c
(:methods
(new (symbol type int string) _type_ 0)
)
)
;; - Functions
(define-extern anim-test-edit-sequence-list-handler function)
(define-extern anim-test-seq-mark-as-edited function)
(define-extern anim-tester-start function)
(define-extern anim-tester-add-newobj function)
(define-extern anim-tester-stop function)
(define-extern initialize-anim-tester function)
(define-extern anim-tester-save-object-seqs function)
(define-extern anim-tester-num-print (function symbol float none))
(define-extern anim-test-obj-list-handler function)
(define-extern anim-tester-standard-event-handler function)
(define-extern anim-tester-reset function)
(define-extern anim-tester-get-playing-item function)
(define-extern anim-tester-update-anim-info function)
(define-extern anim-tester-interface function)
(define-extern display-list-control function)
(define-extern anim-test-anim-list-handler function)
(define-extern anim-test-sequence-list-handler function)
(define-extern anim-tester-disp-frame-num function)
(define-extern anim-test-seq-item-copy! function)
(define-extern anim-tester-adjust-frame function)
(define-extern anim-test-edit-seq-insert-item function)
(define-extern anim-tester-pick-item-setup function)
(define-extern anim-tester-save-all-objects function)
(define-extern anim-tester-real-post function)
(define-extern anim-test-obj-item-valid? function)
(define-extern anim-test-obj-init function)
(define-extern anim-test-sequence-init function)
(define-extern anim-test-obj-remove-invalid function)
(define-extern anim-tester-post function)
(define-extern anim-tester-string-get-frame!! function)
(define-extern anim-tester-load-object-seqs function)
(define-extern anim-tester-add-object function)
(define-extern anim-tester-set-name function)
(define-extern anim-tester-add-sequence function)
(define-extern anim-test-edit-sequence-list-handler (function int list-control symbol))
(define-extern anim-test-seq-mark-as-edited (function anim-test-sequence none))
(define-extern anim-tester-start (function none))
(define-extern anim-tester-add-newobj (function anim-tester string art-group none))
(define-extern anim-tester-stop (function none))
(define-extern initialize-anim-tester (function none :behavior anim-tester))
(define-extern anim-tester-save-object-seqs (function anim-test-obj none))
(define-extern anim-tester-num-print (function basic float none))
(define-extern anim-test-obj-list-handler (function int list-control symbol))
(define-extern anim-tester-standard-event-handler (function process int symbol event-message-block object :behavior anim-tester))
(define-extern anim-tester-reset (function none :behavior anim-tester))
(define-extern anim-tester-get-playing-item (function anim-test-sequence anim-test-seq-item))
(define-extern anim-tester-update-anim-info (function anim-test-seq-item none :behavior anim-tester))
(define-extern anim-tester-interface (function none :behavior anim-tester))
(define-extern display-list-control (function list-control none))
(define-extern anim-test-anim-list-handler (function int list-control symbol))
(define-extern anim-test-sequence-list-handler (function int list-control symbol))
(define-extern anim-tester-disp-frame-num (function string float float font-context none))
(define-extern anim-test-seq-item-copy! (function anim-test-seq-item anim-test-seq-item none))
(define-extern anim-tester-adjust-frame (function float float none))
(define-extern anim-test-edit-seq-insert-item (function anim-test-seq-item anim-test-sequence none))
(define-extern anim-tester-pick-item-setup (function anim-test-seq-item anim-test-sequence none))
(define-extern anim-tester-save-all-objects (function anim-tester none))
(define-extern anim-tester-real-post (function none :behavior anim-tester))
(define-extern anim-test-obj-item-valid? (function anim-test-obj anim-test-seq-item symbol))
(define-extern anim-test-obj-init (function anim-test-obj list-control none))
(define-extern anim-test-sequence-init (function anim-test-sequence anim-test-obj none))
(define-extern anim-test-obj-remove-invalid (function anim-test-obj none))
(define-extern anim-tester-post (function none :behavior anim-tester))
(define-extern anim-tester-string-get-frame!! (function list-field string none))
(define-extern anim-tester-load-object-seqs (function symbol))
(define-extern anim-tester-add-object (function string none))
(define-extern anim-tester-set-name (function string object))
(define-extern anim-tester-add-sequence (function string none))
;; - Unknowns
;;(define-extern *anim-tester* object) ;; unknown type
;;(define-extern *ANIM_TESTER-bank* object) ;; unknown type
;;(define-extern anim-tester-process object) ;; unknown type
;;(define-extern anim-test-field-highlight-lw object) ;; unknown type
;;(define-extern *DISP_LIST-bank* object) ;; unknown type
(define-extern *anim-tester* (pointer anim-tester)) ;; unknown type
(define-extern *ANIM_TESTER-bank* anim-tester-bank) ;; unknown type
(define-extern anim-tester-process (state none)) ;; unknown type
(define-extern anim-test-field-highlight-lw (inline-array list-field))
(define-extern *DISP_LIST-bank* DISP_LIST-bank) ;; unknown type
(define-extern *debug-menu-context* debug-menu-context)
@@ -572,6 +572,12 @@
[3, "(function basic symbol)"],
[2, "(function process symbol)"]
],
"anim-tester": [
[11, "(function none :behavior anim-tester)"],
[12, "(function none :behavior anim-tester)"],
[13, "(function none :behavior anim-tester)"]
],
"placeholder-do-not-add-below": []
}
@@ -378,7 +378,7 @@
"ocean-interp-wave",
// anim-tester BUG
"anim-tester-add-newobj",
//"anim-tester-add-newobj",
// nav-enemy BUG
"(anon-function 28 nav-enemy)",
@@ -1275,6 +1275,15 @@
["L37", "uint64", true],
["L38", "uint64", true]
],
"anim-tester": [
["L615", "_auto_", true],
["L592", "_auto_", true],
["L509", "(inline-array list-field)", true, 12],
["L123", "_lambda_", true],
["L119", "_lambda_", true],
["L86", "_lambda_", true]
],
// please do not add things after this entry! git is dumb.
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
@@ -560,6 +560,23 @@
[80, "vector"],
[96, "vector"]
],
"anim-tester-save-object-seqs": [
[16, "file-stream"]
],
"anim-test-obj-list-handler": [[16, "event-message-block"]],
"anim-test-anim-list-handler": [[16, "event-message-block"]],
"anim-test-sequence-list-handler": [[16, "event-message-block"]],
"anim-test-edit-sequence-list-handler": [[16, "event-message-block"]],
"anim-test-edit-seq-insert-item": [[16, "event-message-block"]],
"anim-test-edit-sequence-list-handler": [
[112, "event-message-block"],
[16, "font-context"]
],
"anim-tester-add-newobj": [[16, "event-message-block"]],
"anim-tester-start": [[16, "event-message-block"]],
"anim-tester-add-sequence": [[16, "event-message-block"]],
"placeholder-do-not-add-below!": []
}
@@ -1266,6 +1266,225 @@
[23, "v1", "float"],
[36, "v1", "uint"]
],
"(method 0 anim-test-obj)": [
[9, "s4", "anim-test-obj"],
[10, "s4", "anim-test-obj"],
[13, "s4", "anim-test-obj"],
[15, "s4", "anim-test-obj"]
],
"(method 0 anim-test-sequence)": [
[8, "s5", "anim-test-sequence"],
[11, "s5", "anim-test-sequence"],
[13, "s5", "anim-test-sequence"]
],
"(method 0 anim-test-seq-item)": [
[8, "v1", "anim-test-seq-item"],
[10, "v0", "anim-test-seq-item"],
[11, "v0", "anim-test-seq-item"],
[14, "v0", "anim-test-seq-item"],
[17, "v0", "anim-test-seq-item"]
],
"(method 3 anim-tester)": [
[12, "s5", "anim-test-obj"],
[15, "s5", "anim-test-obj"],
[148, "s5", "anim-test-obj"],
[150, "s5", "anim-test-obj"],
[22, "s4", "anim-test-sequence"],
[28, "s4", "anim-test-sequence"],
[38, "s4", "anim-test-sequence"],
[48, "s4", "anim-test-sequence"],
[59, "s4", "anim-test-sequence"],
[137, "s4", "anim-test-sequence"],
[139, "s4", "anim-test-sequence"],
[66, "s3", "anim-test-seq-item"],
[70, "s3", "anim-test-seq-item"],
[75, "s3", "anim-test-seq-item"],
[79, "s3", "anim-test-seq-item"],
[88, "s3", "anim-test-seq-item"],
[94, "s3", "anim-test-seq-item"],
[104, "s3", "anim-test-seq-item"],
[114, "s3", "anim-test-seq-item"],
[126, "s3", "anim-test-seq-item"],
[128, "s3", "anim-test-seq-item"]
],
"anim-test-obj-item-valid?": [
[5, "s5", "anim-test-sequence"],
[12, "s5", "anim-test-sequence"],
[17, "s5", "anim-test-sequence"],
[36, "s5", "anim-test-sequence"],
[38, "s5", "anim-test-sequence"],
[20, "v1", "anim-test-seq-item"],
[26, "v1", "anim-test-seq-item"],
[28, "v1", "anim-test-seq-item"]
],
"anim-test-obj-remove-invalid": [
[84, "v1", "anim-test-sequence"],
[88, "v1", "anim-test-sequence"],
[90, "v1", "anim-test-sequence"],
[92, "v1", "anim-test-sequence"],
[93, "v1", "anim-test-sequence"],
[91, "a0", "anim-test-sequence"],
[5, "s5", "anim-test-sequence"],
[8, "s5", "anim-test-sequence"],
[11, "s5", "anim-test-sequence"],
[30, "s5", "anim-test-sequence"],
[44, "s5", "anim-test-sequence"],
[51, "s5", "anim-test-sequence"],
[58, "s5", "anim-test-sequence"],
[67, "s5", "anim-test-sequence"],
[70, "s4", "anim-test-sequence"],
[71, "s5", "anim-test-sequence"],
[72, "s5", "anim-test-sequence"],
[15, "s3", "anim-test-seq-item"],
[18, "s3", "anim-test-seq-item"],
[24, "s3", "anim-test-seq-item"],
[31, "s3", "anim-test-seq-item"],
[34, "s2", "anim-test-seq-item"],
[35, "s3", "anim-test-seq-item"],
[36, "s3", "anim-test-seq-item"],
[61, "a0", "anim-test-seq-item"]
],
"anim-tester-reset": [
[14, "v1", "anim-test-obj"],
[30, "v1", "anim-test-obj"],
[33, "v1", "anim-test-obj"],
[36, "v1", "anim-test-obj"],
[43, "v1", "anim-test-obj"],
[[50, 53], "v1", "anim-test-obj"]
],
"anim-tester-save-all-objects": [
[[4, 19], "gp", "anim-test-obj"],
[17, "v1", "anim-test-obj"]
],
"anim-tester-save-object-seqs": [
[63, "s5", "anim-test-sequence"],
[69, "s5", "anim-test-sequence"],
[65, "s5", "anim-test-sequence"],
[75, "s5", "anim-test-sequence"],
[79, "s5", "anim-test-sequence"],
[133, "s5", "anim-test-sequence"],
[141, "s5", "anim-test-sequence"],
[142, "v1", "anim-test-sequence"],
[143, "s5", "anim-test-sequence"],
[83, "s4", "anim-test-seq-item"],
[89, "s4", "anim-test-seq-item"],
[91, "s4", "anim-test-seq-item"],
[92, "s4", "anim-test-seq-item"],
[96, "s4", "anim-test-seq-item"],
[105, "s4", "anim-test-seq-item"],
[111, "s4", "anim-test-seq-item"],
[120, "s4", "anim-test-seq-item"],
[121, "v1", "anim-test-seq-item"],
[122, "s4", "anim-test-seq-item"]
],
"anim-test-obj-list-handler": [
[25, "s5", "anim-test-obj"],
[31, "s5", "anim-test-obj"],
[110, "s5", "anim-test-obj"],
[166, "s5", "anim-test-obj"],
[112, "v1", "anim-tester"]
],
"anim-test-anim-list-handler": [
[2, "s5", "anim-test-obj"],
[25, "s5", "anim-test-obj"],
[65, "s5", "anim-test-obj"],
[227, "s5", "anim-test-obj"],
[90, "v1", "anim-test-obj"],
[91, "v1", "anim-test-obj"],
[100, "v1", "anim-test-obj"],
[105, "v1", "anim-test-obj"],
[130, "v1", "anim-test-obj"],
[131, "v1", "anim-test-obj"],
[140, "v1", "anim-test-obj"],
[145, "v1", "anim-test-obj"],
[167, "v1", "anim-test-obj"],
[169, "v1", "anim-test-obj"],
[171, "v1", "anim-test-obj"],
[173, "v1", "anim-test-obj"]
],
"anim-test-sequence-list-handler": [
[2, "s5", "anim-test-sequence"],
[25, "s5", "anim-test-sequence"],
[31, "s5", "anim-test-sequence"],
[71, "s5", "anim-test-sequence"],
[231, "s5", "anim-test-sequence"],
[96, "v1", "anim-test-sequence"],
[97, "v1", "anim-test-sequence"],
[106, "v1", "anim-test-sequence"],
[111, "v1", "anim-test-sequence"],
[136, "v1", "anim-test-sequence"],
[137, "v1", "anim-test-sequence"],
[146, "v1", "anim-test-sequence"],
[151, "v1", "anim-test-sequence"]
],
"anim-test-edit-sequence-list-handler": [
[[122, 965], "s4", "anim-test-sequence"],
[129, "v1", "glst-named-node"],
[[128, 909], "gp", "anim-test-seq-item"],
[380, "v0", "anim-test-obj"],
[381, "v0", "anim-test-obj"],
[382, "v0", "anim-test-obj"],
[389, "v0", "anim-test-obj"],
[483, "s3", "anim-test-seq-item"],
[491, "s3", "anim-test-seq-item"],
[502, "s3", "anim-test-seq-item"]
],
"anim-tester-interface": [
[[34, 48], "gp", "anim-test-obj"],
[[95, 109], "gp", "anim-test-obj"],
[[156, 160], "v1", "anim-test-obj"],
[[162, 165], "v1", "anim-test-sequence"]
],
"anim-tester-get-playing-item": [
[7, "v0", "anim-test-seq-item"],
[[5, 22], "s5", "anim-test-seq-item"],
[21, "v0", "anim-test-seq-item"],
[25, "v0", "anim-test-seq-item"]
],
"anim-tester-add-newobj": [
[[2, 185], "s2", "anim-test-obj"],
[[70, 193], "s5", "anim-test-obj"],
[149, "v1", "anim-test-sequence"],
[154, "v1", "anim-test-sequence"],
[160, "v1", "anim-test-sequence"],
[164, "a0", "art-joint-anim"],
[170, "a0", "art-joint-anim"]
],
"anim-tester-start": [
[20, "t9", "(function process function none)"]
],
"anim-tester-set-name": [
[[34, 51], "s3", "anim-test-obj"],
[[40, 63], "s5", "anim-test-sequence"]
],
"anim-tester-add-sequence": [
[[33, 102], "s5", "anim-test-obj"]
],
"(anon-function 11 anim-tester)": [
[[23, 113], "s4", "anim-test-obj"],
[[83, 338], "gp", "anim-test-sequence"],
[[123, 187], "s4", "art-joint-anim"]
],
"(method 10 bsp-header)": [
[[51, 61], "a0", "(pointer uint128)"],
@@ -2554,6 +2554,41 @@
"sv-64": "spool-sound"
}
},
"(method 3 anim-tester)": {
"vars": {
"s5-0": ["s5-0", "anim-test-obj"],
"s4-0": ["s4-0", "anim-test-sequence"],
"s3-0": ["s3-0", "anim-test-seq-item"]
}
},
"anim-test-obj-item-valid?": {
"vars": {
"s5-0": ["s5-0", "anim-test-sequence"]
}
},
"anim-test-obj-remove-invalid": {
"vars": {
//"s5-0": ["s5-0", "anim-test-sequence"],
"v1-31": ["v1-31", "anim-test-sequence"],
"s3-0": ["s3-0", "anim-test-seq-item"],
"s2-0": ["s2-0", "anim-test-seq-item"]
}
},
"anim-tester-reset": {
"vars": {
"v1-1": ["v1-1", "anim-test-obj"]
}
},
"anim-tester-save-object-seqs": {
"vars": {
"s4-2": ["s4-2", "anim-test-seq-item"]
}
},
"sprite-setup-header": {
"args": ["hdr", "num-sprites"]
+3 -2
View File
@@ -28,6 +28,7 @@
)
)
(declare-type effect-control basic)
(deftype joint-control (basic)
((status uint16 :offset-assert 4)
(allocated-length int16 :offset-assert 6)
@@ -36,8 +37,8 @@
(active-channels int32 :offset-assert 24)
(generate-frame-function basic :offset-assert 28)
(prebind-function basic :offset-assert 32)
(postbind-function basic :offset-assert 36)
(effect basic :offset-assert 40)
(postbind-function function :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)
+1 -1
View File
@@ -15,6 +15,6 @@
(define-perm *camera-init-mat* matrix #f)
(define-perm *camera* camera-master #f)
(define-perm *camera-combiner* camera-combiner #f)
(define-perm *camera-orbit-target* process-drawable #f)
(define-perm *camera-orbit-target* (pointer process-drawable) #f)
(define-extern position-in-front-of-camera! (function vector float float vector))
+1 -1
View File
@@ -296,7 +296,7 @@
(:methods
(new (symbol type process art-joint-geo) _type_ 0)
(dummy-9 (_type_) (pointer int8) 9)
(dummy-10 (_type_ int int) int 10)
(dummy-10 (_type_ int) int 10)
(dummy-11 (_type_ pointer) int 11)
)
)
+4 -1
View File
@@ -6,7 +6,8 @@
;; dgos: GAME, ENGINE
;; This whole linked list system is hellspawn! Whoever made this is insane and a danger to society
;; Very very weird linked list system.
;; TODO add examples because this is extremely confusing.
(when *debug-segment*
@@ -33,6 +34,7 @@
(tailpred glst-node :offset-assert 8)
(numelem int32 :offset-assert 12)
)
:allow-misaligned
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
@@ -101,6 +103,7 @@
(defun-debug glst-set-name! ((node glst-named-node) (name string))
"Set the name of the node"
(declare (inline))
(set! (-> node privname) name)
)
+1 -1
View File
@@ -156,7 +156,7 @@
(let ((max-len 0))
(glst-iterate-named-list list node
(let ((len ((method-of-type string length) (-> node privname)))) ;; TODO method call
(let ((len (length (-> node privname))))
(when (< max-len len)
(set! max-len len)
)
@@ -51,8 +51,8 @@
(active-channels int32 :offset-assert 24)
(generate-frame-function basic :offset-assert 28)
(prebind-function basic :offset-assert 32)
(postbind-function basic :offset-assert 36)
(effect basic :offset-assert 40)
(postbind-function function :offset-assert 36)
(effect effect-control :offset-assert 40)
(channel joint-control-channel 3 :inline :offset-assert 48)
(frame-group0 art-joint-anim :offset 60)
(frame-num0 float :offset 64)
@@ -19,8 +19,8 @@
;; definition (perm) for symbol *camera-combiner*, type camera-combiner
(define-perm *camera-combiner* camera-combiner #f)
;; definition (perm) for symbol *camera-orbit-target*, type process-drawable
(define-perm *camera-orbit-target* process-drawable #f)
;; definition (perm) for symbol *camera-orbit-target*, type (pointer process-drawable)
(define-perm *camera-orbit-target* (pointer process-drawable) #f)
;; failed to figure out what this is:
0
@@ -450,7 +450,7 @@
(:methods
(new (symbol type process art-joint-geo) _type_ 0)
(dummy-9 (_type_) (pointer int8) 9)
(dummy-10 (_type_ int int) int 10)
(dummy-10 (_type_ int) int 10)
(dummy-11 (_type_ pointer) int 11)
)
)