jak-project/goal_src/engine/game/effect-control-h.gc
ManDude 27bb6c6384
[decompiler] decompile particle defs using specialized macros (#1077)
* [decompiler] `defpart` and `defpartgroup`

* support sounds in part defs natively

* make `meters_to_string`

* update refs

* clang

* make macros in pair only work inside `(unquote ...`

* update source

* update finish

* fix
2022-01-15 20:01:38 -05:00

57 lines
1.8 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: effect-control-h.gc
;; name in dgo: effect-control-h
;; dgos: GAME, ENGINE
(define-extern effect-param->sound-spec (function sound-spec (pointer float) int sound-spec))
;; DECOMP BEGINS
(deftype effect-control (basic)
((process process-drawable :offset-assert 4)
(flags uint32 :offset-assert 8)
(last-frame-group art-joint-anim :offset-assert 12)
(last-frame-num float :offset-assert 16)
(channel-offset int32 :offset-assert 20)
(res res-lump :offset-assert 24)
(name (pointer res-tag) :offset-assert 28)
(param uint32 :offset-assert 32)
)
:method-count-assert 15
:size-assert #x24
:flag-assert #xf00000024
(:methods
(new (symbol type process-drawable) _type_ 0)
(TODO-RENAME-9 (_type_) none 9)
(dummy-10 (_type_ symbol float int) object 10)
(dummy-11 (_type_ symbol basic int basic int) none 11)
(dummy-12 (_type_ symbol basic int basic sound-name) int 12)
(set-channel-offset! (_type_ int) none 13)
(TODO-RENAME-14 (_type_ float float float) none 14)
)
)
(defmethod new effect-control ((allocation symbol) (type-to-make type) (arg0 process-drawable))
(cond
((res-lump-struct (-> arg0 draw jgeo extra) 'effect-name structure)
(let ((v0-1 (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
(set! (-> v0-1 process) arg0)
(set! (-> v0-1 last-frame-group) #f)
v0-1
)
)
(else
(the-as effect-control #f)
)
)
)
(defmethod set-channel-offset! effect-control ((obj effect-control) (arg0 int))
(set! (-> obj channel-offset) arg0)
0
(none)
)