format/j1: re-format all files to catch any improvements made along the way

This commit is contained in:
Tyler Wilding
2024-05-24 01:45:27 -04:00
parent 59194f78a0
commit ba88a54902
161 changed files with 24466 additions and 23159 deletions
+4 -4
View File
@@ -34,11 +34,11 @@
(process process-drawable)
(frame-group art-joint-anim)
(frame-num float)
(matrix matrix 2 :inline)
(transform transform 2 :inline)
(delta transformq :inline)
(matrix matrix 2 :inline)
(transform transform 2 :inline)
(delta transformq :inline)
(last-speed meters)
(align transformq :inline :overlay-at (-> transform 0 trans x)))
(align transformq :inline :overlay-at (-> transform 0 trans x)))
(:methods
(new (symbol type process-drawable) _type_)
(compute-alignment! (_type_) transformq)
+11 -11
View File
@@ -11,13 +11,13 @@
(duration time-frame)
(gravity float)
(rot-speed float)
(fountain-rand-transv-lo vector :inline)
(fountain-rand-transv-hi vector :inline)
(away-from-focal-pt vector :inline :overlay-at fountain-rand-transv-lo)
(away-from-rand-transv-xz-lo float :overlay-at (-> fountain-rand-transv-hi x))
(away-from-rand-transv-xz-hi float :overlay-at (-> fountain-rand-transv-hi y))
(away-from-rand-transv-y-lo float :overlay-at (-> fountain-rand-transv-hi z))
(away-from-rand-transv-y-hi float :overlay-at (-> fountain-rand-transv-hi w)))
(fountain-rand-transv-lo vector :inline)
(fountain-rand-transv-hi vector :inline)
(away-from-focal-pt vector :inline :overlay-at fountain-rand-transv-lo)
(away-from-rand-transv-xz-lo float :overlay-at (-> fountain-rand-transv-hi x))
(away-from-rand-transv-xz-hi float :overlay-at (-> fountain-rand-transv-hi y))
(away-from-rand-transv-y-lo float :overlay-at (-> fountain-rand-transv-hi z))
(away-from-rand-transv-y-hi float :overlay-at (-> fountain-rand-transv-hi w)))
(:methods
(new (symbol type int) _type_)))
@@ -51,15 +51,15 @@
(bbox bounding-box :inline)))
(deftype joint-exploder (process-drawable)
((parent-override (pointer process-drawable) :overlay-at parent)
((parent-override (pointer process-drawable) :overlay-at parent)
(die-if-below-y float)
(die-if-beyond-xz-dist-sqrd float)
(joints joint-exploder-joints)
(static-params joint-exploder-static-params)
(anim art-joint-anim)
(scale-vector vector :inline)
(tuning joint-exploder-tuning :inline)
(lists joint-exploder-list 5 :inline))
(scale-vector vector :inline)
(tuning joint-exploder-tuning :inline)
(lists joint-exploder-list 5 :inline))
(:methods
(joint-exploder-method-20 (_type_ joint-exploder-list int) int)
(joint-exploder-method-21 (_type_ joint-exploder-list joint-exploder-joint) none)
+23 -23
View File
@@ -58,23 +58,23 @@
(deftype joint-control (basic)
((status janim-status)
(allocated-length int16)
(root-channel (inline-array joint-control-channel) :offset 16)
(root-channel (inline-array joint-control-channel) :offset 16)
(blend-index int32)
(active-channels int32)
(generate-frame-function (function (inline-array vector) int process-drawable int))
(prebind-function (function pointer int process-drawable none))
(postbind-function (function process-drawable none))
(effect effect-control)
(channel joint-control-channel 3 :inline)
(frame-group0 art-joint-anim :overlay-at (-> channel 0 frame-group))
(frame-num0 float :overlay-at (-> channel 0 frame-num))
(frame-interp0 float :overlay-at (-> channel 0 frame-interp))
(frame-group1 art-joint-anim :offset 108)
(frame-num1 float :offset 112)
(frame-interp1 float :offset 104)
(frame-group2 art-joint-anim :offset 156)
(frame-num2 float :offset 160)
(frame-interp2 float :offset 152))
(channel joint-control-channel 3 :inline)
(frame-group0 art-joint-anim :overlay-at (-> channel 0 frame-group))
(frame-num0 float :overlay-at (-> channel 0 frame-num))
(frame-interp0 float :overlay-at (-> channel 0 frame-interp))
(frame-group1 art-joint-anim :offset 108)
(frame-num1 float :offset 112)
(frame-interp1 float :offset 104)
(frame-group2 art-joint-anim :offset 156)
(frame-num2 float :offset 160)
(frame-interp2 float :offset 152))
(:methods
(new (symbol type int) _type_)
(current-cycle-distance (_type_) float)
@@ -94,17 +94,17 @@
:pack-me)
(deftype joint-work (structure)
((temp-mtx matrix :inline)
(joint-stack matrix-stack :inline)
(fix-jmp-table (function none) 16)
(frm-jmp-table (function none) 16)
(pair-jmp-table (function none) 16)
(uploads channel-upload-info 24 :inline)
((temp-mtx matrix :inline)
(joint-stack matrix-stack :inline)
(fix-jmp-table (function none) 16)
(frm-jmp-table (function none) 16)
(pair-jmp-table (function none) 16)
(uploads channel-upload-info 24 :inline)
(num-uploads int32)
(mtx-acc matrix 2 :inline)
(tq-acc transformq 100 :inline)
(jacp-hdr joint-anim-compressed-hdr :inline)
(mtx-acc matrix 2 :inline)
(tq-acc transformq 100 :inline)
(jacp-hdr joint-anim-compressed-hdr :inline)
(fixed-data joint-anim-compressed-fixed :inline)
(frame-data joint-anim-compressed-frame 2 :inline)
(flatten-array float 576 :overlay-at mtx-acc)
(flattened vector 24 :inline :overlay-at mtx-acc)))
(frame-data joint-anim-compressed-frame 2 :inline)
(flatten-array float 576 :overlay-at mtx-acc)
(flattened vector 24 :inline :overlay-at mtx-acc)))
+13 -12
View File
@@ -51,12 +51,12 @@
((mode joint-mod-handler-mode)
(process process-drawable)
(joint cspace)
(target vector :inline)
(twist vector :inline)
(twist-max vector :inline)
(trans vector :inline)
(quat quaternion :inline)
(scale vector :inline)
(target vector :inline)
(twist vector :inline)
(twist-max vector :inline)
(trans vector :inline)
(quat quaternion :inline)
(scale vector :inline)
(notice-time time-frame)
(flex-blend float)
(blend float)
@@ -66,7 +66,7 @@
(nose uint8)
(ear uint8)
(shutting-down? symbol)
(parented-scale? symbol :overlay-at max-dist))
(parented-scale? symbol :overlay-at max-dist))
(:methods
(new (symbol type joint-mod-handler-mode process-drawable int) _type_)
(set-mode! (_type_ joint-mod-handler-mode) _type_)
@@ -314,11 +314,12 @@
(set! (-> gp-0 twist x) (deg-seek (-> gp-0 twist x) f0-20 (fmax 1.0 (* 0.1 (fabs (deg-diff f0-20 (-> gp-0 twist x))))))))
(when (!= (-> gp-0 twist x) 0.0)
(let* ((v1-20 (-> gp-0 ear))
(a1-17 ((cond ((zero? v1-20) matrix-rotate-x!)
((= v1-20 1) matrix-rotate-y!)
(else matrix-rotate-z!))
(new 'stack-no-clear 'matrix)
(-> gp-0 twist x))))
(a1-17 ((cond
((zero? v1-20) matrix-rotate-x!)
((= v1-20 1) matrix-rotate-y!)
(else matrix-rotate-z!))
(new 'stack-no-clear 'matrix)
(-> gp-0 twist x))))
(matrix*! s5-0 a1-17 s5-0))))
(if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0))
(add-debug-text-sphere *display-target-marks*
+28 -30
View File
@@ -33,13 +33,13 @@
(amount float)))
(deftype blend-tree-stack-frame (structure)
((weights float 24)
(quads vector 6 :inline :overlay-at weights)))
((weights float 24)
(quads vector 6 :inline :overlay-at weights)))
(deftype new-joint-decompressor-work (structure)
((requests joint-decomp-request 24 :inline)
((requests joint-decomp-request 24 :inline)
(num-requests int32)
(blend-stack blend-tree-stack-frame 4 :inline))
(blend-stack blend-tree-stack-frame 4 :inline))
(:methods
(eval-blend-tree! (_type_ joint-control) none)
(output-blend-tree! (_type_ joint-control) none)
@@ -277,10 +277,11 @@
(&+! data16 2)))))
(none))
(defun decomp-frame ((output-frame joint-anim-frame) (num-joints int)
(anim joint-anim-compressed-frame)
(amount float)
(hdr joint-anim-compressed-hdr))
(defun decomp-frame ((output-frame joint-anim-frame)
(num-joints int)
(anim joint-anim-compressed-frame)
(amount float)
(hdr joint-anim-compressed-hdr))
"Decompress the fixed part."
(let* ((mbits (-> hdr matrix-bits))
(data (the pointer (-> anim data)))
@@ -413,8 +414,7 @@
(defmethod length ((this joint-anim))
(-> this length))
(defmethod inspect
((this joint-anim-matrix))
(defmethod inspect ((this joint-anim-matrix))
(format #t "[~8x] ~A~%" this (-> this type))
(format #t "~Tname: ~A~%" (-> this name))
(format #t "~Tnumber: ~D~%" (-> this number))
@@ -424,8 +424,7 @@
(defmethod asize-of ((this joint-anim-matrix))
(the-as int (+ (-> joint-anim-matrix size) (* (-> this length) 64))))
(defmethod inspect
((this joint-anim-transformq))
(defmethod inspect ((this joint-anim-transformq))
(format #t "[~8x] ~A~%" this (-> this type))
(format #t "~Tname: ~A~%" (-> this name))
(format #t "~Tnumber: ~D~%" (-> this number))
@@ -611,8 +610,7 @@
(defmethod asize-of ((this art-joint-anim))
(the-as int (+ (-> art size) (* (-> this length) 4))))
(defmethod inspect
((this art-group))
(defmethod inspect ((this art-group))
"Print the arts in an art-group"
(format #t "[~8x] ~A~%" this (-> this type))
(format #t "~Tinfo: ~A~%" (-> this info))
@@ -1327,22 +1325,22 @@
(defun make-joint-jump-tables ()
#|
#x3ee6b6f9, // = 9 ^ 1055307504
#x3ee6b6ff, // = 15 ^ 1055307504
#x3ee6b6e2, // = 18 ^ 1055307504
#x3ee6b6e4, // = 20 ^ 1055307504
#x3ee6b6e5, // = 21 ^ 1055307504
#x3ee6b6eb, // = 27 ^ 1055307504
#x3ee6b6ee, // = 30 ^ 1055307504
#x3ee6b6f6, // = 6 ^ 1055307504
#x3ee6b6fc, // = 12 ^ 1055307504
#x3ee6b6ff, // = 15 ^ 1055307504
#x3ee6b6e3, // = 19 ^ 1055307504
#x3ee6b6e4, // = 20 ^ 1055307504
#x3ee6b6e8, // = 24 ^ 1055307504
#x3ee6b6eb, // = 27 ^ 1055307504
#x3ee6b6ef, // = 31 ^ 1055307504
#x3ee6b6f6, // = 6 ^ 1055307504
#x3ee6b6f9, // = 9 ^ 1055307504
#x3ee6b6ff, // = 15 ^ 1055307504
#x3ee6b6e2, // = 18 ^ 1055307504
#x3ee6b6e4, // = 20 ^ 1055307504
#x3ee6b6e5, // = 21 ^ 1055307504
#x3ee6b6eb, // = 27 ^ 1055307504
#x3ee6b6ee, // = 30 ^ 1055307504
#x3ee6b6f6, // = 6 ^ 1055307504
#x3ee6b6fc, // = 12 ^ 1055307504
#x3ee6b6ff, // = 15 ^ 1055307504
#x3ee6b6e3, // = 19 ^ 1055307504
#x3ee6b6e4, // = 20 ^ 1055307504
#x3ee6b6e8, // = 24 ^ 1055307504
#x3ee6b6eb, // = 27 ^ 1055307504
#x3ee6b6ef, // = 31 ^ 1055307504
#x3ee6b6f6, // = 6 ^ 1055307504
|#
(set! (-> (scratchpad-object terrain-context) work foreground joint-work fix-jmp-table 0)
(the-as (function none) (+ 0 #x3ee6b6f9)))
+3 -3
View File
@@ -37,9 +37,9 @@
;; The "bone" stores the final positions of the bodies.
;; This is a world space transform.
(deftype bone (structure)
((transform matrix :inline)
(position vector :inline :overlay-at (-> transform vector 3))
(scale vector :inline)
((transform matrix :inline)
(position vector :inline :overlay-at (-> transform vector 3))
(scale vector :inline)
(cache bone-cache :inline)))
;; Like a real skeleton, this is a collection of bones for a single character.
+44 -53
View File
@@ -47,29 +47,28 @@
;; definition of type cam-dbg-scratch
(deftype cam-dbg-scratch (structure)
((linevec4w vector4w 2 :inline :offset-assert 0)
(color vector :inline :offset-assert 32)
(plotvec vector4w 2 :inline :offset-assert 48)
(linevec vector4w 2 :inline :offset-assert 80)
(rel-vec vector :inline :offset-assert 112)
(sphere-v-start vector :inline :offset-assert 128)
(sphere-v-end vector :inline :offset-assert 144)
(sphere-v-down vector :inline :offset-assert 160)
(sphere-vec vector :inline :offset-assert 176)
(crossvec vector 3 :inline :offset-assert 192)
(bboxvec vector 6 :inline :offset-assert 240)
(fov-vv vector 4 :inline :offset-assert 336)
(fov-src vector :inline :offset-assert 400)
(fov-dest vector :inline :offset-assert 416)
(fov-vert vector :inline :offset-assert 432)
(fov-horz vector :inline :offset-assert 448))
((linevec4w vector4w 2 :inline :offset-assert 0)
(color vector :inline :offset-assert 32)
(plotvec vector4w 2 :inline :offset-assert 48)
(linevec vector4w 2 :inline :offset-assert 80)
(rel-vec vector :inline :offset-assert 112)
(sphere-v-start vector :inline :offset-assert 128)
(sphere-v-end vector :inline :offset-assert 144)
(sphere-v-down vector :inline :offset-assert 160)
(sphere-vec vector :inline :offset-assert 176)
(crossvec vector 3 :inline :offset-assert 192)
(bboxvec vector 6 :inline :offset-assert 240)
(fov-vv vector 4 :inline :offset-assert 336)
(fov-src vector :inline :offset-assert 400)
(fov-dest vector :inline :offset-assert 416)
(fov-vert vector :inline :offset-assert 432)
(fov-horz vector :inline :offset-assert 448))
:method-count-assert 9
:size-assert #x1d0
:flag-assert #x9000001d0)
;; definition for method 3 of type cam-dbg-scratch
(defmethod inspect
((obj cam-dbg-scratch))
(defmethod inspect ((obj cam-dbg-scratch))
(format #t "[~8x] ~A~%" obj 'cam-dbg-scratch)
(format #t "~Tlinevec4w[2] @ #x~X~%" (-> obj linevec4w))
(format #t "~Tcolor: ~`vector`P~%" (-> obj color))
@@ -160,14 +159,10 @@
(set! (-> (the-as gs-gif-tag a3-2) regs)
(new 'static
'gif-tag-regs
:regs0
(gif-reg-id rgbaq)
:regs1
(gif-reg-id xyzf2)
:regs2
(gif-reg-id rgbaq)
:regs3
(gif-reg-id xyzf2)))
:regs0 (gif-reg-id rgbaq)
:regs1 (gif-reg-id xyzf2)
:regs2 (gif-reg-id rgbaq)
:regs3 (gif-reg-id xyzf2)))
(set! (-> a1-1 base) (&+ (the-as pointer a3-2) 16)))
(let* ((a1-2 v1-3)
(a3-4 (-> a1-2 base)))
@@ -193,9 +188,9 @@
(set! (-> (the-as dma-packet a0-4) vif1) (new 'static 'vif-tag))
(set! (-> v1-3 base) (&+ (the-as pointer a0-4) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-no-zbuf)
a2-0
(the-as (pointer dma-tag) a3-16)))))
(bucket-id debug-no-zbuf)
a2-0
(the-as (pointer dma-tag) a3-16)))))
;; definition for function camera-line2d
(defun camera-line2d ((arg0 vector4w) (arg1 vector4w))
@@ -400,16 +395,15 @@
;; definition of type cam-debug-tri
(deftype cam-debug-tri (structure)
((vertex vector 3 :inline :offset-assert 0)
(intersect vector :inline :offset-assert 48)
((vertex vector 3 :inline :offset-assert 0)
(intersect vector :inline :offset-assert 48)
(color vector4w :offset-assert 64))
:method-count-assert 9
:size-assert #x44
:flag-assert #x900000044)
;; definition for method 3 of type cam-debug-tri
(defmethod inspect
((obj cam-debug-tri))
(defmethod inspect ((obj cam-debug-tri))
(format #t "[~8x] ~A~%" obj 'cam-debug-tri)
(format #t "~Tvertex[3] @ #x~X~%" (-> obj vertex))
(format #t "~Tintersect: #<vector @ #x~X>~%" (-> obj intersect))
@@ -568,8 +562,7 @@
;; definition for method 11 of type tracking-spline
;; INFO: Return type mismatch int vs none.
(defmethod print-nth-point
((obj tracking-spline) (arg0 int))
(defmethod print-nth-point ((obj tracking-spline) (arg0 int))
(if (= arg0 (-> obj used-point)) (format 0 "u") (format 0 " "))
(if (= arg0 (-> obj next-to-last-point)) (format 0 "n") (format 0 " "))
(if (= arg0 (-> obj end-point)) (format 0 "e") (format 0 " "))
@@ -584,8 +577,7 @@
0
(none))
(defmethod tracking-spline-method-12
((obj tracking-spline))
(defmethod tracking-spline-method-12 ((obj tracking-spline))
(let ((s5-0 (-> obj used-point)))
(while (!= s5-0 -134250495)
(print-nth-point obj s5-0)
@@ -594,8 +586,7 @@
0
(none))
(defmethod tracking-spline-method-23
((obj tracking-spline))
(defmethod tracking-spline-method-23 ((obj tracking-spline))
(let ((s5-0 (-> obj used-point))
(s4-0 (-> obj point (-> obj used-point) next)))
(let ((s3-0 (new 'stack-no-clear 'vector)))
@@ -839,20 +830,20 @@
(none))
(deftype cam-collision-record (structure)
((pos vector :inline :offset-assert 0)
(vel vector :inline :offset-assert 16)
(desired-pos vector :inline :offset-assert 32)
(cam-tpos-cur vector :inline :offset-assert 48)
(cam-tpos-old vector :inline :offset-assert 64)
(view-flat vector :inline :offset-assert 80)
(string-min-val vector :inline :offset-assert 96)
(string-max-val vector :inline :offset-assert 112)
(view-off vector :inline :offset-assert 128)
(min-z-override float :offset-assert 144)
(string-push-z float :offset-assert 148)
(view-off-param float :offset-assert 152)
(frame int32 :offset-assert 156)
(iteration int32 :offset-assert 160)
((pos vector :inline :offset-assert 0)
(vel vector :inline :offset-assert 16)
(desired-pos vector :inline :offset-assert 32)
(cam-tpos-cur vector :inline :offset-assert 48)
(cam-tpos-old vector :inline :offset-assert 64)
(view-flat vector :inline :offset-assert 80)
(string-min-val vector :inline :offset-assert 96)
(string-max-val vector :inline :offset-assert 112)
(view-off vector :inline :offset-assert 128)
(min-z-override float :offset-assert 144)
(string-push-z float :offset-assert 148)
(view-off-param float :offset-assert 152)
(frame int32 :offset-assert 156)
(iteration int32 :offset-assert 160)
(move-type symbol :offset-assert 164))
:method-count-assert 9
:size-assert #xa8
+157 -139
View File
@@ -42,9 +42,9 @@
((button uint64)
(options uint64)
(func symbol)
(parm0 int32 :offset 20)
(parm0-basic basic :overlay-at parm0)
(parm1-basic basic :offset 24)
(parm0 int32 :offset 20)
(parm0-basic basic :overlay-at parm0)
(parm1-basic basic :offset 24)
(parm1 symbol :overlay-at parm1-basic)))
(deftype clm-item (clm-basic)
@@ -56,10 +56,10 @@
((description string)
(track-val symbol)
(val-func symbol)
(val-parm0 int32 :offset 16)
(val-parm0-basic basic :overlay-at val-parm0)
(val-parm1-basic basic :offset 20)
(val-parm1 symbol :overlay-at val-parm1-basic)
(val-parm0 int32 :offset 16)
(val-parm0-basic basic :overlay-at val-parm0)
(val-parm1-basic basic :offset 20)
(val-parm1 symbol :overlay-at val-parm1-basic)
(actions (array clm-item-action))))
(deftype clm-list (clm-basic)
@@ -112,9 +112,9 @@
(set! (-> (the-as dma-packet v1-4) vif1) (new 'static 'vif-tag))
(set! (-> s5-0 base) (&+ (the-as pointer v1-4) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-0
(the-as (pointer dma-tag) a3-4)))))
(bucket-id debug)
gp-0
(the-as (pointer dma-tag) a3-4)))))
(defun cam-layout-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector))
(let ((f0-1 (vector-dot arg1 arg0))
@@ -138,13 +138,14 @@
(let ((s4-0 0))
(loop (set! sv-16 (new 'static 'res-tag))
(let ((s3-0 (the-as (inline-array vector)
((method-of-type res-lump get-property-data) arg0
arg1
'exact
(the float s4-0)
(the-as pointer #f)
(& sv-16)
*res-static-buf*))))
((method-of-type res-lump get-property-data)
arg0
arg1
'exact
(the float s4-0)
(the-as pointer #f)
(& sv-16)
*res-static-buf*))))
(cond
(s3-0
(when (>= *volume-descriptor-current* 100)
@@ -285,9 +286,9 @@
(vector+float*! arg0 arg0 arg2 (/ (sin (* arg3 f28-0)) f30-0)))))
(deftype interp-test-info (structure)
((from vector :inline)
(to vector :inline)
(origin vector :inline)
((from vector :inline)
(to vector :inline)
(origin vector :inline)
(color vector4w)
(axis vector)
(disp string)))
@@ -374,13 +375,14 @@
(else
(set! (-> s4-1 quad)
(-> (the-as vector
((method-of-type res-lump get-property-struct) arg0
'spline-offset
'interp
(the-as float -1000000000.0)
s4-1
(the-as (pointer res-tag) #f)
*res-static-buf*))
((method-of-type res-lump get-property-struct)
arg0
'spline-offset
'interp
(the-as float -1000000000.0)
s4-1
(the-as (pointer res-tag) #f)
*res-static-buf*))
quad))))
(curve-get-pos! s5-4 (the-as float 0.0) s3-1)
(vector+! s5-4 s5-4 s4-1)
@@ -889,13 +891,14 @@
(-> s5-1 z))))))))
(defun cam-layout-save-fov ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'fov
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'fov
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'fov '-offset)
(let ((f28-0 (s3-0 arg2
@@ -916,13 +919,14 @@
(format arg1 " tag fov-offset DEG(~R) // float~%" f28-0))))))
(defun cam-layout-save-focalpull ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'focalPull
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'focalPull
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'focalPull '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1055,13 +1059,14 @@
(the-as string (format arg1 " tag campoints-flags-off 0x~X // int32~%" s3-1))))))
(defun cam-layout-save-introsplinetime ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'intro-time
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'intro-time
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'intro-time '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1082,13 +1087,14 @@
(format arg1 " tag intro-time-offset SECONDS(~f) // float~%" f28-0))))))
(defun cam-layout-save-introsplineexitval ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'intro-exitValue
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'intro-exitValue
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'intro-exitValue '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1108,13 +1114,14 @@
(format arg1 " tag intro-exitValue-offset ~f // float~%" f28-0))))))
(defun cam-layout-save-interptime ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'interpTime
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'interpTime
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'interpTime '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1148,20 +1155,22 @@
(defun cam-layout-save-spline-follow-dist-offset ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(the-as string
(when (and (not (res-lump-struct arg2 'pivot structure :time (the-as float -1000000000.0)))
((method-of-type res-lump get-property-value-float) arg2
'spline-follow-dist-offset
'interp
(the-as float -1000000000.0)
(the-as float #f)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'spline-follow-dist-offset
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*)))
((method-of-type res-lump get-property-value-float)
arg2
'spline-follow-dist-offset
'interp
(the-as float -1000000000.0)
(the-as float #f)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'spline-follow-dist-offset
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*)))
(when (the int f30-0)
(if arg0 (format #t "spline follow dist offset ~M~%" f30-0))
(format arg1 " tag spline-follow-dist-offset METERS(~M)~%" f30-0))))))
@@ -1178,13 +1187,14 @@
(-> s5-0 z))))))
(defun cam-layout-save-tiltAdjust ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'tiltAdjust
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'tiltAdjust
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'tiltAdjust '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1203,13 +1213,14 @@
(format arg1 " tag tiltAdjust-offset DEG(~R) // float~%" f28-0))))))
(defun cam-layout-save-stringMinLength ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'stringMinLength
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'stringMinLength
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'stringMinLength '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1228,13 +1239,14 @@
(format arg1 " tag stringMinLength-offset METERS(~M) // float~%" f28-0))))))
(defun cam-layout-save-stringMaxLength ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'stringMaxLength
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'stringMaxLength
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'stringMaxLength '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1253,13 +1265,14 @@
(format arg1 " tag stringMaxLength-offset METERS(~M) // float~%" f28-0))))))
(defun cam-layout-save-stringMinHeight ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'stringMinHeight
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'stringMinHeight
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'stringMinHeight '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1278,13 +1291,14 @@
(format arg1 " tag stringMinHeight-offset METERS(~M) // float~%" f28-0))))))
(defun cam-layout-save-stringMaxHeight ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'stringMaxHeight
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'stringMaxHeight
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'stringMaxHeight '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1303,13 +1317,14 @@
(format arg1 " tag stringMaxHeight-offset METERS(~M) // float~%" f28-0))))))
(defun cam-layout-save-stringCliffHeight ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'stringCliffHeight
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'stringCliffHeight
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'stringCliffHeight '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1328,13 +1343,14 @@
(format arg1 " tag stringCliffHeight-offset METERS(~M) // float~%" f28-0))))))
(defun cam-layout-save-maxAngle ((arg0 symbol) (arg1 string) (arg2 entity-actor))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) arg2
'maxAngle
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
arg2
'maxAngle
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(s3-0 (method-of-type res-lump get-property-value-float)))
(format (clear *res-key-string*) "~S~S" 'maxAngle '-offset)
(let ((f28-0 (s3-0 arg2
@@ -1535,13 +1551,14 @@
*res-static-buf*)
s5-0))
(format arg0 ": on"))
((not (logtest? ((method-of-type res-lump get-property-value) (-> self cam-entity)
(the-as symbol arg2)
'exact
f30-0
(the-as uint128 0)
(the-as (pointer res-tag) #f)
*res-static-buf*)
((not (logtest? ((method-of-type res-lump get-property-value)
(-> self cam-entity)
(the-as symbol arg2)
'exact
f30-0
(the-as uint128 0)
(the-as (pointer res-tag) #f)
*res-static-buf*)
s5-0))
(format arg0 ": off(maya)"))
(else (format arg0 ": on(maya)")))))
@@ -1550,13 +1567,14 @@
(defbehavior clmf-cam-float-adjust cam-layout ((arg0 symbol) (arg1 (pointer float)))
(cam-layout-print 16 *camera-layout-message-ypos* "left stick adjusts value")
(set! *camera-layout-message-ypos* (+ *camera-layout-message-ypos* 8))
(let ((f30-0 ((method-of-type res-lump get-property-value-float) (-> self cam-entity)
arg0
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(let ((f30-0 ((method-of-type res-lump get-property-value-float)
(-> self cam-entity)
arg0
'interp
(the-as float -1000000000.0)
(the-as float 0.0)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(f0-0 (-> arg1 0)))
(if (= f0-0 0.0) (set! f0-0 1.0))
(let ((f0-2 (+ f30-0
+24 -21
View File
@@ -347,13 +347,14 @@
(let ((s2-0 0))
(loop (set! sv-16 (new 'static 'res-tag))
(let ((v1-1 (the-as object
((method-of-type res-lump get-property-data) arg1
arg3
'exact
(the float s2-0)
(the-as pointer #f)
(& sv-16)
*res-static-buf*))))
((method-of-type res-lump get-property-data)
arg1
arg3
'exact
(the float s2-0)
(the-as pointer #f)
(& sv-16)
*res-static-buf*))))
(cond
((not (the-as pointer v1-1)) (return #f))
(else
@@ -490,20 +491,22 @@
(not (in-cam-entity-volume? (target-pos 0) (-> self cam-entity) 0.0 'cutoutvol))
(or (in-cam-entity-volume? (target-pos 0) (-> self cam-entity) 1024.0 'pvol)
(in-cam-entity-volume? (target-pos 0) (-> self cam-entity) 1024.0 'vol)
(and (not ((method-of-type res-lump get-property-data) (-> self cam-entity)
'pvol
'exact
0.0
(the-as pointer #f)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(not ((method-of-type res-lump get-property-data) (-> self cam-entity)
'vol
'exact
0.0
(the-as pointer #f)
(the-as (pointer res-tag) #f)
*res-static-buf*)))))
(and (not ((method-of-type res-lump get-property-data)
(-> self cam-entity)
'pvol
'exact
0.0
(the-as pointer #f)
(the-as (pointer res-tag) #f)
*res-static-buf*))
(not ((method-of-type res-lump get-property-data)
(-> self cam-entity)
'vol
'exact
0.0
(the-as pointer #f)
(the-as (pointer res-tag) #f)
*res-static-buf*)))))
#f)
(else
(let ((v1-17 (-> *camera-engine* alive-list next0)))
+6 -1
View File
@@ -23,7 +23,12 @@
(process-spawn camera-combiner :init cam-combiner-init :from *camera-dead-pool* :to *camera-pool*)
(set! *camera*
(the-as camera-master
(ppointer->process (process-spawn-function camera-master cam-master-init :from *camera-master-dead-pool* :to *camera-pool*))))
(ppointer->process (process-spawn-function camera-master
cam-master-init
:from
*camera-master-dead-pool*
:to
*camera-pool*))))
(if arg0 (reset-cameras))
0
(none))
+8 -7
View File
@@ -875,18 +875,19 @@
(else (format *stdcon* "~S invalid~%" arg1))))
(deftype collide-los-result (structure)
((lateral vector :inline)
((lateral vector :inline)
(cw collide-los-dist-info :inline)
(ccw collide-los-dist-info :inline)
(straddle collide-los-dist-info :inline)
(lateral-valid symbol)))
(defun los-cw-ccw ((arg0 (inline-array collide-cache-tri)) (arg1 vector)
(arg2 vector)
(arg3 float)
(arg4 clip-travel-vector-to-mesh-return-info)
(arg5 vector)
(arg6 float))
(defun los-cw-ccw ((arg0 (inline-array collide-cache-tri))
(arg1 vector)
(arg2 vector)
(arg3 float)
(arg4 clip-travel-vector-to-mesh-return-info)
(arg5 vector)
(arg6 float))
(local-vars (sv-128 float) (sv-144 vector) (sv-160 vector) (sv-176 vector) (sv-192 vector) (sv-208 int))
(with-pp
(set! sv-128 arg3)
+51 -52
View File
@@ -86,8 +86,7 @@
(default-tilt-adjust degrees)))
(define *CAMERA-bank*
(new
'static
(new 'static
'camera-bank
:collide-move-rad 1638.4
:min-detectable-velocity 40.96
@@ -101,7 +100,7 @@
(deftype cam-index (structure)
((flags cam-index-options)
(vec vector 2 :inline :offset 16))
(vec vector 2 :inline :offset 16))
(:methods
(cam-index-method-9 (_type_ symbol entity vector curve) symbol)
(cam-index-method-10 (_type_ vector) float)))
@@ -128,9 +127,9 @@
(max-move float)
(sample-len float)
(used-count int32)
(old-position vector :inline)
(debug-old-position vector :inline)
(debug-out-position vector :inline)
(old-position vector :inline)
(debug-old-position vector :inline)
(debug-out-position vector :inline)
(debug-last-point int32))
(:methods
(tracking-spline-method-9 (_type_) none)
@@ -240,27 +239,27 @@
(none))
(deftype cam-rotation-tracker (structure)
((inv-mat matrix :inline)
((inv-mat matrix :inline)
(no-follow basic)
(follow-pt vector :inline)
(follow-off vector :inline)
(follow-pt vector :inline)
(follow-off vector :inline)
(follow-blend float)
(tilt-adjust cam-float-seeker :inline)
(use-point-of-interest basic)
(point-of-interest vector :inline)
(point-of-interest vector :inline)
(point-of-interest-blend cam-float-seeker :inline)
(underwater-blend cam-float-seeker :inline)))
(deftype camera-combiner (process)
((trans vector :inline)
(inv-camera-rot matrix :inline)
((trans vector :inline)
(inv-camera-rot matrix :inline)
(fov float)
(interp-val float)
(interp-step float)
(dist-from-src float)
(dist-from-dest float)
(flip-control-axis vector :inline)
(velocity vector :inline)
(flip-control-axis vector :inline)
(velocity vector :inline)
(tracking-status uint64)
(tracking-options int32)
(tracking cam-rotation-tracker :inline))
@@ -268,45 +267,45 @@
cam-combiner-active))
(deftype camera-slave (process)
((trans vector :inline)
((trans vector :inline)
(fov float)
(fov0 float)
(fov1 float)
(fov-index cam-index :inline)
(tracking cam-rotation-tracker :inline)
(fov-index cam-index :inline)
(tracking cam-rotation-tracker :inline)
(view-off-param float)
(unknown-symbol symbol :offset 412)
(view-off vector :inline)
(unknown-symbol symbol :offset 412)
(view-off vector :inline)
(min-z-override float)
(view-flat vector :inline)
(view-flat vector :inline)
(string-vel-dir uint32)
(string-trans vector :inline)
(position-spline tracking-spline :inline)
(pivot-pt vector :inline)
(string-trans vector :inline)
(position-spline tracking-spline :inline)
(pivot-pt vector :inline)
(pivot-rad float)
(circular-follow vector :inline)
(circular-follow vector :inline)
(max-angle-offset float)
(max-angle-curr float)
(options uint32)
(cam-entity entity)
(velocity vector :inline)
(desired-pos vector :inline)
(velocity vector :inline)
(desired-pos vector :inline)
(time-dist-too-far uint32)
(los-state slave-los-state)
(good-point vector :inline)
(good-point vector :inline)
(los-tgt-spline-pt int32)
(los-tgt-spline-pt-incarnation int32)
(los-last-pos vector :inline)
(intro-curve curve :inline)
(intro-offset vector :inline)
(los-last-pos vector :inline)
(intro-curve curve :inline)
(intro-offset vector :inline)
(intro-t float)
(intro-t-step float)
(outro-exit-value float)
(spline-exists basic)
(spline-curve curve :inline)
(spline-offset vector :inline)
(index cam-index :inline)
(saved-pt vector :inline)
(spline-curve curve :inline)
(spline-offset vector :inline)
(index cam-index :inline)
(saved-pt vector :inline)
(spline-tt float)
(spline-follow-dist float)
(change-event-from (pointer process-drawable))
@@ -316,8 +315,8 @@
(have-phony-joystick basic)
(phony-joystick-x float)
(phony-joystick-y float)
(string-min-val vector :inline)
(string-max-val vector :inline)
(string-min-val vector :inline)
(string-max-val vector :inline)
(string-val-locked basic))
(:states
*camera-base-mode*
@@ -350,7 +349,7 @@
(deftype camera-master (process)
((master-options uint32)
(num-slaves int32)
(slave (pointer camera-slave) 2)
(slave (pointer camera-slave) 2)
(slave-options uint32)
(view-off-param-save float)
(changer uint32)
@@ -359,14 +358,14 @@
(stringMaxLength float)
(stringMinHeight float)
(stringMaxHeight float)
(string-min cam-vector-seeker :inline)
(string-max cam-vector-seeker :inline)
(string-min cam-vector-seeker :inline)
(string-max cam-vector-seeker :inline)
(string-push-z float)
(stringCliffHeight float)
(no-intro uint32)
(force-blend uint32)
(force-blend-time uint32)
(local-down vector :inline)
(local-down vector :inline)
(drawable-target handle)
(which-bone int32)
(pov-handle handle)
@@ -376,24 +375,24 @@
(on-ground symbol)
(under-water int32)
(on-pole symbol)
(tgt-rot-mat matrix :inline)
(tgt-face-mat matrix :inline)
(tpos-old vector :inline)
(tpos-curr vector :inline)
(tgt-rot-mat matrix :inline)
(tgt-face-mat matrix :inline)
(tpos-old vector :inline)
(tpos-curr vector :inline)
(target-height float)
(tpos-old-adj vector :inline)
(tpos-curr-adj vector :inline)
(tpos-tgt vector :inline)
(tpos-old-adj vector :inline)
(tpos-curr-adj vector :inline)
(tpos-tgt vector :inline)
(upspeed float)
(pitch-off vector :inline)
(pitch-off vector :inline)
(foot-offset float)
(head-offset float)
(target-spline tracking-spline :inline)
(ease-from vector :inline)
(target-spline tracking-spline :inline)
(ease-from vector :inline)
(ease-t float)
(ease-step float)
(ease-to vector :inline)
(outro-curve curve :inline)
(ease-to vector :inline)
(outro-curve curve :inline)
(outro-t float)
(outro-t-step float)
(outro-exit-value float)
+1 -1
View File
@@ -25,7 +25,7 @@
;; for example, the introduction to orbs in geyser, or the camera that shows you where the steps to fire canyon
;; are.
(deftype pov-camera (process-drawable)
((cspace-array cspace-array :overlay-at root)
((cspace-array cspace-array :overlay-at root)
(flags pov-camera-flag)
(debounce-start-time time-frame)
(notify-handle handle)
+8 -10
View File
@@ -93,9 +93,9 @@
(method-of-object self check-for-abort))))
(go-virtual pov-camera-done-playing))
:post
(behavior ()
(if (= (-> self anim-name type) string) (execute-commands-up-to *load-state* (ja-aframe-num 0)))
(ja-post)))
(behavior ()
(if (= (-> self anim-name type) string) (execute-commands-up-to *load-state* (ja-aframe-num 0)))
(ja-post)))
(defstate pov-camera-abort (pov-camera)
:virtual #t
@@ -157,13 +157,11 @@
((= (-> arg2 type) spool-anim)))
(set! (-> self mask-to-clear) (process-mask movie enemy platform projectile))
(set! (-> self event-hook)
(lambda :behavior
pov-camera
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('mask) (let ((v0-0 (the-as number (-> arg3 param 0)))) (set! (-> self mask-to-clear) (the-as process-mask v0-0)) v0-0))
(('music-movie-volume) (set! (-> self music-volume-movie) (the-as float (-> arg3 param 0))))
(('sfx-movie-volume) (set! (-> self sfx-volume-movie) (the-as float (-> arg3 param 0)))))))
(lambda :behavior pov-camera ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('mask) (let ((v0-0 (the-as number (-> arg3 param 0)))) (set! (-> self mask-to-clear) (the-as process-mask v0-0)) v0-0))
(('music-movie-volume) (set! (-> self music-volume-movie) (the-as float (-> arg3 param 0))))
(('sfx-movie-volume) (set! (-> self sfx-volume-movie) (the-as float (-> arg3 param 0)))))))
(pre-startup-callback self)
(go-virtual pov-camera-startup)
(none))
+29 -29
View File
@@ -29,14 +29,14 @@
;; primitive using sphere-sphere
(deftype collide-puss-sphere (structure)
((bsphere sphere :inline)
((bsphere sphere :inline)
(bbox4w bounding-box4w :inline)))
(deftype collide-puss-work (structure)
((closest-pt vector :inline)
(tri-normal vector :inline)
(tri-bbox4w bounding-box4w :inline)
(spheres-bbox4w bounding-box4w :inline)
((closest-pt vector :inline)
(tri-normal vector :inline)
(tri-bbox4w bounding-box4w :inline)
(spheres-bbox4w bounding-box4w :inline)
(spheres collide-puss-sphere 64 :inline))
(:methods
(collide-puss-work-method-9 (_type_ object object) symbol)
@@ -47,8 +47,8 @@
((best-u float)
(ignore-pat pat-surface)
(tri-out collide-tri-result)
(start-pos vector :inline)
(move-dist vector :inline)))
(start-pos vector :inline)
(move-dist vector :inline)))
;;;;;;;;;;;;;;;;;;;;;;;
;; Main Cache Types
@@ -57,28 +57,28 @@
;; The triangles stored in the cache.
;; This is a common return type of collision queries.
(deftype collide-cache-tri (structure)
((vertex vector 3 :inline) ;; actual locations
(extra-quad uint128 :offset 48)
((vertex vector 3 :inline) ;; actual locations
(extra-quad uint128 :offset 48)
(pat pat-surface :overlay-at extra-quad) ; metadata about the surface of this tri
(prim-index uint16 :offset 52) ; in the collide-cache-prim list
(user16 uint16 :offset 54)
(user32 uint32 2 :offset 56)))
(prim-index uint16 :offset 52) ; in the collide-cache-prim list
(user16 uint16 :offset 54)
(user32 uint32 2 :offset 56)))
;; The primitives stored in the cache.
;; The "core" is extracted from the normal collide-shape-prim and placed inline here.
(deftype collide-cache-prim (structure)
((prim-core collide-prim-core :inline)
((prim-core collide-prim-core :inline)
(extra-quad uint128)
(ccache collide-cache :overlay-at extra-quad)
(ccache collide-cache :overlay-at extra-quad)
(prim collide-shape-prim :offset 36)
(first-tri uint16 :offset 40)
(num-tris uint16 :offset 42)
(unused uint8 4 :offset 44)
(world-sphere vector :inline :overlay-at (-> prim-core world-sphere))
(collide-as collide-kind :overlay-at (-> prim-core collide-as))
(action collide-action :overlay-at (-> prim-core action))
(offense collide-offense :overlay-at (-> prim-core offense))
(prim-type int8 :overlay-at (-> prim-core prim-type)))
(first-tri uint16 :offset 40)
(num-tris uint16 :offset 42)
(unused uint8 4 :offset 44)
(world-sphere vector :inline :overlay-at (-> prim-core world-sphere))
(collide-as collide-kind :overlay-at (-> prim-core collide-as))
(action collide-action :overlay-at (-> prim-core action))
(offense collide-offense :overlay-at (-> prim-core offense))
(prim-type int8 :overlay-at (-> prim-core prim-type)))
(:methods
(resolve-moving-sphere-tri (_type_ collide-tri-result collide-prim-core vector float collide-action) float)
(resolve-moving-sphere-sphere (_type_ collide-tri-result collide-prim-core vector float collide-action) float)))
@@ -87,14 +87,14 @@
(deftype collide-cache (basic)
((num-tris int32)
(num-prims int32)
(num-prims-u uint32 :overlay-at num-prims)
(num-prims-u uint32 :overlay-at num-prims)
(ignore-mask pat-surface)
(proc process-drawable)
(collide-box bounding-box :inline)
(collide-box4w bounding-box4w :inline)
(collide-box bounding-box :inline)
(collide-box4w bounding-box4w :inline)
(collide-with collide-kind)
(prims collide-cache-prim 100 :inline)
(tris collide-cache-tri 461 :inline))
(prims collide-cache-prim 100 :inline)
(tris collide-cache-tri 461 :inline))
(:methods
(debug-draw (_type_) none)
(fill-and-probe-using-line-sphere (_type_ vector vector float collide-kind process collide-tri-result pat-surface) float)
@@ -130,9 +130,9 @@
(items collide-list-item 256 :inline)))
(deftype collide-work (structure)
((collide-sphere-neg-r sphere :inline)
((collide-sphere-neg-r sphere :inline)
(collide-box4w bounding-box4w :inline)
(inv-mat matrix :inline)))
(inv-mat matrix :inline)))
(define-perm *collide-work* collide-work (new 'global 'collide-work))
+17 -15
View File
@@ -1793,10 +1793,10 @@
(probe-using-line-sphere obj arg0 arg1 arg2 arg3 arg5 arg6))
(deftype collide-puls-work (structure)
((ignore-pat pat-surface :offset-assert 0)
((ignore-pat pat-surface :offset-assert 0)
(tri-out collide-tri-result :offset-assert 4)
(bsphere sphere :inline :offset-assert 16)
(move-dist vector :inline :offset-assert 32))
(bsphere sphere :inline :offset-assert 16)
(move-dist vector :inline :offset-assert 32))
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030)
@@ -1823,21 +1823,23 @@
(logtest? (-> (the-as collide-cache-prim s3-0) prim-core action) (collide-action solid)))
(cond
((>= (-> (the-as collide-cache-prim s3-0) prim-core prim-type) 0)
(let ((f0-0 ((method-of-type collide-cache-prim resolve-moving-sphere-tri) (the-as collide-cache-prim s3-0)
(-> s4-0 tri-out)
(the-as collide-prim-core (-> s4-0 bsphere))
(-> s4-0 move-dist)
f30-0
(collide-action solid))))
(let ((f0-0 ((method-of-type collide-cache-prim resolve-moving-sphere-tri)
(the-as collide-cache-prim s3-0)
(-> s4-0 tri-out)
(the-as collide-prim-core (-> s4-0 bsphere))
(-> s4-0 move-dist)
f30-0
(collide-action solid))))
(if (>= f0-0 0.0) (set! f30-0 f0-0))))
(else
(when (zero? (logand arg5 (-> (the-as collide-shape-prim-sphere (-> (the-as collide-cache-prim s3-0) prim)) pat)))
(let ((f0-1 ((method-of-type collide-cache-prim resolve-moving-sphere-sphere) (the-as collide-cache-prim s3-0)
(-> s4-0 tri-out)
(the-as collide-prim-core (-> s4-0 bsphere))
(-> s4-0 move-dist)
f30-0
(collide-action solid))))
(let ((f0-1 ((method-of-type collide-cache-prim resolve-moving-sphere-sphere)
(the-as collide-cache-prim s3-0)
(-> s4-0 tri-out)
(the-as collide-prim-core (-> s4-0 bsphere))
(-> s4-0 move-dist)
f30-0
(collide-action solid))))
(if (>= f0-1 0.0) (set! f30-0 f0-1)))))))
(set! s3-0 (-> (the-as (inline-array collide-cache-prim) s3-0) 1)))
f30-0))))
@@ -19,14 +19,14 @@
;; DECOMP BEGINS
(deftype edge-grab-info (structure)
((world-vertex vector 6 :inline)
(local-vertex vector 6 :inline)
((world-vertex vector 6 :inline)
(local-vertex vector 6 :inline)
(actor-cshape-prim-offset int32)
(actor-handle handle)
(hanging-matrix matrix :inline)
(edge-vertex vector 2 :inline :overlay-at (-> world-vertex 0))
(edge-vertex vector 2 :inline :overlay-at (-> world-vertex 0))
(center-hold vector :inline :overlay-at (-> world-vertex 2))
(tri-vertex vector 3 :inline :overlay-at (-> world-vertex 3))
(tri-vertex vector 3 :inline :overlay-at (-> world-vertex 3))
(left-hand-hold vector :inline)
(right-hand-hold vector :inline)
(center-hold-old vector :inline)
@@ -46,23 +46,23 @@
((ignore basic)
(etri collide-edge-tri)
(vertex-ptr (inline-array vector) 2)
(outward vector :inline)
(edge-vec-norm vector :inline)))
(outward vector :inline)
(edge-vec-norm vector :inline)))
(deftype collide-edge-hold-item (structure)
((next collide-edge-hold-item)
(rating float)
(split int8)
(edge collide-edge-edge)
(center-pt vector :inline)
(outward-pt vector :inline)))
(center-pt vector :inline)
(outward-pt vector :inline)))
(deftype collide-edge-hold-list (structure)
((num-allocs uint32)
(num-attempts uint32)
(head collide-edge-hold-item)
(items collide-edge-hold-item 32 :inline)
(attempts qword 32 :inline))
(attempts qword 32 :inline))
(:methods
(debug-draw (_type_) object)
(add-to-list! (_type_ collide-edge-hold-item) none)))
@@ -78,26 +78,26 @@
(num-verts uint32)
(num-edges uint32)
(num-tris uint32)
(cache-fill-box bounding-box :inline)
(within-reach-box bounding-box :inline)
(within-reach-box4w bounding-box4w :inline)
(search-pt vector :inline)
(search-dir-vec vector :inline)
(cache-fill-box bounding-box :inline)
(within-reach-box bounding-box :inline)
(within-reach-box4w bounding-box4w :inline)
(search-pt vector :inline)
(search-dir-vec vector :inline)
(max-dist-sqrd-to-outward-pt float)
(max-dir-cosa-delta float)
(split-dists float 2)
(outward-offset vector :inline)
(local-cache-fill-box bounding-box :inline)
(local-within-reach-box bounding-box :inline)
(local-player-spheres sphere 12 :inline)
(world-player-spheres sphere 12 :inline)
(local-player-hanging-spheres sphere 6 :inline :overlay-at (-> local-player-spheres 0))
(world-player-hanging-spheres sphere 6 :inline :overlay-at (-> world-player-spheres 0))
(local-player-leap-up-spheres sphere 6 :inline :overlay-at (-> local-player-spheres 6))
(world-player-leap-up-spheres sphere 6 :inline :overlay-at (-> world-player-spheres 6))
(verts vector 64 :inline)
(edges collide-edge-edge 96 :inline)
(tris collide-edge-tri 48 :inline)
(split-dists float 2)
(outward-offset vector :inline)
(local-cache-fill-box bounding-box :inline)
(local-within-reach-box bounding-box :inline)
(local-player-spheres sphere 12 :inline)
(world-player-spheres sphere 12 :inline)
(local-player-hanging-spheres sphere 6 :inline :overlay-at (-> local-player-spheres 0))
(world-player-hanging-spheres sphere 6 :inline :overlay-at (-> world-player-spheres 0))
(local-player-leap-up-spheres sphere 6 :inline :overlay-at (-> local-player-spheres 6))
(world-player-leap-up-spheres sphere 6 :inline :overlay-at (-> world-player-spheres 6))
(verts vector 64 :inline)
(edges collide-edge-edge 96 :inline)
(tris collide-edge-tri 48 :inline)
(hold-list collide-edge-hold-list :inline))
(:methods
(search-for-edges (_type_ collide-edge-hold-list) symbol)
@@ -112,8 +112,8 @@
(deftype pbhp-stack-vars (structure)
((edge collide-edge-edge)
(allocated basic)
(neg-hold-pt vector :inline)
(split-vec vector :inline)))
(neg-hold-pt vector :inline)
(split-vec vector :inline)))
(defmethod-mips2c "(method 18 collide-edge-work)" 18 collide-edge-work)
@@ -544,13 +544,13 @@
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:flags
(surface-flags moving-ground))))
:flags (surface-flags moving-ground))))
(define *rotate-surface* v1-1)
(set! *rotate-surface* v1-1)
(set! (-> v1-1 mult-hook)
(the-as (function surface surface surface int none)
(lambda ((arg0 surface) (arg1 object) (arg2 object) (arg3 int)) (if (= arg3 1) (set! (-> arg0 fric) 151756.8)))))
(lambda ((arg0 surface) (arg1 object) (arg2 object) (arg3 int))
(if (= arg3 1) (set! (-> arg0 fric) 151756.8)))))
(set! (-> v1-1 touch-hook) nothing)
(set! (-> v1-1 active-hook) nothing))
@@ -573,8 +573,7 @@
:alignv 0.5
:slope-up-traction 0.9
:align-speed 1.0
:flags
(surface-flags no-turn-around always-rotate-toward-transv))))
:flags (surface-flags no-turn-around always-rotate-toward-transv))))
(define *no-walk-surface* v1-2)
(set! *no-walk-surface* v1-2)
(set! (-> v1-2 mult-hook) (the-as (function surface surface surface int none) nothing))
@@ -32,10 +32,10 @@
(strip-data-len uint16)
(poly-count uint16)
(base-trans vector :inline)
(vertex-count uint8 :overlay-at (-> base-trans w))
(vertex-data-qwc uint8 :offset 29)
(total-qwc uint8 :offset 30)
(unused uint8 :offset 31)))
(vertex-count uint8 :overlay-at (-> base-trans w))
(vertex-data-qwc uint8 :offset 29)
(total-qwc uint8 :offset 30)
(unused uint8 :offset 31)))
(deftype collide-fragment (drawable)
((mesh collide-frag-mesh :offset 8)))
+7 -6
View File
@@ -192,12 +192,13 @@
;;(raw-ray-sphere-intersect radius)
(pc-port-do-raw-ray-sphere-intersect radius vf1 vf2)))
(defun ray-cylinder-intersect ((ray-origin vector) (ray-dir vector)
(cyl-origin vector)
(cyl-axis vector)
(cyl-rad float)
(cyl-len float)
(pt-out vector))
(defun ray-cylinder-intersect ((ray-origin vector)
(ray-dir vector)
(cyl-origin vector)
(cyl-axis vector)
(cyl-rad float)
(cyl-len float)
(pt-out vector))
"Intersect with a cylinder.
Currently this is untested."
(local-vars (v0-1 float) (v1-0 int) (v1-2 int) (a0-1 int) (a0-2 int) (a0-4 int) (a0-5 int))
@@ -19,9 +19,9 @@
;; The triangle involved in collision
;; Note: this is reused for the background collision system.
(deftype collide-tri-result (structure)
((vertex vector 3 :inline)
(intersect vector :inline)
(normal vector :inline)
((vertex vector 3 :inline)
(intersect vector :inline)
(normal vector :inline)
(pat pat-surface)))
;;;;;;;;;;;;;;;;;;;;
@@ -46,7 +46,7 @@
(num-tris uint32)
(num-verts uint32)
(vertex-data (inline-array vector))
(tris collide-mesh-tri 1 :inline :offset 32))
(tris collide-mesh-tri 1 :inline :offset 32))
(:methods
(debug-draw-tris (_type_ process-drawable int) none)
(overlap-test (_type_ collide-mesh-cache-tri vector) symbol)
@@ -73,7 +73,7 @@
((used-size uint32)
(max-size uint32)
(id uint64)
(data uint8 40960 :offset 32))
(data uint8 40960 :offset 32))
(:methods
(allocate! (_type_ int) int)
(is-id? (_type_ int) symbol)
@@ -102,10 +102,10 @@
;; possibly this is stored in the data of the collide-mesh-cache
(deftype collide-mesh-cache-tri (structure)
((vertex vector 3 :inline)
(normal vector :inline)
((vertex vector 3 :inline)
(normal vector :inline)
(bbox4w bounding-box4w :inline)
(pat pat-surface :overlay-at (-> normal w))))
(pat pat-surface :overlay-at (-> normal w))))
;; only allocate if we don't have an existing one.
(define-perm *collide-mesh-cache* collide-mesh-cache (new 'global 'collide-mesh-cache))
+3 -3
View File
@@ -76,13 +76,13 @@
(none)))
(deftype sopt-work (structure)
((intersect vector :inline)
((intersect vector :inline)
(sphere-bbox4w bounding-box4w :inline)))
(defmethod-mips2c "(method 12 collide-mesh)" 12 collide-mesh)
(deftype spat-work (structure)
((intersect vector :inline)
((intersect vector :inline)
(sphere-bbox4w bounding-box4w :inline)))
(defmethod-mips2c "(method 11 collide-mesh)" 11 collide-mesh)
@@ -268,7 +268,7 @@
(none)))
(deftype oot-work (structure)
((intersect vector :inline)
((intersect vector :inline)
(sphere-bbox4w bounding-box4w :inline)))
(defmethod overlap-test ((this collide-mesh) (arg0 collide-mesh-cache-tri) (arg1 vector))
+36 -38
View File
@@ -59,28 +59,26 @@
(format #t " "))
(none))
(defun-recursive probe-traverse-draw-node
none
((arg0 draw-node) (arg1 int))
"Print out info for a draw node, and recursively its children. They forgot to finish this one."
(indent-to arg1)
(format #t
"[~08x] child-count: ~d, flags: ~d, dist: ~f, child: ~a~%"
arg0
(-> arg0 child-count)
(-> arg0 flags)
(-> arg0 distance)
(-> arg0 child))
(cond
((nonzero? (-> arg0 flags))
(let ((s4-0 (-> arg0 child)))
(dotimes (s3-0 (the-as int (-> arg0 child-count)))
(probe-traverse-draw-node (the-as draw-node (+ (the-as uint s4-0) (* s3-0 32))) (+ arg1 1)))))
(else
;; we hit the leaves.
))
0
(none))
(defun-recursive probe-traverse-draw-node none ((arg0 draw-node) (arg1 int))
"Print out info for a draw node, and recursively its children. They forgot to finish this one."
(indent-to arg1)
(format #t
"[~08x] child-count: ~d, flags: ~d, dist: ~f, child: ~a~%"
arg0
(-> arg0 child-count)
(-> arg0 flags)
(-> arg0 distance)
(-> arg0 child))
(cond
((nonzero? (-> arg0 flags))
(let ((s4-0 (-> arg0 child)))
(dotimes (s3-0 (the-as int (-> arg0 child-count)))
(probe-traverse-draw-node (the-as draw-node (+ (the-as uint s4-0) (* s3-0 32))) (+ arg1 1)))))
(else
;; we hit the leaves.
))
0
(none))
(defun probe-traverse-inline-array-node ((arg0 drawable-inline-array-node) (arg1 int))
"Print out a drawable-inline-array-node, and recursively all children"
@@ -172,22 +170,22 @@
(defun collide-upload-vu0 ()
"Upload the probe program to VU0."
(#unless PC_PORT
(let ((gp-0 *vu0-dma-list*))
;; reset the buffer
(let ((v1-0 gp-0))
(set! (-> v1-0 base) (-> v1-0 data))
(set! (-> v1-0 end) (&-> v1-0 data-buffer (-> v1-0 allocated-length))))
;; upload the function dma
(dma-buffer-add-vu-function gp-0 collide-vu0-block 0)
;; end dma chain
(let* ((v1-1 gp-0)
(a0-5 (the-as object (-> v1-1 base))))
(set! (-> (the-as dma-packet a0-5) dma) (new 'static 'dma-tag :id (dma-tag-id end)))
(set! (-> (the-as (pointer uint64) a0-5) 1) (the-as uint 0))
(set! (-> v1-1 base) (&+ (the-as pointer a0-5) 16)))
;; go!
(.sync.l)
(dma-buffer-send-chain (the-as dma-bank-source #x10008000) gp-0)))
(let ((gp-0 *vu0-dma-list*))
;; reset the buffer
(let ((v1-0 gp-0))
(set! (-> v1-0 base) (-> v1-0 data))
(set! (-> v1-0 end) (&-> v1-0 data-buffer (-> v1-0 allocated-length))))
;; upload the function dma
(dma-buffer-add-vu-function gp-0 collide-vu0-block 0)
;; end dma chain
(let* ((v1-1 gp-0)
(a0-5 (the-as object (-> v1-1 base))))
(set! (-> (the-as dma-packet a0-5) dma) (new 'static 'dma-tag :id (dma-tag-id end)))
(set! (-> (the-as (pointer uint64) a0-5) 1) (the-as uint 0))
(set! (-> v1-1 base) (&+ (the-as pointer a0-5) 16)))
;; go!
(.sync.l)
(dma-buffer-send-chain (the-as dma-bank-source #x10008000) gp-0)))
0
(none))
+33 -38
View File
@@ -143,7 +143,7 @@
;; this computes a "move-vec" and "u". If you move along "move-vec" by "u", you will move out of collsion.
;; It also tells you which primitives are colliding.
(deftype collide-shape-intersect (basic)
((move-vec vector :inline)
((move-vec vector :inline)
(best-u float)
(best-tri collide-tri-result :inline)
(best-from-prim collide-shape-prim)
@@ -307,13 +307,13 @@
;; this is a 32-byte chunk of data that can be pulled out an put in collide caches
;; it stores the transformed world sphere and the collision settings
(deftype collide-prim-core (structure)
((world-sphere vector :inline)
((world-sphere vector :inline)
(collide-as collide-kind)
(action collide-action)
(offense collide-offense)
(prim-type int8)
(extra uint8 2)
(quad uint128 2 :overlay-at (-> world-sphere quad))))
(extra uint8 2)
(quad uint128 2 :overlay-at (-> world-sphere quad))))
(declare-type collide-shape basic)
@@ -329,14 +329,14 @@
(prim-id uint32)
(transform-index int8)
(prim-core collide-prim-core :inline)
(local-sphere vector :inline)
(local-sphere vector :inline)
(collide-with collide-kind)
(world-sphere vector :inline :overlay-at (-> prim-core world-sphere))
(collide-as collide-kind :overlay-at (-> prim-core collide-as))
(action collide-action :overlay-at (-> prim-core action))
(offense collide-offense :overlay-at (-> prim-core offense))
(prim-type int8 :overlay-at (-> prim-core prim-type))
(radius meters :overlay-at (-> local-sphere w)))
(world-sphere vector :inline :overlay-at (-> prim-core world-sphere))
(collide-as collide-kind :overlay-at (-> prim-core collide-as))
(action collide-action :overlay-at (-> prim-core action))
(offense collide-offense :overlay-at (-> prim-core offense))
(prim-type int8 :overlay-at (-> prim-core prim-type))
(radius meters :overlay-at (-> local-sphere w)))
(:methods
(new (symbol type collide-shape uint int) _type_)
(move-by-vector! (_type_ vector) none)
@@ -391,10 +391,10 @@
;; A group of collide-shape-prim's
(deftype collide-shape-prim-group (collide-shape-prim)
((num-prims int32)
(num-prims-u uint32 :overlay-at num-prims)
(num-prims-u uint32 :overlay-at num-prims)
(allocated-prims int32)
(prim collide-shape-prim 1)
(prims collide-shape-prim :dynamic :overlay-at (-> prim 0)))
(prims collide-shape-prim :dynamic :overlay-at (-> prim 0)))
(:methods
(new (symbol type collide-shape uint int) _type_)
(append-prim (_type_ collide-shape-prim) none)
@@ -544,8 +544,8 @@
;; A collide-shape for independently moving objects
(deftype collide-shape-moving (collide-shape)
((rider-time time-frame)
(rider-last-move vector :inline)
(trans-old vector 3 :inline)
(rider-last-move vector :inline)
(trans-old vector 3 :inline)
(poly-pat pat-surface)
(cur-pat pat-surface)
(ground-pat pat-surface)
@@ -555,12 +555,12 @@
(reaction-flag cshape-reaction-flags)
(reaction (function collide-shape-moving collide-shape-intersect vector vector cshape-moving-flags))
(no-reaction (function collide-shape-moving collide-shape-intersect vector vector none))
(local-normal vector :inline)
(surface-normal vector :inline)
(poly-normal vector :inline)
(ground-poly-normal vector :inline)
(ground-touch-point vector :inline)
(shadow-pos vector :inline)
(local-normal vector :inline)
(surface-normal vector :inline)
(poly-normal vector :inline)
(ground-poly-normal vector :inline)
(ground-touch-point vector :inline)
(shadow-pos vector :inline)
(ground-impact-vel meters)
(surface-angle float)
(poly-angle float)
@@ -616,11 +616,12 @@
(defmethod new collide-shape-prim-group ((allocation symbol) (type-to-make type) (cshape collide-shape) (elt-count uint) (prim-id int))
"Allocate a group of primitives."
(let ((this (the collide-shape-prim-group
((method-of-type collide-shape-prim new) allocation
type-to-make
cshape
(the uint prim-id)
(the int (+ (-> type-to-make size) (* (+ elt-count -1) 4)))))))
((method-of-type collide-shape-prim new)
allocation
type-to-make
cshape
(the uint prim-id)
(the int (+ (-> type-to-make size) (* (+ elt-count -1) 4)))))))
(set! (-> this allocated-prims) (the int elt-count))
(set! (-> this num-prims) 0)
(set! (-> this prim-core prim-type) 0)
@@ -688,12 +689,9 @@
'collide-prim-core
:world-sphere
(new 'static 'vector :w 204800000.0)
:collide-as
(collide-kind background)
:action
(collide-action solid)
:offense
(collide-offense indestructible)
:collide-as (collide-kind background)
:action (collide-action solid)
:offense (collide-offense indestructible)
:prim-type 2)
:local-sphere
(new 'static 'vector :w 204800000.0)
@@ -708,12 +706,9 @@
'collide-prim-core
:world-sphere
(new 'static 'vector :w 204800000.0)
:collide-as
(collide-kind water)
:action
(collide-action solid)
:offense
(collide-offense indestructible)
:collide-as (collide-kind water)
:action (collide-action solid)
:offense (collide-offense indestructible)
:prim-type 2)
:local-sphere
(new 'static 'vector :w 204800000.0)
@@ -646,9 +646,10 @@
(send-event arg0
arg1
#f
(static-attack-info ((mode arg2) (vector s2-1)
(shove-up (+ (lerp-scale (meters 1) (meters 4) f30-1 (meters 1) (meters 10)) (fmax 0.0 (- (-> s4-0 y) (-> arg0 control trans y)))))
(angle 'up)))))
(static-attack-info ((mode arg2)
(vector s2-1)
(shove-up (+ (lerp-scale (meters 1) (meters 4) f30-1 (meters 1) (meters 10)) (fmax 0.0 (- (-> s4-0 y) (-> arg0 control trans y)))))
(angle 'up)))))
(else
;; the last safest place we jumped is too high. just launch jak in the air and hope for the best.
;; fire canyon skip jumps
+163 -163
View File
@@ -12,12 +12,12 @@
;; We believe that target's control-info may contain an array of these.
;; Each collide-history is a record of a single collision event.
(deftype collide-history (structure)
((intersect vector :inline)
(trans vector :inline)
(transv vector :inline)
(transv-out vector :inline)
(local-normal vector :inline)
(surface-normal vector :inline)
((intersect vector :inline)
(trans vector :inline)
(transv vector :inline)
(transv-out vector :inline)
(local-normal vector :inline)
(surface-normal vector :inline)
(time time-frame)
(status cshape-moving-flags)
(pat pat-surface)
@@ -28,166 +28,166 @@
;; This is the collide shape for target (Jak).
;; It is complicated.
(deftype control-info (collide-shape-moving)
((unknown-vector00 vector :inline :offset 448)
(unknown-vector01 vector :inline :offset 464)
(unknown-vector02 vector :inline :offset 480)
(unknown-quaternion00 quaternion :inline :offset 496)
(unknown-quaternion01 quaternion :inline :offset 512)
(unknown-float00 float :offset 528)
(unknown-float01 float :offset 532)
(unknown-float02 float :offset 536)
(unknown-vector10 vector :inline :offset 544)
(unknown-vector11 vector :inline :offset 560)
(unknown-vector12 vector :inline :offset 576)
(unknown-vector13 vector :inline :offset 592)
(unknown-vector14 vector :inline :offset 608)
(unknown-vector15 vector :inline :offset 624)
(unknown-vector16 vector :inline :offset 640)
(unknown-dynamics00 dynamics :offset 656)
(unknown-surface00 surface :offset 660)
(unknown-surface01 surface :offset 664)
(unknown-cpad-info00 cpad-info :offset 668)
(unknown-float10 float :offset 672)
(unknown-float11 float :offset 676)
(unknown-float12 float :offset 680)
(unknown-float13 float :offset 684)
(unknown-vector20 vector :inline :offset 688)
(unknown-vector21 vector :inline :offset 704)
(unknown-vector22 vector :inline :offset 720)
(unknown-vector23 vector :inline :offset 736)
(unknown-vector-array00 vector 7 :inline :offset 752)
(unknown-vector30 vector :inline :offset 880)
(unknown-vector31 vector :inline :offset 896)
(unknown-float20 float :offset 912)
(unknown-float21 float :offset 916)
(unknown-dword00 uint64 :offset 920)
(unknown-matrix00 matrix :inline :offset 928)
(unknown-matrix01 matrix :inline :offset 992)
(unknown-matrix02 matrix :inline :offset 1056)
(unknown-qword00 uint128 :offset 1136)
(unknown-float30 float :offset 1140)
(unknown-vector40 vector :inline :offset 1152)
(unknown-float40 float :offset 1172)
(unknown-float41 float :offset 1176)
(unknown-int00 int32 :offset 1180)
(unknown-float50 float :offset 1168)
(unknown-vector50 vector :inline :offset 1184)
(unknown-vector51 vector :inline :offset 1200)
(unknown-vector52 vector :inline :offset 1216)
(unknown-vector53 vector :inline :offset 1232)
(last-known-safe-ground vector :inline :offset 1248)
(unknown-vector55 vector :inline :offset 1264)
(unknown-dword10 time-frame :offset 1280)
(unknown-dword11 time-frame :offset 1288)
(unknown-float60 float :offset 1300)
(unknown-float61 float :offset 1304)
(unknown-float62 float :offset 1308)
(unknown-float63 float :offset 1312)
(unknown-float64 float :offset 1316)
(unknown-dword20 time-frame :offset 1320)
(unknown-dword21 time-frame :offset 1328)
(unknown-dword-coverage int64 :offset 1336)
(unknown-float-coverage-0 float :offset 1344)
(unknown-float-coverage-1 float :offset 1348)
(unknown-float-coverage-2 float :offset 1352)
(unknown-u32-coverage-0 uint32 :offset 1356)
(unknown-vector-coverage-0 vector :inline :offset 1376)
(unknown-vector-coverage-1 vector :inline :offset 1392)
(unknown-vector-coverage-2 vector :inline :offset 1440)
(unknown-vector-coverage-3 vector :inline :offset 1472)
(unknown-vector60 vector :inline :offset 1456)
(unknown-vector61 vector :inline :offset 1504)
(unknown-float70 float :offset 1520)
(unknown-float71 float :offset 1524)
(unknown-vector70 vector :inline :offset 1536)
(unknown-vector71 vector :inline :offset 1552)
(unknown-vector72 vector :inline :offset 1568)
(unknown-vector73 vector :inline :offset 1584)
(unknown-handle00 handle :offset 1600)
(unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608)
((unknown-vector00 vector :inline :offset 448)
(unknown-vector01 vector :inline :offset 464)
(unknown-vector02 vector :inline :offset 480)
(unknown-quaternion00 quaternion :inline :offset 496)
(unknown-quaternion01 quaternion :inline :offset 512)
(unknown-float00 float :offset 528)
(unknown-float01 float :offset 532)
(unknown-float02 float :offset 536)
(unknown-vector10 vector :inline :offset 544)
(unknown-vector11 vector :inline :offset 560)
(unknown-vector12 vector :inline :offset 576)
(unknown-vector13 vector :inline :offset 592)
(unknown-vector14 vector :inline :offset 608)
(unknown-vector15 vector :inline :offset 624)
(unknown-vector16 vector :inline :offset 640)
(unknown-dynamics00 dynamics :offset 656)
(unknown-surface00 surface :offset 660)
(unknown-surface01 surface :offset 664)
(unknown-cpad-info00 cpad-info :offset 668)
(unknown-float10 float :offset 672)
(unknown-float11 float :offset 676)
(unknown-float12 float :offset 680)
(unknown-float13 float :offset 684)
(unknown-vector20 vector :inline :offset 688)
(unknown-vector21 vector :inline :offset 704)
(unknown-vector22 vector :inline :offset 720)
(unknown-vector23 vector :inline :offset 736)
(unknown-vector-array00 vector 7 :inline :offset 752)
(unknown-vector30 vector :inline :offset 880)
(unknown-vector31 vector :inline :offset 896)
(unknown-float20 float :offset 912)
(unknown-float21 float :offset 916)
(unknown-dword00 uint64 :offset 920)
(unknown-matrix00 matrix :inline :offset 928)
(unknown-matrix01 matrix :inline :offset 992)
(unknown-matrix02 matrix :inline :offset 1056)
(unknown-qword00 uint128 :offset 1136)
(unknown-float30 float :offset 1140)
(unknown-vector40 vector :inline :offset 1152)
(unknown-float40 float :offset 1172)
(unknown-float41 float :offset 1176)
(unknown-int00 int32 :offset 1180)
(unknown-float50 float :offset 1168)
(unknown-vector50 vector :inline :offset 1184)
(unknown-vector51 vector :inline :offset 1200)
(unknown-vector52 vector :inline :offset 1216)
(unknown-vector53 vector :inline :offset 1232)
(last-known-safe-ground vector :inline :offset 1248)
(unknown-vector55 vector :inline :offset 1264)
(unknown-dword10 time-frame :offset 1280)
(unknown-dword11 time-frame :offset 1288)
(unknown-float60 float :offset 1300)
(unknown-float61 float :offset 1304)
(unknown-float62 float :offset 1308)
(unknown-float63 float :offset 1312)
(unknown-float64 float :offset 1316)
(unknown-dword20 time-frame :offset 1320)
(unknown-dword21 time-frame :offset 1328)
(unknown-dword-coverage int64 :offset 1336)
(unknown-float-coverage-0 float :offset 1344)
(unknown-float-coverage-1 float :offset 1348)
(unknown-float-coverage-2 float :offset 1352)
(unknown-u32-coverage-0 uint32 :offset 1356)
(unknown-vector-coverage-0 vector :inline :offset 1376)
(unknown-vector-coverage-1 vector :inline :offset 1392)
(unknown-vector-coverage-2 vector :inline :offset 1440)
(unknown-vector-coverage-3 vector :inline :offset 1472)
(unknown-vector60 vector :inline :offset 1456)
(unknown-vector61 vector :inline :offset 1504)
(unknown-float70 float :offset 1520)
(unknown-float71 float :offset 1524)
(unknown-vector70 vector :inline :offset 1536)
(unknown-vector71 vector :inline :offset 1552)
(unknown-vector72 vector :inline :offset 1568)
(unknown-vector73 vector :inline :offset 1584)
(unknown-handle00 handle :offset 1600)
(unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608)
(unknown-sphere00 collide-shape-prim-sphere :offset 1632)
(unknown-sphere01 collide-shape-prim-sphere :offset 1636)
(unknown-sphere02 collide-shape-prim-sphere :offset 1640)
(unknown-int50 int32 :offset 1656)
(unknown-dword30 time-frame :offset 1664)
(unknown-dword31 time-frame :offset 1672)
(unknown-dword32 time-frame :offset 1680)
(unknown-dword33 time-frame :offset 1688)
(unknown-dword34 time-frame :offset 1696)
(unknown-dword35 time-frame :offset 1704)
(unknown-dword36 time-frame :offset 1712)
(unknown-float80 float :offset 1724)
(unknown-float81 float :offset 1728)
(unknown-float82 float :offset 1732)
(unknown-vector80 vector :inline :offset 1744)
(unknown-cspace00 cspace :inline :offset 1760)
(unknown-vector90 vector :inline :offset 1776)
(unknown-vector91 vector :inline :offset 1792)
(unknown-vector92 vector :inline :offset 1824)
(unknown-cspace10 cspace :inline :offset 1808)
(unknown-symbol00 symbol :offset 1840)
(unknown-float90 float :offset 1844)
(unknown-float91 float :offset 1848)
(unknown-vector-array10 vector 16 :inline :offset 1856)
(unknown-float100 float :offset 2112)
(unknown-int10 int32 :offset 2116)
(unknown-float110 float :offset 2120)
(unknown-vector100 vector :inline :offset 2128)
(unknown-vector101 vector :inline :offset 2144)
(unknown-dword40 time-frame :offset 2160)
(unknown-dword41 time-frame :offset 2168)
(unknown-handle10 handle :offset 2176)
(unknown-uint20 uint32 :offset 2184)
(unknown-spoolanim00 spool-anim :overlay-at unknown-uint20)
(unknown-int20 int32 :overlay-at unknown-spoolanim00)
(unknown-symbol20 symbol :overlay-at unknown-int20)
(unknown-float120 float :overlay-at unknown-symbol20)
(unknown-int21 int32 :offset 2188)
(unknown-uint30 uint32 :overlay-at unknown-int21)
(unknown-float121 float :overlay-at unknown-uint30)
(unknown-uint31 uint32 :offset 2192)
(unknown-int37 int32 :overlay-at unknown-uint31)
(unknown-float122 float :offset 2196)
(unknown-float123 float :offset 2200)
(unknown-float124 float :offset 2204)
(unknown-vector102 vector :inline :offset 2224)
(unknown-vector103 vector :inline :offset 2240)
(unknown-quaternion02 quaternion :inline :offset 2256)
(unknown-quaternion03 quaternion :inline :offset 2272)
(unknown-smush00 smush-control :inline :offset 2288)
(unknown-vector110 vector :inline :offset 2320)
(unknown-vector111 vector :inline :offset 2336)
(unknown-symbol30 symbol :offset 2384)
(unknown-int31 uint32 :overlay-at unknown-symbol30)
(unknown-dword50 int64 :offset 2392)
(unknown-dword51 int64 :offset 2400)
(unknown-pointer00 pointer :offset 2416)
(unknown-symbol40 symbol :offset 2428)
(unknown-dword60 int64 :offset 2432)
(unknown-dword61 int64 :offset 2440)
(unknown-dword62 int64 :offset 2448)
(unknown-dword63 int64 :offset 2456)
(unknown-halfword00 int16 :offset 2488)
(history-length int16 :offset 2490)
(history-data collide-history 128 :inline)
(unknown-float140 float :offset 18944)
(unknown-dword70 time-frame :offset 18952)
(unknown-int40 int32 :offset 18880)
(unknown-dword80 time-frame :offset 18888)
(unknown-dword81 time-frame :offset 18896)
(unknown-float130 float :offset 18904)
(unknown-float131 float :offset 18908)
(unknown-dword82 time-frame :offset 18912)
(unknown-vector120 vector :inline :offset 18928)
(unknown-float150 float :overlay-at unknown-float140)
(unknown-vector121 vector :inline :offset 18960)
(wall-pat pat-surface :offset 18976)
(unknown-soundid00 sound-id :offset 18980)
(unknown-float141 float :offset 18984)
(unknown-soundid01 sound-id :offset 18988)
(unknown-int34 int32 :offset 18992)
(unknown-int35 int32 :offset 18996)
(unknown-int36 int32 :offset 19000)))
(unknown-int50 int32 :offset 1656)
(unknown-dword30 time-frame :offset 1664)
(unknown-dword31 time-frame :offset 1672)
(unknown-dword32 time-frame :offset 1680)
(unknown-dword33 time-frame :offset 1688)
(unknown-dword34 time-frame :offset 1696)
(unknown-dword35 time-frame :offset 1704)
(unknown-dword36 time-frame :offset 1712)
(unknown-float80 float :offset 1724)
(unknown-float81 float :offset 1728)
(unknown-float82 float :offset 1732)
(unknown-vector80 vector :inline :offset 1744)
(unknown-cspace00 cspace :inline :offset 1760)
(unknown-vector90 vector :inline :offset 1776)
(unknown-vector91 vector :inline :offset 1792)
(unknown-vector92 vector :inline :offset 1824)
(unknown-cspace10 cspace :inline :offset 1808)
(unknown-symbol00 symbol :offset 1840)
(unknown-float90 float :offset 1844)
(unknown-float91 float :offset 1848)
(unknown-vector-array10 vector 16 :inline :offset 1856)
(unknown-float100 float :offset 2112)
(unknown-int10 int32 :offset 2116)
(unknown-float110 float :offset 2120)
(unknown-vector100 vector :inline :offset 2128)
(unknown-vector101 vector :inline :offset 2144)
(unknown-dword40 time-frame :offset 2160)
(unknown-dword41 time-frame :offset 2168)
(unknown-handle10 handle :offset 2176)
(unknown-uint20 uint32 :offset 2184)
(unknown-spoolanim00 spool-anim :overlay-at unknown-uint20)
(unknown-int20 int32 :overlay-at unknown-spoolanim00)
(unknown-symbol20 symbol :overlay-at unknown-int20)
(unknown-float120 float :overlay-at unknown-symbol20)
(unknown-int21 int32 :offset 2188)
(unknown-uint30 uint32 :overlay-at unknown-int21)
(unknown-float121 float :overlay-at unknown-uint30)
(unknown-uint31 uint32 :offset 2192)
(unknown-int37 int32 :overlay-at unknown-uint31)
(unknown-float122 float :offset 2196)
(unknown-float123 float :offset 2200)
(unknown-float124 float :offset 2204)
(unknown-vector102 vector :inline :offset 2224)
(unknown-vector103 vector :inline :offset 2240)
(unknown-quaternion02 quaternion :inline :offset 2256)
(unknown-quaternion03 quaternion :inline :offset 2272)
(unknown-smush00 smush-control :inline :offset 2288)
(unknown-vector110 vector :inline :offset 2320)
(unknown-vector111 vector :inline :offset 2336)
(unknown-symbol30 symbol :offset 2384)
(unknown-int31 uint32 :overlay-at unknown-symbol30)
(unknown-dword50 int64 :offset 2392)
(unknown-dword51 int64 :offset 2400)
(unknown-pointer00 pointer :offset 2416)
(unknown-symbol40 symbol :offset 2428)
(unknown-dword60 int64 :offset 2432)
(unknown-dword61 int64 :offset 2440)
(unknown-dword62 int64 :offset 2448)
(unknown-dword63 int64 :offset 2456)
(unknown-halfword00 int16 :offset 2488)
(history-length int16 :offset 2490)
(history-data collide-history 128 :inline)
(unknown-float140 float :offset 18944)
(unknown-dword70 time-frame :offset 18952)
(unknown-int40 int32 :offset 18880)
(unknown-dword80 time-frame :offset 18888)
(unknown-dword81 time-frame :offset 18896)
(unknown-float130 float :offset 18904)
(unknown-float131 float :offset 18908)
(unknown-dword82 time-frame :offset 18912)
(unknown-vector120 vector :inline :offset 18928)
(unknown-float150 float :overlay-at unknown-float140)
(unknown-vector121 vector :inline :offset 18960)
(wall-pat pat-surface :offset 18976)
(unknown-soundid00 sound-id :offset 18980)
(unknown-float141 float :offset 18984)
(unknown-soundid01 sound-id :offset 18988)
(unknown-int34 int32 :offset 18992)
(unknown-int35 int32 :offset 18996)
(unknown-int36 int32 :offset 19000)))
(defmethod update! ((this collide-history) (cshape collide-shape-moving) (xs vector) (transv vector) (transv-out vector))
"Update the collide-history element."
+12 -10
View File
@@ -31,8 +31,8 @@
(prev touching-prims-entry)
(allocated? symbol)
(u float)
(prim1 touching-prim :inline)
(prim2 touching-prim :inline))
(prim1 touching-prim :inline)
(prim2 touching-prim :inline))
(:methods
(get-touched-prim (_type_ trsqv touching-shapes-entry) collide-shape-prim)
(touching-prims-entry-method-10 () none)
@@ -72,10 +72,11 @@
;; however, the new method of structure doesn't have this argument.
;; it uses the same value for the size so it doesn't really matter.
(let ((this (the touching-prims-entry-pool
((method-of-type structure new) allocation
type-to-make
;; (-> type-to-make size) see note
))))
((method-of-type structure new)
allocation
type-to-make
;; (-> type-to-make size) see note
))))
(init-list! this)
this))
@@ -116,10 +117,11 @@
"See note in touching-prims-entry-pool"
;; og:preserve-this
(let ((this (the touching-list
((method-of-type structure new) allocation
type-to-make
;; (-> type-to-make size) see note
))))
((method-of-type structure new)
allocation
type-to-make
;; (-> type-to-make size) see note
))))
(set! (-> this num-touching-shapes) 0)
(set! (-> this resolve-u) 0)
this))
+9 -9
View File
@@ -55,16 +55,16 @@
;; It packs all data into a 32-bit pat-surface type.
(deftype pat-surface (uint32)
((skip uint8 :offset 0 :size 3)
(mode pat-mode :offset 3 :size 3)
((skip uint8 :offset 0 :size 3)
(mode pat-mode :offset 3 :size 3)
(material pat-material :offset 6 :size 6)
(camera uint8 :offset 12 :size 2)
(event pat-event :offset 14 :size 6)
(noentity uint8 :offset 0 :size 1)
(nocamera uint8 :offset 1 :size 1)
(noedge uint8 :offset 2 :size 1)
(nolineofsight uint8 :offset 12 :size 1)
(unknown-bit uint8 :offset 15 :size 1)))
(camera uint8 :offset 12 :size 2)
(event pat-event :offset 14 :size 6)
(noentity uint8 :offset 0 :size 1)
(nocamera uint8 :offset 1 :size 1)
(noedge uint8 :offset 2 :size 1)
(nolineofsight uint8 :offset 12 :size 1)
(unknown-bit uint8 :offset 15 :size 1)))
(defun-debug pat-material->string ((pat pat-surface))
(enum->string pat-material (-> pat material)))
+28 -52
View File
@@ -73,15 +73,15 @@
(alignv float)
(slope-up-traction float)
(align-speed float)
(active-hook (function none) :offset 128)
(active-hook (function none) :offset 128)
(touch-hook (function none))
(impact-hook function)
(mult-hook (function surface surface surface int none))
(mode symbol)
(flags surface-flags)
(data float 30 :overlay-at turnv)
(hook function 4 :overlay-at active-hook)
(dataw uint32 2 :overlay-at mode)))
(data float 30 :overlay-at turnv)
(hook function 4 :overlay-at active-hook)
(dataw uint32 2 :overlay-at mode)))
;; these calc-terminal functions are unused.
(defun calc-terminal-vel ((arg0 float) (arg1 float) (arg2 float))
@@ -177,8 +177,7 @@
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:flags
(surface-flags allow-look-around)))
:flags (surface-flags allow-look-around)))
(define *walk-no-turn-mods*
(new 'static
@@ -252,8 +251,7 @@
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:flags
(surface-flags ducking))))
:flags (surface-flags ducking))))
(set! (-> a0-3 mult-hook) surface-clamp-speed)
;; og:preserve-this
(define *duck-mods* a0-3))
@@ -283,8 +281,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'attack
:flags
(surface-flags attacking ducking)))
:flags (surface-flags attacking ducking)))
(define *jump-mods*
(new 'static
@@ -313,8 +310,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *double-jump-mods*
(new 'static
@@ -343,8 +339,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *smack-jump-mods*
(new 'static
@@ -373,8 +368,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *high-jump-mods*
(new 'static
@@ -403,8 +397,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *launch-jump-mods*
(new 'static
@@ -433,8 +426,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags prevent-attacks-during-launch-jump allow-edge-grab jump)))
:flags (surface-flags prevent-attacks-during-launch-jump allow-edge-grab jump)))
(define *forward-high-jump-mods*
(new 'static
@@ -463,8 +455,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *flip-jump-mods*
(new 'static
@@ -493,8 +484,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *forward-jump-mods*
(new 'static
@@ -523,8 +513,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *forward-pole-jump-mods*
(new 'static
@@ -553,8 +542,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump)))
:flags (surface-flags allow-edge-grab jump)))
(define *attack-mods*
(new 'static
@@ -581,8 +569,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'attack
:flags
(surface-flags attacking)))
:flags (surface-flags attacking)))
(define *jump-attack-mods*
(new 'static
@@ -610,8 +597,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump attacking)))
:flags (surface-flags allow-edge-grab jump attacking)))
(let ((a0-4 (new 'static
'surface
@@ -638,8 +624,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags allow-edge-grab jump attacking))))
:flags (surface-flags allow-edge-grab jump attacking))))
(set! (-> a0-4 mult-hook) surface-clamp-speed)
;; og:preserve-this
(define *uppercut-jump-mods* a0-4))
@@ -668,8 +653,7 @@
:mode 'attack
;; no-rotate-toward-transv prevents jak from spinning around
;; if you punch over bumpy terrain
:flags
(surface-flags no-turn-around no-rotate-toward-transv attacking)))
:flags (surface-flags no-turn-around no-rotate-toward-transv attacking)))
(define *wheel-mods*
(new 'static
@@ -696,8 +680,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'attack
:flags
(surface-flags attacking)))
:flags (surface-flags attacking)))
(define *wheel-flip-mods*
(new 'static
@@ -721,8 +704,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'attack
:flags
(surface-flags allow-edge-grab jump attacking)))
:flags (surface-flags allow-edge-grab jump attacking)))
(define *flop-mods*
(new 'static
@@ -747,8 +729,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'attack
:flags
(surface-flags jump attacking)))
:flags (surface-flags jump attacking)))
(let ((a0-5 (new 'static
'surface
@@ -776,8 +757,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'air
:flags
(surface-flags jump))))
:flags (surface-flags jump))))
(set! (-> a0-5 mult-hook) surface-clamp-speed)
;; og:preserve-this
(define *flop-land-mods* a0-5))
@@ -809,8 +789,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'wade
:flags
(surface-flags allow-look-around)))
:flags (surface-flags allow-look-around)))
(define *swim-mods*
(new 'static
@@ -861,8 +840,7 @@
:alignv 1.0
:align-speed 1.0
:mode 'dive
:flags
(surface-flags dive)))
:flags (surface-flags dive)))
(define *dive-bottom-mods*
(new 'static
@@ -891,8 +869,7 @@
:slope-up-traction 1.0
:align-speed 1.0
:mode 'dive
:flags
(surface-flags dive)))
:flags (surface-flags dive)))
(let ((a0-7 (copy *walk-mods* 'global)))
(set! (-> a0-7 name) 'pole)
@@ -1153,8 +1130,7 @@
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:flags
(surface-flags no-turn-around no-rotate-toward-transv))))
:flags (surface-flags no-turn-around no-rotate-toward-transv))))
;; og:preserve-this
(define *ice-surface* v1-48)
(set! (-> v1-48 mult-hook) (the-as (function surface surface surface int none) nothing))
+8 -11
View File
@@ -14,15 +14,13 @@
babak-run-to-cannon))
(defskelgroup *babak-sg*
babak
babak-lod0-jg
-1
((babak-lod0-mg (meters 20)) (babak-lod1-mg (meters 40)) (babak-lod2-mg (meters 999999)))
:bounds
(static-spherem 0 2 0 3)
:longest-edge (meters 1)
:shadow
babak-shadow-mg)
babak
babak-lod0-jg
-1
((babak-lod0-mg (meters 20)) (babak-lod1-mg (meters 40)) (babak-lod2-mg (meters 999999)))
:bounds (static-spherem 0 2 0 3)
:longest-edge (meters 1)
:shadow babak-shadow-mg)
(defstate nav-enemy-patrol (babak)
:virtual #t
@@ -190,8 +188,7 @@
:use-proximity-notice #t
:use-jump-blocked #t
:use-jump-patrol #f
:gnd-collide-with
(collide-kind background)
:gnd-collide-with (collide-kind background)
:debug-draw-neck #f
:debug-draw-jump #f))
@@ -26,8 +26,8 @@
(event-going-up symbol)
(event-up symbol)
(anim-speed float)
(move-to-pos vector :inline)
(move-to-quat quaternion :inline))
(move-to-pos vector :inline)
(move-to-quat quaternion :inline))
(:state-methods
basebutton-down-idle
basebutton-going-down
@@ -48,8 +48,7 @@
generic-button-lod0-jg
generic-button-idle-ja
((generic-button-lod0-mg (meters 999999)))
:bounds
(static-spherem 0 0 0 3))
:bounds (static-spherem 0 0 0 3))
(defmethod move-to-vec-or-quat! ((this basebutton) (arg0 vector) (arg1 quaternion))
(set! (-> this move-to?) #t)
+4 -4
View File
@@ -48,8 +48,8 @@
(deftype baseplat (process-drawable)
((root collide-shape-moving :override)
(smush smush-control :inline)
(basetrans vector :inline)
(smush smush-control :inline)
(basetrans vector :inline)
(bouncing symbol))
(:methods
(baseplat-method-20 (_type_) none)
@@ -117,11 +117,11 @@
(('bonk) (baseplat-method-22 self))))
(deftype eco-door (process-drawable)
((root collide-shape :override)
((root collide-shape :override)
(speed float)
(open-distance float)
(close-distance float)
(out-dir vector :inline)
(out-dir vector :inline)
(open-sound sound-name)
(close-sound sound-name)
(state-actor entity-actor)
File diff suppressed because it is too large Load Diff
+74 -72
View File
@@ -36,10 +36,10 @@
(pickup-type pickup-type)
(pickup-amount float)
(notify-parent basic)
(old-base vector :inline)
(base vector :inline)
(extra-trans vector :inline)
(jump-pos vector :inline)
(old-base vector :inline)
(base vector :inline)
(extra-trans vector :inline)
(jump-pos vector :inline)
(flags collectable-flags)
(birth-time time-frame)
(collect-timeout time-frame)
@@ -695,7 +695,8 @@
(update-transforms! (-> self root))))
(ja-post)
;; og:preserve-this added particle!
(with-pc (if (-> *pc-settings* money-starburst?) (spawn (-> self part) (-> self root root-prim world-sphere))))
(with-pc
(if (-> *pc-settings* money-starburst?) (spawn (-> self part) (-> self root root-prim world-sphere))))
(suspend))))
(defstate notice-blue (money)
@@ -713,7 +714,8 @@
(* f30-0 (sin (* 109.22667 (the float (mod (+ (- (current-time) (-> self birth-time)) (-> self bob-offset)) 600)))))))))
(transform-post)
;; og:preserve-this added particle!
(with-pc (if (-> *pc-settings* money-starburst?) (spawn (-> self part) (-> self root root-prim world-sphere))))
(with-pc
(if (-> *pc-settings* money-starburst?) (spawn (-> self part) (-> self root root-prim world-sphere))))
(suspend))))
(defstate pickup (money)
@@ -1013,69 +1015,69 @@
(suspend)
(suspend)
(process-spawn-function process
(lambda :behavior collectable ((arg0 game-task))
(while (or (-> *setting-control* current ambient)
(-> *setting-control* current movie)
(-> *setting-control* current hint)
(str-is-playing?))
(suspend))
(cond
((= arg0 (game-task training-buzzer))
(level-hint-spawn (text-id training-buzzer-resolution) "asstvb45" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task training-door))
(level-hint-spawn (text-id training-eco-opened-door) "sagevb25" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task beach-ecorocks))
(level-hint-spawn (text-id beach-ecorocks-resolution) "sagevb01" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task misty-cannon))
(level-hint-spawn (text-id misty-cannon-resolution) "sagevb02" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task misty-bike))
(level-hint-spawn (text-id misty-bike-resolution) "asstvb03" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task firecanyon-end))
(level-hint-spawn (text-id firecanyon-end-resolution) "sksp0095" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task rolling-robbers))
(level-hint-spawn (text-id rolling-robbers-resolution) "asstvb20" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task rolling-plants))
(level-hint-spawn (text-id rolling-plants-resolution) "sagevb03" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task swamp-flutflut))
(level-hint-spawn (text-id swamp-flutflut-resolution) "asstvb21" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task ogre-boss))
(level-hint-spawn (text-id ogre-boss-resolution) "asstvb23" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task ogre-end))
(level-hint-spawn (text-id ogre-race-resolution) "asstvb25" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task beach-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task jungle-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task misty-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task firecanyon-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task rolling-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task sunken-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task swamp-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task ogre-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task cave-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task snow-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task lavatube-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task citadel-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task village1-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task village2-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task village3-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none))))
(none))
(the int (-> self fact pickup-amount))
:to
self)
(lambda :behavior collectable ((arg0 game-task))
(while (or (-> *setting-control* current ambient)
(-> *setting-control* current movie)
(-> *setting-control* current hint)
(str-is-playing?))
(suspend))
(cond
((= arg0 (game-task training-buzzer))
(level-hint-spawn (text-id training-buzzer-resolution) "asstvb45" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task training-door))
(level-hint-spawn (text-id training-eco-opened-door) "sagevb25" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task beach-ecorocks))
(level-hint-spawn (text-id beach-ecorocks-resolution) "sagevb01" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task misty-cannon))
(level-hint-spawn (text-id misty-cannon-resolution) "sagevb02" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task misty-bike))
(level-hint-spawn (text-id misty-bike-resolution) "asstvb03" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task firecanyon-end))
(level-hint-spawn (text-id firecanyon-end-resolution) "sksp0095" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task rolling-robbers))
(level-hint-spawn (text-id rolling-robbers-resolution) "asstvb20" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task rolling-plants))
(level-hint-spawn (text-id rolling-plants-resolution) "sagevb03" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task swamp-flutflut))
(level-hint-spawn (text-id swamp-flutflut-resolution) "asstvb21" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task ogre-boss))
(level-hint-spawn (text-id ogre-boss-resolution) "asstvb23" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task ogre-end))
(level-hint-spawn (text-id ogre-race-resolution) "asstvb25" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task beach-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task jungle-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task misty-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task firecanyon-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task rolling-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task sunken-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task swamp-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task ogre-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task cave-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task snow-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task lavatube-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task citadel-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task village1-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task village2-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none)))
((= arg0 (game-task village3-buzzer))
(level-hint-spawn (text-id sidekick-buzzer-resolution) "sksp009k" (the-as entity #f) *entity-pool* (game-task none))))
(none))
(the int (-> self fact pickup-amount))
:to
self)
(case (the int (-> self fact pickup-amount))
(((game-task citadel-sage-blue)) (send-event (process-by-name "blue-sagecage-1" *active-pool*) 'play-anim))
(((game-task citadel-sage-red)) (send-event (process-by-name "red-sagecage-1" *active-pool*) 'play-anim))
@@ -1555,9 +1557,9 @@
(birth-pickup-at-point s2-1 (the-as pickup-type s3-0) f30-0 arg0 arg1 this))))
(deftype ecovalve (process-drawable)
((root collide-shape-moving :override)
(offset vector :inline)
(offset-target vector :inline)
((root collide-shape-moving :override)
(offset vector :inline)
(offset-target vector :inline)
(block-func (function vent symbol)))
(:states
ecovalve-idle))
+311 -294
View File
@@ -71,8 +71,8 @@
(deftype crate (process-drawable)
((root collide-shape-moving :override)
(smush smush-control :inline)
(base vector :inline)
(smush smush-control :inline)
(base vector :inline)
(look symbol)
(defense symbol)
(incomming-attack-id uint64)
@@ -101,121 +101,126 @@
(defpart 281
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 16.0)
(:y (meters 0.5) (meters 1))
(:scale-x (meters 1.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 32.0)
(:g 128.0 32.0)
(:b 128.0 32.0)
(:a 32.0 16.0)
(:vel-y (meters 0.016666668) (meters 0.033333335))
(:rotvel-z (degrees -1.2) (degrees 1.2))
(:accel-y (meters 0.00066666666))
(:timer (seconds 0.4))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.1) (seconds 0.197))
(:next-launcher 282)
(:conerot-x (degrees 70) (degrees 20))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 16.0)
(:y (meters 0.5) (meters 1))
(:scale-x (meters 1.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 32.0)
(:g 128.0 32.0)
(:b 128.0 32.0)
(:a 32.0 16.0)
(:vel-y (meters 0.016666668) (meters 0.033333335))
(:rotvel-z (degrees -1.2) (degrees 1.2))
(:accel-y (meters 0.00066666666))
(:timer (seconds 0.4))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.1) (seconds 0.197))
(:next-launcher 282)
(:conerot-x (degrees 70) (degrees 20))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 282
:init-specs ((:fade-a -1.0666667)))
(defpart 283
:init-specs
((:texture (new 'static 'texture-id :index #x2 :page #x2)) (:num 4.0)
(:y (meters 0.75))
(:scale-x (meters 6))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3) (meters 1))
(:r 192.0)
(:g 192.0)
(:b 64.0 128.0)
(:a 0.0)
(:scalevel-x (meters 0.009765625))
(:rotvel-z (degrees -0.15) (degrees 0.3))
(:scalevel-y (meters 0.009765625))
(:fade-a 2.1333334)
(:timer (seconds 0.1))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 284)
(:rotate-y (degrees 0))))
((:texture (new 'static 'texture-id :index #x2 :page #x2))
(:num 4.0)
(:y (meters 0.75))
(:scale-x (meters 6))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3) (meters 1))
(:r 192.0)
(:g 192.0)
(:b 64.0 128.0)
(:a 0.0)
(:scalevel-x (meters 0.009765625))
(:rotvel-z (degrees -0.15) (degrees 0.3))
(:scalevel-y (meters 0.009765625))
(:fade-a 2.1333334)
(:timer (seconds 0.1))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 284)
(:rotate-y (degrees 0))))
(defpart 284
:init-specs ((:fade-a -2.1333334)))
(defpart 285
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:y (meters 1))
(:scale-x (meters 8))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0)
(:g 196.0)
(:b 196.0)
(:a 28.0)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:y (meters 1))
(:scale-x (meters 8))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 196.0)
(:g 196.0)
(:b 196.0)
(:a 28.0)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))))
(defpart 286
:init-specs
((:texture (new 'static 'texture-id :index #x6 :page #x2)) (:num 5.0)
(:x (meters -0.5) (meters 1))
(:y (meters 0.25) (meters 1.5))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.6) 2.0 (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3))
(:r 160.0)
(:g 160.0)
(:b 160.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:rotvel-x (degrees 1.2))
(:rotvel-y (degrees 2.4))
(:rotvel-z (degrees 0) 2 (degrees 2.4))
(:accel-y (meters -0.0033333334))
(:friction 0.97)
(:timer (seconds 0.5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25))
(:next-launcher 287)
(:conerot-x (degrees 40) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x6 :page #x2))
(:num 5.0)
(:x (meters -0.5) (meters 1))
(:y (meters 0.25) (meters 1.5))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.6) 2.0 (meters 0.6))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3))
(:r 160.0)
(:g 160.0)
(:b 160.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:rotvel-x (degrees 1.2))
(:rotvel-y (degrees 2.4))
(:rotvel-z (degrees 0) 2 (degrees 2.4))
(:accel-y (meters -0.0033333334))
(:friction 0.97)
(:timer (seconds 0.5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25))
(:next-launcher 287)
(:conerot-x (degrees 40) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 287
:init-specs ((:scalevel-x (meters -0.0033333334)) (:scalevel-y :copy scalevel-x) (:fade-a -3.4)))
(defpart 288
:init-specs
((:texture (new 'static 'texture-id :index #x5 :page #x2)) (:num 4.5)
(:x (meters -0.5) (meters 1))
(:y (meters 0.25) (meters 1.5))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.3) 1 (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3))
(:r 100.0)
(:g 100.0)
(:b 100.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:rotvel-x (degrees 1.2))
(:rotvel-y (degrees 2.4))
(:rotvel-z (degrees 0) 3 (degrees 2.4))
(:accel-y (meters -0.0033333334))
(:friction 0.97)
(:timer (seconds 0.5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25))
(:next-launcher 287)
(:conerot-x (degrees 40) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x5 :page #x2))
(:num 4.5)
(:x (meters -0.5) (meters 1))
(:y (meters 0.25) (meters 1.5))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.3) 1 (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3))
(:r 100.0)
(:g 100.0)
(:b 100.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:rotvel-x (degrees 1.2))
(:rotvel-y (degrees 2.4))
(:rotvel-z (degrees 0) 3 (degrees 2.4))
(:accel-y (meters -0.0033333334))
(:friction 0.97)
(:timer (seconds 0.5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25))
(:next-launcher 287)
(:conerot-x (degrees 40) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
(defpartgroup group-crate-explode
:id 71
@@ -237,199 +242,208 @@
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 12)
:parts
((sp-item 295 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 296) (sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 292 :fade-after (meters 160) :period (seconds 2) :length (seconds 0.017))
(sp-item 2095 :period (seconds 2) :length (seconds 0.017))
(sp-item 2096 :fade-after (meters 80) :falloff-to (meters 80) :period (seconds 2) :length (seconds 0.135))
(sp-item 2097 :period (seconds 2) :length (seconds 0.067))
(sp-item 2098 :fade-after (meters 120) :falloff-to (meters 120) :period (seconds 2) :length (seconds 0.067))))
((sp-item 295 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 296)
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 292 :fade-after (meters 160) :period (seconds 2) :length (seconds 0.017))
(sp-item 2095 :period (seconds 2) :length (seconds 0.017))
(sp-item 2096 :fade-after (meters 80) :falloff-to (meters 80) :period (seconds 2) :length (seconds 0.135))
(sp-item 2097 :period (seconds 2) :length (seconds 0.067))
(sp-item 2098 :fade-after (meters 120) :falloff-to (meters 120) :period (seconds 2) :length (seconds 0.067))))
(defpart 2096
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 6.0)
(:scale-x (meters 0.2) (meters 0.4))
(:scale-y :copy scale-x)
(:r 64.0 128.0)
(:g 0.0 32.0)
(:b 96.0 64.0)
(:a 32.0 96.0)
(:vel-y (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00016666666) (meters -0.00016666666))
(:friction 0.9)
(:timer (seconds 1))
(:flags (bit2 bit14))
(:next-time (seconds 0.1) (seconds 0.097))
(:next-launcher 2099)
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 2) (meters 4))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 6.0)
(:scale-x (meters 0.2) (meters 0.4))
(:scale-y :copy scale-x)
(:r 64.0 128.0)
(:g 0.0 32.0)
(:b 96.0 64.0)
(:a 32.0 96.0)
(:vel-y (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00016666666) (meters -0.00016666666))
(:friction 0.9)
(:timer (seconds 1))
(:flags (bit2 bit14))
(:next-time (seconds 0.1) (seconds 0.097))
(:next-launcher 2099)
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 2) (meters 4))))
(defpart 2099
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -1.4222223)))
(defpart 2098
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 3.0)
(:scale-x (meters 0.2))
(:rot-z (degrees 0) (degrees 180))
(:scale-y (meters 8))
(:r 64.0 192.0)
(:g 0.0 32.0)
(:b 128.0 64.0)
(:a 32.0 64.0)
(:scalevel-y (meters 0.42666668))
(:fade-a -1.6)
(:timer (seconds 0.2))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 3.0)
(:scale-x (meters 0.2))
(:rot-z (degrees 0) (degrees 180))
(:scale-y (meters 8))
(:r 64.0 192.0)
(:g 0.0 32.0)
(:b 128.0 64.0)
(:a 32.0 64.0)
(:scalevel-y (meters 0.42666668))
(:fade-a -1.6)
(:timer (seconds 0.2))
(:flags (bit2 bit3 bit14))))
(defpart 2095
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:scale-x (meters 16))
(:scale-y :copy scale-x)
(:r 64.0 192.0)
(:g 0.0 32.0)
(:b 128.0 64.0)
(:a 96.0)
(:fade-a -1.7454545)
(:timer (seconds 0.18))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:scale-x (meters 16))
(:scale-y :copy scale-x)
(:r 64.0 192.0)
(:g 0.0 32.0)
(:b 128.0 64.0)
(:a 96.0)
(:fade-a -1.7454545)
(:timer (seconds 0.18))
(:flags (bit2 bit3 bit14))))
(defpart 2097
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 4.0)
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0 64.0)
(:vel-y (meters 0.053333335) (meters 0.013333334))
(:scalevel-x (meters 0.013333334))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.42666668)
(:accel-y (meters 0.00016666666) (meters 0.00016666666))
(:friction 0.8)
(:timer (seconds 1.7))
(:flags (bit2 bit14))
(:conerot-x (degrees 0) (degrees 110))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 4.0)
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0 64.0)
(:vel-y (meters 0.053333335) (meters 0.013333334))
(:scalevel-x (meters 0.013333334))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.42666668)
(:accel-y (meters 0.00016666666) (meters 0.00016666666))
(:friction 0.8)
(:timer (seconds 1.7))
(:flags (bit2 bit14))
(:conerot-x (degrees 0) (degrees 110))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 295
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 16.0)
(:y (meters 1))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 0.0)
(:vel-y (meters 0.053333335) (meters 0.026666667))
(:accel-y (meters -0.00033333333))
(:friction 0.94)
(:timer (seconds 0.8))
(:flags (bit3 bit14))
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 16.0)
(:y (meters 1))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 0.0)
(:vel-y (meters 0.053333335) (meters 0.026666667))
(:accel-y (meters -0.00033333333))
(:friction 0.94)
(:timer (seconds 0.8))
(:flags (bit3 bit14))
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 296
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3) (meters 0.3))
(:scale-x (meters 0.3) (meters 0.3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.3) (seconds 0.497))
(:flags (bit2 bit3 bit7 bit14))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3) (meters 0.3))
(:scale-x (meters 0.3) (meters 0.3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.3) (seconds 0.497))
(:flags (bit2 bit3 bit7 bit14))))
(defpart 297
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 32.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 32.0 32.0)
(:scalevel-x (meters -0.0006190476))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.01904762)
(:accel-y (meters -0.000100000005) (meters -0.00015))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.8))
(:next-launcher 198)))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 32.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 32.0 32.0)
(:scalevel-x (meters -0.0006190476))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.01904762)
(:accel-y (meters -0.000100000005) (meters -0.00015))
(:timer (seconds 0.1) (seconds 0.997))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.8))
(:next-launcher 198)))
(defpart 292
:init-specs
((:texture (new 'static 'texture-id :index #x5 :page #x2)) (:num 8.0 16.0)
(:x (meters -0.5) (meters 1))
(:y (meters 0.25) (meters 1.5))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.3) 1 (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3))
(:r 128.0)
(:g 64.0 1 32.0)
(:b 32.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:rotvel-x (degrees 1.2))
(:rotvel-y (degrees 2.4))
(:rotvel-z (degrees 0) 3 (degrees 2.4))
(:accel-y (meters -0.0033333334))
(:friction 0.97)
(:timer (seconds 0.5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25))
(:next-launcher 301)
(:conerot-x (degrees 40) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x5 :page #x2))
(:num 8.0 16.0)
(:x (meters -0.5) (meters 1))
(:y (meters 0.25) (meters 1.5))
(:z (meters -0.5) (meters 1))
(:scale-x (meters 0.3) 1 (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.3))
(:r 128.0)
(:g 64.0 1 32.0)
(:b 32.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:rotvel-x (degrees 1.2))
(:rotvel-y (degrees 2.4))
(:rotvel-z (degrees 0) 3 (degrees 2.4))
(:accel-y (meters -0.0033333334))
(:friction 0.97)
(:timer (seconds 0.5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25))
(:next-launcher 301)
(:conerot-x (degrees 40) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 301
:init-specs ((:scalevel-x (meters -0.0033333334)) (:scalevel-y :copy scalevel-x) (:fade-a -3.4)))
@@ -681,11 +695,12 @@
:to
*entity-pool*))))
(case (-> self fact pickup-type)
(((pickup-type money) (pickup-type buzzer)
(pickup-type eco-blue)
(pickup-type eco-yellow)
(pickup-type eco-red)
(pickup-type fuel-cell))
(((pickup-type money)
(pickup-type buzzer)
(pickup-type eco-blue)
(pickup-type eco-yellow)
(pickup-type eco-red)
(pickup-type fuel-cell))
(go-virtual special-contents-die)))
(drop-pickup (-> self fact) #t *entity-pool* (the-as fact-info #f) arg1)
(process-entity-status! self (entity-perm-status dead) #t)
@@ -713,7 +728,7 @@
(let ((v0-0 (logclear (-> self mask) (process-mask sleep)))) (set! (-> self mask) v0-0) v0-0))))))))
:trans
(-> (method-of-type crate die)
trans)
trans)
:code
(behavior ()
(when (or (= (-> self fact pickup-type) (pickup-type money)) (= (-> self defense) 'iron) (= (-> self defense) 'steel))
@@ -778,13 +793,14 @@
(when arg0
(process-drawable-from-entity! this (the-as entity-actor arg0))
(logclear! (-> this mask) (process-mask actor-pause)))
(let ((a0-18 ((method-of-type res-lump get-property-struct) (-> this entity)
'crate-type
'interp
-1000000000.0
'wood
(the-as (pointer res-tag) #f)
*res-static-buf*)))
(let ((a0-18 ((method-of-type res-lump get-property-struct)
(-> this entity)
'crate-type
'interp
-1000000000.0
'wood
(the-as (pointer res-tag) #f)
*res-static-buf*)))
(set! (-> this look) (the-as symbol a0-18))
(set! (-> this defense) (the-as symbol a0-18)))
(case (-> this fact pickup-type)
@@ -876,25 +892,26 @@
(defpart 302
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 1.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (bit2 bit12 bit14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 1.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 96.0 32.0)
(:b 64.0 32.0)
(:a 16.0 32.0)
(:vel-y (meters 0.02) (meters 0.01))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (bit2 bit12 bit14))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
(deftype crate-buzzer (crate) ())
+154 -144
View File
@@ -97,14 +97,15 @@
(logior! (-> this flags) (water-flags wt24))
(set! (-> this attack-event)
(the-as symbol
((the-as (function res-lump symbol symbol float structure (pointer res-tag) pointer object) (method-of-type res-lump get-property-struct))
(-> this entity)
'attack-event
'interp
-1000000000.0
'dark-eco-pool
(the-as (pointer res-tag) #f)
*res-static-buf*)))
((the-as (function res-lump symbol symbol float structure (pointer res-tag) pointer object)
(method-of-type res-lump get-property-struct))
(-> this entity)
'attack-event
'interp
-1000000000.0
'dark-eco-pool
(the-as (pointer res-tag) #f)
*res-static-buf*)))
(none))
(defmethod water-vol-method-22 ((this dark-eco-pool))
@@ -131,21 +132,22 @@
(defpart 2020
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:y (meters 0))
(:scale-x (meters 1) (meters 4))
(:scale-y (meters 0.25))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 96.0 32.0)
(:scalevel-x (meters 0.1875))
(:scalevel-y (meters -0.001875))
(:fade-a -3.2)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 2021)))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:y (meters 0))
(:scale-x (meters 1) (meters 4))
(:scale-y (meters 0.25))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 96.0 32.0)
(:scalevel-x (meters 0.1875))
(:scalevel-y (meters -0.001875))
(:fade-a -3.2)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 2021)))
(defpart 2021
:init-specs ((:r 255.0) (:g 128.0 128.0) (:b 0.0) (:fade-a -1.28)))
@@ -157,148 +159,156 @@
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 12)
:parts
((sp-item 2056 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017)) (sp-item 2057 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 2052)
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2058 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 2054)
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))))
((sp-item 2056 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017))
(sp-item 2057 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 2052)
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2058 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 2054)
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))))
(defpart 2056
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:scale-x (meters 8))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0)
(:fade-a -1.8285716)
(:timer (seconds 0.18))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:scale-x (meters 8))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0)
(:fade-a -1.8285716)
(:timer (seconds 0.18))
(:flags (bit2 bit3 bit14))))
(defpart 2057
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0 6.0)
(:y (meters 1))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 0.0)
(:vel-y (meters 0.04) (meters 0.02))
(:accel-y (meters -0.00083333335))
(:friction 0.94)
(:timer (seconds 0.8))
(:flags (bit3))
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0 6.0)
(:y (meters 1))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 0.0)
(:vel-y (meters 0.04) (meters 0.02))
(:accel-y (meters -0.00083333335))
(:friction 0.94)
(:timer (seconds 0.8))
(:flags (bit3))
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 2052
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3) (meters 0.3))
(:scale-x (meters 0.4) (meters 0.3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.2) (seconds 0.597))
(:flags (bit2 bit3 bit7 bit14))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3) (meters 0.3))
(:scale-x (meters 0.4) (meters 0.3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.2) (seconds 0.597))
(:flags (bit2 bit3 bit7 bit14))))
(defpart 2053
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:scale-x (meters 0.4) (meters 0.1))
(:scale-y :copy scale-x)
(:r 32.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 32.0 32.0)
(:scalevel-x (meters -0.0006190476))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.01904762)
(:accel-y (meters -0.000100000005) (meters -0.00015))
(:timer (seconds 0.1) (seconds 0.797))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.8))
(:next-launcher 198)))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:scale-x (meters 0.4) (meters 0.1))
(:scale-y :copy scale-x)
(:r 32.0 96.0)
(:g 0.0 32.0)
(:b 64.0 32.0)
(:a 32.0 32.0)
(:scalevel-x (meters -0.0006190476))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.01904762)
(:accel-y (meters -0.000100000005) (meters -0.00015))
(:timer (seconds 0.1) (seconds 0.797))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.8))
(:next-launcher 198)))
(defpart 2058
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0 6.0)
(:y (meters 1))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 0.0)
(:vel-y (meters 0.04) (meters 0.02))
(:accel-y (meters -0.00083333335))
(:friction 0.94)
(:timer (seconds 0.8))
(:flags (bit3))
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0 6.0)
(:y (meters 1))
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 0.0)
(:vel-y (meters 0.04) (meters 0.02))
(:accel-y (meters -0.00083333335))
(:friction 0.94)
(:timer (seconds 0.8))
(:flags (bit3))
(:conerot-x (degrees 0) (degrees 140))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 2054
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3) (meters 0.3))
(:scale-x (meters 0.4) (meters 0.3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 16.0 32.0)
(:g 0.0 16.0)
(:b 192.0 64.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.2) (seconds 0.597))
(:flags (bit2 bit3 bit7 bit14))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.3) (meters 0.3))
(:scale-x (meters 0.4) (meters 0.3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 16.0 32.0)
(:g 0.0 16.0)
(:b 192.0 64.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.2) (seconds 0.597))
(:flags (bit2 bit3 bit7 bit14))))
(defpart 2055
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:scale-x (meters 0.4) (meters 0.1))
(:scale-y :copy scale-x)
(:r 16.0 32.0)
(:g 0.0 16.0)
(:b 192.0 64.0)
(:a 32.0 32.0)
(:scalevel-x (meters -0.0006190476))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.01904762)
(:accel-y (meters -0.000100000005) (meters -0.00015))
(:timer (seconds 0.1) (seconds 0.797))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.8))
(:next-launcher 198)))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:scale-x (meters 0.4) (meters 0.1))
(:scale-y :copy scale-x)
(:r 16.0 32.0)
(:g 0.0 16.0)
(:b 192.0 64.0)
(:a 32.0 32.0)
(:scalevel-x (meters -0.0006190476))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.01904762)
(:accel-y (meters -0.000100000005) (meters -0.00015))
(:timer (seconds 0.1) (seconds 0.797))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.8))
(:next-launcher 198)))
(defstate water-vol-idle (dark-eco-pool)
:virtual #t
@@ -66,8 +66,8 @@
(anim-mode symbol)
(cur-grab-handle handle)
(cur-target-handle handle)
(old-grab-pos vector :inline)
(joint joint-mod 4)
(old-grab-pos vector :inline)
(joint joint-mod 4)
(new-post-hook (function none))
(cur-post-hook (function none))
(clone-copy-trans symbol)
@@ -97,17 +97,17 @@
(duration time-frame)
(linger-duration time-frame)
(start-time time-frame)
(offset vector :inline)
(offset vector :inline)
(userdata uint64)
(user-time time-frame 2)
(user-vector vector 2 :inline)
(user-handle uint32 2))
(user-time time-frame 2)
(user-vector vector 2 :inline)
(user-handle uint32 2))
(:states
part-tracker-process))
;; a camera-tracker can control the camera.
(deftype camera-tracker (process)
((grab-target handle :offset 120)
((grab-target handle :offset 120)
(grab-event symbol)
(release-event symbol)
(old-global-mask process-mask)
@@ -173,8 +173,8 @@
(old-global-mask process-mask)
(mask-to-clear process-mask)
(cam-joint-index int32)
(old-pos vector :inline)
(old-mat-z vector :inline)
(old-pos vector :inline)
(old-mat-z vector :inline)
(had-valid-frame basic)
(border-value basic)
(die? symbol)
+206 -196
View File
@@ -30,16 +30,11 @@
,entity
,skel
,arg
:from
,from
:to
,to
:name
,name
:stack-size
,stack-size
:stack
,stack))
:from ,from
:to ,to
:name ,name
:stack-size ,stack-size
:stack ,stack))
;; DECOMP BEGINS
@@ -380,11 +375,12 @@
(suspend)
0))
(defbehavior part-tracker-init part-tracker ((arg0 sparticle-launch-group) (arg1 time-frame)
(arg2 (function part-tracker none))
(arg3 (pointer process-drawable))
(arg4 process)
(arg5 collide-prim-core))
(defbehavior part-tracker-init part-tracker ((arg0 sparticle-launch-group)
(arg1 time-frame)
(arg2 (function part-tracker none))
(arg3 (pointer process-drawable))
(arg4 process)
(arg5 collide-prim-core))
(stack-size-set! (-> self main-thread) 128)
(set! (-> self root) (new 'process 'trsqv))
(set! (-> self root trans quad) (-> arg5 world-sphere quad))
@@ -509,12 +505,13 @@
(let* ((s2-0 (get-process *default-dead-pool* manipy #x4000))
(gp-0 (when s2-0
(let ((t9-1 (method-of-type manipy activate))) (t9-1 (the-as manipy s2-0) self 'manipy (the-as pointer #x70004000)))
((the-as (function process function object object object object object) run-function-in-process) s2-0
manipy-init
arg2
#f
arg0
#f)
((the-as (function process function object object object object object) run-function-in-process)
s2-0
manipy-init
arg2
#f
arg0
#f)
(-> s2-0 ppointer))))
(when gp-0
(send-event (-> gp-0 0 self) 'anim-mode 'play1)
@@ -831,7 +828,7 @@
(camera state)
(active-distance float)
(seek-time time-frame)
(dest vector :inline)
(dest vector :inline)
(sound-id sound-id))
(:states
launcher-active
@@ -842,110 +839,116 @@
:id 37
:bounds (static-bspherem 0 3 0 5)
:parts
((sp-item 45 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 46 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 47 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 48 :fade-after (meters 50) :falloff-to (meters 80))
(sp-item 49 :fade-after (meters 70) :falloff-to (meters 100))))
((sp-item 45 :fade-after (meters 100) :falloff-to (meters 100))
(sp-item 46 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 47 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 48 :fade-after (meters 50) :falloff-to (meters 80))
(sp-item 49 :fade-after (meters 70) :falloff-to (meters 100))))
(defpart 45
:init-specs
((:num 1.5) (:x (meters 1.5))
(:y (meters -0.5))
(:rot-x 5)
(:r 4096.0)
(:g 2867.2)
(:b 3276.8)
(:vel-y (meters 0.026666667))
(:timer (seconds 0.9))
(:flags (aux-list))
(:next-time (seconds 0.6))
(:next-launcher 50)
(:rotate-y (degrees 0) (degrees 360))))
((:num 1.5)
(:x (meters 1.5))
(:y (meters -0.5))
(:rot-x 5)
(:r 4096.0)
(:g 2867.2)
(:b 3276.8)
(:vel-y (meters 0.026666667))
(:timer (seconds 0.9))
(:flags (aux-list))
(:next-time (seconds 0.6))
(:next-launcher 50)
(:rotate-y (degrees 0) (degrees 360))))
(defpart 50
:init-specs ((:fade-b -4.551111)))
(defpart 46
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:x (meters 0) (meters 1.8))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 2.5) (meters 2.5))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.24414062) (meters 0.48828125))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:x (meters 0) (meters 1.8))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 2.5) (meters 2.5))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.24414062) (meters 0.48828125))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 47
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 2.0)
(:x (meters 1.8) (meters 1))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.5) (meters 1))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.048828125) (meters 0.09765625))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 2.0)
(:x (meters 1.8) (meters 1))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.5) (meters 1))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.048828125) (meters 0.09765625))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 48
:init-specs
((:texture (new 'static 'texture-id :index #x17 :page #x2)) (:num 1.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 0.3) (meters 0.4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.1) (meters 0.1))
(:r 10.0 6.0)
(:g 64.0 128.0)
(:b 10.0 6.0)
(:a 80.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a -0.2)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.6) (seconds 0.397))
(:flags (bit2))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x17 :page #x2))
(:num 1.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 0.3) (meters 0.4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.1) (meters 0.1))
(:r 10.0 6.0)
(:g 64.0 128.0)
(:b 10.0 6.0)
(:a 80.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a -0.2)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.6) (seconds 0.397))
(:flags (bit2))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 49
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 0.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 10.0 5.0)
(:a 0.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a 0.6)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.9))
(:flags (bit2 bit3))
(:next-time (seconds 0.15))
(:next-launcher 51)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 0.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 32.0 32.0)
(:g 32.0 32.0)
(:b 10.0 5.0)
(:a 0.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a 0.6)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.9))
(:flags (bit2 bit3))
(:next-time (seconds 0.15))
(:next-launcher 51)
(:rotate-y (degrees 0) (degrees 360))))
(defpart 51
:init-specs ((:fade-a -0.18)))
@@ -954,101 +957,107 @@
:id 38
:bounds (static-bspherem 0 3 0 5)
:parts
((sp-item 45 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 52 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 53 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 54 :fade-after (meters 70) :falloff-to (meters 100))))
((sp-item 45 :fade-after (meters 100) :falloff-to (meters 100))
(sp-item 52 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 53 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 54 :fade-after (meters 70) :falloff-to (meters 100))))
(defpart 52
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:x (meters 0) (meters 1.4))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 2.5) (meters 2.5))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.24414062) (meters 0.48828125))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:x (meters 0) (meters 1.4))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 2.5) (meters 2.5))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.24414062) (meters 0.48828125))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 53
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 2.0)
(:x (meters 1.4) (meters 0.9))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.5) (meters 1))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.048828125) (meters 0.09765625))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 2.0)
(:x (meters 1.4) (meters 0.9))
(:scale-x (meters 0.2))
(:rot-x (degrees 90))
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.5) (meters 1))
(:r 0.0 1 128.0)
(:g 64.0 196.0)
(:b 128.0 128.0)
(:a 128.0)
(:scalevel-x (meters -0.0025))
(:scalevel-y (meters 0.048828125) (meters 0.09765625))
(:timer (seconds 0.27))
(:flags (bit3))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 54
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 0.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 32.0 32.0)
(:b 10.0 5.0)
(:a 0.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a 0.6)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.9))
(:flags (bit2 bit3))
(:next-time (seconds 0.15))
(:next-launcher 51)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 0.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 32.0 32.0)
(:b 10.0 5.0)
(:a 0.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a 0.6)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.9))
(:flags (bit2 bit3))
(:next-time (seconds 0.15))
(:next-launcher 51)
(:rotate-y (degrees 0) (degrees 360))))
(defpartgroup group-swamp-launcher
:id 39
:bounds (static-bspherem 0 3 0 5)
:parts
((sp-item 45 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 46 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 47 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 55 :fade-after (meters 70) :falloff-to (meters 100))))
((sp-item 45 :fade-after (meters 100) :falloff-to (meters 100))
(sp-item 46 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 47 :fade-after (meters 70) :falloff-to (meters 100) :flags (is-3d))
(sp-item 55 :fade-after (meters 70) :falloff-to (meters 100))))
(defpart 55
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 0.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 16.0 16.0)
(:g 16.0 16.0)
(:b 5.0 2.5)
(:a 0.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a 0.6)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.9))
(:flags (bit2))
(:next-time (seconds 0.15))
(:next-launcher 51)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 0.5)
(:x (meters 2.9) (meters 2.5))
(:y (meters -0.5))
(:scale-x (meters 2) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 16.0 16.0)
(:g 16.0 16.0)
(:b 5.0 2.5)
(:a 0.0)
(:vel-x (meters -0.011666667) (meters -0.0033333334))
(:vel-y (meters 0))
(:rotvel-z (degrees -1.2) 1 (degrees 2.4))
(:fade-a 0.6)
(:accel-y (meters 0.0016666667))
(:friction 0.996)
(:timer (seconds 0.9))
(:flags (bit2))
(:next-time (seconds 0.15))
(:next-launcher 51)
(:rotate-y (degrees 0) (degrees 360))))
(defbehavior cam-launcher-joystick camera-slave ()
(when *camera-read-analog*
@@ -1460,16 +1469,17 @@
(defpart 2528
:init-specs
((:texture (new 'static 'texture-id :index #xc :page #x2)) (:birth-func 'birth-func-set-quat)
(:num 1.0)
(:scale-x (meters 2) (meters 0.5))
(:scale-y (meters 5.6))
(:r 0.0 44.0)
(:g 0.0 64.0)
(:b 128.0 32.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (bit2 bit3 bit14 left-multiply-quat))))
((:texture (new 'static 'texture-id :index #xc :page #x2))
(:birth-func 'birth-func-set-quat)
(:num 1.0)
(:scale-x (meters 2) (meters 0.5))
(:scale-y (meters 5.6))
(:r 0.0 44.0)
(:g 0.0 64.0)
(:b 128.0 32.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (bit2 bit3 bit14 left-multiply-quat))))
(defun draw-eco-beam ((arg0 vector) (arg1 vector))
(when (line-in-view-frustum? arg0 arg1)
@@ -110,12 +110,12 @@
(deftype nav-enemy (process-drawable)
((collide-info collide-shape-moving :overlay-at root)
(enemy-info fact-info-enemy :overlay-at fact)
(hit-from-dir vector :inline)
(event-param-point vector :inline)
(frustration-point vector :inline)
(jump-dest vector :inline)
(jump-trajectory trajectory :inline)
(enemy-info fact-info-enemy :overlay-at fact)
(hit-from-dir vector :inline)
(event-param-point vector :inline)
(frustration-point vector :inline)
(jump-dest vector :inline)
(jump-trajectory trajectory :inline)
(jump-time time-frame)
(nav-info nav-enemy-info)
(target-speed float)
+8 -6
View File
@@ -84,16 +84,18 @@
(defmethod touch-handler ((this nav-enemy) (arg0 process) (arg1 event-message-block))
(if (and (logtest? (-> this nav-enemy-flags) (nav-enemy-flags navenmf6))
((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry (-> arg1 param 0))
(-> this collide-info)
(the-as uint 1)))
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg1 param 0))
(-> this collide-info)
(the-as uint 1)))
(nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)))
(defmethod nav-enemy-touch-handler ((this nav-enemy) (arg0 process) (arg1 event-message-block))
(if (and (logtest? (-> this nav-enemy-flags) (nav-enemy-flags navenmf6))
((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry (-> arg1 param 0))
(-> this collide-info)
(the-as uint 1)))
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg1 param 0))
(-> this collide-info)
(the-as uint 1)))
(nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)))
(defmethod nav-enemy-attack-handler ((this nav-enemy) (arg0 process) (arg1 event-message-block))
+2 -2
View File
@@ -14,8 +14,8 @@
((active-distance float)
(inactive-distance float)
(money-list handle 60)
(money-pos-list float 60)
(money-pos-actual float 60)
(money-pos-list float 60)
(money-pos-actual float 60)
(platform-pos float)
(root-pos float)
(money int32)
+14 -12
View File
@@ -19,8 +19,8 @@
(bidirectional? symbol)
(allow-auto-kill symbol)
(sound-id sound-id)
(trans-off vector :inline)
(spawn-pos vector :inline))
(trans-off vector :inline)
(spawn-pos vector :inline))
(:state-methods
plat-button-at-end
plat-button-idle
@@ -57,9 +57,10 @@
(case message
(('touch)
(when (can-activate? self)
(if (and ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry (-> block param 0))
(-> self root)
(the-as uint 1))
(if (and ((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> block param 0))
(-> self root)
(the-as uint 1))
(or (not (-> self should-grab-player?)) (set! (-> self grab-player?) (process-grab? *target*))))
(go-virtual plat-button-pressed))))))
:code
@@ -298,13 +299,14 @@
(set! (-> this should-grab-player?) #f)
(set! (-> this trans-off quad)
(-> (the-as vector
((method-of-type res-lump get-property-struct) arg0
'trans-offset
'interp
-1000000000.0
*null-vector*
(the-as (pointer res-tag) #f)
*res-static-buf*))
((method-of-type res-lump get-property-struct)
arg0
'trans-offset
'interp
-1000000000.0
*null-vector*
(the-as (pointer res-tag) #f)
*res-static-buf*))
quad))
(set! (-> this bidirectional?) (nonzero? (res-lump-value arg0 'bidirectional uint128)))
(plat-button-method-28 this)
+34 -31
View File
@@ -15,42 +15,45 @@
:id 107
:bounds (static-bspherem 0 -12 0 14)
:parts
((sp-item 363 :fade-after (meters 60) :falloff-to (meters 60)) (sp-item 364 :fade-after (meters 160) :falloff-to (meters 160))))
((sp-item 363 :fade-after (meters 60) :falloff-to (meters 60))
(sp-item 364 :fade-after (meters 160) :falloff-to (meters 160))))
(defpart 363
:init-specs
((:num 1.5) (:y (meters 1))
(:rot-x 5)
(:r 5324.8)
(:g 4096.0)
(:b 3686.4)
(:vel-y (meters 0.0033333334))
(:fade-b -16.383999)
(:timer (seconds 0.085))
(:flags (aux-list))
(:conerot-x (degrees 140) (degrees 40))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 3))))
((:num 1.5)
(:y (meters 1))
(:rot-x 5)
(:r 5324.8)
(:g 4096.0)
(:b 3686.4)
(:vel-y (meters 0.0033333334))
(:fade-b -16.383999)
(:timer (seconds 0.085))
(:flags (aux-list))
(:conerot-x (degrees 140) (degrees 40))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 3))))
(defpart 364
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 2.0)
(:y (meters 1.5))
(:scale-x (meters 2) (meters 1))
(:scale-y :copy scale-x)
(:g 0.0 64.0)
(:b 128.0 128.0)
(:a 16.0 32.0)
(:vel-y (meters 0.01))
(:fade-g -0.42666668)
(:fade-a -0.32)
(:accel-y (meters -0.000033333334))
(:friction 0.96)
(:timer (seconds 0.5))
(:flags (bit2 bit3))
(:conerot-x (degrees 130) (degrees 100.00001))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 3))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 2.0)
(:y (meters 1.5))
(:scale-x (meters 2) (meters 1))
(:scale-y :copy scale-x)
(:g 0.0 64.0)
(:b 128.0 128.0)
(:a 16.0 32.0)
(:vel-y (meters 0.01))
(:fade-g -0.42666668)
(:fade-a -0.32)
(:accel-y (meters -0.000033333334))
(:friction 0.96)
(:timer (seconds 0.5))
(:flags (bit2 bit3))
(:conerot-x (degrees 130) (degrees 100.00001))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 3))))
(deftype plat (baseplat)
((path-pos float)
@@ -171,7 +174,7 @@
(plat-trans))
:code
(the-as (function plat object)
anim-loop)
anim-loop)
:post plat-post)
(defmethod init-from-entity! ((this plat) (arg0 entity-actor))
@@ -208,21 +208,12 @@
(defmacro ja-no-eval (&key (chan 0) &key (group! #f) &key (num! #f) &key (param0 #f) &key (param1 #f) &key (num-func #f) &key (frame-num #f) &key (frame-interp #f) &key (dist #f))
`(ja :eval? #f
:chan
,chan
:group!
,group!
:num!
,num!
:param0
,param0
:param1
,param1
:num-func
,num-func
:frame-num
,frame-num
:frame-interp
,frame-interp
:dist
,dist))
:chan ,chan
:group! ,group!
:num! ,num!
:param0 ,param0
:param1 ,param1
:num-func ,num-func
:frame-num ,frame-num
:frame-interp ,frame-interp
:dist ,dist))
@@ -246,9 +246,10 @@
(let ((s5-0 (-> obj draw mgeo num-joints)))
(let ((s4-0 (+ s5-0 2)))
(+ s4-0 1)
((-> obj skel generate-frame-function) (the-as (inline-array vector) (+ 2416 (the-as int (the-as terrain-context (scratchpad-object int)))))
s4-0
obj)
((-> obj skel generate-frame-function)
(the-as (inline-array vector) (+ 2416 (the-as int (the-as terrain-context (scratchpad-object int)))))
s4-0
obj)
(if (-> obj skel prebind-function)
((-> obj skel prebind-function) (the-as pointer (+ 2416 (scratchpad-object int))) s4-0 obj)))
(dotimes (s4-1 1)
@@ -585,10 +585,11 @@
(first-any (-> self tasks) #t)
(when (target-above-threshold? self)
(case (current-status (-> self tasks))
(((task-status need-hint) (task-status need-introduction)
(task-status need-reminder)
(task-status need-reminder-a)
(task-status need-reward-speech))
(((task-status need-hint)
(task-status need-introduction)
(task-status need-reminder)
(task-status need-reminder-a)
(task-status need-reward-speech))
(kill-current-level-hint () '(sidekick voicebox ambient) 'exit)
(level-hint-surpress!)
(hide-hud)
+12 -12
View File
@@ -14,19 +14,19 @@
(inv-mass float)
(lin-momentum-damping-factor float)
(ang-momentum-damping-factor float)
(inertial-tensor matrix :inline)
(inv-inertial-tensor matrix :inline)
(cm-offset-joint vector :inline)
(position vector :inline)
(inertial-tensor matrix :inline)
(inv-inertial-tensor matrix :inline)
(cm-offset-joint vector :inline)
(position vector :inline)
(rotation quaternion :inline)
(lin-momentum vector :inline)
(ang-momentum vector :inline)
(lin-velocity vector :inline)
(ang-velocity vector :inline)
(inv-i-world matrix :inline)
(matrix matrix :inline)
(force vector :inline)
(torque vector :inline)
(lin-momentum vector :inline)
(ang-momentum vector :inline)
(lin-velocity vector :inline)
(ang-velocity vector :inline)
(inv-i-world matrix :inline)
(matrix matrix :inline)
(force vector :inline)
(torque vector :inline)
(max-ang-momentum float)
(max-ang-velocity float))
(:methods
@@ -210,14 +210,14 @@
(set! (-> rigid-body-control-point-inline-array heap-base) (the-as uint 48))
(deftype rigid-body-platform (process-drawable)
((root-overlay collide-shape-moving :overlay-at root)
((root-overlay collide-shape-moving :overlay-at root)
(info rigid-body-platform-constants)
(rbody rigid-body :inline)
(rbody rigid-body :inline)
(control-point-array rigid-body-control-point-inline-array)
(player-velocity vector :inline)
(player-velocity-prev vector :inline)
(player-force-position vector :inline)
(player-force vector :inline)
(player-velocity vector :inline)
(player-velocity-prev vector :inline)
(player-force-position vector :inline)
(player-force vector :inline)
(sim-time-remaining float)
(float-height-offset float)
(player-attack-id int32)
@@ -485,7 +485,7 @@
:pack-me)
(deftype ropebridge (process-drawable)
((root collide-shape :override)
((root collide-shape :override)
(subtype uint64)
(subtype-name string)
(agitated-time-stamp time-frame)
@@ -495,9 +495,9 @@
(sleep-dist float)
(do-physics? basic)
(tuning ropebridge-tuning)
(world-matrix matrix :inline)
(inv-world-matrix matrix :inline)
(extra-trans vector :inline)
(world-matrix matrix :inline)
(inv-world-matrix matrix :inline)
(extra-trans vector :inline)
(spring-point ropebridge-spring-point 36 :inline))
(:methods
(set-vel-from-impact (_type_ uint vector int float) none)
+18 -17
View File
@@ -17,25 +17,26 @@
:flags (use-local-clock)
:bounds (static-bspherem 0 -12 0 14)
:parts
((sp-item 124 :flags (is-3d) :period (seconds 3) :length (seconds 0.21)) (sp-item 125 :period (seconds 3) :length (seconds 0.05))
(sp-item 126 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 127 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 128 :period (seconds 3) :length (seconds 0.035) :binding 129)
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))))
((sp-item 124 :flags (is-3d) :period (seconds 3) :length (seconds 0.21))
(sp-item 125 :period (seconds 3) :length (seconds 0.05))
(sp-item 126 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 127 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 128 :period (seconds 3) :length (seconds 0.035) :binding 129)
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))))
(deftype sharkey (nav-enemy)
((dir vector :inline)
(spawn-point vector :inline)
((dir vector :inline)
(spawn-point vector :inline)
(scale float)
(anim-speed float)
(y-max meters)
+2 -2
View File
@@ -11,12 +11,12 @@
;; DECOMP BEGINS
(deftype tippy (structure)
((axis vector :inline)
((axis vector :inline)
(angle float)
(orig quaternion :inline)
(dist-ratio float)
(damping float)
(1 -damping float))
(1 -damping float))
(:methods
(reset! (_type_ process-drawable float float) none)
(tippy-method-10 (_type_ process-drawable vector) symbol)))
+2 -2
View File
@@ -17,8 +17,8 @@
(deftype voicebox (process-drawable)
((parent-override (pointer camera-voicebox) :overlay-at parent)
(base-trans vector :inline)
(seeker cam-float-seeker :inline)
(base-trans vector :inline)
(seeker cam-float-seeker :inline)
(blend float)
(twist float)
(hint handle))
+414 -388
View File
@@ -15,20 +15,21 @@
(defpart 108
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 1.0)
(:scale-x (meters 0.5) (meters 0.6))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 64.0 64.0)
(:scalevel-x (meters 0.0016666667) (meters 0.001))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 109)))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 1.0)
(:scale-x (meters 0.5) (meters 0.6))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 64.0 64.0)
(:scalevel-x (meters 0.0016666667) (meters 0.001))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 109)))
(defpart 109
:init-specs ((:fade-a -0.2)))
@@ -63,67 +64,70 @@
(defpart 110
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 12.0)
(:x (meters -0.25) (meters 0.5))
(:y (meters -0.05) (meters 0.1))
(:z (meters -0.25) (meters 0.5))
(:scale-x (meters 0.1) (meters 0.1))
(:scale-y (meters 0.05) (meters 0.05))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 24.0 40.0)
(:vel-y (meters 0) (meters 0.006666667))
(:accel-y (meters 0.00016666666) (meters 0.00016666666))
(:friction 0.96)
(:timer (seconds 5))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-above-and-die)
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 12.0)
(:x (meters -0.25) (meters 0.5))
(:y (meters -0.05) (meters 0.1))
(:z (meters -0.25) (meters 0.5))
(:scale-x (meters 0.1) (meters 0.1))
(:scale-y (meters 0.05) (meters 0.05))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 24.0 40.0)
(:vel-y (meters 0) (meters 0.006666667))
(:accel-y (meters 0.00016666666) (meters 0.00016666666))
(:friction 0.96)
(:timer (seconds 5))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-above-and-die)
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 111
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 0.1)
(:x (meters -0.25) (meters 0.5))
(:y (meters 0.15))
(:z (meters -0.25) (meters 0.5))
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y (meters 0.15) (meters 0.05))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-y (meters 0) (meters 0.006666667))
(:accel-y (meters 0.00033333333))
(:friction 0.96)
(:timer (seconds 5))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-above-and-die)
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 0.1)
(:x (meters -0.25) (meters 0.5))
(:y (meters 0.15))
(:z (meters -0.25) (meters 0.5))
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y (meters 0.15) (meters 0.05))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-y (meters 0) (meters 0.006666667))
(:accel-y (meters 0.00033333333))
(:friction 0.96)
(:timer (seconds 5))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-above-and-die)
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 112
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 0.05)
(:x (meters -1) (meters 2))
(:z (meters -1) (meters 2))
(:scale-x (meters 0.2) (meters 0.5))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.0016666667) (meters 0.001))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.42666668)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 113)))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 0.05)
(:x (meters -1) (meters 2))
(:z (meters -1) (meters 2))
(:scale-x (meters 0.2) (meters 0.5))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.0016666667) (meters 0.001))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.42666668)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 113)))
(defpart 113
:init-specs ((:fade-a 0.0) (:next-time (seconds 1.2)) (:next-launcher 114)))
@@ -133,55 +137,58 @@
(defpart 115
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 0.04 0.03)
(:x (meters -0.2) (meters 0.4))
(:z (meters -0.2) (meters 0.4))
(:scale-x (meters 0.5))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.008333334))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.64)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 116)))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 0.04 0.03)
(:x (meters -0.2) (meters 0.4))
(:z (meters -0.2) (meters 0.4))
(:scale-x (meters 0.5))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.008333334))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.64)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 116)))
(defpart 116
:init-specs
((:scalevel-x (meters 0.006666667)) (:scalevel-y :copy scalevel-x)
(:fade-a 0.0)
(:next-time (seconds 0.5))
(:next-launcher 117)))
((:scalevel-x (meters 0.006666667))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.0)
(:next-time (seconds 0.5))
(:next-launcher 117)))
(defpart 117
:init-specs ((:scalevel-x (meters 0.005)) (:scalevel-y :copy scalevel-x) (:fade-a -0.32)))
(defpart 118
:init-specs
((:texture (new 'static 'texture-id :index #xa :page #x2)) (:num 0.06)
(:x (meters 10))
(:scale-x (meters 0.75) (meters 1.5))
(:rot-y (degrees 0))
(:scale-y (meters 0.75) (meters 1.5))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:vel-x (meters 0.01) (meters 0.006666667))
(:scalevel-x (meters 0.0033333334) (meters 0.004333333))
(:scalevel-y (meters 0.0033333334) (meters 0.004333333))
(:fade-a 0.7111111)
(:friction 0.94)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.3))
(:next-launcher 119)
(:rotate-y (degrees 0))))
((:texture (new 'static 'texture-id :index #xa :page #x2))
(:num 0.06)
(:x (meters 10))
(:scale-x (meters 0.75) (meters 1.5))
(:rot-y (degrees 0))
(:scale-y (meters 0.75) (meters 1.5))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:vel-x (meters 0.01) (meters 0.006666667))
(:scalevel-x (meters 0.0033333334) (meters 0.004333333))
(:scalevel-y (meters 0.0033333334) (meters 0.004333333))
(:fade-a 0.7111111)
(:friction 0.94)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.3))
(:next-launcher 119)
(:rotate-y (degrees 0))))
(defpart 119
:init-specs ((:fade-a 0.0) (:next-time (seconds 0.3) (seconds 0.397)) (:next-launcher 120)))
@@ -191,24 +198,25 @@
(defpart 121
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 0.05 0.4)
(:x (meters -0.5) (meters 1))
(:z (meters 0.5) (meters 1.5))
(:scale-x (meters 0.2) (meters 0.7))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.0016666667) (meters 0.003))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.42666668)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 122)
(:rotate-y (degrees 0))))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 0.05 0.4)
(:x (meters -0.5) (meters 1))
(:z (meters 0.5) (meters 1.5))
(:scale-x (meters 0.2) (meters 0.7))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.0016666667) (meters 0.003))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.42666668)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 122)
(:rotate-y (degrees 0))))
(defpart 122
:init-specs ((:fade-a 0.0) (:next-time (seconds 1.2)) (:next-launcher 123)))
@@ -222,35 +230,36 @@
:flags (use-local-clock)
:bounds (static-bspherem 0 -12 0 14)
:parts
((sp-item 124 :flags (is-3d) :period (seconds 3) :length (seconds 0.21)) (sp-item 125 :period (seconds 3) :length (seconds 0.05))
(sp-item 126 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 127 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 128 :period (seconds 3) :length (seconds 0.05) :binding 129)
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 130 :flags (is-3d) :period (seconds 3) :length (seconds 0.05) :offset 840)
(sp-item 131 :flags (is-3d) :period (seconds 3) :length (seconds 0.2) :offset 840)
(sp-item 132 :period (seconds 3) :length (seconds 0.035) :offset 840 :binding 133)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)))
((sp-item 124 :flags (is-3d) :period (seconds 3) :length (seconds 0.21))
(sp-item 125 :period (seconds 3) :length (seconds 0.05))
(sp-item 126 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 127 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 128 :period (seconds 3) :length (seconds 0.05) :binding 129)
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 130 :flags (is-3d) :period (seconds 3) :length (seconds 0.05) :offset 840)
(sp-item 131 :flags (is-3d) :period (seconds 3) :length (seconds 0.2) :offset 840)
(sp-item 132 :period (seconds 3) :length (seconds 0.035) :offset 840 :binding 133)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)
(sp-item 133 :flags (start-dead) :period (seconds 3) :length (seconds 0.4) :offset 840)))
(defpartgroup group-part-water-splash-small
:id 41
@@ -258,119 +267,125 @@
:flags (use-local-clock)
:bounds (static-bspherem 0 -12 0 14)
:parts
((sp-item 124 :flags (is-3d) :period (seconds 3) :length (seconds 0.21)) (sp-item 125 :period (seconds 3) :length (seconds 0.05))
(sp-item 126 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 127 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 128 :period (seconds 3) :length (seconds 0.035) :binding 129)
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))))
((sp-item 124 :flags (is-3d) :period (seconds 3) :length (seconds 0.21))
(sp-item 125 :period (seconds 3) :length (seconds 0.05))
(sp-item 126 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 127 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 128 :period (seconds 3) :length (seconds 0.035) :binding 129)
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))))
(defpart 129
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 0.4)
(:x (meters -0.2) (meters 0.4))
(:y (meters -0.2) (meters 0.4))
(:scale-x (meters 0.05) (meters 0.15))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:scalevel-x (meters 0.000033333334))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00040000002) (meters -0.00020000001))
(:timer (seconds 1.5))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 0.4)
(:x (meters -0.2) (meters 0.4))
(:y (meters -0.2) (meters 0.4))
(:scale-x (meters 0.05) (meters 0.15))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:scalevel-x (meters 0.000033333334))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00040000002) (meters -0.00020000001))
(:timer (seconds 1.5))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)))
(defpart 133
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 0.4)
(:x (meters -0.2) (meters 0.4))
(:y (meters -0.2) (meters 0.4))
(:scale-x (meters 0.05) (meters 0.15))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:scalevel-x (meters 0.000033333334))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00040000002) (meters -0.00020000001))
(:timer (seconds 1.5))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 0.4)
(:x (meters -0.2) (meters 0.4))
(:y (meters -0.2) (meters 0.4))
(:scale-x (meters 0.05) (meters 0.15))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:scalevel-x (meters 0.000033333334))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00040000002) (meters -0.00020000001))
(:timer (seconds 1.5))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)))
(defpart 131
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 0.3)
(:scale-x (meters 0.080000006) (meters 0.32000002))
(:rot-y (degrees 0) (degrees 360))
(:scale-y (meters 0.080000006) (meters 0.32000002))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.004) (meters 0.0090666665))
(:scalevel-y (meters 0.004) (meters 0.0090666665))
(:fade-a 0.32)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 134)))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 0.3)
(:scale-x (meters 0.080000006) (meters 0.32000002))
(:rot-y (degrees 0) (degrees 360))
(:scale-y (meters 0.080000006) (meters 0.32000002))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.004) (meters 0.0090666665))
(:scalevel-y (meters 0.004) (meters 0.0090666665))
(:fade-a 0.32)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 134)))
(defpart 132
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 3.2)
(:x (meters -0.2) (meters 0.4))
(:y (meters -0.2) (meters 0.4))
(:scale-x (meters 0.35) (meters 0.075))
(:scale-y (meters 0.2) (meters 0.075))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters -0.002) (meters 0.004))
(:vel-y (meters 0.018666666) (meters 0.0053333333))
(:vel-z (meters -0.002) (meters 0.004))
(:scalevel-x (meters -0.00066666666))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00080000004) (meters -0.00020000001))
(:timer (seconds 3))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop)
(:next-time (seconds 0.4))
(:next-launcher 135)))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 3.2)
(:x (meters -0.2) (meters 0.4))
(:y (meters -0.2) (meters 0.4))
(:scale-x (meters 0.35) (meters 0.075))
(:scale-y (meters 0.2) (meters 0.075))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters -0.002) (meters 0.004))
(:vel-y (meters 0.018666666) (meters 0.0053333333))
(:vel-z (meters -0.002) (meters 0.004))
(:scalevel-x (meters -0.00066666666))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00080000004) (meters -0.00020000001))
(:timer (seconds 3))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop)
(:next-time (seconds 0.4))
(:next-launcher 135)))
(defpart 130
:init-specs
((:texture (new 'static 'texture-id :index #x10 :page #x2)) (:num 1.0)
(:scale-x (meters 0.24000001) (meters 0.71999997))
(:rot-x (degrees 90))
(:rot-y (degrees 0) (degrees 360))
(:rot-z (degrees 0))
(:scale-y (meters 0.8) (meters 1.7600001))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 32.0 32.0)
(:scalevel-y (meters 0.053333335) (meters 0.013333334))
(:timer (seconds 0.8))
(:flags (bit2 bit3 left-multiply-quat set-conerot))
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 136)))
((:texture (new 'static 'texture-id :index #x10 :page #x2))
(:num 1.0)
(:scale-x (meters 0.24000001) (meters 0.71999997))
(:rot-x (degrees 90))
(:rot-y (degrees 0) (degrees 360))
(:rot-z (degrees 0))
(:scale-y (meters 0.8) (meters 1.7600001))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 32.0 32.0)
(:scalevel-y (meters 0.053333335) (meters 0.013333334))
(:timer (seconds 0.8))
(:flags (bit2 bit3 left-multiply-quat set-conerot))
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 136)))
(defpart 136
:init-specs ((:scalevel-y (meters 0.026666667)) (:next-time (seconds 0.067)) (:next-launcher 137)))
@@ -380,30 +395,32 @@
(defpart 138
:init-specs
((:scalevel-x (meters 0.0016666667)) (:scalevel-y (meters -0.026666667))
(:next-time (seconds 0.067))
(:next-launcher 139)))
((:scalevel-x (meters 0.0016666667))
(:scalevel-y (meters -0.026666667))
(:next-time (seconds 0.067))
(:next-launcher 139)))
(defpart 139
:init-specs ((:scalevel-x (meters 0.0033333334)) (:scalevel-y (meters -0.053333335))))
(defpart 126
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 1.0)
(:scale-x (meters 2.4) (meters 1.6))
(:rot-y (degrees 0) (degrees 360))
(:scale-y (meters 2.4) (meters 1.6))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.004) (meters 0.0037333334))
(:scalevel-y (meters 0.004) (meters 0.0037333334))
(:fade-a 0.32)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 134)))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 1.0)
(:scale-x (meters 2.4) (meters 1.6))
(:rot-y (degrees 0) (degrees 360))
(:scale-y (meters 2.4) (meters 1.6))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.004) (meters 0.0037333334))
(:scalevel-y (meters 0.004) (meters 0.0037333334))
(:fade-a 0.32)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 134)))
(defpart 134
:init-specs ((:fade-a 0.0) (:next-time (seconds 1.2)) (:next-launcher 140)))
@@ -413,107 +430,113 @@
(defpart 127
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 0.5 1.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.4) (meters 0.8))
(:scale-x (meters 0.4) (meters 0.8))
(:rot-y (degrees 0) (degrees 360))
(:scale-y (meters 0.4) (meters 0.8))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.004) (meters 0.0026666666))
(:scalevel-y (meters 0.004) (meters 0.0026666666))
(:fade-a 0.32)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 134)))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 0.5 1.0)
(:x (meters -0.4) (meters 0.8))
(:y (meters -0.4) (meters 0.8))
(:scale-x (meters 0.4) (meters 0.8))
(:rot-y (degrees 0) (degrees 360))
(:scale-y (meters 0.4) (meters 0.8))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:scalevel-x (meters 0.004) (meters 0.0026666666))
(:scalevel-y (meters 0.004) (meters 0.0026666666))
(:fade-a 0.32)
(:timer (seconds 2))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.5))
(:next-launcher 134)))
(defpart 128
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 3.2)
(:x (meters 0.96000004))
(:scale-x (meters 0.35) (meters 0.075))
(:scale-y (meters 0.2) (meters 0.075))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters 0.0026666666) (meters 0.0053333333))
(:vel-y (meters 0.016) (meters 0.0053333333))
(:scalevel-x (meters -0.00066666666))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00080000004) (meters -0.00020000001))
(:timer (seconds 3))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop)
(:next-time (seconds 0.4))
(:next-launcher 135)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 3.2)
(:x (meters 0.96000004))
(:scale-x (meters 0.35) (meters 0.075))
(:scale-y (meters 0.2) (meters 0.075))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters 0.0026666666) (meters 0.0053333333))
(:vel-y (meters 0.016) (meters 0.0053333333))
(:scalevel-x (meters -0.00066666666))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00080000004) (meters -0.00020000001))
(:timer (seconds 3))
(:flags (bit3))
(:userdata 0.0)
(:func 'check-water-level-drop)
(:next-time (seconds 0.4))
(:next-launcher 135)
(:rotate-y (degrees 0) (degrees 360))))
(defpart 135
:init-specs ((:scalevel-x (meters 0)) (:scalevel-y :copy scalevel-x)))
(defpart 125
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 8.0)
(:x (meters 0.8))
(:scale-x (meters 0.15) (meters 0.05))
(:scale-y (meters 0.15) (meters 0.05))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters 0.0026666666) (meters 0.0053333333))
(:vel-y (meters 0.0053333333) (meters 0.0053333333))
(:scalevel-x (meters -0.00033333333))
(:scalevel-y (meters -0.00033333333))
(:accel-y (meters -0.0005333334) (meters -0.00013333335))
(:timer (seconds 1.25))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 8.0)
(:x (meters 0.8))
(:scale-x (meters 0.15) (meters 0.05))
(:scale-y (meters 0.15) (meters 0.05))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters 0.0026666666) (meters 0.0053333333))
(:vel-y (meters 0.0053333333) (meters 0.0053333333))
(:scalevel-x (meters -0.00033333333))
(:scalevel-y (meters -0.00033333333))
(:accel-y (meters -0.0005333334) (meters -0.00013333335))
(:timer (seconds 1.25))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)
(:rotate-y (degrees 0) (degrees 360))))
(defpart 124
:init-specs
((:texture (new 'static 'texture-id :index #x10 :page #x2)) (:num 1.5)
(:x (meters 0.96000004) (meters 0.16000001))
(:scale-x (meters 0.32000002) (meters 0.96000004))
(:rot-x (degrees 90))
(:rot-y (degrees 90))
(:rot-z (degrees 0))
(:scale-y (meters 0.16000001) (meters 1.7600001))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 48.0 24.0)
(:vel-x (meters 0.0026666666))
(:scalevel-x (meters 0) (meters 0.0016666667))
(:rotvel-x (degrees 0.2))
(:scalevel-y (meters 0.04))
(:timer (seconds 0.8))
(:flags (bit2 bit3 left-multiply-quat set-conerot))
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 141)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x10 :page #x2))
(:num 1.5)
(:x (meters 0.96000004) (meters 0.16000001))
(:scale-x (meters 0.32000002) (meters 0.96000004))
(:rot-x (degrees 90))
(:rot-y (degrees 90))
(:rot-z (degrees 0))
(:scale-y (meters 0.16000001) (meters 1.7600001))
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 48.0 24.0)
(:vel-x (meters 0.0026666666))
(:scalevel-x (meters 0) (meters 0.0016666667))
(:rotvel-x (degrees 0.2))
(:scalevel-y (meters 0.04))
(:timer (seconds 0.8))
(:flags (bit2 bit3 left-multiply-quat set-conerot))
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 141)
(:rotate-y (degrees 0) (degrees 360))))
(defpart 141
:init-specs
((:scalevel-x (meters 0)) (:rotvel-x (degrees 0.16666667))
(:scalevel-y (meters 0.016666668))
(:next-time (seconds 0.067))
(:next-launcher 142)))
((:scalevel-x (meters 0))
(:rotvel-x (degrees 0.16666667))
(:scalevel-y (meters 0.016666668))
(:next-time (seconds 0.067))
(:next-launcher 142)))
(defpart 142
:init-specs
((:rotvel-x (degrees 0.13333334)) (:scalevel-y (meters 0))
(:fade-a -0.64)
(:next-time (seconds 0.067))
(:next-launcher 143)))
((:rotvel-x (degrees 0.13333334))
(:scalevel-y (meters 0))
(:fade-a -0.64)
(:next-time (seconds 0.067))
(:next-launcher 143)))
(defpart 143
:init-specs ((:rotvel-x (degrees 0.1)) (:scalevel-y (meters -0.016666668)) (:next-time (seconds 0.067)) (:next-launcher 144)))
@@ -523,25 +546,26 @@
(defpart 145
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 1.0)
(:scale-x (meters 0.15) (meters 0.05))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters -0.016666668) (meters 0.0016666667))
(:vel-y (meters 0.016666668))
(:vel-z (meters -0.016666668) (meters 0.0016666667))
(:scalevel-x (meters -0.00016666666))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666))
(:timer (seconds 1))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)
(:next-time (seconds 0.75))
(:next-launcher 114)))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 1.0)
(:scale-x (meters 0.15) (meters 0.05))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 40.0 24.0)
(:vel-x (meters -0.016666668) (meters 0.0016666667))
(:vel-y (meters 0.016666668))
(:vel-z (meters -0.016666668) (meters 0.0016666667))
(:scalevel-x (meters -0.00016666666))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666))
(:timer (seconds 1))
(:flags (bit2 bit3))
(:userdata 0.0)
(:func 'check-water-level-drop-and-die)
(:next-time (seconds 0.75))
(:next-launcher 114)))
(defmethod water-control-method-9 ((this water-control))
0
@@ -979,13 +1003,14 @@
(local-vars (sv-16 res-tag))
(set! (-> this attack-event)
(the-as symbol
((method-of-type res-lump get-property-struct) (-> this entity)
'attack-event
'interp
-1000000000.0
'drown
(the-as (pointer res-tag) #f)
*res-static-buf*)))
((method-of-type res-lump get-property-struct)
(-> this entity)
'attack-event
'interp
-1000000000.0
'drown
(the-as (pointer res-tag) #f)
*res-static-buf*)))
(process-drawable-from-entity! this (-> this entity))
(logclear! (-> this mask) (process-mask actor-pause))
(set! (-> this vol) (new 'process 'vol-control this))
@@ -994,13 +1019,14 @@
(set! (-> this target) (the-as handle #f))
(set! sv-16 (new 'static 'res-tag))
(let ((v1-8 (the-as (pointer float)
((method-of-type res-lump get-property-data) (-> this entity)
'water-height
'exact
-1000000000.0
(the-as pointer #f)
(& sv-16)
*res-static-buf*))))
((method-of-type res-lump get-property-data)
(-> this entity)
'water-height
'exact
-1000000000.0
(the-as pointer #f)
(& sv-16)
*res-static-buf*))))
(when v1-8
(set! (-> this water-height) (-> v1-8 0))
(set! (-> this wade-height) (-> v1-8 1))
+1 -2
View File
@@ -307,8 +307,7 @@
(set! (-> skel jgeo) ,(art-elt-index (string->symbol-format "{}-ag" art-name) joint-geom))
(set! (-> skel janim) ,(art-elt-index (string->symbol-format "{}-ag" art-name) joint-anim))
;; set lods
,@
(apply-i (lambda (x i)
,@(apply-i (lambda (x i)
`(begin
(set! (-> skel mgeo ,i) ,(art-elt-index (string->symbol-format "{}-ag" art-name) (car x)))
(set! (-> skel lod-dist ,i) ,(cadr x))))
+54 -54
View File
@@ -152,9 +152,9 @@
(set! (-> (the-as dma-packet v1-72) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-72) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s5-3
(the-as (pointer dma-tag) a3-6))))
(bucket-id debug)
s5-3
(the-as (pointer dma-tag) a3-6))))
(set! (-> arg0 xpos) (+ (-> arg0 left) (-> *DISP_LIST-bank* BORDER_WIDTH)))
(set! (-> arg0 ypos) (+ (-> arg0 top) (-> *DISP_LIST-bank* BORDER_HEIGHT)))
((-> arg0 listfunc) 3 arg0)
@@ -227,9 +227,9 @@
(set! (-> (the-as dma-packet v1-147) vif1) (new 'static 'vif-tag))
(set! (-> s4-2 base) (&+ (the-as pointer v1-147) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s5-6
(the-as (pointer dma-tag) a3-12))))))
(bucket-id debug)
s5-6
(the-as (pointer dma-tag) a3-12))))))
(none))
(deftype anim-tester-bank (basic)
@@ -555,9 +555,9 @@
(set! (-> (the-as dma-packet v1-6) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-6) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-0
(the-as (pointer dma-tag) a3-2)))))
(bucket-id debug)
gp-0
(the-as (pointer dma-tag) a3-2)))))
(defbehavior anim-tester-standard-event-handler anim-tester ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
@@ -603,9 +603,9 @@
(set! (-> (the-as dma-packet v1-8) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-8) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s4-0
(the-as (pointer dma-tag) a3-2)))))
(bucket-id debug)
s4-0
(the-as (pointer dma-tag) a3-2)))))
((= v1-0 1) (return #t))
((= v1-0 4)
(cond
@@ -642,9 +642,9 @@
(set! (-> (the-as dma-packet v1-70) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-70) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s5-2
(the-as (pointer dma-tag) a3-4)))))))
(bucket-id debug)
s5-2
(the-as (pointer dma-tag) a3-4)))))))
#f)
(defun anim-test-anim-list-handler ((arg0 int) (arg1 list-control))
@@ -672,9 +672,9 @@
(set! (-> (the-as dma-packet v1-6) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-6) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s4-0
(the-as (pointer dma-tag) a3-2)))))
(bucket-id debug)
s4-0
(the-as (pointer dma-tag) a3-2)))))
((= arg0 1) (return (not (logtest? (-> s5-0 flags) 1))))
((= arg0 4)
(cond
@@ -745,9 +745,9 @@
(set! (-> (the-as dma-packet v1-62) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-62) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s5-1
(the-as (pointer dma-tag) a3-4)))))))
(bucket-id debug)
s5-1
(the-as (pointer dma-tag) a3-4)))))))
#f)
(defun anim-test-sequence-list-handler ((arg0 int) (arg1 list-control))
@@ -776,9 +776,9 @@
(set! (-> (the-as dma-packet v1-8) vif1) (new 'static 'vif-tag))
(set! (-> s3-0 base) (&+ (the-as pointer v1-8) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s4-0
(the-as (pointer dma-tag) a3-2)))))
(bucket-id debug)
s4-0
(the-as (pointer dma-tag) a3-2)))))
((= arg0 1) (return (logtest? (-> s5-0 flags) 1)))
((= arg0 4)
(cond
@@ -842,9 +842,9 @@
(set! (-> (the-as dma-packet v1-64) vif1) (new 'static 'vif-tag))
(set! (-> s4-1 base) (&+ (the-as pointer v1-64) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s5-1
(the-as (pointer dma-tag) a3-4)))))))
(bucket-id debug)
s5-1
(the-as (pointer dma-tag) a3-4)))))))
#f)
(define anim-test-field-highlight-lw
@@ -952,9 +952,9 @@
(set! (-> (the-as dma-packet v1-29) vif1) (new 'static 'vif-tag))
(set! (-> s0-0 base) (&+ (the-as pointer v1-29) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s1-0
(the-as (pointer dma-tag) a3-4))))))
(bucket-id debug)
s1-0
(the-as (pointer dma-tag) a3-4))))))
(let* ((s0-1 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s1-1 (-> s0-1 base)))
(set! sv-192 draw-string-xy)
@@ -979,9 +979,9 @@
(set! (-> (the-as dma-packet v1-44) vif1) (new 'static 'vif-tag))
(set! (-> s0-1 base) (&+ (the-as pointer v1-44) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
s1-1
(the-as (pointer dma-tag) a3-8))))
(bucket-id debug)
s1-1
(the-as (pointer dma-tag) a3-8))))
(when (not s2-0)
(let* ((s2-2 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(s4-1 (the-as anim-test-sequence (-> s2-2 base))))
@@ -1042,9 +1042,9 @@
(set! (-> (the-as dma-packet v1-70) vif1) (new 'static 'vif-tag))
(set! (-> s2-2 base) (&+ (the-as pointer v1-70) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
(the-as pointer s4-1)
(the-as (pointer dma-tag) a3-15)))))))
(bucket-id debug)
(the-as pointer s4-1)
(the-as (pointer dma-tag) a3-15)))))))
((= arg0 1) (return #t))
((= arg0 4)
(cond
@@ -1209,9 +1209,9 @@
(set! (-> (the-as dma-packet v1-355) vif1) (new 'static 'vif-tag))
(set! (-> s3-3 base) (&+ (the-as pointer v1-355) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-2
(the-as (pointer dma-tag) a3-17))))
(bucket-id debug)
gp-2
(the-as (pointer dma-tag) a3-17))))
(cond
(s2-0 (display-list-control (-> *anim-tester* 0 pick-con)))
(else
@@ -1230,9 +1230,9 @@
(set! (-> (the-as dma-packet v1-367) vif1) (new 'static 'vif-tag))
(set! (-> s4-2 base) (&+ (the-as pointer v1-367) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-3
(the-as (pointer dma-tag) a3-21)))))))))
(bucket-id debug)
gp-3
(the-as (pointer dma-tag) a3-21)))))))))
#f)
(defbehavior anim-tester-interface anim-tester ()
@@ -1269,9 +1269,9 @@
(set! (-> (the-as dma-packet v1-20) vif1) (new 'static 'vif-tag))
(set! (-> s5-0 base) (&+ (the-as pointer v1-20) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-1
(the-as (pointer dma-tag) a3-1))))))))
(bucket-id debug)
gp-1
(the-as (pointer dma-tag) a3-1))))))))
((= v1-0 3)
(let ((gp-2 (the-as anim-test-obj (glst-find-node-by-name (-> self obj-list) (-> self current-obj)))))
(cond
@@ -1298,9 +1298,9 @@
(set! (-> (the-as dma-packet v1-36) vif1) (new 'static 'vif-tag))
(set! (-> s5-1 base) (&+ (the-as pointer v1-36) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-3
(the-as (pointer dma-tag) a3-3))))))))
(bucket-id debug)
gp-3
(the-as (pointer dma-tag) a3-3))))))))
((= v1-0 4)
(let ((v1-43 (the-as anim-test-obj (glst-find-node-by-name (-> self obj-list) (-> self current-obj)))))
(cond
@@ -1324,9 +1324,9 @@
(set! (-> (the-as dma-packet v1-51) vif1) (new 'static 'vif-tag))
(set! (-> s5-2 base) (&+ (the-as pointer v1-51) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-4
(the-as (pointer dma-tag) a3-5))))))))
(bucket-id debug)
gp-4
(the-as (pointer dma-tag) a3-5))))))))
(else
(let* ((s5-3 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(gp-5 (-> s5-3 base)))
@@ -1343,9 +1343,9 @@
(set! (-> (the-as dma-packet v1-62) vif1) (new 'static 'vif-tag))
(set! (-> s5-3 base) (&+ (the-as pointer v1-62) 16)))
(dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug)
gp-5
(the-as (pointer dma-tag) a3-7))))))))))
(bucket-id debug)
gp-5
(the-as (pointer dma-tag) a3-7))))))))))
(set! (-> self old-mode) (-> self edit-mode))
(none))
+22 -38
View File
@@ -62,40 +62,32 @@
(with-dma-buffer-add-bucket ((v1-7 (-> (current-frame) debug-buf)) bucket)
(with-cnt-vif-block (v1-7)
(dma-buffer-add-gif-tag v1-7
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 8 :prim (gif-prim tri-strip))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2 rgbaq xyzf2 rgbaq xyzf2))
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 8 :prim (gif-prim tri-strip))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2 rgbaq xyzf2 rgbaq xyzf2))
;; upper point is red
(set! (-> s5-0 vector 1 x) 255) ;; r
(set! (-> s5-0 vector 1 y) 128)
(set! (-> s5-0 vector 1 z) 128)
(set! (-> s5-0 vector 1 w) 128)
(+! (-> s5-0 vector 0 y) 160)
(dma-buffer-add-uint128 v1-7
(-> s5-0 quad 1)
(-> s5-0 quad 0))
(dma-buffer-add-uint128 v1-7 (-> s5-0 quad 1) (-> s5-0 quad 0))
;; left point is green
(+! (-> s5-0 vector 0 x) -256)
(+! (-> s5-0 vector 0 y) -160)
(set! (-> s5-0 vector 1 x) 128)
(set! (-> s5-0 vector 1 y) 255) ;; g
(dma-buffer-add-uint128 v1-7
(-> s5-0 quad 1)
(-> s5-0 quad 0))
(dma-buffer-add-uint128 v1-7 (-> s5-0 quad 1) (-> s5-0 quad 0))
;; right point is blue
(+! (-> s5-0 vector 0 x) 512)
(set! (-> s5-0 vector 1 y) 128)
(set! (-> s5-0 vector 1 z) 255)
(dma-buffer-add-uint128 v1-7
(-> s5-0 quad 1)
(-> s5-0 quad 0))
(dma-buffer-add-uint128 v1-7 (-> s5-0 quad 1) (-> s5-0 quad 0))
;; bottom point is red again
(+! (-> s5-0 vector 0 x) -256)
(+! (-> s5-0 vector 0 y) -160)
(set! (-> s5-0 vector 1 x) 255)
(set! (-> s5-0 vector 1 y) 128)
(dma-buffer-add-uint128 v1-7
(-> s5-0 quad 1)
(-> s5-0 quad 0))))))
(dma-buffer-add-uint128 v1-7 (-> s5-0 quad 1) (-> s5-0 quad 0))))))
#f)
(defun-debug internal-draw-debug-line ((bucket bucket-id) (p0 vector) (p1 vector) (first-color rgba) (mode symbol) (second-color rgba))
@@ -127,8 +119,8 @@
(with-dma-buffer-add-bucket ((v1-28 (-> (current-frame) debug-buf)) bucket)
(with-cnt-vif-block (v1-28)
(dma-buffer-add-gif-tag v1-28
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 4 :prim (gif-prim line))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2))
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 4 :prim (gif-prim line))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2))
(case mode
(('fade-depth)
(let ((f0-3 (fminmax (* (1 / #xffffff) (the float (-> s4-0 vector 0 z))) 0.2 1.0)))
@@ -155,11 +147,7 @@
(set! (-> s1-0 vector 1 w) (the-as int (-> second-color a)))))
(+! (-> s4-0 vector 0 z) -8192)
(+! (-> s4-0 vector 1 z) -8192)
(dma-buffer-add-uint128 v1-28
(-> s1-0 quad 0)
(-> s4-0 quad 0)
(-> s1-0 quad 1)
(-> s4-0 quad 1)))))))
(dma-buffer-add-uint128 v1-28 (-> s1-0 quad 0) (-> s4-0 quad 0) (-> s1-0 quad 1) (-> s4-0 quad 1)))))))
(defun-debug internal-draw-debug-text-3d ((bucket bucket-id) (str string) (location vector) (font-color-id font-color) (offset vector2h))
"Draw text at the given location (in 3D), with a 2D offset."
@@ -213,8 +201,8 @@
(with-dma-buffer-add-bucket ((v1-9 (-> (current-frame) debug-buf)) bucket)
(with-cnt-vif-block (v1-9)
(dma-buffer-add-gif-tag v1-9
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 6 :prim (gif-prim tri))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2 rgbaq xyzf2))
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 6 :prim (gif-prim tri))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2 rgbaq xyzf2))
(set! (-> s4-0 vector 0 x) (the-as int (-> color r)))
(set! (-> s4-0 vector 0 y) (the-as int (-> color g)))
(set! (-> s4-0 vector 0 z) (the-as int (-> color b)))
@@ -223,13 +211,13 @@
(set! (-> s5-0 vector 1 z) (+ (-> s5-0 vector 1 z) -8192))
(set! (-> s5-0 vector 2 z) (+ (-> s5-0 vector 2 z) -8192))
(dma-buffer-add-uint128 v1-9
(-> s4-0 quad 0)
(-> s5-0 quad 0) ;; xyz 1
(-> s4-0 quad 0)
(-> s5-0 quad 1) ;; xyz 2
(-> s4-0 quad 0)
(-> s5-0 quad 2) ;; xyz 3
)))))
(-> s4-0 quad 0)
(-> s5-0 quad 0) ;; xyz 1
(-> s4-0 quad 0)
(-> s5-0 quad 1) ;; xyz 2
(-> s4-0 quad 0)
(-> s5-0 quad 2) ;; xyz 3
)))))
#f)
;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -334,14 +322,10 @@
(set! (-> v1-7 z) #x7fffff)
(with-cnt-vif-block (s4-0)
(dma-buffer-add-gif-tag s4-0
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 4 :prim (gif-prim line))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2))
(dma-buffer-add-uint128 s4-0
(-> arg4 quad)
(-> s2-0 quad))
(dma-buffer-add-uint128 s4-0
(-> arg4 quad)
(-> v1-7 quad)))))
(new 'static 'gif-tag64 :nloop 1 :eop 1 :pre 1 :nreg 4 :prim (gif-prim line))
(gs-reg-list rgbaq xyzf2 rgbaq xyzf2))
(dma-buffer-add-uint128 s4-0 (-> arg4 quad) (-> s2-0 quad))
(dma-buffer-add-uint128 s4-0 (-> arg4 quad) (-> v1-7 quad)))))
#f)
(defun-debug add-debug-box ((arg0 symbol) (arg1 bucket-id) (arg2 vector) (arg3 vector) (arg4 rgba))
+24 -20
View File
@@ -223,12 +223,13 @@
(else (format (clear (-> arg0 display-str)) "~D" (-> arg0 fval))))
arg0)
(defun debug-menu-item-var-make-int ((item debug-menu-item-var) (callback (function int debug-menu-msg int int int))
(inc int)
(has-range symbol)
(range-min int)
(range-max int)
(hex symbol))
(defun debug-menu-item-var-make-int ((item debug-menu-item-var)
(callback (function int debug-menu-msg int int int))
(inc int)
(has-range symbol)
(range-min int)
(range-max int)
(hex symbol))
"Set up the given item as an integer variable"
(set! (-> item float-p) #f)
(set! (-> item range-p) has-range)
@@ -246,12 +247,13 @@
(debug-menu-item-var-update-display-str item)
item)
(defun debug-menu-item-var-make-float ((item debug-menu-item-var) (callback (function int debug-menu-msg float float float))
(inc float)
(has-range symbol)
(range-min float)
(range-max float)
(precision int))
(defun debug-menu-item-var-make-float ((item debug-menu-item-var)
(callback (function int debug-menu-msg float float float))
(inc float)
(has-range symbol)
(range-min float)
(range-max float)
(precision int))
"Set up the given item as a float variable"
(set! (-> item float-p) #t)
(set! (-> item range-p) has-range)
@@ -835,10 +837,11 @@
(if (-> arg0 factivate-func)
(set! (-> arg0 fval)
(the-as float
((the-as (function int int int int int) (-> arg0 factivate-func)) (-> arg0 id)
4
(the-as int (-> arg0 fundo-val))
(the-as int (-> arg0 fval))))))))
((the-as (function int int int int int) (-> arg0 factivate-func))
(-> arg0 id)
4
(the-as int (-> arg0 fundo-val))
(the-as int (-> arg0 fval))))))))
(debug-menu-item-var-update-display-str arg0))
(let ((a0-5 (-> arg0 parent context)))
(debug-menu-context-send-msg a0-5 (debug-menu-msg update) (debug-menu-dest open-menus))))
@@ -912,10 +915,11 @@
(if (-> arg0 factivate-func)
(set! (-> arg0 fval)
(the-as float
((the-as (function int int int int int) (-> arg0 factivate-func)) (-> arg0 id)
3
(the-as int (-> arg0 fval))
(the-as int (-> arg0 fval))))))))
((the-as (function int int int int int) (-> arg0 factivate-func))
(-> arg0 id)
3
(the-as int (-> arg0 fval))
(the-as int (-> arg0 fval))))))))
(debug-menu-item-var-update-display-str arg0)
(set! (-> arg0 refresh-ctr) (-> arg0 refresh-delay))))
arg0)
+23 -23
View File
@@ -56,21 +56,21 @@
(when (nonzero? (-> this ctrl))
(set! *pc-perf-stat-counter* (get-cpu-clock)))
#|
(let ((v1-0 (-> this ctrl)))
(+! (-> this count) 1)
(b! (zero? v1-0) cfg-2 :delay (nop!))
(.mtc0 Perf 0)
(let ((v1-0 (-> this ctrl)))
(+! (-> this count) 1)
(b! (zero? v1-0) cfg-2 :delay (nop!))
(.mtc0 Perf 0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 0)
(.mtpc pcr1 0)
(.sync.l)
(.sync.p)
(.mtc0 Perf v1-0)
)
(.sync.l)
(.sync.p)
(.mtpc pcr0 0)
(.mtpc pcr1 0)
(.sync.l)
(.sync.p)
(.mtc0 Perf v1-0)
)
(.sync.l)
(.sync.p)
(label cfg-2)
(label cfg-2)
|#
0
(none))
@@ -81,16 +81,16 @@
(+! (-> this accum0) (- (get-cpu-clock) *pc-perf-stat-counter*))
(set! (-> this accum1) 0))
#|
(local-vars (v1-1 int) (v1-3 int))
(b! (zero? (-> this ctrl)) cfg-2 :delay (nop!))
(.mtc0 Perf 0)
(.sync.l)
(.sync.p)
(.mfpc v1-1 pcr0)
(+! (-> this accum0) v1-1)
(.mfpc v1-3 pcr1)
(+! (-> this accum1) v1-3)
(label cfg-2)
(local-vars (v1-1 int) (v1-3 int))
(b! (zero? (-> this ctrl)) cfg-2 :delay (nop!))
(.mtc0 Perf 0)
(.sync.l)
(.sync.p)
(.mfpc v1-1 pcr0)
(+! (-> this accum0) v1-1)
(.mfpc v1-3 pcr1)
(+! (-> this accum1) v1-3)
(label cfg-2)
|#
0
(none))
+6 -11
View File
@@ -100,8 +100,7 @@
(with-gensyms (dma-buf)
`(let* ((,dma-buf ,buf)
(,pkt (the-as ,dma-type (-> ,dma-buf base))))
,@
body
,@body
(set! (-> ,dma-buf base) (&+ (the-as pointer ,pkt) (size-of ,dma-type))))))
(defmacro dma-buffer-add-base-data (buf data-type forms)
@@ -110,8 +109,7 @@
(with-gensyms (dma-buf ptr)
`(let* ((,dma-buf ,buf)
(,ptr (the-as (pointer ,data-type) (-> ,dma-buf base))))
,@
(apply-i (lambda (x i) `(set! (-> ,ptr ,i) (the-as ,data-type ,x))) forms)
,@(apply-i (lambda (x i) `(set! (-> ,ptr ,i) (the-as ,data-type ,x))) forms)
(set! (-> ,dma-buf base) (&+ (the-as pointer ,ptr) (* ,(length forms) (size-of ,data-type)))))))
(defmacro dma-buffer-add-cnt-vif2 (buf qwc vif0 vif1)
@@ -213,8 +211,7 @@
;; setup the dmatag for PATH2 transfer, qwc is 0 (patched later)
(dma-buffer-add-cnt-vif2 ,buf 0 (new 'static 'vif-tag :cmd (vif-cmd nop)) (new 'static 'vif-tag :cmd (vif-cmd direct)))
;; things with this buffer!
,@
body
,@body
;; patch qwc! just do the difference between the current ptr and the old one and turn it into qwords.
;; we take one qword out because it's the initial dmatag which isnt part of the count.
;; this rounds *down*, so make sure to fill the buffer in 128-bit boundaries.
@@ -241,8 +238,7 @@
;; setup the dmatag for PATH2 transfer, qwc is 0 (patched later)
(dma-buffer-add-cnt-vif2 ,buf 0 (new 'static 'vif-tag :cmd (vif-cmd nop)) (new 'static 'vif-tag :cmd (vif-cmd direct)))
;; things with this buffer!
,@
body
,@body
;; we make the dmatag now! its at the start.
(let ((,buf-qwc (/ (+ (- -16 (the-as int ,buf-start)) (the-as int (-> ,buf base))) 16)))
(set! (-> ,buf-start dma) (new 'static 'dma-tag :id (dma-tag-id cnt) :qwc ,buf-qwc))
@@ -257,8 +253,7 @@
(bucket-id (third bindings)))
(with-gensyms (buf-start bucket-edge pkt)
`(let ((,buf-start (-> ,buf base)))
,@
body
,@body
;; we end the chain with a next. The bucket system will patch the next chain to this,
;; and then patch all the buckets togehter before sending the DMA.
(let ((,bucket-edge (the (pointer dma-tag) (-> ,buf base))))
@@ -277,4 +272,4 @@
"Bind a dma-buffer to a variable and use it on a block to allow adding things to a new bucket.
usage: (with-dma-buffer-add-bucket ((buffer-name buffer) bucket-id) &rest body)
example: (with-dma-buffer-add-bucket ((buf (-> (current-frame) debug-buf)) (bucket-id debug-no-zbuf)) ...)"
`(let ((,(caar bindings) ,(cadar bindings))) (with-dma-bucket (,(caar bindings) ,bucket-group ,(cadr bindings)) ,@ body)))
`(let ((,(caar bindings) ,(cadar bindings))) (with-dma-bucket (,(caar bindings) ,bucket-group ,(cadr bindings)) ,@body)))
+19 -16
View File
@@ -361,15 +361,16 @@
"Wait for chcr str to go to 0, indicating DMA
is complete."
(declare (inline))
(#cond (INSTANT_DMA
;; nothing to do.
0)
(#t
(while (nonzero? (-> bank chcr str))
;; they had a precise number of nops here.
;; it turns out that spamming the DMA registers is not a good idea
;; because it uses the main bus that the DMA is possibly also trying to use.
(nop!))))
(#cond
(INSTANT_DMA
;; nothing to do.
0)
(#t
(while (nonzero? (-> bank chcr str))
;; they had a precise number of nops here.
;; it turns out that spamming the DMA registers is not a good idea
;; because it uses the main bus that the DMA is possibly also trying to use.
(nop!))))
(none))
(defun dma-send-no-scratch ((bank dma-bank) (madr uint32) (qwc uint32))
@@ -395,14 +396,16 @@
This doesn't seem like a very accurate way
to find out how long it takes...
This function is unused."
(#cond (INSTANT_DMA (set! (-> count) INSTANT_DMA_COUNT) 0)
(#t
(when (nonzero? (-> bank chcr str))
(let ((x (-> count))) (while (nonzero? (-> bank chcr str)) (+! x 1) (set! (-> count) x))))
0)))
(#cond
(INSTANT_DMA (set! (-> count) INSTANT_DMA_COUNT) 0)
(#t
(when (nonzero? (-> bank chcr str))
(let ((x (-> count))) (while (nonzero? (-> bank chcr str)) (+! x 1) (set! (-> count) x))))
0)))
(defun dma-count-until-done ((bank dma-bank) (count (pointer int32)))
"Like the previous one, kinda.
This function is unused."
(#cond (INSTANT_DMA (set! (-> count) INSTANT_DMA_COUNT) 0)
(#t (while (nonzero? (-> bank chcr str)) (set! (-> count) (+ 1 (-> count)))))))
(#cond
(INSTANT_DMA (set! (-> count) INSTANT_DMA_COUNT) 0)
(#t (while (nonzero? (-> bank chcr str)) (set! (-> count) (+ 1 (-> count)))))))
+122 -111
View File
@@ -116,13 +116,13 @@
;; todo
#t
#|
(let* ((addr (scratchpad-ptr int8 :offset (+ #x3b80 (/ id 8)))) ;; address of the vis data
(vis-byte (-> addr 0)) ;; vis byte
(shift-amount (+ 56 (logand id 7)))
(shifted (shl vis-byte shift-amount))
)
(< shifted 0)
)
(let* ((addr (scratchpad-ptr int8 :offset (+ #x3b80 (/ id 8)))) ;; address of the vis data
(vis-byte (-> addr 0)) ;; vis byte
(shift-amount (+ 56 (logand id 7)))
(shifted (shl vis-byte shift-amount))
)
(< shifted 0)
)
|#
)
@@ -587,8 +587,9 @@
(while (and (< lod-to-use (-> arg1 lod-set max-lod)) (< (-> arg1 lod-set lod lod-to-use dist) cam-dist))
(+! lod-to-use 1)))))
;; og:preserve-this lod hacks!
(with-pc (if (not (-> *pc-settings* ps2-lod-dist?))
(set! lod-to-use (minmax (-> *pc-settings* lod-force-actor) 0 (-> arg1 lod-set max-lod)))))
(with-pc
(if (not (-> *pc-settings* ps2-lod-dist?))
(set! lod-to-use (minmax (-> *pc-settings* lod-force-actor) 0 (-> arg1 lod-set max-lod)))))
(if (#if (not PC_PORT)
(and (< (-> arg1 lod-set lod lod-to-use dist) cam-dist) (< (-> arg1 force-lod) 0))
(and (-> *pc-settings* ps2-lod-dist?) (< (-> arg1 lod-set lod lod-to-use dist) cam-dist) (< (-> arg1 force-lod) 0)))
@@ -754,70 +755,71 @@
;; that won't be used. (though it's pretty basic, it doesn't actually track per-texture usage)
;; level tfrag's upload if the level is running.
(with-profiler "texture-upload"
(when (logtest? *texture-enable-user* 1)
(dotimes (gp-1 (-> *level* length))
(let ((a1-2 (-> *level* level gp-1))) (if (= (-> a1-2 status) 'active) (add-tex-to-dma! *texture-pool* a1-2 0)))))
;; level pris's upload if the level is running.
(when (logtest? *texture-enable-user* 2)
(dotimes (gp-2 (-> *level* length))
(let ((a1-3 (-> *level* level gp-2))) (if (= (-> a1-3 status) 'active) (add-tex-to-dma! *texture-pool* a1-3 1)))))
;; level shrubs upload if the level is loading.
(when (logtest? *texture-enable-user* 4)
(dotimes (gp-3 (-> *level* length))
(let ((a1-4 (-> *level* level gp-3))) (if (= (-> a1-4 status) 'active) (add-tex-to-dma! *texture-pool* a1-4 2)))))
;; alpha and common.
(when (logtest? *texture-enable-user* 8)
(let ((uploaded-common #f))
(dotimes (gp-4 (-> *level* length))
(let ((a1-5 (-> *level* level gp-4)))
(when (= (-> a1-5 status) 'active)
(add-tex-to-dma! *texture-pool* a1-5 3)
(when (not uploaded-common)
(upload-one-common! *texture-pool* (-> *level* level0))
(set! uploaded-common #t)))))
(when (not uploaded-common)
(upload-one-common! *texture-pool* (-> *level* level0))
#t)))
;; water.
(when (logtest? *texture-enable-user* 16)
(dotimes (gp-5 (-> *level* length))
(let ((a1-8 (-> *level* level gp-5))) (if (= (-> a1-8 status) 'active) (add-tex-to-dma! *texture-pool* a1-8 4))))))
(when (logtest? *texture-enable-user* 1)
(dotimes (gp-1 (-> *level* length))
(let ((a1-2 (-> *level* level gp-1))) (if (= (-> a1-2 status) 'active) (add-tex-to-dma! *texture-pool* a1-2 0)))))
;; level pris's upload if the level is running.
(when (logtest? *texture-enable-user* 2)
(dotimes (gp-2 (-> *level* length))
(let ((a1-3 (-> *level* level gp-2))) (if (= (-> a1-3 status) 'active) (add-tex-to-dma! *texture-pool* a1-3 1)))))
;; level shrubs upload if the level is loading.
(when (logtest? *texture-enable-user* 4)
(dotimes (gp-3 (-> *level* length))
(let ((a1-4 (-> *level* level gp-3))) (if (= (-> a1-4 status) 'active) (add-tex-to-dma! *texture-pool* a1-4 2)))))
;; alpha and common.
(when (logtest? *texture-enable-user* 8)
(let ((uploaded-common #f))
(dotimes (gp-4 (-> *level* length))
(let ((a1-5 (-> *level* level gp-4)))
(when (= (-> a1-5 status) 'active)
(add-tex-to-dma! *texture-pool* a1-5 3)
(when (not uploaded-common)
(upload-one-common! *texture-pool* (-> *level* level0))
(set! uploaded-common #t)))))
(when (not uploaded-common)
(upload-one-common! *texture-pool* (-> *level* level0))
#t)))
;; water.
(when (logtest? *texture-enable-user* 16)
(dotimes (gp-5 (-> *level* length))
(let ((a1-8 (-> *level* level gp-5))) (if (= (-> a1-8 status) 'active) (add-tex-to-dma! *texture-pool* a1-8 4))))))
;;;;;;;;;;;;;
;; sky
;;;;;;;;;;;;;
(with-profiler "sky"
(when (zero? (logand *vu1-enable-user* (vu1-renderer-mask sky)))
;; the sky is disabled. Just draw a solid gradient on the whole screen.
(with-dma-buffer-add-bucket ((dma-buf (-> (current-frame) global-buf)) (bucket-id sky-draw))
(dma-buffer-add-gs-set dma-buf
(zbuf-1 (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24)))
(test-1 (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)))
(screen-gradient dma-buf
(-> *display* bg-clear-color 0)
(-> *display* bg-clear-color 1)
(-> *display* bg-clear-color 2)
(-> *display* bg-clear-color 3))))
(when (logtest? *vu1-enable-user* (vu1-renderer-mask sky))
;; check if we want the sky, and if we actually have textures ready.
;; we generate sky textures on the previous frame and they sit in vram (8160) until the next frame.
;; on the first frame after we request sky, we draw the textures, but they aren't ready until the next frame.
(cond
((and (-> *time-of-day-context* sky) *sky-drawn*) (render-sky-tng *time-of-day-context*))
(else
;; todo
(with-dma-buffer-add-bucket ((dma-buf (-> (current-frame) global-buf)) (bucket-id sky-draw))
(dma-buffer-add-gs-set dma-buf
(zbuf-1 (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24)))
(test-1 (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)))
(screen-gradient dma-buf
(-> *time-of-day-context* erase-color)
(-> *time-of-day-context* erase-color)
(-> *time-of-day-context* erase-color)
(-> *time-of-day-context* erase-color)))))))
(when (zero? (logand *vu1-enable-user* (vu1-renderer-mask sky)))
;; the sky is disabled. Just draw a solid gradient on the whole screen.
(with-dma-buffer-add-bucket ((dma-buf (-> (current-frame) global-buf)) (bucket-id sky-draw))
(dma-buffer-add-gs-set dma-buf
(zbuf-1 (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24)))
(test-1 (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)))
(screen-gradient dma-buf
(-> *display* bg-clear-color 0)
(-> *display* bg-clear-color 1)
(-> *display* bg-clear-color 2)
(-> *display* bg-clear-color 3))))
(when (logtest? *vu1-enable-user* (vu1-renderer-mask sky))
;; check if we want the sky, and if we actually have textures ready.
;; we generate sky textures on the previous frame and they sit in vram (8160) until the next frame.
;; on the first frame after we request sky, we draw the textures, but they aren't ready until the next frame.
(cond
((and (-> *time-of-day-context* sky) *sky-drawn*) (render-sky-tng *time-of-day-context*))
(else
;; todo
(with-dma-buffer-add-bucket ((dma-buf (-> (current-frame) global-buf)) (bucket-id sky-draw))
(dma-buffer-add-gs-set dma-buf
(zbuf-1 (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24)))
(test-1 (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)))
(alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)))
(screen-gradient dma-buf
(-> *time-of-day-context* erase-color)
(-> *time-of-day-context* erase-color)
(-> *time-of-day-context* erase-color)
(-> *time-of-day-context* erase-color)))))))
;; update mood lighting, draw sky textures.
(with-profiler "time-of-day" (update-time-of-day *time-of-day-context*))
(with-profiler "time-of-day"
(update-time-of-day *time-of-day-context*))
;; reset the closest object and desired texture masks for all levels.
; (dotimes (v1-150 (-> *level* length))
; (let ((a0-59 (-> *level* level v1-150)))
@@ -832,64 +834,73 @@
(add-ee-profile-frame 'draw :r #x40 :b #x40 :a #x80)
;;;;;;; OCEAN
(with-profiler "ocean"
(update-ocean) ;; ocean map update
(draw-ocean) ;; far, mid, near, transition, and texture.
)
(update-ocean) ;; ocean map update
(draw-ocean) ;; far, mid, near, transition, and texture.
)
(add-ee-profile-frame 'draw :b #xff :a #x80)
;; reset MERC
(with-profiler "merc"
(set! (-> *merc-global-array* count) (the-as uint 0))
(set! *merc-globals* (the-as merc-globals (-> *merc-global-array* globals)))
(set! (-> *shadow-queue* cur-run) (the-as uint 0)))
(set! (-> *merc-global-array* count) (the-as uint 0))
(set! *merc-globals* (the-as merc-globals (-> *merc-global-array* globals)))
(set! (-> *shadow-queue* cur-run) (the-as uint 0)))
;; draw the background!
(with-profiler "background"
(init-background)
(execute-connections *background-draw-engine* (-> *display* frames (-> *display* on-screen) frame))
;; finish bg (most of the work is here)
(reset! (-> *perf-stats* data 3))
(finish-background)
(read! (-> *perf-stats* data 3))
(update-wait-stats (-> *perf-stats* data 3) (-> *background-work* wait-to-vu0) (the-as uint 0) (the-as uint 0)))
(init-background)
(execute-connections *background-draw-engine* (-> *display* frames (-> *display* on-screen) frame))
;; finish bg (most of the work is here)
(reset! (-> *perf-stats* data 3))
(finish-background)
(read! (-> *perf-stats* data 3))
(update-wait-stats (-> *perf-stats* data 3) (-> *background-work* wait-to-vu0) (the-as uint 0) (the-as uint 0)))
;; perf stats are printed and restarted here, for some reason.
(with-profiler "stats"
(end-perf-stat-collection)
(when (not (paused?))
(when *stats-poly*
(dotimes (gp-8 (-> *level* length))
(let ((v1-193 (-> *level* level gp-8))) (if (= (-> v1-193 status) 'active) (collect-stats (-> v1-193 bsp)))))
(print-terrain-stats))
(if *display-perf-stats* (print-perf-stats)))
(start-perf-stat-collection))
(end-perf-stat-collection)
(when (not (paused?))
(when *stats-poly*
(dotimes (gp-8 (-> *level* length))
(let ((v1-193 (-> *level* level gp-8))) (if (= (-> v1-193 status) 'active) (collect-stats (-> v1-193 bsp)))))
(print-terrain-stats))
(if *display-perf-stats* (print-perf-stats)))
(start-perf-stat-collection))
;; draw the foreground engines.
(with-profiler "foreground-engines"
(foreground-engine-execute (-> *level* level-default foreground-draw-engine 0)
(-> *display* frames (-> *display* on-screen) frame)
2
0)
(foreground-engine-execute (-> *level* level-default foreground-draw-engine 1)
(-> *display* frames (-> *display* on-screen) frame)
2
1))
(foreground-engine-execute (-> *level* level-default foreground-draw-engine 0)
(-> *display* frames (-> *display* on-screen) frame)
2
0)
(foreground-engine-execute (-> *level* level-default foreground-draw-engine 1)
(-> *display* frames (-> *display* on-screen) frame)
2
1))
;; handle extra processing for foreground
(let ((gp-9 (-> *display* frames (-> *display* on-screen) frame global-buf)))
(with-profiler "bones" (bones-mtx-calc-execute)) ;; skinning matrix calculation
(with-profiler "gmerc" (generic-merc-execute-all gp-9)) ;; mercneric conversion.
(with-profiler "shadow" (shadow-execute-all gp-9 *shadow-queue*))
(with-profiler "eyes" (update-eyes)))
(with-profiler "bones"
(bones-mtx-calc-execute)) ;; skinning matrix calculation
(with-profiler "gmerc"
(generic-merc-execute-all gp-9)) ;; mercneric conversion.
(with-profiler "shadow"
(shadow-execute-all gp-9 *shadow-queue*))
(with-profiler "eyes"
(update-eyes)))
;; sprite draw
(when (logtest? (vu1-renderer-mask sprite) *vu1-enable-user*)
(with-profiler "sprite" (swap-fake-shadow-buffers) (sprite-draw *display*)))
(with-profiler "sprite"
(swap-fake-shadow-buffers)
(sprite-draw *display*)))
;; debug drawing
(with-profiler "debug-draw"
(when *debug-segment*
(debug-draw-actors *level* *display-actor-marks*)
(collide-shape-draw-debug-marks))
(render-boundaries))
(when *debug-segment*
(debug-draw-actors *level* *display-actor-marks*)
(collide-shape-draw-debug-marks))
(render-boundaries))
;; for some reason we clear the touching list here...
(with-profiler "touching" (send-events-for-touching-shapes *touching-list*) (free-all-prim-nodes *touching-list*))
(with-profiler "touching"
(send-events-for-touching-shapes *touching-list*)
(free-all-prim-nodes *touching-list*))
(add-ee-profile-frame 'draw :r #x40 :b #x40 :a #x80)
;; spawn actors, compact heaps, etc.
(with-profiler "actors-update" (actors-update *level*))
(with-profiler "actors-update"
(actors-update *level*))
(add-ee-profile-frame 'draw :r #x80 :a #x80)
(when (not (paused?))
(if *stats-collide* (print-collide-stats)))
@@ -978,9 +989,9 @@
(#when PC_PORT
(if (< float-time-ratio 1.3) (set! time-ratio 1.0))
#|
(if (> time-ratio 1.)
(format #t "LAG ~f frames~%" (- time-ratio 1.))
)
(if (> time-ratio 1.)
(format #t "LAG ~f frames~%" (- time-ratio 1.))
)
|#
))
;; inform display system of our speed. This will adjust the scaling used in all physics calculations
+24 -21
View File
@@ -88,13 +88,14 @@
(cond
((can-hint-be-played? (the-as text-id gp-0) arg0 arg2)
(set! sv-16 (new 'static 'res-tag))
(let ((s4-1 ((method-of-type res-lump get-property-data) arg0
'cmds
'exact
-1000000000.0
(the-as pointer #f)
(& sv-16)
*res-static-buf*)))
(let ((s4-1 ((method-of-type res-lump get-property-data)
arg0
'cmds
'exact
-1000000000.0
(the-as pointer #f)
(& sv-16)
*res-static-buf*)))
(when s4-1
(while (and (>= s5-0 0) (< s5-0 (the-as int (-> sv-16 elt-count))))
(set! s5-0 (level-hint-process-cmd (the-as (pointer int32) s4-1) s5-0 (the-as int (-> sv-16 elt-count))))
@@ -167,13 +168,14 @@
(set! (-> self voicebox) (the-as handle #f))
(let ((s5-1 (res-lump-struct arg2 'play-mode structure))
(a0-6 (the-as string
((method-of-type res-lump get-property-struct) arg2
'sound-name
'interp
-1000000000.0
(-> self sound-to-play)
(the-as (pointer res-tag) #f)
*res-static-buf*))))
((method-of-type res-lump get-property-struct)
arg2
'sound-name
'interp
-1000000000.0
(-> self sound-to-play)
(the-as (pointer res-tag) #f)
*res-static-buf*))))
(if (and (not s5-1) a0-6)
(set! s5-1
(if (or (and (= (-> a0-6 data 0) 115) (= (-> a0-6 data 1) 97)) (and (= (-> a0-6 data 0) 97) (= (-> a0-6 data 1) 115)))
@@ -440,13 +442,14 @@
(logior! (-> s4-2 mask) (sound-mask bend))
(set! (-> s4-2 bend) (the int (* 327.66998 (rand-vu-float-range -100.0 100.0))))
(set! sv-112 (new 'static 'res-tag))
(let ((a1-7 ((method-of-type res-lump get-property-data) s5-0
'effect-param
'exact
f30-0
(the-as pointer #f)
(& sv-112)
*res-static-buf*)))
(let ((a1-7 ((method-of-type res-lump get-property-data)
s5-0
'effect-param
'exact
f30-0
(the-as pointer #f)
(& sv-112)
*res-static-buf*)))
(if a1-7 (effect-param->sound-spec s4-2 (the-as (pointer float) a1-7) (the-as int (-> sv-112 elt-count)))))
(when *debug-effect-control*
(format #t "(~5D) effect sound ~A ~S " (current-time) (res-lump-struct s5-0 'name structure) sv-16)
+17 -17
View File
@@ -736,21 +736,21 @@
(none))
*null-kernel-context*))
#|
This is where the "actor graph" is drawn, but the plot functions don't do anything.
(when (and *display-actor-graph* (not (or (= *master-mode* 'menu) (= *master-mode* 'progress))))
(if (not (paused?))
(float-save-timeplot (if (< (the int (the float (mod (-> *display* base-frame-counter) 600))) 300)
1.0
0.0
)
)
)
(camera-plot-float-func 0.0 399.0 -81920.0 81920.0 float-lookup-redline (new 'static 'vector4w :x #xff :w #x80))
(camera-plot-float-func 0.0 399.0 -81920.0 81920.0 float-lookup-blueline (new 'static 'vector4w :z #xff :w #x80))
(camera-plot-float-func 0.0 399.0 -81920.0 81920.0 float-lookup-greenline (new 'static 'vector4w :y #xff :w #x80))
(camera-plot-float-func 0.0 399.0 0.0 409600.0 float-lookup-yellowline (new 'static 'vector4w :x #xff :y #xff :w #x80))
(camera-plot-float-func 0.0 399.0 0.0 1.0 float-lookup-timeplot (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80))
)
This is where the "actor graph" is drawn, but the plot functions don't do anything.
(when (and *display-actor-graph* (not (or (= *master-mode* 'menu) (= *master-mode* 'progress))))
(if (not (paused?))
(float-save-timeplot (if (< (the int (the float (mod (-> *display* base-frame-counter) 600))) 300)
1.0
0.0
)
)
)
(camera-plot-float-func 0.0 399.0 -81920.0 81920.0 float-lookup-redline (new 'static 'vector4w :x #xff :w #x80))
(camera-plot-float-func 0.0 399.0 -81920.0 81920.0 float-lookup-blueline (new 'static 'vector4w :z #xff :w #x80))
(camera-plot-float-func 0.0 399.0 -81920.0 81920.0 float-lookup-greenline (new 'static 'vector4w :y #xff :w #x80))
(camera-plot-float-func 0.0 399.0 0.0 409600.0 float-lookup-yellowline (new 'static 'vector4w :x #xff :y #xff :w #x80))
(camera-plot-float-func 0.0 399.0 0.0 1.0 float-lookup-timeplot (new 'static 'vector4w :x #x80 :y #x80 :z #x80 :w #x80))
)
|#
(when *display-split-boxes*
(dotimes (s5-4 (-> this length))
@@ -801,7 +801,7 @@
(defmacro birth-log (str &rest args)
"Debug print to stdout of runtime for debugging actor inits."
`(format 0 ,(string-append "[BIRTH] " str) ,@ args)
`(format 0 ,(string-append "[BIRTH] " str) ,@args)
;;`(empty)
)
@@ -823,7 +823,7 @@
(define-extern birth-viewer (function process entity-actor object))
(defmacro this-etype? (&rest types)
`(or ,@ (apply (lambda (x) `(begin (define-extern ,x type) (type-type? (-> this etype) ,x))) types)))
`(or ,@(apply (lambda (x) `(begin (define-extern ,x type) (type-type? (-> this etype) ,x))) types)))
(defmethod birth! ((this entity-actor))
"Create a process for this entity and start it."
+7 -7
View File
@@ -479,13 +479,13 @@ This is updated from the entity system used in Crash 2, which had most of these
(set! (-> arg0 inlined?) 1)
(add-data! this arg0 (& arg1)) ;; note, only 32-bits are spilled to the stack here.
#|
(local-vars (sv-16 object))
(set! sv-16 arg1)
(let* ((v1-0 arg0)
(a1-4 (copy-and-set-bf v1-0 :inlined? 1))
)
(add-data! this a1-4 (& sv-16))
)
(local-vars (sv-16 object))
(set! sv-16 arg1)
(let* ((v1-0 arg0)
(a1-4 (copy-and-set-bf v1-0 :inlined? 1))
)
(add-data! this a1-4 (& sv-16))
)
|#
)
+18 -16
View File
@@ -174,14 +174,15 @@
(set! sv-192 (the-as symbol #f))
(set! sv-208 (the-as symbol #f))
(let ((t3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data s5-0))))
((the-as (function object object object object object object object object none) s2-1) s1-0
s0-0
(the-as sparticle-launch-group s3-0)
sv-160
sv-176
sv-192
sv-208
t3-0)))
((the-as (function object object object object object object object object none) s2-1)
s1-0
s0-0
(the-as sparticle-launch-group s3-0)
sv-160
sv-176
sv-192
sv-208
t3-0)))
(-> s4-1 ppointer)))))
((= arg0 'camera-shake) (activate! *camera-smush-control* 819.2 37 600 1.0 0.995))
((zero? s3-0) (effect-control-method-12 this arg0 arg1 s5-0 (-> this res) (string->sound-name (symbol->string arg0))))
@@ -206,14 +207,15 @@
(set! sv-256 (the-as symbol #f))
(set! sv-272 (the-as symbol #f))
(let ((t3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> this process node-list data s5-0))))
((the-as (function object object object object object object object object none) s2-3) s1-2
s0-2
s3-0
sv-224
sv-240
sv-256
sv-272
t3-1)))
((the-as (function object object object object object object object object none) s2-3)
s1-2
s0-2
s3-0
sv-224
sv-240
sv-256
sv-272
t3-1)))
(-> s4-3 ppointer))))
((= (-> (the-as basic s3-0) type) sound-spec)
(sound-play-by-spec (the-as sound-spec s3-0)
+2 -3
View File
@@ -78,9 +78,8 @@
(dolist (it args)
(when (not (member (caar it) mask-actual))
(cons! mask-actual (caar it))))
`(let ((atk (new 'static 'attack-info :mask (attack-mask ,@ mask-actual))))
,@
(apply (lambda (x)
`(let ((atk (new 'static 'attack-info :mask (attack-mask ,@mask-actual))))
,@(apply (lambda (x)
(if (eq? (car x) 'vector) `(vector-copy! (-> atk ,(car x)) ,(cadr x)) `(set! (-> atk ,(car x)) ,(cadr x))))
args)
atk)))
+24 -20
View File
@@ -209,9 +209,10 @@
(format #t "~%")))
(when detail
(case (-> tag elt-type)
(((game-save-elt money-per-level) (game-save-elt deaths-per-level)
;; added in pc port
(game-save-elt level-open-list))
(((game-save-elt money-per-level)
(game-save-elt deaths-per-level)
;; added in pc port
(game-save-elt level-open-list))
(dotimes (prog-lev-idx (-> tag elt-count))
(let ((lev-name (progress-level-index->string prog-lev-idx)))
(if lev-name
@@ -268,10 +269,10 @@
(dotimes (i (* 8 (-> tag elt-count)))
(awhen (text-id->string (the text-id i))
(unless (string= it "*unknown*")
(format #t
" ~-32S: ~A~%"
it
(logtest? (-> (the-as (pointer uint8) (&+ (the-as pointer tag) 16)) (/ i 8)) (ash 1 (mod i 8))))))))
(format #t
" ~-32S: ~A~%"
it
(logtest? (-> (the-as (pointer uint8) (&+ (the-as pointer tag) 16)) (/ i 8)) (ash 1 (mod i 8))))))))
(((game-save-elt task-list) (game-save-elt perm-list))
(dotimes (i (-> tag elt-count))
(let ((perm (the-as entity-perm (&+ (the-as pointer tag) 16 (* i 16)))))
@@ -784,15 +785,16 @@
(defpart 2662
:init-specs
((:texture (new 'static 'texture-id :index #x6b :page #x1cf)) (:num 1.0)
(:scale-x (meters 1.5))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (bit2 bit9 bit13))))
((:texture (new 'static 'texture-id :index #x6b :page #x1cf))
(:num 1.0)
(:scale-x (meters 1.5))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:timer (seconds 0.017))
(:flags (bit2 bit9 bit13))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; auto-save process
@@ -863,9 +865,10 @@
(let ((v1-23 gp-1)) (set! (-> v1-23 scale) 0.7))
(let ((v1-24 gp-1)) (set! (-> v1-24 height) (the float 40)))
(let ((s5-2 print-game-text))
((the-as (function object string object none) format) (clear *temp-string*)
(lookup-text! *common-text* (text-id memcard-do-not-remove) #f)
1)
((the-as (function object string object none) format)
(clear *temp-string*)
(lookup-text! *common-text* (text-id memcard-do-not-remove) #f)
1)
(s5-2 *temp-string* gp-1 #f 128 22))))
;; flash the icon.
(when (< (mod (-> *display* real-frame-counter) 300) 270)
@@ -908,7 +911,8 @@
(cond
((= desired-mode 'auto-save)
;; also save pc settings.
(with-pc (commit-to-file *pc-settings*))
(with-pc
(commit-to-file *pc-settings*))
(if (not (-> *setting-control* current auto-save)) (go-virtual error (mc-status-code no-auto-save)))
(when (and (zero? (-> self card)) (-> *setting-control* current auto-save))
(set! (-> self card) (-> *game-info* auto-save-card))
+22 -19
View File
@@ -255,20 +255,20 @@
(cheats-sound-play *cheat-mode*)))
;; language cheat, REMOVED IN PC PORT because it's literally useless
#|
(case (scf-get-territory)
;; japan-only
((GAME_TERRITORY_SCEI)
(check-cheat-code (-> *cheat-temp* 2) 0
(l1 r1 l1 r1 triangle circle x square)
(cpad-clear! 0 r1)
(set! *progress-cheat* (if *progress-cheat*
#f
'language
))
(cheats-sound-play *progress-cheat*)
)
)
)
(case (scf-get-territory)
;; japan-only
((GAME_TERRITORY_SCEI)
(check-cheat-code (-> *cheat-temp* 2) 0
(l1 r1 l1 r1 triangle circle x square)
(cpad-clear! 0 r1)
(set! *progress-cheat* (if *progress-cheat*
#f
'language
))
(cheats-sound-play *progress-cheat*)
)
)
)
|#
;; debug only PAL cheat
(when *debug-segment*
@@ -366,7 +366,8 @@
(with-profiler "foreground-effects"
;; with FP blerc, the vertices are modified in the PC renderer, so we can just skip
;; this call to save time.
(unless *use-fp-blerc* (blerc-execute))
(unless *use-fp-blerc*
(blerc-execute))
(blerc-init)
(texscroll-execute)
(ripple-execute))
@@ -489,9 +490,10 @@
(display-file-info)) ;; end dma let
) ;; end debug-segment
;; draw pause text.
(with-dma-buffer-add-bucket ((s3-1 (if *debug-segment* (-> disp frames (-> disp on-screen) frame debug-buf)
(-> disp frames (-> disp on-screen) frame global-buf)))
(bucket-id debug))
(with-dma-buffer-add-bucket ((s3-1 (if *debug-segment*
(-> disp frames (-> disp on-screen) frame debug-buf)
(-> disp frames (-> disp on-screen) frame global-buf)))
(bucket-id debug))
(if (and (= *master-mode* 'pause) (!= *cheat-mode* 'camera))
(draw-string-xy (lookup-text! *common-text* (text-id pause) #f)
s3-1
@@ -563,7 +565,8 @@
(defun on ((release-mode symbol))
"Turn the game on."
(when (not *dproc*)
(unless release-mode (if (= (-> *level* level0 status) 'inactive) (bg 'halfpipe)))
(unless release-mode
(if (= (-> *level* level0 status) 'inactive) (bg 'halfpipe)))
(set! *run* #t)
(let ((new-dproc (process-spawn-function process display-loop :name 'display :from *4k-dead-pool* :to *display-pool*)))
(set! *dproc* (the process (ppointer->process new-dproc))))
+327 -306
View File
@@ -11,11 +11,12 @@
;; DECOMP BEGINS
(defbehavior cloud-track process ((arg0 process-tree) (arg1 process-tree)
(arg2 (function vector none))
(arg3 time-frame)
(arg4 time-frame)
(arg5 time-frame))
(defbehavior cloud-track process ((arg0 process-tree)
(arg1 process-tree)
(arg2 (function vector none))
(arg3 time-frame)
(arg4 time-frame)
(arg5 time-frame))
(change-parent self arg0)
(let ((s1-1 (process->handle arg0))
(s2-1 (process->handle arg1)))
@@ -41,88 +42,93 @@
(defpart 255
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 192.0)
(:a 64.0)
(:fade-a -1.0666667)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 192.0)
(:a 64.0)
(:fade-a -1.0666667)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 256
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 192.0)
(:a 64.0)
(:fade-a -1.0666667)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 192.0)
(:a 64.0)
(:fade-a -1.0666667)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 257
:init-specs
((:texture (new 'static 'texture-id :index #x1f :page #x2)) (:num 1.0 3.0)
(:scale-x (meters 0.5) (meters 1.5))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.2) (meters 0.1))
(:r 64.0)
(:g 64.0)
(:b 128.0)
(:a 128.0)
(:fade-a -1.6)
(:timer (seconds 0.3))
(:flags (bit2 bit3))
(:next-time (seconds 0.035))
(:next-launcher 258)))
((:texture (new 'static 'texture-id :index #x1f :page #x2))
(:num 1.0 3.0)
(:scale-x (meters 0.5) (meters 1.5))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.2) (meters 0.1))
(:r 64.0)
(:g 64.0)
(:b 128.0)
(:a 128.0)
(:fade-a -1.6)
(:timer (seconds 0.3))
(:flags (bit2 bit3))
(:next-time (seconds 0.035))
(:next-launcher 258)))
(defpart 259
:init-specs
((:texture (new 'static 'texture-id :index #x1f :page #x2)) (:num 0.0 3.0)
(:scale-x (meters 1.5) (meters 1.5))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.2) (meters 0.1))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 128.0)
(:fade-a -1.6)
(:timer (seconds 0.305))
(:flags (bit2 bit3))
(:next-time (seconds 0.035))
(:next-launcher 258)))
((:texture (new 'static 'texture-id :index #x1f :page #x2))
(:num 0.0 3.0)
(:scale-x (meters 1.5) (meters 1.5))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y (meters 0.2) (meters 0.1))
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 128.0)
(:fade-a -1.6)
(:timer (seconds 0.305))
(:flags (bit2 bit3))
(:next-time (seconds 0.035))
(:next-launcher 258)))
(defpart 258
:init-specs ((:r 64.0) (:g 64.0) (:fade-r -1.0) (:fade-g -0.4) (:fade-a -2.0)))
(defpart 260
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:scale-x (meters 0.1) (meters 0.15))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 32.0 64.0)
(:b 192.0 64.0)
(:a 64.0 128.0)
(:scalevel-x (meters -0.00033333333))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.2)
(:accel-y (meters -0.000016666667))
(:timer (seconds 1.5))
(:flags (bit0 bit2 bit3))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:scale-x (meters 0.1) (meters 0.15))
(:scale-y :copy scale-x)
(:r 32.0)
(:g 32.0 64.0)
(:b 192.0 64.0)
(:a 64.0 128.0)
(:scalevel-x (meters -0.00033333333))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.2)
(:accel-y (meters -0.000016666667))
(:timer (seconds 1.5))
(:flags (bit0 bit2 bit3))))
(defpartgroup group-blue-hit-ground-effect
:id 70
@@ -133,294 +139,309 @@
(defpart 264
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 32.0)
(:y (meters 0.5))
(:scale-x (meters 1) (meters 3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 0.0 63 1.0)
(:vel-y (meters 0.093333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:timer (seconds 0.5))
(:flags (bit3))
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 266)
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 32.0)
(:y (meters 0.5))
(:scale-x (meters 1) (meters 3))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 0.0 63 1.0)
(:vel-y (meters 0.093333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:timer (seconds 0.5))
(:flags (bit3))
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 266)
(:conerot-x (degrees 90))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0))))
(defpart 266
:init-specs
((:r 0.0) (:g 32.0 32.0)
(:b 192.0 63.0)
(:a 0.0 63 1.0)
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 266)))
((:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 0.0 63 1.0)
(:next-time (seconds 0.067) (seconds 0.065))
(:next-launcher 266)))
(defpart 265
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 1.0)
(:y (meters 0.5))
(:scale-x (meters 0))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 96.0 32.0)
(:scalevel-x (meters 0.21333334))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.4))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.2))
(:next-launcher 267)))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 1.0)
(:y (meters 0.5))
(:scale-x (meters 0))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 96.0 32.0)
(:scalevel-x (meters 0.21333334))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.4))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.2))
(:next-launcher 267)))
(defpart 267
:init-specs ((:fade-a -2.1333334)))
(defpart 263
:init-specs
((:texture (new 'static 'texture-id :index #x4 :page #x2)) (:num 1.0)
(:y (meters 0.5))
(:scale-x (meters 0))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 32.0 32.0)
(:scalevel-x (meters 0.22666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.7111111)
(:timer (seconds 0.3))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.15))
(:next-launcher 268)))
((:texture (new 'static 'texture-id :index #x4 :page #x2))
(:num 1.0)
(:y (meters 0.5))
(:scale-x (meters 0))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 32.0 32.0)
(:scalevel-x (meters 0.22666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.7111111)
(:timer (seconds 0.3))
(:flags (bit2 bit3 left-multiply-quat))
(:next-time (seconds 0.15))
(:next-launcher 268)))
(defpart 268
:init-specs ((:fade-a -1.4222223)))
(defpart 261
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 32.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 16.0 32.0)
(:vel-y (meters 0.053333335) (meters 0.026666667))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (bit2 bit12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 32.0)
(:scale-x (meters 1) (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 16.0 32.0)
(:vel-y (meters 0.053333335) (meters 0.026666667))
(:scalevel-x (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.16)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 1))
(:flags (bit2 bit12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 262
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 16.0 16.0)
(:vel-y (meters 0.10666667) (meters 0.053333335))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (bit2 bit12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 12.0)
(:scale-x (meters 0.5) (meters 0.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 32.0 32.0)
(:b 192.0 63.0)
(:a 16.0 16.0)
(:vel-y (meters 0.10666667) (meters 0.053333335))
(:scalevel-x (meters 0.0016666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334)
(:accel-y (meters -0.00033333333))
(:friction 0.95)
(:timer (seconds 0.5))
(:flags (bit2 bit12))
(:conerot-x (degrees 60) (degrees 30))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 269
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 32.0 92.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 32.0 92.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 270
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 32.0 92.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 32.0 92.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 271
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 0.5 2.0)
(:y (meters -0.05))
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 64.0 64.0)
(:vel-y (meters 0.0023333333) (meters 0.0016666667))
(:scalevel-x (meters -0.00083333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.697))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 272)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.05))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 0.5 2.0)
(:y (meters -0.05))
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 64.0 64.0)
(:vel-y (meters 0.0023333333) (meters 0.0016666667))
(:scalevel-x (meters -0.00083333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.697))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 272)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.05))))
(defpart 272
:init-specs ((:fade-r 0.0)))
(defpart 273
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 0.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 0.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 274
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 0.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 92.0 32.0)
(:g 0.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 275
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 0.5 2.0)
(:y (meters -0.05))
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 0.0)
(:b 0.0)
(:a 64.0 64.0)
(:vel-y (meters 0.0023333333) (meters 0.0016666667))
(:scalevel-x (meters -0.00083333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.697))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 276)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.05))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 0.5 2.0)
(:y (meters -0.05))
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 0.0)
(:b 0.0)
(:a 64.0 64.0)
(:vel-y (meters 0.0023333333) (meters 0.0016666667))
(:scalevel-x (meters -0.00083333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.697))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 276)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.05))))
(defpart 276
:init-specs ((:fade-r 0.0)))
(defpart 277
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 92.0 32.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 92.0 32.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 278
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 92.0 32.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
((:texture (new 'static 'texture-id :page #x2))
(:num 1.0 1.0)
(:scale-x (meters 1.5) (meters 0.4))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 92.0 32.0)
(:b 0.0)
(:a 64.0)
(:fade-a -1.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.5))))
(defpart 279
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 0.5 2.0)
(:y (meters -0.05))
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 100.0 28.0)
(:b 0.0)
(:a 64.0 64.0)
(:vel-y (meters 0.0023333333) (meters 0.0016666667))
(:scalevel-x (meters -0.00083333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.697))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 280)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.05))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 0.5 2.0)
(:y (meters -0.05))
(:scale-x (meters 0.2) (meters 0.1))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 100.0 28.0)
(:b 0.0)
(:a 64.0 64.0)
(:vel-y (meters 0.0023333333) (meters 0.0016666667))
(:scalevel-x (meters -0.00083333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.697))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 280)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.05))))
(defpart 280
:init-specs ((:fade-g 0.0)))
+323 -303
View File
@@ -121,124 +121,130 @@
:duration (seconds 1)
:bounds (static-bspherem 0 0 0 3)
:parts
((sp-item 349 :flags (launch-asap) :binding 350) (sp-item 350 :flags (start-dead launch-asap) :binding 351)
(sp-item 351 :flags (start-dead launch-asap) :binding 352)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))))
((sp-item 349 :flags (launch-asap) :binding 350)
(sp-item 350 :flags (start-dead launch-asap) :binding 351)
(sp-item 351 :flags (start-dead launch-asap) :binding 352)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 352 :flags (start-dead) :binding 353)
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))
(sp-item 353 :fade-after (meters 100) :falloff-to (meters 100) :flags (start-dead))))
(defpart 349
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:scale-x (meters 0.01))
(:scale-y :copy scale-x)
(:a 0.0)
(:timer (seconds 4))
(:flags (bit3))
(:func 'sparticle-track-root-prim)))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:scale-x (meters 0.01))
(:scale-y :copy scale-x)
(:a 0.0)
(:timer (seconds 4))
(:flags (bit3))
(:func 'sparticle-track-root-prim)))
(defpart 350
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:x (meters 0) (meters 16))
(:y (meters 4) (meters 16))
(:z (meters 0))
(:scale-x (meters 5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 64.0 64.0)
(:a 32.0)
(:vel-x (meters -0.10666667) 1 (meters 0.21333334))
(:rotvel-z (degrees -0.4) 1 (degrees 0.8))
(:timer (seconds 4))
(:flags (bit2 bit3 bit7))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:x (meters 0) (meters 16))
(:y (meters 4) (meters 16))
(:z (meters 0))
(:scale-x (meters 5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 64.0 64.0)
(:a 32.0)
(:vel-x (meters -0.10666667) 1 (meters 0.21333334))
(:rotvel-z (degrees -0.4) 1 (degrees 0.8))
(:timer (seconds 4))
(:flags (bit2 bit3 bit7))))
(defpart 351
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 2.0)
(:y (meters 0) (meters 16))
(:z (meters 0))
(:scale-x (meters 1.5) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 64.0 64.0)
(:a 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.11259259))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:timer (seconds 4))
(:flags (bit2 bit3 bit7))))
((:texture (new 'static 'texture-id :page #x2))
(:num 2.0)
(:y (meters 0) (meters 16))
(:z (meters 0))
(:scale-x (meters 1.5) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 64.0 64.0)
(:a 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.11259259))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:timer (seconds 4))
(:flags (bit2 bit3 bit7))))
(defpart 352
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 1.0)
(:scale-x (meters 1.5) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 64.0 64.0)
(:a 64.0)
(:scalevel-x (meters -0.02))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.0)
(:timer (seconds 0.18))
(:flags (bit2 bit3))))
((:texture (new 'static 'texture-id :page #x2))
(:num 1.0)
(:scale-x (meters 1.5) (meters 0.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 128.0)
(:g 64.0 64.0)
(:a 64.0)
(:scalevel-x (meters -0.02))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.0)
(:timer (seconds 0.18))
(:flags (bit2 bit3))))
(defpart 353
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 0.5 0.5)
(:y (meters -0.05))
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 96.0)
(:vel-y (meters 0.005) (meters 0.011666667))
(:scalevel-x (meters -0.000909091))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.997))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 354)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.3))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 0.5 0.5)
(:y (meters -0.05))
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 96.0)
(:vel-y (meters 0.005) (meters 0.011666667))
(:scalevel-x (meters -0.000909091))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.4)
(:fade-a -0.024242423)
(:accel-y (meters -0.000100000005) (meters -0.0003))
(:friction 0.93)
(:timer (seconds 0.1) (seconds 0.997))
(:flags (bit2 bit3))
(:next-time (seconds 0.3))
(:next-launcher 354)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 0.3))))
(defpart 354
:init-specs ((:fade-r 0.0)))
@@ -248,155 +254,163 @@
:duration (seconds 2)
:bounds (static-bspherem 0 0 0 6)
:parts
((sp-item 355 :flags (launch-asap)) (sp-item 356 :flags (bit1) :period (seconds 2.1) :length (seconds 0.05))
(sp-item 357 :flags (launch-asap))
(sp-item 358 :flags (launch-asap) :binding 359)
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))))
((sp-item 355 :flags (launch-asap))
(sp-item 356 :flags (bit1) :period (seconds 2.1) :length (seconds 0.05))
(sp-item 357 :flags (launch-asap))
(sp-item 358 :flags (launch-asap) :binding 359)
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))
(sp-item 359 :flags (start-dead launch-asap))))
(defpart 355
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:scale-x (meters 8))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:a 64.0)
(:scalevel-x (meters -0.06666667))
(:rotvel-z (degrees -204.8) 1 (degrees 409.6))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:scale-x (meters 8))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:a 64.0)
(:scalevel-x (meters -0.06666667))
(:rotvel-z (degrees -204.8) 1 (degrees 409.6))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.0)
(:timer (seconds 0.2))
(:flags (bit2 bit3))))
(defpart 357
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 5.0)
(:x (meters -0.6) (meters 1.2))
(:y (meters -0.6) (meters 1.2))
(:z (meters -0.6) (meters 1.2))
(:scale-x (meters 1.5) (meters 0.75))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 32.0)
(:a 32.0 32.0)
(:scalevel-x (meters 0.0044444446))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.14222223)
(:fade-a -0.14222223)
(:accel-y (meters -0.000016666667))
(:timer (seconds 1.5))
(:flags (bit2 bit3))))
((:texture (new 'static 'texture-id :page #x2))
(:num 5.0)
(:x (meters -0.6) (meters 1.2))
(:y (meters -0.6) (meters 1.2))
(:z (meters -0.6) (meters 1.2))
(:scale-x (meters 1.5) (meters 0.75))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 32.0)
(:a 32.0 32.0)
(:scalevel-x (meters 0.0044444446))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.14222223)
(:fade-a -0.14222223)
(:accel-y (meters -0.000016666667))
(:timer (seconds 1.5))
(:flags (bit2 bit3))))
(defpart 356
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 12.0)
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.053333335))
(:scalevel-x (meters -0.0025000002))
(:scalevel-y :copy scalevel-x)
(:fade-g -1.0666667)
(:fade-a -0.17777778)
(:accel-y (meters -0.001))
(:friction 0.99)
(:timer (seconds 0.2) (seconds 0.197))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 120))
(:conerot-y (degrees 90) (degrees 180))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 12.0)
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.053333335))
(:scalevel-x (meters -0.0025000002))
(:scalevel-y :copy scalevel-x)
(:fade-g -1.0666667)
(:fade-a -0.17777778)
(:accel-y (meters -0.001))
(:friction 0.99)
(:timer (seconds 0.2) (seconds 0.197))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 120))
(:conerot-y (degrees 90) (degrees 180))))
(defpart 360
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 24.0)
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.053333335))
(:scalevel-x (meters -0.0025000002))
(:scalevel-y :copy scalevel-x)
(:fade-g -1.0666667)
(:fade-a -0.17777778)
(:accel-y (meters -0.001))
(:friction 0.99)
(:timer (seconds 0.2) (seconds 0.197))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 24.0)
(:scale-x (meters 0.3) (meters 0.1))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.053333335))
(:scalevel-x (meters -0.0025000002))
(:scalevel-y :copy scalevel-x)
(:fade-g -1.0666667)
(:fade-a -0.17777778)
(:accel-y (meters -0.001))
(:friction 0.99)
(:timer (seconds 0.2) (seconds 0.197))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 358
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 16.0)
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 1.0)
(:vel-y (meters 0.02) (meters 0.013333334))
(:accel-y (meters -0.0005))
(:friction 0.99)
(:timer (seconds 1.1))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 100.00001))
(:conerot-y (degrees 90) (degrees 180))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 16.0)
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 1.0)
(:vel-y (meters 0.02) (meters 0.013333334))
(:accel-y (meters -0.0005))
(:friction 0.99)
(:timer (seconds 1.1))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 100.00001))
(:conerot-y (degrees 90) (degrees 180))))
(defpart 361
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 32.0)
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 1.0)
(:vel-y (meters 0.02) (meters 0.013333334))
(:accel-y (meters -0.0005))
(:friction 0.99)
(:timer (seconds 1.1))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 32.0)
(:scale-x (meters 0.1))
(:scale-y :copy scale-x)
(:a 1.0)
(:vel-y (meters 0.02) (meters 0.013333334))
(:accel-y (meters -0.0005))
(:friction 0.99)
(:timer (seconds 1.1))
(:flags (bit2 bit3))
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 359
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.1) (meters 0.2))
(:scale-x (meters 0.3) (meters 0.1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.3) (seconds 0.797))
(:flags (bit2 bit3 bit7))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:y (meters 0) (meters 16))
(:z (meters 0.1) (meters 0.2))
(:scale-x (meters 0.3) (meters 0.1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 100.0 28.0)
(:g 64.0 64.0)
(:b 0.0)
(:a 64.0 64.0)
(:omega 0.0 65536.0)
(:vel-x (meters 0.10666667))
(:scalevel-x (meters -0.000909091))
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.26666668)
(:fade-a -0.19393939)
(:timer (seconds 0.3) (seconds 0.797))
(:flags (bit2 bit3 bit7))))
(defpartgroup group-part-yellow-eco-fireball-hit
:id 104
@@ -404,86 +418,91 @@
:flags (use-local-clock)
:bounds (static-bspherem 0 0 0 6)
:parts
((sp-item 2059 :period (seconds 2) :length (seconds 0.017)) (sp-item 2060 :fade-after (meters 80) :falloff-to (meters 80) :period (seconds 2) :length (seconds 0.135))
(sp-item 2061 :period (seconds 2) :length (seconds 0.067))
(sp-item 2062 :fade-after (meters 120) :falloff-to (meters 120) :period (seconds 2) :length (seconds 0.067))))
((sp-item 2059 :period (seconds 2) :length (seconds 0.017))
(sp-item 2060 :fade-after (meters 80) :falloff-to (meters 80) :period (seconds 2) :length (seconds 0.135))
(sp-item 2061 :period (seconds 2) :length (seconds 0.067))
(sp-item 2062 :fade-after (meters 120) :falloff-to (meters 120) :period (seconds 2) :length (seconds 0.067))))
(defpart 2060
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 6.0)
(:scale-x (meters 0.2) (meters 0.4))
(:scale-y :copy scale-x)
(:r 192.0 64.0)
(:g 192.0 64.0)
(:b 0.0)
(:a 32.0 96.0)
(:vel-y (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00016666666) (meters -0.00016666666))
(:friction 0.9)
(:timer (seconds 1))
(:flags (bit2 bit14))
(:next-time (seconds 0.1) (seconds 0.097))
(:next-launcher 2063)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 2) (meters 4))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 6.0)
(:scale-x (meters 0.2) (meters 0.4))
(:scale-y :copy scale-x)
(:r 192.0 64.0)
(:g 192.0 64.0)
(:b 0.0)
(:a 32.0 96.0)
(:vel-y (meters 0.026666667) (meters 0.10666667))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00016666666) (meters -0.00016666666))
(:friction 0.9)
(:timer (seconds 1))
(:flags (bit2 bit14))
(:next-time (seconds 0.1) (seconds 0.097))
(:next-launcher 2063)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))
(:conerot-radius (meters 2) (meters 4))))
(defpart 2063
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -1.4222223)))
(defpart 2062
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 3.0)
(:scale-x (meters 0.2))
(:rot-z (degrees 0) (degrees 180))
(:scale-y (meters 8))
(:r 255.0)
(:g 196.0)
(:b 0.0)
(:a 32.0 64.0)
(:scalevel-y (meters 0.42666668))
(:fade-a -1.6)
(:timer (seconds 0.2))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 3.0)
(:scale-x (meters 0.2))
(:rot-z (degrees 0) (degrees 180))
(:scale-y (meters 8))
(:r 255.0)
(:g 196.0)
(:b 0.0)
(:a 32.0 64.0)
(:scalevel-y (meters 0.42666668))
(:fade-a -1.6)
(:timer (seconds 0.2))
(:flags (bit2 bit3 bit14))))
(defpart 2059
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 1.0)
(:scale-x (meters 16))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0 32.0)
(:b 0.0)
(:a 96.0)
(:fade-a -1.7454545)
(:timer (seconds 0.18))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 1.0)
(:scale-x (meters 16))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0 32.0)
(:b 0.0)
(:a 96.0)
(:fade-a -1.7454545)
(:timer (seconds 0.18))
(:flags (bit2 bit3 bit14))))
(defpart 2061
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 4.0)
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0 64.0)
(:b 128.0)
(:a 64.0 64.0)
(:vel-y (meters 0.053333335) (meters 0.013333334))
(:scalevel-x (meters 0.013333334))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.6)
(:accel-y (meters 0.00016666666) (meters 0.00016666666))
(:friction 0.8)
(:timer (seconds 1.7))
(:flags (bit2 bit14))
(:next-time (seconds 0.14))
(:next-launcher 2064)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :page #x2))
(:num 4.0)
(:scale-x (meters 2.5) (meters 1.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 192.0 64.0)
(:b 128.0)
(:a 64.0 64.0)
(:vel-y (meters 0.053333335) (meters 0.013333334))
(:scalevel-x (meters 0.013333334))
(:rotvel-z (degrees -0.3) (degrees 0.6))
(:scalevel-y :copy scalevel-x)
(:fade-a -1.6)
(:accel-y (meters 0.00016666666) (meters 0.00016666666))
(:friction 0.8)
(:timer (seconds 1.7))
(:flags (bit2 bit14))
(:next-time (seconds 0.14))
(:next-launcher 2064)
(:conerot-x (degrees 0) (degrees 180))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 2064
:init-specs ((:fade-r -0.53333336) (:fade-g -0.53333336) (:fade-b -1.0666667) (:fade-a -0.53333336)))
@@ -886,13 +905,14 @@
(let ((a3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data s3-0)))
(t1-0 8)
(t2-0 (process->handle pp)))
((the-as (function process function object object object object object object) s2-0) s1-0
s0-0
sv-48
a3-1
gp-0
t1-0
t2-0)))
((the-as (function process function object object object object object object) s2-0)
s1-0
s0-0
sv-48
a3-1
gp-0
t1-0
t2-0)))
(-> s4-1 ppointer)))))
0
(none)))
+2 -2
View File
@@ -148,10 +148,10 @@
`(,func *setting-control* (with-pp pp) ,s ,argb ,argf ,argi)))
(defmacro add-setting! (s &rest args)
`(setting-control-func! add-setting ,s ,@ args))
`(setting-control-func! add-setting ,s ,@args))
(defmacro set-setting! (s &rest args)
`(setting-control-func! set-setting ,s ,@ args))
`(setting-control-func! set-setting ,s ,@args))
(defmacro remove-setting! (s)
`(remove-setting *setting-control* (with-pp pp) ,s))
@@ -5037,11 +5037,12 @@
(defun task-known? ((arg0 game-task))
"Is there a cstage with a non-unknown status?"
(case (get-task-status arg0)
(((task-status need-reward-speech) (task-status need-introduction)
(task-status need-reminder)
(task-status need-reminder-a)
(task-status need-resolution)
(task-status invalid))
(((task-status need-reward-speech)
(task-status need-introduction)
(task-status need-reminder)
(task-status need-reminder-a)
(task-status need-resolution)
(task-status invalid))
#t)
(else #f)))
@@ -260,14 +260,14 @@
(b! (zero? a0-76) cfg-28 :delay (nop!))
(set! *pc-perf-stat-counter* (get-cpu-clock)) ;; patched
#|
(.mtc0 Perf 0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 0)
(.mtpc pcr1 0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-76)
(.mtc0 Perf 0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 0)
(.mtpc pcr1 0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-76)
|#
)
(.sync.l)
+4 -2
View File
@@ -789,7 +789,8 @@
(.mul.vf vf25 vf25 vf1 :mask #b11)
(.mul.vf vf23 vf23 vf1 :mask #b11)
;; hack! fixes small font widescreen
(unless (logtest? (-> arg2 flags) (font-flags pc-hack)) (.mul.vf vf24 vf24 vf1 :mask #b11))
(unless (logtest? (-> arg2 flags) (font-flags pc-hack))
(.mul.vf vf24 vf24 vf1 :mask #b11))
(let ((fw *font-work*))
(set! (-> fw buf) context)
(let ((dma-out (-> context base)))
@@ -1497,7 +1498,8 @@
(.mul.vf vf25 vf25 vf1 :mask #b11)
(.mul.vf vf23 vf23 vf1 :mask #b11)
;; hack! fixes small font widescreen
(unless (logtest? (-> arg1 flags) (font-flags pc-hack)) (.mul.vf vf24 vf24 vf1 :mask #b11))
(unless (logtest? (-> arg1 flags) (font-flags pc-hack))
(.mul.vf vf24 vf24 vf1 :mask #b11))
(set! (-> work str-ptr) (the-as uint arg0))
(set! (-> work flags) flags)
(.mov.vf vf1 vf0)
+5 -3
View File
@@ -202,7 +202,7 @@
(new 'static
'vu-function
#|
:length 63 :qlength 32
:length 63 :qlength 32
|#
))
@@ -1289,7 +1289,8 @@
(set! pc-force-mercneric #t) ;; GOAL blerc + generic
))))
(when (= pc-merc-vtx-update 'blerc)
(unless (pc-merc-blend-shape (the process-drawable (-> arg0 process)) blerc-weights) (set! pc-merc-vtx-update #f))))
(unless (pc-merc-blend-shape (the process-drawable (-> arg0 process)) blerc-weights)
(set! pc-merc-vtx-update #f))))
;; additional in pc to make envmap fade 0 when envmap is not used
(let ((a0-36 (the-as object (-> *merc-bucket-info* effect effect-idx))))
(dotimes (a2-15 4)
@@ -1313,7 +1314,8 @@
(let ((f0-9 (+ (* f1-12 arg2) f0-8)))
(if (< 1.0 f0-9) (set! f0-9 1.0))
(if (< f0-9 0.0) (set! f0-9 0.0))
(with-pc (if (-> *pc-settings* force-envmap?) (set! f0-9 1.0)))
(with-pc
(if (-> *pc-settings* force-envmap?) (set! f0-9 1.0)))
(cond
;; do envmap stuff if we are using generic anyway, or our strength is > 0.
((or (nonzero? (-> *merc-bucket-info* must-use-mercneric-for-clip)) (< 0.0 f0-9) pc-force-mercneric)
+12 -12
View File
@@ -605,17 +605,17 @@
(push! list-to-splice (cons 'gif-reg-id (cons (car cur-lst) ())))
(push! list-to-splice (string->symbol-format ":regs{}" (inc! i)))
(pop! cur-lst))
`(new 'static 'gif-tag-regs ,@ list-to-splice))
`(new 'static 'gif-tag-regs ,@list-to-splice))
#|
;; the opengoal compiler does not have enough constant propagation for this for now
(let ((i -1))
`(the-as gif-tag-regs (logior ,@(apply (lambda (x)
`(shl (the-as uint (gif-reg-id ,x)) ,(* 4 (inc! i)))
) reg-ids)
))
)
;; the opengoal compiler does not have enough constant propagation for this for now
(let ((i -1))
`(the-as gif-tag-regs (logior ,@(apply (lambda (x)
`(shl (the-as uint (gif-reg-id ,x)) ,(* 4 (inc! i)))
) reg-ids)
))
)
|#
))
@@ -638,7 +638,7 @@
(new 'static 'gif-tag64 :nloop 1 :eop 1 :nreg ,reg-count)
(gs-reg-list a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d))
;; gs regs
(dma-buffer-add-uint64 ,buf ,@ (apply2 (lambda (x) x) (lambda (x) `(gs-reg64 ,x)) reg-datas reg-names)))))
(dma-buffer-add-uint64 ,buf ,@(apply2 (lambda (x) x) (lambda (x) `(gs-reg64 ,x)) reg-datas reg-names)))))
(defmacro dma-buffer-add-gs-set (buf &rest reg-list)
"Add a gif cnt dma packet to a dma-buffer for setting GS registers. Up to 16 can be set at once.
@@ -658,7 +658,7 @@
(new 'static 'gif-tag64 :nloop 1 :eop 1 :nreg ,reg-count)
(gs-reg-list a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d a+d))
;; gs regs
(dma-buffer-add-uint64 ,buf ,@ (apply2 (lambda (x) x) (lambda (x) `(gs-reg64 ,x)) reg-datas reg-names)))))
(dma-buffer-add-uint64 ,buf ,@(apply2 (lambda (x) x) (lambda (x) `(gs-reg64 ,x)) reg-datas reg-names)))))
(deftype gs-gif-tag (structure)
((qword uint128 :offset-assert 0) ;; is "qword" and inline? in game
+20 -19
View File
@@ -61,25 +61,26 @@
(if (= aspect 'aspect4x3)
(set! (-> math-cam y-ratio) (* (1 / ASPECT_4X3) (-> math-cam x-ratio)))
(set! (-> math-cam y-ratio) (* (1 / ASPECT_16X9) (-> math-cam x-ratio))))
(with-pc (cond
((-> *pc-settings* use-vis?)
;; using game vis, cannot allow seeing more of the view
;; crops excess aspect ratio at the top and bottom
;(set! (-> math-cam y-ratio) (* (1/ (-> *pc-settings* aspect-ratio)) (-> math-cam x-ratio)))
)
((real-movie?)
;; force the original 16x9 cropping during cutscenes.
(if (<= (-> *pc-settings* aspect-ratio) ASPECT_16X9)
(set! (-> math-cam y-ratio) (* (1 / (-> *pc-settings* aspect-ratio)) (-> math-cam x-ratio)))
(begin
(set! (-> math-cam y-ratio) (* (1 / ASPECT_16X9) (-> math-cam x-ratio)))
(*! (-> math-cam x-ratio) (/ (-> *pc-settings* aspect-ratio) ASPECT_16X9)))))
(else
;; not using game vis, allow *extended* aspect ratios
;; there is no vertical cropping, and you can see more of the sides
(set! (-> math-cam y-ratio) (* (1 / ASPECT_4X3) (-> math-cam x-ratio))) ;; same cropping as 4x3
(*! (-> math-cam x-ratio) (/ (-> *pc-settings* aspect-ratio) ASPECT_4X3)) ;; extend fov! shows more on the sides.
)))
(with-pc
(cond
((-> *pc-settings* use-vis?)
;; using game vis, cannot allow seeing more of the view
;; crops excess aspect ratio at the top and bottom
;(set! (-> math-cam y-ratio) (* (1/ (-> *pc-settings* aspect-ratio)) (-> math-cam x-ratio)))
)
((real-movie?)
;; force the original 16x9 cropping during cutscenes.
(if (<= (-> *pc-settings* aspect-ratio) ASPECT_16X9)
(set! (-> math-cam y-ratio) (* (1 / (-> *pc-settings* aspect-ratio)) (-> math-cam x-ratio)))
(begin
(set! (-> math-cam y-ratio) (* (1 / ASPECT_16X9) (-> math-cam x-ratio)))
(*! (-> math-cam x-ratio) (/ (-> *pc-settings* aspect-ratio) ASPECT_16X9)))))
(else
;; not using game vis, allow *extended* aspect ratios
;; there is no vertical cropping, and you can see more of the sides
(set! (-> math-cam y-ratio) (* (1 / ASPECT_4X3) (-> math-cam x-ratio))) ;; same cropping as 4x3
(*! (-> math-cam x-ratio) (/ (-> *pc-settings* aspect-ratio) ASPECT_4X3)) ;; extend fov! shows more on the sides.
)))
;; compute some culling constants. Not sure what these mean yet
(let ((x-rat (-> math-cam x-ratio))
(y-rat (-> math-cam y-ratio))
+14 -13
View File
@@ -37,19 +37,20 @@
(defpart 41
:init-specs
((:scale-x (meters 0.5)) (:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 16.0 32.0)
(:b 48.0 32.0)
(:a 48.0 48.0)
(:vel-y (meters 0) (meters 0.006666667))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y (meters 0.02))
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.4))
(:flags (bit2 bit3 bit12))
(:next-time (seconds 0.05) (seconds 0.197))
(:next-launcher 42)))
((:scale-x (meters 0.5))
(:scale-y :copy scale-x)
(:r 64.0 32.0)
(:g 16.0 32.0)
(:b 48.0 32.0)
(:a 48.0 48.0)
(:vel-y (meters 0) (meters 0.006666667))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y (meters 0.02))
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.4))
(:flags (bit2 bit3 bit12))
(:next-time (seconds 0.05) (seconds 0.197))
(:next-launcher 42)))
(defpart 42
:init-specs ((:fade-a -1.4222223) (:timer (seconds 0.15)) (:next-time (seconds 0.14)) (:next-launcher 43)))
+4 -3
View File
@@ -53,9 +53,10 @@
(t3-0 uint128)
(t3-1 uint128))
;; og:preserve-this pc mood debug
(with-pc (case *mood-override-debug*
(('copy #t) (dotimes (mti 8) (set! (-> arg0 times mti w) (-> *mood-override-table* mti))))
(('mult) (dotimes (mti 8) (*! (-> arg0 times mti w) (-> *mood-override-table* mti))))))
(with-pc
(case *mood-override-debug*
(('copy #t) (dotimes (mti 8) (set! (-> arg0 times mti w) (-> *mood-override-table* mti))))
(('mult) (dotimes (mti 8) (*! (-> arg0 times mti w) (-> *mood-override-table* mti))))))
(rlet ((vf1 :class vf)
(vf2 :class vf)
(vf3 :class vf)
+388 -366
View File
@@ -17,184 +17,191 @@
:flags (screen-space)
:bounds (static-bspherem 0 0 0 16)
:parts
((sp-item 18 :binding 19) (sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 21 :binding 22)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))))
((sp-item 18 :binding 19)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 19 :flags (start-dead launch-asap) :binding 20)
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 20 :flags (start-dead launch-asap))
(sp-item 21 :binding 22)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 22 :flags (start-dead launch-asap) :binding 23)
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))
(sp-item 23 :flags (start-dead launch-asap))))
(define group-rain-screend-drop (-> *part-group-id-table* 188))
(defpart 21
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 0.1)
(:x (meters -4.5) (meters 9))
(:y (meters -3) (meters 6))
(:scale-x (meters 2.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 12.0)
(:scalevel-x (meters 0.16666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 0.1)
(:x (meters -4.5) (meters 9))
(:y (meters -3) (meters 6))
(:scale-x (meters 2.5))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 12.0)
(:scalevel-x (meters 0.16666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))))
(defpart 22
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 1.0)
(:scale-x (meters 1.5))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 20.0)
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 24)))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 1.0)
(:scale-x (meters 1.5))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 20.0)
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 24)))
(defpart 24
:init-specs ((:scalevel-x (meters 0.004166667)) (:scalevel-y :copy scalevel-x) (:fade-a -0.06666667)))
(defpart 23
:init-specs
((:num 1.0) (:rot-x 12)
(:r 4096.0)
(:g 3276.8)
(:b 3276.8)
(:fade-r 6.068148)
(:fade-g 68.26667)
(:fade-b 3.034074)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (aux-list))
(:next-time (seconds 0.1))
(:next-launcher 25)))
((:num 1.0)
(:rot-x 12)
(:r 4096.0)
(:g 3276.8)
(:b 3276.8)
(:fade-r 6.068148)
(:fade-g 68.26667)
(:fade-b 3.034074)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (aux-list))
(:next-time (seconds 0.1))
(:next-launcher 25)))
(defpart 25
:init-specs ((:fade-g -5.1200004)))
(defpart 18
:init-specs
((:texture (new 'static 'texture-id :index #x12 :page #x2)) (:num 0.1)
(:x (meters -4.5) (meters 9))
(:y (meters -3) (meters 6))
(:scale-x (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 12.0)
(:scalevel-x (meters 0.26666668))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))))
((:texture (new 'static 'texture-id :index #x12 :page #x2))
(:num 0.1)
(:x (meters -4.5) (meters 9))
(:y (meters -3) (meters 6))
(:scale-x (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 12.0)
(:scalevel-x (meters 0.26666668))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:timer (seconds 0.035))
(:flags (bit2 bit3 bit14))))
(defpart 19
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 1.0)
(:scale-x (meters 2.6))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 20.0)
(:scalevel-x (meters 0.06666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 26)))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 1.0)
(:scale-x (meters 2.6))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 255.0)
(:a 20.0)
(:scalevel-x (meters 0.06666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.8)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.05))
(:next-launcher 26)))
(defpart 26
:init-specs ((:scalevel-x (meters 0.008333334)) (:scalevel-y :copy scalevel-x) (:fade-a -0.06666667)))
(defpart 20
:init-specs
((:num 1.0) (:rot-x 24)
(:r 12288.0)
(:g 6553.6)
(:b 6553.6)
(:fade-r 12.136296)
(:fade-g 136.53334)
(:fade-b 6.068148)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (aux-list))
(:next-time (seconds 0.1))
(:next-launcher 27)))
((:num 1.0)
(:rot-x 24)
(:r 12288.0)
(:g 6553.6)
(:b 6553.6)
(:fade-r 12.136296)
(:fade-g 136.53334)
(:fade-b 6.068148)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.9))
(:flags (aux-list))
(:next-time (seconds 0.1))
(:next-launcher 27)))
(defpart 27
:init-specs ((:fade-g -10.240001)))
@@ -207,22 +214,23 @@
(defpart 28
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:scale-x (meters 40) (meters 40))
(:scale-y :copy scale-x)
(:r 256.0)
(:g 256.0)
(:b 256.0)
(:a 0.0)
(:fade-a 0.42666668)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.2) (seconds 0.797))
(:next-launcher 31)
(:conerot-x (degrees -89) (degrees 178))
(:conerot-y (degrees 0) (degrees 1440))
(:conerot-radius (meters 5000))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:scale-x (meters 40) (meters 40))
(:scale-y :copy scale-x)
(:r 256.0)
(:g 256.0)
(:b 256.0)
(:a 0.0)
(:fade-a 0.42666668)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.2) (seconds 0.797))
(:next-launcher 31)
(:conerot-x (degrees -89) (degrees 178))
(:conerot-y (degrees 0) (degrees 1440))
(:conerot-radius (meters 5000))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 31
:init-specs ((:fade-a 0.0) (:next-time (seconds 99999)) (:next-launcher 32)))
@@ -232,85 +240,89 @@
(defpart 29
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:scale-x (meters 40) (meters 40))
(:scale-y :copy scale-x)
(:r 256.0)
(:g 256.0)
(:b 256.0)
(:a 0.0)
(:fade-a 0.42666668)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.2) (seconds 0.797))
(:next-launcher 31)
(:conerot-x (degrees 30) (degrees 59))
(:conerot-y (degrees 0) (degrees 2880))
(:conerot-radius (meters 5000))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:scale-x (meters 40) (meters 40))
(:scale-y :copy scale-x)
(:r 256.0)
(:g 256.0)
(:b 256.0)
(:a 0.0)
(:fade-a 0.42666668)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.2) (seconds 0.797))
(:next-launcher 31)
(:conerot-x (degrees 30) (degrees 59))
(:conerot-y (degrees 0) (degrees 2880))
(:conerot-radius (meters 5000))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 30
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 1.0)
(:scale-x (meters 40) (meters 40))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:fade-a 0.42666668)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.2) (seconds 0.797))
(:next-launcher 31)
(:conerot-x (degrees 60) (degrees 29))
(:conerot-y (degrees 0) (degrees 5760))
(:conerot-radius (meters 5000))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 1.0)
(:scale-x (meters 40) (meters 40))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 0.0)
(:fade-a 0.42666668)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:next-time (seconds 0.2) (seconds 0.797))
(:next-launcher 31)
(:conerot-x (degrees 60) (degrees 29))
(:conerot-y (degrees 0) (degrees 5760))
(:conerot-radius (meters 5000))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 33
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 4.0)
(:x (meters 10) (meters 10))
(:y (meters 2) (meters 14))
(:scale-x (meters 0.2) (meters 0.1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters -0.01) (meters -0.0033333334))
(:rotvel-z (degrees -1.2) (degrees 2.4))
(:fade-a 0.85333335)
(:timer (seconds 5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25) (seconds 0.247))
(:next-launcher 35)
(:rotate-y (degrees 0) (degrees 180))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 4.0)
(:x (meters 10) (meters 10))
(:y (meters 2) (meters 14))
(:scale-x (meters 0.2) (meters 0.1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters -0.01) (meters -0.0033333334))
(:rotvel-z (degrees -1.2) (degrees 2.4))
(:fade-a 0.85333335)
(:timer (seconds 5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25) (seconds 0.247))
(:next-launcher 35)
(:rotate-y (degrees 0) (degrees 180))))
(defpart 34
:init-specs
((:texture (new 'static 'texture-id :index #xf :page #x2)) (:num 0.0)
(:x (meters 0) (meters 20))
(:y (meters 16))
(:scale-x (meters 0.2) (meters 0.1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters -0.01) (meters -0.0033333334))
(:rotvel-z (degrees -1.2) (degrees 2.4))
(:fade-a 0.85333335)
(:timer (seconds 5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25) (seconds 0.247))
(:next-launcher 35)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #xf :page #x2))
(:num 0.0)
(:x (meters 0) (meters 20))
(:y (meters 16))
(:scale-x (meters 0.2) (meters 0.1))
(:rot-x 4)
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 0.0)
(:vel-y (meters -0.01) (meters -0.0033333334))
(:rotvel-z (degrees -1.2) (degrees 2.4))
(:fade-a 0.85333335)
(:timer (seconds 5))
(:flags (bit2 bit12 bit14))
(:next-time (seconds 0.25) (seconds 0.247))
(:next-launcher 35)
(:rotate-y (degrees 0) (degrees 360))))
(defpart 35
:init-specs ((:fade-a 0.0) (:next-time (seconds 4)) (:next-launcher 36)))
@@ -331,72 +343,76 @@
(defpart 37
:init-specs
((:texture (new 'static 'texture-id :index #x4 :page #x2)) (:num 1.5)
(:x (meters 0) (meters 20))
(:y (meters 16))
(:scale-x (meters 0.03) (meters 0.03))
(:scale-y (meters 0.5) (meters 0.5))
(:r 50.0)
(:g 80.0 55.0)
(:b 50.0 50.0)
(:a 16.0 32.0)
(:vel-y (meters -0.06666667) (meters -0.13333334))
(:timer (seconds 0.8))
(:flags (bit2 bit14))
(:userdata 0.0)
(:func 'check-drop-level-rain)
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x4 :page #x2))
(:num 1.5)
(:x (meters 0) (meters 20))
(:y (meters 16))
(:scale-x (meters 0.03) (meters 0.03))
(:scale-y (meters 0.5) (meters 0.5))
(:r 50.0)
(:g 80.0 55.0)
(:b 50.0 50.0)
(:a 16.0 32.0)
(:vel-y (meters -0.06666667) (meters -0.13333334))
(:timer (seconds 0.8))
(:flags (bit2 bit14))
(:userdata 0.0)
(:func 'check-drop-level-rain)
(:rotate-y (degrees 0) (degrees 360))))
(defpart 38
:init-specs
((:texture (new 'static 'texture-id :index #x4 :page #x2)) (:num 4.5)
(:x (meters 0) (meters 20))
(:y (meters 16))
(:scale-x (meters 0.03) (meters 0.03))
(:scale-y (meters 0.5) (meters 0.5))
(:r 50.0)
(:g 80.0 55.0)
(:b 50.0 50.0)
(:a 16.0 32.0)
(:vel-y (meters -0.06666667) (meters -0.033333335))
(:timer (seconds 0.8))
(:flags (bit2 bit14))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x4 :page #x2))
(:num 4.5)
(:x (meters 0) (meters 20))
(:y (meters 16))
(:scale-x (meters 0.03) (meters 0.03))
(:scale-y (meters 0.5) (meters 0.5))
(:r 50.0)
(:g 80.0 55.0)
(:b 50.0 50.0)
(:a 16.0 32.0)
(:vel-y (meters -0.06666667) (meters -0.033333335))
(:timer (seconds 0.8))
(:flags (bit2 bit14))
(:rotate-y (degrees 0) (degrees 360))))
(defpart 39
:init-specs
((:texture (new 'static 'texture-id :index #x9 :page #x2)) (:num 0.0 1 2.0)
(:scale-x (meters 0.05) (meters 0.075))
(:scale-y :copy scale-x)
(:r 110.0 32.0)
(:g 128.0 32.0)
(:b 64.0 64.0)
(:a 64.0 64.0)
(:vel-y (meters 0.006666667) (meters 0.013333334))
(:fade-a -0.85333335)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.5))
(:flags (bit2 bit3 bit14))
(:conerot-x (degrees 25.000002) (degrees 40))
(:conerot-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x9 :page #x2))
(:num 0.0 1 2.0)
(:scale-x (meters 0.05) (meters 0.075))
(:scale-y :copy scale-x)
(:r 110.0 32.0)
(:g 128.0 32.0)
(:b 64.0 64.0)
(:a 64.0 64.0)
(:vel-y (meters 0.006666667) (meters 0.013333334))
(:fade-a -0.85333335)
(:accel-y (meters -0.00066666666))
(:timer (seconds 0.5))
(:flags (bit2 bit3 bit14))
(:conerot-x (degrees 25.000002) (degrees 40))
(:conerot-y (degrees 0) (degrees 360))))
(defpart 40
:init-specs
((:texture (new 'static 'texture-id :index #x1e :page #x2)) (:num 1.0)
(:y (meters 0.02))
(:scale-x (meters 1) (meters 1))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 110.0 32.0)
(:g 128.0 32.0)
(:b 96.0 32.0)
(:a 16.0 32.0)
(:scalevel-x (meters 0.006666667) (meters 0.006666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.4)
(:timer (seconds 0.4))
(:flags (bit2 bit3 bit14))
(:rotate-y (degrees 0) (degrees 360))))
((:texture (new 'static 'texture-id :index #x1e :page #x2))
(:num 1.0)
(:y (meters 0.02))
(:scale-x (meters 1) (meters 1))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 110.0 32.0)
(:g 128.0 32.0)
(:b 96.0 32.0)
(:a 16.0 32.0)
(:scalevel-x (meters 0.006666667) (meters 0.006666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.4)
(:timer (seconds 0.4))
(:flags (bit2 bit3 bit14))
(:rotate-y (degrees 0) (degrees 360))))
(defun check-drop-level-rain ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(when (< (-> arg2 y) (-> arg1 user-float))
@@ -475,49 +491,52 @@
(defpart 1950
:init-specs
((:texture (new 'static 'texture-id :index #x4 :page #x2)) (:num 1.0)
(:scale-x (meters 1200))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 128.0)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit12 bit14))
(:userdata 0.0)
(:func 'sparticle-track-sun)))
((:texture (new 'static 'texture-id :index #x4 :page #x2))
(:num 1.0)
(:scale-x (meters 1200))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 128.0)
(:a 128.0)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit12 bit14))
(:userdata 0.0)
(:func 'sparticle-track-sun)))
(defpart 1951
:init-specs
((:texture (new 'static 'texture-id :index #x35 :page #x2)) (:num 1.0)
(:scale-x (meters 2800))
(:rot-z (degrees 0))
(:scale-y (meters 2200))
(:r 64.0)
(:g 64.0)
(:b 32.0)
(:a 128.0)
(:rotvel-z (degrees -0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 1.0)
(:func 'sparticle-track-sun)))
((:texture (new 'static 'texture-id :index #x35 :page #x2))
(:num 1.0)
(:scale-x (meters 2800))
(:rot-z (degrees 0))
(:scale-y (meters 2200))
(:r 64.0)
(:g 64.0)
(:b 32.0)
(:a 128.0)
(:rotvel-z (degrees -0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 1.0)
(:func 'sparticle-track-sun)))
(defpart 1952
:init-specs
((:texture (new 'static 'texture-id :index #x35 :page #x2)) (:num 1.0)
(:scale-x (meters 2200))
(:rot-z (degrees 0))
(:scale-y (meters 2800))
(:r 64.0)
(:g 64.0)
(:b 32.0)
(:a 128.0)
(:rotvel-z (degrees 0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 2.0)
(:func 'sparticle-track-sun)))
((:texture (new 'static 'texture-id :index #x35 :page #x2))
(:num 1.0)
(:scale-x (meters 2200))
(:rot-z (degrees 0))
(:scale-y (meters 2800))
(:r 64.0)
(:g 64.0)
(:b 32.0)
(:a 128.0)
(:rotvel-z (degrees 0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 2.0)
(:func 'sparticle-track-sun)))
(defpartgroup group-green-sun
:id 36
@@ -527,46 +546,49 @@
(defpart 1974
:init-specs
((:texture (new 'static 'texture-id :index #x4 :page #x2)) (:num 1.0)
(:scale-x (meters 600))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 255.0)
(:b 0.0)
(:a 0.0)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 4.0)
(:func 'sparticle-track-sun)))
((:texture (new 'static 'texture-id :index #x4 :page #x2))
(:num 1.0)
(:scale-x (meters 600))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 255.0)
(:b 0.0)
(:a 0.0)
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 4.0)
(:func 'sparticle-track-sun)))
(defpart 1975
:init-specs
((:texture (new 'static 'texture-id :index #x35 :page #x2)) (:num 1.0)
(:scale-x (meters 1400))
(:rot-z (degrees 0))
(:scale-y (meters 1100))
(:r 0.0)
(:g 64.0)
(:b 0.0)
(:a 128.0)
(:rotvel-z (degrees -0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 5.0)
(:func 'sparticle-track-sun)))
((:texture (new 'static 'texture-id :index #x35 :page #x2))
(:num 1.0)
(:scale-x (meters 1400))
(:rot-z (degrees 0))
(:scale-y (meters 1100))
(:r 0.0)
(:g 64.0)
(:b 0.0)
(:a 128.0)
(:rotvel-z (degrees -0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 5.0)
(:func 'sparticle-track-sun)))
(defpart 1976
:init-specs
((:texture (new 'static 'texture-id :index #x35 :page #x2)) (:num 1.0)
(:scale-x (meters 1100))
(:rot-z (degrees 0))
(:scale-y (meters 1400))
(:r 0.0)
(:g 64.0)
(:b 0.0)
(:a 128.0)
(:rotvel-z (degrees 0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 6.0)
(:func 'sparticle-track-sun)))
((:texture (new 'static 'texture-id :index #x35 :page #x2))
(:num 1.0)
(:scale-x (meters 1100))
(:rot-z (degrees 0))
(:scale-y (meters 1400))
(:r 0.0)
(:g 64.0)
(:b 0.0)
(:a 128.0)
(:rotvel-z (degrees 0.05))
(:timer (seconds -0.005))
(:flags (bit2 bit3 bit14))
(:userdata 6.0)
(:func 'sparticle-track-sun)))
@@ -80,7 +80,7 @@
(new 'static
'vu-function
#|
:length #x92 :qlength 73
:length #x92 :qlength 73
|#
))
@@ -169,12 +169,13 @@
(header shadow-header :inline :overlay-at total-size)
(rest uint64 :dynamic)))
(defmethod new shadow-control ((allocation symbol) (type-to-make type)
(bottom-offset float)
(top-offset float)
(dir float)
(center float)
(fade float))
(defmethod new shadow-control ((allocation symbol)
(type-to-make type)
(bottom-offset float)
(top-offset float)
(dir float)
(center float)
(fade float))
(let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
(set! (-> obj settings center w) center)
(set-vector! (-> obj settings shadow-dir) 0.0 -1.0 0.0 dir)
@@ -371,7 +371,7 @@
(new 'static
'vu-function
#|
:length 88 :qlength 44
:length 88 :qlength 44
|#
))
+19 -18
View File
@@ -122,21 +122,22 @@
(defpart 362
:init-specs
((:texture (new 'static 'texture-id :page #x2)) (:num 8.0)
(:scale-x (meters 0.3))
(:rot-z (degrees -180) (degrees 360))
(:scale-y :copy scale-x)
(:r 90.0)
(:g 90.0)
(:b 90.0)
(:a 20.0 20.0)
(:vel-y (meters 0.002))
(:scalevel-x (meters 0.004166667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.3)
(:timer (seconds 16.68))
(:flags (bit2 bit3))
(:launchrot-x (degrees -20) (degrees 15))
(:conerot-x (degrees 90))
(:conerot-y (degrees -180) (degrees 360))
(:conerot-radius (meters 0.2))))
((:texture (new 'static 'texture-id :page #x2))
(:num 8.0)
(:scale-x (meters 0.3))
(:rot-z (degrees -180) (degrees 360))
(:scale-y :copy scale-x)
(:r 90.0)
(:g 90.0)
(:b 90.0)
(:a 20.0 20.0)
(:vel-y (meters 0.002))
(:scalevel-x (meters 0.004166667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.3)
(:timer (seconds 16.68))
(:flags (bit2 bit3))
(:launchrot-x (degrees -20) (degrees 15))
(:conerot-x (degrees 90))
(:conerot-y (degrees -180) (degrees 360))
(:conerot-radius (meters 0.2))))
+1 -1
View File
@@ -174,7 +174,7 @@
(new 'static
'vu-function
#|
:length #x26a :qlength #x135
:length #x26a :qlength #x135
|#
))
@@ -186,8 +186,7 @@
:launcher ,launcher
:fade-after ,fade-after
:falloff-to ,falloff-to
:flags
(sp-group-item-flag ,@ flags)
:flags (sp-group-item-flag ,@flags)
:period ,period
:length ,length
:offset ,offset
@@ -258,13 +257,12 @@
'sparticle-launch-group
:duration ,duration
:linger-duration ,linger-duration
:flags
(sp-group-flag ,@ flags)
:flags (sp-group-flag ,@flags)
:bounds ,bounds
:name ,(symbol->string name)
:length ,(length parts)
:launcher
(new 'static 'inline-array sparticle-group-item ,(length parts) ,@ parts)))))
(new 'static 'inline-array sparticle-group-item ,(length parts) ,@parts)))))
(defmacro get-part-group (id)
`(-> *part-group-id-table* ,id))
@@ -344,8 +342,7 @@
`(new 'static
'sp-field-init-spec
:field (sp-field-id ,field-enum-name)
:initial-value
(sp-cpuinfo-flag ,@ param0)
:initial-value (sp-cpuinfo-flag ,@param0)
:random-mult 1))
((eq? field-name 'texture)
`(new 'static 'sp-field-init-spec :field (sp-field-id ,field-enum-name) :tex ,param0 :flags (sp-flag int)))
@@ -457,6 +454,5 @@
'inline-array
sp-field-init-spec
,(1 + (length init-specs))
,@
(apply process-init-spec init-specs)
,@(apply process-init-spec init-specs)
(new 'static 'sp-field-init-spec :field (sp-field-id spt-end)))))))
@@ -110,10 +110,11 @@
;;;;;;;;;;;;;;;;;;;;;;;
;; og:preserve-this this was rewritten from assembly
(defun sp-init-fields! ((arg0 (pointer float)) (arg1 (inline-array sp-field-init-spec))
(arg2 sp-field-id)
(arg3 sp-field-id)
(write-missing-fields symbol))
(defun sp-init-fields! ((arg0 (pointer float))
(arg1 (inline-array sp-field-init-spec))
(arg2 sp-field-id)
(arg3 sp-field-id)
(write-missing-fields symbol))
(1 +! arg2)
(let ((cur-spec arg1))
(while (< (-> cur-spec 0 field) arg2)
@@ -701,7 +702,8 @@
(if (nonzero? (-> this matrix)) ;; if we have an additional matrix, say we're at the camera so we always draw.
(set! f30-0 0.0))
;; og:preserve-this if we have ps2 particles off, say we're at the camera
(with-pc (if (not (-> *pc-settings* ps2-parts?)) (set! f30-0 0.0)))
(with-pc
(if (not (-> *pc-settings* ps2-parts?)) (set! f30-0 0.0)))
;; loop over particles in the group.
(let ((s2-1 (-> this length)))
(while (begin
@@ -815,10 +817,11 @@
;; birth funcs
;;;;;;;;;;;;;;;;;;;;;
(defun birth-func-copy-rot-color ((arg0 sparticle-system) (arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(defun birth-func-copy-rot-color ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(local-vars (v1-4 float) (v1-5 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
@@ -857,10 +860,11 @@
(define *global-toggle* 0)
(defun birth-func-copy2-rot-color ((arg0 sparticle-system) (arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(defun birth-func-copy2-rot-color ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(local-vars (v1-15 float) (v1-16 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
@@ -904,20 +908,22 @@
0
(none)))
(defun birth-func-copy-omega-to-z ((arg0 sparticle-system) (arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(defun birth-func-copy-omega-to-z ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(set! (-> arg2 qx-qy-qz-sy z) (+ -16384.0 (-> arg1 omega)))
(set! (-> arg1 next-time) (-> arg4 sprite next-time))
(set! (-> arg2 x-y-z-sx w) (* 163.85638 (the float (-> arg4 sprite next-time))))
0
(none))
(defun birth-func-random-next-time ((arg0 sparticle-system) (arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(defun birth-func-random-next-time ((arg0 sparticle-system)
(arg1 sparticle-cpuinfo)
(arg2 sprite-vec-data-3d)
(arg3 sparticle-launcher)
(arg4 sparticle-launch-state))
(set! (-> arg1 next-time) (the-as uint (the int (rand-vu-float-range 0.0 (-> arg1 user-float)))))
0
(none))
@@ -36,12 +36,13 @@
(set! (-> arg0 func) (-> arg1 func))
(none))
(defmethod new sparticle-system ((allocation symbol) (type-to-make type)
(arg0 int)
(arg1 int)
(arg2 symbol)
(arg3 pointer)
(arg4 (inline-array adgif-shader)))
(defmethod new sparticle-system ((allocation symbol)
(type-to-make type)
(arg0 int)
(arg1 int)
(arg2 symbol)
(arg3 pointer)
(arg4 (inline-array adgif-shader)))
"allocate a particle system.
arg0: number of group0's
arg1: number of group1's
@@ -457,7 +458,8 @@
(else (when (or (= v1-14 5) (= v1-14 10)) (set! *sp-60-hz* #t) (all-particles-50-to-60)))))
;; process the particles
;; og:preserve-this made this not run when paused, since aux sprites wont get added.
(unless (paused?) (clear-sprite-aux-list))
(unless (paused?)
(clear-sprite-aux-list))
(sp-process-particle-system *sp-particle-system-2d* 0 *sprite-array-2d*)
(sp-process-particle-system *sp-particle-system-2d* 1 *sprite-array-2d*)
(sp-process-particle-system *sp-particle-system-3d* 0 (the-as sprite-array-2d *sprite-array-3d*))
+23 -20
View File
@@ -285,7 +285,9 @@
;; math camera stuff
(set! (-> data basis-x quad) (the-as uint128 0))
(set! (-> data basis-x x) (- (-> *math-camera* perspective vector 0 x)))
(with-pc (when (pc-cheats? (-> *pc-settings* cheats) mirror) (*! (-> data basis-x x) -1.0)))
(with-pc
(when (pc-cheats? (-> *pc-settings* cheats) mirror)
(*! (-> data basis-x x) -1.0)))
(set! (-> data basis-y quad) (the-as uint128 0))
(set! (-> data basis-y y) (- (-> *math-camera* perspective vector 1 y)))
(set! (-> data min-scale) (sqrtf (* (/ 1.0 (-> data basis-x x)) (/ 1.0 (-> data basis-y y)))))
@@ -465,14 +467,15 @@
(f1-0 (-> *math-camera* perspective vector 0 x))
(f2-0 (-> *math-camera* perspective vector 1 y))
(f0-1 (* -1.9996 (-> *math-camera* perspective vector 0 x))))
(with-pc (when (not (-> *pc-settings* use-vis?))
;; when the game is in widescreen, HUD sprites are generally enlarged, which looks terrible.
;; this reverts that.
(*! f1-0 (-> *pc-settings* aspect-ratio-scale))
(*! f0-1 (-> *pc-settings* aspect-ratio-scale)))
(when (pc-cheats? (-> *pc-settings* cheats) mirror)
(*! f1-0 -1.0)
(*! f0-1 -1.0)))
(with-pc
(when (not (-> *pc-settings* use-vis?))
;; when the game is in widescreen, HUD sprites are generally enlarged, which looks terrible.
;; this reverts that.
(*! f1-0 (-> *pc-settings* aspect-ratio-scale))
(*! f0-1 (-> *pc-settings* aspect-ratio-scale)))
(when (pc-cheats? (-> *pc-settings* cheats) mirror)
(*! f1-0 -1.0)
(*! f0-1 -1.0)))
(set-vector! (-> mtx2 vector 0) f0-1 0.0 0.0 0.0)
(set-vector! (-> mtx2 vector 1) 0.0 (- (* (/ f2-0 f1-0) f0-1)) 0.0 0.0)
(set-vector! (-> mtx2 vector 2) 0.0 0.0 (- f0-1) 0.0)
@@ -546,19 +549,19 @@
(new 'static 'vif-tag :cmd (vif-cmd nop))
(new 'static 'vif-tag :cmd (vif-cmd unpack-v4-32) :num qwc-pkt2 :imm (new 'static 'vif-unpack-imm :flg 1 :addr 1))))
#|
;(when (= mscal-addr 3)
(dotimes (i num-sprites)
(let ((spidx (+ i start-sprite-idx)))
;(when (or (= spidx (-> sprites num-sprites 0)) (= spidx (+ 1 (-> sprites num-sprites 0))))
(let ((data (the sprite-vec-data-2d (&+ (-> sprites vec-data) (* 48 (+ i start-sprite-idx))))))
(let ((vec (-> data x-y-z-sx)))
(format 0 "sp: ~d ~f ~f ~f~%" (+ i start-sprite-idx) (-> vec x) (-> vec y) (-> vec z))
;(when (= mscal-addr 3)
(dotimes (i num-sprites)
(let ((spidx (+ i start-sprite-idx)))
;(when (or (= spidx (-> sprites num-sprites 0)) (= spidx (+ 1 (-> sprites num-sprites 0))))
(let ((data (the sprite-vec-data-2d (&+ (-> sprites vec-data) (* 48 (+ i start-sprite-idx))))))
(let ((vec (-> data x-y-z-sx)))
(format 0 "sp: ~d ~f ~f ~f~%" (+ i start-sprite-idx) (-> vec x) (-> vec y) (-> vec z))
)
)
)
; )
; )
)
)
)
; )
; )
|#
;; third packet is adgif data (5 qw/sprite)
(let ((qwc-pkt3 (* 5 num-sprites)))
+8 -8
View File
@@ -887,7 +887,7 @@
(tex-id uint))
(let ((total-upload-size 0))
(with-dma-buffer-add-bucket ((dma-buf (-> (current-frame) global-buf)) ;; the global DMA buffer
bucket-idx)
bucket-idx)
;; default to segment 0 only (mode 0)
(set! tex-data (-> page segment 0 block-data)) ;; data to send, in EE memory
(set! tex-dest-base-chunk (shr (-> page segment 0 dest) 12)) ;; destination chunk idx.
@@ -2072,13 +2072,13 @@
(set! (-> arg0 tex1) (new 'static 'gs-tex1 :mmag #x1 :mmin #x1))
(set! (-> arg0 tex0 tfx) 0)
#|
(set!
(-> arg0 tex0)
(the-as
gs-tex0
(logand (the-as uint (-> arg0 tex0)) (the-as uint #xffffffe7ffffffff))
)
)
(set!
(-> arg0 tex0)
(the-as
gs-tex0
(logand (the-as uint (-> arg0 tex0)) (the-as uint #xffffffe7ffffffff))
)
)
|#
(if arg1 (adgif-shader<-texture! arg0 arg1))
(set! (-> arg0 clamp) (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp)))
+326 -326
View File
@@ -50,26 +50,26 @@
(let ((s5-0 (+ (-> arg0 length) -1))) ;; get the number of trees with draw-nodes (see doc, the last one is always tfragments)
;; TODO
#|
(when (nonzero? s5-0) ;; only if we have draw-nodes (levels like INT have only like 2 tfrags)
(dotimes (s4-0 s5-0) ;; loop over tree depths
;; not sure of the details yet, but we take two levels as inputs
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3 (&-> (scratchpad-object terrain-context) work background vis-list a1-1))
(a0-8 (&-> (scratchpad-object terrain-context) work background vis-list a0-6))
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
(when (nonzero? s5-0) ;; only if we have draw-nodes (levels like INT have only like 2 tfrags)
(dotimes (s4-0 s5-0) ;; loop over tree depths
;; not sure of the details yet, but we take two levels as inputs
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3 (&-> (scratchpad-object terrain-context) work background vis-list a1-1))
(a0-8 (&-> (scratchpad-object terrain-context) work background vis-list a0-6))
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
)
)
)
)
)
)
)
|#
;; draw, using the full list of all tfrags (not tree format)
(let* ((v1-13 (the-as drawable-inline-array-tfrag (-> arg0 arrays s5-0)))
@@ -166,25 +166,25 @@
(when (logtest? *vu1-enable-user* (vu1-renderer-mask trans-tfrag))
(let ((s5-0 (+ (-> arg0 length) -1)))
#|
TODO
(when (nonzero? s5-0)
(dotimes (s4-0 s5-0)
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3 (&-> (the-as terrain-context #x70000000) work background vis-list a1-1))
(a0-8 (&-> (the-as terrain-context #x70000000) work background vis-list a0-6))
TODO
(when (nonzero? s5-0)
(dotimes (s4-0 s5-0)
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3 (&-> (the-as terrain-context #x70000000) work background vis-list a1-1))
(a0-8 (&-> (the-as terrain-context #x70000000) work background vis-list a0-6))
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
)
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
)
)
)
)
)
)
|#
(let* ((v1-13 (-> arg0 arrays s5-0))
(s5-1 (&+ v1-13 32))
@@ -225,87 +225,87 @@
s3-0
(the-as (pointer dma-tag) a3-3))))
#|
TODO
(let*
((s2-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s3-1 (-> s2-1 base))
)
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
(tfrag-near-init-buffer
s2-1
(new 'static 'gs-test
:ate #x1
:atst (gs-atest greater-equal)
:aref #x7e
:afail #x1
:zte #x1
:ztst (gs-ztest greater-equal)
)
1
)
(let* ((v1-48 (-> *perf-stats* data 6))
(a0-32 (-> v1-48 ctrl))
)
(+! (-> v1-48 count) 1)
(b! (zero? a0-32) cfg-15 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 r0-0)
(.mtpc pcr1 r0-0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-32)
)
(.sync.l)
(.sync.p)
(label cfg-15)
0
(draw-inline-array-tfrag-near sv-16 s5-1 s4-1 s2-1)
(let ((v1-51 (-> *perf-stats* data 6)))
(b! (zero? (-> v1-51 ctrl)) cfg-17 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mfpc a0-35 pcr0)
(+! (-> v1-51 accum0) a0-35)
(.mfpc a0-37 pcr1)
(+! (-> v1-51 accum1) a0-37)
)
(label cfg-17)
0
(update-wait-stats
(-> *perf-stats* data 6)
(the-as uint 0)
(-> *tfrag-work* near-wait-to-spr)
(-> *tfrag-work* near-wait-from-spr)
)
(tfrag-near-end-buffer s2-1)
(let ((a3-6 (-> s2-1 base)))
(let ((v1-58 (the-as object (-> s2-1 base))))
(set!
(-> (the-as dma-packet v1-58) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag))
(set! (-> s2-1 base) (&+ (the-as pointer v1-58) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(the-as
bucket-id
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
33
40
)
)
s3-1
(the-as (pointer dma-tag) a3-6)
)
)
)
TODO
(let*
((s2-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s3-1 (-> s2-1 base))
)
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
(tfrag-near-init-buffer
s2-1
(new 'static 'gs-test
:ate #x1
:atst (gs-atest greater-equal)
:aref #x7e
:afail #x1
:zte #x1
:ztst (gs-ztest greater-equal)
)
1
)
(let* ((v1-48 (-> *perf-stats* data 6))
(a0-32 (-> v1-48 ctrl))
)
(+! (-> v1-48 count) 1)
(b! (zero? a0-32) cfg-15 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 r0-0)
(.mtpc pcr1 r0-0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-32)
)
(.sync.l)
(.sync.p)
(label cfg-15)
0
(draw-inline-array-tfrag-near sv-16 s5-1 s4-1 s2-1)
(let ((v1-51 (-> *perf-stats* data 6)))
(b! (zero? (-> v1-51 ctrl)) cfg-17 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mfpc a0-35 pcr0)
(+! (-> v1-51 accum0) a0-35)
(.mfpc a0-37 pcr1)
(+! (-> v1-51 accum1) a0-37)
)
(label cfg-17)
0
(update-wait-stats
(-> *perf-stats* data 6)
(the-as uint 0)
(-> *tfrag-work* near-wait-to-spr)
(-> *tfrag-work* near-wait-from-spr)
)
(tfrag-near-end-buffer s2-1)
(let ((a3-6 (-> s2-1 base)))
(let ((v1-58 (the-as object (-> s2-1 base))))
(set!
(-> (the-as dma-packet v1-58) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag))
(set! (-> s2-1 base) (&+ (the-as pointer v1-58) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(the-as
bucket-id
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
33
40
)
)
s3-1
(the-as (pointer dma-tag) a3-6)
)
)
)
|#
)))
(none))
@@ -315,41 +315,41 @@
(when (logtest? *vu1-enable-user* (vu1-renderer-mask trans-tfrag))
(let ((s5-0 (+ (-> arg0 length) -1)))
#|
TODO
(when (nonzero? s5-0)
(dotimes (s4-0 s5-0)
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3
(&->
(the-as terrain-context #x70000000)
work
background
vis-list
a1-1
)
)
(a0-8
(&->
(the-as terrain-context #x70000000)
work
background
vis-list
a0-6
)
TODO
(when (nonzero? s5-0)
(dotimes (s4-0 s5-0)
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3
(&->
(the-as terrain-context #x70000000)
work
background
vis-list
a1-1
)
)
(a0-8
(&->
(the-as terrain-context #x70000000)
work
background
vis-list
a0-6
)
)
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
)
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
)
)
)
)
)
)
|#
(let* ((v1-13 (-> arg0 arrays s5-0))
(s5-1 (&+ v1-13 32))
@@ -379,84 +379,84 @@
s3-0
(the-as (pointer dma-tag) a3-3))))
#|
(let*
((s2-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s3-1 (-> s2-1 base))
)
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
(tfrag-near-init-buffer
s2-1
(new 'static 'gs-test
:ate #x1
:afail #x1
:zte #x1
:ztst (gs-ztest greater-equal)
)
1
)
(let* ((v1-48 (-> *perf-stats* data 6))
(a0-32 (-> v1-48 ctrl))
)
(+! (-> v1-48 count) 1)
(b! (zero? a0-32) cfg-15 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 r0-0)
(.mtpc pcr1 r0-0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-32)
)
(.sync.l)
(.sync.p)
(label cfg-15)
0
(draw-inline-array-tfrag-near sv-16 s5-1 s4-1 s2-1)
(let ((v1-51 (-> *perf-stats* data 6)))
(b! (zero? (-> v1-51 ctrl)) cfg-17 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mfpc a0-35 pcr0)
(+! (-> v1-51 accum0) a0-35)
(.mfpc a0-37 pcr1)
(+! (-> v1-51 accum1) a0-37)
)
(label cfg-17)
0
(update-wait-stats
(-> *perf-stats* data 6)
(the-as uint 0)
(-> *tfrag-work* near-wait-to-spr)
(-> *tfrag-work* near-wait-from-spr)
)
(tfrag-near-end-buffer s2-1)
(let ((a3-6 (-> s2-1 base)))
(let ((v1-58 (the-as object (-> s2-1 base))))
(set!
(-> (the-as dma-packet v1-58) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag))
(set! (-> s2-1 base) (&+ (the-as pointer v1-58) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(the-as
bucket-id
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
35
42
)
)
s3-1
(the-as (pointer dma-tag) a3-6)
)
)
)
(let*
((s2-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s3-1 (-> s2-1 base))
)
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
(tfrag-near-init-buffer
s2-1
(new 'static 'gs-test
:ate #x1
:afail #x1
:zte #x1
:ztst (gs-ztest greater-equal)
)
1
)
(let* ((v1-48 (-> *perf-stats* data 6))
(a0-32 (-> v1-48 ctrl))
)
(+! (-> v1-48 count) 1)
(b! (zero? a0-32) cfg-15 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 r0-0)
(.mtpc pcr1 r0-0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-32)
)
(.sync.l)
(.sync.p)
(label cfg-15)
0
(draw-inline-array-tfrag-near sv-16 s5-1 s4-1 s2-1)
(let ((v1-51 (-> *perf-stats* data 6)))
(b! (zero? (-> v1-51 ctrl)) cfg-17 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mfpc a0-35 pcr0)
(+! (-> v1-51 accum0) a0-35)
(.mfpc a0-37 pcr1)
(+! (-> v1-51 accum1) a0-37)
)
(label cfg-17)
0
(update-wait-stats
(-> *perf-stats* data 6)
(the-as uint 0)
(-> *tfrag-work* near-wait-to-spr)
(-> *tfrag-work* near-wait-from-spr)
)
(tfrag-near-end-buffer s2-1)
(let ((a3-6 (-> s2-1 base)))
(let ((v1-58 (the-as object (-> s2-1 base))))
(set!
(-> (the-as dma-packet v1-58) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag))
(set! (-> s2-1 base) (&+ (the-as pointer v1-58) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(the-as
bucket-id
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
35
42
)
)
s3-1
(the-as (pointer dma-tag) a3-6)
)
)
)
|#
)))
(none))
@@ -466,25 +466,25 @@
(when (logtest? *vu1-enable-user* (vu1-renderer-mask trans-tfrag))
(let ((s5-0 (+ (-> arg0 length) -1)))
#|
TODO
(when (nonzero? s5-0)
(dotimes (s4-0 s5-0)
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3 (&-> (the-as terrain-context #x70000000) work background vis-list a1-1))
(a0-8 (&-> (the-as terrain-context #x70000000) work background vis-list a0-6))
TODO
(when (nonzero? s5-0)
(dotimes (s4-0 s5-0)
(let* ((v1-7 (-> arg0 arrays s4-0))
(a0-4 (-> arg0 arrays (+ s4-0 1)))
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
(a1-3 (&-> (the-as terrain-context #x70000000) work background vis-list a1-1))
(a0-8 (&-> (the-as terrain-context #x70000000) work background vis-list a0-6))
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
)
)
(draw-node-cull
a0-8
a1-3
(-> (the-as drawable-inline-array-node v1-7) data)
(-> (the-as drawable-inline-array-node v1-7) length)
)
)
)
)
)
)
|#
(let* ((v1-13 (-> arg0 arrays s5-0))
(s5-1 (&+ v1-13 32))
@@ -517,85 +517,85 @@
s3-0
(the-as (pointer dma-tag) a3-3))))
#|
(let*
((s2-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s3-1 (-> s2-1 base))
)
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
(tfrag-near-init-buffer
s2-1
(new 'static 'gs-test
:ate #x1
:atst (gs-atest always)
:afail #x1
:zte #x1
:ztst (gs-ztest greater-equal)
)
1
)
(let* ((v1-48 (-> *perf-stats* data 6))
(a0-32 (-> v1-48 ctrl))
)
(+! (-> v1-48 count) 1)
(b! (zero? a0-32) cfg-15 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 r0-0)
(.mtpc pcr1 r0-0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-32)
)
(.sync.l)
(.sync.p)
(label cfg-15)
0
(draw-inline-array-tfrag-near sv-16 s5-1 s4-1 s2-1)
(let ((v1-51 (-> *perf-stats* data 6)))
(b! (zero? (-> v1-51 ctrl)) cfg-17 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mfpc a0-35 pcr0)
(+! (-> v1-51 accum0) a0-35)
(.mfpc a0-37 pcr1)
(+! (-> v1-51 accum1) a0-37)
)
(label cfg-17)
0
(update-wait-stats
(-> *perf-stats* data 6)
(the-as uint 0)
(-> *tfrag-work* near-wait-to-spr)
(-> *tfrag-work* near-wait-from-spr)
)
(tfrag-near-end-buffer s2-1)
(let ((a3-6 (-> s2-1 base)))
(let ((v1-58 (the-as object (-> s2-1 base))))
(set!
(-> (the-as dma-packet v1-58) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag))
(set! (-> s2-1 base) (&+ (the-as pointer v1-58) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(the-as
bucket-id
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
37
44
)
)
s3-1
(the-as (pointer dma-tag) a3-6)
)
)
)
(let*
((s2-1 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s3-1 (-> s2-1 base))
)
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
(tfrag-near-init-buffer
s2-1
(new 'static 'gs-test
:ate #x1
:atst (gs-atest always)
:afail #x1
:zte #x1
:ztst (gs-ztest greater-equal)
)
1
)
(let* ((v1-48 (-> *perf-stats* data 6))
(a0-32 (-> v1-48 ctrl))
)
(+! (-> v1-48 count) 1)
(b! (zero? a0-32) cfg-15 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mtpc pcr0 r0-0)
(.mtpc pcr1 r0-0)
(.sync.l)
(.sync.p)
(.mtc0 Perf a0-32)
)
(.sync.l)
(.sync.p)
(label cfg-15)
0
(draw-inline-array-tfrag-near sv-16 s5-1 s4-1 s2-1)
(let ((v1-51 (-> *perf-stats* data 6)))
(b! (zero? (-> v1-51 ctrl)) cfg-17 :delay (nop!))
(.mtc0 Perf r0-0)
(.sync.l)
(.sync.p)
(.mfpc a0-35 pcr0)
(+! (-> v1-51 accum0) a0-35)
(.mfpc a0-37 pcr1)
(+! (-> v1-51 accum1) a0-37)
)
(label cfg-17)
0
(update-wait-stats
(-> *perf-stats* data 6)
(the-as uint 0)
(-> *tfrag-work* near-wait-to-spr)
(-> *tfrag-work* near-wait-from-spr)
)
(tfrag-near-end-buffer s2-1)
(let ((a3-6 (-> s2-1 base)))
(let ((v1-58 (the-as object (-> s2-1 base))))
(set!
(-> (the-as dma-packet v1-58) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag))
(set! (-> s2-1 base) (&+ (the-as pointer v1-58) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(the-as
bucket-id
(if (zero? (-> (the-as terrain-context #x70000000) bsp lev-index))
37
44
)
)
s3-1
(the-as (pointer dma-tag) a3-6)
)
)
)
|#
)))
(none))
+145 -145
View File
@@ -97,99 +97,99 @@
(set! (-> (the-as (pointer uint32) (-> gp-3 last)) 1) (the-as uint s5-3))
(set! (-> gp-3 last) (the-as (pointer dma-tag) v1-39))))))
#|
;; level 0's tie near
(let ((gp-4 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-0))))
(when (!= gp-4 (-> gp-4 last))
(let* ((s5-4 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s4-7 (-> s5-4 base))
)
(tie-near-init-engine
s5-4
(new 'static 'gs-test
:ate #x1
:atst (gs-atest greater-equal)
:aref #x26
:zte #x1
:ztst (gs-ztest greater-equal)
;; level 0's tie near
(let ((gp-4 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-0))))
(when (!= gp-4 (-> gp-4 last))
(let* ((s5-4 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s4-7 (-> s5-4 base))
)
(tie-near-init-engine
s5-4
(new 'static 'gs-test
:ate #x1
:atst (gs-atest greater-equal)
:aref #x26
:zte #x1
:ztst (gs-ztest greater-equal)
)
0
)
0
)
(let ((v1-48 (the-as object (-> s5-4 base))))
(set! (-> (the-as dma-packet v1-48) dma) (new 'static 'dma-tag :id (dma-tag-id next) :addr (-> gp-4 next)))
(set! (-> (the-as dma-packet v1-48) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-48) vif1) (new 'static 'vif-tag))
(set! (-> s5-4 base) (&+ (the-as pointer v1-48) 16))
)
(set! (-> gp-4 next) (the-as uint s4-7))
)
)
)
(let ((gp-5 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-0))))
(when (!= gp-5 (-> gp-5 last))
(let* ((s4-8 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s5-5 (-> s4-8 base))
)
(tie-near-end-buffer s4-8)
(let ((v1-59 (-> s4-8 base)))
(let ((a0-55 (the-as object (-> s4-8 base))))
(set! (-> (the-as dma-packet a0-55) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
(set! (-> (the-as dma-packet a0-55) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet a0-55) vif1) (new 'static 'vif-tag))
(set! (-> s4-8 base) (&+ (the-as pointer a0-55) 16))
(let ((v1-48 (the-as object (-> s5-4 base))))
(set! (-> (the-as dma-packet v1-48) dma) (new 'static 'dma-tag :id (dma-tag-id next) :addr (-> gp-4 next)))
(set! (-> (the-as dma-packet v1-48) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-48) vif1) (new 'static 'vif-tag))
(set! (-> s5-4 base) (&+ (the-as pointer v1-48) 16))
)
(set! (-> (the-as (pointer uint32) (-> gp-5 last)) 1) (the-as uint s5-5))
(set! (-> gp-5 last) (the-as (pointer dma-tag) v1-59))
(set! (-> gp-4 next) (the-as uint s4-7))
)
)
)
)
;; level 1's tie near
(let ((gp-6 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-1))))
(when (!= gp-6 (-> gp-6 last))
(let* ((s5-6 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s4-10 (-> s5-6 base))
)
(tie-near-init-engine
s5-6
(new 'static 'gs-test
:ate #x1
:atst (gs-atest greater-equal)
:aref #x26
:zte #x1
:ztst (gs-ztest greater-equal)
(let ((gp-5 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-0))))
(when (!= gp-5 (-> gp-5 last))
(let* ((s4-8 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s5-5 (-> s4-8 base))
)
(tie-near-end-buffer s4-8)
(let ((v1-59 (-> s4-8 base)))
(let ((a0-55 (the-as object (-> s4-8 base))))
(set! (-> (the-as dma-packet a0-55) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
(set! (-> (the-as dma-packet a0-55) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet a0-55) vif1) (new 'static 'vif-tag))
(set! (-> s4-8 base) (&+ (the-as pointer a0-55) 16))
)
(set! (-> (the-as (pointer uint32) (-> gp-5 last)) 1) (the-as uint s5-5))
(set! (-> gp-5 last) (the-as (pointer dma-tag) v1-59))
)
)
)
)
;; level 1's tie near
(let ((gp-6 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-1))))
(when (!= gp-6 (-> gp-6 last))
(let* ((s5-6 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s4-10 (-> s5-6 base))
)
(tie-near-init-engine
s5-6
(new 'static 'gs-test
:ate #x1
:atst (gs-atest greater-equal)
:aref #x26
:zte #x1
:ztst (gs-ztest greater-equal)
)
0
)
(let ((v1-68 (the-as object (-> s5-6 base))))
(set! (-> (the-as dma-packet v1-68) dma) (new 'static 'dma-tag :id (dma-tag-id next) :addr (-> gp-6 next)))
(set! (-> (the-as dma-packet v1-68) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-68) vif1) (new 'static 'vif-tag))
(set! (-> s5-6 base) (&+ (the-as pointer v1-68) 16))
)
(set! (-> gp-6 next) (the-as uint s4-10))
)
)
)
(let ((gp-7 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-1))))
(when (!= gp-7 (-> gp-7 last))
(let* ((s4-11 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s5-7 (-> s4-11 base))
)
(tie-near-end-buffer s4-11)
(let ((v1-79 (-> s4-11 base)))
(let ((a0-74 (the-as object (-> s4-11 base))))
(set! (-> (the-as dma-packet a0-74) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
(set! (-> (the-as dma-packet a0-74) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet a0-74) vif1) (new 'static 'vif-tag))
(set! (-> s4-11 base) (&+ (the-as pointer a0-74) 16))
)
(set! (-> (the-as (pointer uint32) (-> gp-7 last)) 1) (the-as uint s5-7))
(set! (-> gp-7 last) (the-as (pointer dma-tag) v1-79))
)
0
)
(let ((v1-68 (the-as object (-> s5-6 base))))
(set! (-> (the-as dma-packet v1-68) dma) (new 'static 'dma-tag :id (dma-tag-id next) :addr (-> gp-6 next)))
(set! (-> (the-as dma-packet v1-68) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-68) vif1) (new 'static 'vif-tag))
(set! (-> s5-6 base) (&+ (the-as pointer v1-68) 16))
)
(set! (-> gp-6 next) (the-as uint s4-10))
)
)
)
(let ((gp-7 (-> *display* frames (-> *display* on-screen) frame bucket-group (bucket-id tie-near-1))))
(when (!= gp-7 (-> gp-7 last))
(let* ((s4-11 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s5-7 (-> s4-11 base))
)
(tie-near-end-buffer s4-11)
(let ((v1-79 (-> s4-11 base)))
(let ((a0-74 (the-as object (-> s4-11 base))))
(set! (-> (the-as dma-packet a0-74) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
(set! (-> (the-as dma-packet a0-74) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet a0-74) vif1) (new 'static 'vif-tag))
(set! (-> s4-11 base) (&+ (the-as pointer a0-74) 16))
)
(set! (-> (the-as (pointer uint32) (-> gp-7 last)) 1) (the-as uint s5-7))
(set! (-> gp-7 last) (the-as (pointer dma-tag) v1-79))
)
)
)
)
|#
0
(none))
@@ -274,24 +274,24 @@
;; The instance drawing will end up looking at too many instances, but this is fine - it
;; should reject those, and it plenty fast.
#|
(when (nonzero? s4-0)
(dotimes (s3-0 s4-0)
(let* ((v1-10 (-> arg0 data s3-0))
(a0-5 (-> arg0 data (+ s3-0 1)))
(a1-2 (/ (-> (the-as drawable-inline-array-node v1-10) data 0 id) 8))
(a0-7 (/ (-> (the-as drawable-inline-array-node a0-5) data 0 id) 8))
(a1-4 (+ a1-2 #x38b0 #x70000000))
(a0-9 (+ a0-7 #x38b0 #x70000000))
)
(draw-node-cull
(the-as pointer a0-9)
(the-as pointer a1-4)
(-> (the-as drawable-inline-array-node v1-10) data)
(-> (the-as drawable-inline-array-node v1-10) length)
(when (nonzero? s4-0)
(dotimes (s3-0 s4-0)
(let* ((v1-10 (-> arg0 data s3-0))
(a0-5 (-> arg0 data (+ s3-0 1)))
(a1-2 (/ (-> (the-as drawable-inline-array-node v1-10) data 0 id) 8))
(a0-7 (/ (-> (the-as drawable-inline-array-node a0-5) data 0 id) 8))
(a1-4 (+ a1-2 #x38b0 #x70000000))
(a0-9 (+ a0-7 #x38b0 #x70000000))
)
(draw-node-cull
(the-as pointer a0-9)
(the-as pointer a1-4)
(-> (the-as drawable-inline-array-node v1-10) data)
(-> (the-as drawable-inline-array-node v1-10) length)
)
)
)
)
)
)
)
|#
(let* ((v1-16 (-> arg0 data s4-0)) ;; leaves
(s4-1 (-> arg0 prototypes prototype-array-tie)) ;; prototypes
@@ -414,51 +414,51 @@
(&- (-> *display* frames (-> *display* on-screen) frame global-buf base) (the-as uint s3-2)))
(set! (-> v1-100 data 9 total) (-> v1-100 data 9 used))))))
#|
(when (logtest? *vu1-enable-user* (vu1-renderer-mask tie-near))
(let ((s3-3 (-> *display* frames (-> *display* on-screen) frame global-buf base)))
(let* ((s1-2 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s2-3 (-> s1-2 base))
)
(set! (-> *prototype-tie-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *prototype-tie-work* near-wait-from-spr) (the-as uint 0))
(reset! (-> *perf-stats* data 12))
;;(draw-inline-array-prototype-tie-near-asm s1-2 s5-1 s4-1)
(read! (-> *perf-stats* data 12))
(update-wait-stats (-> *perf-stats* data 12) (the-as uint 0)
(-> *prototype-tie-work* near-wait-to-spr)
(-> *prototype-tie-work* near-wait-from-spr)
)
(let ((a3-16 (-> s1-2 base)))
(let ((v1-123 (the-as object (-> s1-2 base))))
(set! (-> (the-as dma-packet v1-123) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
(set! (-> (the-as dma-packet v1-123) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-123) vif1) (new 'static 'vif-tag))
(set! (-> s1-2 base) (&+ (the-as pointer v1-123) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(if (zero? (-> arg1 index))
(bucket-id tie-near-0)
(bucket-id tie-near-1)
(when (logtest? *vu1-enable-user* (vu1-renderer-mask tie-near))
(let ((s3-3 (-> *display* frames (-> *display* on-screen) frame global-buf base)))
(let* ((s1-2 (-> *display* frames (-> *display* on-screen) frame global-buf))
(s2-3 (-> s1-2 base))
)
(set! (-> *prototype-tie-work* near-wait-to-spr) (the-as uint 0))
(set! (-> *prototype-tie-work* near-wait-from-spr) (the-as uint 0))
(reset! (-> *perf-stats* data 12))
;;(draw-inline-array-prototype-tie-near-asm s1-2 s5-1 s4-1)
(read! (-> *perf-stats* data 12))
(update-wait-stats (-> *perf-stats* data 12) (the-as uint 0)
(-> *prototype-tie-work* near-wait-to-spr)
(-> *prototype-tie-work* near-wait-from-spr)
)
(let ((a3-16 (-> s1-2 base)))
(let ((v1-123 (the-as object (-> s1-2 base))))
(set! (-> (the-as dma-packet v1-123) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
(set! (-> (the-as dma-packet v1-123) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-123) vif1) (new 'static 'vif-tag))
(set! (-> s1-2 base) (&+ (the-as pointer v1-123) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(if (zero? (-> arg1 index))
(bucket-id tie-near-0)
(bucket-id tie-near-1)
)
s2-3
(the-as (pointer dma-tag) a3-16)
)
)
)
(let ((a0-92 *dma-mem-usage*))
(when (nonzero? a0-92)
(set! (-> a0-92 length) (max 16 (-> a0-92 length)))
(set! (-> a0-92 data 15 name) "tie-near")
(+! (-> a0-92 data 15 count) 1)
(+! (-> a0-92 data 15 used)
(&- (-> *display* frames (-> *display* on-screen) frame global-buf base) (the-as uint s3-3))
)
(set! (-> a0-92 data 15 total) (-> a0-92 data 15 used))
)
)
)
)
s2-3
(the-as (pointer dma-tag) a3-16)
)
)
)
(let ((a0-92 *dma-mem-usage*))
(when (nonzero? a0-92)
(set! (-> a0-92 length) (max 16 (-> a0-92 length)))
(set! (-> a0-92 data 15 name) "tie-near")
(+! (-> a0-92 data 15 count) 1)
(+! (-> a0-92 data 15 used)
(&- (-> *display* frames (-> *display* on-screen) frame global-buf base) (the-as uint s3-3))
)
(set! (-> a0-92 data 15 total) (-> a0-92 data 15 used))
)
)
)
)
|#
))))
0)
File diff suppressed because it is too large Load Diff
+28 -26
View File
@@ -450,12 +450,12 @@
;;(.mfc0 current-timer Count)
;; this would quit the login function after some amount of time elapsed.
#|
(let ((elapsed-timer (- current-timer initial-timer)))
(when (< #x186a0 elapsed-timer)
(set! loaded-level loaded-level)
(goto cfg-78)
)
)
(let ((elapsed-timer (- current-timer initial-timer)))
(when (< #x186a0 elapsed-timer)
(set! loaded-level loaded-level)
(goto cfg-78)
)
)
|#
(let ((current-login-pos (the-as int (-> level-login-state pos))))
;; Login state -1.
@@ -603,18 +603,20 @@
"Birth a level to make it alive! It must be loaded."
(case (-> this status)
(('loaded)
(protect (loading-level (-> *level* loading-level) (-> *level* log-in-level-bsp))
(set! loading-level (-> this heap))
(set! (-> *level* log-in-level-bsp) (-> this bsp))
(set! (-> *level* loading-level) this)
(birth (-> this bsp))
(set! (-> this status) 'alive)
;;(load-dbg "copy perms~%")
(copy-perms-to-level! *game-info* this)
;;(load-dbg "send activate~%")
;; note: this isn't a great name - the level isn't actually activated, just alive.
(send-event *camera* 'level-activate (-> this name))
(send-event *target* 'level-activate (-> this name)))))
(protect (loading-level
(-> *level* loading-level)
(-> *level* log-in-level-bsp))
(set! loading-level (-> this heap))
(set! (-> *level* log-in-level-bsp) (-> this bsp))
(set! (-> *level* loading-level) this)
(birth (-> this bsp))
(set! (-> this status) 'alive)
;;(load-dbg "copy perms~%")
(copy-perms-to-level! *game-info* this)
;;(load-dbg "send activate~%")
;; note: this isn't a great name - the level isn't actually activated, just alive.
(send-event *camera* 'level-activate (-> this name))
(send-event *target* 'level-activate (-> this name)))))
this)
(defmethod deactivate ((this level))
@@ -998,14 +1000,14 @@
)
(set-blackout-frames 6)
(unless *dproc*
(reset! *load-state*)
(let ((s4-1 (level-get-for-use *level* startup-level 'active)))
(load-state-want-levels startup-level #f)
(load-state-want-display-level startup-level 'display)
(load-state-want-vis (-> (lookup-level-info startup-level) nickname))
(while (and s4-1 (or (= (-> s4-1 status) 'loading) (= (-> s4-1 status) 'loading-bt) (= (-> s4-1 status) 'login)))
(set-blackout-frames 6)
(load-continue s4-1))))
(reset! *load-state*)
(let ((s4-1 (level-get-for-use *level* startup-level 'active)))
(load-state-want-levels startup-level #f)
(load-state-want-display-level startup-level 'display)
(load-state-want-vis (-> (lookup-level-info startup-level) nickname))
(while (and s4-1 (or (= (-> s4-1 status) 'loading) (= (-> s4-1 status) 'loading-bt) (= (-> s4-1 status) 'login)))
(set-blackout-frames 6)
(load-continue s4-1))))
(set! *print-login* #f)
(level-status-set! (level-get *level* startup-level) 'active))
(load-dbg "Load complete. Level: ~A. Now starting display!~%" (-> *level* level0))
+3 -4
View File
@@ -324,7 +324,7 @@
;; the load-boundary-data.gc file can be re-generated after editing load boundaries.
(defmacro static-lb-list (&rest lbs)
`(new 'static 'boxed-array :type array :length ,(length lbs) :allocated-length ,(length lbs) ,@ (reverse lbs)))
`(new 'static 'boxed-array :type array :length ,(length lbs) :allocated-length ,(length lbs) ,@(reverse lbs)))
(defmacro static-load-boundary (&key flags &key top &key bot &key points &key (fwd (invalid #f #f)) &key (bwd (invalid #f #f)))
`(new 'static
@@ -333,7 +333,7 @@
object
:length 4
:allocated-length 4
(the binteger (load-boundary-flags ,@ flags))
(the binteger (load-boundary-flags ,@flags))
(new 'static
'boxed-array
:type
@@ -344,8 +344,7 @@
,(+ 2 (length points))
,top
,bot
,@
points)
,@points)
'((the binteger (load-boundary-cmd ,(first fwd))) ,(second fwd) ,(third fwd))
'((the binteger (load-boundary-cmd ,(first bwd))) ,(second bwd) ,(third bwd))))
+12 -12
View File
@@ -94,10 +94,10 @@
(cond
((type-type? (-> arg0 type) string)
#|
(with-sp (protect sp
(if (< sp *stack-top*)
(set! sp (&+ *kernel-sp* -1024))
)
(with-sp (protect sp
(if (< sp *stack-top*)
(set! sp (&+ *kernel-sp* -1024))
)
|#
(let ((s5-1 (the-as drawable (loado (the-as string arg0) arg1))))
(if (and s5-1 (type-type? (-> s5-1 type) drawable)) (login s5-1)))
@@ -108,10 +108,10 @@
(defun art-load ((arg0 string) (arg1 kheap))
"Load an art file. Unused."
#|
(with-sp (protect sp
(if (< sp *stack-top*)
(set! sp (&+ *kernel-sp* -1024))
)
(with-sp (protect sp
(if (< sp *stack-top*)
(set! sp (&+ *kernel-sp* -1024))
)
|#
(let ((s5-0 (the-as art (loado arg0 arg1)))) (if (type-type? (-> s5-0 type) art) (login s5-0) (the-as art #f)))
;;))
@@ -121,10 +121,10 @@
"Load and check an art-group file. this only runs if we're using debug memory."
(when *debug-segment*
#|
(with-sp (protect sp
(if (< sp *stack-top*)
(set! sp (&+ *kernel-sp* -1024))
)
(with-sp (protect sp
(if (< sp *stack-top*)
(set! sp (&+ *kernel-sp* -1024))
)
|#
(let ((s3-1 (the-as art-group (loado (make-file-name (file-kind art-group) arg0 arg2 #f) arg1))))
(cond
+1 -1
View File
@@ -87,7 +87,7 @@
;; create a static array with the given values, interpreted as floats.
(defmacro make-float-table (name size vals)
`(define ,name (new 'static 'boxed-array :type float :length ,size ,@ (apply (lambda (x) `(the-as float ,x)) vals))))
`(define ,name (new 'static 'boxed-array :type float :length ,size ,@(apply (lambda (x) `(the-as float ,x)) vals))))
;; table[x] = 1/(2^x)
;; unused?
+9 -9
View File
@@ -313,15 +313,15 @@
`(-> *cpad-list* cpads ,pad-idx button0-abs 0))
(defmacro cpad-pressed? (pad-idx &rest buttons)
`(logtest? (cpad-pressed ,pad-idx) (pad-buttons ,@ buttons)))
`(logtest? (cpad-pressed ,pad-idx) (pad-buttons ,@buttons)))
(defmacro cpad-hold? (pad-idx &rest buttons)
`(logtest? (cpad-hold ,pad-idx) (pad-buttons ,@ buttons)))
`(logtest? (cpad-hold ,pad-idx) (pad-buttons ,@buttons)))
(defmacro cpad-clear! (pad-idx &rest buttons)
`(begin
(logclear! (cpad-pressed ,pad-idx) (pad-buttons ,@ buttons))
(logclear! (cpad-hold ,pad-idx) (pad-buttons ,@ buttons))))
(logclear! (cpad-pressed ,pad-idx) (pad-buttons ,@buttons))
(logclear! (cpad-hold ,pad-idx) (pad-buttons ,@buttons))))
(defmacro cpad-change-time (pad-idx)
`(-> *cpad-list* cpads ,pad-idx change-time))
@@ -330,12 +330,12 @@
"execute body when a cheat code made up of sequential inputs has been inputted"
`(when (nonzero? (cpad-pressed ,pad-idx)) ;; only check when some button has been pressed
(case ,cheat-var
,@
(apply-i
,@(apply-i
(lambda (x i)
`((,i) (if (cpad-pressed? ,pad-idx ,x)
,(if (< i (- (length buttons) 1)) `(1 +! ,cheat-var) `(begin ,@ body (set! ,cheat-var 0)))
(set! ,cheat-var 0))))
`((,i)
(if (cpad-pressed? ,pad-idx ,x)
,(if (< i (- (length buttons) 1)) `(1 +! ,cheat-var) `(begin ,@body (set! ,cheat-var 0)))
(set! ,cheat-var 0))))
buttons))))
(defmacro cheats-sound-play (cheat?)
@@ -18,11 +18,12 @@
0
(none))
(defun target-collision-low-coverage ((arg0 control-info) (arg1 collide-shape-intersect)
(arg2 vector)
(arg3 (pointer uint32))
(arg4 (pointer uint64))
(arg5 (pointer symbol)))
(defun target-collision-low-coverage ((arg0 control-info)
(arg1 collide-shape-intersect)
(arg2 vector)
(arg3 (pointer uint32))
(arg4 (pointer uint64))
(arg5 (pointer symbol)))
(local-vars
(sv-16 vector)
(sv-20 (pointer uint32))
+18 -17
View File
@@ -11,23 +11,24 @@
;; DECOMP BEGINS
(define *sidekick-remap*
'(("run-to-stance-left" "run-to-stance") ("run-to-stance-loop-left" "run-to-stance-loop")
("stance-loop-left" "stance-loop")
("run-to-stance-right" "run-to-stance")
("run-to-stance-loop-right" "run-to-stance-loop")
("stance-loop-right" "stance-loop")
("run-to-stance-up" "run-to-stance")
("run-to-stance-loop-up" "run-to-stance-loop")
("stance-loop-up" "stance-loop")
("run-to-stance-down" "run-to-stance")
("run-to-stance-loop-down" "run-to-stance-loop")
("stance-loop-down" "stance-loop")
("run-right" "run")
("run-left" "run")
("walk-right" "walk")
("walk-left" "walk")
("edge-grab-stance1" "edge-grab-stance1" "edge-grab-stance1-alt")
("pole-cycle" "pole-cycle" "pole-cycle2")))
'(("run-to-stance-left" "run-to-stance")
("run-to-stance-loop-left" "run-to-stance-loop")
("stance-loop-left" "stance-loop")
("run-to-stance-right" "run-to-stance")
("run-to-stance-loop-right" "run-to-stance-loop")
("stance-loop-right" "stance-loop")
("run-to-stance-up" "run-to-stance")
("run-to-stance-loop-up" "run-to-stance-loop")
("stance-loop-up" "stance-loop")
("run-to-stance-down" "run-to-stance")
("run-to-stance-loop-down" "run-to-stance-loop")
("stance-loop-down" "stance-loop")
("run-right" "run")
("run-left" "run")
("walk-right" "walk")
("walk-left" "walk")
("edge-grab-stance1" "edge-grab-stance1" "edge-grab-stance1-alt")
("pole-cycle" "pole-cycle" "pole-cycle2")))
(defun cspace<-cspace+quaternion! ((arg0 cspace) (arg1 cspace) (arg2 quaternion))
(rlet ((Q :class vf)

Some files were not shown because too many files have changed in this diff Show More