mirror of
https://github.com/open-goal/jak-project
synced 2026-08-26 16:16:36 -04:00
format/j1: re-format all files to catch any improvements made along the way
This commit is contained in:
@@ -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,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)
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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*
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,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))
|
||||
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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))
|
||||
|
||||
@@ -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) ())
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))))
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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)))))))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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))
|
||||
)
|
||||
|#
|
||||
)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))))
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|#
|
||||
))
|
||||
|
||||
|
||||
@@ -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))))
|
||||
|
||||
@@ -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*))
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
+1583
-1542
File diff suppressed because it is too large
Load Diff
@@ -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))
|
||||
|
||||
@@ -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))))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user