mirror of
https://github.com/open-goal/jak-project
synced 2026-08-07 02:06:59 -04:00
122de4ecf5
After spending the last month staring at and comparing Jak 3 and Jak 1 versions of a bunch of `target` code for my jetboard mod, I figured this would be a good opportunity to revive this ancient PR #1714 along with some other small misc fixes/improvements. Instead of directly replacing the old fields, I decided to opt for using overlay fields to maintain backwards compatibility with existing manual patches, files without ref tests and mods that might use these fields.
46 lines
1.5 KiB
Common Lisp
46 lines
1.5 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
(bundles "ENGINE.CGO" "GAME.CGO")
|
|
(require "engine/entity/res.gc")
|
|
(require "engine/game/game-h.gc")
|
|
(define-extern effect-param->sound-spec (function sound-spec (pointer float) int sound-spec))
|
|
|
|
(defenum effect-control-flag
|
|
:type uint32
|
|
:bitfield #t
|
|
(event 0))
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype effect-control (basic)
|
|
((process process-drawable)
|
|
(flags effect-control-flag)
|
|
(last-frame-group art-joint-anim)
|
|
(last-frame-num float)
|
|
(channel-offset int32)
|
|
(res res-lump)
|
|
(name (pointer res-tag))
|
|
(param uint32))
|
|
(:methods
|
|
(new (symbol type process-drawable) _type_)
|
|
(effect-control-method-9 (_type_) none)
|
|
(effect-control-method-10 (_type_ symbol float int) object)
|
|
(effect-control-method-11 (_type_ symbol float int basic pat-surface) none)
|
|
(effect-control-method-12 (_type_ symbol float int basic sound-name) int)
|
|
(set-channel-offset! (_type_ int) none)
|
|
(effect-control-method-14 (_type_ float float float) none)))
|
|
|
|
(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! ((this effect-control) (arg0 int))
|
|
(set! (-> this channel-offset) arg0)
|
|
0
|
|
(none))
|