;;-*-Lisp-*- (in-package goal) ;; name: static-screen.gc ;; name in dgo: static-screen ;; dgos: DEM, L1, TIT ;; definition of type static-screen (deftype static-screen (process) ((part sparticle-launch-control 1 :offset-assert 112) (state-time uint64 :offset-assert 120) ) :heap-base #x10 :method-count-assert 15 :size-assert #x80 :flag-assert #xf00100080 (:methods (idle (int int symbol) _type_ :state 14) ) ) ;; definition for method 7 of type static-screen ;; INFO: Return type mismatch process vs static-screen. (defmethod relocate static-screen ((obj static-screen) (arg0 int)) (let ((v1-0 *kernel-context*)) (set! (-> v1-0 relocating-process) obj) (set! (-> v1-0 relocating-min) (the-as int (&-> obj type))) (set! (-> v1-0 relocating-max) (the-as int (+ (+ (-> obj allocated-length) -4 (-> process size)) (the-as int obj)) ) ) (set! (-> v1-0 relocating-offset) arg0) ) (dotimes (v1-2 1) (if (nonzero? (-> obj part v1-2)) (&+! (-> obj part v1-2) arg0) ) ) (the-as static-screen ((method-of-type process relocate) obj arg0)) ) ;; definition for method 10 of type static-screen (defmethod deactivate static-screen ((obj static-screen)) (dotimes (s5-0 1) (if (nonzero? (-> obj part s5-0)) (kill-and-free-particles (-> obj part s5-0)) ) ) ((method-of-type process deactivate) obj) (none) ) ;; failed to figure out what this is: (set! (-> *part-id-table* 2966) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :page #x5c6)) (sp-flt spt-num 1.0) (sp-flt spt-y (meters 1.18)) (sp-flt spt-scale-x (meters 15.0)) (sp-flt spt-scale-y (meters 6.5)) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9 bit13) (sp-end) ) ) ) ;; failed to figure out what this is: (set! (-> *part-id-table* 2967) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x1 :page #x5c6)) (sp-flt spt-num 1.0) (sp-flt spt-y (meters -1.264)) (sp-flt spt-scale-x (meters 15.0)) (sp-flt spt-scale-y (meters 3.25)) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9 bit13) (sp-end) ) ) ) ;; failed to figure out what this is: (set! (-> *part-id-table* 2968) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x5c6)) (sp-flt spt-num 1.0) (sp-flt spt-y (meters -2.482)) (sp-flt spt-scale-x (meters 15.0)) (sp-flt spt-scale-y (meters 1.625)) (sp-flt spt-r 128.0) (sp-flt spt-g 128.0) (sp-flt spt-b 128.0) (sp-flt spt-a 128.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9 bit13) (sp-end) ) ) ) ;; failed to figure out what this is: (set! (-> *part-group-id-table* 707) (new 'static 'sparticle-launch-group :length 3 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-screen1" :launcher (new 'static 'inline-array sparticle-group-item 3 (sp-item 2966 :flags (launch-asap)) (sp-item 2967 :flags (launch-asap)) (sp-item 2968 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 4096.0) ) ) ;; failed to figure out what this is: (defstate idle (static-screen) :virtual #t :enter (behavior ((arg0 int) (arg1 int) (arg2 symbol)) (set! (-> *setting-control* current bg-a) 1.0) (set! (-> *setting-control* default bg-a) 0.0) (push-setting! *setting-control* self (the-as (function object object object object object) 'common-page) 'set 0.0 (ash 1 (+ arg0 1)) ) (none) ) :trans (behavior () (hide-hud-quick) (spawn (-> self part 0) *zero-vector*) 0 (none) ) :code (behavior ((arg0 int) (arg1 int) (arg2 symbol)) (local-vars (v1-6 symbol)) (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) (until v1-6 (suspend) (set! v1-6 (or (and (> arg1 0) (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) arg1 ) ) (and arg2 (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) 300 ) (logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons select start triangle circle x square) ) ) ) ) ) (set! (-> *setting-control* default bg-a) 1.0) (while (!= (-> *setting-control* current bg-a) (-> *setting-control* default bg-a)) (suspend) ) (clear-pending-settings-from-process *setting-control* self 'common-page) (suspend) 0 (none) ) ) ;; definition for function static-screen-init-by-other ;; INFO: Return type mismatch int vs none. (defbehavior static-screen-init-by-other static-screen ((arg0 int) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 symbol)) (let ((s3-0 (lookup-part-group-by-name "group-part-screen1"))) (when (and s3-0 (nonzero? s3-0) (type-type? (-> s3-0 type) sparticle-launch-group) ) (set! (-> *part-id-table* 2966 init-specs 0 initial-valuef) (the-as float arg1) ) (set! (-> *part-id-table* 2967 init-specs 0 initial-valuef) (the-as float arg2) ) (set! (-> *part-id-table* 2968 init-specs 0 initial-valuef) (the-as float arg3) ) (set! (-> self part 0) (create-launch-control (the-as sparticle-launch-group s3-0) self) ) (go-virtual idle arg0 arg4 arg5) ) ) 0 (none) ) ;; definition for function static-screen-spawn ;; Used lq/sq (defun static-screen-spawn ((arg0 int) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 symbol) (arg6 target) ) (local-vars (sv-16 process)) (set! sv-16 (get-process *default-dead-pool* static-screen #x4000)) (when sv-16 (let ((t9-1 (method-of-type static-screen activate))) (t9-1 (the-as static-screen sv-16) arg6 'static-screen (the-as pointer #x70004000) ) ) (run-now-in-process sv-16 static-screen-init-by-other arg0 arg1 arg2 arg3 arg4 arg5 ) (-> sv-16 ppointer) ) )