jak-project/goal_src/jak2/levels/hiphog/hiphog-part.gc
Tyler Wilding dd0a8a17b2
docs - first chunk of work documenting the files I glossed over (#2130)
- started documenting the files I glossed over, some are totally done,
others are just partially done
- I changed the decompiler to automatically initialize the
art-group-info from the json file. This makes updating gsrc, even a
single file at a time, have consistent naming
- Though I disabled this functionality for jak 1, as I have no idea if
using the ntsc art groups will cause a regression for different versions
- fix indentation for docstrings -- it still doesn't look great, but
this is now a formatting concern, rather than the docstring having a
bunch of happen-stance leading whitespace.
2023-01-15 11:33:39 -05:00

1571 lines
50 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: hiphog-part.gc
;; name in dgo: hiphog-part
;; dgos: HIPHOG
;; DECOMP BEGINS
(deftype hiphog-part (part-spawner)
()
:heap-base #x30
:method-count-assert 16
:size-assert #xb0
:flag-assert #x10003000b0
)
(defpartgroup group-hiphog-red-light
:id 741
:flags (unk-4)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 3283 :flags (bit6 bit7)))
)
(defpart 3283
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 163.84)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-rnd-flt spt-g 64.0 64.0 1.0)
(sp-flt spt-b 0.0)
(sp-flt spt-a 32.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 819.2)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpartgroup group-hiphog-ceiling-light
:id 742
:flags (unk-4)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 3284 :flags (bit6 bit7)) (sp-item 3285 :flags (bit6 bit7)) (sp-item 3286 :flags (bit6 bit7)))
)
(defpart 3284
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 1.1))
(sp-flt spt-scale-x (meters 2))
(sp-flt spt-rot-x 163.84)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 819.2)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3285
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-scale-x (meters 2))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees 127.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 819.2)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3286
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -1.1))
(sp-flt spt-scale-x (meters 2))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees 225.99998))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 255.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 819.2)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpartgroup group-hiphog-booth-ceiling-light
:id 743
:flags (unk-4)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 3287 :flags (bit6 bit7)))
)
(defpart 3287
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-scale-x (meters 1))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees -209.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 20.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 1638.4)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpartgroup group-hiphog-booth-wall-light
:id 744
:flags (unk-4)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 3288 :flags (bit6 bit7)) (sp-item 3289 :flags (bit6 bit7)))
)
(defpart 3288
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -0.3))
(sp-flt spt-scale-x (meters 1))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees -209.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 1228.8)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3289
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0.3))
(sp-flt spt-scale-x (meters 1))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees -127.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 1228.8)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpartgroup group-hiphog-bar-light
:id 745
:flags (unk-4)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 3290 :flags (bit6 bit7)) (sp-item 3291 :flags (bit6 bit7)) (sp-item 3292 :flags (bit6 bit7)))
)
(defpart 3290
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0.8))
(sp-flt spt-y (meters 0.05))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 40.96)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 409.6)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3291
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0.05))
(sp-flt spt-scale-x (meters 2))
(sp-flt spt-rot-x 40.96)
(sp-flt spt-rot-z (degrees 127.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 409.6)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3292
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -0.8))
(sp-flt spt-y (meters 0.05))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 40.96)
(sp-flt spt-rot-z (degrees 225.99998))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 409.6)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpartgroup group-hiphog-booth-table-light
:id 746
:flags (unk-4)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 3293 :flags (bit6 bit7)) (sp-item 3294 :flags (bit6 bit7)) (sp-item 3295 :flags (bit6 bit7)))
)
(defpart 3293
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0.8))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 163.84)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 2048.0)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3294
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-scale-x (meters 2))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees 127.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 2048.0)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3295
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -0.8))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees 225.99998))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 16.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 2048.0)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpartgroup group-hiphog-floor-light
:id 747
:flags (unk-4)
:bounds (static-bspherem 0 0 0 1)
:parts ((sp-item 3296 :flags (bit6 bit7)) (sp-item 3297 :flags (bit6 bit7)) (sp-item 3298 :flags (bit6 bit7)))
)
(defpart 3296
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-z (meters 0.6))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 163.84)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 12.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 819.2)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3297
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees 127.0))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 12.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 819.2)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpart 3298
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xbb :page #xc))
(sp-flt spt-num 1.0)
(sp-flt spt-z (meters -0.6))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 163.84)
(sp-flt spt-rot-z (degrees 225.99998))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 128.0)
(sp-rnd-flt spt-g 192.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-flt spt-a 12.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
(sp-flt spt-userdata 819.2)
(sp-flt spt-rotate-y (degrees 0.0))
)
)
(defpartgroup group-hiphog-neon-hiphog
:id 748
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 34 :flags (is-3d bit6) :period 600 :length 300)
(sp-item 33 :flags (is-3d bit6) :period 600 :length 300 :offset 300)
(sp-item 36 :flags (is-3d bit6) :period 600 :length 300)
(sp-item 35 :flags (is-3d bit6) :period 600 :length 300 :offset 300)
(sp-item 3299 :flags (bit6) :period 600 :length 5 :offset 300)
)
)
(defpart 3299
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x40 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-sound (static-sound-spec "neon-zap-3" :volume 70.0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters -8.25))
(sp-flt spt-scale-x (meters 0))
(sp-flt spt-scale-y (meters 0))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
)
)
(defpart 36
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x3f :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters -8.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-flt spt-r 116.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 35
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x40 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-sound (static-sound-spec "neon-zap-1" :num 0.3 :volume 50.0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters -8.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 34
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x3f :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-flt spt-r 116.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 33
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x40 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-neon-hiphog-daxter
:id 749
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 3300 :flags (is-3d bit6) :period 600 :length 300)
(sp-item 3301 :flags (is-3d bit6) :period 600 :length 300 :offset 300)
(sp-item 3302 :flags (is-3d bit6) :period 600 :length 300)
(sp-item 3303 :flags (is-3d bit6) :period 600 :length 300 :offset 300)
(sp-item 3299 :flags (bit6) :period 600 :length 5 :offset 300)
)
)
(defpart 3302
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x64 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters -8.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-flt spt-r 116.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3303
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x65 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-sound (static-sound-spec "neon-zap-1" :num 0.3 :volume 50.0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters -8.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3300
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x64 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-flt spt-r 116.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3301
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x65 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.25))
(sp-flt spt-scale-x (meters 6))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 3))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-neon-morgan
:id 750
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 25 :flags (is-3d bit6) :period 800 :length 100)
(sp-item 19 :flags (is-3d bit6) :period 800 :length 300 :offset 100)
(sp-item 25 :flags (is-3d bit6) :period 800 :length 100 :offset 400)
(sp-item 19 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 26 :flags (is-3d bit6) :period 800 :length 150)
(sp-item 20 :flags (is-3d bit6) :period 800 :length 250 :offset 150)
(sp-item 26 :flags (is-3d bit6) :period 800 :length 100 :offset 400)
(sp-item 20 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 27 :flags (is-3d bit6) :period 800 :length 200)
(sp-item 21 :flags (is-3d bit6) :period 800 :length 200 :offset 200)
(sp-item 27 :flags (is-3d bit6) :period 800 :length 100 :offset 400)
(sp-item 21 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 28 :flags (is-3d bit6) :period 800 :length 250)
(sp-item 22 :flags (is-3d bit6) :period 800 :length 150 :offset 250)
(sp-item 28 :flags (is-3d bit6) :period 800 :length 100 :offset 400)
(sp-item 22 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 29 :flags (is-3d bit6) :period 800 :length 300)
(sp-item 23 :flags (is-3d bit6) :period 800 :length 100 :offset 300)
(sp-item 29 :flags (is-3d bit6) :period 800 :length 100 :offset 400)
(sp-item 23 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 30 :flags (is-3d bit6) :period 800 :length 350)
(sp-item 24 :flags (is-3d bit6) :period 800 :length 50 :offset 350)
(sp-item 30 :flags (is-3d bit6) :period 800 :length 100 :offset 400)
(sp-item 24 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 3299 :period 800 :length 5 :offset 100)
(sp-item 3299 :period 800 :length 5 :offset 150)
(sp-item 3299 :period 800 :length 5 :offset 200)
(sp-item 3299 :period 800 :length 5 :offset 250)
(sp-item 3299 :period 800 :length 5 :offset 300)
(sp-item 3299 :period 800 :length 5 :offset 350)
(sp-item 3299 :period 800 :length 5 :offset 500)
)
)
(defpart 25
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x36 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 3))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 116.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 19
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x37 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-sound (static-sound-spec "neon-zap-1" :num 0.3 :volume 50.0))
(sp-flt spt-x (meters 3))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 26
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x3c :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 2))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 116.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 20
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x3d :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 2))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 27
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x41 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 1))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 116.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 21
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x42 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 1))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 28
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2d :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0.05))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 116.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 22
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2e :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0.05))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 29
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x24 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -1.05))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 116.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 23
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x25 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -1.05))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 30
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x39 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -2))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 116.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 24
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x3a :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -2))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-neon-morgan-small
:id 751
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 3304 :flags (is-3d bit6) :period 800 :length 300 :offset 100)
(sp-item 3304 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 3305 :flags (is-3d bit6) :period 800 :length 250 :offset 150)
(sp-item 3305 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 3306 :flags (is-3d bit6) :period 800 :length 200 :offset 200)
(sp-item 3306 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 3307 :flags (is-3d bit6) :period 800 :length 150 :offset 250)
(sp-item 3307 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 3308 :flags (is-3d bit6) :period 800 :length 100 :offset 300)
(sp-item 3308 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
(sp-item 3309 :flags (is-3d bit6) :period 800 :length 50 :offset 350)
(sp-item 3309 :flags (is-3d bit6) :period 800 :length 300 :offset 500)
)
)
(defpart 3304
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x38 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 3))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3305
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x3e :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 2))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3306
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x43 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 1))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3307
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2f :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0.05))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3308
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x26 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -1.05))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3309
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x3b :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters -2))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 1.5))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-neon-hip-daxter :id 752 :bounds (static-bspherem 0 0 0 8) :parts ((sp-item 209)))
(defpartgroup group-hiphog-neon-hip
:id 753
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 32 :flags (is-3d bit6) :period 600 :length 300)
(sp-item 31 :flags (is-3d bit6) :period 600 :length 300 :offset 300)
(sp-item 3310 :flags (is-3d bit6) :period 600 :length 300 :offset 300)
(sp-item 3311 :flags (is-3d bit6) :period 600 :length 300)
(sp-item 3299 :flags (bit6) :period 300 :length 5 :offset 300)
)
)
(defpart 3311
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x30 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.5))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 48.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 31
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x31 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-sound (static-sound-spec "neon-zap-1" :num 0.2 :volume 39.941406))
(sp-flt spt-x (meters 0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.5))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3310
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x33 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.5))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 48.0 16.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 32
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x34 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-sound (static-sound-spec "neon-zap-1" :num 0.1 :volume 39.941406))
(sp-flt spt-x (meters 0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.5))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-neon-hip-small
:id 754
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 3312 :flags (is-3d bit6) :period 600 :length 300)
(sp-item 3313 :flags (is-3d bit6) :period 600 :length 300 :offset 300)
)
)
(defpart 3313
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x32 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.5))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3312
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x35 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0))
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0.5))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-neon-clock
:id 755
:bounds (static-bspherem 0 0 0 4)
:parts ((sp-item 3314 :flags (is-3d))
(sp-item 3315 :flags (is-3d))
(sp-item 37 :flags (is-3d) :hour-mask #b111111000000000000111111)
(sp-item 38 :flags (is-3d) :hour-mask #b111111111111000000)
)
)
(defun birth-func-rotate-minute ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state)
)
"Determines the position of the minute hand of the hiphog's clock associated with [[time-of-day-proc]]
TODO - check args
Every real second is 1 minute in Jak's time of day"
(local-vars (v1-4 float) (v1-5 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(let ((quat (new 'stack-no-clear 'quaternion)))
(let ((temp-vec (new 'stack-no-clear 'vector)))
(let* ((tod *time-of-day*)
(curr-minutes (the float (if tod
(-> tod 0 minutes)
0
)
)
)
)
(set-vector! temp-vec (+ 16384.0 (* 1092.2667 curr-minutes)) 55238.84 49152.0 1.0)
)
(quaternion-zxy! quat temp-vec)
)
(cond
((< (-> quat w) 0.0)
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> quat quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-4 vf1)
)
(else
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> quat quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-5 vf1)
)
)
)
0
(none)
)
)
(defun birth-func-rotate-hour ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state)
)
"Determines the position of the hour hand of the hiphog's clock associated with [[time-of-day-proc]]
TODO - check args
Every real minute is 1 hour in Jak's time of day"
(local-vars (v1-4 float) (v1-5 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(let ((quat (new 'stack-no-clear 'quaternion)))
(let ((temp-vec (new 'stack-no-clear 'vector)))
(let* ((tod *time-of-day*)
(curr-hours (the float (if tod
(-> tod 0 hours)
0
)
)
)
)
(set-vector! temp-vec (+ 16384.0 (* 5461.3335 curr-hours)) 55238.84 49152.0 1.0)
)
(quaternion-zxy! quat temp-vec)
)
(cond
((< (-> quat w) 0.0)
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> quat quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-4 vf1)
)
(else
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> quat quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-5 vf1)
)
)
)
0
(none)
)
)
(defun birth-func-rotate-second ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state)
)
"Determines the position of the second hand of the hiphog's clock associated with [[time-of-day-proc]]
TODO - check args
The clock actually only has 2 hands, this one does not appear to have been used?
Every real second is 1/60th of a second in Jak's time of day"
(local-vars (v1-4 float) (v1-5 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(let ((quat (new 'stack-no-clear 'quaternion)))
(let ((temp-vec (new 'stack-no-clear 'vector)))
(let* ((tod *time-of-day*)
(curr-seconds (the float (if tod
(-> tod 0 seconds)
0
)
)
)
)
(set-vector! temp-vec (+ 16384.0 (* 1092.2667 curr-seconds)) 55238.84 49152.0 1.0)
)
(quaternion-zxy! quat temp-vec)
)
(cond
((< (-> quat w) 0.0)
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> quat quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-4 vf1)
)
(else
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
(.lvf vf2 (&-> quat quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
(.mov v1-5 vf1)
)
)
)
0
(none)
)
)
(defpart 3315
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x27 :page #x3e6))
(sp-func spt-birth-func 'birth-func-rotate-minute)
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 270.0))
(sp-flt spt-rot-z (degrees 270.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 left-multiply-quat)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3314
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x27 :page #x3e6))
(sp-func spt-birth-func 'birth-func-rotate-hour)
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 270.0))
(sp-flt spt-rot-z (degrees 270.0))
(sp-flt spt-scale-y (meters 2.5))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 37
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2b :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 38
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x29 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-neon-clock-small
:id 756
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 3316 :flags (is-3d bit6))
(sp-item 3317 :flags (is-3d bit6))
(sp-item 3318 :flags (is-3d bit6) :hour-mask #b111110000000000001111111)
(sp-item 3319 :flags (is-3d bit6) :hour-mask #b111111111110000000)
)
)
(defpart 3317
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x28 :page #x3e6))
(sp-func spt-birth-func 'birth-func-rotate-minute)
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 270.0))
(sp-flt spt-rot-z (degrees 270.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 left-multiply-quat)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3316
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x28 :page #x3e6))
(sp-func spt-birth-func 'birth-func-rotate-hour)
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 1))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 270.0))
(sp-flt spt-rot-z (degrees 270.0))
(sp-flt spt-scale-y (meters 2.5))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3318
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2c :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpart 3319
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x2a :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 0))
(sp-flt spt-z (meters 0))
(sp-flt spt-scale-x (meters 4))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 180.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 4))
(sp-rnd-flt spt-r 64.0 128.0 1.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 128.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2)
(sp-flt spt-rotate-y (degrees 33.436))
)
)
(defpartgroup group-hiphog-mirror
:id 757
:bounds (static-bspherem 0 0 0 16)
:parts ((sp-item 3320 :flags (is-3d bit6)))
)
(deftype hiphog-mirror-wf-pt (structure)
"@unused seemingly not used, but probably stood for hiphog-mirror-waveform-point"
((x float :offset-assert 0)
(y float :offset-assert 4)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(define *hiphog-mirror-sheen-waveform*
"A collection of [[ripple-wave]]'s used to apply the effect to the hiphog's mirror"
(new 'static 'inline-array ripple-wave 6
(new 'static 'ripple-wave :xmul 0.0625 :zmul 0.5)
(new 'static 'ripple-wave :offs 0.125 :zmul 0.375 :delta 0.9)
(new 'static 'ripple-wave :xdiv -13107 :zdiv #x3ecc :delta 0.5)
(new 'static 'ripple-wave :scale 1.0 :speed 0.52)
(new 'static 'ripple-wave :scale 0.5625 :offs 0.5 :xmul 0.625)
(new 'static 'ripple-wave :offs 0.875 :zdiv #x3f80 :zmul 1.0)
)
)
(defun hiphog-mirror-sheen-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
"Handles the effect on the hiphogs mirror, which involves using [[*hiphog-mirror-sheen-waveform*]]
TODO on args and some more documentation"
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set-vector! s5-0 -1515.52 0.0 -95436.8 1.0)
(vector-! s5-0 (camera-pos) s5-0)
(set! (-> s5-0 y) 0.0)
(vector-normalize! s5-0 1.0)
(let* ((f0-8 (+ 32768.0 (atan (-> s5-0 x) (-> s5-0 z))))
(f0-9 (lerp-scale 0.0 1.0 f0-8 19478.756 45875.2))
(curr-ripple-wave (the-as object (-> *hiphog-mirror-sheen-waveform* 0)))
(prev-ripple-wave (the-as ripple-wave curr-ripple-wave))
)
(while (< (-> (the-as ripple-wave curr-ripple-wave) scale) f0-9)
(set! prev-ripple-wave (the-as ripple-wave curr-ripple-wave))
(set! curr-ripple-wave (&-> (the-as (inline-array ripple-wave) curr-ripple-wave) 0 xmul))
)
(let ((f0-12 (lerp 0.9 1.0 (lerp
(-> prev-ripple-wave offs)
(-> (the-as ripple-wave curr-ripple-wave) offs)
(/ (- f0-9 (-> prev-ripple-wave scale))
(- (-> (the-as ripple-wave curr-ripple-wave) scale) (-> prev-ripple-wave scale))
)
)
)
)
)
(set! (-> arg2 vector 2 w) (* 128.0 f0-12 f0-12 f0-12))
)
)
)
0
(none)
)
(defpart 3320
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #x44 :page #x3e6))
(sp-flt spt-num 1.0)
(sp-flt spt-x (meters 0.2))
(sp-flt spt-y (meters -0.2))
(sp-flt spt-z (meters -0.99))
(sp-flt spt-scale-x (meters 17))
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-flt spt-scale-y (meters 8.4))
(sp-flt spt-r 64.0)
(sp-copy-from-other spt-g -1)
(sp-copy-from-other spt-b -1)
(sp-flt spt-a 96.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags sp-cpuinfo-flag-2 left-multiply-quat)
(sp-func spt-func 'hiphog-mirror-sheen-func)
(sp-flt spt-rotate-y (degrees 33.436))
)
)