[sparticle] 2d hud particles (#849)

* wip, taking a break to work on asm stuff first

* the goal code for sparticle

* mips2c the first sparticle asm function

* temp

* particle processing no longer crashing

* temp

* working texture cache for vi1 and hud textures

* sprites

* cleanup 1

* temp

* temp

* add zstd library

* temp

* working

* tests

* include fix

* uncomment

* better decomp of sparticle stuff, part 1

* update references
This commit is contained in:
water111
2021-09-26 11:41:58 -04:00
committed by GitHub
parent d777337095
commit f0ceea8b2e
158 changed files with 19773 additions and 44989 deletions
+127 -1
View File
@@ -610,4 +610,130 @@
`((the (function _varargs_ object) set-to-run)
(-> ,proc main-thread) ,func ,@args
)
)
)
(defmacro sp-item (launcher
&key (fade-after 0.0)
&key (falloff-to 0.0)
&key (flags ())
&key (period 0)
&key (length 0)
&key (offset 0)
&key (hour-mask 0)
&key (binding 0)
)
`(new 'static 'sparticle-group-item
:launcher ,launcher
:fade-after ,fade-after
:falloff-to ,falloff-to
:flags (sp-group-item-flag ,@flags)
:period ,period
:length ,length
:offset ,offset
:hour-mask ,hour-mask
:binding ,binding
)
)
(defmacro sp-tex (field-name tex-id)
`(new 'static 'sp-field-init-spec :field (sp-field-id ,field-name) :tex ,tex-id)
)
(defmacro sp-rnd-flt (field-name val range mult)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-valuef ,val
:random-rangef ,range
:random-multf ,mult
:flags (sp-flag float-with-rand)
)
)
(defmacro sp-flt (field-name val)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-valuef ,val
:random-rangef 0.0
:random-multf 1.0
:flags (sp-flag float-with-rand)
)
)
(defmacro sp-int (field-name val)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-value ,val
:random-range 0
:random-mult 1
)
)
(defmacro sp-int-plain-rnd (field-name val range mult)
"For when we use plain integer, but set the randoms."
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-value ,val
:random-range ,range
:random-mult ,mult
)
)
(defmacro sp-rnd-int (field-name val range mult)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-value ,val
:random-range ,range
:random-multf ,mult
:flags (sp-flag int-with-rand)
)
)
(defmacro sp-rnd-int-flt (field-name val range mult)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-valuef ,val
:random-range ,range
:random-multf ,mult
:flags (sp-flag int-with-rand)
)
)
(defmacro sp-cpuinfo-flags (&rest flags)
`(new 'static 'sp-field-init-spec
:field (sp-field-id spt-flags)
:initial-value (sp-cpuinfo-flag ,@flags)
:random-mult 1
)
)
(defmacro sp-launcher-by-id (field-name val)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-value ,val
:flags (sp-flag part-by-id)
)
)
(defmacro sp-func (field-name val)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:sym ,val
:flags (sp-flag from-pointer)
)
)
(defmacro sp-end ()
`(new 'static 'sp-field-init-spec
:field (sp-field-id spt-end)
)
)
(defmacro sp-copy-from-other (field-name offset)
`(new 'static 'sp-field-init-spec
:field (sp-field-id ,field-name)
:initial-value ,offset
:random-mult 1
:flags (sp-flag copy-from-other-field)
)
)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+24 -115
View File
@@ -230,121 +230,30 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200000)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 8.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 1228.8
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x10
:flags #x1
:initial-valuef -32768.0
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 90.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 90.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 90.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 20.0
:random-rangef 20.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-valuef 8.192
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1c
:flags #x1
:initial-valuef 17.066668
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x20
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -0.3
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x138c)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #xc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x36
:flags #x1
:initial-valuef -3640.889
:random-rangef 2730.6667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:initial-valuef 16384.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:initial-valuef -32768.0
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3e
:flags #x1
:initial-valuef 819.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-flt spt-num 8.0)
(sp-flt spt-scale-x (meters 0.3))
(sp-rnd-flt spt-rot-z (degrees -180.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-r 90.0)
(sp-flt spt-g 90.0)
(sp-flt spt-b 90.0)
(sp-rnd-flt spt-a 20.0 20.0 1.0)
(sp-flt spt-vel-y (meters 0.002))
(sp-flt spt-scalevel-x (meters 0.004166667))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.3)
(sp-int spt-timer 5004)
(sp-cpuinfo-flags bit2 bit3)
(sp-rnd-flt spt-launchrot-x (degrees -20.0) (degrees 15.0) 1.0)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees -180.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 0.2))
(sp-end)
)
)
)
@@ -33,7 +33,7 @@
(scalevely float :offset 44)
(friction float :offset-assert 96)
(timer int32 :offset-assert 100)
(flags uint32 :offset-assert 104)
(flags sp-cpuinfo-flag :offset-assert 104)
(user-int32 int32 :offset-assert 108)
(user-uint32 uint32 :offset 108)
(user-float float :offset 108)
@@ -123,8 +123,8 @@
;; definition of type sparticle-system
(deftype sparticle-system (basic)
((blocks int32 2 :offset-assert 4)
(length uint32 2 :offset-assert 12)
(num-alloc uint32 2 :offset-assert 20)
(length int32 2 :offset-assert 12)
(num-alloc int32 2 :offset-assert 20)
(is-3d basic :offset-assert 28)
(flags uint32 :offset-assert 32)
(alloc-table (pointer uint64) :offset-assert 36)
@@ -3,19 +3,19 @@
;; definition of type sp-field-init-spec
(deftype sp-field-init-spec (structure)
((field uint16 :offset-assert 0)
(flags uint16 :offset-assert 2)
(initial-valuef float :offset-assert 4)
(random-rangef float :offset-assert 8)
(random-multf float :offset-assert 12)
(initial-value int32 :offset 4)
(random-range int32 :offset 8)
(random-mult int32 :offset 12)
(sym symbol :offset 4)
(func function :offset 4)
(tex uint32 :offset 4)
(pntr pointer :offset 4)
(sound basic :offset 4)
((field sp-field-id :offset-assert 0)
(flags sp-flag :offset-assert 2)
(initial-valuef float :offset-assert 4)
(random-rangef float :offset-assert 8)
(random-multf float :offset-assert 12)
(initial-value int32 :offset 4)
(random-range int32 :offset 8)
(random-mult int32 :offset 12)
(sym symbol :offset 4)
(func function :offset 4)
(tex uint32 :offset 4)
(pntr pointer :offset 4)
(sound basic :offset 4)
)
:method-count-assert 9
:size-assert #x10
@@ -63,15 +63,15 @@
;; definition of type sparticle-group-item
(deftype sparticle-group-item (structure)
((launcher uint32 :offset-assert 0)
(fade-after meters :offset-assert 4)
(falloff-to meters :offset-assert 8)
(flags uint16 :offset-assert 12)
(period uint16 :offset-assert 14)
(length uint16 :offset-assert 16)
(offset uint16 :offset-assert 18)
(hour-mask uint32 :offset-assert 20)
(binding uint32 :offset-assert 24)
((launcher uint32 :offset-assert 0)
(fade-after meters :offset-assert 4)
(falloff-to meters :offset-assert 8)
(flags sp-group-item-flag :offset-assert 12)
(period uint16 :offset-assert 14)
(length uint16 :offset-assert 16)
(offset uint16 :offset-assert 18)
(hour-mask uint32 :offset-assert 20)
(binding uint32 :offset-assert 24)
)
:method-count-assert 9
:size-assert #x1c
@@ -95,20 +95,20 @@
;; definition of type sparticle-launch-state
(deftype sparticle-launch-state (structure)
((group-item sparticle-group-item :offset-assert 0)
(flags uint16 :offset-assert 4)
(randomize uint16 :offset-assert 6)
(origin vector :offset-assert 8)
(sprite3d sprite-vec-data-3d :offset-assert 12)
(sprite basic :offset-assert 16)
(offset uint32 :offset-assert 20)
(accum float :offset-assert 24)
(spawn-time uint32 :offset-assert 28)
(swarm basic :offset 20)
(seed uint32 :offset 24)
(time uint32 :offset 28)
(spec basic :offset 16)
(id uint32 :offset 12)
((group-item sparticle-group-item :offset-assert 0)
(flags sp-launch-state-flags :offset-assert 4)
(randomize uint16 :offset-assert 6)
(origin vector :offset-assert 8)
(sprite3d sprite-vec-data-3d :offset-assert 12)
(sprite sparticle-cpuinfo :offset-assert 16)
(offset uint32 :offset-assert 20)
(accum float :offset-assert 24)
(spawn-time uint32 :offset-assert 28)
(swarm basic :offset 20)
(seed uint32 :offset 24)
(time uint32 :offset 28)
(spec basic :offset 16)
(id uint32 :offset 12)
)
:method-count-assert 9
:size-assert #x20
@@ -144,8 +144,8 @@
((length int16 :offset-assert 4)
(duration uint16 :offset-assert 6)
(linger-duration uint16 :offset-assert 8)
(flags uint16 :offset-assert 10)
(name basic :offset-assert 12)
(flags sp-group-flag :offset-assert 10)
(name string :offset-assert 12)
(launcher (inline-array sparticle-group-item) :offset-assert 16)
(bounds sphere :inline :offset-assert 32)
)
@@ -187,10 +187,10 @@
:flag-assert #xe00000040
(:methods
(initialize (_type_ sparticle-launch-group process) none 9)
(dummy-10 () none 10)
(dummy-11 (_type_ vector) none 11)
(deactivate (_type_) none 12)
(dummy-13 () none 13)
(is-visible? (_type_ vector) symbol 10)
(spawn (_type_ vector) object 11)
(kill-and-free-particles (_type_) none 12)
(kill-particles (_type_) none 13)
)
)
+14 -1
View File
@@ -141,7 +141,20 @@
)
;; definition for function add-to-sprite-aux-list
;; ERROR: function was not converted to expressions. Cannot decompile.
;; INFO: Return type mismatch int vs none.
(defun
add-to-sprite-aux-list
((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sprite-vec-data-3d))
(let ((v1-0 *sprite-aux-list*))
(when (< (-> v1-0 entry) (-> v1-0 num-entries))
(set! (-> v1-0 data (-> v1-0 entry)) (-> arg1 sprite))
(+! (-> v1-0 entry) 1)
)
)
(set! (-> arg2 r-g-b-a w) 0.0)
0
(none)
)
;; definition of type sprite-frame-data
(deftype sprite-frame-data (structure)
+1 -1
View File
@@ -1859,7 +1859,7 @@
(-> obj segment-common)
a2-0
-2
(bucket-id bucket-65)
(bucket-id pre-sprite-textures)
)
(return #f)
)
+2 -2
View File
@@ -35,8 +35,8 @@
(pat-length int32 :offset-assert 48)
(texture-remap-table (pointer uint64) :offset-assert 52)
(texture-remap-table-len int32 :offset-assert 56)
(unk-data-1 pointer :offset-assert 60)
(unk-data-1-len int32 :offset-assert 64)
(texture-ids (pointer texture-id) :offset-assert 60)
(texture-page-count int32 :offset-assert 64)
(unk-zero-0 basic :offset-assert 68)
(name symbol :offset-assert 72)
(nickname symbol :offset-assert 76)
+1 -1
View File
@@ -73,7 +73,7 @@
(set! (-> mem-use length) (max 58 (-> mem-use length)))
(set! (-> mem-use data 57 name) "bsp-misc")
(+! (-> mem-use data 57 count) 1)
(let ((v1-56 (* (-> obj unk-data-1-len) 4)))
(let ((v1-56 (* (-> obj texture-page-count) 4)))
(+! (-> mem-use data 57 used) v1-56)
(+! (-> mem-use data 57 total) (logand -16 (+ v1-56 15)))
)
+1 -1
View File
@@ -297,7 +297,7 @@
(debug-print-entities (_type_ symbol type) none 13)
(debug-draw-actors (_type_ symbol) none 14)
(dummy-15 (_type_) object 15)
(dummy-16 (_type_) int 16)
(level-update (_type_) int 16)
(level-get-target-inside (_type_) level 17)
(alloc-levels! (_type_ symbol) int 18)
(load-commands-set! (_type_ pair) pair 19)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+41 -210
View File
@@ -11,16 +11,8 @@
:name "group-lurkercrab-slide"
:launcher
(new 'static 'inline-array sparticle-group-item 2
(new 'static 'sparticle-group-item
:launcher #x297
:fade-after (meters 40.0)
:falloff-to (meters 40.0)
)
(new 'static 'sparticle-group-item
:launcher #x298
:fade-after (meters 40.0)
:falloff-to (meters 40.0)
)
(sp-item 663 :fade-after (meters 40.0) :falloff-to (meters 40.0))
(sp-item 664 :fade-after (meters 40.0) :falloff-to (meters 40.0))
)
:bounds
(new 'static 'sphere :y -49152.0 :w 57344.0)
@@ -33,99 +25,22 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 16
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200000)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 0.3
:random-rangef 0.3
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef -8192.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 8192.0
:random-rangef 8192.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 100.0
:random-rangef 30.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 80.0
:random-rangef 20.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 30.0
:random-rangef 30.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 16.0
:random-rangef 48.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-valuef 13.653334
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1c
:flags #x1
:initial-valuef 136.53334
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -0.21333334
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef -0.13653333
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x12c)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x1004)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-rnd-flt spt-num 0.3 0.3 1.0)
(sp-flt spt-y (meters -2.0))
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 2.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 100.0 30.0 1.0)
(sp-rnd-flt spt-g 80.0 20.0 1.0)
(sp-rnd-flt spt-b 30.0 30.0 1.0)
(sp-rnd-flt spt-a 16.0 48.0 1.0)
(sp-flt spt-vel-y (meters 0.0033333334))
(sp-flt spt-scalevel-x (meters 0.033333335))
(sp-flt spt-fade-a -0.21333334)
(sp-flt spt-accel-y -0.13653333)
(sp-int spt-timer 300)
(sp-cpuinfo-flags bit2 bit12)
(sp-end)
)
)
)
@@ -136,112 +51,24 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200f00)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 0.1
:random-rangef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef -8192.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 819.2
:random-rangef 819.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 75.0
:random-rangef 60.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 60.0
:random-rangef 20.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 23.0
:random-rangef 30.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-valuef 109.22667
:random-rangef 109.22667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -0.42666668
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef -6.826667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x12c)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x1004)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:initial-valuef 5461.3335
:random-rangef 5461.3335
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3e
:flags #x1
:initial-valuef 819.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-rnd-flt spt-num 0.1 1.0 1.0)
(sp-flt spt-y (meters -2.0))
(sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.2) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 75.0 60.0 1.0)
(sp-rnd-flt spt-g 60.0 20.0 1.0)
(sp-rnd-flt spt-b 23.0 30.0 1.0)
(sp-flt spt-a 128.0)
(sp-rnd-flt spt-vel-y (meters 0.026666667) (meters 0.026666667) 1.0)
(sp-flt spt-fade-a -0.42666668)
(sp-flt spt-accel-y -6.826667)
(sp-int spt-timer 300)
(sp-cpuinfo-flags bit2 bit12)
(sp-rnd-flt spt-conerot-x (degrees 30.0) (degrees 30.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 0.2))
(sp-end)
)
)
)
@@ -1313,7 +1140,7 @@ nav-enemy-default-event-handler
(let ((a0-0 (-> self part))
(a1-0 (-> self collide-info root-prim prim-core))
)
(dummy-11 a0-0 (the-as vector a1-0))
(spawn a0-0 (the-as vector a1-0))
)
(nav-enemy-travel-post)
(none)
@@ -1441,3 +1268,7 @@ nav-enemy-default-event-handler
(go (method-of-object obj nav-enemy-idle))
(none)
)
+2 -1
View File
@@ -112,9 +112,10 @@
)
;; definition for method 20 of type baseplat
;; INFO: Return type mismatch object vs none.
(defmethod dummy-20 baseplat ((obj baseplat))
(if (nonzero? (-> obj part))
(dummy-11 (-> obj part) (-> obj root-override trans))
(spawn (-> obj part) (-> obj root-override trans))
)
(none)
)
File diff suppressed because it is too large Load Diff
+39 -196
View File
@@ -11,16 +11,8 @@
:name "group-standard-plat"
:launcher
(new 'static 'inline-array sparticle-group-item 2
(new 'static 'sparticle-group-item
:launcher #x16b
:fade-after (meters 60.0)
:falloff-to (meters 60.0)
)
(new 'static 'sparticle-group-item
:launcher #x16c
:fade-after (meters 160.0)
:falloff-to (meters 160.0)
)
(sp-item 363 :fade-after (meters 60.0) :falloff-to (meters 60.0))
(sp-item 364 :fade-after (meters 160.0) :falloff-to (meters 160.0))
)
:bounds
(new 'static 'sphere :y -49152.0 :w 57344.0)
@@ -33,83 +25,20 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 14
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 1.5
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef 4096.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xe
:initial-valuef (the-as float #x5)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 5324.8
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 4096.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 3686.4
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-valuef 13.653334
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x23
:flags #x1
:initial-valuef -16.383999
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x19)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x100)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:initial-valuef 25486.223
:random-rangef 7281.778
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3e
:flags #x1
:initial-valuef 12288.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-flt spt-num 1.5)
(sp-flt spt-y (meters 1.0))
(sp-int spt-rot-x 5)
(sp-flt spt-r 5324.8)
(sp-flt spt-g 4096.0)
(sp-flt spt-b 3686.4)
(sp-flt spt-vel-y (meters 0.0033333334))
(sp-flt spt-fade-b -16.383999)
(sp-int spt-timer 25)
(sp-cpuinfo-flags aux-list)
(sp-rnd-flt spt-conerot-x (degrees 140.0) (degrees 40.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 3.0))
(sp-end)
)
)
)
@@ -120,115 +49,25 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200f00)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 2.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef 6144.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 8192.0
:random-rangef 4096.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 128.0
:random-rangef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 16.0
:random-rangef 32.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-valuef 40.96
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x22
:flags #x1
:initial-valuef -0.42666668
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -0.32
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef -0.13653333
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2d
:flags #x1
:initial-valuef 0.96
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x96)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #xc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:initial-valuef 23665.777
:random-rangef 18204.445
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3e
:flags #x1
:initial-valuef 12288.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 2.0)
(sp-flt spt-y (meters 1.5))
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 1.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-g 0.0 64.0 1.0)
(sp-rnd-flt spt-b 128.0 128.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-flt spt-vel-y (meters 0.01))
(sp-flt spt-fade-g -0.42666668)
(sp-flt spt-fade-a -0.32)
(sp-flt spt-accel-y -0.13653333)
(sp-flt spt-friction 0.96)
(sp-int spt-timer 150)
(sp-cpuinfo-flags bit2 bit3)
(sp-rnd-flt spt-conerot-x (degrees 130.0) (degrees 100.00001) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 3.0))
(sp-end)
)
)
)
@@ -601,3 +440,7 @@
)
(none)
)
+21 -92
View File
@@ -8,101 +8,26 @@
:length 16
:duration #x78
:linger-duration #x30c
:flags #x1
:flags (sp-group-flag use-local-clock)
:name "group-sharkey-splash"
:launcher
(new 'static 'inline-array sparticle-group-item 16
(new 'static 'sparticle-group-item
:launcher #x7c
:flags #x1
:period #x384
:length #x3f
)
(new 'static 'sparticle-group-item :launcher #x7d :period #x384 :length #xf)
(new 'static 'sparticle-group-item
:launcher #x7e
:flags #x1
:period #x384
:length #xf
)
(new 'static 'sparticle-group-item
:launcher #x7f
:flags #x1
:period #x384
:length #xf
)
(new 'static 'sparticle-group-item
:launcher #x80
:period #x384
:length #xa
:binding #x81
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(new 'static 'sparticle-group-item
:launcher #x81
:flags #x4
:period #x384
:length #x78
)
(sp-item 124 :flags (is-3d) :period 900 :length 63)
(sp-item 125 :period 900 :length 15)
(sp-item 126 :flags (is-3d) :period 900 :length 15)
(sp-item 127 :flags (is-3d) :period 900 :length 15)
(sp-item 128 :period 900 :length 10 :binding 129)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
)
:bounds
(new 'static 'sphere :y -49152.0 :w 57344.0)
@@ -1378,3 +1303,7 @@ nav-enemy-default-event-handler
(go (method-of-object obj nav-enemy-idle))
(none)
)
+46 -195
View File
@@ -52,7 +52,7 @@
(defmethod deactivate static-screen ((obj static-screen))
(dotimes (s5-0 1)
(if (nonzero? (-> obj part s5-0))
(deactivate (-> obj part s5-0))
(kill-and-free-particles (-> obj part s5-0))
)
)
((method-of-type process deactivate) obj)
@@ -65,69 +65,18 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 12
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef 252201580000000000.0
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef 4833.28
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 61440.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x1
:initial-valuef 26624.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #xffffffff)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x2204)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :page #x5c6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 1.18))
(sp-flt spt-scale-x (meters 15.0))
(sp-flt spt-scale-y (meters 6.5))
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 128.0)
(sp-int spt-timer -1)
(sp-cpuinfo-flags bit2 bit9 bit13)
(sp-end)
)
)
)
@@ -138,69 +87,18 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 12
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef 252205980000000000.0
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef -5177.344
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 61440.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x1
:initial-valuef 13312.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #xffffffff)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x2204)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #x1 :page #x5c6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -1.264))
(sp-flt spt-scale-x (meters 15.0))
(sp-flt spt-scale-y (meters 3.25))
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 128.0)
(sp-int spt-timer -1)
(sp-cpuinfo-flags bit2 bit9 bit13)
(sp-end)
)
)
)
@@ -211,69 +109,18 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 12
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef 252210380000000000.0
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef -10166.272
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 61440.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x1
:initial-valuef 6656.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #xffffffff)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x2204)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x5c6))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -2.482))
(sp-flt spt-scale-x (meters 15.0))
(sp-flt spt-scale-y (meters 1.625))
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 128.0)
(sp-int spt-timer -1)
(sp-cpuinfo-flags bit2 bit9 bit13)
(sp-end)
)
)
)
@@ -285,13 +132,13 @@
:length 3
:duration #xbb8
:linger-duration #x5dc
:flags #x4
:flags (sp-group-flag screen-space)
:name "group-part-screen1"
:launcher
(new 'static 'inline-array sparticle-group-item 3
(new 'static 'sparticle-group-item :launcher #xb96 :flags #x8)
(new 'static 'sparticle-group-item :launcher #xb97 :flags #x8)
(new 'static 'sparticle-group-item :launcher #xb98 :flags #x8)
(sp-item 2966 :flags (launch-asap))
(sp-item 2967 :flags (launch-asap))
(sp-item 2968 :flags (launch-asap))
)
:bounds (new 'static 'sphere :w 4096.0)
)
@@ -317,7 +164,7 @@
:trans
(behavior ()
(hide-hud-quick)
(dummy-11 (-> self part 0) *zero-vector*)
(spawn (-> self part 0) *zero-vector*)
0
(none)
)
@@ -434,3 +281,7 @@
(-> sv-16 ppointer)
)
)
@@ -501,7 +501,7 @@
(eval-position! gp-1 f0-2 (-> self root-override trans))
)
(transform-post)
(dummy-11
(spawn
(-> self part)
(the-as vector (-> self root-override root-prim prim-core))
)
@@ -820,7 +820,3 @@
:post
target-no-stick-post
)
@@ -141,7 +141,7 @@
(dotimes (s5-0 7)
(let ((a0-1 (-> obj particle s5-0)))
(if (nonzero? a0-1)
(deactivate a0-1)
(kill-and-free-particles a0-1)
)
)
)
@@ -196,7 +196,3 @@
(set! (-> v0-6 lod-dist 0) 4095996000.0)
(set! *robotboss-sg* v0-6)
)
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -758,7 +758,7 @@
(set! (-> s3-1 normal w) 8192.0)
(when
(and
(sphere-in-view-frustum? (-> s3-1 normal))
(sphere-in-view-frustum? (the-as sphere (-> s3-1 normal)))
(<
822083600.0
(vector-vector-distance-squared (-> s3-1 normal) (camera-pos))
+60 -302
View File
@@ -559,7 +559,7 @@
)
)
(until (ja-done? 0)
(dummy-11
(spawn
(-> self part)
(vector<-cspace!
(new 'stack-no-clear 'vector)
@@ -615,7 +615,7 @@
)
)
(until (ja-done? 0)
(dummy-11
(spawn
(-> self part)
(vector<-cspace!
(new 'stack-no-clear 'vector)
@@ -880,16 +880,8 @@
:name "group-assistant-torch"
:launcher
(new 'static 'inline-array sparticle-group-item 2
(new 'static 'sparticle-group-item
:launcher #x16d
:fade-after (meters 30.0)
:falloff-to (meters 30.0)
)
(new 'static 'sparticle-group-item
:launcher #x16e
:fade-after (meters 60.0)
:falloff-to (meters 80.0)
)
(sp-item 365 :fade-after (meters 30.0) :falloff-to (meters 30.0))
(sp-item 366 :fade-after (meters 60.0) :falloff-to (meters 80.0))
)
:bounds (new 'static 'sphere :w 61440.0)
)
@@ -901,79 +893,19 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 13
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x201200)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 0.1
:random-rangef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 4096.0
:random-rangef 12288.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x10
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 100.0
:random-rangef 28.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 100.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 80.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 32.0
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -6.4
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #xa)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #xc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
(sp-rnd-flt spt-num 0.1 1.0 1.0)
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 3.0) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 100.0 28.0 1.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 80.0)
(sp-rnd-flt spt-a 32.0 64.0 1.0)
(sp-flt spt-fade-a -6.4)
(sp-int spt-timer 10)
(sp-cpuinfo-flags bit2 bit3)
(sp-end)
)
)
)
@@ -984,134 +916,28 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 22
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200f00)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 0.1
:random-rangef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 409.6
:random-rangef 409.6
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-rangef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 128.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 32.0
:random-rangef 96.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-valuef 54.613335
:random-rangef 327.68
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1c
:flags #x1
:initial-valuef -0.68266666
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x20
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x22
:flags #x1
:initial-valuef -0.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x23
:flags #x1
:initial-valuef -0.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef -8.192
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2d
:flags #x1
:initial-valuef 0.93
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x4b0)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x4)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x30
:flags #x1
:initial-valuef 140288.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x31
:flags #x5
:sym 'check-drop-level-assistant
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:random-rangef 32768.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:initial-valuef 8192.0
:random-rangef 32768.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-rnd-flt spt-num 0.1 1.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.1) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 64.0)
(sp-rnd-flt spt-a 32.0 96.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.08) 1.0)
(sp-flt spt-scalevel-x (meters -0.00016666666))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-g -0.2)
(sp-flt spt-fade-b -0.2)
(sp-flt spt-accel-y -8.192)
(sp-flt spt-friction 0.93)
(sp-int spt-timer 1200)
(sp-cpuinfo-flags bit2)
(sp-flt spt-userdata 140288.0)
(sp-func spt-func 'check-drop-level-assistant)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 45.0) (degrees 180.0) 1.0)
(sp-end)
)
)
)
@@ -1122,93 +948,21 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200f00)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 3.0
:random-rangef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 307.2
:random-rangef 307.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 96.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 32.0
:random-rangef 96.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-valuef 47.786667
:random-rangef 13.653334
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -0.85333335
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef -0.68266666
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x12c)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x4)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:initial-valuef 9102.223
:random-rangef 5461.3335
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-rnd-flt spt-num 3.0 1.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.075) (meters 0.075) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 64.0 1.0)
(sp-flt spt-g 96.0)
(sp-rnd-flt spt-a 32.0 96.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.011666667) (meters 0.0033333334) 1.0)
(sp-flt spt-fade-a -0.85333335)
(sp-flt spt-accel-y -0.68266666)
(sp-int spt-timer 300)
(sp-cpuinfo-flags bit2)
(sp-rnd-flt spt-conerot-x (degrees 50.000004) (degrees 30.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
@@ -1240,8 +994,8 @@
*sp-particle-system-2d*
(-> *part-id-table* 367)
gp-0
#f
#f
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
@@ -1271,3 +1025,7 @@
)
(none)
)
+72 -383
View File
@@ -202,21 +202,9 @@
:name "group-minershort-candle"
:launcher
(new 'static 'inline-array sparticle-group-item 3
(new 'static 'sparticle-group-item
:launcher #x93c
:fade-after (meters 60.0)
:falloff-to (meters 60.0)
)
(new 'static 'sparticle-group-item
:launcher #x93d
:fade-after (meters 60.0)
:falloff-to (meters 60.0)
)
(new 'static 'sparticle-group-item
:launcher #x93e
:fade-after (meters 60.0)
:falloff-to (meters 60.0)
)
(sp-item 2364 :fade-after (meters 60.0) :falloff-to (meters 60.0))
(sp-item 2365 :fade-after (meters 60.0) :falloff-to (meters 60.0))
(sp-item 2366 :fade-after (meters 60.0) :falloff-to (meters 60.0))
)
:bounds (new 'static 'sphere :w 61440.0)
)
@@ -228,151 +216,31 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 25
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200000)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 1.0
:random-rangef 2.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #xb :flags #x1 :random-multf 1.0)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 307.2
:random-rangef 307.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x10
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 128.0
:random-rangef 32.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-valuef 128.0
:random-rangef 16.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 32.0
:random-rangef 32.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:random-rangef 1.3653333
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1c
:flags #x1
:initial-valuef 2.048
:random-rangef 4.096
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1f
:flags #x1
:initial-valuef -36.40889
:random-rangef 72.81778
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x20
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x21
:flags #x1
:initial-valuef -0.32820514
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x22
:flags #x1
:initial-valuef -0.32820514
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x23
:flags #x1
:initial-valuef -0.32820514
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -0.16410257
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef 0.13653333
:random-rangef 0.27306667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x186)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x5004)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x3e
:flags #x1
:random-rangef 204.8
:random-multf 1.0
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-rnd-flt spt-num 1.0 2.0 1.0)
(sp-flt spt-y (meters 0.0))
(sp-rnd-flt spt-scale-x (meters 0.075) (meters 0.075) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 64.0 1.0)
(sp-rnd-flt spt-g 128.0 32.0 1.0)
(sp-rnd-flt spt-b 128.0 16.0 1.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.0) (meters 0.00033333333) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0005) (meters 0.001) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-r -0.32820514)
(sp-flt spt-fade-g -0.32820514)
(sp-flt spt-fade-b -0.32820514)
(sp-flt spt-fade-a -0.16410257)
(sp-rnd-flt spt-accel-y 0.13653333 0.27306667 1.0)
(sp-int spt-timer 390)
(sp-cpuinfo-flags bit2 bit12 bit14)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0.0) (meters 0.05) 1.0)
(sp-end)
)
)
)
@@ -383,112 +251,24 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x200f00)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 3.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef -327.68
:random-rangef 81.92
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 819.2
:random-rangef 819.2
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 64.0
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:random-rangef 32.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 32.0
:random-rangef 32.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x19
:flags #x1
:random-rangef 0.68266666
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1b
:flags #x1
:random-rangef 0.68266666
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1c
:flags #x1
:initial-valuef -6.826667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x20
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x22
:flags #x1
:initial-valuef -0.7111111
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef 1.0922667
:random-rangef 0.27306667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x3c)
:random-rangef (the-as float #x1d)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #x8)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 3.0)
(sp-rnd-flt spt-y (meters -0.08) (meters 0.02) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.2) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 64.0 1.0)
(sp-rnd-flt spt-g 64.0 64.0 1.0)
(sp-rnd-flt spt-b 0.0 32.0 1.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0) (meters 0.00016666666) 1.0)
(sp-rnd-flt spt-vel-z (meters 0.0) (meters 0.00016666666) 1.0)
(sp-flt spt-scalevel-x (meters -0.0016666667))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-g -0.7111111)
(sp-rnd-flt spt-accel-y 1.0922667 0.27306667 1.0)
(sp-int-plain-rnd spt-timer 60 29 1)
(sp-cpuinfo-flags bit3)
(sp-end)
)
)
)
@@ -499,122 +279,26 @@
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(new 'static 'sp-field-init-spec
:field #x1
:initial-valuef (the-as float #x201200)
)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-valuef 1.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xb
:flags #x1
:initial-valuef -81.92
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-valuef 2048.0
:random-rangef 3072.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x10
:flags #x1
:random-rangef 65536.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-valuef 128.0
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-valuef 64.0
:random-rangef 64.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:random-rangef 32.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-valuef 16.0
:random-rangef 32.0
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x19
:flags #x1
:random-rangef 0.68266666
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1b
:flags #x1
:random-rangef 0.68266666
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x1c
:flags #x1
:initial-valuef -6.826667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x20
:flags #x3
:initial-valuef (the-as float #xfffffffc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x22
:flags #x1
:initial-valuef -0.7111111
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-valuef -1.92
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x26
:flags #x1
:initial-valuef 1.0922667
:random-rangef 0.27306667
:random-multf 1.0
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-valuef (the-as float #x14)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-valuef (the-as float #xc)
:random-multf (the-as float #x1)
)
(new 'static 'sp-field-init-spec :field #x43)
(sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -0.02))
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.75) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 64.0 1.0)
(sp-rnd-flt spt-g 64.0 64.0 1.0)
(sp-rnd-flt spt-b 0.0 32.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0) (meters 0.00016666666) 1.0)
(sp-rnd-flt spt-vel-z (meters 0.0) (meters 0.00016666666) 1.0)
(sp-flt spt-scalevel-x (meters -0.0016666667))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-g -0.7111111)
(sp-flt spt-fade-a -1.92)
(sp-rnd-flt spt-accel-y 1.0922667 0.27306667 1.0)
(sp-int spt-timer 20)
(sp-cpuinfo-flags bit2 bit3)
(sp-end)
)
)
)
@@ -666,8 +350,9 @@
)
;; definition for function minershort-trans-hook
;; INFO: Return type mismatch object vs none.
(defbehavior minershort-trans-hook minershort ()
(dummy-11
(spawn
(-> self part)
(vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 14))
)
@@ -1356,3 +1041,7 @@
(go (method-of-object obj idle))
(none)
)
@@ -664,7 +664,7 @@
)
)
)
(dummy-11
(spawn
(-> self part)
(the-as vector a1-1)
)
@@ -1,15 +1,15 @@
nop | mulay.x ACC, vf12, vf02
nop | mulax.z ACC, vf12, vf03
nop | msub.xz vf24, vf12, vf02
nop | msubx.xz vf24, vf12, vf02
nop | mulaz.x ACC, vf12, vf02
nop | mulay.z ACC, vf12, vf03
nop | msub.xz vf25, vf12, vf02
nop | msuby.xz vf25, vf12, vf02
nop | mulaw.x ACC, vf12, vf02
nop | mulaz.z ACC, vf12, vf03
nop | msub.xz vf26, vf12, vf02
nop | msubz.xz vf26, vf12, vf02
nop | mulax.x ACC, vf12, vf04
nop | mulaw.z ACC, vf12, vf03
nop | msub.xz vf27, vf12, vf02
nop | msubw.xz vf27, vf12, vf02
nop | mul.xz vf28, vf24, vf24
nop | mul.xz vf29, vf25, vf25
nop | mul.xz vf30, vf26, vf26
@@ -61,7 +61,7 @@ L3:
lq.xyzw vf19, 980(vi07) | ftoi0.xyzw vf11, vf11
lq.xyzw vf20, 981(vi07) | maddz.xyzw vf02, vf27, vf23
lq.xyzw vf21, 982(vi07) | mulaw.xyzw ACC, vf17, vf05
lq.xyzw vf22, 983(vi07) | msub.xyzw vf12, vf18, vf05
lq.xyzw vf22, 983(vi07) | msubz.xyzw vf12, vf18, vf05
sq.xyzw vf11, 3(vi05) | mulaz.xyzw ACC, vf17, vf05
lqi.xyzw vf11, vi02 | maddw.xyzw vf13, vf18, vf05
move.w vf24, vf00 | addw.z vf23, vf00, vf24
@@ -170,7 +170,7 @@ L8:
lq.xyzw vf19, 980(vi07) | ftoi0.xyzw vf11, vf11
lq.xyzw vf20, 981(vi07) | maddz.xyzw vf02, vf27, vf23
lq.xyzw vf21, 982(vi07) | mulaw.xyzw ACC, vf17, vf05
lq.xyzw vf22, 983(vi07) | msub.xyzw vf12, vf18, vf05
lq.xyzw vf22, 983(vi07) | msubz.xyzw vf12, vf18, vf05
sq.xyzw vf11, 3(vi05) | mulaz.xyzw ACC, vf17, vf05
lqi.xyzw vf11, vi02 | maddw.xyzw vf13, vf18, vf05
move.w vf24, vf00 | addw.z vf23, vf00, vf24
@@ -0,0 +1,9 @@
(defun goal_check_function (a b c d e f g h)
(format #t "~d ~d ~d ~d " a b c d)
(format #t "~d ~d ~d ~d~%" e f g h)
12
)
(let ((f (the (function int int int int int int int int int) (__pc-get-mips2c "test-func2"))))
(f 1 2 3 4 5 6 7 8)
)
+12 -1
View File
@@ -900,13 +900,24 @@ namespace Mips2C {
namespace test_func {
extern u64 execute(void*);
}
namespace goal_call_test {
extern u64 execute(void*);
extern void link();
} // namespace goal_call_test
} // namespace Mips2C
TEST_F(WithGameTests, Mips2C) {
TEST_F(WithGameTests, Mips2CBasic) {
Mips2C::gLinkedFunctionTable.reg("test-func", Mips2C::test_func::execute, 0);
shared_compiler->runner.run_static_test(env, testCategory, "test-mips2c-call.gc", {"36\n0\n"});
}
TEST_F(WithGameTests, Mips2C_CallGoal) {
Mips2C::gLinkedFunctionTable.reg("test-func2", Mips2C::goal_call_test::execute, 128);
Mips2C::goal_call_test::link();
shared_compiler->runner.run_static_test(env, testCategory, "test-mips2c-goal.gc",
{"1 2 3 4 5 6 7 8\n12\n"});
}
TEST(TypeConsistency, TypeConsistency) {
Compiler compiler;
compiler.enable_throw_on_redefines();