Files
jak-project/test/decompiler/reference/engine/debug/anim-tester_REF.gc
T
Tyler Wilding 2cb00f4a02 decomp: anim-tester and a bunch of progress on files that are blocked (#884)
* blocked: `puffer` has state decomp issues

* blocked: decomp crash when adding process-drawble cast in `helix-water`

* blocked: `green-eco-lurker` no nice way to cast value out of EMB

* decomp: started on `citadel-sages`

* decomp: `seagull` blocked state decomp

* blocked: `sunken-pipegame` runs into handle related issues

* blocked: `snow-ram` and `snow-ram-boss` state decomp

* decomp: `rolling-race-ring` blocked, handle casts

* blocked: state decomp in `part-tester`

* decomp: started `joint-exploder`

* blocked: `anim-tester` has rare cmove-#f-zero usage

* decomp: I lied! `anim-tester` finished

* config: update banned list
2021-10-10 19:53:19 -04:00

3956 lines
127 KiB
Common Lisp
Vendored

;;-*-Lisp-*-
(in-package goal)
;; this file is debug only
(when *debug-segment*
;; definition of type list-control
(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)
(return-int int32 :offset-assert 76)
)
:allow-misaligned :method-count-assert 9
:size-assert #x50
:flag-assert #x900000050
)
;; definition for method 3 of type list-control
(defmethod inspect list-control ((obj list-control))
(format #t "[~8x] ~A~%" obj 'list-control)
(format #t "~Tlistfunc: ~A~%" (-> obj listfunc))
(format #t "~Tlist-owner: #x~X~%" (-> obj list-owner))
(format #t "~Ttop: ~D~%" (-> obj top))
(format #t "~Tleft: ~D~%" (-> obj left))
(format #t "~Tlist: #<glst-list @ #x~X>~%" (-> obj list))
(format #t "~Tthe-node: #<glst-node @ #x~X>~%" (-> obj the-node))
(format #t "~Ttop-index: ~D~%" (-> obj top-index))
(format #t "~Tthe-index: ~D~%" (-> obj the-index))
(format #t "~Tthe-disp-line: ~D~%" (-> obj the-disp-line))
(format #t "~Thighlight-index: ~D~%" (-> obj highlight-index))
(format #t "~Tcurrent-index: ~D~%" (-> obj current-index))
(format #t "~Tnumlines: ~D~%" (-> obj numlines))
(format #t "~Tlines-to-disp: ~D~%" (-> obj lines-to-disp))
(format #t "~Tcharswide: ~D~%" (-> obj charswide))
(format #t "~Thighlight-disp-line: ~D~%" (-> obj highlight-disp-line))
(format #t "~Tfield-id: ~D~%" (-> obj field-id))
(format #t "~Txpos: ~D~%" (-> obj xpos))
(format #t "~Typos: ~D~%" (-> obj ypos))
(format #t "~Tuser-info: ~D~%" (-> obj user-info))
(format #t "~Treturn-int: ~D~%" (-> obj return-int))
obj
)
;; definition of type list-field
(deftype list-field (structure)
((left int32 :offset-assert 0)
(width int32 :offset-assert 4)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
;; definition for method 3 of type list-field
(defmethod inspect list-field ((obj list-field))
(format #t "[~8x] ~A~%" obj 'list-field)
(format #t "~Tleft: ~D~%" (-> obj left))
(format #t "~Twidth: ~D~%" (-> obj width))
obj
)
;; definition of type DISP_LIST-bank
(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
)
;; definition for method 3 of type DISP_LIST-bank
(defmethod inspect DISP_LIST-bank ((obj DISP_LIST-bank))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~TV_SPACING: ~D~%" (-> obj TV_SPACING))
(format #t "~TBORDER_WIDTH: ~D~%" (-> obj BORDER_WIDTH))
(format #t "~TBORDER_HEIGHT: ~D~%" (-> obj BORDER_HEIGHT))
(format #t "~TMAX_LINES: ~D~%" (-> obj MAX_LINES))
(format #t "~TCHAR_WIDTH: ~D~%" (-> obj CHAR_WIDTH))
(format #t "~TINC_DELAY: ~D~%" (-> obj INC_DELAY))
(format #t "~TBORDER_LINES: ~D~%" (-> obj BORDER_LINES))
(format #t "~TCXOFF: ~D~%" (-> obj CXOFF))
(format #t "~TCYOFF: ~D~%" (-> obj CYOFF))
(format #t "~TBXOFF: ~D~%" (-> obj BXOFF))
(format #t "~TBYOFF: ~D~%" (-> obj BYOFF))
obj
)
;; definition for symbol *DISP_LIST-bank*, type DISP_LIST-bank
(define
*DISP_LIST-bank*
(new 'static 'DISP_LIST-bank
:TV_SPACING 8
:BORDER_WIDTH 4
:BORDER_HEIGHT 4
:MAX_LINES 12
:CHAR_WIDTH 10
:INC_DELAY 20
:BORDER_LINES 3
)
)
;; definition for function display-list-control
;; INFO: Return type mismatch pointer vs none.
(defun display-list-control ((arg0 list-control))
(when (< (-> arg0 current-index) 0)
(set! (-> arg0 current-index) 0)
0
)
(if (>= (-> arg0 current-index) (glst-num-elements (-> arg0 list)))
(set! (-> arg0 current-index) -1)
)
(when (< (-> arg0 highlight-index) 0)
(set! (-> arg0 highlight-index) 0)
0
)
(if (>= (-> arg0 highlight-index) (glst-num-elements (-> arg0 list)))
(set! (-> arg0 highlight-index) (+ (glst-num-elements (-> arg0 list)) -1))
)
(set! (-> arg0 the-index) (-> arg0 highlight-index))
(set!
(-> arg0 the-node)
(glst-get-node-by-index (-> arg0 list) (-> arg0 highlight-index))
)
(when (not ((-> arg0 listfunc) 1 arg0))
(set! (-> arg0 the-index) 0)
(let ((v1-12 (-> arg0 list)))
"return the start of the list"
(set! (-> arg0 the-node) (-> v1-12 head))
)
(while (let ((v1-22 (-> arg0 the-node)))
"is this node the end of the list. #t = end"
(not (not (-> v1-22 next)))
)
(when ((-> arg0 listfunc) 1 arg0)
(set! (-> arg0 highlight-index) (-> arg0 the-index))
(goto cfg-18)
)
(+! (-> arg0 the-index) 1)
(let ((v1-20 (-> arg0 the-node)))
"return the next node in the list"
(set! (-> arg0 the-node) (-> v1-20 next))
)
)
(set! (-> arg0 highlight-index) 0)
0
)
(label cfg-18)
(set! (-> arg0 the-index) (-> arg0 highlight-index))
(set!
(-> arg0 the-node)
(glst-get-node-by-index (-> arg0 list) (-> arg0 the-index))
)
((-> arg0 listfunc) 4 arg0)
(let ((s5-2 #f)
(s4-0 #f)
)
(set! (-> arg0 numlines) 0)
(set! (-> arg0 charswide) 0)
(set! (-> arg0 the-index) 0)
(set! (-> arg0 the-disp-line) 0)
(let ((v1-29 (-> arg0 list)))
"return the start of the list"
(set! (-> arg0 the-node) (-> v1-29 head))
)
(while (let ((v1-52 (-> arg0 the-node)))
"is this node the end of the list. #t = end"
(not (not (-> v1-52 next)))
)
(when ((-> arg0 listfunc) 1 arg0)
(if (and (not s5-2) (>= (-> arg0 the-index) (-> arg0 top-index)))
(set! s5-2 #t)
)
(when (and (not s4-0) (>= (-> arg0 the-index) (-> arg0 highlight-index)))
(set! s4-0 #t)
(set! (-> arg0 highlight-disp-line) (-> arg0 the-disp-line))
)
((-> arg0 listfunc) 2 arg0)
(if (< (-> arg0 charswide) (-> arg0 return-int))
(set! (-> arg0 charswide) (-> arg0 return-int))
)
(if s5-2
(+! (-> arg0 the-disp-line) 1)
)
(+! (-> arg0 numlines) 1)
)
(+! (-> arg0 the-index) 1)
(let ((v1-50 (-> arg0 the-node)))
"return the next node in the list"
(set! (-> arg0 the-node) (-> v1-50 next))
)
)
)
(set!
(-> arg0 lines-to-disp)
(if (< (-> *DISP_LIST-bank* MAX_LINES) (-> arg0 numlines))
(-> *DISP_LIST-bank* MAX_LINES)
(-> arg0 numlines)
)
)
(if (> (-> arg0 lines-to-disp) 0)
(-> arg0 lines-to-disp)
1
)
(let* ((s4-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s5-3 (-> s4-1 base))
)
(draw-sprite2d-xy
s4-1
(-> arg0 left)
(-> arg0 top)
(+
(* (-> arg0 charswide) (-> *DISP_LIST-bank* CHAR_WIDTH))
(* (-> *DISP_LIST-bank* BORDER_WIDTH) 2)
)
(+
(* (+ (-> arg0 lines-to-disp) 1) (-> *DISP_LIST-bank* TV_SPACING))
(* (-> *DISP_LIST-bank* BORDER_WIDTH) 2)
)
(new 'static 'rgba :a #x40)
)
(let ((a3-6 (-> s4-1 base)))
(let ((v1-72 (the-as object (-> s4-1 base))))
(set!
(-> (the-as dma-packet v1-72) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-72) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-72) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-72) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s5-3
(the-as (pointer dma-tag) a3-6)
)
)
)
(set! (-> arg0 xpos) (+ (-> arg0 left) (-> *DISP_LIST-bank* BORDER_WIDTH)))
(set! (-> arg0 ypos) (+ (-> arg0 top) (-> *DISP_LIST-bank* BORDER_HEIGHT)))
((-> arg0 listfunc) 3 arg0)
(cond
((> (-> arg0 lines-to-disp) 0)
(cond
((< (-> arg0 highlight-disp-line) (-> *DISP_LIST-bank* BORDER_LINES))
(let
((s5-4
(- (-> *DISP_LIST-bank* BORDER_LINES) (-> arg0 highlight-disp-line))
)
)
(set!
(-> arg0 the-node)
(glst-get-node-by-index (-> arg0 list) (-> arg0 top-index))
)
(set! (-> arg0 the-index) (-> arg0 top-index))
(let ((v1-88 (-> arg0 the-node)))
"is this node the start of the list. #t = start"
(when (not (not (-> v1-88 prev)))
(while #t
(let ((v1-92 (-> arg0 the-node)))
"return the previous node in the list"
(let ((v1-93 (-> v1-92 prev)))
(let ((a0-41 v1-93))
"is this node the start of the list. #t = start"
(if (not (-> a0-41 prev))
(goto cfg-61)
)
)
(set! (-> arg0 the-node) v1-93)
)
)
(+! (-> arg0 the-index) -1)
(when ((-> arg0 listfunc) 1 arg0)
(set! (-> arg0 top-index) (-> arg0 the-index))
(+! s5-4 -1)
(if (<= s5-4 0)
(goto cfg-61)
)
)
)
)
)
)
(label cfg-61)
)
((>=
(-> arg0 highlight-disp-line)
(- (-> *DISP_LIST-bank* MAX_LINES) (-> *DISP_LIST-bank* BORDER_LINES))
)
(let
((s5-5
(-
(-> arg0 highlight-disp-line)
(- (-> *DISP_LIST-bank* MAX_LINES) (-> *DISP_LIST-bank* BORDER_LINES))
)
)
)
(set!
(-> arg0 the-node)
(glst-get-node-by-index (-> arg0 list) (-> arg0 top-index))
)
(set! (-> arg0 the-index) (-> arg0 top-index))
(let ((v1-107 (-> arg0 the-node)))
"is this node the end of the list. #t = end"
(when (not (not (-> v1-107 next)))
(while #t
(let ((v1-111 (-> arg0 the-node)))
"return the next node in the list"
(let ((v1-112 (-> v1-111 next)))
(let ((a0-55 v1-112))
"is this node the end of the list. #t = end"
(if (not (-> a0-55 next))
(goto cfg-77)
)
)
(set! (-> arg0 the-node) v1-112)
)
)
(+! (-> arg0 the-index) 1)
(when ((-> arg0 listfunc) 1 arg0)
(set! (-> arg0 top-index) (-> arg0 the-index))
(+! s5-5 -1)
(if (<= s5-5 0)
(goto cfg-77)
)
)
)
)
)
)
)
)
(label cfg-77)
(set! (-> arg0 the-disp-line) 0)
(set! (-> arg0 the-index) (-> arg0 top-index))
(set!
(-> arg0 the-node)
(glst-get-node-by-index (-> arg0 list) (-> arg0 top-index))
)
(while (let ((v1-135 (-> arg0 the-node)))
"is this node the end of the list. #t = end"
(not
(or
(not (-> v1-135 next))
(>= (-> arg0 the-disp-line) (-> *DISP_LIST-bank* MAX_LINES))
)
)
)
(when ((-> arg0 listfunc) 1 arg0)
(set!
(-> arg0 xpos)
(+ (-> arg0 left) (-> *DISP_LIST-bank* BORDER_WIDTH))
)
(set!
(-> arg0 ypos)
(+
(-> arg0 top)
(-> *DISP_LIST-bank* BORDER_HEIGHT)
(* (+ (-> arg0 the-disp-line) 1) (-> *DISP_LIST-bank* TV_SPACING))
)
)
((-> arg0 listfunc) 0 arg0)
(+! (-> arg0 the-disp-line) 1)
)
(+! (-> arg0 the-index) 1)
(let ((v1-133 (-> arg0 the-node)))
"return the next node in the list"
(set! (-> arg0 the-node) (-> v1-133 next))
)
)
)
(else
(let* ((s4-2 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s5-6 (-> s4-2 base))
)
(draw-string-xy
"**NONE**"
s4-2
(+ (-> arg0 left) (-> *DISP_LIST-bank* BORDER_WIDTH))
(+
(-> arg0 top)
(-> *DISP_LIST-bank* BORDER_HEIGHT)
(-> *DISP_LIST-bank* TV_SPACING)
)
(font-color dim-white)
(font-flags shadow kerning)
)
(let ((a3-12 (-> s4-2 base)))
(let ((v1-147 (the-as object (-> s4-2 base))))
(set!
(-> (the-as dma-packet v1-147) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-147) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-147) vif1) (new 'static 'vif-tag))
(set! (-> s4-2 base) (&+ (the-as pointer v1-147) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s5-6
(the-as (pointer dma-tag) a3-12)
)
)
)
)
)
(none)
)
;; definition of type anim-tester-bank
(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
)
;; definition for method 3 of type anim-tester-bank
(defmethod inspect anim-tester-bank ((obj anim-tester-bank))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~TANIM_SPEED: ~f~%" (-> obj ANIM_SPEED))
(format #t "~TBLEND: ~f~%" (-> obj BLEND))
(format #t "~TOBJECT_LIST_X: ~D~%" (-> obj OBJECT_LIST_X))
(format #t "~TOBJECT_LIST_Y: ~D~%" (-> obj OBJECT_LIST_Y))
(format #t "~TOBJECT_LIST_MIN_WIDTH: ~D~%" (-> obj OBJECT_LIST_MIN_WIDTH))
(format #t "~TANIM_LIST_X: ~D~%" (-> obj ANIM_LIST_X))
(format #t "~TANIM_LIST_Y: ~D~%" (-> obj ANIM_LIST_Y))
(format #t "~TANIM_LIST_MIN_WIDTH: ~D~%" (-> obj ANIM_LIST_MIN_WIDTH))
(format #t "~TPICK_LIST_X: ~D~%" (-> obj PICK_LIST_X))
(format #t "~TPICK_LIST_Y: ~D~%" (-> obj PICK_LIST_Y))
(format #t "~TPICK_LIST_MIN_WIDTH: ~D~%" (-> obj PICK_LIST_MIN_WIDTH))
(format #t "~TEDIT_LIST_X: ~D~%" (-> obj EDIT_LIST_X))
(format #t "~TEDIT_LIST_Y: ~D~%" (-> obj EDIT_LIST_Y))
(format #t "~TEDIT_STATS_X: ~D~%" (-> obj EDIT_STATS_X))
(format #t "~TEDIT_LIST_MIN_WIDTH: ~D~%" (-> obj EDIT_LIST_MIN_WIDTH))
(format #t "~TEDIT_PICK_X: ~D~%" (-> obj EDIT_PICK_X))
obj
)
;; definition for symbol *ANIM_TESTER-bank*, type anim-tester-bank
(define
*ANIM_TESTER-bank*
(new 'static 'anim-tester-bank
:ANIM_SPEED 1.0
:BLEND 1.0
:OBJECT_LIST_X 10
:OBJECT_LIST_Y 50
:OBJECT_LIST_MIN_WIDTH 18
:ANIM_LIST_X 10
:ANIM_LIST_Y 50
:ANIM_LIST_MIN_WIDTH 17
:PICK_LIST_X 10
:PICK_LIST_Y 50
:PICK_LIST_MIN_WIDTH 21
:EDIT_LIST_X 10
:EDIT_LIST_Y 50
:EDIT_STATS_X 30
:EDIT_LIST_MIN_WIDTH 64
:EDIT_PICK_X 30
)
)
;; definition of type anim-tester
(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)
)
:heap-base #x130
:method-count-assert 20
:size-assert #x198
:flag-assert #x1401300198
)
;; definition for method 3 of type anim-tester
;; INFO: this function exists in multiple non-identical object files
(defmethod inspect anim-tester ((obj anim-tester))
(let ((t9-0 (method-of-type process-drawable inspect)))
(t9-0 obj)
)
(format #t "~T~Tflags: ~D~%" (-> obj flags))
(format #t "~T~Tobj-list: #<glst-list @ #x~X>~%" (-> obj obj-list))
(format #t "~T~Tcurrent-obj: ~A~%" (-> obj current-obj))
(format #t "~T~Tspeed: ~D~%" (-> obj speed))
(format #t "~T~Tlist-con: #<list-control @ #x~X>~%" (-> obj list-con))
(format #t "~T~Tpick-con: #<list-control @ #x~X>~%" (-> obj pick-con))
(format #t "~T~Titem-field: ~D~%" (-> obj item-field))
(format #t "~T~Tinc-delay: ~D~%" (-> obj inc-delay))
(format #t "~T~Tinc-timer: ~D~%" (-> obj inc-timer))
(format #t "~T~Tedit-mode: ~D~%" (-> obj edit-mode))
(format #t "~T~Told-mode: ~D~%" (-> obj old-mode))
(format #t "~T~Tanim-speed: ~f~%" (-> obj anim-speed))
(format #t "~T~Tanim-gspeed: ~f~%" (-> obj anim-gspeed))
(format #t "~T~Tanim-first: ~f~%" (-> obj anim-first))
(format #t "~T~Tanim-last: ~f~%" (-> obj anim-last))
obj
)
;; definition for function anim-tester-num-print
;; INFO: Return type mismatch object vs none.
(defun anim-tester-num-print ((arg0 basic) (arg1 float))
(cond
((= arg1 (-> (new 'static 'array float 1 -2.0) 0))
(format arg0 "max")
)
((= arg1 (-> (new 'static 'array float 1 -1.0) 0))
(format arg0 "min")
)
(else
(format arg0 "~f" arg1)
)
)
(none)
)
;; definition (perm) for symbol *anim-tester*, type (pointer anim-tester)
(define-perm *anim-tester* (pointer anim-tester) #f)
;; definition of type anim-test-obj
(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)
)
)
;; definition for method 3 of type anim-test-obj
(defmethod inspect anim-test-obj ((obj anim-test-obj))
(format #t "[~8x] ~A~%" obj 'anim-test-obj)
(format #t "~Tnext: #<glst-node @ #x~X>~%" (-> obj next))
(format #t "~Tprev: #<glst-node @ #x~X>~%" (-> obj prev))
(format #t "~Tprivname: ~A~%" (-> obj privname))
(format #t "~Tobj-art-group: ~A~%" (-> obj obj-art-group))
(format #t "~Tseq-list: #<glst-list @ #x~X>~%" (-> obj seq-list))
(format #t "~Tflags: ~D~%" (-> obj flags))
(format #t "~Tmesh-geo: ~A~%" (-> obj mesh-geo))
(format #t "~Tjoint-geo: ~A~%" (-> obj joint-geo))
(format #t "~Tlist-con: #<list-control @ #x~X>~%" (-> obj list-con))
(format #t "~Tparent: #x~X~%" (-> obj parent))
(format #t "~Tanim-index: ~D~%" (-> obj anim-index))
(format #t "~Tanim-hindex: ~D~%" (-> obj anim-hindex))
(format #t "~Tseq-index: ~D~%" (-> obj seq-index))
(format #t "~Tseq-hindex: ~D~%" (-> obj seq-hindex))
obj
)
;; definition for function anim-test-obj-init
;; INFO: Return type mismatch glst-node vs none.
(defun anim-test-obj-init ((arg0 anim-test-obj) (arg1 list-control))
(set! (-> arg0 mesh-geo) #f)
(set! (-> arg0 joint-geo) #f)
(set! (-> arg0 list-con listfunc) anim-test-anim-list-handler)
(set! (-> arg0 list-con left) (-> *ANIM_TESTER-bank* ANIM_LIST_X))
(set! (-> arg0 list-con top) (-> *ANIM_TESTER-bank* ANIM_LIST_Y))
(set! (-> arg0 list-con list) (-> arg0 seq-list))
(set! (-> arg0 list-con list-owner) (the-as uint arg0))
(let ((v1-6 arg1))
(set! (-> arg0 parent) (the-as uint (if v1-6
(-> v1-6 the-node)
)
)
)
)
(none)
)
;; definition for method 0 of type anim-test-obj
(defmethod
new
anim-test-obj
((allocation symbol)
(type-to-make type)
(arg0 int)
(arg1 string)
(arg2 basic)
)
(let ((t9-0 (method-of-type structure new))
(v1-1 type-to-make)
)
(-> type-to-make size)
(let ((s4-0 (the-as anim-test-obj (t9-0 allocation v1-1))))
(set! (-> s4-0 obj-art-group) (the-as art-group arg2))
(set! (-> s4-0 privname) arg1)
(glst-init-list! (-> s4-0 seq-list))
s4-0
)
)
)
;; definition of type anim-test-sequence
(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)
)
)
;; definition for method 3 of type anim-test-sequence
(defmethod inspect anim-test-sequence ((obj anim-test-sequence))
(format #t "[~8x] ~A~%" obj 'anim-test-sequence)
(format #t "~Tnext: #<glst-node @ #x~X>~%" (-> obj next))
(format #t "~Tprev: #<glst-node @ #x~X>~%" (-> obj prev))
(format #t "~Tprivname: ~A~%" (-> obj privname))
(format #t "~Titem-list: #<glst-list @ #x~X>~%" (-> obj item-list))
(format #t "~Tplaying-item: ~D~%" (-> obj playing-item))
(format #t "~Tflags: ~D~%" (-> obj flags))
(format #t "~Tlist-con: #<list-control @ #x~X>~%" (-> obj list-con))
(format #t "~Tparent: #<anim-test-obj @ #x~X>~%" (-> obj parent))
obj
)
;; definition for function anim-test-sequence-init
;; INFO: Return type mismatch anim-test-obj vs none.
(defun anim-test-sequence-init ((arg0 anim-test-sequence) (arg1 anim-test-obj))
(set! (-> arg0 list-con listfunc) anim-test-edit-sequence-list-handler)
(set! (-> arg0 list-con left) (-> *ANIM_TESTER-bank* EDIT_LIST_X))
(set! (-> arg0 list-con top) (-> *ANIM_TESTER-bank* EDIT_LIST_Y))
(set! (-> arg0 list-con list) (-> arg0 item-list))
(set! (-> arg0 list-con list-owner) (the-as uint arg0))
(set! (-> arg0 parent) arg1)
(none)
)
;; definition for method 0 of type anim-test-sequence
(defmethod
new
anim-test-sequence
((allocation symbol) (type-to-make type) (arg0 int) (arg1 string))
(let ((t9-0 (method-of-type structure new))
(v1-1 type-to-make)
)
(-> type-to-make size)
(let ((s5-0 (the-as anim-test-sequence (t9-0 allocation v1-1))))
(set! (-> s5-0 privname) arg1)
(glst-init-list! (-> s5-0 item-list))
s5-0
)
)
)
;; definition of type anim-test-seq-item
(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)
)
)
;; definition for method 3 of type anim-test-seq-item
(defmethod inspect anim-test-seq-item ((obj anim-test-seq-item))
(format #t "[~8x] ~A~%" obj 'anim-test-seq-item)
(format #t "~Tnext: #<glst-node @ #x~X>~%" (-> obj next))
(format #t "~Tprev: #<glst-node @ #x~X>~%" (-> obj prev))
(format #t "~Tprivname: ~A~%" (-> obj privname))
(format #t "~Tspeed: ~D~%" (-> obj speed))
(format #t "~Tblend: ~D~%" (-> obj blend))
(format #t "~Tfirst-frame: ~f~%" (-> obj first-frame))
(format #t "~Tlast-frame: ~f~%" (-> obj last-frame))
(format #t "~Tnum-frames: ~f~%" (-> obj num-frames))
(format #t "~Tartist-base: ~f~%" (-> obj artist-base))
(format #t "~Tflags: ~D~%" (-> obj flags))
(format #t "~Tparent: #<anim-test-sequence @ #x~X>~%" (-> obj parent))
obj
)
;; definition for method 0 of type anim-test-seq-item
;; INFO: Return type mismatch structure vs anim-test-seq-item.
(defmethod
new
anim-test-seq-item
((allocation symbol) (type-to-make type) (arg0 int) (arg1 string))
(let ((t9-0 (method-of-type structure new))
(v1-1 type-to-make)
)
(-> type-to-make size)
(let ((v0-0 (t9-0 allocation v1-1)))
(set! (-> (the-as anim-test-seq-item v0-0) privname) arg1)
(set! (-> (the-as anim-test-seq-item v0-0) speed) 100)
(set! (-> (the-as anim-test-seq-item v0-0) blend) 0)
(set!
(-> (the-as anim-test-seq-item v0-0) first-frame)
(-> (new 'static 'array float 1 -1.0) 0)
)
(set!
(-> (the-as anim-test-seq-item v0-0) last-frame)
(-> (new 'static 'array float 1 -2.0) 0)
)
(the-as anim-test-seq-item v0-0)
)
)
)
;; definition for function anim-test-seq-item-copy!
(defun
anim-test-seq-item-copy!
((arg0 anim-test-seq-item) (arg1 anim-test-seq-item))
(let ((v1-0 arg0))
(set! (-> v1-0 privname) (-> arg1 privname))
)
(set! (-> arg0 speed) (-> arg1 speed))
(set! (-> arg0 blend) (-> arg1 blend))
(set! (-> arg0 first-frame) (-> arg1 first-frame))
(set! (-> arg0 last-frame) (-> arg1 last-frame))
(set! (-> arg0 num-frames) (-> arg1 num-frames))
(set! (-> arg0 artist-base) (-> arg1 artist-base))
(set! (-> arg0 flags) (-> arg1 flags))
(let ((v0-0 (-> arg1 parent)))
(set! (-> arg0 parent) v0-0)
v0-0
)
)
;; definition for method 3 of type anim-tester
;; INFO: this function exists in multiple non-identical object files
;; INFO: Return type mismatch object vs anim-tester.
(defmethod inspect anim-tester ((obj anim-tester))
(format #t "--anim-tester--~%")
(let ((v1-0 (-> obj obj-list)))
"return the start of the list"
(let ((s5-0 (the-as anim-test-obj (-> v1-0 head))))
(while (let ((v1-36 s5-0))
"is this node the end of the list. #t = end"
(not (not (-> v1-36 next)))
)
(format #t "object ~A~%" (-> s5-0 privname))
(let ((v1-2 (-> s5-0 seq-list)))
"return the start of the list"
(let ((s4-0 (the-as anim-test-sequence (-> v1-2 head))))
(while (let ((v1-29 s4-0))
"is this node the end of the list. #t = end"
(not (not (-> v1-29 next)))
)
(format #t " seq ~A" (-> s4-0 privname))
(format #t " ~S" (if (logtest? (-> s4-0 flags) 2)
"VALID"
"-"
)
)
(format #t " ~S" (if (logtest? (-> s4-0 flags) 4)
"EDITED"
"-"
)
)
(format #t " ~S" (if (logtest? (-> s4-0 flags) 1)
"USER_GENERATED"
"-"
)
)
(format #t "~%")
(let ((v1-10 (-> s4-0 item-list)))
"return the start of the list"
(let ((s3-0 (the-as anim-test-seq-item (-> v1-10 head))))
(while (let ((v1-22 s3-0))
"is this node the end of the list. #t = end"
(not (not (-> v1-22 next)))
)
(format
#t
" item ~A SP=~f BL=~d FIRST="
(-> s3-0 privname)
(*
(-> (new 'static 'array float 1 0.01) 0)
(the float (-> s3-0 speed))
)
(-> s3-0 blend)
)
(anim-tester-num-print #t (-> s3-0 first-frame))
(format #t " LAST=")
(anim-tester-num-print #t (-> s3-0 last-frame))
(format #t " ~S" (if (logtest? (-> s3-0 flags) 1)
"END_MARKER"
"-"
)
)
(format #t " ~S" (if (logtest? (-> s3-0 flags) 2)
"WAIT_FOR_BLEND"
"-"
)
)
(format #t " ~S" (if (logtest? (-> s3-0 flags) 4)
"BLANK"
"-"
)
)
(format #t "~%")
"return the next node in the list"
(set! s3-0 (the-as anim-test-seq-item (-> s3-0 next)))
)
)
)
"return the next node in the list"
(set! s4-0 (the-as anim-test-sequence (-> s4-0 next)))
)
)
)
"return the next node in the list"
(set! s5-0 (the-as anim-test-obj (-> s5-0 next)))
)
)
)
(format #t "-------------~%")
(format #t "current-obj=~A~%" (-> obj current-obj))
(format
#t
"speed=~f~%"
(* (-> (new 'static 'array float 1 0.01) 0) (the float (-> obj speed)))
)
(format #t "--flags:--~%")
(the-as
anim-tester
(format #t " CONNECTED: ~A~%" (if (logtest? (-> obj flags) 1)
"TRUE"
"f"
)
)
)
)
;; definition for function anim-test-obj-item-valid?
(defun anim-test-obj-item-valid? ((arg0 anim-test-obj) (arg1 anim-test-seq-item))
(let ((v1-0 (-> arg0 seq-list)))
"return the start of the list"
(let ((s5-0 (the-as anim-test-sequence (-> v1-0 head))))
(while (let ((v1-13 s5-0))
"is this node the end of the list. #t = end"
(not (not (-> v1-13 next)))
)
(when
(and
(logtest? (-> s5-0 flags) 2)
(name= (-> arg1 privname) (-> s5-0 privname))
)
(let ((v1-7 (-> s5-0 item-list)))
"return the start of the list"
(let* ((v1-8 (the-as anim-test-seq-item (-> v1-7 head)))
(a0-4 v1-8)
)
"is this node the end of the list. #t = end"
(when (not (not (-> a0-4 next)))
(set! (-> arg1 num-frames) (-> v1-8 num-frames))
(set! (-> arg1 artist-base) (-> v1-8 artist-base))
)
)
)
(return #t)
)
"return the next node in the list"
(set! s5-0 (the-as anim-test-sequence (-> s5-0 next)))
)
)
)
#f
)
;; definition for function anim-test-obj-remove-invalid
(defun anim-test-obj-remove-invalid ((arg0 anim-test-obj))
(local-vars (v1-19 symbol))
(let ((v1-0 (-> arg0 seq-list)))
"return the start of the list"
(let ((s5-0 (-> v1-0 head)))
(while (let ((v1-25 (the-as anim-test-sequence s5-0)))
"is this node the end of the list. #t = end"
(not (not (-> v1-25 next)))
)
(let ((v1-1 (the-as anim-test-sequence s5-0)))
"return the next node in the list"
(let ((s4-0 (-> v1-1 next)))
(when (zero? (logand (-> (the-as anim-test-sequence s5-0) flags) 2))
(let ((v1-5 (-> (the-as anim-test-sequence s5-0) item-list)))
"return the start of the list"
(let ((s3-0 (the-as anim-test-seq-item (-> v1-5 head))))
(while (let ((v1-13 s3-0))
"is this node the end of the list. #t = end"
(not (not (-> v1-13 next)))
)
(let ((v1-6 s3-0))
"return the next node in the list"
(let ((s2-0 (the-as anim-test-seq-item (-> v1-6 next))))
(if
(and
(zero? (logand (-> s3-0 flags) 1))
(not (anim-test-obj-item-valid? arg0 s3-0))
)
(glst-remove (-> (the-as anim-test-sequence s5-0) item-list) s3-0)
)
(set! s3-0 s2-0)
)
)
)
)
)
)
(let ((v1-18 (-> (the-as anim-test-sequence s5-0) item-list)))
"is the list empty, #t = empty"
(if
(or
(= (-> v1-18 tailpred) v1-18)
(and
(=
(glst-num-elements (-> (the-as anim-test-sequence s5-0) item-list))
1
)
(begin
(let ((v1-21 #t)
(a0-13 (-> (the-as anim-test-sequence s5-0) item-list))
)
"return the start of the list"
(let
((a0-16
(the-as
int
(logand
(-> (the-as anim-test-seq-item (-> a0-13 head)) flags)
1
)
)
)
)
(cmove-#f-zero v1-19 a0-16 v1-21)
)
)
v1-19
)
)
)
(glst-remove (-> arg0 seq-list) (the-as anim-test-sequence s5-0))
)
)
(set! s5-0 (the-as anim-test-sequence s4-0))
)
)
)
)
)
(let ((v1-30 (-> arg0 seq-list)))
"return the start of the list"
(let ((v1-31 (the-as anim-test-sequence (-> v1-30 head))))
(while (let ((a0-23 v1-31))
"is this node the end of the list. #t = end"
(not (not (-> a0-23 next)))
)
(let ((a0-20 v1-31))
"return the next node in the list"
(let ((a0-21 (-> a0-20 next)))
(set! (-> v1-31 flags) (logand -3 (-> v1-31 flags)))
(set! v1-31 (the-as anim-test-sequence a0-21))
)
)
)
)
)
#f
)
;; definition for function anim-tester-real-post
;; INFO: Return type mismatch int vs none.
(defbehavior anim-tester-real-post anim-tester ()
(when (logtest? (-> self flags) 1)
(if (logtest? (-> self flags) 32)
(vector-v+! (-> self root trans) (-> self root trans) (-> self root transv))
)
(ja-post)
(when (logtest? (-> self flags) 16)
(draw-joint-spheres self)
(dummy-10 (-> self skel) (the-as symbol *stdcon*))
)
)
(none)
)
;; definition for function anim-tester-post
(defbehavior anim-tester-post anim-tester ()
(anim-tester-real-post)
(none)
)
;; definition for function anim-tester-update-anim-info
(defbehavior anim-tester-update-anim-info anim-tester ((arg0 anim-test-seq-item))
(set! (-> self anim-first) (-> arg0 first-frame))
(set! (-> self anim-last) (-> arg0 last-frame))
(set!
(-> self anim-gspeed)
(* (-> (new 'static 'array float 1 0.01) 0) (the float (-> self speed)))
)
(set!
(-> self anim-speed)
(*
(-> (new 'static 'array float 1 0.01) 0)
(-> self anim-gspeed)
(the float (-> arg0 speed))
)
)
(when (< (-> self anim-speed) 0.0)
(set! (-> self anim-first) (-> arg0 last-frame))
(set! (-> self anim-last) (-> arg0 first-frame))
)
(set! (-> self anim-gspeed) (fabs (-> self anim-gspeed)))
(let ((f0-13 (fabs (-> self anim-speed))))
(set! (-> self anim-speed) f0-13)
f0-13
)
)
;; definition for function anim-tester-reset
;; Used lq/sq
(defbehavior anim-tester-reset anim-tester ()
(let ((v1-0 (-> self obj-list)))
"is the list empty, #t = empty"
(cond
((= (-> v1-0 tailpred) v1-0)
(set! (-> self list-con current-index) 0)
(set! (-> self current-obj) "")
)
(else
(let
((v1-1
(the-as
anim-test-obj
(glst-find-node-by-name (-> self obj-list) (-> self current-obj))
)
)
)
(when (not v1-1)
(if
(>=
(-> self list-con current-index)
(glst-num-elements (-> self obj-list))
)
(set!
(-> self list-con current-index)
(+ (glst-num-elements (-> self obj-list)) -1)
)
)
(set!
v1-1
(the-as
anim-test-obj
(glst-get-node-by-index
(-> self obj-list)
(-> self list-con current-index)
)
)
)
(set! (-> self current-obj) (-> v1-1 privname))
)
(cond
((or (not (-> v1-1 joint-geo)) (not (-> v1-1 mesh-geo)))
(format #t "what's this? ~A~%" (-> v1-1 privname))
(format #t "it's missing a joint-geo, or a mesh-geo or a mesh-anim~%")
)
(else
(let ((a0-15 (-> v1-1 joint-geo)))
(let ((a1-4 (-> v1-1 mesh-geo)))
(set! (-> self draw art-group) (-> v1-1 obj-art-group))
(set! (-> self draw cur-lod) -1)
(set! (-> self draw jgeo) a0-15)
(set!
(-> self draw sink-group)
(-> *level* level-default foreground-sink-group 1)
)
(set! (-> self draw lod-set lod 0 geo) a1-4)
)
(set!
(-> self draw lod-set lod 0 dist)
(-> (new 'static 'array float 1 4095996000.0) 0)
)
(set!
(-> self draw bounds w)
(-> (new 'static 'array float 1 40960.0) 0)
)
(set! (-> self draw data-format) (the-as uint 1))
(let
((v1-16 (-> (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0) quad)))
(set! (-> self draw color-mult quad) v1-16)
)
(let ((v1-18 (-> (new 'static 'vector) quad)))
(set! (-> self draw color-emissive quad) v1-18)
)
(set! (-> self draw secondary-interp) 0.0)
(set! (-> self draw shadow) #f)
(set! (-> self draw shadow-ctrl) #f)
(set! (-> self draw ripple) #f)
(set! (-> self draw level-index) (the-as uint 2))
(set!
(-> self node-list)
(the-as
cspace-array
(make-nodes-from-jg a0-15 *default-skel-template* 'debug)
)
)
)
(set! (-> self skel effect) (new 'process 'effect-control self))
(fill-skeleton-cache self)
(dummy-10 (-> self draw) 0)
(ja-channel-set! 0)
(ja-post)
)
)
)
)
)
)
(none)
)
;; definition for function anim-tester-disp-frame-num
;; Used lq/sq
(defun
anim-tester-disp-frame-num
((arg0 string) (arg1 float) (arg2 float) (arg3 font-context))
(local-vars (sv-16 (function _varargs_ object)))
(let* ((s3-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(gp-0 (-> s3-0 base))
)
(cond
((= arg1 (-> (new 'static 'array float 1 -1.0) 0))
(let ((s2-1 draw-string-adv))
(format (clear *temp-string*) "~Smin" arg0)
(s2-1 *temp-string* s3-0 arg3)
)
)
((= arg1 (-> (new 'static 'array float 1 -2.0) 0))
(let ((s2-2 draw-string-adv))
(format (clear *temp-string*) "~Smax" arg0)
(s2-2 *temp-string* s3-0 arg3)
)
)
(else
(let ((s0-0 draw-string-adv))
(set! sv-16 format)
(let ((a0-11 (clear *temp-string*))
(a1-5 "~S~3,,0f")
(a2-5 arg0)
(a3-1 (+ arg1 arg2))
)
(sv-16 a0-11 a1-5 a2-5 a3-1)
)
(s0-0 *temp-string* s3-0 arg3)
)
)
)
(let ((a3-2 (-> s3-0 base)))
(let ((v1-6 (the-as object (-> s3-0 base))))
(set!
(-> (the-as dma-packet v1-6) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-6) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-6) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-6) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
gp-0
(the-as (pointer dma-tag) a3-2)
)
)
)
)
;; definition for function anim-tester-standard-event-handler
;; INFO: Return type mismatch none vs object.
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
(defbehavior
anim-tester-standard-event-handler anim-tester
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'reset)
(process-disconnect self)
(set! (-> self flags) (logand -2 (-> self flags)))
(when (!= (-> *anim-tester* 0 edit-mode) 1)
(set! (-> *debug-menu-context* is-hidden) #f)
(set! (-> *anim-tester* 0 edit-mode) 0)
(set! *camera-read-buttons* #t)
)
(anim-tester-reset)
(go anim-tester-process)
)
((= v1-0 'change-anim)
(go anim-tester-process)
)
((= v1-0 'pick-object)
(set! (-> self edit-mode) 1)
(set! *camera-read-buttons* #f)
#f
)
((= v1-0 'pick-joint-anim)
(set! (-> self edit-mode) 2)
(set! *camera-read-buttons* #f)
#f
)
((= v1-0 'pick-sequence)
(set! (-> self edit-mode) 3)
(set! *camera-read-buttons* #f)
#f
)
((= v1-0 'edit-sequence)
(set! (-> self edit-mode) 4)
(set! *camera-read-buttons* #f)
#f
)
((= v1-0 'save-sequences)
(anim-tester-save-all-objects self)
)
)
)
)
)
;; definition for function anim-test-obj-list-handler
(defun anim-test-obj-list-handler ((arg0 int) (arg1 list-control))
(with-pp
(let ((s5-0 (-> arg1 the-node))
(v1-0 arg0)
)
(cond
((zero? v1-0)
(let*
((s3-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s4-0 (-> s3-0 base))
)
(let ((s2-0 draw-string-xy))
(format
(clear *temp-string*)
"~S~S~S"
(if (= (-> arg1 the-index) (-> arg1 highlight-index))
">"
" "
)
(if (logtest? (-> (the-as anim-test-obj s5-0) flags) 1)
"*"
" "
)
(-> (the-as anim-test-obj s5-0) privname)
)
(s2-0
*temp-string*
s3-0
(-> arg1 xpos)
(-> arg1 ypos)
(the-as font-color (if (= (-> arg1 the-index) (-> arg1 current-index))
15
12
)
)
(font-flags shadow kerning)
)
)
(let ((a3-2 (-> s3-0 base)))
(let ((v1-8 (the-as object (-> s3-0 base))))
(set!
(-> (the-as dma-packet v1-8) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-8) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-8) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-8) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s4-0
(the-as (pointer dma-tag) a3-2)
)
)
)
)
((= v1-0 1)
(return #t)
)
((= v1-0 4)
(cond
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
(if (> (-> arg1 highlight-index) 0)
(+! (-> arg1 highlight-index) -1)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
(if (< (-> arg1 highlight-index) (glst-num-elements (-> arg1 list)))
(+! (-> arg1 highlight-index) 1)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
(let ((v1-38 (the-as object (-> arg1 list-owner))))
(set! (-> arg1 current-index) (-> arg1 the-index))
(set!
(-> (the-as anim-tester v1-38) current-obj)
(-> (the-as anim-test-obj s5-0) privname)
)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) pp)
(set! (-> a1-4 num-params) 1)
(set! (-> a1-4 message) 'reset)
(set! (-> a1-4 param 0) (the-as uint #f))
(send-event-function (ppointer->process *anim-tester*) a1-4)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons square))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
(set! (-> *debug-menu-context* is-hidden) #f)
(set! (-> *anim-tester* 0 edit-mode) 0)
(set! *camera-read-buttons* #t)
(logior! (-> *anim-tester* 0 flags) 4)
)
)
)
((= v1-0 2)
(let ((v1-64 (+ (length (-> (the-as anim-test-obj s5-0) privname)) 2)))
(set! v1-64 (cond
((< (-> *ANIM_TESTER-bank* OBJECT_LIST_MIN_WIDTH) v1-64)
(empty)
v1-64
)
(else
(-> *ANIM_TESTER-bank* OBJECT_LIST_MIN_WIDTH)
)
)
)
(set! (-> arg1 return-int) v1-64)
)
)
((= v1-0 3)
(let*
((s4-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s5-2 (-> s4-1 base))
)
(draw-string-xy
"----pick-object---"
s4-1
(-> arg1 xpos)
(-> arg1 ypos)
(font-color dim-white)
(font-flags shadow kerning)
)
(let ((a3-4 (-> s4-1 base)))
(let ((v1-70 (the-as object (-> s4-1 base))))
(set!
(-> (the-as dma-packet v1-70) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-70) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-70) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-70) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s5-2
(the-as (pointer dma-tag) a3-4)
)
)
)
)
)
)
#f
)
)
;; definition for function anim-test-anim-list-handler
(defun anim-test-anim-list-handler ((arg0 int) (arg1 list-control))
(with-pp
(let* ((s5-0 (the-as anim-test-obj (-> arg1 the-node)))
(v1-0 (the-as object (-> s5-0 list-con user-info-u)))
)
(cond
((zero? arg0)
(let*
((s3-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s4-0 (-> s3-0 base))
)
(let ((s2-0 draw-string-xy))
(format
(clear *temp-string*)
"~S~S"
(if (= (-> arg1 the-index) (-> arg1 highlight-index))
"> "
" "
)
(-> s5-0 privname)
)
(s2-0
*temp-string*
s3-0
(-> arg1 xpos)
(-> arg1 ypos)
(the-as font-color (if (= (-> arg1 the-index) (-> arg1 current-index))
15
12
)
)
(font-flags shadow kerning)
)
)
(let ((a3-2 (-> s3-0 base)))
(let ((v1-6 (the-as object (-> s3-0 base))))
(set!
(-> (the-as dma-packet v1-6) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-6) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-6) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-6) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s4-0
(the-as (pointer dma-tag) a3-2)
)
)
)
)
((= arg0 1)
(return (zero? (logand (-> s5-0 flags) 1)))
)
((= arg0 4)
(cond
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
(let ((v1-15 (-> arg1 list)))
"is the list empty, #t = empty"
(when (not (= (-> v1-15 tailpred) v1-15))
(let
((v1-17
(glst-get-node-by-index (-> arg1 list) (-> arg1 highlight-index))
)
)
(while #t
"return the previous node in the list"
(set! v1-17 (-> (the-as anim-test-obj v1-17) prev))
(let ((a0-23 (the-as anim-test-obj v1-17)))
"is this node the start of the list. #t = start"
(if (not (-> a0-23 prev))
(goto cfg-25)
)
)
(when (zero? (logand (-> (the-as anim-test-obj v1-17) flags) 1))
(set!
(-> arg1 highlight-index)
(glst-get-node-index (-> arg1 list) (the-as anim-test-obj v1-17))
)
(goto cfg-25)
)
)
)
)
)
(label cfg-25)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
(let ((v1-21 (-> arg1 list)))
"is the list empty, #t = empty"
(when (not (= (-> v1-21 tailpred) v1-21))
(let
((v1-23
(glst-get-node-by-index (-> arg1 list) (-> arg1 highlight-index))
)
)
(while #t
"return the next node in the list"
(set! v1-23 (-> (the-as anim-test-obj v1-23) next))
(let ((a0-40 (the-as anim-test-obj v1-23)))
"is this node the end of the list. #t = end"
(if (not (-> a0-40 next))
(goto cfg-39)
)
)
(when (zero? (logand (-> (the-as anim-test-obj v1-23) flags) 1))
(set!
(-> arg1 highlight-index)
(glst-get-node-index (-> arg1 list) (the-as anim-test-obj v1-23))
)
(goto cfg-39)
)
)
)
)
)
(label cfg-39)
)
((= (-> arg1 user-info) 1)
)
(else
(cond
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
(set! (-> arg1 current-index) (-> arg1 the-index))
(set!
(-> (the-as anim-test-obj v1-0) anim-index)
(-> arg1 current-index)
)
(set!
(-> (the-as anim-test-obj v1-0) anim-hindex)
(-> arg1 highlight-index)
)
(set!
(-> (the-as anim-test-obj v1-0) flags)
(logand -3 (-> (the-as anim-test-obj v1-0) flags))
)
(let ((a1-17 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-17 from) pp)
(set! (-> a1-17 num-params) 1)
(set! (-> a1-17 message) 'change-anim)
(set! (-> a1-17 param 0) (the-as uint #f))
(send-event-function (ppointer->process *anim-tester*) a1-17)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
(logclear!
(-> *cpad-list* cpads 0 button0-abs 0)
(pad-buttons square)
)
(logclear!
(-> *cpad-list* cpads 0 button0-rel 0)
(pad-buttons square)
)
(set! (-> *debug-menu-context* is-hidden) #f)
(set! (-> *anim-tester* 0 edit-mode) 0)
(set! *camera-read-buttons* #t)
(logior! (-> *anim-tester* 0 flags) 4)
)
)
)
)
)
((= arg0 2)
(let ((v1-55 (+ (length (-> s5-0 privname)) 2)))
(set! v1-55 (cond
((< (-> *ANIM_TESTER-bank* ANIM_LIST_MIN_WIDTH) v1-55)
(empty)
v1-55
)
(else
(-> *ANIM_TESTER-bank* ANIM_LIST_MIN_WIDTH)
)
)
)
(set! (-> arg1 return-int) v1-55)
)
)
((= arg0 3)
(let*
((s4-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s5-1 (-> s4-1 base))
)
(draw-string-xy
"----pick-joint-anim----"
s4-1
(-> arg1 xpos)
(-> arg1 ypos)
(font-color dim-white)
(font-flags shadow kerning)
)
(let ((a3-4 (-> s4-1 base)))
(let ((v1-62 (the-as object (-> s4-1 base))))
(set!
(-> (the-as dma-packet v1-62) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-62) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-62) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-62) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s5-1
(the-as (pointer dma-tag) a3-4)
)
)
)
)
)
)
#f
)
)
;; definition for function anim-test-sequence-list-handler
(defun anim-test-sequence-list-handler ((arg0 int) (arg1 list-control))
(with-pp
(let* ((s5-0 (the-as anim-test-sequence (-> arg1 the-node)))
(v1-0 (-> s5-0 parent))
)
(cond
((zero? arg0)
(let*
((s3-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s4-0 (-> s3-0 base))
)
(let ((s2-0 draw-string-xy))
(format
(clear *temp-string*)
"~S~S~S"
(if (= (-> arg1 the-index) (-> arg1 highlight-index))
">"
" "
)
(if (logtest? (-> s5-0 flags) 4)
"*"
" "
)
(-> s5-0 privname)
)
(s2-0
*temp-string*
s3-0
(-> arg1 xpos)
(-> arg1 ypos)
(the-as font-color (if (= (-> arg1 the-index) (-> arg1 current-index))
15
12
)
)
(font-flags shadow kerning)
)
)
(let ((a3-2 (-> s3-0 base)))
(let ((v1-8 (the-as object (-> s3-0 base))))
(set!
(-> (the-as dma-packet v1-8) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-8) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-8) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-8) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s4-0
(the-as (pointer dma-tag) a3-2)
)
)
)
)
((= arg0 1)
(return (logtest? (-> s5-0 flags) 1))
)
((= arg0 4)
(cond
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
(let ((v1-17 (-> arg1 list)))
"is the list empty, #t = empty"
(when (not (= (-> v1-17 tailpred) v1-17))
(let
((v1-19
(glst-get-node-by-index (-> arg1 list) (-> arg1 highlight-index))
)
)
(while #t
"return the previous node in the list"
(set! v1-19 (-> (the-as anim-test-sequence v1-19) prev))
(let ((a0-24 (the-as anim-test-sequence v1-19)))
"is this node the start of the list. #t = start"
(if (not (-> a0-24 prev))
(goto cfg-28)
)
)
(when (logtest? (-> (the-as anim-test-sequence v1-19) flags) 1)
(set!
(-> arg1 highlight-index)
(glst-get-node-index
(-> arg1 list)
(the-as anim-test-sequence v1-19)
)
)
(goto cfg-28)
)
)
)
)
)
(label cfg-28)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
(let ((v1-23 (-> arg1 list)))
"is the list empty, #t = empty"
(when (not (= (-> v1-23 tailpred) v1-23))
(let
((v1-25
(glst-get-node-by-index (-> arg1 list) (-> arg1 highlight-index))
)
)
(while #t
"return the next node in the list"
(set! v1-25 (-> (the-as anim-test-sequence v1-25) next))
(let ((a0-42 (the-as anim-test-sequence v1-25)))
"is this node the end of the list. #t = end"
(if (not (-> a0-42 next))
(goto cfg-42)
)
)
(when (logtest? (-> (the-as anim-test-sequence v1-25) flags) 1)
(set!
(-> arg1 highlight-index)
(glst-get-node-index
(-> arg1 list)
(the-as anim-test-sequence v1-25)
)
)
(goto cfg-42)
)
)
)
)
)
(label cfg-42)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
(set! (-> arg1 current-index) (-> arg1 the-index))
(set! (-> v1-0 seq-index) (-> arg1 current-index))
(set! (-> v1-0 seq-hindex) (-> arg1 highlight-index))
(logior! (-> v1-0 flags) 2)
(set! (-> *anim-tester* 0 edit-mode) 4)
(let ((a1-15 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-15 from) pp)
(set! (-> a1-15 num-params) 1)
(set! (-> a1-15 message) 'change-anim)
(set! (-> a1-15 param 0) (the-as uint #f))
(send-event-function (ppointer->process *anim-tester*) a1-15)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons square))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
(set! (-> *debug-menu-context* is-hidden) #f)
(set! (-> *anim-tester* 0 edit-mode) 0)
(set! *camera-read-buttons* #t)
(logior! (-> *anim-tester* 0 flags) 4)
)
)
)
((= arg0 2)
(let ((v1-57 (+ (length (-> s5-0 privname)) 2)))
(set! v1-57 (cond
((< (-> *ANIM_TESTER-bank* PICK_LIST_MIN_WIDTH) v1-57)
(empty)
v1-57
)
(else
(-> *ANIM_TESTER-bank* PICK_LIST_MIN_WIDTH)
)
)
)
(set! (-> arg1 return-int) v1-57)
)
)
((= arg0 3)
(let*
((s4-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s5-1 (-> s4-1 base))
)
(draw-string-xy
"----pick-sequence---"
s4-1
(-> arg1 xpos)
(-> arg1 ypos)
(font-color dim-white)
(font-flags shadow kerning)
)
(let ((a3-4 (-> s4-1 base)))
(let ((v1-64 (the-as object (-> s4-1 base))))
(set!
(-> (the-as dma-packet v1-64) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-64) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-64) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-64) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s5-1
(the-as (pointer dma-tag) a3-4)
)
)
)
)
)
)
#f
)
)
;; definition for symbol anim-test-field-highlight-lw, type (inline-array list-field)
(define
anim-test-field-highlight-lw
(new 'static 'inline-array list-field 12
(new 'static 'list-field :left 2 :width 20)
(new 'static 'list-field :left 30 :width 4)
(new 'static 'list-field :left 35 :width 4)
(new 'static 'list-field :left 40 :width 3)
(new 'static 'list-field :left 44 :width 3)
(new 'static 'list-field :left 48 :width 1)
(new 'static 'list-field :left 49 :width 1)
(new 'static 'list-field :left 50 :width 1)
(new 'static 'list-field :left 51 :width 1)
(new 'static 'list-field :left 53 :width 1)
(new 'static 'list-field :left 54 :width 1)
(new 'static 'list-field :left 55 :width 1)
)
)
;; definition for function anim-tester-adjust-frame
(defun anim-tester-adjust-frame ((arg0 float) (arg1 float))
(cond
((logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons down))
(cond
((= arg0 (-> (new 'static 'array float 1 -2.0) 0))
(set! arg0 (+ (-> (new 'static 'array float 1 -1.0) 0) arg1))
)
((!= arg0 (-> (new 'static 'array float 1 -1.0) 0))
(set! arg0 (+ (-> (new 'static 'array float 1 -1.0) 0) arg0))
(if (< arg0 0.0)
(set! arg0 (-> (new 'static 'array float 1 -1.0) 0))
)
)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons up))
(cond
((= arg0 (-> (new 'static 'array float 1 -1.0) 0))
(set! arg0 (-> (new 'static 'array float 1 0.0) 0))
)
((!= arg0 (-> (new 'static 'array float 1 -2.0) 0))
(set! arg0 (+ (-> (new 'static 'array float 1 1.0) 0) arg0))
(if (>= arg0 arg1)
(set! arg0 (-> (new 'static 'array float 1 -2.0) 0))
)
)
)
)
)
arg0
)
;; definition for function anim-tester-pick-item-setup
;; INFO: Return type mismatch int vs none.
(defun
anim-tester-pick-item-setup
((arg0 anim-test-seq-item) (arg1 anim-test-sequence))
(let ((gp-0 (-> arg1 parent)))
(set! (-> *anim-tester* 0 pick-con listfunc) anim-test-anim-list-handler)
(set!
(-> *anim-tester* 0 pick-con left)
(+
(-> *ANIM_TESTER-bank* EDIT_LIST_X)
(* (-> *ANIM_TESTER-bank* EDIT_PICK_X) (-> *DISP_LIST-bank* CHAR_WIDTH))
)
)
(set! (-> *anim-tester* 0 pick-con top) (-> *ANIM_TESTER-bank* EDIT_LIST_Y))
(set! (-> *anim-tester* 0 pick-con list) (-> gp-0 seq-list))
(set! (-> *anim-tester* 0 pick-con list-owner) (the-as uint gp-0))
(set! (-> *anim-tester* 0 pick-con user-info) 1)
(let ((v1-10 (-> gp-0 seq-list)))
"return the start of the list"
(let ((v1-11 (-> v1-10 head)))
(while (let ((a1-16 v1-11))
"is this node the end of the list. #t = end"
(not (not (-> a1-16 next)))
)
"return the next node in the list"
(set! v1-11 (-> v1-11 next))
)
)
)
(let ((a1-20 (glst-find-node-by-name (-> gp-0 seq-list) (-> arg0 privname))))
(when a1-20
(set!
(-> *anim-tester* 0 pick-con highlight-index)
(glst-get-node-index (-> gp-0 seq-list) a1-20)
)
(set!
(-> *anim-tester* 0 pick-con current-index)
(-> *anim-tester* 0 pick-con highlight-index)
)
)
)
)
(logior! (-> *anim-tester* 0 flags) 8)
(none)
)
;; definition for function anim-test-seq-mark-as-edited
;; INFO: Return type mismatch int vs none.
(defun anim-test-seq-mark-as-edited ((arg0 anim-test-sequence))
(logior! (-> arg0 parent flags) 1)
(logior! (-> arg0 flags) 1)
(none)
)
;; definition for function anim-test-edit-seq-insert-item
;; INFO: Return type mismatch object vs none.
(defun
anim-test-edit-seq-insert-item
((arg0 anim-test-seq-item) (arg1 anim-test-sequence))
(with-pp
(let ((s4-0 (new 'debug 'anim-test-seq-item 1 "")))
(anim-test-seq-item-copy! s4-0 arg0)
(when (logtest? (-> s4-0 flags) 1)
(set! (-> s4-0 flags) (logand -2 (-> s4-0 flags)))
(logior! (-> s4-0 flags) 4)
(let ((v1-8 s4-0))
(set! (-> v1-8 privname) "--blank--")
)
)
(glst-insert-before (-> arg1 item-list) arg0 s4-0)
)
(anim-test-seq-mark-as-edited arg1)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) pp)
(set! (-> a1-4 num-params) 0)
(set! (-> a1-4 message) 'change-anim)
(send-event-function (ppointer->process *anim-tester*) a1-4)
)
(none)
)
)
;; definition for function anim-test-edit-sequence-list-handler
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; Used lq/sq
(defun anim-test-edit-sequence-list-handler ((arg0 int) (arg1 list-control))
(local-vars
(sv-192 (function string dma-buffer int int font-color font-flags none))
(sv-208 (function _varargs_ object))
)
(with-pp
(let ((gp-0 (-> arg1 the-node))
(s4-0 (the-as object (-> arg1 list-owner)))
(s2-0
(and
(logtest? (-> *anim-tester* 0 flags) 8)
(zero? (-> *anim-tester* 0 item-field))
)
)
)
(cond
((zero? arg0)
(let
((s3-0
(new
'stack
'font-context
*font-default-matrix*
(-> arg1 xpos)
(-> arg1 ypos)
(-> (new 'static 'array float 1 0.0) 0)
(the-as font-color (if (= (-> arg1 the-index) (-> arg1 current-index))
15
12
)
)
(font-flags shadow kerning)
)
)
)
(when (not s2-0)
(when (= (-> arg1 the-index) (-> arg1 highlight-index))
(let*
((a1-2
(->
anim-test-field-highlight-lw
(-> *anim-tester* 0 item-field)
left
)
)
(v1-24
(->
anim-test-field-highlight-lw
(-> *anim-tester* 0 item-field)
width
)
)
(s0-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s1-0 (-> s0-0 base))
)
(draw-sprite2d-xy
s0-0
(+ (* a1-2 (-> *DISP_LIST-bank* CHAR_WIDTH)) 2 (-> arg1 xpos))
(+ (-> arg1 ypos) -1)
(+ (* v1-24 (-> *DISP_LIST-bank* CHAR_WIDTH)) 4)
(+ (-> *DISP_LIST-bank* TV_SPACING) 1)
(new 'static 'rgba :r #xc0 :g #xc0 :a #xff)
)
(let ((a3-4 (-> s0-0 base)))
(let ((v1-29 (the-as object (-> s0-0 base))))
(set!
(-> (the-as dma-packet v1-29) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-29) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-29) vif1) (new 'static 'vif-tag))
(set! (-> s0-0 base) (&+ (the-as pointer v1-29) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s1-0
(the-as (pointer dma-tag) a3-4)
)
)
)
)
)
(let*
((s0-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s1-1 (-> s0-1 base))
)
(set! sv-192 draw-string-xy)
(set! sv-208 format)
(let ((a0-18 (clear *temp-string*))
(a1-7 "~S~S~-27S")
(a2-11 (if (= (-> arg1 the-index) (-> arg1 highlight-index))
">"
" "
)
)
(a3-6
(if
(=
(-> arg1 the-index)
(-> (the-as anim-test-sequence s4-0) playing-item)
)
"*"
" "
)
)
(t0-2 (-> (the-as anim-test-seq-item gp-0) privname))
)
(sv-208 a0-18 a1-7 a2-11 a3-6 t0-2)
)
(let ((a0-19 *temp-string*)
(a1-8 s0-1)
(a2-12 (-> arg1 xpos))
(a3-7 (-> arg1 ypos))
(t0-4 (if (= (-> arg1 the-index) (-> arg1 current-index))
15
12
)
)
(t1-2 3)
)
(sv-192
a0-19
a1-8
a2-12
a3-7
(the-as font-color t0-4)
(the-as font-flags t1-2)
)
)
(let ((a3-8 (-> s0-1 base)))
(let ((v1-44 (the-as object (-> s0-1 base))))
(set!
(-> (the-as dma-packet v1-44) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-44) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-44) vif1) (new 'static 'vif-tag))
(set! (-> s0-1 base) (&+ (the-as pointer v1-44) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
s1-1
(the-as (pointer dma-tag) a3-8)
)
)
)
(when (not s2-0)
(let*
((s2-2 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s4-1 (the-as anim-test-sequence (-> s2-2 base)))
)
(when (zero? (logand (-> (the-as anim-test-seq-item gp-0) flags) 1))
(let ((v1-57 s3-0)
(a1-13
(+
(-> arg1 xpos)
(*
(-> *ANIM_TESTER-bank* EDIT_STATS_X)
(-> *DISP_LIST-bank* CHAR_WIDTH)
)
)
)
(a0-29 (-> arg1 ypos))
)
(set! (-> v1-57 origin x) (the float a1-13))
(set! (-> v1-57 origin y) (the float a0-29))
)
(cond
((and
(< (-> (the-as anim-test-seq-item gp-0) speed) 0)
(< -100 (-> (the-as anim-test-seq-item gp-0) speed))
)
(let ((s1-2 draw-string-adv))
(let ((s0-2 format)
(a0-33 (clear *temp-string*))
(a1-14 "-0.~1d")
(v1-61 (abs (-> (the-as anim-test-seq-item gp-0) speed)))
)
(s0-2 a0-33 a1-14 (/ (mod v1-61 100) 10))
)
(s1-2 *temp-string* s2-2 s3-0)
)
)
(else
(let ((s1-3 draw-string-adv))
(let ((s0-3 format)
(a0-36 (clear *temp-string*))
(a1-16 "~2d.~1d")
(a2-21 (/ (-> (the-as anim-test-seq-item gp-0) speed) 100))
(v1-64 (abs (-> (the-as anim-test-seq-item gp-0) speed)))
)
(s0-3 a0-36 a1-16 a2-21 (/ (mod v1-64 100) 10))
)
(s1-3 *temp-string* s2-2 s3-0)
)
)
)
(let ((s1-4 draw-string-adv))
(format
(clear *temp-string*)
" ~4d"
(-> (the-as anim-test-seq-item gp-0) blend)
)
(s1-4 *temp-string* s2-2 s3-0)
)
(anim-tester-disp-frame-num
" "
(-> (the-as anim-test-seq-item gp-0) first-frame)
(-> (the-as anim-test-seq-item gp-0) artist-base)
s3-0
)
(anim-tester-disp-frame-num
" "
(-> (the-as anim-test-seq-item gp-0) last-frame)
(-> (the-as anim-test-seq-item gp-0) artist-base)
s3-0
)
(let ((s1-5 draw-string-adv))
(format
(clear *temp-string*)
" ~S~S~S~S"
(if (logtest? (-> (the-as anim-test-seq-item gp-0) flags) 2)
"B"
"-"
)
"-"
"-"
"-"
)
(s1-5 *temp-string* s2-2 s3-0)
)
)
(let* ((a1-24 (-> anim-test-field-highlight-lw 9 left))
(v1-69 s3-0)
(a1-26
(+ (-> arg1 xpos) (* a1-24 (-> *DISP_LIST-bank* CHAR_WIDTH)))
)
(a0-47 (-> arg1 ypos))
)
(set! (-> v1-69 origin x) (the float a1-26))
(set! (-> v1-69 origin y) (the float a0-47))
)
(draw-string-adv "MID" s2-2 s3-0)
(let ((a3-15 (-> s2-2 base)))
(let ((v1-70 (the-as object (-> s2-2 base))))
(set!
(-> (the-as dma-packet v1-70) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-70) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-70) vif1) (new 'static 'vif-tag))
(set! (-> s2-2 base) (&+ (the-as pointer v1-70) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
(the-as pointer s4-1)
(the-as (pointer dma-tag) a3-15)
)
)
)
)
)
)
((= arg0 1)
(return #t)
)
((= arg0 4)
(cond
((logtest? (-> *anim-tester* 0 flags) 8)
(let ((v1-88 (-> *anim-tester* 0 item-field)))
(cond
((zero? v1-88)
(cond
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
(set!
(-> *anim-tester* 0 flags)
(logand -9 (-> *anim-tester* 0 flags))
)
(let
((v0-24
(the-as
anim-test-obj
(glst-get-node-by-index
(-> *anim-tester* 0 pick-con list)
(-> *anim-tester* 0 pick-con highlight-index)
)
)
)
)
(when (and v0-24 (let ((v1-101 (&-> v0-24 obj-art-group)))
"is the list empty, #t = empty"
(not (= (-> v1-101 2) v1-101))
)
)
(let ((v1-103 (&-> v0-24 obj-art-group)))
"return the start of the list"
(let ((a1-30 (-> v1-103 0)))
(anim-test-seq-item-copy!
(the-as anim-test-seq-item gp-0)
(the-as anim-test-seq-item a1-30)
)
)
)
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
)
)
)
((logtest?
(-> *cpad-list* cpads 0 button0-rel 0)
(pad-buttons square)
)
(set!
(-> *anim-tester* 0 flags)
(logand -9 (-> *anim-tester* 0 flags))
)
)
)
)
((= v1-88 9)
(cond
((zero?
(logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x))
)
(set!
(-> *anim-tester* 0 flags)
(logand -9 (-> *anim-tester* 0 flags))
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
(let ((v1-124 (the-as anim-test-seq-item gp-0)))
"return the previous node in the list"
(let* ((s3-1 (-> v1-124 prev))
(v1-125 s3-1)
)
"is this node the start of the list. #t = start"
(when (not (not (-> v1-125 prev)))
(glst-remove
(-> (the-as anim-test-sequence s4-0) item-list)
(the-as anim-test-seq-item gp-0)
)
(glst-insert-before
(-> (the-as anim-test-sequence s4-0) item-list)
s3-1
(the-as anim-test-seq-item gp-0)
)
(+! (-> arg1 current-index) -1)
(+! (-> arg1 highlight-index) -1)
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
(let ((a1-33 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-33 from) pp)
(set! (-> a1-33 num-params) 0)
(set! (-> a1-33 message) 'change-anim)
(send-event-function (ppointer->process *anim-tester*) a1-33)
)
)
)
)
)
((logtest?
(-> *cpad-list* cpads 0 button0-rel 0)
(pad-buttons down)
)
(let ((v1-142 (the-as anim-test-seq-item gp-0)))
"return the next node in the list"
(let* ((s3-2 (the-as anim-test-seq-item (-> v1-142 next)))
(v1-143 s3-2)
)
"is this node the end of the list. #t = end"
(when
(and
(not (not (-> v1-143 next)))
(zero? (logand (-> s3-2 flags) 1))
)
(glst-remove
(-> (the-as anim-test-sequence s4-0) item-list)
(the-as anim-test-seq-item gp-0)
)
(glst-insert-after
(-> (the-as anim-test-sequence s4-0) item-list)
s3-2
(the-as anim-test-seq-item gp-0)
)
(+! (-> arg1 current-index) 1)
(+! (-> arg1 highlight-index) 1)
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
(let ((a1-36 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-36 from) pp)
(set! (-> a1-36 num-params) 0)
(set! (-> a1-36 message) 'change-anim)
(send-event-function (ppointer->process *anim-tester*) a1-36)
)
)
)
)
)
)
)
((or (= v1-88 1) (= v1-88 2) (= v1-88 3) (= v1-88 4))
(cond
((zero?
(logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x))
)
(set!
(-> *anim-tester* 0 flags)
(logand -9 (-> *anim-tester* 0 flags))
)
)
((begin
(set! (-> arg1 current-index) (-> arg1 the-index))
(<= (-> *anim-tester* 0 inc-timer) 0)
)
(if (> (-> *anim-tester* 0 inc-delay) 0)
(+! (-> *anim-tester* 0 inc-delay) -1)
)
(set!
(-> *anim-tester* 0 inc-timer)
(-> *anim-tester* 0 inc-delay)
)
(case (-> *anim-tester* 0 item-field)
((1)
(cond
((logtest?
(-> *cpad-list* cpads 0 button0-abs 0)
(pad-buttons down)
)
(+! (-> (the-as anim-test-seq-item gp-0) speed) -10)
(anim-test-seq-mark-as-edited
(the-as anim-test-sequence s4-0)
)
(if (< (-> (the-as anim-test-seq-item gp-0) speed) -300)
(set! (-> (the-as anim-test-seq-item gp-0) speed) -300)
)
)
((logtest?
(-> *cpad-list* cpads 0 button0-abs 0)
(pad-buttons up)
)
(+! (-> (the-as anim-test-seq-item gp-0) speed) 10)
(anim-test-seq-mark-as-edited
(the-as anim-test-sequence s4-0)
)
(if (< 1000 (-> (the-as anim-test-seq-item gp-0) speed))
(set! (-> (the-as anim-test-seq-item gp-0) speed) 1000)
)
)
)
)
((2)
(cond
((logtest?
(-> *cpad-list* cpads 0 button0-abs 0)
(pad-buttons down)
)
(+! (-> (the-as anim-test-seq-item gp-0) blend) -1)
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
(when (< (-> (the-as anim-test-seq-item gp-0) blend) 0)
(set! (-> (the-as anim-test-seq-item gp-0) blend) 0)
0
)
)
((logtest?
(-> *cpad-list* cpads 0 button0-abs 0)
(pad-buttons up)
)
(+! (-> (the-as anim-test-seq-item gp-0) blend) 1)
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
(if (< 9999 (-> (the-as anim-test-seq-item gp-0) blend))
(set! (-> (the-as anim-test-seq-item gp-0) blend) 9999)
)
)
)
)
((3)
(let ((f30-0 (-> (the-as anim-test-seq-item gp-0) first-frame)))
(set!
(-> (the-as anim-test-seq-item gp-0) first-frame)
(anim-tester-adjust-frame
(-> (the-as anim-test-seq-item gp-0) first-frame)
(-> (the-as anim-test-seq-item gp-0) num-frames)
)
)
(if (!= f30-0 (-> (the-as anim-test-seq-item gp-0) first-frame))
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
)
)
)
((4)
(let ((f30-1 (-> (the-as anim-test-seq-item gp-0) last-frame)))
(set!
(-> (the-as anim-test-seq-item gp-0) last-frame)
(anim-tester-adjust-frame
(-> (the-as anim-test-seq-item gp-0) last-frame)
(-> (the-as anim-test-seq-item gp-0) num-frames)
)
)
(if (!= f30-1 (-> (the-as anim-test-seq-item gp-0) last-frame))
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
)
)
)
)
)
(else
(+! (-> *anim-tester* 0 inc-timer) -1)
)
)
(when
(or
(logtest?
(-> *cpad-list* cpads 0 button0-rel 0)
(pad-buttons down)
)
(logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
)
(set!
(-> *anim-tester* 0 inc-delay)
(-> *DISP_LIST-bank* INC_DELAY)
)
(set! (-> *anim-tester* 0 inc-timer) 0)
0
)
)
)
)
)
(else
(cond
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons up))
(if (> (-> arg1 highlight-index) 0)
(+! (-> arg1 highlight-index) -1)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons down))
(if
(<
(the-as int (the-as anim-test-seq-item (-> arg1 highlight-index)))
(glst-num-elements (-> arg1 list))
)
(+! (-> arg1 highlight-index) 1)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left))
(+! (-> *anim-tester* 0 item-field) -1)
(if (< (-> *anim-tester* 0 item-field) 0)
(set! (-> *anim-tester* 0 item-field) 11)
)
(if (= (-> *anim-tester* 0 item-field) 8)
(set! (-> *anim-tester* 0 item-field) 5)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right))
(+! (-> *anim-tester* 0 item-field) 1)
(when (>= (-> *anim-tester* 0 item-field) 12)
(set! (-> *anim-tester* 0 item-field) 0)
0
)
(if (= (-> *anim-tester* 0 item-field) 6)
(set! (-> *anim-tester* 0 item-field) 9)
)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons square))
(logclear!
(-> *cpad-list* cpads 0 button0-abs 0)
(pad-buttons square)
)
(logclear!
(-> *cpad-list* cpads 0 button0-rel 0)
(pad-buttons square)
)
(set! (-> *anim-tester* 0 edit-mode) 3)
(logior! (-> *anim-tester* 0 flags) 4)
)
((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
(cond
((logtest? (-> (the-as anim-test-seq-item gp-0) flags) 1)
(let ((v1-318 (-> *anim-tester* 0 item-field)))
(if (= v1-318 10)
(anim-test-edit-seq-insert-item
(the-as anim-test-seq-item gp-0)
(the-as anim-test-sequence s4-0)
)
)
)
)
(else
(let ((v1-322 (-> *anim-tester* 0 item-field)))
(cond
((zero? v1-322)
(anim-tester-pick-item-setup
(the-as anim-test-seq-item gp-0)
(the-as anim-test-sequence s4-0)
)
)
((= v1-322 10)
(anim-test-edit-seq-insert-item
(the-as anim-test-seq-item gp-0)
(the-as anim-test-sequence s4-0)
)
)
((= v1-322 11)
(when
(zero? (logand (-> (the-as anim-test-seq-item gp-0) flags) 1))
(anim-test-seq-mark-as-edited (the-as anim-test-sequence s4-0))
(glst-remove
(-> (the-as anim-test-sequence s4-0) item-list)
(the-as anim-test-seq-item gp-0)
)
)
(let ((a1-46 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-46 from) pp)
(set! (-> a1-46 num-params) 0)
(set! (-> a1-46 message) 'change-anim)
(send-event-function (ppointer->process *anim-tester*) a1-46)
)
)
(else
(when
(zero? (logand (-> (the-as anim-test-seq-item gp-0) flags) 4))
(let ((v1-334 (-> *anim-tester* 0 item-field)))
(the-as int (cond
((= v1-334 5)
(anim-test-seq-mark-as-edited
(the-as anim-test-sequence s4-0)
)
(let
((v1-331
(logxor
(-> (the-as anim-test-seq-item gp-0) flags)
2
)
)
)
(set!
(-> (the-as anim-test-seq-item gp-0) flags)
v1-331
)
v1-331
)
)
((= v1-334 6)
(the-as int #f)
)
((= v1-334 7)
(the-as int #f)
)
((= v1-334 8)
(the-as int #f)
)
(else
(logior! (-> *anim-tester* 0 flags) 8)
(set!
(-> *anim-tester* 0 inc-delay)
(-> *DISP_LIST-bank* INC_DELAY)
)
(set! (-> *anim-tester* 0 inc-timer) 0)
0
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
((= arg0 2)
(set! (-> arg1 return-int) (-> *ANIM_TESTER-bank* EDIT_LIST_MIN_WIDTH))
)
((= arg0 3)
(let*
((s3-3 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(gp-2 (-> s3-3 base))
)
(let ((s1-6 draw-string-xy))
(format
(clear *temp-string*)
"--Seq--(~-17S)--"
(-> (the-as anim-test-sequence s4-0) privname)
)
(s1-6
*temp-string*
s3-3
(-> arg1 xpos)
(-> arg1 ypos)
(font-color dim-white)
(font-flags shadow kerning)
)
)
(let ((a3-17 (-> s3-3 base)))
(let ((v1-355 (the-as object (-> s3-3 base))))
(set!
(-> (the-as dma-packet v1-355) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-355) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-355) vif1) (new 'static 'vif-tag))
(set! (-> s3-3 base) (&+ (the-as pointer v1-355) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
gp-2
(the-as (pointer dma-tag) a3-17)
)
)
)
(the-as none (cond
(s2-0
(display-list-control (-> *anim-tester* 0 pick-con))
)
(else
(let*
((s4-2
(->
*display*
frames
(-> *display* on-screen)
frame
debug-buf
)
)
(gp-3 (-> s4-2 base))
)
(draw-string-xy
"-spd-blnd-1st-lst-flgs-mov-"
s4-2
(+
(-> arg1 xpos)
(*
(-> *ANIM_TESTER-bank* EDIT_STATS_X)
(-> *DISP_LIST-bank* CHAR_WIDTH)
)
)
(-> arg1 ypos)
(font-color dim-white)
(font-flags shadow kerning)
)
(let ((a3-21 (-> s4-2 base)))
(let ((v1-367 (the-as object (-> s4-2 base))))
(set!
(-> (the-as dma-packet v1-367) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set!
(-> (the-as dma-packet v1-367) vif0)
(new 'static 'vif-tag)
)
(set!
(-> (the-as dma-packet v1-367) vif1)
(new 'static 'vif-tag)
)
(set! (-> s4-2 base) (&+ (the-as pointer v1-367) 16))
)
(dma-bucket-insert-tag
(->
*display*
frames
(-> *display* on-screen)
frame
bucket-group
)
(bucket-id debug-draw0)
gp-3
(the-as (pointer dma-tag) a3-21)
)
)
)
)
)
)
)
)
)
#f
)
)
;; definition for function anim-tester-interface
;; INFO: Return type mismatch int vs none.
(defbehavior anim-tester-interface anim-tester ()
(let ((v1-0 (-> self edit-mode)))
(cond
((zero? v1-0)
(when (logtest? (-> *anim-tester* 0 flags) 4)
(set! (-> *anim-tester* 0 flags) (logand -5 (-> *anim-tester* 0 flags)))
(set-master-mode 'menu)
)
)
((= v1-0 1)
(display-list-control (-> self list-con))
)
((= v1-0 2)
(let
((gp-0
(the-as
anim-test-obj
(glst-find-node-by-name (-> self obj-list) (-> self current-obj))
)
)
)
(cond
(gp-0
(set! (-> gp-0 list-con listfunc) anim-test-anim-list-handler)
(set! (-> gp-0 list-con current-index) (-> gp-0 anim-index))
(set! (-> gp-0 list-con highlight-index) (-> gp-0 anim-hindex))
(display-list-control (-> gp-0 list-con))
(set! (-> gp-0 anim-index) (-> gp-0 list-con current-index))
(set! (-> gp-0 anim-hindex) (-> gp-0 list-con highlight-index))
)
(else
(let*
((s5-0 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(gp-1 (-> s5-0 base))
)
(draw-string-xy
"ERROR: current object not found"
s5-0
(-> *ANIM_TESTER-bank* ANIM_LIST_X)
(-> *ANIM_TESTER-bank* ANIM_LIST_Y)
(font-color orange-red-2)
(font-flags shadow kerning)
)
(let ((a3-1 (-> s5-0 base)))
(let ((v1-20 (the-as object (-> s5-0 base))))
(set!
(-> (the-as dma-packet v1-20) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-20) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-20) vif1) (new 'static 'vif-tag))
(set! (-> s5-0 base) (&+ (the-as pointer v1-20) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
gp-1
(the-as (pointer dma-tag) a3-1)
)
)
)
)
)
)
)
((= v1-0 3)
(let
((gp-2
(the-as
anim-test-obj
(glst-find-node-by-name (-> self obj-list) (-> self current-obj))
)
)
)
(cond
(gp-2
(set! (-> gp-2 list-con listfunc) anim-test-sequence-list-handler)
(set! (-> gp-2 list-con current-index) (-> gp-2 seq-index))
(set! (-> gp-2 list-con highlight-index) (-> gp-2 seq-hindex))
(display-list-control (-> gp-2 list-con))
(set! (-> gp-2 seq-index) (-> gp-2 list-con current-index))
(set! (-> gp-2 seq-hindex) (-> gp-2 list-con highlight-index))
)
(else
(let*
((s5-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(gp-3 (-> s5-1 base))
)
(draw-string-xy
"ERROR: current object not found"
s5-1
(-> *ANIM_TESTER-bank* ANIM_LIST_X)
(-> *ANIM_TESTER-bank* ANIM_LIST_Y)
(font-color orange-red-2)
(font-flags shadow kerning)
)
(let ((a3-3 (-> s5-1 base)))
(let ((v1-36 (the-as object (-> s5-1 base))))
(set!
(-> (the-as dma-packet v1-36) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-36) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-36) vif1) (new 'static 'vif-tag))
(set! (-> s5-1 base) (&+ (the-as pointer v1-36) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
gp-3
(the-as (pointer dma-tag) a3-3)
)
)
)
)
)
)
)
((= v1-0 4)
(let
((v1-43
(the-as
anim-test-obj
(glst-find-node-by-name (-> self obj-list) (-> self current-obj))
)
)
)
(cond
(v1-43
(let
((v1-44
(the-as
anim-test-sequence
(glst-get-node-by-index
(-> v1-43 seq-list)
(-> v1-43 list-con current-index)
)
)
)
)
(cond
(v1-44
(display-list-control (-> v1-44 list-con))
)
(else
(let*
((s5-2
(-> *display* frames (-> *display* on-screen) frame debug-buf)
)
(gp-4 (-> s5-2 base))
)
(draw-string-xy
"ERROR: current sequence not found"
s5-2
(-> *ANIM_TESTER-bank* EDIT_LIST_X)
(-> *ANIM_TESTER-bank* EDIT_LIST_Y)
(font-color orange-red-2)
(font-flags shadow kerning)
)
(let ((a3-5 (-> s5-2 base)))
(let ((v1-51 (the-as object (-> s5-2 base))))
(set!
(-> (the-as dma-packet v1-51) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-51) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-51) vif1) (new 'static 'vif-tag))
(set! (-> s5-2 base) (&+ (the-as pointer v1-51) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
gp-4
(the-as (pointer dma-tag) a3-5)
)
)
)
)
)
)
)
(else
(let*
((s5-3 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(gp-5 (-> s5-3 base))
)
(draw-string-xy
"ERROR: current object not found"
s5-3
(-> *ANIM_TESTER-bank* EDIT_LIST_X)
(-> *ANIM_TESTER-bank* EDIT_LIST_Y)
(font-color orange-red-2)
(font-flags shadow kerning)
)
(let ((a3-7 (-> s5-3 base)))
(let ((v1-62 (the-as object (-> s5-3 base))))
(set!
(-> (the-as dma-packet v1-62) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-62) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-62) vif1) (new 'static 'vif-tag))
(set! (-> s5-3 base) (&+ (the-as pointer v1-62) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
gp-5
(the-as (pointer dma-tag) a3-7)
)
)
)
)
)
)
)
)
)
(set! (-> self old-mode) (-> self edit-mode))
(none)
)
;; definition for function anim-tester-get-playing-item
(defun anim-tester-get-playing-item ((arg0 anim-test-sequence))
(let
((v0-0
((the-as
(function glst-list int anim-test-seq-item)
glst-get-node-by-index
)
(-> arg0 item-list)
(-> arg0 playing-item)
)
)
)
(let ((s5-0 v0-0)
(s4-0 (-> arg0 playing-item))
)
(when (logtest? (-> v0-0 flags) 5)
(while #t
(+! s4-0 1)
(if (>= s4-0 (glst-num-elements (-> arg0 item-list)))
(set! s4-0 0)
)
(set!
v0-0
((the-as
(function glst-list int anim-test-seq-item)
glst-get-node-by-index
)
(-> arg0 item-list)
s4-0
)
)
(when (or (= v0-0 s5-0) (zero? (logand (-> v0-0 flags) 5)))
(set! (-> arg0 playing-item) s4-0)
(return v0-0)
)
)
)
)
v0-0
)
)
;; failed to figure out what this is:
(defstate anim-tester-process (anim-tester)
:event
anim-tester-standard-event-handler
:enter
(behavior ()
(logior! (-> self flags) 2)
(none)
)
:trans
(behavior ()
(if (and (zero? (logand (-> self flags) 2)) (= *master-mode* 'menu))
(anim-tester-interface)
)
(set! (-> self flags) (logand -3 (-> self flags)))
(when (!= *master-mode* 'menu)
(dummy-10 (-> self skel) (the-as symbol *stdcon*))
(add-debug-x
#t
(bucket-id debug-draw1)
(-> self root trans)
(new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
)
)
(none)
)
:code
(behavior ()
(local-vars
(s4-0 glst-node)
(s5-1 anim-test-seq-item)
(gp-2 anim-test-sequence)
)
(while #t
(set! (-> self flags) (logand -2 (-> self flags)))
(let ((v1-2 (-> self obj-list)))
"is the list empty, #t = empty"
(cond
((= (-> v1-2 tailpred) v1-2)
(format *stdcon* "anim-tester:no objects loaded~%")
(set! (-> self list-con current-index) 0)
(set! (-> self current-obj) "")
(suspend)
0
)
((begin
(set!
s4-0
(glst-find-node-by-name (-> self obj-list) (-> self current-obj))
)
(when (not s4-0)
(if
(>=
(-> self list-con current-index)
(glst-num-elements (-> self obj-list))
)
(set!
(-> self list-con current-index)
(+ (glst-num-elements (-> self obj-list)) -1)
)
)
(set!
s4-0
(glst-get-node-by-index
(-> self obj-list)
(-> self list-con current-index)
)
)
(set! (-> self current-obj) (-> (the-as anim-test-obj s4-0) privname))
)
(let
((v1-10 (the-as structure (-> (the-as anim-test-obj s4-0) seq-list))))
"is the list empty, #t = empty"
(= (-> (the-as anim-test-obj v1-10) privname) (the-as glst-list v1-10))
)
)
(format *stdcon* "anim-tester:no anims loaded~%")
(format *stdcon* "displaying without anim not yet implement~%")
(set! (-> self flags) (logand -2 (-> self flags)))
(suspend)
0
)
((begin
(if
(>=
(-> (the-as anim-test-obj s4-0) list-con current-index)
(glst-num-elements (-> (the-as anim-test-obj s4-0) seq-list))
)
(set!
(-> (the-as anim-test-obj s4-0) list-con current-index)
(+ (glst-num-elements (-> (the-as anim-test-obj s4-0) seq-list)) -1)
)
)
(set!
gp-2
(the-as
anim-test-sequence
(glst-get-node-by-index
(-> (the-as anim-test-obj s4-0) seq-list)
(if (logtest? (-> (the-as anim-test-obj s4-0) flags) 2)
(-> (the-as anim-test-obj s4-0) seq-index)
(-> (the-as anim-test-obj s4-0) anim-index)
)
)
)
)
(let ((v1-18 (-> gp-2 item-list)))
"is the list empty, #t = empty"
(= (-> v1-18 tailpred) v1-18)
)
)
(format
*stdcon*
"anim-tester:no items in sequence ~A~%"
(-> gp-2 privname)
)
(format *stdcon* "displaying without anim not yet implement~%")
(suspend)
0
)
((begin
(when
(>= (-> gp-2 playing-item) (glst-num-elements (-> gp-2 item-list)))
(set! (-> gp-2 playing-item) 0)
0
)
(set! s5-1 (anim-tester-get-playing-item gp-2))
s5-1
)
(let
((s4-1
(the-as
art-joint-anim
(dummy-10
(-> (the-as anim-test-obj s4-0) obj-art-group)
(-> s5-1 privname)
art-joint-anim
)
)
)
)
(anim-tester-update-anim-info s5-1)
(cond
(s4-1
(logior! (-> self flags) 1)
(if (nonzero? (-> s5-1 blend))
(ja-channel-push!
1
(the int (* (the float (-> s5-1 blend)) (-> self anim-gspeed)))
)
(ja-channel-set! 1)
)
(cond
((= (-> self anim-first) (-> (new 'static 'array float 1 -1.0) 0))
(let ((s3-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval! s3-0 s4-1 num-func-identity)
(set! (-> s3-0 frame-num) 0.0)
)
)
((= (-> self anim-first) (-> (new 'static 'array float 1 -2.0) 0))
(let ((s3-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval! s3-1 s4-1 num-func-identity)
(set!
(-> s3-1 frame-num)
(the float (+ (-> s4-1 data 0 length) -1))
)
)
)
(else
(let ((s3-2 (-> self skel root-channel 0)))
(joint-control-channel-group-eval! s3-2 s4-1 num-func-identity)
(set! (-> s3-2 frame-num) (-> self anim-first))
)
)
)
(when (nonzero? (-> s5-1 blend))
(while
(and
(!= (-> self skel root-channel 0) (-> self skel channel))
(logtest? (-> s5-1 flags) 2)
)
(when (logtest? (-> self flags) 32)
(TODO-RENAME-9 (-> self align))
(TODO-RENAME-10
(-> self align)
31
(-> (new 'static 'array float 1 1.0) 0)
(-> (new 'static 'array float 1 1.0) 0)
(-> (new 'static 'array float 1 1.0) 0)
)
)
(suspend)
)
)
(until (ja-done? 0)
(when (logtest? (-> self flags) 32)
(TODO-RENAME-9 (-> self align))
(TODO-RENAME-10
(-> self align)
31
(-> (new 'static 'array float 1 1.0) 0)
(-> (new 'static 'array float 1 1.0) 0)
(-> (new 'static 'array float 1 1.0) 0)
)
)
(suspend)
(anim-tester-update-anim-info s5-1)
(let
((v1-73
(= (-> self anim-last) (-> (new 'static 'array float 1 -2.0) 0))
)
)
(cond
((or v1-73 (>= (-> self anim-last) (-> self anim-first)))
(cond
((= (-> self anim-last) (-> (new 'static 'array float 1 -2.0) 0))
(let ((a0-42 (-> self skel root-channel 0)))
(set!
(-> a0-42 param 0)
(the float (+ (-> a0-42 frame-group data 0 length) -1))
)
(set! (-> a0-42 param 1) (-> self anim-speed))
(joint-control-channel-group-eval!
a0-42
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(else
(let ((a0-43 (-> self skel root-channel 0)))
(set! (-> a0-43 param 0) (-> self anim-last))
(set! (-> a0-43 param 1) (-> self anim-speed))
(joint-control-channel-group-eval!
a0-43
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
)
((= (-> self anim-last) (-> (new 'static 'array float 1 -1.0) 0))
(let ((a0-44 (-> self skel root-channel 0)))
(set! (-> a0-44 param 0) 0.0)
(set! (-> a0-44 param 1) (-> self anim-speed))
(joint-control-channel-group-eval!
a0-44
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(else
(let ((a0-45 (-> self skel root-channel 0)))
(set! (-> a0-45 param 0) (-> self anim-last))
(set! (-> a0-45 param 1) (-> self anim-speed))
(joint-control-channel-group-eval!
a0-45
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
)
)
(+! (-> gp-2 playing-item) 1)
)
(else
(format *stdcon* "anim ~A not found~%" (-> s5-1 privname))
(suspend)
0
)
)
)
)
(else
(format *stdcon* "no anims~%")
(suspend)
0
)
)
)
)
(none)
)
:post
anim-tester-post
)
;; definition for function initialize-anim-tester
(defbehavior initialize-anim-tester anim-tester ()
(glst-init-list! (-> self obj-list))
(logclear! (-> self mask) (process-mask menu))
(set! (-> self speed) 100)
(set! (-> self current-obj) "")
(set! (-> self root) (new 'process 'trsqv))
(set!
(-> self draw)
(new 'process 'draw-control self (the-as art-joint-geo #f))
)
(set! (-> self draw dma-add-func) dma-add-process-drawable)
(set! (-> self skel) (new 'process 'joint-control 24))
(set! (-> self align) (new 'process 'align-control self))
(set! (-> self list-con listfunc) anim-test-obj-list-handler)
(set! (-> self list-con left) (-> *ANIM_TESTER-bank* OBJECT_LIST_X))
(set! (-> self list-con top) (-> *ANIM_TESTER-bank* OBJECT_LIST_Y))
(set! (-> self list-con list) (-> self obj-list))
(set! (-> self list-con list-owner) (the-as uint self))
(quaternion-identity! (-> self root quat))
(vector-identity! (-> self root scale))
(position-in-front-of-camera!
(-> self root trans)
(-> (new 'static 'array float 1 40960.0) 0)
(-> (new 'static 'array float 1 4096.0) 0)
)
(set! (-> self event-hook) anim-tester-standard-event-handler)
(anim-tester-reset)
(go anim-tester-process)
(none)
)
;; definition for function anim-tester-string-get-frame!!
(defun anim-tester-string-get-frame!! ((arg0 list-field) (arg1 string))
(cond
((string-get-arg!! *temp-string* arg1)
(cond
((or (string= *temp-string* "max") (string= *temp-string* "MAX"))
(set! (-> arg0 left) -2)
)
((or (string= *temp-string* "min") (string= *temp-string* "MIN"))
(set! (-> arg0 left) -1)
)
(else
(set! (-> arg0 left) (string->int *temp-string*))
)
)
#t
)
(else
#f
)
)
)
;; definition for function anim-tester-load-object-seqs
(defun anim-tester-load-object-seqs ()
#f
)
;; definition for function anim-tester-save-object-seqs
(defun anim-tester-save-object-seqs ((arg0 anim-test-obj))
(let ((gp-0 format)
(s4-0 0)
(s3-0 "saving object ~s to ~s~%")
(s2-0 (-> arg0 privname))
)
(format (clear *temp-string*) "data/~s.obinf" (-> arg0 privname))
(gp-0 s4-0 s3-0 s2-0 *temp-string*)
)
(let ((gp-1 (method-of-type file-stream new))
(s4-1 (new 'stack-no-clear 'file-stream))
(s3-1 file-stream)
)
(format (clear *temp-string*) "data/~s.obinf" (-> arg0 privname))
(let ((gp-2 (gp-1 (the-as symbol s4-1) s3-1 *temp-string* 'write)))
(format gp-2 "major-version 0~%")
(format gp-2 "minor-version 0~%")
(format gp-2 "Object \"~S\" ~d~%" (-> arg0 privname) 0)
(let ((v1-5 (-> arg0 seq-list)))
"return the start of the list"
(let ((s5-1 (-> v1-5 head)))
(while (let ((v1-30 (the-as anim-test-sequence s5-1)))
"is this node the end of the list. #t = end"
(not (not (-> v1-30 next)))
)
(set!
(-> (the-as anim-test-sequence s5-1) flags)
(logand -5 (-> (the-as anim-test-sequence s5-1) flags))
)
(format
gp-2
" ~S \"~S\" ~d~%"
(if (logtest? (-> (the-as anim-test-sequence s5-1) flags) 1)
"Sequence"
"Anim"
)
(-> (the-as anim-test-sequence s5-1) privname)
0
)
(let ((v1-11 (-> (the-as anim-test-sequence s5-1) item-list)))
"return the start of the list"
(let ((s4-2 (the-as anim-test-seq-item (-> v1-11 head))))
(while (let ((v1-21 s4-2))
"is this node the end of the list. #t = end"
(not (not (-> v1-21 next)))
)
(when (zero? (logand (-> s4-2 flags) 5))
(format
gp-2
" Item \"~S\" ~d ~d "
(-> s4-2 privname)
(-> s4-2 speed)
(-> s4-2 blend)
)
(anim-tester-num-print gp-2 (-> s4-2 first-frame))
(format gp-2 " ")
(anim-tester-num-print gp-2 (-> s4-2 last-frame))
(format gp-2 " ~S~%" (if (logtest? (-> s4-2 flags) 2)
"B"
"-"
)
)
)
"return the next node in the list"
(set! s4-2 (the-as anim-test-seq-item (-> s4-2 next)))
)
)
)
(format
gp-2
" ~S~%"
(if (logtest? (-> (the-as anim-test-sequence s5-1) flags) 1)
"EndSequence"
"EndAnim"
)
)
"return the next node in the list"
(set! s5-1 (-> (the-as anim-test-sequence s5-1) next))
)
)
)
(format gp-2 "EndObject~%")
(file-stream-close gp-2)
)
)
)
;; definition for function anim-tester-save-all-objects
(defun anim-tester-save-all-objects ((arg0 anim-tester))
(let ((v1-0 (-> arg0 obj-list)))
"return the start of the list"
(let ((gp-0 (-> v1-0 head)))
(while (let ((v1-9 (the-as anim-test-obj gp-0)))
"is this node the end of the list. #t = end"
(not (not (-> v1-9 next)))
)
(when (logtest? (-> (the-as anim-test-obj gp-0) flags) 1)
(set!
(-> (the-as anim-test-obj gp-0) flags)
(logand -2 (-> (the-as anim-test-obj gp-0) flags))
)
(anim-tester-save-object-seqs (the-as anim-test-obj gp-0))
)
"return the next node in the list"
(set! gp-0 (-> (the-as anim-test-obj gp-0) next))
)
)
)
#f
)
;; definition for function anim-tester-add-newobj
;; Used lq/sq
(defun anim-tester-add-newobj ((arg0 anim-tester) (arg1 string) (arg2 art-group))
(local-vars (sv-96 art-element) (sv-112 art-element) (sv-128 anim-test-obj))
(with-pp
(let ((s2-0 (the-as anim-test-obj #f))
(s5-0 (the-as anim-test-obj #f))
)
(let ((s1-0 (the-as art-element #f))
(s0-0 (the-as structure #f))
)
(dotimes (s3-0 (-> arg2 length))
(cond
((and (= (-> arg2 data s3-0 type) merc-ctrl) (not s2-0))
(set! sv-96 (-> arg2 data s3-0))
(set! s0-0 (and s2-0 s0-0))
(if s0-0
(anim-test-obj-remove-invalid s2-0)
)
(let ((t9-1 anim-tester-load-object-seqs))
(-> sv-96 name)
(t9-1)
)
(set!
s2-0
(the-as
anim-test-obj
(glst-find-node-by-name (-> arg0 obj-list) (-> sv-96 name))
)
)
(set! s0-0 (if s2-0
#t
#f
)
)
(cond
((the-as symbol s0-0)
)
(else
(set! s2-0 (new 'global 'anim-test-obj 1 (-> sv-96 name) arg2))
(glst-add-tail (-> arg0 obj-list) s2-0)
)
)
(anim-test-obj-init s2-0 (the-as list-control arg0))
(set! (-> s2-0 obj-art-group) arg2)
(set! (-> s2-0 mesh-geo) (the-as merc-ctrl sv-96))
(set! (-> s2-0 joint-geo) (the-as art-joint-geo s1-0))
(if (not s5-0)
(set! s5-0 s2-0)
)
)
((= (-> arg2 data s3-0 type) art-joint-geo)
(if (and s2-0 (not (-> s2-0 joint-geo)))
(set! (-> s2-0 joint-geo) (the-as art-joint-geo (-> arg2 data s3-0)))
)
(if (not s1-0)
(set! s1-0 (-> arg2 data s3-0))
)
)
((= (-> arg2 data s3-0 type) art-joint-anim)
(when s2-0
(set! sv-112 (-> arg2 data s3-0))
(set!
sv-128
(the-as
anim-test-obj
(glst-find-node-by-name (-> s2-0 seq-list) (-> sv-112 name))
)
)
(when (not sv-128)
(set!
sv-128
(the-as
anim-test-obj
(new 'debug 'anim-test-sequence 1 (-> sv-112 name))
)
)
(glst-add-tail (-> s2-0 seq-list) sv-128)
(anim-test-sequence-init (the-as anim-test-sequence sv-128) s2-0)
(let ((a1-11 (new 'debug 'anim-test-seq-item 1 (-> sv-112 name))))
(glst-add-tail (the-as glst-list (&-> sv-128 obj-art-group)) a1-11)
)
)
(set! (-> sv-128 list-con user-info) (the-as int s2-0))
(set!
(-> sv-128 flags)
(logior (-> (the-as anim-test-sequence sv-128) flags) 2)
)
(let ((v1-48 (-> (the-as anim-test-sequence sv-128) item-list)))
"is the list empty, #t = empty"
(when (not (= (-> v1-48 tailpred) v1-48))
(let ((v1-51 (-> (the-as anim-test-sequence sv-128) item-list)))
"return the start of the list"
(let ((v1-52 (-> v1-51 head)))
(set!
(-> (the-as anim-test-seq-item v1-52) num-frames)
(the float (-> (the-as art-joint-anim sv-112) data 0 length))
)
(set!
(-> (the-as anim-test-seq-item v1-52) artist-base)
(-> (the-as art-joint-anim sv-112) artist-base)
)
(set!
(-> (the-as anim-test-seq-item v1-52) parent)
(the-as anim-test-sequence sv-128)
)
)
)
sv-128
)
)
)
)
(else
)
)
)
)
(if s2-0
(anim-test-obj-remove-invalid s2-0)
)
(when s5-0
(set! (-> arg0 current-obj) (-> s5-0 privname))
(set!
(-> arg0 list-con current-index)
(glst-get-node-index (-> arg0 obj-list) s5-0)
)
)
)
(let ((a1-13 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-13 from) pp)
(set! (-> a1-13 num-params) 1)
(set! (-> a1-13 message) 'reset)
(set! (-> a1-13 param 0) (the-as uint #f))
(send-event-function arg0 a1-13)
)
)
)
;; definition for function anim-tester-stop
(defun anim-tester-stop ()
(when *anim-tester*
(kill-by-name 'anim-tester *active-pool*)
(set! *anim-tester* (the-as (pointer anim-tester) #f))
#f
)
)
;; definition for function anim-tester-start
(defun anim-tester-start ()
(with-pp
(anim-tester-stop)
(let ((gp-0 (get-process *16k-dead-pool* anim-tester #x4000)))
(set! *anim-tester* (the-as (pointer anim-tester) (when gp-0
(let
((t9-2
(method-of-type
anim-tester
activate
)
)
)
(t9-2
(the-as
anim-tester
gp-0
)
*default-pool*
'anim-tester
(the-as
pointer
#x70004000
)
)
)
((the-as
(function process function none)
run-function-in-process
)
gp-0
initialize-anim-tester
)
(-> gp-0 ppointer)
)
)
)
)
(set! *camera-orbit-target* *anim-tester*)
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) pp)
(set! (-> a1-3 num-params) 2)
(set! (-> a1-3 message) 'change-state)
(set! (-> a1-3 param 0) (the-as uint cam-orbit))
(set! (-> a1-3 param 1) (the-as uint 0))
(send-event-function *camera* a1-3)
)
#f
)
)
;; definition for function anim-tester-add-object
;; INFO: Return type mismatch object vs none.
(defun anim-tester-add-object ((arg0 string))
(let
((s5-0
(load-to-heap-by-name
(-> *level* level-default art-group)
arg0
#t
global
0
)
)
)
(cond
(s5-0
(if (not *anim-tester*)
(anim-tester-start)
)
(if *anim-tester*
(anim-tester-add-newobj
(the-as anim-tester (ppointer->process *anim-tester*))
arg0
s5-0
)
)
)
(else
(format 0 "ERROR:no object (~A)n" arg0)
)
)
)
(none)
)
;; definition for function anim-tester-set-name
(defun anim-tester-set-name ((arg0 string))
(cond
((zero? (length arg0))
(format #t "ERROR: no name~%")
)
((and *anim-tester* (let ((v1-6 (-> *anim-tester* 0 obj-list)))
"is the list empty, #t = empty"
(not (= (-> v1-6 tailpred) v1-6))
)
)
(let
((s3-0
(the-as
anim-test-obj
(glst-find-node-by-name
(-> *anim-tester* 0 obj-list)
(-> *anim-tester* 0 current-obj)
)
)
)
)
(cond
(s3-0
(let
((s5-0
(the-as
anim-test-sequence
(glst-get-node-by-index
(-> s3-0 seq-list)
(-> s3-0 list-con current-index)
)
)
)
)
(cond
(s5-0
(cond
((logtest? (-> s5-0 flags) 1)
(let ((s4-0 (the-as object (-> s5-0 privname))))
(let ((v1-14 s5-0))
(set! (-> v1-14 privname) "")
)
(cond
((glst-find-node-by-name (-> s3-0 seq-list) arg0)
(format
#t
"ERROR: another sequence is already using that name (~S)~%"
arg0
)
(set! (-> s5-0 privname) (the-as string s4-0))
)
(else
(set! s4-0 arg0)
(set! (-> s5-0 privname) (the-as string s4-0))
)
)
s4-0
)
)
(else
(format #t "ERROR: no sequence selected~%")
)
)
)
(else
(format #t "ERROR: no sequence selected~%")
)
)
)
)
(else
(format #t "ERROR:no object selected~%")
)
)
)
)
(else
(format #t "ERROR:no object loaded~%")
)
)
)
;; definition for function anim-tester-add-sequence
;; INFO: Return type mismatch object vs none.
(defun anim-tester-add-sequence ((arg0 string))
(with-pp
(cond
((zero? (length arg0))
(format #t "ERROR: no name~%")
)
((and *anim-tester* (let ((v1-6 (-> *anim-tester* 0 obj-list)))
"is the list empty, #t = empty"
(not (= (-> v1-6 tailpred) v1-6))
)
)
(let
((s5-0
(the-as
anim-test-obj
(glst-find-node-by-name
(-> *anim-tester* 0 obj-list)
(-> *anim-tester* 0 current-obj)
)
)
)
)
(cond
(s5-0
(let ((s4-0 (glst-find-node-by-name (-> s5-0 seq-list) arg0)))
(cond
(s4-0
(format
#t
"ERROR: there is already a sequence with the name ~S~%"
arg0
)
(set!
(-> s5-0 list-con current-index)
(glst-get-node-index (-> s5-0 seq-list) s4-0)
)
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-5 from) pp)
(set! (-> a1-5 num-params) 0)
(set! (-> a1-5 message) 'edit-sequence)
(send-event-function (ppointer->process *anim-tester*) a1-5)
)
)
(else
(let ((gp-1 (new 'global 'anim-test-sequence 1 arg0)))
(glst-add-tail (-> s5-0 seq-list) gp-1)
(set!
(-> gp-1 list-con listfunc)
anim-test-edit-sequence-list-handler
)
(set! (-> gp-1 list-con left) (-> *ANIM_TESTER-bank* EDIT_LIST_X))
(set! (-> gp-1 list-con top) (-> *ANIM_TESTER-bank* EDIT_LIST_Y))
(set! (-> gp-1 list-con list) (-> gp-1 item-list))
(set! (-> gp-1 list-con list-owner) (the-as uint gp-1))
(set! (-> gp-1 parent) s5-0)
(anim-test-seq-mark-as-edited gp-1)
(logior! (-> gp-1 flags) 1)
(set!
(-> s5-0 list-con current-index)
(glst-get-node-index (-> s5-0 seq-list) gp-1)
)
(set! (-> s5-0 seq-index) (-> s5-0 list-con current-index))
(set! (-> s5-0 seq-hindex) (-> s5-0 list-con current-index))
(let ((s5-1 (new 'debug 'anim-test-seq-item 1 "**END**")))
(logior! (-> s5-1 flags) 1)
(glst-add-tail (-> gp-1 item-list) s5-1)
(set! (-> s5-1 parent) gp-1)
)
)
(let ((a1-11 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-11 from) pp)
(set! (-> a1-11 num-params) 0)
(set! (-> a1-11 message) 'edit-sequence)
(send-event-function (ppointer->process *anim-tester*) a1-11)
)
)
)
)
)
(else
(format #t "ERROR:no object selected~%")
)
)
)
)
(else
(format #t "ERROR:no object loaded~%")
)
)
(none)
)
)
)