Files
jak-project/goal_src/jak1/engine/game/effect-control-h.gc
T
Hat Kid 122de4ecf5 jak1: clean up control-info names and other misc cleanup (#4295)
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.
2026-05-31 15:08:41 +02:00

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))