From 50197c0695d78bf83134c8d7dbc71874782766f1 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Sat, 8 Jan 2022 18:23:30 -0500 Subject: [PATCH] cleanup: cleanup all-types and all state definitions (#1062) * cleanup: cleanup all-types and all state definitions * these are fine * these are fine * these are fine * everything is fine * gsrc updated * remove define-externs in gsrc --- decompiler/config/all-types.gc | 6776 ++------------ goal_src/engine/camera/cam-layout.gc | 4 + goal_src/engine/camera/cam-master.gc | 2 - goal_src/engine/camera/cam-states.gc | 1 - goal_src/engine/camera/camera-h.gc | 280 +- goal_src/engine/camera/camera.gc | 2 - goal_src/engine/debug/default-menu.gc | 1 - goal_src/engine/debug/part-tester.gc | 124 +- goal_src/engine/debug/viewer.gc | 288 +- goal_src/engine/game/collectables.gc | 10 + goal_src/engine/game/game-h.gc | 87 +- goal_src/engine/game/generic-obs-h.gc | 22 + goal_src/engine/game/generic-obs.gc | 17 +- goal_src/engine/game/voicebox.gc | 299 +- goal_src/engine/gfx/time-of-day-h.gc | 122 +- goal_src/engine/target/sidekick.gc | 1 - goal_src/engine/target/target-h.gc | 94 +- goal_src/engine/target/target.gc | 31 - goal_src/engine/target/target2.gc | 8146 ++++++----------- goal_src/engine/ui/hud-h.gc | 32 +- goal_src/engine/ui/hud.gc | 4 - goal_src/engine/ui/progress-h.gc | 178 +- goal_src/engine/ui/text-h.gc | 8 +- goal_src/kernel/gkernel-h.gc | 3 + goal_src/levels/beach/beach-part.gc | 1954 ++-- goal_src/levels/citadel/citadel-obs.gc | 40 +- goal_src/levels/citadel/citb-drop-plat-CIT.gc | 18 +- goal_src/levels/citadel/citb-plat.gc | 18 +- goal_src/levels/common/babak.gc | 940 +- goal_src/levels/common/basebutton.gc | 1 - goal_src/levels/common/blocking-plane.gc | 181 +- goal_src/levels/common/joint-exploder.gc | 3 + goal_src/levels/common/launcherdoor.gc | 382 +- goal_src/levels/common/orb-cache.gc | 683 +- goal_src/levels/finalboss/green-eco-lurker.gc | 5 + goal_src/levels/finalboss/light-eco.gc | 2 + goal_src/levels/finalboss/robotboss-h.gc | 80 +- goal_src/levels/finalboss/robotboss-misc.gc | 6 +- goal_src/levels/finalboss/robotboss-weapon.gc | 20 + .../levels/finalboss/sage-finalboss-FIN.gc | 3 + goal_src/levels/firecanyon/firecanyon-obs.gc | 1360 ++- goal_src/levels/flut_common/target-flut.gc | 17 - goal_src/levels/jungle/bouncer.gc | 311 +- goal_src/levels/jungle/darkvine.gc | 774 +- goal_src/levels/jungle/fisher-JUN.gc | 4603 ++++------ goal_src/levels/jungle/jungle-obs.gc | 38 +- goal_src/levels/jungleb/jungleb-obs.gc | 986 +- goal_src/levels/jungleb/plat-flip.gc | 359 +- goal_src/levels/lavatube/lavatube-obs.gc | 25 + goal_src/levels/maincave/dark-crystal.gc | 14 +- goal_src/levels/maincave/driller-lurker.gc | 2622 +++--- goal_src/levels/maincave/gnawer.gc | 18 +- goal_src/levels/maincave/mother-spider-egg.gc | 6 - goal_src/levels/misty/babak-with-cannon.gc | 846 +- goal_src/levels/misty/bonelurker.gc | 1550 ++-- goal_src/levels/misty/misty-conveyor.gc | 1246 +-- goal_src/levels/misty/misty-teetertotter.gc | 512 +- goal_src/levels/misty/misty-warehouse.gc | 363 +- goal_src/levels/misty/quicksandlurker.gc | 3 + goal_src/levels/ogre/flying-lurker.gc | 15 +- goal_src/levels/ogre/ogre-obs.gc | 20 +- .../target-racer-h-FIC-LAV-MIS-OGR-ROL.gc | 1 - goal_src/levels/robocave/spider-egg.gc | 665 +- goal_src/levels/snow/snow-bumper.gc | 866 +- goal_src/levels/snow/snow-flutflut-obs.gc | 24 +- goal_src/levels/snow/snow-ram-boss.gc | 13 + goal_src/levels/snow/snow-ram-h.gc | 5 + goal_src/levels/snow/snow-ram.gc | 3 - goal_src/levels/snow/target-snowball.gc | 1 - goal_src/levels/snow/yeti.gc | 1917 ++-- goal_src/levels/sunken/puffer.gc | 22 +- goal_src/levels/sunken/qbert-plat.gc | 16 +- goal_src/levels/sunken/square-platform.gc | 1199 ++- goal_src/levels/sunken/sunken-fish.gc | 578 +- goal_src/levels/sunken/sunken-obs.gc | 1052 +-- goal_src/levels/sunken/target-tube.gc | 4 - goal_src/levels/sunken/wall-plat.gc | 383 +- goal_src/levels/sunken/wedge-plats.gc | 726 +- goal_src/levels/swamp/swamp-bat.gc | 1068 +-- goal_src/levels/swamp/swamp-obs.gc | 25 +- goal_src/levels/swamp/swamp-rat-nest.gc | 22 +- goal_src/levels/swamp/swamp-rat.gc | 1008 +- goal_src/levels/village1/fishermans-boat.gc | 3061 +++---- goal_src/levels/village1/village-obs-VI1.gc | 42 +- goal_src/levels/village1/yakow.gc | 1856 ++-- .../levels/village2/assistant-village2.gc | 350 +- goal_src/levels/village2/swamp-blimp.gc | 36 +- goal_src/levels/village2/village2-obs.gc | 36 +- .../levels/village_common/villagep-obs.gc | 1 - .../reference/engine/camera/cam-layout_REF.gc | 3 + .../reference/engine/camera/camera-h_REF.gc | 35 + .../reference/engine/debug/part-tester_REF.gc | 3 + .../reference/engine/debug/viewer_REF.gc | 3 + .../reference/engine/game/collectables_REF.gc | 10 + .../reference/engine/game/game-h_REF.gc | 4 + .../engine/game/generic-obs-h_REF.gc | 22 + .../reference/engine/game/generic-obs_REF.gc | 82 + .../reference/engine/game/voicebox_REF.gc | 3 + .../reference/engine/gfx/time-of-day-h_REF.gc | 3 + .../reference/engine/target/target-h_REF.gc | 90 + .../reference/engine/target/target2_REF.gc | 6 + .../reference/engine/ui/hud-h_REF.gc | 6 + .../reference/engine/ui/progress-h_REF.gc | 2 + .../reference/levels/beach/beach-part_REF.gc | 3 + .../levels/citadel/citadel-obs_REF.gc | 26 + .../levels/citadel/citb-drop-plat-CIT_REF.gc | 11 + .../reference/levels/citadel/citb-plat_REF.gc | 12 + .../levels/common/babak-with-cannon_REF.gc | 5 + .../reference/levels/common/babak_REF.gc | 3 + .../levels/common/blocking-plane_REF.gc | 3 + .../levels/common/joint-exploder_REF.gc | 3 + .../levels/common/launcherdoor_REF.gc | 4 + .../reference/levels/common/orb-cache_REF.gc | 1 + .../levels/finalboss/green-eco-lurker_REF.gc | 5 + .../levels/finalboss/light-eco_REF.gc | 2 + .../levels/finalboss/robotboss-h_REF.gc | 19 + .../levels/finalboss/robotboss-misc_REF.gc | 4 + .../levels/finalboss/robotboss-weapon_REF.gc | 20 + .../finalboss/sage-finalboss-FIN_REF.gc | 3 + .../levels/firecanyon/firecanyon-obs_REF.gc | 9 + .../reference/levels/jungle/bouncer_REF.gc | 5 + .../reference/levels/jungle/darkvine_REF.gc | 5 + .../reference/levels/jungle/fisher-JUN_REF.gc | 9 + .../reference/levels/jungle/jungle-obs_REF.gc | 27 + .../levels/jungleb/jungleb-obs_REF.gc | 4 + .../reference/levels/jungleb/plat-flip_REF.gc | 3 + .../levels/lavatube/lavatube-obs_REF.gc | 25 + .../levels/maincave/dark-crystal_REF.gc | 6 + .../levels/maincave/driller-lurker_REF.gc | 10 + .../reference/levels/maincave/gnawer_REF.gc | 10 + .../reference/levels/misty/bonelurker_REF.gc | 3 + .../levels/misty/misty-conveyor_REF.gc | 13 + .../levels/misty/misty-teetertotter_REF.gc | 5 + .../levels/misty/misty-warehouse_REF.gc | 5 + .../levels/misty/quicksandlurker_REF.gc | 3 + .../levels/ogre/flying-lurker_REF.gc | 14 + .../reference/levels/ogre/ogre-obs_REF.gc | 13 + .../levels/robocave/spider-egg_REF.gc | 5 + .../reference/levels/snow/snow-bumper_REF.gc | 7 + .../levels/snow/snow-flutflut-obs_REF.gc | 14 + .../reference/levels/snow/snow-ram-h_REF.gc | 5 + .../reference/levels/snow/yeti_REF.gc | 10 + .../reference/levels/sunken/puffer_REF.gc | 6 + .../reference/levels/sunken/qbert-plat_REF.gc | 10 + .../levels/sunken/square-platform_REF.gc | 10 + .../levels/sunken/sunken-fish_REF.gc | 3 + .../reference/levels/sunken/sunken-obs_REF.gc | 3 + .../reference/levels/sunken/wall-plat_REF.gc | 7 + .../levels/sunken/wedge-plats_REF.gc | 11 + .../reference/levels/swamp/swamp-bat_REF.gc | 12 + .../reference/levels/swamp/swamp-obs_REF.gc | 14 + .../levels/swamp/swamp-rat-nest_REF.gc | 13 + .../reference/levels/swamp/swamp-rat_REF.gc | 3 + .../levels/village1/fishermans-boat_REF.gc | 12 + .../levels/village1/village-obs-VI1_REF.gc | 31 + .../reference/levels/village1/yakow_REF.gc | 10 + .../levels/village2/assistant-village2_REF.gc | 3 + .../levels/village2/swamp-blimp_REF.gc | 20 + .../levels/village2/village2-obs_REF.gc | 24 + test/offline/config.jsonc | 6 - 160 files changed, 19508 insertions(+), 32832 deletions(-) diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 679ae2f279..9ca5958b98 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -980,7 +980,7 @@ (jungleb-eco-vents-opened #x289) (sidekick-speech-crate-steel-break2 #x28e) (sidekick-speech-hint-crate-darkeco2 #x28f) - + (daxter-screaming-jump #x290) (daxter-wahoo-jump #x291) (daxter-get-some #x292) @@ -988,12 +988,12 @@ (collectables-scout-flies-red-boxes #x295) (found-all-scout-flies #x296) (yakow-owed-powercell #x297) - + (jungle-mirrors-tutorial #x29c) (jungle-mirrors-break-the-mirror-jak #x29d) (jungle-mirrors-go-to-the-next-tower #x29f) (jungle-mirrors-follow-the-beam #x2a0) - + (misty-teetertotter-bonk-dax-tutorial #x2a4) (sidekick-hint-misty-get-red-eco #x2a5) @@ -1226,7 +1226,7 @@ (sage-voicebox-hint-crate-iron #x917) (training-warp-gate-blocked #x919) (training-warp-gate-reminder #x91a) - + (training-gimmie-task-name #x91b) (training-buzzer-task-name #x91c) (training-door-task-name #x91d) @@ -1238,14 +1238,6 @@ ) ;; GAME-TEXT-ID ENUM ENDS -;; ---------------------- -;; File - gstring-h -;; Source Path - kernel/gstring-h.gc -;; Containing DGOs - ['KERNEL'] -;; Version - 3 - -;; - Nothing Defined in This File! - ;; ---------------------- ;; File - gkernel-h @@ -1515,6 +1507,9 @@ (:methods (new (symbol type basic int) _type_ 0) ) + (:states + dead-state + empty-state) :size-assert #x70 :method-count-assert 14 :no-runtime-type ;; already defined by kscheme. Don't do it again. @@ -1560,7 +1555,6 @@ ;; - Symbols -(define-extern dead-state (state process)) (define-extern *kernel-context* kernel-context) (define-extern *enable-method-set* int) (define-extern *listener-process* process) @@ -1767,15 +1761,6 @@ (define-extern uint32 type) -;; ---------------------- -;; File - vu1-macros -;; Source Path - engine/ps2/vu1-macros.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - math ;; Source Path - engine/math/math.gc @@ -2206,15 +2191,6 @@ (define-extern *zero-vector* vector) -;; ---------------------- -;; File - gravity-h -;; Source Path - engine/physics/gravity-h.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - bounding-box-h ;; Source Path - engine/geometry/bounding-box-h.gc @@ -2423,15 +2399,6 @@ ) -;; ---------------------- -;; File - trigonometry-h -;; Source Path - engine/math/trigonometry-h.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - transformq-h ;; Source Path - engine/math/transformq-h.gc @@ -6524,14 +6491,6 @@ :flag-assert #x900002004 ) -;; ---------------------- -;; File - game-task-h -;; Source Path - engine/game/task/game-task-h.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - ;; ---------------------- ;; File - hint-control-h @@ -7718,7 +7677,8 @@ :method-count-assert 14 :size-assert #xb8 :flag-assert #xe005000b8 - ;; inherited inspect of process + (:states + time-of-day-tick) ) (deftype time-of-day-palette (basic) @@ -9153,15 +9113,6 @@ (define-extern *shadow-debug* symbol) -;; ---------------------- -;; File - shadow-vu1-h -;; Source Path - engine/gfx/shadow/shadow-vu1-h.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - memcard-h ;; Source Path - engine/ps2/memcard-h.gc @@ -10227,7 +10178,6 @@ ;; - Symbols -(define-extern process-drawable-art-error (state string process-drawable)) (define-extern *FACT-bank* fact-bank) @@ -10309,6 +10259,9 @@ (dummy-18 (_type_) none 18) (dummy-19 (_type_) none 19) ) + (:states + (process-drawable-art-error string) + process-drawable-idle) ) (deftype process-drawable-reserved (process-drawable) @@ -10436,6 +10389,8 @@ :method-count-assert 20 :size-assert #x114 :flag-assert #x1400b00114 + (:states + manipy-idle) ) (declare-type sparticle-launch-group structure) @@ -10452,6 +10407,8 @@ (:methods (dummy-20 (_type_) none 20) ) + (:states + part-spawner-active) ) (deftype part-tracker (process) @@ -10473,6 +10430,8 @@ :method-count-assert 14 :size-assert #xf8 :flag-assert #xe009000f8 + (:states + part-tracker-process) ) (deftype camera-tracker (process) @@ -10504,6 +10463,8 @@ (:methods (dummy-14 (_type_ pair) process 14) ) + (:states + camera-tracker-process) ) (declare-type collide-shape-moving basic) @@ -10520,6 +10481,8 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + touch-tracker-idle) ) (deftype swingpole (process) @@ -10532,6 +10495,9 @@ :method-count-assert 14 :size-assert #x98 :flag-assert #xe00300098 + (:states + swingpole-stance + swingpole-active) ) (deftype gui-query (structure) @@ -10570,6 +10536,8 @@ :method-count-assert 14 :size-assert #xc4 :flag-assert #xe006000c4 + (:states + othercam-running) ) (deftype process-hidden (process) @@ -11018,15 +10986,6 @@ (define-extern last-try-to-look-at-data try-to-look-at-info) -;; ---------------------- -;; File - collide-func-h -;; Source Path - engine/collide/collide-func-h.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - collide-mesh-h ;; Source Path - engine/collide/collide-mesh-h.gc @@ -12061,19 +12020,106 @@ (dummy-20 (_type_ collide-cache) object 20) ;; none or #f ) (:states - (target-racing-get-off handle) - (target-racing-jump float float symbol) - (target-racing-hit handle attack-info) - (target-racing-grab) - (target-racing-clone-anim handle) - (target-racing-get-on handle) - (target-racing-falling) - (target-racing-bounce float float symbol) + (target-jump float float surface) + (target-hit symbol attack-info) + (target-eco-powerup object float) + target-load-wait + target-grab + target-look-around + target-billy-game + (target-racing-start handle) (target-racing-death symbol) - (target-racing-get-off-jump handle) - (target-racing-get-off-hit-ground symbol) - (target-death symbol) + (target-flut-start handle) + (target-snowball-start handle) + (target-tube-start handle) + (target-periscope handle) + (target-fishing handle) + (target-final-door basic handle) + (target-play-anim string handle) + target-edge-grab + (target-pole-cycle handle) + target-swim-stance + target-wade-stance (target-hit-ground symbol) + target-stance + (target-high-jump float float basic) + (target-attack-air symbol) + (target-wheel-flip float float) + target-duck-stance + (target-hit-ground-hard float) + (target-flop-hit-ground symbol) + target-yellow-jump-blast + target-swim-down + (target-flop float float float) + (target-attack-uppercut-jump float float) + target-attack + (target-attack-uppercut float float) + target-yellow-blast + target-wade-walk + target-walk + target-running-attack + (target-duck-high-jump-jump float float symbol) + (target-launch float symbol vector int) + (target-duck-high-jump float float symbol) + (target-double-jump float float) + target-duck-walk + target-ice-walk + target-wheel + target-turn-around + target-stance-ambient + target-ice-stance + target-startup + (target-jump-forward float float) + (target-swim-jump-jump float float surface) + target-swim-up + (target-swim-jump float float) + target-swim-walk + (target-edge-grab-jump float float) + target-edge-grab-off + (target-pole-flip-up-jump float float) + (target-pole-flip-forward-jump float float) + (target-pole-flip-up object object float) + (target-pole-flip-forward float float float) + target-stance-look-around + (target-racing-smack float symbol) + target-racing + target-racing-grab + (target-racing-clone-anim handle) + (target-racing-get-off-hit-ground symbol) + (target-racing-get-off-jump handle) + (target-racing-jump float float symbol) + (target-racing-bounce float float symbol) + target-racing-falling + (target-racing-get-on handle) + (target-racing-get-off handle) + (target-racing-hit handle attack-info) + target-flut-stance + target-flut-grab + (target-flut-clone-anim handle) + (target-flut-get-off-hit-ground symbol) + (target-flut-get-off-jump handle) + (target-flut-death symbol) + target-flut-hit-ground + target-flut-air-attack-hit-ground + (target-flut-jump float float) + target-flut-falling + (target-flut-hit symbol attack-info) + target-flut-walk + (target-flut-air-attack float) + (target-flut-double-jump float float) + target-flut-running-attack + (target-flut-get-on handle) + (target-flut-get-off handle) + target-slide-down + (target-falling symbol) + (target-continue continue-point) + (target-warp-out vector vector) + target-tube + (target-tube-death symbol) + (target-tube-jump float float) + (target-tube-hit handle attack-info) + target-snowball + (target-death symbol) (target-clone-anim handle) target-title target-demo @@ -12093,7 +12139,8 @@ :method-count-assert 20 :size-assert #xcc :flag-assert #x14006000cc - ;; inherited inspect of process-drawable + (:states + sidekick-clone) ) ;; - Symbols @@ -14411,7 +14458,8 @@ :method-count-assert 14 :size-assert #x1e0 :flag-assert #xe017001e0 - ;; inherited inspect of process + (:states + cam-combiner-active) ) (deftype camera-slave (process) @@ -14471,7 +14519,33 @@ :method-count-assert 14 :size-assert #xa04 :flag-assert #xe09a00a04 - ;; inherited inspect of process + (:states + cam-circular + cam-standoff-read-entity + cam-spline + *camera-base-mode* + cam-fixed-read-entity + cam-free-floating + cam-fixed + cam-decel + cam-eye + cam-string + cam-standoff + cam-pov + cam-pov180 + cam-pov-track + cam-billy + cam-endlessfall + cam-lookat + cam-stick + cam-bike + cam-point-watch + cam-orbit + cam-launcher-longfall + cam-launcher-shortfall + cam-robotboss + cam-mistycannon + cam-periscope) ) (deftype camera-master (process) @@ -14533,7 +14607,9 @@ :method-count-assert 14 :size-assert #x964 :flag-assert #xe09000964 - ;; inherited inspect of process + (:states + cam-master-active + list-keeper-active) ) ;; - Symbols @@ -14722,6 +14798,11 @@ (inc-value (_type_) float 25) (dec-value (_type_) float 26) ) + (:states + hud-arriving + hud-hidden + (hud-leaving int) + hud-in) ) (declare-type hud-pickups hud) @@ -14858,6 +14939,7 @@ (bad-disc 33) (quit 34) ) + (deftype progress (process) ((current-debug-string int32 :offset-assert 112) (current-debug-language int32 :offset-assert 116) @@ -14966,11 +15048,12 @@ (draw-quit (_type_ font-context) none 58) ) (:states + progress-normal + progress-going-out progress-gone progress-coming-in - progress-going-out progress-waiting - ) + progress-debug) ) ;; - Symbols @@ -16753,15 +16836,6 @@ (define-extern shrub-vu1-block vu-function) -;; ---------------------- -;; File - shrub-work -;; Source Path - engine/gfx/shrub/shrub-work.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - tfrag-near ;; Source Path - engine/gfx/tfrag/tfrag-near.gc @@ -16818,15 +16892,6 @@ (define-extern vis-cull (function int symbol)) -;; ---------------------- -;; File - tfrag-work -;; Source Path - engine/gfx/tfrag/tfrag-work.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - tie ;; Source Path - engine/gfx/tie/tie.gc @@ -16956,24 +17021,6 @@ (define-extern *pke-hack* vector) -;; ---------------------- -;; File - sync-info -;; Source Path - engine/util/sync-info.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - trajectory -;; Source Path - engine/physics/trajectory.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - sparticle-launcher ;; Source Path - engine/sparticle/sparticle-launcher.gc @@ -17956,7 +18003,6 @@ ;; - Symbols -(define-extern time-of-day-tick (state time-of-day-proc)) (define-extern time-of-day-effect (function none)) ;; only 'nothing' is stored here, looks like dead code ;; - Unknowns @@ -18498,15 +18544,6 @@ (define-extern *race-track-surface* surface) -;; ---------------------- -;; File - collide-shape-rider -;; Source Path - engine/collide/collide-shape-rider.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - collide ;; Source Path - engine/collide/collide.gc @@ -18701,11 +18738,6 @@ ;; - Symbols (define-extern *cam-res-string* string) -(define-extern cam-circular (state camera-slave)) -(define-extern cam-standoff-read-entity (state camera-slave)) -(define-extern cam-spline (state camera-slave)) -(define-extern *camera-base-mode* (state camera-slave)) -(define-extern cam-fixed-read-entity (state camera-slave)) ;; ---------------------- ;; File - cam-interface @@ -18778,13 +18810,7 @@ ;; - Symbols -(define-extern cam-free-floating (state camera-slave)) -(define-extern cam-master-active (state camera-master)) -(define-extern list-keeper-active (state camera-master)) (define-extern *CAMERA_MASTER-bank* camera-master-bank) -(define-extern cam-fixed (state camera-slave)) -(define-extern cam-decel (state camera-slave)) -(define-extern cam-eye (state camera-slave)) ;; ---------------------- @@ -18915,7 +18941,6 @@ ;; - Symbols -(define-extern cam-string (state camera-slave)) ;; - Unknowns @@ -18924,15 +18949,6 @@ (define-extern *CAM_STRING-bank* cam-string-bank) ;; unknown type (define-extern *CAM_BILLY-bank* cam-billy-bank) ;; unknown type (define-extern *CAM_EYE-bank* cam-eye-bank) ;; unknown type -(define-extern cam-standoff (state camera-slave)) ;; unknown type -(define-extern cam-pov (state camera-slave)) ;; unknown type -(define-extern cam-pov180 (state camera-slave)) ;; unknown type -(define-extern cam-pov-track (state camera-slave)) ;; unknown type -(define-extern cam-billy (state camera-slave)) ;; unknown type -(define-extern cam-endlessfall (state camera-slave)) ;; unknown type -(define-extern cam-lookat (state camera-slave)) ;; unknown type -(define-extern cam-stick (state camera-slave)) ;; unknown type -(define-extern cam-bike (state camera-slave)) ;; unknown type ;; ---------------------- @@ -19009,8 +19025,6 @@ (define-extern *camera-orbit-info* camera-orbit-info) ;; unknown type (define-extern *CAM_ORBIT-bank* CAM_ORBIT-bank) ;; unknown type (define-extern *CAM_POINT_WATCH-bank* cam-point-watch-bank) ;; unknown type -(define-extern cam-point-watch (state camera-slave)) -(define-extern cam-orbit (state camera-slave)) ;; ---------------------- @@ -19025,7 +19039,6 @@ ;; - Symbols -(define-extern cam-combiner-active (state camera-combiner)) ;; ---------------------- @@ -19125,6 +19138,8 @@ :heap-base #x200 :size-assert #x90 :flag-assert #xe02000090 + (:states + cam-layout-active) ) (deftype clm-basic (basic) @@ -19331,7 +19346,6 @@ (define-extern *last-cur-entity* int) ;; unknown type (define-extern *clm-select* clm) ;; unknown type (define-extern *clm* clm) ;; unknown type -(define-extern cam-layout-active (state cam-layout)) ;; unknown type (define-extern *camera-layout-message-ypos* int) ;; unknown type (define-extern *CAM_LAYOUT-bank* cam-layout-bank) ;; unknown type (define-extern *clm-edit* clm) ;; unknown type @@ -19518,7 +19532,6 @@ (define-extern *valid-con* string) (define-extern *default-skel-template* pair) -(define-extern process-drawable-idle (state process-drawable)) ;; ---------------------- @@ -19644,6 +19657,8 @@ :size-assert #xbc :heap-base #x50 :flag-assert #x14005000bc + (:states + med-res-level-idle) ) (deftype launcher (process-drawable) @@ -19659,6 +19674,10 @@ :size-assert #xe4 :heap-base #x80 :flag-assert #x14008000e4 + (:states + launcher-idle + launcher-deactivated + launcher-active) ) ;; - Functions @@ -19680,7 +19699,7 @@ (define-extern clone-anim (function handle int symbol string none :behavior process-drawable)) (define-extern merc-eye-anim (function process-drawable none)) (define-extern ja-anim-done? (function process symbol)) -(define-extern command-get-camera (function object state object)) ;; ret - (state camera) | string | symbol +(define-extern command-get-camera (function object state object)) ;; ret - (state camera) (define-extern camera-anim (function symbol basic entity (pointer process) :behavior camera-tracker)) ;; unused (define-extern camera-tracker-init (function object object :behavior camera-tracker)) ;; TODO - nested SC (define-extern cam-launcher-joystick (function vector :behavior camera-slave)) @@ -19693,20 +19712,7 @@ ;; - Unknowns (define-extern *particle-quat* quaternion) -(define-extern touch-tracker-idle (state touch-tracker)) -(define-extern cam-launcher-longfall (state camera-slave)) -(define-extern cam-launcher-shortfall (state camera-slave)) -(define-extern launcher-idle (state launcher)) -(define-extern launcher-deactivated (state launcher)) -(define-extern launcher-active (state launcher)) -(define-extern part-spawner-active (state part-spawner)) (define-extern *lev-string* string) -(define-extern med-res-level-idle (state med-res-level)) -(define-extern camera-tracker-process (state camera-tracker)) -(define-extern part-tracker-process (state part-tracker)) -(define-extern manipy-idle (state manipy)) -(define-extern swingpole-stance (state swingpole)) -(define-extern swingpole-active (state swingpole)) ;; ---------------------- @@ -19839,8 +19845,6 @@ ;; - Symbols (define-extern *TARGET-bank* target-bank) -(define-extern target-slide-down (state target)) -(define-extern target-falling (state symbol target)) (define-extern *jchar-sg* skeleton-group) (define-extern *target-shadow-control* shadow-control) @@ -19929,7 +19933,6 @@ ;; - Unknowns -(define-extern target-continue (state continue-point target)) ;; ---------------------- @@ -19946,7 +19949,6 @@ ;; - Unknowns (define-extern *sidekick-sg* skeleton-group) -(define-extern sidekick-clone (state sidekick)) ;; unknown type (define-extern *sidekick-remap* pair) ;; unknown type @@ -19964,6 +19966,8 @@ :size-assert #xa04 :heap-base #x9a0 :flag-assert #xe09a00a04 + (:states + cam-voicebox) ) (deftype voicebox (process-drawable) @@ -19992,9 +19996,7 @@ ;; - Unknowns -(define-extern cam-voicebox (state camera-voicebox)) ;; unknown type (define-extern *voicebox-sg* skeleton-group) -(define-extern empty-state (state process)) ;; unknown type ;; ---------------------- @@ -20021,25 +20023,6 @@ ;; - Unknowns -(define-extern target-jump (state float float surface target)) ;; unknown type -(define-extern target-hit (state symbol attack-info target)) ;; unknown type -(define-extern target-eco-powerup (state object float target)) ;; unknown type -(define-extern target-load-wait (state target)) ;; unknown type -(define-extern target-grab (state target)) ;; unknown type -(define-extern target-look-around (state target)) ;; unknown type -(define-extern target-billy-game (state target)) ;; unknown type -(define-extern target-racing-start (state handle target)) ;; unknown type -(define-extern target-flut-start (state handle target)) ;; unknown type -(define-extern target-snowball-start (state handle target)) ;; unknown type -(define-extern target-tube-start (state handle target)) ;; unknown type -(define-extern target-periscope (state handle target)) ;; unknown type -(define-extern target-fishing (state handle target)) ;; unknown type -(define-extern target-final-door (state basic handle target)) ;; unknown type -(define-extern target-play-anim (state string handle target)) ;; unknown type -(define-extern target-edge-grab (state target)) ;; unknown type -(define-extern target-pole-cycle (state handle target)) ;; unknown type -(define-extern target-swim-stance (state target)) ;; unknown type -(define-extern target-wade-stance (state target)) ;; unknown type ;; ---------------------- @@ -20060,36 +20043,6 @@ ;; - Unknowns -(define-extern target-hit-ground (state symbol target)) ;; unknown type -(define-extern target-stance (state target)) ;; unknown type -(define-extern target-high-jump (state float float basic target)) ;; TODO - basic is a symbol...but decompiler changes the type -(define-extern target-attack-air (state symbol target)) ;; unknown type -(define-extern target-wheel-flip (state float float target)) ;; unknown type -(define-extern target-duck-stance (state target)) ;; unknown type -(define-extern target-hit-ground-hard (state float target)) ;; unknown type -(define-extern target-flop-hit-ground (state symbol target)) ;; unknown type -(define-extern target-yellow-jump-blast (state target)) ;; unknown type -(define-extern target-swim-down (state target)) ;; unknown type -(define-extern target-flop (state float float float target)) ;; unknown type -(define-extern target-attack-uppercut-jump (state float float target)) ;; unknown type -(define-extern target-attack (state target)) ;; unknown type -(define-extern target-attack-uppercut (state float float target)) ;; unknown type -(define-extern target-yellow-blast (state target)) ;; unknown type -(define-extern target-wade-walk (state target)) ;; unknown type -(define-extern target-walk (state target)) ;; unknown type -(define-extern target-running-attack (state target)) ;; unknown type -(define-extern target-duck-high-jump-jump (state float float symbol target)) ;; unknown type -(define-extern target-launch (state float symbol vector int target)) ;; unknown type -(define-extern target-duck-high-jump (state float float symbol target)) ;; unknown type -(define-extern target-double-jump (state float float target)) ;; unknown type -(define-extern target-duck-walk (state target)) ;; unknown type -(define-extern target-ice-walk (state target)) ;; unknown type -(define-extern target-wheel (state target)) ;; unknown type -(define-extern target-turn-around (state target)) ;; unknown type -(define-extern target-stance-ambient (state target)) ;; unknown type -(define-extern target-ice-stance (state target)) ;; unknown type -(define-extern target-startup (state target)) ;; unknown type -(define-extern target-jump-forward (state float float target)) ;; unknown type ;; ---------------------- ;; File - target2 @@ -20115,6 +20068,11 @@ :flag-assert #xf00300094 (:methods (dumb-15 (_type_) none)) + (:states + hud-normal + hud-coming-in + hud-going-out + hud-waiting) ) ;; - Functions @@ -20131,23 +20089,8 @@ ;; - Unknowns -(define-extern target-swim-jump-jump (state float float surface target)) ;; unknown type -(define-extern target-swim-up (state target)) ;; unknown type -(define-extern target-swim-jump (state float float target)) ;; unknown type -(define-extern target-swim-walk (state target)) ;; unknown type (define-extern *yellow-jump-mods* surface) ;; unknown type -(define-extern target-edge-grab-jump (state float float target)) ;; unknown type -(define-extern target-edge-grab-off (state target)) ;; unknown type -(define-extern target-pole-flip-up-jump (state float float target)) ;; unknown type -(define-extern target-pole-flip-forward-jump (state float float target)) ;; unknown type -(define-extern target-pole-flip-up (state object object float target)) ;; unknown type -(define-extern target-pole-flip-forward (state float float float target)) ;; unknown type (define-extern *fp-hud-stack* pointer) ;; first-person-hud maybe? -(define-extern target-stance-look-around (state target)) ;; unknown type -(define-extern hud-normal (state first-person-hud)) ;; unknown type -(define-extern hud-coming-in (state first-person-hud)) ;; unknown type -(define-extern hud-going-out (state first-person-hud)) ;; unknown type -(define-extern hud-waiting (state first-person-hud)) ;; unknown type ;; ---------------------- @@ -20420,42 +20363,6 @@ (define-extern *generic-effect-mode* int) -;; ---------------------- -;; File - drawable-group -;; Source Path - engine/draw/drawable-group.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - drawable-inline-array -;; Source Path - engine/draw/drawable-inline-array.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - drawable-tree -;; Source Path - engine/draw/drawable-tree.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - prototype -;; Source Path - engine/gfx/tie/prototype.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - main-collide ;; Source Path - engine/collide/main-collide.gc @@ -20556,15 +20463,6 @@ (define-extern *already-printed-exeeded-max-cache-tris* symbol) ;; TODO - not confirmed -;; ---------------------- -;; File - relocate -;; Source Path - engine/entity/relocate.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - memory-usage ;; Source Path - engine/debug/memory-usage.gc @@ -20604,15 +20502,6 @@ (define-extern *vis-actors* symbol) -;; ---------------------- -;; File - path -;; Source Path - engine/nav/path.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - vol ;; Source Path - engine/geometry/vol.gc @@ -20777,15 +20666,6 @@ ;;(define-extern *test-ray-dest-pos* object) ;; unknown type -;; ---------------------- -;; File - aligner -;; Source Path - engine/anim/aligner.gc -;; Containing DGOs - ['GAME', 'ENGINE'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - effect-control ;; Source Path - engine/game/effect-control.gc @@ -20882,6 +20762,8 @@ (initialize (_type_) _type_ 20) (initialize-params (_type_ int float) none 21) ) + (:states + (hud-collecting handle)) ) (deftype eco-collectable (collectable) @@ -20978,6 +20860,9 @@ :method-count-assert 31 :size-assert #x19c :flag-assert #x1f0130019c + (:states + (fuel-cell-clone-anim handle) + (fuel-cell-spline-slider handle float float)) ) (deftype buzzer (eco-collectable) @@ -21000,6 +20885,8 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + ecovalve-idle) ) (deftype vent (process-drawable) @@ -21079,10 +20966,8 @@ ;; - Symbols (define-extern *ecovalve-sg* skeleton-group) -(define-extern ecovalve-idle (state ecovalve)) (define-extern *eco-pill-count* int) (define-extern *buzzer-sg* skeleton-group) -(define-extern fuel-cell-clone-anim (state handle fuel-cell)) (define-extern *fuel-cell-tune-pos* vector) (define-extern *fuel-cell-sg* skeleton-group) (define-extern *money-sg* skeleton-group) @@ -21147,7 +21032,6 @@ ;; - Unknowns -(define-extern othercam-running (state othercam)) ;; ---------------------- @@ -21284,14 +21168,9 @@ ;; - Symbols -(define-extern hud-arriving (state hud)) ;; - Unknowns -(define-extern hud-hidden (state hud)) -(define-extern hud-leaving (state int hud)) -(define-extern hud-in (state hud)) -(define-extern hud-collecting (state handle collectable)) ;; ---------------------- @@ -21513,15 +21392,9 @@ ;; - Unknowns -(define-extern progress-normal (state progress)) -(define-extern progress-going-out (state progress)) -(define-extern progress-gone (state progress)) (define-extern *progress-state* progress-global-state) (define-extern *progress-save-info* mc-slot-info) -(define-extern progress-coming-in (state progress)) (define-extern *progress-stack* (pointer uint8)) -(define-extern progress-waiting (state progress)) -(define-extern progress-debug (state progress)) ;; ---------------------- @@ -22045,7 +21918,6 @@ (define-extern *anim-tester* (pointer anim-tester)) ;; unknown type (define-extern *ANIM_TESTER-bank* anim-tester-bank) ;; unknown type -(define-extern anim-tester-process (state anim-tester)) ;; unknown type (define-extern anim-test-field-highlight-lw (inline-array list-field)) (define-extern *DISP_LIST-bank* DISP_LIST-bank) ;; unknown type (define-extern *debug-menu-context* debug-menu-context) @@ -22066,7 +21938,8 @@ :size-assert #xb4 :heap-base #x50 :flag-assert #x14005000b4 - ;; inherited inspect of process-drawable + (:states + viewer-process) ) ;; - Functions @@ -22083,7 +21956,6 @@ (define-extern viewer-ja-name string) (define-extern viewer-geo-name string) (define-extern *viewer-sg* skeleton-group) -(define-extern viewer-process (state viewer)) (define-extern viewer-string string) @@ -22103,6 +21975,8 @@ :size-assert #x7c :heap-base #x100 :flag-assert #xe0100007c + (:states + part-tester-idle) ) ;; - Functions @@ -22114,7 +21988,6 @@ (define-extern *debug-part-dead-pool* dead-pool) ;; unknown type (define-extern *part-tester* part-tester) ;; unknown type -(define-extern part-tester-idle (state part-tester)) ;; unknown type (define-extern *part-tester-name* string) ;; unknown type @@ -22197,64 +22070,9 @@ (define-extern *instance-tie-menu* debug-menu) (define-extern *enable-instance-tie-menu* debug-menu) (define-extern *shader-pick-menu* debug-menu) -(define-extern cam-robotboss (state camera-slave)) (define-extern *dm-cam-mode-interpolation* int) -;; ---------------------- -;; File - dir-tpages -;; Source Path - levels/common/dir-tpages.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-463 -;; Source Path - levels/common/tpage-463.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-2 -;; Source Path - levels/common/tpage-2.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-880 -;; Source Path - levels/common/tpage-880.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-256 -;; Source Path - levels/common/tpage-256.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1278 -;; Source Path - levels/common/tpage-1278.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - texture-upload ;; Source Path - levels/common/texture-upload.gc @@ -22266,249 +22084,6 @@ (define-extern *ocean-texture* texture) -;; ---------------------- -;; File - tpage-1032 -;; Source Path - levels/common/tpage-1032.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-62 -;; Source Path - levels/common/tpage-62.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1532 -;; Source Path - levels/common/tpage-1532.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - fuel-cell-ag -;; Source Path - levels/common/fuel-cell-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - money-ag -;; Source Path - levels/common/money-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - buzzer-ag -;; Source Path - levels/common/buzzer-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-ART-GAME -;; Source Path - levels/common/ecovalve-ag-ART-GAME.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-BEA -;; Source Path - levels/beach/ecovalve-ag-BEA.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-CIT -;; Source Path - levels/citadel/ecovalve-ag-CIT.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-FIN -;; Source Path - levels/finalboss/ecovalve-ag-FIN.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-JUB-JUN -;; Source Path - levels/jungle_common/ecovalve-ag-JUB-JUN.gd -;; Containing DGOs - ['JUB', 'JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-FIC-OGR -;; Source Path - levels/common/ecovalve-ag-FIC-OGR.gd -;; Containing DGOs - ['FIC', 'OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-LAV -;; Source Path - levels/lavatube/ecovalve-ag-LAV.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-MAI -;; Source Path - levels/maincave/ecovalve-ag-MAI.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-ROB -;; Source Path - levels/robocave/ecovalve-ag-ROB.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-ROL -;; Source Path - levels/rolling/ecovalve-ag-ROL.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-SNO -;; Source Path - levels/snow/ecovalve-ag-SNO.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-SUB -;; Source Path - levels/sunkenb/ecovalve-ag-SUB.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-SWA -;; Source Path - levels/swamp/ecovalve-ag-SWA.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecovalve-ag-TRA -;; Source Path - levels/training/ecovalve-ag-TRA.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - crate-ag -;; Source Path - levels/common/crate-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - speaker-ag -;; Source Path - levels/common/speaker-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - fuelcell-naked-ag -;; Source Path - levels/common/fuelcell-naked-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-ag -;; Source Path - levels/common/eichar-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sidekick-ag -;; Source Path - levels/common/sidekick-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - deathcam-ag -;; Source Path - levels/common/deathcam-ag.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - game-cnt -;; Source Path - levels/common/game-cnt.gd -;; Containing DGOs - ['GAME', 'ART'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - rigid-body-h ;; Source Path - levels/common/rigid-body-h.gc @@ -23139,7 +22714,6 @@ ;; - Unknowns (define-extern *warp-jump-mods* surface) -(define-extern target-warp-out (state vector vector target)) (define-extern *warp-info* (array string)) (define-extern *generic-button-sg* skeleton-group) @@ -23279,6 +22853,8 @@ (TODO-RENAME-27 (_type_ joint-exploder-list int) joint-exploder-list 27) (TODO-RENAME-28 (_type_ joint-exploder-list) none 28) ) + (:states + joint-exploder-shatter) ) ;; - Functions @@ -23288,7 +22864,6 @@ ;; - Unknowns -(define-extern joint-exploder-shatter (state joint-exploder)) ;; ---------------------- @@ -23305,7 +22880,8 @@ :size-assert #x190 :heap-base #x120 :flag-assert #x4c01200190 - ;; not enough basic ops + (:states + babak-run-to-cannon) ) ;; - Unknowns @@ -23391,13 +22967,13 @@ (:states (orb-cache-top-complete symbol) (orb-cache-top-activate symbol) + (orb-cache-top-idle symbol) ) ) ;; - Unknowns (define-extern *orb-cache-top-sg* skeleton-group) -(define-extern orb-cache-top-idle (state symbol orb-cache-top)) ;; ---------------------- @@ -23779,7 +23355,6 @@ ;; - Unknowns (define-extern *mistycannon-sg* skeleton-group) -(define-extern cam-mistycannon (state camera-slave)) ;; unknown type (define-extern *mistycannon-missile-sg* skeleton-group) @@ -23799,6 +23374,10 @@ :size-assert #x198 :heap-base #x130 :flag-assert #x4c01300198 + (:states + babak-with-cannon-jump-off-cannon + babak-with-cannon-shooting + babak-with-cannon-jump-onto-cannon) ) ;; - Functions @@ -23812,10 +23391,6 @@ ;; - Unknowns -(define-extern babak-with-cannon-jump-off-cannon (state babak-with-cannon)) ;; unknown type -(define-extern babak-with-cannon-shooting (state babak-with-cannon)) ;; unknown type -(define-extern babak-with-cannon-jump-onto-cannon (state babak-with-cannon)) ;; unknown type -(define-extern babak-run-to-cannon (state babak)) ;; unknown type ;; ---------------------- @@ -24503,399 +24078,13 @@ :size-assert #xd0 :heap-base #x60 :flag-assert #x15006000d0 + (:states + beach-part-grotto-1) ) ;; - Unknowns (define-extern sound-beach-waterfall sound-spec) -(define-extern beach-part-grotto-1 (state beach-part)) - - -;; ---------------------- -;; File - tpage-212 -;; Source Path - levels/beach/tpage-212.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-214 -;; Source Path - levels/beach/tpage-214.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-213 -;; Source Path - levels/beach/tpage-213.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-215 -;; Source Path - levels/beach/tpage-215.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - babak-ag -;; Source Path - levels/common/babak-ag.gd -;; Containing DGOs - ['BEA', 'CIT', 'JUN', 'FIC', 'MIS', 'ROB', 'ROL', 'SNO', 'SUB', 'SUN', 'SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - barrel-ag-BEA -;; Source Path - levels/beach/barrel-ag-BEA.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - barrel-ag-VI2 -;; Source Path - levels/village2/barrel-ag-VI2.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - beachcam-ag -;; Source Path - levels/beach/beachcam-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - bird-lady-ag -;; Source Path - levels/beach/bird-lady-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - bird-lady-beach-ag -;; Source Path - levels/beach/bird-lady-beach-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - bladeassm-ag -;; Source Path - levels/beach/bladeassm-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecoventrock-ag -;; Source Path - levels/beach/ecoventrock-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flutflut-ag -;; Source Path - levels/beach/flutflut-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flutflutegg-ag -;; Source Path - levels/beach/flutflutegg-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - grottopole-ag -;; Source Path - levels/beach/grottopole-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - harvester-ag -;; Source Path - levels/beach/harvester-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - kickrock-ag -;; Source Path - levels/beach/kickrock-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lrocklrg-ag -;; Source Path - levels/beach/lrocklrg-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lurkercrab-ag -;; Source Path - levels/beach/lurkercrab-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lurkerpuppy-ag -;; Source Path - levels/beach/lurkerpuppy-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lurkerworm-ag -;; Source Path - levels/beach/lurkerworm-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - mayor-ag -;; Source Path - levels/beach/mayor-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - mistycannon-ag -;; Source Path - levels/common/mistycannon-ag.gd -;; Containing DGOs - ['BEA', 'MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-BEA -;; Source Path - levels/beach/orb-cache-top-ag-BEA.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-CIT -;; Source Path - levels/citadel/orb-cache-top-ag-CIT.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-JUN -;; Source Path - levels/jungle/orb-cache-top-ag-JUN.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-MIS -;; Source Path - levels/misty/orb-cache-top-ag-MIS.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-SNO -;; Source Path - levels/snow/orb-cache-top-ag-SNO.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-SUN -;; Source Path - levels/sunken/orb-cache-top-ag-SUN.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-VI1 -;; Source Path - levels/village1/orb-cache-top-ag-VI1.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orb-cache-top-ag-VI2 -;; Source Path - levels/village2/orb-cache-top-ag-VI2.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - pelican-ag -;; Source Path - levels/beach/pelican-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sack-ag-BEA -;; Source Path - levels/beach/sack-ag-BEA.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sack-ag-MIS -;; Source Path - levels/misty/sack-ag-MIS.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sculptor-ag -;; Source Path - levels/beach/sculptor-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sculptor-muse-ag -;; Source Path - levels/beach/sculptor-muse-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - seagull-ag -;; Source Path - levels/beach/seagull-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sharkey-ag-BEA-TRA-VI2 -;; Source Path - levels/common/sharkey-ag-BEA-TRA-VI2.gd -;; Containing DGOs - ['BEA', 'TRA', 'VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sharkey-ag-JUN-MIS -;; Source Path - levels/common/sharkey-ag-JUN-MIS.gd -;; Containing DGOs - ['JUN', 'MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sharkey-ag-SWA -;; Source Path - levels/swamp/sharkey-ag-SWA.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sharkey-ag-VI1 -;; Source Path - levels/village1/sharkey-ag-VI1.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - windmill-one-ag -;; Source Path - levels/beach/windmill-one-ag.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - beach-vis -;; Source Path - levels/beach/beach-vis.gd -;; Containing DGOs - ['BEA'] -;; Version - 4 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -25201,6 +24390,8 @@ (init! (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + citb-disc-idle) ) (deftype citb-disc-a (citb-disc) @@ -25268,6 +24459,9 @@ :size-assert #xb4 :heap-base #x50 :flag-assert #x14005000b4 + (:states + citb-robotboss-die + citb-robotboss-idle) ) (deftype citb-coil (process-drawable) @@ -25277,6 +24471,10 @@ :size-assert #xb4 :heap-base #x50 :flag-assert #x14005000b4 + (:states + citb-coil-broken + citb-coil-idle + citb-coil-break) ) (deftype citb-hose (process-drawable) @@ -25285,6 +24483,10 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + citb-hose-die + citb-hose-idle + citb-hose-spawn) ) (deftype citb-chains (process-hidden) @@ -25313,6 +24515,10 @@ (init! (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + citb-generator-broken + citb-generator-idle + citb-generator-break) ) (deftype citadelcam (process-drawable) @@ -25321,6 +24527,9 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + citadelcam-idle + citadelcam-stair-plats) ) (deftype citb-battlecontroller (battlecontroller) @@ -25339,24 +24548,11 @@ ;; - Unknowns (define-extern *citadelcam-sg* skeleton-group) -(define-extern citadelcam-idle (state citadelcam)) ;; unknown type -(define-extern citadelcam-stair-plats (state citadelcam)) ;; unknown type -(define-extern citb-generator-broken (state citb-generator)) ;; unknown type -(define-extern citb-generator-idle (state citb-generator)) ;; unknown type (define-extern *citb-generator-sg* skeleton-group) (define-extern *citb-generator-broken-sg* skeleton-group) -(define-extern citb-generator-break (state citb-generator)) ;; unknown type (define-extern *citb-hose-sg* skeleton-group) -(define-extern citb-hose-die (state citb-hose)) ;; unknown type -(define-extern citb-hose-idle (state citb-hose)) ;; unknown type -(define-extern citb-hose-spawn (state citb-hose)) ;; unknown type (define-extern *citb-coil-sg* skeleton-group) -(define-extern citb-coil-broken (state citb-coil)) ;; unknown type -(define-extern citb-coil-idle (state citb-coil)) ;; unknown type -(define-extern citb-coil-break (state citb-coil)) ;; unknown type (define-extern *citb-robotboss-sg* skeleton-group) -(define-extern citb-robotboss-die (state citb-robotboss)) ;; unknown type -(define-extern citb-robotboss-idle (state citb-robotboss)) ;; unknown type (define-extern *citb-robotboss-nose-sg* skeleton-group) (define-extern *citb-robotboss-head-sg* skeleton-group) (define-extern *citb-robotboss-gun-sg* skeleton-group) @@ -25372,7 +24568,6 @@ (define-extern *citb-disc-c-sg* skeleton-group) (define-extern *citb-disc-b-sg* skeleton-group) (define-extern *citb-disc-a-sg* skeleton-group) -(define-extern citb-disc-idle (state citb-disc)) ;; unknown type (define-extern *citb-arm-shoulder-b-sg* skeleton-group) (define-extern *citb-arm-shoulder-a-sg* skeleton-group) (define-extern *citb-arm-d-sg* skeleton-group) @@ -25447,6 +24642,8 @@ :heap-base #x2b0 :size-assert #x318 :flag-assert #x2302b00318 + (:states + citb-chain-plat-settle) ) (deftype citb-rotatebox (citb-base-plat) @@ -25485,6 +24682,10 @@ :size-assert #xd0 :heap-base #x60 :flag-assert #x14006000d0 + (:states + citb-firehose-idle + citb-firehose-active + citb-firehose-blast) ) (deftype citb-exit-plat (plat-button) @@ -25496,6 +24697,9 @@ :size-assert #xfc :heap-base #x90 :flag-assert #x21009000fc + (:states + citb-exit-plat-idle + citb-exit-plat-rise) ) ;; - Functions @@ -25505,19 +24709,13 @@ ;; - Unknowns -(define-extern citb-exit-plat-idle (state citb-exit-plat)) (define-extern *citb-exit-plat-sg* skeleton-group) -(define-extern citb-exit-plat-rise (state citb-exit-plat)) (define-extern *citb-firehose-sg* skeleton-group) -(define-extern citb-firehose-idle (state citb-firehose)) -(define-extern citb-firehose-active (state citb-firehose)) -(define-extern citb-firehose-blast (state citb-firehose)) (define-extern *citb-stopbox-sg* skeleton-group) (define-extern *citb-donut-sg* skeleton-group) (define-extern *citb-rotatebox-sg* skeleton-group) (define-extern *citb-chain-plat-sg* skeleton-group) (define-extern *citb-chain-plat-constants* rigid-body-platform-constants) -(define-extern citb-chain-plat-settle (state citb-chain-plat)) (define-extern *plat-citb-sg* skeleton-group) (define-extern *plat-eco-citb-lit-sg* skeleton-group) (define-extern *plat-eco-citb-unlit-sg* skeleton-group) @@ -25745,6 +24943,12 @@ (TODO-RENAME-20 (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + drop-plat-spawn + drop-plat-die + drop-plat-idle + drop-plat-drop + (drop-plat-rise draw-control)) ) (deftype handle-inline-array (inline-array-class) @@ -25774,6 +24978,9 @@ :size-assert #x120 :heap-base #xb0 :flag-assert #x1400b00120 + (:states + citb-drop-plat-idle + citb-drop-plat-active) ) ;; - Functions @@ -25786,27 +24993,11 @@ ;; - Unknowns -(define-extern citb-drop-plat-idle (state citb-drop-plat)) -(define-extern citb-drop-plat-active (state citb-drop-plat)) -(define-extern drop-plat-spawn (state drop-plat)) (define-extern *citb-drop-plat-red-sg* skeleton-group) (define-extern *citb-drop-plat-green-sg* skeleton-group) (define-extern *citb-drop-plat-blue-sg* skeleton-group) (define-extern *citb-drop-plat-yellow-sg* skeleton-group) (define-extern *citb-drop-plat-sg* skeleton-group) -(define-extern drop-plat-die (state drop-plat)) -(define-extern drop-plat-idle (state drop-plat)) -(define-extern drop-plat-drop (state drop-plat)) -(define-extern drop-plat-rise (state draw-control drop-plat)) - - -;; ---------------------- -;; File - citb-drop-plat-L1 -;; Source Path - levels/l1_only/citb-drop-plat-L1.gc -;; Containing DGOs - ['L1'] -;; Version - 3 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -25830,366 +25021,6 @@ (define-extern *assistant-lavatube-end-sg* skeleton-group) -;; ---------------------- -;; File - tpage-1415 -;; Source Path - levels/citadel/tpage-1415.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1417 -;; Source Path - levels/citadel/tpage-1417.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1416 -;; Source Path - levels/citadel/tpage-1416.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1414 -;; Source Path - levels/citadel/tpage-1414.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - assistant-lavatube-end-ag -;; Source Path - levels/citadel/assistant-lavatube-end-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - bluesage-ag -;; Source Path - levels/citadel/bluesage-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citadelcam-ag -;; Source Path - levels/citadel/citadelcam-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-arm-ag -;; Source Path - levels/citadel/citb-arm-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-arm-shoulder-ag -;; Source Path - levels/citadel/citb-arm-shoulder-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-bunny-ag -;; Source Path - levels/citadel/citb-bunny-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-button-ag -;; Source Path - levels/citadel/citb-button-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-chain-plat-ag -;; Source Path - levels/citadel/citb-chain-plat-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-chains-ag -;; Source Path - levels/citadel/citb-chains-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-coil-ag -;; Source Path - levels/citadel/citb-coil-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-disc-ag -;; Source Path - levels/citadel/citb-disc-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-donut-ag -;; Source Path - levels/citadel/citb-donut-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-drop-plat-ag -;; Source Path - levels/citadel/citb-drop-plat-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-exit-plat-ag -;; Source Path - levels/citadel/citb-exit-plat-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-firehose-ag -;; Source Path - levels/citadel/citb-firehose-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-generator-ag -;; Source Path - levels/citadel/citb-generator-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-hose-ag -;; Source Path - levels/citadel/citb-hose-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-iris-door-ag -;; Source Path - levels/citadel/citb-iris-door-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-launcher-ag -;; Source Path - levels/citadel/citb-launcher-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-robotboss-ag -;; Source Path - levels/citadel/citb-robotboss-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-rotatebox-ag -;; Source Path - levels/citadel/citb-rotatebox-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-sagecage-ag -;; Source Path - levels/citadel/citb-sagecage-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citb-stopbox-ag -;; Source Path - levels/citadel/citb-stopbox-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - evilbro-citadel-ag -;; Source Path - levels/citadel/evilbro-citadel-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - evilsis-citadel-ag -;; Source Path - levels/citadel/evilsis-citadel-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - green-sagecage-ag -;; Source Path - levels/common/green-sagecage-ag.gd -;; Containing DGOs - ['CIT', 'FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-citb-ag -;; Source Path - levels/citadel/plat-citb-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-eco-citb-ag -;; Source Path - levels/citadel/plat-eco-citb-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - redsage-ag -;; Source Path - levels/citadel/redsage-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - warp-gate-switch-ag-CIT -;; Source Path - levels/citadel/warp-gate-switch-ag-CIT.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - warp-gate-switch-ag-TRA -;; Source Path - levels/training/warp-gate-switch-ag-TRA.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - warp-gate-switch-ag-VI1-VI3 -;; Source Path - levels/common/warp-gate-switch-ag-VI1-VI3.gd -;; Containing DGOs - ['VI1', 'VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - warp-gate-switch-ag-VI2 -;; Source Path - levels/village2/warp-gate-switch-ag-VI2.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - warpgate-ag -;; Source Path - levels/common/warpgate-ag.gd -;; Containing DGOs - ['CIT', 'TRA', 'VI1', 'VI2', 'VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - yellowsage-ag -;; Source Path - levels/citadel/yellowsage-ag.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - citadel-vis -;; Source Path - levels/citadel/citadel-vis.gd -;; Containing DGOs - ['CIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - darkcave-obs ;; Source Path - levels/darkcave/darkcave-obs.gc @@ -26234,188 +25065,6 @@ (declare-type cavecrystal-light-control basic) (define-extern *cavecrystal-sg* skeleton-group) (define-extern *cavecrystal-light-control* cavecrystal-light-control) -(define-extern cavecrystal-idle (state cavecrystal)) -(define-extern cavecrystal-active (state cavecrystal)) - - -;; ---------------------- -;; File - tpage-1306 -;; Source Path - levels/darkcave/tpage-1306.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1307 -;; Source Path - levels/darkcave/tpage-1307.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1305 -;; Source Path - levels/darkcave/tpage-1305.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1304 -;; Source Path - levels/darkcave/tpage-1304.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1352 -;; Source Path - levels/darkcave/tpage-1352.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - baby-spider-ag-DAR -;; Source Path - levels/darkcave/baby-spider-ag-DAR.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - baby-spider-ag-MAI -;; Source Path - levels/maincave/baby-spider-ag-MAI.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - baby-spider-ag-ROB -;; Source Path - levels/robocave/baby-spider-ag-ROB.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavecrystal-ag -;; Source Path - levels/darkcave/cavecrystal-ag.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - caveelevator-ag -;; Source Path - levels/cave_common/caveelevator-ag.gd -;; Containing DGOs - ['DAR', 'ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavespatula-darkcave-ag -;; Source Path - levels/darkcave/cavespatula-darkcave-ag.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavetrapdoor-ag-DAR -;; Source Path - levels/darkcave/cavetrapdoor-ag-DAR.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavetrapdoor-ag-MAI -;; Source Path - levels/maincave/cavetrapdoor-ag-MAI.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavetrapdoor-ag-ROB -;; Source Path - levels/robocave/cavetrapdoor-ag-ROB.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - dark-crystal-ag -;; Source Path - levels/cave_common/dark-crystal-ag.gd -;; Containing DGOs - ['DAR', 'MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - mother-spider-ag -;; Source Path - levels/cave_common/mother-spider-ag.gd -;; Containing DGOs - ['DAR', 'MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - spider-egg-ag-DAR-MAI -;; Source Path - levels/cave_common/spider-egg-ag-DAR-MAI.gd -;; Containing DGOs - ['DAR', 'MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - spider-egg-ag-ROB -;; Source Path - levels/robocave/spider-egg-ag-ROB.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-darkcave-ag -;; Source Path - levels/darkcave/water-anim-darkcave-ag.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - darkcave-vis -;; Source Path - levels/darkcave/darkcave-vis.gd -;; Containing DGOs - ['DAR'] -;; Version - 4 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -26429,114 +25078,6 @@ (define-extern static-screen-spawn (function int int int int int symbol target (pointer process))) ;; target may differ -;; ---------------------- -;; File - tpage-1485 -;; Source Path - levels/demo/tpage-1485.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1486 -;; Source Path - levels/demo/tpage-1486.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1487 -;; Source Path - levels/demo/tpage-1487.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1599 -;; Source Path - levels/demo/tpage-1599.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1600 -;; Source Path - levels/demo/tpage-1600.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1601 -;; Source Path - levels/demo/tpage-1601.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1602 -;; Source Path - levels/demo/tpage-1602.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1603 -;; Source Path - levels/demo/tpage-1603.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1604 -;; Source Path - levels/demo/tpage-1604.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1605 -;; Source Path - levels/demo/tpage-1605.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1606 -;; Source Path - levels/demo/tpage-1606.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1607 -;; Source Path - levels/demo/tpage-1607.gd -;; Containing DGOs - ['DEM', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - static-screen ;; Source Path - levels/common/static-screen.gc @@ -26563,33 +25104,6 @@ (define-extern static-screen-init-by-other (function int int int int int symbol none :behavior static-screen)) -;; ---------------------- -;; File - tpage-1480 -;; Source Path - levels/demo/tpage-1480.gd -;; Containing DGOs - ['DEM'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1479 -;; Source Path - levels/demo/tpage-1479.gd -;; Containing DGOs - ['DEM'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - demo-vis -;; Source Path - levels/demo/demo-vis.gd -;; Containing DGOs - ['DEM'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - robotboss-h ;; Source Path - levels/finalboss/robotboss-h.gc @@ -26657,6 +25171,24 @@ (:methods (ease-loc-t (_type_) float 20) ) + (:states + robotboss-blue-wait + robotboss-blue-dark-bomb + robotboss-blue-dark-bomb-wait + robotboss-green + robotboss-green-wait + robotboss-green-dark-bomb + robotboss-green-dark-bomb-wait + robotboss-red + robotboss-red-wait + robotboss-red-dark-bomb + robotboss-red-dark-bomb-wait + robotboss-yellow + robotboss-yellow-wait + robotboss-yellow-dark-bomb + robotboss-white-eco-movie + robotboss-daxter-sacrifice-movie + robotboss-yellow-dark-bomb-wait) ) ;; - Functions @@ -26664,15 +25196,6 @@ (define-extern target-has-all-the-cells? (function symbol)) -;; ---------------------- -;; File - robotboss-part -;; Source Path - levels/finalboss/robotboss-part.gc -;; Containing DGOs - ['FIN', 'L1'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - sage-finalboss-part ;; Source Path - levels/finalboss/sage-finalboss-part.gc @@ -26716,6 +25239,7 @@ light-eco-child-hit-ground light-eco-child-idle light-eco-child-die + light-eco-child-appear ) ) @@ -26738,6 +25262,7 @@ (:states light-eco-mother-discipate light-eco-mother-active + light-eco-mother-appear ) ) @@ -26753,9 +25278,7 @@ ;; - Unknowns (define-extern *light-eco-big-sg* skeleton-group) -(define-extern light-eco-mother-appear (state light-eco-mother)) (define-extern *light-eco-small-sg* skeleton-group) -(define-extern light-eco-child-appear (state light-eco-child)) ;; ---------------------- @@ -26802,6 +25325,8 @@ :size-assert #xe0 :heap-base #x70 :flag-assert #x14007000e0 + (:states + arcing-shot-debug-trajectory) ) (deftype darkecobomb (arcing-shot) @@ -26814,6 +25339,11 @@ :size-assert #xf4 :heap-base #x90 :flag-assert #x14009000f4 + (:states + darkecobomb-idle + darkecobomb-land + darkecobomb-countdown + (darkecobomb-explode symbol)) ) (deftype greenshot (arcing-shot) @@ -26823,6 +25353,8 @@ :size-assert #xe8 :heap-base #x80 :flag-assert #x14008000e8 + (:states + greenshot-idle) ) (deftype redshot (arcing-shot) @@ -26838,6 +25370,10 @@ :size-assert #x130 :heap-base #xc0 :flag-assert #x1400c00130 + (:states + redshot-idle + redshot-wait + redshot-explode) ) (deftype yellowshot (arcing-shot) @@ -26847,6 +25383,8 @@ :size-assert #xe8 :heap-base #x80 :flag-assert #x14008000e8 + (:states + yellowshot-idle) ) ;; - Functions @@ -26867,18 +25405,8 @@ ;; - Unknowns (define-extern *redring-sg* skeleton-group) -(define-extern yellowshot-idle (state yellowshot)) -(define-extern redshot-idle (state redshot)) -(define-extern redshot-wait (state redshot)) -(define-extern redshot-explode (state redshot)) (define-extern *greenshot-sg* skeleton-group) -(define-extern greenshot-idle (state greenshot)) (define-extern *darkecobomb-sg* skeleton-group) -(define-extern darkecobomb-idle (state darkecobomb)) -(define-extern darkecobomb-land (state darkecobomb)) -(define-extern darkecobomb-countdown (state darkecobomb)) -(define-extern darkecobomb-explode (state symbol darkecobomb)) -(define-extern arcing-shot-debug-trajectory (state arcing-shot)) ;; ---------------------- @@ -26906,6 +25434,9 @@ :size-assert #x110 :heap-base #xa0 :flag-assert #x1400a00110 + (:states + ecoclaw-idle + ecoclaw-activate) ) (deftype silodoor (process-drawable) @@ -26943,8 +25474,6 @@ (define-extern *silodoor-sg* skeleton-group) (define-extern *ecoclaw-sg* skeleton-group) (define-extern *ecoclaw* (pointer ecoclaw)) -(define-extern ecoclaw-idle (state ecoclaw)) -(define-extern ecoclaw-activate (state ecoclaw)) (define-extern *med-res-snow1-sg* skeleton-group) @@ -26971,7 +25500,8 @@ (:states green-eco-lurker-appear green-eco-lurker-appear-land - ) + green-eco-lurker-wait-to-appear + green-eco-lurker-tune-spheres) ) (deftype green-eco-lurker-gen (process-drawable) @@ -26983,6 +25513,8 @@ :size-assert #xbc :heap-base #x50 :flag-assert #x14005000bc + (:states + spawn-minions) ) ;; - Functions @@ -26992,11 +25524,8 @@ ;; - Unknowns -(define-extern spawn-minions (state green-eco-lurker-gen)) -(define-extern green-eco-lurker-wait-to-appear (state green-eco-lurker)) (define-extern *green-eco-lurker-sg* skeleton-group) (define-extern *green-eco-lurker-nav-enemy-info* nav-enemy-info) -(define-extern green-eco-lurker-tune-spheres (state green-eco-lurker)) ;; ---------------------- @@ -27051,26 +25580,9 @@ ;; - Unknowns -(define-extern robotboss-blue-wait (state robotboss)) -(define-extern robotboss-blue-dark-bomb (state robotboss)) (define-extern *robotboss-blueeco-sg* skeleton-group) -(define-extern robotboss-blue-dark-bomb-wait (state robotboss)) -(define-extern robotboss-green (state robotboss)) -(define-extern robotboss-green-wait (state robotboss)) -(define-extern robotboss-green-dark-bomb (state robotboss)) -(define-extern robotboss-green-dark-bomb-wait (state robotboss)) -(define-extern robotboss-red (state robotboss)) -(define-extern robotboss-red-wait (state robotboss)) -(define-extern robotboss-red-dark-bomb (state robotboss)) (define-extern *robotboss-redeco-sg* skeleton-group) -(define-extern robotboss-red-dark-bomb-wait (state robotboss)) -(define-extern robotboss-yellow (state robotboss)) -(define-extern robotboss-yellow-wait (state robotboss)) -(define-extern robotboss-yellow-dark-bomb (state robotboss)) (define-extern *robotboss-yelloweco-sg* skeleton-group) -(define-extern robotboss-white-eco-movie (state robotboss)) -(define-extern robotboss-daxter-sacrifice-movie (state robotboss)) -(define-extern robotboss-yellow-dark-bomb-wait (state robotboss)) ;; ---------------------- @@ -27200,6 +25712,8 @@ :size-assert #x270 :heap-base #x200 :flag-assert #x3502000270 + (:states + sage-finalboss-credits) ) ;; - Functions @@ -27211,247 +25725,12 @@ ;; - Unknowns (define-extern *sage-finalboss-sg* skeleton-group) -(define-extern sage-finalboss-credits (state sage-finalboss)) (define-extern *jak-white-sg* skeleton-group) (define-extern *robotboss-cinematic-sg* skeleton-group) (define-extern *plat-eco-finalboss-lit-sg* skeleton-group) (define-extern *plat-eco-finalboss-unlit-sg* skeleton-group) -;; ---------------------- -;; File - sage-finalboss-L1 -;; Source Path - levels/l1_only/sage-finalboss-L1.gc -;; Containing DGOs - ['L1'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1419 -;; Source Path - levels/finalboss/tpage-1419.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1420 -;; Source Path - levels/finalboss/tpage-1420.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-634 -;; Source Path - levels/finalboss/tpage-634.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1418 -;; Source Path - levels/finalboss/tpage-1418.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-545 -;; Source Path - levels/finalboss/tpage-545.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - darkecobomb-ag -;; Source Path - levels/finalboss/darkecobomb-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ecoclaw-ag -;; Source Path - levels/finalboss/ecoclaw-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - finalbosscam-ag -;; Source Path - levels/finalboss/finalbosscam-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - green-eco-lurker-ag -;; Source Path - levels/finalboss/green-eco-lurker-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - greenshot-ag -;; Source Path - levels/finalboss/greenshot-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - jak-white-ag -;; Source Path - levels/finalboss/jak-white-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - light-eco-ag -;; Source Path - levels/finalboss/light-eco-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-eco-finalboss-ag -;; Source Path - levels/finalboss/plat-eco-finalboss-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - power-left-ag -;; Source Path - levels/finalboss/power-left-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - power-right-ag -;; Source Path - levels/finalboss/power-right-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - powercellalt-ag -;; Source Path - levels/finalboss/powercellalt-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - redring-ag -;; Source Path - levels/finalboss/redring-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - robotboss-ag -;; Source Path - levels/finalboss/robotboss-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - robotboss-blueeco-ag -;; Source Path - levels/finalboss/robotboss-blueeco-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - robotboss-cinematic-ag -;; Source Path - levels/finalboss/robotboss-cinematic-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - robotboss-redeco-ag -;; Source Path - levels/finalboss/robotboss-redeco-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - robotboss-yelloweco-ag -;; Source Path - levels/finalboss/robotboss-yelloweco-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - silodoor-ag -;; Source Path - levels/finalboss/silodoor-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-finalboss-ag -;; Source Path - levels/finalboss/water-anim-finalboss-ag.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - finalboss-vis -;; Source Path - levels/finalboss/finalboss-vis.gd -;; Containing DGOs - ['FIN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - evilbro ;; Source Path - levels/intro/evilbro.gc @@ -27483,69 +25762,6 @@ (define-extern *evilbro-intro-sg* skeleton-group) -;; ---------------------- -;; File - tpage-1455 -;; Source Path - levels/intro/tpage-1455.gd -;; Containing DGOs - ['INT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1457 -;; Source Path - levels/intro/tpage-1457.gd -;; Containing DGOs - ['INT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1456 -;; Source Path - levels/intro/tpage-1456.gd -;; Containing DGOs - ['INT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1454 -;; Source Path - levels/intro/tpage-1454.gd -;; Containing DGOs - ['INT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - evilbro-ag -;; Source Path - levels/intro/evilbro-ag.gd -;; Containing DGOs - ['INT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - evilsis-ag -;; Source Path - levels/intro/evilsis-ag.gd -;; Containing DGOs - ['INT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - intro-vis -;; Source Path - levels/intro/intro-vis.gd -;; Containing DGOs - ['INT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - jungleb-obs ;; Source Path - levels/jungleb/jungleb-obs.gc @@ -27563,6 +25779,9 @@ :size-assert #xbc :heap-base #x50 :flag-assert #x14005000bc + (:states + (eggtop-close symbol) + eggtop-idle) ) (deftype jng-iris-door (eco-door) @@ -27577,8 +25796,6 @@ (define-extern *jng-iris-door-sg* skeleton-group) (define-extern *eggtop-sg* skeleton-group) -(define-extern eggtop-close (state symbol eggtop)) -(define-extern eggtop-idle (state eggtop)) ;; ---------------------- @@ -27605,21 +25822,13 @@ :size-assert #x100 :heap-base #x90 :flag-assert #x1400900100 + (:states + plat-flip-idle) ) ;; - Unknowns (define-extern *plat-flip-sg* skeleton-group) -(define-extern plat-flip-idle (state plat-flip)) ;; unknown type - - -;; ---------------------- -;; File - plant-boss-main+0-ag -;; Source Path - levels/jungleb/plant-boss-main+0-ag.gd -;; Containing DGOs - ['JUB', 'L1'] -;; Version - 4 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -27767,159 +25976,6 @@ (define-extern *plant-boss-arm-sg* skeleton-group) -;; ---------------------- -;; File - tpage-485 -;; Source Path - levels/jungleb/tpage-485.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-510 -;; Source Path - levels/jungleb/tpage-510.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-507 -;; Source Path - levels/jungleb/tpage-507.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-966 -;; Source Path - levels/jungleb/tpage-966.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - aphid-lurker-ag -;; Source Path - levels/jungleb/aphid-lurker-ag.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - darkvine-ag-JUB -;; Source Path - levels/jungleb/darkvine-ag-JUB.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - darkvine-ag-JUN -;; Source Path - levels/jungle/darkvine-ag-JUN.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eggtop-ag -;; Source Path - levels/jungleb/eggtop-ag.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - jng-iris-door-ag-JUB -;; Source Path - levels/jungleb/jng-iris-door-ag-JUB.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - jng-iris-door-ag-TRA -;; Source Path - levels/training/jng-iris-door-ag-TRA.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plant-boss-ag -;; Source Path - levels/jungleb/plant-boss-ag.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-flip-ag -;; Source Path - levels/jungleb/plat-flip-ag.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-jungleb-ag -;; Source Path - levels/jungleb/plat-jungleb-ag.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - jungleb-vis -;; Source Path - levels/jungleb/jungleb-vis.gd -;; Containing DGOs - ['JUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-fish+0-ag-JUN -;; Source Path - levels/jungle/eichar-fish+0-ag-JUN.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-fish+0-ag-JUNGLE -;; Source Path - levels/l1_only/eichar-fish+0-ag-JUNGLE.gd -;; Containing DGOs - ['JUNGLE'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-fish+0-ag-L1 -;; Source Path - levels/l1_only/eichar-fish+0-ag-L1.gd -;; Containing DGOs - ['L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - jungle-elevator ;; Source Path - levels/jungle/jungle-elevator.gc @@ -27956,15 +26012,15 @@ :size-assert #xb8 :heap-base #x50 :flag-assert #x14005000b8 - ;; inherited inspect of process-drawable + (:states + bouncer-wait + bouncer-fire + bouncer-smush) ) ;; - Unknowns (define-extern *bouncer-sg* skeleton-group) -(define-extern bouncer-wait (state springbox)) ;; unknown type -(define-extern bouncer-fire (state springbox)) ;; unknown type -(define-extern bouncer-smush (state springbox)) ;; unknown type ;; ---------------------- @@ -28094,6 +26150,10 @@ :size-assert #xd4 :heap-base #x70 :flag-assert #x14007000d4 + (:states + (darkvine-die symbol) + darkvine-idle + darkvine-retreat) ) ;; - Functions @@ -28103,9 +26163,6 @@ ;; - Unknowns (define-extern *darkvine-sg* skeleton-group) -(define-extern darkvine-die (state symbol darkvine)) ;; unknown type -(define-extern darkvine-idle (state darkvine)) ;; unknown type -(define-extern darkvine-retreat (state darkvine)) ;; unknown type ;; ---------------------- @@ -28141,6 +26198,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + towertop-idle) ) (deftype lurkerm-tall-sail (process-drawable) @@ -28152,6 +26211,8 @@ :size-assert #xb8 :heap-base #x50 :flag-assert #x14005000b8 + (:states + lurkerm-tall-sail-idle) ) (deftype lurkerm-short-sail (process-drawable) @@ -28163,6 +26224,8 @@ :size-assert #xb8 :heap-base #x50 :flag-assert #x14005000b8 + (:states + lurkerm-short-sail-idle) ) (deftype lurkerm-piston (process-drawable) @@ -28177,6 +26240,8 @@ :size-assert #xe8 :heap-base #x80 :flag-assert #x14008000e8 + (:states + lurkerm-piston-idle) ) (deftype accordian (process-drawable) @@ -28187,6 +26252,8 @@ :size-assert #xb8 :heap-base #x50 :flag-assert #x14005000b8 + (:states + accordian-idle) ) (deftype junglecam (process-hidden) @@ -28215,6 +26282,10 @@ :size-assert #x110 :heap-base #xa0 :flag-assert #x1400a00110 + (:states + (precurbridge-active symbol) + precurbridge-idle + precurbridge-activate) ) (deftype maindoor (process-drawable) @@ -28225,6 +26296,9 @@ :size-assert #xc0 :heap-base #x50 :flag-assert #x14005000c0 + (:states + (maindoor-open symbol) + (maindoor-closed symbol)) ) (deftype sidedoor (eco-door) @@ -28245,6 +26319,8 @@ :size-assert #xbc :heap-base #x50 :flag-assert #x14005000bc + (:states + jngpusher-idle) ) (deftype jungle-water (water-anim) @@ -28259,26 +26335,15 @@ (define-extern ripple-for-jungle-water ripple-wave-set) ;; unknown type (define-extern *jngpusher-sg* skeleton-group) -(define-extern jngpusher-idle (state jngpusher)) ;; unknown type (define-extern *sidedoor-sg* skeleton-group) (define-extern *maindoor-sg* skeleton-group) -(define-extern maindoor-open (state symbol maindoor)) ;; unknown type -(define-extern maindoor-closed (state symbol maindoor)) ;; unknown type (define-extern *precurbridge-sg* skeleton-group) -(define-extern precurbridge-active (state symbol precurbridge)) ;; unknown type -(define-extern precurbridge-idle (state precurbridge)) ;; unknown type (define-extern *junglecam-sg* skeleton-group) -(define-extern precurbridge-activate (state precurbridge)) ;; unknown type (define-extern *accordian-sg* skeleton-group) -(define-extern accordian-idle (state accordian)) ;; unknown type (define-extern *lurkerm-piston-sg* skeleton-group) -(define-extern lurkerm-piston-idle (state lurkerm-piston)) ;; unknown type (define-extern *lurkerm-short-sail-sg* skeleton-group) -(define-extern lurkerm-short-sail-idle (state lurkerm-short-sail)) ;; unknown type (define-extern *lurkerm-tall-sail-sg* skeleton-group) -(define-extern lurkerm-tall-sail-idle (state lurkerm-tall-sail)) ;; unknown type (define-extern *towertop-sg* skeleton-group) -(define-extern towertop-idle (state towertop)) ;; unknown type (define-extern *logtrap-sg* skeleton-group) (define-extern *med-res-firecanyon-sg* skeleton-group) (define-extern *jungle-camera-sg* skeleton-group) @@ -28397,7 +26462,6 @@ (define-extern *reflector-mirror-sg* skeleton-group) (define-extern *reflector-mirror-break-sg* skeleton-group) (define-extern *periscope-base-sg* skeleton-group) -(define-extern cam-periscope (state camera-slave)) ;; unknown type (define-extern *periscope-mirror-sg* skeleton-group) @@ -28488,6 +26552,9 @@ :size-assert #x260 :heap-base #x1f0 :flag-assert #x3501f00260 + (:states + fisher-playing + fisher-done) ) (deftype fisher-fish (process-drawable) @@ -28502,7 +26569,10 @@ :size-assert #xd4 :heap-base #x70 :flag-assert #x14007000d4 - ;; inherited inspect of process-drawable + (:states + fisher-fish-fall + fisher-fish-caught + fisher-fish-die) ) ;; - Functions @@ -28519,24 +26589,10 @@ (define-extern *fish-net-sg* skeleton-group) (define-extern *fisher-sg* skeleton-group) (define-extern *FISHER-bank* fisher-bank) ;; unknown type -(define-extern fisher-playing (state fisher)) ;; unknown type (define-extern *fisher-params* (array (inline-array fisher-params))) ;; unknown type -(define-extern fisher-done (state fisher)) ;; unknown type (define-extern *catch-fishc-sg* skeleton-group) (define-extern *catch-fishb-sg* skeleton-group) (define-extern *catch-fisha-sg* skeleton-group) -(define-extern fisher-fish-fall (state fisher-fish)) ;; unknown type -(define-extern fisher-fish-caught (state fisher-fish)) ;; unknown type -(define-extern fisher-fish-die (state fisher-fish)) ;; unknown type - - -;; ---------------------- -;; File - fisher-JUNGLE-L1 -;; Source Path - levels/jungle/fisher-JUNGLE-L1.gc -;; Containing DGOs - ['JUNGLE', 'L1'] -;; Version - 3 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -28576,347 +26632,15 @@ :size-assert #xc4 :heap-base #x60 :flag-assert #x14006000c4 + (:states + (launcherdoor-open symbol) +(launcherdoor-closed symbol)) ) ;; - Unknowns (define-extern *launcherdoor-maincave-sg* skeleton-group) (define-extern *launcherdoor-sg* skeleton-group) -(define-extern launcherdoor-open (state symbol launcherdoor)) ;; unknown type -(define-extern launcherdoor-closed (state symbol launcherdoor)) ;; unknown type - - -;; ---------------------- -;; File - tpage-385 -;; Source Path - levels/jungle/tpage-385.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-531 -;; Source Path - levels/jungle/tpage-531.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-386 -;; Source Path - levels/jungle/tpage-386.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-388 -;; Source Path - levels/jungle/tpage-388.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-765 -;; Source Path - levels/jungle/tpage-765.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - accordian-ag -;; Source Path - levels/jungle/accordian-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - bounceytarp-ag -;; Source Path - levels/jungle/bounceytarp-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - catch-fisha-ag -;; Source Path - levels/jungle/catch-fisha-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - catch-fishb-ag -;; Source Path - levels/jungle/catch-fishb-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - catch-fishc-ag -;; Source Path - levels/jungle/catch-fishc-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - fish-net-ag -;; Source Path - levels/jungle/fish-net-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - fisher-ag -;; Source Path - levels/jungle/fisher-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - hopper-ag -;; Source Path - levels/jungle/hopper-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - junglecam-ag -;; Source Path - levels/jungle/junglecam-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - junglefish-ag -;; Source Path - levels/jungle/junglefish-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - junglesnake-ag -;; Source Path - levels/jungle/junglesnake-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - launcherdoor-ag-JUN -;; Source Path - levels/jungle/launcherdoor-ag-JUN.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - launcherdoor-ag-SUN -;; Source Path - levels/sunken/launcherdoor-ag-SUN.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - logtrap-ag -;; Source Path - levels/jungle/logtrap-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lurkerm-piston-ag -;; Source Path - levels/jungle/lurkerm-piston-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lurkerm-tall-sail-ag -;; Source Path - levels/jungle/lurkerm-tall-sail-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - maindoor-ag -;; Source Path - levels/jungle/maindoor-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-firecanyon-ag -;; Source Path - levels/jungle/medres-firecanyon-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - periscope-ag -;; Source Path - levels/jungle/periscope-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-button-ag -;; Source Path - levels/jungle/plat-button-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-eco-ag-JUN -;; Source Path - levels/jungle/plat-eco-ag-JUN.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-eco-ag-MIS -;; Source Path - levels/misty/plat-eco-ag-MIS.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-eco-ag-ROB -;; Source Path - levels/robocave/plat-eco-ag-ROB.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-eco-ag-TRA -;; Source Path - levels/training/plat-eco-ag-TRA.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - precurbridge-ag -;; Source Path - levels/jungle/precurbridge-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - reflector-mirror-ag -;; Source Path - levels/jungle/reflector-mirror-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ropebridge-52-ag -;; Source Path - levels/jungle/ropebridge-52-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ropebridge-70-ag -;; Source Path - levels/jungle/ropebridge-70-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sidedoor-ag -;; Source Path - levels/jungle/sidedoor-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - towertop-ag -;; Source Path - levels/jungle/towertop-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-jungle-ag -;; Source Path - levels/jungle/water-anim-jungle-ag.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - jungle-vis -;; Source Path - levels/jungle/jungle-vis.gd -;; Containing DGOs - ['JUN'] -;; Version - 4 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -29052,15 +26776,6 @@ (define-extern *balloon-sg* skeleton-group) -;; ---------------------- -;; File - target-racer-h-FIC-LAV-MIS-OGR-ROL -;; Source Path - levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc -;; Containing DGOs - ['FIC', 'LAV', 'MIS', 'OGR', 'ROL'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - racer-part ;; Source Path - levels/racer_common/racer-part.gc @@ -29170,20 +26885,10 @@ ;; - Unknowns -(define-extern target-racing-smack (state float symbol target)) ;; unknown type (define-extern *racer-mods* surface) ;; unknown type (define-extern *racer-air-mods* surface) ;; unknown type -;; ---------------------- -;; File - target-racer-FIC-LAV-MIS-OGR-ROL -;; Source Path - levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL.gc -;; Containing DGOs - ['FIC', 'LAV', 'MIS', 'OGR', 'ROL'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - racer-states-L1-RACERP ;; Source Path - levels/l1_only/racer-states-L1-RACERP.gc @@ -29196,53 +26901,6 @@ ;; - Unknowns -(define-extern target-racing (state target)) -(define-extern target-racing-grab (state target)) -(define-extern target-racing-clone-anim (state handle target)) -(define-extern target-racing-get-off-hit-ground (state symbol target)) -(define-extern target-racing-get-off-jump (state handle target)) -(define-extern target-racing-jump (state float float symbol target)) -(define-extern target-racing-bounce (state float float symbol target)) -(define-extern target-racing-falling (state target)) -(define-extern target-racing-get-on (state handle target)) -(define-extern target-racing-get-off (state handle target)) -(define-extern target-racing-hit (state handle attack-info target)) - - -;; ---------------------- -;; File - racer-states-FIC-LAV-MIS-OGR-ROL -;; Source Path - levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL.gc -;; Containing DGOs - ['FIC', 'LAV', 'MIS', 'OGR', 'ROL'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - collide-reaction-racer -;; Source Path - levels/racer_common/collide-reaction-racer.gc -;; Containing DGOs - ['L1', 'FIC', 'LAV', 'MIS', 'OGR', 'RACERP', 'ROL'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-racer+0-ag -;; Source Path - levels/racer_common/eichar-racer+0-ag.gd -;; Containing DGOs - ['L1', 'FIC', 'LAV', 'MIS', 'OGR', 'RACERP', 'ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1119 -;; Source Path - levels/racer_common/tpage-1119.gd -;; Containing DGOs - ['L1', 'FIC', 'LAV', 'MIS', 'OGR', 'RACERP', 'ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -29259,6 +26917,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + blocking-plane-idle) ) ;; - Functions @@ -29268,16 +26928,6 @@ ;; - Unknowns (define-extern *ef-plane-sg* skeleton-group) -(define-extern blocking-plane-idle (state blocking-plane)) - - -;; ---------------------- -;; File - flut-part -;; Source Path - levels/flut_common/flut-part.gc -;; Containing DGOs - ['L1', 'SNO', 'SWA'] -;; Version - 3 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -29368,38 +27018,12 @@ ;; - Unknowns -(define-extern target-flut-stance (state target)) ;; unknown type -(define-extern target-flut-grab (state target)) ;; unknown type -(define-extern target-flut-clone-anim (state handle target)) ;; unknown type -(define-extern target-flut-get-off-hit-ground (state symbol target)) ;; unknown type -(define-extern target-flut-get-off-jump (state handle target)) ;; unknown type -(define-extern target-flut-death (state symbol target)) ;; unknown type -(define-extern target-flut-hit-ground (state target)) ;; unknown type (define-extern *flut-air-attack-mods* surface) ;; unknown type -(define-extern target-flut-air-attack-hit-ground (state target)) ;; unknown type -(define-extern target-flut-jump (state float float target)) ;; unknown type (define-extern *FLUT-bank* flut-bank) ;; unknown type -(define-extern target-flut-falling (state target)) ;; unknown type (define-extern *flut-run-attack-mods* surface) ;; unknown type -(define-extern target-flut-hit (state symbol attack-info target)) ;; unknown type (define-extern *flut-jump-mods* surface) ;; unknown type -(define-extern target-flut-walk (state target)) ;; unknown type (define-extern *flut-walk-mods* surface) ;; unknown type -(define-extern target-flut-air-attack (state float target)) ;; unknown type (define-extern *flut-double-jump-mods* surface) ;; unknown type -(define-extern target-flut-double-jump (state float float target)) ;; unknown type -(define-extern target-flut-running-attack (state target)) ;; unknown type -(define-extern target-flut-get-on (state handle target)) ;; unknown type -(define-extern target-flut-get-off (state handle target)) ;; unknown type - - -;; ---------------------- -;; File - eichar-flut+0-ag -;; Source Path - levels/flut_common/eichar-flut+0-ag.gd -;; Containing DGOs - ['L1', 'SNO', 'SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! ;; ---------------------- @@ -29558,7 +27182,15 @@ :size-assert #x120 :heap-base #xb0 :flag-assert #x1400b00120 - ;; inherited inspect of process-drawable + (:states + yakow-graze + yakow-idle + yakow-run-away + yakow-graze-kicked + (yakow-walk-to vector) + yakow-notice + yakow-kicked + yakow-die) ) ;; - Functions @@ -29580,15 +27212,7 @@ (define-extern *YAKOW-bank* yakow-bank) (define-extern *yakow-sg* skeleton-group) -(define-extern yakow-graze (state yakow)) -(define-extern yakow-idle (state yakow)) -(define-extern yakow-run-away (state yakow)) -(define-extern yakow-graze-kicked (state yakow)) -(define-extern yakow-walk-to (state vector yakow)) -(define-extern yakow-notice (state yakow)) -(define-extern yakow-kicked (state yakow)) (define-extern *village1cam-sg* skeleton-group) -(define-extern yakow-die (state yakow)) ;; ---------------------- @@ -29611,6 +27235,8 @@ :size-assert #xe8 :heap-base #x80 :flag-assert #x14008000e8 + (:states + windmill-sail-idle) ) (deftype sagesail (process-drawable) @@ -29623,6 +27249,8 @@ :size-assert #xe0 :heap-base #x70 :flag-assert #x14007000e0 + (:states + sagesail-idle) ) (deftype windspinner (process-drawable) @@ -29635,6 +27263,8 @@ :size-assert #xd8 :heap-base #x70 :flag-assert #x14007000d8 + (:states + windspinner-idle) ) (deftype mayorgears (process-drawable) @@ -29644,6 +27274,8 @@ :size-assert #xb4 :heap-base #x50 :flag-assert #x14005000b4 + (:states + mayorgears-idle) ) (deftype reflector-middle (process-drawable) @@ -29654,6 +27286,8 @@ :size-assert #xd0 :heap-base #x60 :flag-assert #x14006000d0 + (:states + reflector-middle-idle) ) (deftype reflector-end (process-drawable) @@ -29662,6 +27296,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + reflector-end-idle) ) (deftype villa-starfish (process-drawable) @@ -29671,6 +27307,8 @@ :size-assert #xb1 :heap-base #x50 :flag-assert #x14005000b1 + (:states + villa-starfish-idle) ) (deftype starfish (nav-enemy) @@ -29679,6 +27317,9 @@ :size-assert #x190 :heap-base #x120 :flag-assert #x4c01200190 + (:states + starfish-idle + starfish-patrol) ) (deftype village-fish (process-drawable) @@ -29688,6 +27329,8 @@ :size-assert #xb1 :heap-base #x50 :flag-assert #x14005000b1 + (:states + village-fish-idle) ) (deftype villa-fisha (village-fish) @@ -29724,6 +27367,8 @@ :size-assert #xbc :heap-base #x50 :flag-assert #x14005000bc + (:states + hutlamp-idle) ) (deftype revcycleprop (process-drawable) @@ -29770,24 +27415,13 @@ (define-extern *revcycle-sg* skeleton-group) (define-extern *revcycleprop-sg* skeleton-group) (define-extern *hutlamp-sg* skeleton-group) -(define-extern hutlamp-idle (state hutlamp)) ;; unknown type -(define-extern village-fish-idle (state village-fish)) ;; unknown type -(define-extern villa-starfish-idle (state villa-starfish)) ;; unknown type -(define-extern starfish-idle (state starfish)) ;; unknown type (define-extern *starfish-sg* skeleton-group) (define-extern *starfish-nav-enemy-info* nav-enemy-info) -(define-extern starfish-patrol (state starfish)) ;; unknown type -(define-extern reflector-end-idle (state reflector-end)) ;; unknown type (define-extern *reflector-middle-sg* skeleton-group) -(define-extern reflector-middle-idle (state reflector-middle)) ;; unknown type (define-extern *mayorgears-sg* skeleton-group) -(define-extern mayorgears-idle (state mayorgears)) ;; unknown type (define-extern *windspinner-sg* skeleton-group) -(define-extern windspinner-idle (state windspinner)) ;; unknown type (define-extern *sagesail-sg* skeleton-group) -(define-extern sagesail-idle (state sagesail)) ;; unknown type (define-extern *windmill-sail-sg* skeleton-group) -(define-extern windmill-sail-idle (state windmill-sail)) ;; unknown type (define-extern *med-res-jungle-sg* skeleton-group) (define-extern *med-res-jungle1-sg* skeleton-group) (define-extern *med-res-jungle2-sg* skeleton-group) @@ -29802,15 +27436,6 @@ (define-extern *med-res-training-sg* skeleton-group) -;; ---------------------- -;; File - village-obs-VI1 -;; Source Path - levels/village1/village-obs-VI1.gc -;; Containing DGOs - ['VI1'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - fishermans-boat ;; Source Path - levels/village1/fishermans-boat.gc @@ -29910,6 +27535,17 @@ :size-assert #x520 :heap-base #x4b0 :flag-assert #x2304b00520 + (:states + fishermans-boat-docked-village + fishermans-boat-docked-misty + fishermans-boat-player-control + fishermans-boat-entering-village + fishermans-boat-entering-misty + fishermans-boat-ride-to-village1 + fishermans-boat-ride-to-misty + fishermans-boat-leaving-village + fishermans-boat-leaving-misty + fishermans-boat-measurements) ) ;; - Functions @@ -29928,22 +27564,12 @@ ;; - Unknowns -(define-extern fishermans-boat-docked-village (state fishermans-boat)) ;; unknown type (define-extern *fb-evilbro-sg* skeleton-group) (define-extern *fb-evilsis-sg* skeleton-group) -(define-extern fishermans-boat-docked-misty (state fishermans-boat)) ;; unknown type (define-extern *fishermans-boat-sg* skeleton-group) (define-extern *boat-turning-radius-table* (pointer float)) ;; unknown type (define-extern *boat-throttle-control-table* (pointer float)) ;; unknown type (define-extern *fishermans-boat-constants* rigid-body-platform-constants) ;; unknown type -(define-extern fishermans-boat-player-control (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-entering-village (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-entering-misty (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-ride-to-village1 (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-ride-to-misty (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-leaving-village (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-leaving-misty (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-measurements (state fishermans-boat)) ;; unknown type ;; ---------------------- @@ -30284,6 +27910,10 @@ :heap-base #x50 :size-assert #xc0 :flag-assert #x14005000c0 + (:states + (silostep-rise symbol) + silostep-idle + silostep-camera) ) (deftype rounddoor (eco-door) @@ -30302,9 +27932,6 @@ (define-extern *rounddoor-sg* skeleton-group) (define-extern *silostep-sg* skeleton-group) -(define-extern silostep-rise (state symbol silostep)) -(define-extern silostep-idle (state silostep)) -(define-extern silostep-camera (state silostep)) ;; ---------------------- @@ -30323,6 +27950,8 @@ :size-assert #xd0 :heap-base #x60 :flag-assert #x14006000d0 + (:states + keg-conveyor-idle) ) (deftype keg-conveyor-paddle (process-drawable) @@ -30334,6 +27963,8 @@ :size-assert #xbc :heap-base #x50 :flag-assert #x14005000bc + (:states + keg-conveyor-paddle-idle) ) (deftype keg (process-drawable) @@ -30349,6 +27980,12 @@ :size-assert #x104 :heap-base #xa0 :flag-assert #x1400a00104 + (:states + keg-on-paddle + keg-die + keg-in-chute + keg-on-path + keg-paddle-to-path) ) ;; - Functions @@ -30365,16 +28002,9 @@ ;; - Unknowns (define-extern *keg-conveyor-sg* skeleton-group) -(define-extern keg-conveyor-idle (state keg-conveyor)) ;; unknown type (define-extern *keg-conveyor-paddle-sg* skeleton-group) -(define-extern keg-conveyor-paddle-idle (state keg-conveyor-paddle)) ;; unknown type (define-extern *keg-conveyor-keg-spawn-table* (array int8)) ;; unknown type (define-extern *keg-sg* skeleton-group) -(define-extern keg-on-paddle (state keg)) ;; unknown type -(define-extern keg-die (state keg)) ;; unknown type -(define-extern keg-in-chute (state keg)) ;; unknown type -(define-extern keg-on-path (state keg)) ;; unknown type -(define-extern keg-paddle-to-path (state keg)) ;; unknown type ;; ---------------------- @@ -30471,6 +28101,8 @@ :size-assert #x198 :heap-base #x130 :flag-assert #x4c01300198 + (:states + bonelurker-stun) ) ;; - Functions @@ -30484,7 +28116,6 @@ (define-extern *bonelurker-sg* skeleton-group) (define-extern *bonelurker-nav-enemy-info* nav-enemy-info) -(define-extern bonelurker-stun (state bonelurker)) ;; unknown type ;; ---------------------- @@ -30504,6 +28135,7 @@ :flag-assert #x14004000b0 (:states quicksandlurker-missile-impact + quicksandlurker-missile-idle ) ) @@ -30537,6 +28169,8 @@ quicksandlurker-track quicksandlurker-attack quicksandlurker-popup + quicksandlurker-idle + quicksandlurker-yawn ) ) @@ -30556,9 +28190,6 @@ ;; - Unknowns (define-extern *quicksandlurker-sg* skeleton-group) -(define-extern quicksandlurker-idle (state quicksandlurker)) ;; unknown type -(define-extern quicksandlurker-missile-idle (state quicksandlurker-missile)) ;; unknown type -(define-extern quicksandlurker-yawn (state quicksandlurker)) ;; unknown type ;; ---------------------- @@ -30578,6 +28209,10 @@ :heap-base #x50 :size-assert #xbc :flag-assert #x14005000bc + (:states + teetertotter-idle + teetertotter-launch + teetertotter-bend) ) ;; - Functions @@ -30587,9 +28222,6 @@ ;; - Unknowns (define-extern *teetertotter-sg* skeleton-group) -(define-extern teetertotter-idle (state teetertotter)) -(define-extern teetertotter-launch (state teetertotter)) -(define-extern teetertotter-bend (state teetertotter)) ;; ---------------------- @@ -30857,6 +28489,9 @@ :heap-base #x290 :size-assert #x2f2 :flag-assert #x23029002f2 + (:states + pontoon-die + pontoon-hidden) ) (deftype pontoonfive (pontoon) @@ -30882,6 +28517,9 @@ :size-assert #xb1 :heap-base #x50 :flag-assert #x14005000b1 + (:states + allpontoons-idle + (allpontoons-be-clone handle)) ) (deftype fireboulder (process-drawable) @@ -30893,6 +28531,10 @@ :size-assert #xb9 :heap-base #x50 :flag-assert #x14005000b9 + (:states + fireboulder-idle + fireboulder-hover + (fireboulder-be-clone handle)) ) (deftype ceilingflag (process-drawable) @@ -30901,6 +28543,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + ceilingflag-idle) ) (deftype exit-chamber-dummy (process-drawable) @@ -30914,6 +28558,9 @@ (:methods (skip-reminder? (_type_) symbol 20) ) + (:states + exit-chamber-dummy-wait-to-appear + exit-chamber-dummy-idle ) ) (deftype ogreboss-village2 (process-drawable) @@ -30923,6 +28570,9 @@ :size-assert #xb8 :heap-base #x50 :flag-assert #x14005000b8 + (:states + ogreboss-village2-idle + ogreboss-village2-throw) ) (deftype villageb-ogreboss (ogreboss-village2) @@ -30959,41 +28609,20 @@ (define-extern ripple-for-villageb-water ripple-wave-set) ;; unknown type (define-extern *ogreboss-village2-sg* skeleton-group) -(define-extern ogreboss-village2-idle (state ogreboss-village2)) ;; unknown type -(define-extern ogreboss-village2-throw (state ogreboss-village2)) ;; unknown type (define-extern *fireboulder-sg* skeleton-group) (define-extern *exit-chamber-dummy-sg* skeleton-group) -(define-extern exit-chamber-dummy-wait-to-appear (state exit-chamber-dummy)) ;; unknown type -(define-extern exit-chamber-dummy-idle (state exit-chamber-dummy)) ;; unknown type (define-extern *ceilingflag-sg* skeleton-group) -(define-extern ceilingflag-idle (state ceilingflag)) ;; unknown type -(define-extern fireboulder-idle (state fireboulder)) ;; unknown type -(define-extern fireboulder-hover (state fireboulder)) ;; unknown type -(define-extern fireboulder-be-clone (state handle fireboulder)) ;; unknown type (define-extern *allpontoons-sg* skeleton-group) -(define-extern allpontoons-idle (state allpontoons)) ;; unknown type -(define-extern allpontoons-be-clone (state handle allpontoons)) ;; unknown type (define-extern *pontoonten-sg* skeleton-group) (define-extern *pontoonten-constants* rigid-body-platform-constants) ;; unknown type (define-extern *pontoonfive-sg* skeleton-group) (define-extern *pontoonfive-constants* rigid-body-platform-constants) ;; unknown type -(define-extern pontoon-die (state pontoon)) ;; unknown type -(define-extern pontoon-hidden (state pontoon)) ;; unknown type (define-extern *village2cam-sg* skeleton-group) (define-extern *med-res-rolling-sg* skeleton-group) (define-extern *med-res-rolling1-sg* skeleton-group) (define-extern *med-res-village2-sg* skeleton-group) -;; ---------------------- -;; File - village2-part2 -;; Source Path - levels/village2/village2-part2.gc -;; Containing DGOs - ['L1', 'VI2'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - gambler ;; Source Path - levels/village2/gambler.gc @@ -31171,6 +28800,11 @@ :size-assert #xf4 :heap-base #x90 :flag-assert #x14009000f4 + (:states + swamp-tetherrock-die + swamp-tetherrock-hide + swamp-tetherrock-idle + swamp-tetherrock-break) ) (deftype precursor-arm (process-drawable) @@ -31188,6 +28822,10 @@ :size-assert #x114 :heap-base #xb0 :flag-assert #x1400b00114 + (:states + precursor-arm-idle + precursor-arm-die + precursor-arm-sink) ) (declare-type swamp-blimp process-drawable) @@ -31213,6 +28851,11 @@ (:methods (dummy-20 (_type_) basic 20) ;; ret - entity-actor | symbol ) + (:states + swamp-rope-idle-rock + swamp-rope-idle-arm + swamp-rope-break) + ) (deftype swamp-blimp (process-drawable) @@ -31238,6 +28881,9 @@ :size-assert #x260 :heap-base #x1f0 :flag-assert #x1401f00260 + (:states + swamp-blimp-idle + swamp-blimp-bye-bye) ) ;; - Functions @@ -31256,22 +28902,10 @@ ;; - Unknowns (define-extern *swamp-blimp-sg* skeleton-group) -(define-extern swamp-blimp-idle (state swamp-blimp)) ;; unknown type -(define-extern swamp-blimp-bye-bye (state swamp-blimp)) ;; unknown type (define-extern *SWAMP_BLIMP-bank* swamp-blimp-bank) ;; unknown type (define-extern *swamp-rope-sg* skeleton-group) -(define-extern swamp-rope-idle-rock (state swamp-rope)) ;; unknown type -(define-extern swamp-rope-idle-arm (state swamp-rope)) ;; unknown type -(define-extern swamp-rope-break (state swamp-rope)) ;; unknown type (define-extern *precursor-arm-sg* skeleton-group) -(define-extern precursor-arm-idle (state precursor-arm)) ;; unknown type -(define-extern precursor-arm-die (state precursor-arm)) ;; unknown type -(define-extern precursor-arm-sink (state precursor-arm)) ;; unknown type (define-extern *swamp-tetherrock-sg* skeleton-group) -(define-extern swamp-tetherrock-die (state swamp-tetherrock)) ;; unknown type -(define-extern swamp-tetherrock-hide (state swamp-tetherrock)) ;; unknown type -(define-extern swamp-tetherrock-idle (state swamp-tetherrock)) ;; unknown type -(define-extern swamp-tetherrock-break (state swamp-tetherrock)) ;; unknown type (define-extern *swamp-tetherrock-explode-sg* skeleton-group) @@ -31347,6 +28981,8 @@ :size-assert #x190 :heap-base #x120 :flag-assert #x3501200190 + (:states + just-particles) ) ;; - Functions @@ -31358,7 +28994,6 @@ ;; - Unknowns (define-extern *assistant-village2-sg* skeleton-group) -(define-extern just-particles (state assistant-levitator)) (define-extern *jaws-sg* skeleton-group) @@ -31407,6 +29042,8 @@ (:methods (init! (_type_) symbol 20) ) + (:states + swamp-spike-idle) ) (deftype swampgate (swamp-spike) @@ -31415,6 +29052,9 @@ :size-assert #xc0 :heap-base #x50 :flag-assert #x15005000c0 + (:states + swamp-spike-gate-down + swamp-spike-gate-up) ) (deftype balance-plat (process-drawable) @@ -31430,6 +29070,8 @@ :size-assert #xc8 :heap-base #x60 :flag-assert #x14006000c8 + (:states + balance-plat-idle) ) (deftype swamp-rock (process-drawable) @@ -31438,6 +29080,9 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + swamp-rock-idle + swamp-rock-break) ) (deftype tar-plat (rigid-body-platform) @@ -31486,13 +29131,7 @@ (define-extern *tar-plat-sg* skeleton-group) (define-extern *tar-plat-constants* rigid-body-platform-constants) ;; unknown type (define-extern *swamp-rock-sg* skeleton-group) -(define-extern swamp-rock-idle (state swamp-rock)) ;; unknown type -(define-extern swamp-rock-break (state swamp-rock)) ;; unknown type (define-extern *balance-plat-sg* skeleton-group) -(define-extern balance-plat-idle (state balance-plat)) ;; unknown type -(define-extern swamp-spike-gate-down (state swampgate)) ;; unknown type -(define-extern swamp-spike-gate-up (state swampgate)) ;; unknown type -(define-extern swamp-spike-idle (state swamp-spike)) ;; unknown type (define-extern *swamp-spike-sg* skeleton-group) @@ -31534,6 +29173,9 @@ :size-assert #x10b :heap-base #xa0 :flag-assert #x1400a0010b + (:states + swamp-bat-idle + swamp-bat-launch-slaves) ) (deftype swamp-bat-slave (process-drawable) @@ -31557,6 +29199,13 @@ (:methods (dummy-20 (_type_) float 20) ) + (:states + swamp-bat-slave-idle + swamp-bat-slave-return + swamp-bat-slave-strafe + swamp-bat-slave-swoop + (swamp-bat-slave-die handle) + swamp-bat-slave-launch) ) ;; - Functions @@ -31575,15 +29224,7 @@ ;; - Unknowns -(define-extern swamp-bat-idle (state swamp-bat)) ;; unknown type -(define-extern swamp-bat-launch-slaves (state swamp-bat)) ;; unknown type (define-extern *swamp-bat-slave-sg* skeleton-group) -(define-extern swamp-bat-slave-idle (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-return (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-strafe (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-swoop (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-die (state handle swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-launch (state swamp-bat-slave)) ;; unknown type ;; ---------------------- @@ -31613,7 +29254,8 @@ :size-assert #x1f0 :heap-base #x180 :flag-assert #x4c018001f0 - ;; inherited inspect of nav-enemy + (:states + swamp-rat-spawn) ) ;; - Functions @@ -31626,7 +29268,6 @@ ;; - Unknowns -(define-extern swamp-rat-spawn (state swamp-rat)) ;; unknown type (define-extern *swamp-rat-sg* skeleton-group) (define-extern *swamp-rat-nav-enemy-info* nav-enemy-info) @@ -31658,6 +29299,12 @@ :size-assert #xd4 :heap-base #x70 :flag-assert #x14007000d4 + (:states + swamp-rat-nest-idle + swamp-rat-nest-active + swamp-rat-nest-gestate + swamp-rat-nest-die + swamp-rat-nest-victory) ) (deftype swamp-rat-nest-dummy (process-drawable) @@ -31677,6 +29324,11 @@ (dummy-20 (_type_) none 20) (dummy-21 (_type_) int 21) ) + (:states + swamp-rat-nest-dummy-idle + swamp-rat-nest-dummy-hit + swamp-rat-nest-dummy-die + swamp-rat-nest-dummy-shake) ) (deftype swamp-rat-nest-dummy-a (swamp-rat-nest-dummy) @@ -31719,15 +29371,6 @@ (define-extern *swamp-rat-nest-dummy-c-sg* skeleton-group) (define-extern *swamp-rat-nest-dummy-b-sg* skeleton-group) (define-extern *swamp-rat-nest-dummy-a-sg* skeleton-group) -(define-extern swamp-rat-nest-idle (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-active (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-gestate (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-die (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-victory (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-dummy-idle (state swamp-rat-nest-dummy)) ;; unknown type -(define-extern swamp-rat-nest-dummy-hit (state swamp-rat-nest-dummy)) ;; unknown type -(define-extern swamp-rat-nest-dummy-die (state swamp-rat-nest-dummy)) ;; unknown type -(define-extern swamp-rat-nest-dummy-shake (state swamp-rat-nest-dummy)) ;; unknown type ;; ---------------------- @@ -32195,18 +29838,19 @@ (dummy-20 (_type_) none 20) (dummy-21 (_type_) symbol 21) ) + (:states + dark-crystal-spawn-fuel-cell + dark-crystal-idle + dark-crystal-explode + dark-crystal-activate) ) ;; - Unknowns (define-extern *dark-crystal-sg* skeleton-group) -(define-extern dark-crystal-spawn-fuel-cell (state dark-crystal)) ;; unknown type -(define-extern dark-crystal-idle (state dark-crystal)) ;; unknown type (define-extern *dark-crystal-explode-sg* skeleton-group) (define-extern *dark-crystal-exploder-params* joint-exploder-static-params) ;; unknown type (define-extern *dark-crystal-flash-delays* (array int32)) ;; unknown type -(define-extern dark-crystal-explode (state dark-crystal)) ;; unknown type -(define-extern dark-crystal-activate (state dark-crystal)) ;; unknown type ;; ---------------------- @@ -32604,6 +30248,15 @@ (dummy-29 (_type_ int vector vector) float 29) (dummy-30 (_type_ process-drawable) uint 30) ) + (:states + gnawer-put-items-at-dest + gnawer-chewing-on-post + gnawer-give-fuel-cell + gnawer-dying-give-pickups + gnawer-wait-to-run + gnawer-die + gnawer-run + gnawer-retreat-into-post) ) ;; - Functions @@ -32614,15 +30267,7 @@ ;; - Unknowns (define-extern *gnawer-sg* skeleton-group) -(define-extern gnawer-put-items-at-dest (state gnawer)) ;; unknown type -(define-extern gnawer-chewing-on-post (state gnawer)) ;; unknown type (define-extern *gnawer-segment-infos* (inline-array gnawer-segment-info)) ;; unknown type -(define-extern gnawer-give-fuel-cell (state gnawer)) ;; unknown type -(define-extern gnawer-dying-give-pickups (state gnawer)) ;; unknown type -(define-extern gnawer-wait-to-run (state gnawer)) ;; unknown type -(define-extern gnawer-die (state gnawer)) ;; unknown type -(define-extern gnawer-run (state gnawer)) ;; unknown type -(define-extern gnawer-retreat-into-post (state gnawer)) ;; unknown type (define-extern *gnawer-segment-sg* skeleton-group) @@ -32675,6 +30320,15 @@ (dummy-26 (_type_) symbol 26) (dummy-27 (_type_) object 27) ) + (:states + driller-lurker-idle-drilling + driller-lurker-patrol + (driller-lurker-chase symbol) + driller-lurker-jammed-standing + driller-lurker-attack + driller-lurker-patrol-pause + driller-lurker-die + driller-lurker-debug-play-anims) ) ;; - Functions @@ -32685,14 +30339,6 @@ (define-extern *driller-lurker-sg* skeleton-group) (define-extern *driller-lurker-shadow-control* shadow-control) ;; unknown type -(define-extern driller-lurker-idle-drilling (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-patrol (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-chase (state symbol driller-lurker)) ;; unknown type -(define-extern driller-lurker-jammed-standing (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-attack (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-patrol-pause (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-die (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-debug-play-anims (state driller-lurker)) ;; unknown type ;; ---------------------- @@ -32712,42 +30358,6 @@ ) -;; ---------------------- -;; File - sunken-part2 -;; Source Path - levels/sunken/sunken-part2.gc -;; Containing DGOs - ['L1', 'SUN', 'SUNKEN'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunken-part3 -;; Source Path - levels/sunken/sunken-part3.gc -;; Containing DGOs - ['L1', 'SUN', 'SUNKEN'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunken-part4 -;; Source Path - levels/sunken/sunken-part4.gc -;; Containing DGOs - ['L1', 'SUN', 'SUNKEN'] -;; Version - 3 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunken-part5 -;; Source Path - levels/sunken/sunken-part5.gc -;; Containing DGOs - ['L1', 'SUN', 'SUNKEN'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - target-tube ;; Source Path - levels/sunken/target-tube.gc @@ -32814,35 +30424,13 @@ ;; - Unknowns -(define-extern target-tube (state target)) ;; unknown type -(define-extern target-tube-death (state symbol target)) ;; unknown type (define-extern *tube-jump-mods* surface) ;; unknown type -(define-extern target-tube-jump (state float float target)) ;; unknown type (define-extern *tube-mods* surface) ;; unknown type (define-extern *tube-surface* surface) ;; unknown type -(define-extern target-tube-hit (state handle attack-info target)) ;; unknown type (define-extern *tube-hit-mods* surface) ;; unknown type (define-extern *TUBE-bank* tube-bank) ;; unknown type -;; ---------------------- -;; File - eichar-tube+0-ag-L1-SUNKEN -;; Source Path - levels/l1_only/eichar-tube+0-ag-L1-SUNKEN.gd -;; Containing DGOs - ['L1', 'SUNKEN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-tube+0-ag-SUN -;; Source Path - levels/sunken/eichar-tube+0-ag-SUN.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - sunken-obs ;; Source Path - levels/sunken/sunken-obs.gc @@ -32884,13 +30472,14 @@ :size-assert #xb4 :heap-base #x50 :flag-assert #x14005000b4 + (:states + seaweed-idle) ) ;; - Unknowns (define-extern *seaweed-sg* skeleton-group) (define-extern *seaweed* seaweed) ;; unknown type -(define-extern seaweed-idle (state seaweed)) ;; unknown type (define-extern *side-to-side-plat-sg* skeleton-group) (define-extern *sunkencam-sg* skeleton-group) @@ -32948,6 +30537,11 @@ (:methods (TODO-RENAME-27 (_type_ symbol) none 27) ) + (:states + square-platform-lowered + square-platform-rising + square-platform-lowering + square-platform-raised) ) (deftype square-platform-button (basebutton) @@ -32973,17 +30567,14 @@ :size-assert #x100 :heap-base #x90 :flag-assert #x1400900100 + (:states + square-platform-master-idle + square-platform-master-activate) ) ;; - Unknowns -(define-extern square-platform-master-idle (state square-platform-master)) ;; unknown type -(define-extern square-platform-master-activate (state square-platform-master)) ;; unknown type (define-extern *square-platform-sg* skeleton-group) -(define-extern square-platform-lowered (state square-platform)) ;; unknown type -(define-extern square-platform-rising (state square-platform)) ;; unknown type -(define-extern square-platform-lowering (state square-platform)) ;; unknown type -(define-extern square-platform-raised (state square-platform)) ;; unknown type ;; ---------------------- @@ -33111,6 +30702,8 @@ :size-assert #x8c :heap-base #x20 :flag-assert #xe0020008c + (:states + wedge-plat-master-idle) ) (deftype wedge-plat (baseplat) @@ -33125,6 +30718,9 @@ (:methods (dummy-27 (_type_) symbol 27) ) + (:states + wedge-plat-idle + wedge-plat-tip) ) (deftype wedge-plat-outer (wedge-plat) @@ -33133,16 +30729,14 @@ :size-assert #xf0 :heap-base #x80 :flag-assert #x1c008000f0 + (:states + wedge-plat-outer-idle + wedge-plat-outer-tip) ) ;; - Unknowns (define-extern *wedge-plat-sg* skeleton-group) -(define-extern wedge-plat-outer-idle (state wedge-plat-outer)) ;; unknown type -(define-extern wedge-plat-outer-tip (state wedge-plat-outer)) ;; unknown type -(define-extern wedge-plat-idle (state wedge-plat)) ;; unknown type -(define-extern wedge-plat-tip (state wedge-plat)) ;; unknown type -(define-extern wedge-plat-master-idle (state wedge-plat-master)) ;; unknown type (define-extern *wedge-plat-outer-sg* skeleton-group) @@ -33166,16 +30760,17 @@ :size-assert #xf0 :heap-base #x80 :flag-assert #x14008000f0 + (:states + wall-plat-sync-idle + wall-plat-retracted + wall-plat-retracting + wall-plat-extended + wall-plat-extending) ) ;; - Unknowns (define-extern *wall-plat-sg* skeleton-group) -(define-extern wall-plat-sync-idle (state wall-plat)) ;; unknown type -(define-extern wall-plat-retracted (state wall-plat)) ;; unknown type -(define-extern wall-plat-retracting (state wall-plat)) ;; unknown type -(define-extern wall-plat-extended (state wall-plat)) ;; unknown type -(define-extern wall-plat-extending (state wall-plat)) ;; unknown type ;; ---------------------- @@ -33205,6 +30800,10 @@ :size-assert #x300 :heap-base #x290 :flag-assert #x2302900300 + (:states + qbert-plat-wait-for-master + qbert-plat-on-mimic + qbert-plat-on-die) ) (deftype qbert-plat-master (process-drawable) @@ -33227,6 +30826,10 @@ (:methods (plat-state-set? (_type_ uint) symbol 20) ) + (:states + qbert-plat-master-wait-for-door + qbert-plat-master-idle + (qbert-plat-master-do-door symbol)) ) ;; - Functions @@ -33236,15 +30839,9 @@ ;; - Unknowns -(define-extern qbert-plat-master-wait-for-door (state qbert-plat-master)) ;; unknown type -(define-extern qbert-plat-master-idle (state qbert-plat-master)) ;; unknown type -(define-extern qbert-plat-master-do-door (state symbol qbert-plat-master)) ;; unknown type -(define-extern qbert-plat-wait-for-master (state qbert-plat)) ;; unknown type (define-extern *qbert-plat-sg* skeleton-group) (define-extern *qbert-plat-constants* rigid-body-platform-constants) ;; unknown type (define-extern *qbert-plat-on-sg* skeleton-group) -(define-extern qbert-plat-on-mimic (state qbert-plat)) ;; unknown type -(define-extern qbert-plat-on-die (state qbert-plat)) ;; unknown type ;; ---------------------- @@ -33830,6 +31427,11 @@ (dummy-30 (_type_) vector 30) (dummy-31 (_type_) vector 31) ) + (:states + puffer-idle + puffer-patrol + puffer-attack + puffer-die) ) (deftype pick-patrol-point-away-from-buddy-work (structure) @@ -33854,10 +31456,6 @@ (define-extern *puffer-sg* skeleton-group) (define-extern *puffer-mean-sg* skeleton-group) -(define-extern puffer-idle (state puffer)) ;; unknown type -(define-extern puffer-patrol (state puffer)) ;; unknown type -(define-extern puffer-attack (state puffer)) ;; unknown type -(define-extern puffer-die (state puffer)) ;; unknown type ;; ---------------------- @@ -33898,6 +31496,8 @@ (TODO-RENAME-26 (_type_) float 26) (TODO-RENAME-27 (_type_) float 27) ) + (:states + sunkenfisha-idle) ) ;; - Functions @@ -33906,7 +31506,6 @@ ;; - Unknowns -(define-extern sunkenfisha-idle (state sunkenfisha)) ;; unknown type (define-extern *sunkenfisha-red-yellow-sg* skeleton-group) (define-extern *sunkenfisha-yellow-blue-sg* skeleton-group) (define-extern *sunkenfisha-yellow-eye-sg* skeleton-group) @@ -34164,7 +31763,8 @@ :size-assert #x20c :heap-base #x1a0 :flag-assert #x4c01a0020c - ;; inherited inspect of nav-enemy + (:states + fleeing-nav-enemy-debug) ) (deftype lightning-mole (fleeing-nav-enemy) @@ -34175,6 +31775,14 @@ :size-assert #x224 :heap-base #x1c0 :flag-assert #x4c01c00224 + (:states + lightning-mole-gone + lightning-mole-hiding + lightning-mole-yelp + lightning-mole-head-for-hole + lightning-mole-dive + lightning-mole-debug-run + lightning-mole-debug-blend) ) (deftype peeper (process-drawable) @@ -34183,6 +31791,11 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + peeper-up + peeper-down + peeper-hide + peeper-wait) ) ;; - Functions @@ -34203,20 +31816,8 @@ ;; - Unknowns (define-extern *lightning-mole-sg* skeleton-group) -(define-extern peeper-up (state peeper)) ;; unknown type -(define-extern peeper-down (state peeper)) ;; unknown type -(define-extern peeper-hide (state peeper)) ;; unknown type -(define-extern peeper-wait (state peeper)) ;; unknown type (define-extern *lightning-mole-nav-enemy-info* nav-enemy-info) -(define-extern lightning-mole-gone (state lightning-mole)) ;; unknown type -(define-extern lightning-mole-hiding (state lightning-mole)) ;; unknown type -(define-extern lightning-mole-yelp (state lightning-mole)) ;; unknown type (define-extern *lightning-mole-hole* vector) ;; unknown type -(define-extern lightning-mole-head-for-hole (state lightning-mole)) ;; unknown type -(define-extern lightning-mole-dive (state lightning-mole)) ;; unknown type -(define-extern lightning-mole-debug-run (state lightning-mole)) ;; unknown type -(define-extern fleeing-nav-enemy-debug (state fleeing-nav-enemy)) ;; unknown type -(define-extern lightning-mole-debug-blend (state lightning-mole)) ;; unknown type ;; ---------------------- @@ -34274,7 +31875,6 @@ ;; - Unknowns (define-extern *robber-sg* skeleton-group) -(define-extern fuel-cell-spline-slider (state handle float float fuel-cell)) ;; unknown type ;; ---------------------- @@ -34332,6 +31932,9 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + balloon-idle + balloon-popping) ) (deftype spike (process-drawable) @@ -34342,6 +31945,10 @@ :size-assert #xb4 :heap-base #x50 :flag-assert #x14005000b4 + (:states + spike-down + spike-idle + spike-up) ) (deftype crate-darkeco-cluster (process-drawable) @@ -34360,11 +31967,6 @@ (define-extern *crate-darkeco-cluster-sg* skeleton-group) (define-extern *spike-sg* skeleton-group) -(define-extern spike-down (state spike)) ;; unknown type -(define-extern spike-idle (state spike)) ;; unknown type -(define-extern spike-up (state spike)) ;; unknown type -(define-extern balloon-idle (state balloon)) ;; unknown type -(define-extern balloon-popping (state balloon)) ;; unknown type ;; ---------------------- @@ -34410,6 +32012,14 @@ :heap-base #xa0 :size-assert #x110 :flag-assert #x1400a00110 + (:states + ogreboss-super-boulder-idle + ogreboss-super-boulder-roll + ogreboss-super-boulder-land + ogreboss-super-boulder-throw + ogreboss-super-boulder-hit + ogreboss-super-boulder-die + ogreboss-super-boulder-killed-player) ) (deftype ogreboss-bounce-boulder (process-drawable) @@ -34424,6 +32034,8 @@ :heap-base #x70 :size-assert #xd9 :flag-assert #x14007000d9 + (:states + ogreboss-bounce-boulder-idle) ) (deftype ogreboss-missile (process-drawable) @@ -34440,6 +32052,10 @@ :heap-base #xc0 :size-assert #x128 :flag-assert #x1400c00128 + (:states + ogreboss-missile-idle + ogreboss-missile-impact + ogreboss-missile-seek) ) (deftype ogreboss-missile-init-data (structure) @@ -34488,6 +32104,17 @@ :heap-base #x150 :size-assert #x1bc :flag-assert #x14015001bc + (:states + ogreboss-dead + ogreboss-idle + ogreboss-die + ogreboss-stage1 + ogreboss-stage3-throw + ogreboss-stage3-shuffle + ogreboss-stage3-hit + ogreboss-stage2 + ogreboss-wait-for-player + ogreboss-intro) ) ;; - Functions @@ -34528,35 +32155,14 @@ (define-extern *ogreboss-sg* skeleton-group) (define-extern *ogreboss* ogreboss) ;; unknown type -(define-extern ogreboss-dead (state ogreboss)) ;; unknown type -(define-extern ogreboss-idle (state ogreboss)) ;; unknown type -(define-extern ogreboss-die (state ogreboss)) ;; unknown type -(define-extern ogreboss-stage1 (state ogreboss)) ;; unknown type -(define-extern ogreboss-stage3-throw (state ogreboss)) ;; unknown type -(define-extern ogreboss-stage3-shuffle (state ogreboss)) ;; unknown type -(define-extern ogreboss-stage3-hit (state ogreboss)) ;; unknown type -(define-extern ogreboss-stage2 (state ogreboss)) ;; unknown type (define-extern *ogreboss-cam-sg* skeleton-group) -(define-extern ogreboss-wait-for-player (state ogreboss)) ;; unknown type -(define-extern ogreboss-intro (state ogreboss)) ;; unknown type (define-extern *ogreboss-column-sg* skeleton-group) (define-extern *ogreboss-bounce-boulder-sg* skeleton-group) -(define-extern ogreboss-bounce-boulder-idle (state ogreboss-bounce-boulder)) ;; unknown type (define-extern *ogreboss-super-boulder-sg* skeleton-group) -(define-extern ogreboss-super-boulder-idle (state ogreboss-super-boulder)) ;; unknown type -(define-extern ogreboss-super-boulder-roll (state ogreboss-super-boulder)) ;; unknown type -(define-extern ogreboss-super-boulder-land (state ogreboss-super-boulder)) ;; unknown type -(define-extern ogreboss-super-boulder-throw (state ogreboss-super-boulder)) ;; unknown type -(define-extern ogreboss-super-boulder-hit (state ogreboss-super-boulder)) ;; unknown type -(define-extern ogreboss-super-boulder-die (state ogreboss-super-boulder)) ;; unknown type -(define-extern ogreboss-super-boulder-killed-player (state ogreboss-super-boulder)) ;; unknown type (define-extern *ogreboss-shoot-boulder-sg* skeleton-group) (define-extern *ogreboss-missile-shadow-control* shadow-control) ;; unknown type -(define-extern ogreboss-missile-idle (state ogreboss-missile)) ;; unknown type (define-extern *ogreboss-shoot-boulder-break-sg* skeleton-group) -(define-extern ogreboss-missile-impact (state ogreboss-missile)) ;; unknown type (define-extern *ogreboss-shadow-control* shadow-control) ;; unknown type -(define-extern ogreboss-missile-seek (state ogreboss-missile)) ;; unknown type ;; ---------------------- @@ -34674,6 +32280,11 @@ :size-assert #xd1 :heap-base #x70 :flag-assert #x14007000d1 + (:states + ogre-bridge-activated + ogre-bridge-idle + ogre-bridge-break + ogre-bridge-activate) ) (deftype ogre-bridgeend (process-drawable) @@ -34682,6 +32293,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + ogre-bridgeend-idle) ) (deftype ogre-lava (water-anim) @@ -34702,6 +32315,9 @@ :size-assert #xd1 :heap-base #x70 :flag-assert #x14007000d1 + (:states + shortcut-boulder-idle + shortcut-boulder-break) ) ;; - Functions @@ -34712,17 +32328,10 @@ (define-extern *shortcut-boulder-whole-sg* skeleton-group) (define-extern *shortcut-boulder-broken-sg* skeleton-group) -(define-extern shortcut-boulder-idle (state shortcut-boulder)) ;; unknown type -(define-extern shortcut-boulder-break (state shortcut-boulder)) ;; unknown type (define-extern ripple-for-ogre-lava ripple-wave-set) ;; unknown type (define-extern *ogre-bridgeend-sg* skeleton-group) -(define-extern ogre-bridgeend-idle (state ogre-bridgeend)) ;; unknown type (define-extern *ogre-bridge-sg* skeleton-group) (define-extern *ogre-bridge-joint-array* (array uint8)) ;; unknown type -(define-extern ogre-bridge-activated (state ogre-bridge)) ;; unknown type -(define-extern ogre-bridge-idle (state ogre-bridge)) ;; unknown type -(define-extern ogre-bridge-break (state ogre-bridge)) ;; unknown type -(define-extern ogre-bridge-activate (state ogre-bridge)) ;; unknown type (define-extern *ogre-isle-d-sg* skeleton-group) (define-extern *ogre-isle-b-sg* skeleton-group) (define-extern *ogre-isle-constants* rigid-body-platform-constants) ;; unknown type @@ -34752,6 +32361,11 @@ :size-assert #xb8 :heap-base #x50 :flag-assert #x14005000b8 + (:states + plunger-lurker-die + plunger-lurker-idle + plunger-lurker-flee + plunger-lurker-plunge) ) (deftype flying-lurker (process-drawable) @@ -34782,6 +32396,13 @@ (:methods (dummy-20 (_type_) none 20) ) + (:states + flying-lurker-die + flying-lurker-idle + flying-lurker-start + (flying-lurker-clone handle string) + flying-lurker-sleep + flying-lurker-fly) ) ;; - Functions @@ -34799,18 +32420,8 @@ ;; - Unknowns (define-extern *flying-lurker-sg* skeleton-group) -(define-extern flying-lurker-die (state flying-lurker)) -(define-extern flying-lurker-idle (state flying-lurker)) -(define-extern flying-lurker-start (state flying-lurker)) -(define-extern flying-lurker-clone (state handle string flying-lurker)) -(define-extern flying-lurker-sleep (state flying-lurker)) (define-extern *ogrecam-sg* skeleton-group) -(define-extern flying-lurker-fly (state flying-lurker)) (define-extern *plunger-lurker-sg* skeleton-group) -(define-extern plunger-lurker-die (state plunger-lurker)) -(define-extern plunger-lurker-idle (state plunger-lurker)) -(define-extern plunger-lurker-flee (state plunger-lurker)) -(define-extern plunger-lurker-plunge (state plunger-lurker)) ;; ---------------------- @@ -35102,15 +32713,16 @@ :size-assert #xd5 :heap-base #x70 :flag-assert #x14007000d5 + (:states + (spider-egg-idle symbol) + spider-egg-hatch + spider-egg-die) ) ;; - Unknowns (define-extern *spider-egg-unbroken-sg* skeleton-group) (define-extern *spider-egg-broken-sg* skeleton-group) -(define-extern spider-egg-idle (state symbol spider-egg)) ;; unknown type -(define-extern spider-egg-hatch (state spider-egg)) ;; unknown type -(define-extern spider-egg-die (state spider-egg)) ;; unknown type ;; ---------------------- @@ -35159,19 +32771,9 @@ ;; - Unknowns -(define-extern target-snowball (state target)) ;; unknown type (define-extern *SNOWBALL-bank* snowball-bank) -;; ---------------------- -;; File - target-ice -;; Source Path - levels/snow/target-ice.gc -;; Containing DGOs - ['L1', 'SNO'] -;; Version - 3 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - ice-cube ;; Source Path - levels/snow/ice-cube.gc @@ -35206,6 +32808,18 @@ (dummy-51 (_type_ vector vector) object :replace 51) (dummy-53 (_type_ vector vector) symbol :replace 53) ) + (:states + ice-cube-face-player + ice-cube-tired + ice-cube-retract-spikes + ice-cube-mean-charge-done + ice-cube-mean-turn-to-charge + ice-cube-become-mean + ice-cube-appear-land + ice-cube-appear + ice-cube-trying-to-appear + ice-cube-shatter + ice-cube-mean-charge) ) ;; - Functions @@ -35215,19 +32829,8 @@ ;; - Unknowns (define-extern *ice-cube-break-sg* skeleton-group) -(define-extern ice-cube-face-player (state ice-cube)) ;; unknown type -(define-extern ice-cube-tired (state ice-cube)) ;; unknown type -(define-extern ice-cube-retract-spikes (state ice-cube)) ;; unknown type -(define-extern ice-cube-mean-charge-done (state ice-cube)) ;; unknown type -(define-extern ice-cube-mean-turn-to-charge (state ice-cube)) ;; unknown type -(define-extern ice-cube-become-mean (state ice-cube)) ;; unknown type -(define-extern ice-cube-appear-land (state ice-cube)) ;; unknown type -(define-extern ice-cube-appear (state ice-cube)) ;; unknown type -(define-extern ice-cube-trying-to-appear (state ice-cube)) ;; unknown type (define-extern *ice-cube-sg* skeleton-group) (define-extern *ice-cube-nav-enemy-info* nav-enemy-info) -(define-extern ice-cube-shatter (state ice-cube)) ;; unknown type -(define-extern ice-cube-mean-charge (state ice-cube)) ;; unknown type ;; ---------------------- @@ -35245,6 +32848,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + snow-ball-shadow-idle) ) (deftype snow-ball-junction (structure) @@ -35291,6 +32896,8 @@ (play-landing-sound (_type_ float) sound-id 21) (dummy-22 (_type_ process-drawable) none 22) ) + (:states + snow-ball-roller-idle) ) (deftype snow-ball (process) @@ -35309,6 +32916,8 @@ (dummy-14 (_type_ (inline-array snow-ball-junction) float int) symbol 14) (dummy-15 (_type_ (inline-array snow-ball-junction) int) none 15) ;; TODO - same type as above ) + (:states + snow-ball-idle) ) ;; - Functions @@ -35320,12 +32929,9 @@ ;; - Unknowns -(define-extern snow-ball-idle (state snow-ball)) ;; unknown type (define-extern *snow-ball-sg* skeleton-group) -(define-extern snow-ball-roller-idle (state snow-ball-roller)) ;; unknown type (define-extern *snow-ball-shadow-sg* skeleton-group) (define-extern *snow-ball-shadow-control* shadow-control) ;; unknown type -(define-extern snow-ball-shadow-idle (state snow-ball-shadow)) ;; unknown type ;; ---------------------- @@ -35509,6 +33115,14 @@ :size-assert #x180 :heap-base #x110 :flag-assert #x2101100180 + (:states + elevator-idle-at-cave + elevator-travel-to-cave + elevator-idle-at-fort + elevator-travel-to-fort + flutflut-plat-hidden-idle + flutflut-plat-hide + flutflut-plat-appear) ) (deftype snow-button (process-drawable) @@ -35523,6 +33137,10 @@ :size-assert #xf0 :heap-base #x80 :flag-assert #x14008000f0 + (:states + snow-button-up-idle + snow-button-deactivate + snow-button-activate) ) (deftype flutflut-plat-small (flutflut-plat) @@ -35554,17 +33172,7 @@ (define-extern *flutflut-plat-large-sg* skeleton-group) (define-extern *flutflut-plat-med-sg* skeleton-group) (define-extern *flutflut-plat-small-sg* skeleton-group) -(define-extern elevator-idle-at-cave (state flutflut-plat)) ;; unknown type -(define-extern elevator-travel-to-cave (state flutflut-plat)) ;; unknown type -(define-extern elevator-idle-at-fort (state flutflut-plat)) ;; unknown type -(define-extern elevator-travel-to-fort (state flutflut-plat)) ;; unknown type -(define-extern flutflut-plat-hidden-idle (state flutflut-plat)) ;; unknown type -(define-extern flutflut-plat-hide (state flutflut-plat)) ;; unknown type -(define-extern flutflut-plat-appear (state flutflut-plat)) ;; unknown type (define-extern *snow-button-sg* skeleton-group) -(define-extern snow-button-up-idle (state snow-button)) ;; unknown type -(define-extern snow-button-deactivate (state snow-button)) ;; unknown type -(define-extern snow-button-activate (state snow-button)) ;; unknown type ;; ---------------------- @@ -35590,16 +33198,17 @@ (dummy-20 (_type_) none 20) (shove-player (_type_ process-drawable) none 21) ) + (:states + snow-bumper-spawn-fuel-cell + snow-bumper-inactive-idle + snow-bumper-active-far-idle + snow-bumper-deactivate + snow-bumper-active-close-idle) ) ;; - Unknowns (define-extern *snow-bumper-sg* skeleton-group) -(define-extern snow-bumper-spawn-fuel-cell (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-inactive-idle (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-active-far-idle (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-deactivate (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-active-close-idle (state snow-bumper)) ;; unknown type ;; ---------------------- @@ -35628,6 +33237,10 @@ (dummy-21 (_type_) object 21) (dummy-22 (_type_) symbol 22) ) + (:states + ram-fun-idle + ram-idle + ram-give-fuel-cell) ) @@ -35653,6 +33266,9 @@ :size-assert #x1d0 :heap-base #x160 :flag-assert #x1d016001d0 + (:states + ram-boss-proj-launch + ram-boss-proj-growing) ) (deftype ram-boss (nav-enemy) @@ -35676,6 +33292,19 @@ :size-assert #x1f4 :heap-base #x190 :flag-assert #x4c019001f4 + (:states + ram-boss-tracking + ram-boss-nav-resume + ram-boss-throw + ram-boss-nav-start + ram-boss-jump-down-hit-ground + (ram-boss-jump-down basic vector) + (ram-boss-already-down basic vector) + ram-boss-idle + ram-boss-lose-shield + ram-boss-up-defend-block + ram-boss-forward-defend-block + ram-boss-show-anims) ) ;; - Functions @@ -35686,23 +33315,9 @@ ;; - Unknowns -(define-extern ram-boss-tracking (state ram-boss)) ;; unknown type (define-extern *ram-boss-nav-enemy-info-no-shield* nav-enemy-info) ;; unknown type -(define-extern ram-boss-nav-resume (state ram-boss)) ;; unknown type -(define-extern ram-boss-throw (state ram-boss)) ;; unknown type -(define-extern ram-boss-nav-start (state ram-boss)) ;; unknown type -(define-extern ram-boss-jump-down-hit-ground (state ram-boss)) ;; unknown type -(define-extern ram-boss-jump-down (state basic vector ram-boss)) ;; unknown type -(define-extern ram-boss-already-down (state basic vector ram-boss)) ;; unknown type -(define-extern ram-boss-idle (state ram-boss)) ;; unknown type (define-extern *ram-boss-sg* skeleton-group) (define-extern *ram-boss-nav-enemy-info* nav-enemy-info) -(define-extern ram-boss-lose-shield (state ram-boss)) ;; unknown type -(define-extern ram-boss-up-defend-block (state ram-boss)) ;; unknown type -(define-extern ram-boss-forward-defend-block (state ram-boss)) ;; unknown type -(define-extern ram-boss-proj-launch (state ram-boss-proj)) ;; unknown type -(define-extern ram-boss-proj-growing (state ram-boss-proj)) ;; unknown type -(define-extern ram-boss-show-anims (state ram-boss)) ;; unknown type ;; ---------------------- @@ -35714,9 +33329,6 @@ ;; - Unknowns (define-extern *ram-sg* skeleton-group) -(define-extern ram-fun-idle (state ram)) ;; unknown type -(define-extern ram-idle (state ram)) ;; unknown type -(define-extern ram-give-fuel-cell (state ram)) ;; unknown type ;; ---------------------- @@ -35757,6 +33369,10 @@ :size-assert #x198 :heap-base #x130 :flag-assert #x4c01300198 + (:states + yeti-slave-appear-jump-up + yeti-slave-appear-land + yeti-slave-show-anims) ) (deftype yeti (process-drawable) @@ -35776,6 +33392,10 @@ (TODO-RENAME-20 (_type_ vector vector) symbol 20) (aggro? (_type_ vector) symbol 21) ) + (:states + yeti-resuming-start + yeti-first-time-start + yeti-idle) ) ;; - Functions @@ -35785,60 +33405,8 @@ ;; - Unknowns -(define-extern yeti-resuming-start (state yeti)) ;; unknown type -(define-extern yeti-first-time-start (state yeti)) ;; unknown type -(define-extern yeti-idle (state yeti)) ;; unknown type -(define-extern yeti-slave-appear-jump-up (state yeti-slave)) ;; unknown type (define-extern *yeti-sg* skeleton-group) (define-extern *yeti-nav-enemy-info* nav-enemy-info) -(define-extern yeti-slave-appear-land (state yeti-slave)) ;; unknown type -(define-extern yeti-slave-show-anims (state yeti-slave)) ;; unknown type - - -;; ---------------------- -;; File - eichar-pole+0-ag-L1 -;; Source Path - levels/l1_only/eichar-pole+0-ag-L1.gd -;; Containing DGOs - ['L1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-pole+0-ag-ROB -;; Source Path - levels/rolling/eichar-pole+0-ag-ROB.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-pole+0-ag-SNO -;; Source Path - levels/snow/eichar-pole+0-ag-SNO.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-pole+0-ag-SWA -;; Source Path - levels/swamp/eichar-pole+0-ag-SWA.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - eichar-ice+0-ag -;; Source Path - levels/snow/eichar-ice+0-ag.gd -;; Containing DGOs - ['L1', 'SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - ;; ---------------------- ;; File - lavatube-obs @@ -35854,6 +33422,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + lavabase-idle) ) (deftype lavafall (process-drawable) @@ -35862,6 +33432,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + lavafall-idle) ) (deftype lavashortcut (process-drawable) @@ -35870,6 +33442,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + lavashortcut-idle) ) (deftype darkecobarrel-leak (structure) @@ -35905,6 +33479,9 @@ :size-assert #x1b0 :heap-base #x140 :flag-assert #x14014001b0 + (:states + darkecobarrel-mover-move + darkecobarrel-mover-die) ) (deftype darkecobarrel (darkecobarrel-base) @@ -35916,6 +33493,8 @@ :size-assert #xc8 :heap-base #x60 :flag-assert #x14006000c8 + (:states + darkecobarrel-spawner) ) (deftype lavafallsewera (process-drawable) @@ -35924,6 +33503,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + lavafallsewera-idle) ) (deftype lavafallsewerb (process-drawable) @@ -35932,6 +33513,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + lavafallsewerb-idle) ) (deftype chainmine (process-drawable) @@ -35974,6 +33557,8 @@ :size-assert #xb0 :heap-base #x40 :flag-assert #x14004000b0 + (:states + lavayellowtarp-idle) ) ;; - Functions @@ -35990,24 +33575,15 @@ ;; - Unknowns (define-extern *lavayellowtarp-sg* skeleton-group) -(define-extern lavayellowtarp-idle (state lavayellowtarp)) ;; unknown type (define-extern ripple-for-lavatube-lava ripple-wave-set) ;; unknown type (define-extern *lavaballoon-sg* skeleton-group) (define-extern *chainmine-sg* skeleton-group) (define-extern *lavafallsewerb-sg* skeleton-group) -(define-extern lavafallsewerb-idle (state lavafallsewerb)) ;; unknown type (define-extern *lavafallsewera-sg* skeleton-group) -(define-extern lavafallsewera-idle (state lavafallsewera)) ;; unknown type -(define-extern darkecobarrel-spawner (state darkecobarrel)) ;; unknown type -(define-extern darkecobarrel-mover-move (state darkecobarrel-mover)) ;; unknown type -(define-extern darkecobarrel-mover-die (state darkecobarrel-mover)) ;; unknown type (define-extern *darkecobarrel-sg* skeleton-group) (define-extern *lavashortcut-sg* skeleton-group) -(define-extern lavashortcut-idle (state lavashortcut)) ;; unknown type (define-extern *lavafall-sg* skeleton-group) -(define-extern lavafall-idle (state lavafall)) ;; unknown type (define-extern *lavabase-sg* skeleton-group) -(define-extern lavabase-idle (state lavabase)) ;; unknown type ;; ---------------------- @@ -36175,1905 +33751,6 @@ (define-extern *assistant-lavatube-start-sg* skeleton-group) -;; ---------------------- -;; File - tpage-815 -;; Source Path - levels/firecanyon/tpage-815.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-822 -;; Source Path - levels/firecanyon/tpage-822.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-854 -;; Source Path - levels/firecanyon/tpage-854.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1123 -;; Source Path - levels/firecanyon/tpage-1123.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - assistant-firecanyon-ag -;; Source Path - levels/firecanyon/assistant-firecanyon-ag.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - balloon-ag -;; Source Path - levels/firecanyon/balloon-ag.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - crate-darkeco-cluster-ag-FIC -;; Source Path - levels/firecanyon/crate-darkeco-cluster-ag-FIC.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - crate-darkeco-cluster-ag-OGR -;; Source Path - levels/ogre/crate-darkeco-cluster-ag-OGR.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ef-plane-ag-FIC-LAV-OGR-ROL-SNO-SWA -;; Source Path - levels/common/ef-plane-ag-FIC-LAV-OGR-ROL-SNO-SWA.gd -;; Containing DGOs - ['FIC', 'LAV', 'OGR', 'ROL', 'SNO', 'SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ef-plane-ag-MIS -;; Source Path - levels/misty/ef-plane-ag-MIS.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - racer-ag-FIC-ROL -;; Source Path - levels/common/racer-ag-FIC-ROL.gd -;; Containing DGOs - ['FIC', 'ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - racer-ag-LAV -;; Source Path - levels/lavatube/racer-ag-LAV.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - racer-ag-MIS -;; Source Path - levels/misty/racer-ag-MIS.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - racer-ag-OGR -;; Source Path - levels/ogre/racer-ag-OGR.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - spike-ag -;; Source Path - levels/firecanyon/spike-ag.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - firecanyon-vis -;; Source Path - levels/firecanyon/firecanyon-vis.gd -;; Containing DGOs - ['FIC'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1338 -;; Source Path - levels/lavatube/tpage-1338.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1340 -;; Source Path - levels/lavatube/tpage-1340.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1339 -;; Source Path - levels/lavatube/tpage-1339.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1337 -;; Source Path - levels/lavatube/tpage-1337.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - assistant-lavatube-start-ag -;; Source Path - levels/lavatube/assistant-lavatube-start-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - chainmine-ag -;; Source Path - levels/lavatube/chainmine-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - darkecobarrel-ag -;; Source Path - levels/lavatube/darkecobarrel-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - energyarm-ag -;; Source Path - levels/lavatube/energyarm-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - energyball-ag -;; Source Path - levels/lavatube/energyball-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - energybase-ag -;; Source Path - levels/lavatube/energybase-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - energydoor-ag -;; Source Path - levels/lavatube/energydoor-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - energyhub-ag -;; Source Path - levels/lavatube/energyhub-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavaballoon-ag -;; Source Path - levels/lavatube/lavaballoon-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavabase-ag -;; Source Path - levels/lavatube/lavabase-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavafall-ag -;; Source Path - levels/lavatube/lavafall-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavafallsewera-ag -;; Source Path - levels/lavatube/lavafallsewera-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavafallsewerb-ag -;; Source Path - levels/lavatube/lavafallsewerb-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavashortcut-ag -;; Source Path - levels/lavatube/lavashortcut-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavayellowtarp-ag -;; Source Path - levels/lavatube/lavayellowtarp-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-lavatube-ag -;; Source Path - levels/lavatube/water-anim-lavatube-ag.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavatube-vis -;; Source Path - levels/lavatube/lavatube-vis.gd -;; Containing DGOs - ['LAV'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1313 -;; Source Path - levels/maincave/tpage-1313.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1315 -;; Source Path - levels/maincave/tpage-1315.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1314 -;; Source Path - levels/maincave/tpage-1314.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1312 -;; Source Path - levels/maincave/tpage-1312.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-767 -;; Source Path - levels/maincave/tpage-767.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - driller-lurker-ag -;; Source Path - levels/cave_common/driller-lurker-ag.gd -;; Containing DGOs - ['MAI', 'ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - gnawer-ag -;; Source Path - levels/maincave/gnawer-ag.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - launcherdoor-maincave-ag -;; Source Path - levels/maincave/launcherdoor-maincave-ag.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - maincavecam-ag -;; Source Path - levels/maincave/maincavecam-ag.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-ag-MAI -;; Source Path - levels/maincave/plat-ag-MAI.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-ag-ROB -;; Source Path - levels/robocave/plat-ag-ROB.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - spiderwebs-ag -;; Source Path - levels/cave_common/spiderwebs-ag.gd -;; Containing DGOs - ['MAI', 'ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-maincave-ag -;; Source Path - levels/maincave/water-anim-maincave-ag.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-maincave-water-ag -;; Source Path - levels/maincave/water-anim-maincave-water-ag.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - maincave-vis -;; Source Path - levels/maincave/maincave-vis.gd -;; Containing DGOs - ['MAI'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-516 -;; Source Path - levels/misty/tpage-516.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-521 -;; Source Path - levels/misty/tpage-521.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-518 -;; Source Path - levels/misty/tpage-518.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-520 -;; Source Path - levels/misty/tpage-520.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - balloonlurker-ag -;; Source Path - levels/misty/balloonlurker-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - boatpaddle-ag -;; Source Path - levels/misty/boatpaddle-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - bonelurker-ag -;; Source Path - levels/misty/bonelurker-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - breakaway-left-ag -;; Source Path - levels/misty/breakaway-left-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - breakaway-mid-ag -;; Source Path - levels/misty/breakaway-mid-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - breakaway-right-ag -;; Source Path - levels/misty/breakaway-right-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - darkecocan-ag -;; Source Path - levels/misty/darkecocan-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - keg-ag -;; Source Path - levels/misty/keg-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - keg-conveyor-ag -;; Source Path - levels/misty/keg-conveyor-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - keg-conveyor-paddle-ag -;; Source Path - levels/misty/keg-conveyor-paddle-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - mis-bone-bridge-ag -;; Source Path - levels/misty/mis-bone-bridge-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - mis-bone-platform-ag -;; Source Path - levels/misty/mis-bone-platform-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - mistycam-ag -;; Source Path - levels/misty/mistycam-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - muse-ag -;; Source Path - levels/misty/muse-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - quicksandlurker-ag -;; Source Path - levels/misty/quicksandlurker-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ropebridge-36-ag -;; Source Path - levels/misty/ropebridge-36-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - rounddoor-ag -;; Source Path - levels/misty/rounddoor-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sidekick-human-ag -;; Source Path - levels/misty/sidekick-human-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - silostep-ag -;; Source Path - levels/misty/silostep-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - teetertotter-ag -;; Source Path - levels/misty/teetertotter-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-misty-ag -;; Source Path - levels/misty/water-anim-misty-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - wheel-ag -;; Source Path - levels/misty/wheel-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - windturbine-ag -;; Source Path - levels/misty/windturbine-ag.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - misty-vis -;; Source Path - levels/misty/misty-vis.gd -;; Containing DGOs - ['MIS'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-875 -;; Source Path - levels/ogre/tpage-875.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-967 -;; Source Path - levels/ogre/tpage-967.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-884 -;; Source Path - levels/ogre/tpage-884.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1117 -;; Source Path - levels/ogre/tpage-1117.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flying-lurker-ag -;; Source Path - levels/ogre/flying-lurker-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-snow-ag -;; Source Path - levels/ogre/medres-snow-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogre-bridge-ag -;; Source Path - levels/ogre/ogre-bridge-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogre-bridgeend-ag -;; Source Path - levels/ogre/ogre-bridgeend-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogre-isle-ag -;; Source Path - levels/ogre/ogre-isle-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogre-step-ag -;; Source Path - levels/ogre/ogre-step-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogreboss-ag -;; Source Path - levels/ogre/ogreboss-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogrecam-ag -;; Source Path - levels/ogre/ogrecam-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plunger-lurker-ag -;; Source Path - levels/ogre/plunger-lurker-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - shortcut-boulder-ag -;; Source Path - levels/ogre/shortcut-boulder-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tntbarrel-ag -;; Source Path - levels/ogre/tntbarrel-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-ogre-ag -;; Source Path - levels/ogre/water-anim-ogre-ag.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogre-vis -;; Source Path - levels/ogre/ogre-vis.gd -;; Containing DGOs - ['OGR'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1318 -;; Source Path - levels/robocave/tpage-1318.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1319 -;; Source Path - levels/robocave/tpage-1319.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1317 -;; Source Path - levels/robocave/tpage-1317.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1316 -;; Source Path - levels/robocave/tpage-1316.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavecrusher-ag -;; Source Path - levels/robocave/cavecrusher-ag.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavespatulatwo-ag -;; Source Path - levels/robocave/cavespatulatwo-ag.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-robocave-ag -;; Source Path - levels/robocave/water-anim-robocave-ag.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - robocave-vis -;; Source Path - levels/robocave/robocave-vis.gd -;; Containing DGOs - ['ROB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-923 -;; Source Path - levels/rolling/tpage-923.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-926 -;; Source Path - levels/rolling/tpage-926.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-924 -;; Source Path - levels/rolling/tpage-924.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-925 -;; Source Path - levels/rolling/tpage-925.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1353 -;; Source Path - levels/rolling/tpage-1353.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - dark-plant-ag -;; Source Path - levels/rolling/dark-plant-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - happy-plant-ag -;; Source Path - levels/rolling/happy-plant-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lightning-mole-ag -;; Source Path - levels/rolling/lightning-mole-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - pusher-ag -;; Source Path - levels/rolling/pusher-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - race-ring-ag -;; Source Path - levels/rolling/race-ring-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - robber-ag -;; Source Path - levels/rolling/robber-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - rolling-start-ag -;; Source Path - levels/rolling/rolling-start-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - rollingcam-ag -;; Source Path - levels/rolling/rollingcam-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-rolling-ag -;; Source Path - levels/rolling/water-anim-rolling-ag.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - rolling-vis -;; Source Path - levels/rolling/rolling-vis.gd -;; Containing DGOs - ['ROL'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-710 -;; Source Path - levels/snow/tpage-710.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-842 -;; Source Path - levels/snow/tpage-842.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-711 -;; Source Path - levels/snow/tpage-711.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-712 -;; Source Path - levels/snow/tpage-712.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flut-saddle-ag-SNO -;; Source Path - levels/snow/flut-saddle-ag-SNO.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flut-saddle-ag-SWA -;; Source Path - levels/swamp/flut-saddle-ag-SWA.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flutflut-plat-large-ag -;; Source Path - levels/snow/flutflut-plat-large-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flutflut-plat-med-ag -;; Source Path - levels/snow/flutflut-plat-med-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flutflut-plat-small-ag -;; Source Path - levels/snow/flutflut-plat-small-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ice-cube-ag -;; Source Path - levels/snow/ice-cube-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ice-cube-break-ag -;; Source Path - levels/snow/ice-cube-break-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ram-ag -;; Source Path - levels/snow/ram-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ram-boss-ag -;; Source Path - levels/snow/ram-boss-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-ball-ag -;; Source Path - levels/snow/snow-ball-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-bridge-36-ag -;; Source Path - levels/snow/snow-bridge-36-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-bumper-ag -;; Source Path - levels/snow/snow-bumper-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-bunny-ag -;; Source Path - levels/snow/snow-bunny-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-button-ag -;; Source Path - levels/snow/snow-button-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-eggtop-ag -;; Source Path - levels/snow/snow-eggtop-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-fort-gate-ag -;; Source Path - levels/snow/snow-fort-gate-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-gears-ag -;; Source Path - levels/snow/snow-gears-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-log-ag -;; Source Path - levels/snow/snow-log-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-spatula-ag -;; Source Path - levels/snow/snow-spatula-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-switch-ag -;; Source Path - levels/snow/snow-switch-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snowcam-ag -;; Source Path - levels/snow/snowcam-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snowpusher-ag -;; Source Path - levels/snow/snowpusher-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - yeti-ag -;; Source Path - levels/snow/yeti-ag.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - snow-vis -;; Source Path - levels/snow/snow-vis.gd -;; Containing DGOs - ['SNO'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-163 -;; Source Path - levels/sunkenb/tpage-163.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-164 -;; Source Path - levels/sunkenb/tpage-164.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-166 -;; Source Path - levels/sunkenb/tpage-166.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-162 -;; Source Path - levels/sunkenb/tpage-162.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-764 -;; Source Path - levels/sunkenb/tpage-764.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - blue-eco-charger-ag -;; Source Path - levels/sunkenb/blue-eco-charger-ag.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - blue-eco-charger-orb-ag -;; Source Path - levels/sunkenb/blue-eco-charger-orb-ag.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - bully-ag -;; Source Path - levels/sunken_common/bully-ag.gd -;; Containing DGOs - ['SUB', 'SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - floating-launcher-ag -;; Source Path - levels/sunkenb/floating-launcher-ag.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - helix-button-ag -;; Source Path - levels/sunkenb/helix-button-ag.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - helix-slide-door-ag -;; Source Path - levels/sunkenb/helix-slide-door-ag.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - shover-ag-SUB -;; Source Path - levels/sunkenb/shover-ag-SUB.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - shover-ag-SUN -;; Source Path - levels/sunken/shover-ag-SUN.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - steam-cap-ag-SUB -;; Source Path - levels/sunkenb/steam-cap-ag-SUB.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - steam-cap-ag-SUN -;; Source Path - levels/sunken/steam-cap-ag-SUN.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunkencam-ag-SUB -;; Source Path - levels/sunkenb/sunkencam-ag-SUB.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunkencam-ag-SUN -;; Source Path - levels/sunken/sunkencam-ag-SUN.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunkenfisha-ag -;; Source Path - levels/sunken_common/sunkenfisha-ag.gd -;; Containing DGOs - ['SUB', 'SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - wall-plat-ag -;; Source Path - levels/sunken_common/wall-plat-ag.gd -;; Containing DGOs - ['SUB', 'SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-sunken-ag -;; Source Path - levels/sunken_common/water-anim-sunken-ag.gd -;; Containing DGOs - ['SUB', 'SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-sunken-dark-eco-ag -;; Source Path - levels/sunken_common/water-anim-sunken-dark-eco-ag.gd -;; Containing DGOs - ['SUB', 'SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunkenb-vis -;; Source Path - levels/sunkenb/sunkenb-vis.gd -;; Containing DGOs - ['SUB'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-661 -;; Source Path - levels/sunken/tpage-661.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-663 -;; Source Path - levels/sunken/tpage-663.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-714 -;; Source Path - levels/sunken/tpage-714.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-662 -;; Source Path - levels/sunken/tpage-662.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-766 -;; Source Path - levels/sunken/tpage-766.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - double-lurker-ag -;; Source Path - levels/sunken/double-lurker-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - double-lurker-top-ag -;; Source Path - levels/sunken/double-lurker-top-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - exit-chamber-ag -;; Source Path - levels/sunken/exit-chamber-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - generic-button-ag -;; Source Path - levels/sunken/generic-button-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orbit-plat-ag -;; Source Path - levels/sunken/orbit-plat-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - orbit-plat-bottom-ag -;; Source Path - levels/sunken/orbit-plat-bottom-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - plat-sunken-ag -;; Source Path - levels/sunken/plat-sunken-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - puffer-ag -;; Source Path - levels/sunken/puffer-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - qbert-plat-ag -;; Source Path - levels/sunken/qbert-plat-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - qbert-plat-on-ag -;; Source Path - levels/sunken/qbert-plat-on-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - seaweed-ag -;; Source Path - levels/sunken/seaweed-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - side-to-side-plat-ag -;; Source Path - levels/sunken/side-to-side-plat-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - square-platform-ag -;; Source Path - levels/sunken/square-platform-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sun-iris-door-ag -;; Source Path - levels/sunken/sun-iris-door-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - wedge-plat-ag -;; Source Path - levels/sunken/wedge-plat-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - wedge-plat-outer-ag -;; Source Path - levels/sunken/wedge-plat-outer-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - whirlpool-ag -;; Source Path - levels/sunken/whirlpool-ag.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunken-vis -;; Source Path - levels/sunken/sunken-vis.gd -;; Containing DGOs - ['SUN'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-358 -;; Source Path - levels/swamp/tpage-358.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-659 -;; Source Path - levels/swamp/tpage-659.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-629 -;; Source Path - levels/swamp/tpage-629.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-630 -;; Source Path - levels/swamp/tpage-630.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - balance-plat-ag -;; Source Path - levels/swamp/balance-plat-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - billy-ag -;; Source Path - levels/swamp/billy-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - billy-sidekick-ag -;; Source Path - levels/swamp/billy-sidekick-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - farthy-snack-ag -;; Source Path - levels/swamp/farthy-snack-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - kermit-ag -;; Source Path - levels/swamp/kermit-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-bat-ag -;; Source Path - levels/swamp/swamp-bat-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-rat-ag -;; Source Path - levels/swamp/swamp-rat-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-rat-nest-ag -;; Source Path - levels/swamp/swamp-rat-nest-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-rock-ag -;; Source Path - levels/swamp/swamp-rock-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-spike-ag -;; Source Path - levels/swamp/swamp-spike-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swampcam-ag-SWA -;; Source Path - levels/swamp/swampcam-ag-SWA.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swampcam-ag-VI2 -;; Source Path - levels/village2/swampcam-ag-VI2.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tar-plat-ag -;; Source Path - levels/swamp/tar-plat-ag.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-vis -;; Source Path - levels/swamp/swamp-vis.gd -;; Containing DGOs - ['SWA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - title-obs ;; Source Path - levels/title/title-obs.gc @@ -38137,1095 +33814,6 @@ (define-extern *logo-black-sg* skeleton-group) -;; ---------------------- -;; File - tpage-1609 -;; Source Path - levels/title/tpage-1609.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-416 -;; Source Path - levels/title/tpage-416.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-415 -;; Source Path - levels/title/tpage-415.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-397 -;; Source Path - levels/title/tpage-397.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1499 -;; Source Path - levels/title/tpage-1499.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - logo-ag -;; Source Path - levels/title/logo-ag.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - logo-black-ag -;; Source Path - levels/title/logo-black-ag.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - logo-cam-ag -;; Source Path - levels/title/logo-cam-ag.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - logo-volumes-ag -;; Source Path - levels/title/logo-volumes-ag.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ndi-ag -;; Source Path - levels/title/ndi-ag.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ndi-cam-ag -;; Source Path - levels/title/ndi-cam-ag.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ndi-volumes-ag -;; Source Path - levels/title/ndi-volumes-ag.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - title-vis -;; Source Path - levels/title/title-vis.gd -;; Containing DGOs - ['TIT'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1309 -;; Source Path - levels/training/tpage-1309.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1311 -;; Source Path - levels/training/tpage-1311.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1310 -;; Source Path - levels/training/tpage-1310.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1308 -;; Source Path - levels/training/tpage-1308.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-775 -;; Source Path - levels/training/tpage-775.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - pontoonfive-ag-TRA -;; Source Path - levels/training/pontoonfive-ag-TRA.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - pontoonfive-ag-VI2 -;; Source Path - levels/village2/pontoonfive-ag-VI2.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - scarecrow-a-ag -;; Source Path - levels/training/scarecrow-a-ag.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - scarecrow-b-ag -;; Source Path - levels/training/scarecrow-b-ag.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - trainingcam-ag -;; Source Path - levels/training/trainingcam-ag.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-training-ag -;; Source Path - levels/training/water-anim-training-ag.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - training-vis -;; Source Path - levels/training/training-vis.gd -;; Containing DGOs - ['TRA'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-398 -;; Source Path - levels/village1/tpage-398.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-400 -;; Source Path - levels/village1/tpage-400.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-399 -;; Source Path - levels/village1/tpage-399.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-401 -;; Source Path - levels/village1/tpage-401.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1470 -;; Source Path - levels/village1/tpage-1470.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - assistant-ag -;; Source Path - levels/village1/assistant-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - evilplant-ag -;; Source Path - levels/village1/evilplant-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - explorer-ag -;; Source Path - levels/village1/explorer-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - farmer-ag -;; Source Path - levels/village1/farmer-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - fishermans-boat-ag -;; Source Path - levels/village1/fishermans-boat-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - hutlamp-ag -;; Source Path - levels/village1/hutlamp-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - mayorgears-ag -;; Source Path - levels/village1/mayorgears-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-beach-ag -;; Source Path - levels/village1/medres-beach-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-beach1-ag -;; Source Path - levels/village1/medres-beach1-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-beach2-ag -;; Source Path - levels/village1/medres-beach2-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-beach3-ag -;; Source Path - levels/village1/medres-beach3-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-jungle-ag -;; Source Path - levels/village1/medres-jungle-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-jungle1-ag -;; Source Path - levels/village1/medres-jungle1-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-jungle2-ag -;; Source Path - levels/village1/medres-jungle2-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-misty-ag -;; Source Path - levels/village1/medres-misty-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-training-ag -;; Source Path - levels/village1/medres-training-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-village11-ag -;; Source Path - levels/village1/medres-village11-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-village12-ag -;; Source Path - levels/village1/medres-village12-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-village13-ag -;; Source Path - levels/village1/medres-village13-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - oracle-ag-VI1 -;; Source Path - levels/village1/oracle-ag-VI1.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - oracle-ag-VI2 -;; Source Path - levels/village2/oracle-ag-VI2.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - oracle-ag-VI3 -;; Source Path - levels/village3/oracle-ag-VI3.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - reflector-middle-ag -;; Source Path - levels/village1/reflector-middle-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - revcycle-ag -;; Source Path - levels/village1/revcycle-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - revcycleprop-ag -;; Source Path - levels/village1/revcycleprop-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ropebridge-32-ag -;; Source Path - levels/village1/ropebridge-32-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sage-ag -;; Source Path - levels/village1/sage-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sagesail-ag -;; Source Path - levels/village1/sagesail-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - villa-starfish-ag -;; Source Path - levels/village1/villa-starfish-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village-cam-ag-VI1 -;; Source Path - levels/village1/village-cam-ag-VI1.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village-cam-ag-VI2 -;; Source Path - levels/village2/village-cam-ag-VI2.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village-cam-ag-VI3 -;; Source Path - levels/village3/village-cam-ag-VI3.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village1cam-ag -;; Source Path - levels/village1/village1cam-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-village1-ag -;; Source Path - levels/village1/water-anim-village1-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - windmill-sail-ag -;; Source Path - levels/village1/windmill-sail-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - windspinner-ag -;; Source Path - levels/village1/windspinner-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - yakow-ag -;; Source Path - levels/village1/yakow-ag.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village1-vis -;; Source Path - levels/village1/village1-vis.gd -;; Containing DGOs - ['VI1'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-919 -;; Source Path - levels/village2/tpage-919.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-922 -;; Source Path - levels/village2/tpage-922.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-920 -;; Source Path - levels/village2/tpage-920.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-921 -;; Source Path - levels/village2/tpage-921.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1476 -;; Source Path - levels/village2/tpage-1476.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - allpontoons-ag -;; Source Path - levels/village2/allpontoons-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - assistant-village2-ag -;; Source Path - levels/village2/assistant-village2-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ceilingflag-ag -;; Source Path - levels/village2/ceilingflag-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - exit-chamber-dummy-ag -;; Source Path - levels/village2/exit-chamber-dummy-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - fireboulder-ag -;; Source Path - levels/village2/fireboulder-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - flutflut-bluehut-ag -;; Source Path - levels/village2/flutflut-bluehut-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - gambler-ag -;; Source Path - levels/village2/gambler-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - geologist-ag -;; Source Path - levels/village2/geologist-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - jaws-ag -;; Source Path - levels/village2/jaws-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-rolling-ag -;; Source Path - levels/village2/medres-rolling-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-rolling1-ag -;; Source Path - levels/village2/medres-rolling1-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-village2-ag -;; Source Path - levels/village2/medres-village2-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - ogreboss-village2-ag -;; Source Path - levels/village2/ogreboss-village2-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - pontoonten-ag -;; Source Path - levels/village2/pontoonten-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - precursor-arm-ag -;; Source Path - levels/village2/precursor-arm-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sage-bluehut-ag -;; Source Path - levels/village2/sage-bluehut-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sunken-elevator-ag -;; Source Path - levels/village2/sunken-elevator-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-blimp-ag -;; Source Path - levels/village2/swamp-blimp-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-rope-ag -;; Source Path - levels/village2/swamp-rope-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-tetherrock-ag -;; Source Path - levels/village2/swamp-tetherrock-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - swamp-tetherrock-explode-ag -;; Source Path - levels/village2/swamp-tetherrock-explode-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village2cam-ag -;; Source Path - levels/village2/village2cam-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - warrior-ag -;; Source Path - levels/village2/warrior-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-village2-ag -;; Source Path - levels/village2/water-anim-village2-ag.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village2-vis -;; Source Path - levels/village2/village2-vis.gd -;; Containing DGOs - ['VI2'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1208 -;; Source Path - levels/village3/tpage-1208.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1210 -;; Source Path - levels/village3/tpage-1210.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1209 -;; Source Path - levels/village3/tpage-1209.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - tpage-1194 -;; Source Path - levels/village3/tpage-1194.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - assistant-village3-ag -;; Source Path - levels/village3/assistant-village3-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - cavegem-ag -;; Source Path - levels/village3/cavegem-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - evilbro-village3-ag -;; Source Path - levels/village3/evilbro-village3-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - evilsis-village3-ag -;; Source Path - levels/village3/evilsis-village3-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - gondola-ag -;; Source Path - levels/village3/gondola-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - gondolacables-ag -;; Source Path - levels/village3/gondolacables-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - lavaspoutdrip-ag -;; Source Path - levels/village3/lavaspoutdrip-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-finalboss-ag -;; Source Path - levels/village3/medres-finalboss-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-ogre-ag -;; Source Path - levels/village3/medres-ogre-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-ogre2-ag -;; Source Path - levels/village3/medres-ogre2-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - medres-ogre3-ag -;; Source Path - levels/village3/medres-ogre3-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - minecartsteel-ag -;; Source Path - levels/village3/minecartsteel-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - minershort-ag -;; Source Path - levels/village3/minershort-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - minertall-ag -;; Source Path - levels/village3/minertall-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - pistons-ag -;; Source Path - levels/village3/pistons-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - sage-village3-ag -;; Source Path - levels/village3/sage-village3-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - vil3-bridge-36-ag -;; Source Path - levels/village3/vil3-bridge-36-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - water-anim-village3-ag -;; Source Path - levels/village3/water-anim-village3-ag.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - -;; ---------------------- -;; File - village3-vis -;; Source Path - levels/village3/village3-vis.gd -;; Containing DGOs - ['VI3'] -;; Version - 4 - -;; - Nothing Defined in This File! - - ;; ---------------------- ;; File - lava ;; Source Path - old/lava/lava.gc diff --git a/goal_src/engine/camera/cam-layout.gc b/goal_src/engine/camera/cam-layout.gc index 31dbdd5c22..5d7ba45002 100644 --- a/goal_src/engine/camera/cam-layout.gc +++ b/goal_src/engine/camera/cam-layout.gc @@ -10,6 +10,7 @@ ;; DECOMP BEGINS ;; this file is debug only +(declare-file (debug)) (when *debug-segment* (define *camera-layout-blink* #f) @@ -147,6 +148,9 @@ :method-count-assert 14 :size-assert #x90 :flag-assert #xe02000090 + (:states + cam-layout-active + ) ) diff --git a/goal_src/engine/camera/cam-master.gc b/goal_src/engine/camera/cam-master.gc index e3e8b611b6..d7d2a5713c 100644 --- a/goal_src/engine/camera/cam-master.gc +++ b/goal_src/engine/camera/cam-master.gc @@ -6,10 +6,8 @@ ;; dgos: GAME, ENGINE ;; TODO - for basebutton -(define-extern cam-fixed (state camera-slave)) ;; Needed here -(define-extern cam-decel (state camera-slave)) (define-extern camera-master-debug (function camera-master none)) ;; DECOMP BEGINS diff --git a/goal_src/engine/camera/cam-states.gc b/goal_src/engine/camera/cam-states.gc index 5418701932..2f6865364f 100644 --- a/goal_src/engine/camera/cam-states.gc +++ b/goal_src/engine/camera/cam-states.gc @@ -5,7 +5,6 @@ ;; name in dgo: cam-states ;; dgos: GAME, ENGINE -(define-extern cam-string (state camera-slave)) ;; DECOMP BEGINS diff --git a/goal_src/engine/camera/camera-h.gc b/goal_src/engine/camera/camera-h.gc index 7c2bcb27f5..f5f14b4f30 100644 --- a/goal_src/engine/camera/camera-h.gc +++ b/goal_src/engine/camera/camera-h.gc @@ -14,18 +14,11 @@ (declare-type cam-rotation-tracker structure) (declare-type camera-combiner process) ;; TODO - for cam-master -(define-extern cam-eye (state camera-slave)) ;; TODO - for camera -(define-extern cam-circular (state camera-slave)) -(define-extern cam-standoff-read-entity (state camera-slave)) -(define-extern cam-spline (state camera-slave)) -(define-extern *camera-base-mode* (state camera-slave)) -(define-extern cam-fixed-read-entity (state camera-slave)) (define-extern camera-line-rel-len (function vector vector float vector4w none)) (define-extern cam-calc-follow! (function cam-rotation-tracker vector symbol vector)) (define-extern slave-set-rotation! (function cam-rotation-tracker vector float float symbol none)) ;; TODO - for cam-combiner -(define-extern cam-combiner-active (state camera-combiner)) (define-extern paused? (function symbol)) ;; TODO - for cam-start (define-extern cam-master-init (function none :behavior camera-master)) @@ -88,20 +81,18 @@ ) -(define - *CAMERA-bank* - (new 'static 'camera-bank - :collide-move-rad 1638.4 - :min-detectable-velocity 40.96 - :attack-timeout (seconds 0.25) - :default-string-max-y (meters 3.0) - :default-string-min-y (meters 1.0) - :default-string-max-z (meters 12.5) - :default-string-min-z (meters 5.0) - :default-string-push-z (meters 10.0) - :default-tilt-adjust (degrees -6.5000005) - ) - ) +(define *CAMERA-bank* (new 'static 'camera-bank + :collide-move-rad 1638.4 + :min-detectable-velocity 40.96 + :attack-timeout (seconds 0.25) + :default-string-max-y (meters 3.0) + :default-string-min-y (meters 1.0) + :default-string-max-z (meters 12.5) + :default-string-min-z (meters 5.0) + :default-string-push-z (meters 10.0) + :default-tilt-adjust (degrees -6.5000005) + ) + ) (deftype cam-index (structure) ((flags cam-index-options :offset-assert 0) @@ -200,10 +191,7 @@ ) -(defmethod - init-cam-float-seeker - cam-float-seeker - ((obj cam-float-seeker) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) +(defmethod init-cam-float-seeker cam-float-seeker ((obj cam-float-seeker) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) (set! (-> obj target) arg0) (set! (-> obj value) arg0) (set! (-> obj vel) 0.0) @@ -214,10 +202,7 @@ (none) ) -(defmethod - copy-cam-float-seeker - cam-float-seeker - ((obj cam-float-seeker) (arg0 cam-float-seeker)) +(defmethod copy-cam-float-seeker cam-float-seeker ((obj cam-float-seeker) (arg0 cam-float-seeker)) (set! (-> obj target) (-> arg0 target)) (set! (-> obj value) (-> arg0 value)) (set! (-> obj vel) (-> arg0 vel)) @@ -234,21 +219,20 @@ (let* ((pos-error (- (+ (-> obj target) offset) (-> obj value))) (partial-velocity-limit (* (-> obj max-partial) (fabs pos-error))) ) - (let - ((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio))))) - (+! (-> obj vel) daccel) + (let ((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio))))) + (+! (-> obj vel) daccel) + ) + (let ((abs-vel (fabs (-> obj vel))) + (abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel))) + ) + (if (< abs-vel-limit abs-vel) + (set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel))) + ) + ) ) - (let ((abs-vel (fabs (-> obj vel))) - (abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel))) - ) - (if (< abs-vel-limit abs-vel) - (set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel))) - ) - ) - ) (let ((dpos (* (-> obj vel) (-> *display* time-adjust-ratio)))) - (+! (-> obj value) dpos) - ) + (+! (-> obj value) dpos) + ) 0 (none) ) @@ -256,9 +240,9 @@ (defmethod jump-to-target! cam-float-seeker ((obj cam-float-seeker) (arg0 float)) (set! (-> obj value) (+ (-> obj target) arg0)) (let ((f0-2 0.0)) - (set! (-> obj vel) f0-2) - f0-2 - ) + (set! (-> obj vel) f0-2) + f0-2 + ) ) (deftype cam-vector-seeker (structure) @@ -279,20 +263,17 @@ ) -(defmethod - init! - cam-vector-seeker - ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) +(defmethod init! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float)) (cond - (arg0 - (set! (-> obj target quad) (-> arg0 quad)) - (set! (-> obj value quad) (-> arg0 quad)) + (arg0 + (set! (-> obj target quad) (-> arg0 quad)) + (set! (-> obj value quad) (-> arg0 quad)) + ) + (else + (vector-reset! (-> obj target)) + (vector-reset! (-> obj value)) + ) ) - (else - (vector-reset! (-> obj target)) - (vector-reset! (-> obj value)) - ) - ) (vector-reset! (-> obj vel)) (set! (-> obj accel) arg1) (set! (-> obj max-vel) arg2) @@ -303,34 +284,30 @@ (defmethod update! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector)) (let ((gp-0 (new 'stack-no-clear 'vector))) - 0.0 - (cond - (arg0 - (vector+! gp-0 (-> obj target) arg0) - (vector-! gp-0 gp-0 (-> obj value)) - ) - (else - (vector-! gp-0 (-> obj target) (-> obj value)) - ) - ) - (let ((f30-1 (* (-> obj max-partial) (vector-length gp-0)))) - (vector-float*! - gp-0 - gp-0 - (* (-> obj accel) (-> *display* time-adjust-ratio)) - ) - (vector+! (-> obj vel) (-> obj vel) gp-0) - (let ((f0-4 (vector-length (-> obj vel))) - (f1-2 (fmin f30-1 (-> obj max-vel))) - ) - (if (< f1-2 f0-4) - (vector-float*! (-> obj vel) (-> obj vel) (/ f1-2 f0-4)) + 0.0 + (cond + (arg0 + (vector+! gp-0 (-> obj target) arg0) + (vector-! gp-0 gp-0 (-> obj value)) + ) + (else + (vector-! gp-0 (-> obj target) (-> obj value)) + ) ) - ) + (let ((f30-1 (* (-> obj max-partial) (vector-length gp-0)))) + (vector-float*! gp-0 gp-0 (* (-> obj accel) (-> *display* time-adjust-ratio))) + (vector+! (-> obj vel) (-> obj vel) gp-0) + (let ((f0-4 (vector-length (-> obj vel))) + (f1-2 (fmin f30-1 (-> obj max-vel))) + ) + (if (< f1-2 f0-4) + (vector-float*! (-> obj vel) (-> obj vel) (/ f1-2 f0-4)) + ) + ) + ) + (vector-float*! gp-0 (-> obj vel) (-> *display* time-adjust-ratio)) + (vector+! (-> obj value) (-> obj value) gp-0) ) - (vector-float*! gp-0 (-> obj vel) (-> *display* time-adjust-ratio)) - (vector+! (-> obj value) (-> obj value) gp-0) - ) 0 (none) ) @@ -371,66 +348,97 @@ :method-count-assert 14 :size-assert #x1e0 :flag-assert #xe017001e0 + (:states + cam-combiner-active + ) ) (deftype camera-slave (process) - ((trans vector :inline :offset-assert 112) - (fov float :offset-assert 128) - (fov0 float :offset-assert 132) - (fov1 float :offset-assert 136) - (fov-index cam-index :inline :offset-assert 144) - (tracking cam-rotation-tracker :inline :offset-assert 192) - (view-off-param float :offset-assert 400) - (unknown-symbol symbol :offset 412) - (view-off vector :inline :offset-assert 416) - (min-z-override float :offset-assert 432) - (view-flat vector :inline :offset-assert 448) - (string-vel-dir uint32 :offset-assert 464) - (string-trans vector :inline :offset-assert 480) - (position-spline tracking-spline :inline :offset-assert 496) - (pivot-pt vector :inline :offset-assert 2144) - (pivot-rad float :offset-assert 2160) - (circular-follow vector :inline :offset-assert 2176) - (max-angle-offset float :offset-assert 2192) - (max-angle-curr float :offset-assert 2196) - (options uint32 :offset-assert 2200) - (cam-entity entity :offset-assert 2204) - (velocity vector :inline :offset-assert 2208) - (desired-pos vector :inline :offset-assert 2224) - (time-dist-too-far uint32 :offset-assert 2240) - (los-state slave-los-state :offset-assert 2244) - (good-point vector :inline :offset-assert 2256) - (los-tgt-spline-pt int32 :offset-assert 2272) - (los-tgt-spline-pt-incarnation int32 :offset-assert 2276) - (los-last-pos vector :inline :offset-assert 2288) - (intro-curve curve :inline :offset-assert 2304) - (intro-offset vector :inline :offset-assert 2336) - (intro-t float :offset-assert 2352) - (intro-t-step float :offset-assert 2356) - (outro-exit-value float :offset-assert 2360) - (spline-exists basic :offset-assert 2364) - (spline-curve curve :inline :offset-assert 2368) - (spline-offset vector :inline :offset-assert 2400) - (index cam-index :inline :offset-assert 2416) - (saved-pt vector :inline :offset-assert 2464) - (spline-tt float :offset-assert 2480) - (spline-follow-dist float :offset-assert 2484) - (change-event-from (pointer process-drawable) :offset-assert 2488) ;; mistycannon - (enter-has-run symbol :offset-assert 2492) - (blend-from-type uint64 :offset-assert 2496) - (blend-to-type uint64 :offset-assert 2504) - (have-phony-joystick basic :offset-assert 2512) - (phony-joystick-x float :offset-assert 2516) - (phony-joystick-y float :offset-assert 2520) - (string-min-val vector :inline :offset-assert 2528) - (string-max-val vector :inline :offset-assert 2544) - (string-val-locked basic :offset-assert 2560) + ((trans vector :inline :offset-assert 112) + (fov float :offset-assert 128) + (fov0 float :offset-assert 132) + (fov1 float :offset-assert 136) + (fov-index cam-index :inline :offset-assert 144) + (tracking cam-rotation-tracker :inline :offset-assert 192) + (view-off-param float :offset-assert 400) + (unknown-symbol symbol :offset 412) + (view-off vector :inline :offset-assert 416) + (min-z-override float :offset-assert 432) + (view-flat vector :inline :offset-assert 448) + (string-vel-dir uint32 :offset-assert 464) + (string-trans vector :inline :offset-assert 480) + (position-spline tracking-spline :inline :offset-assert 496) + (pivot-pt vector :inline :offset-assert 2144) + (pivot-rad float :offset-assert 2160) + (circular-follow vector :inline :offset-assert 2176) + (max-angle-offset float :offset-assert 2192) + (max-angle-curr float :offset-assert 2196) + (options uint32 :offset-assert 2200) + (cam-entity entity :offset-assert 2204) + (velocity vector :inline :offset-assert 2208) + (desired-pos vector :inline :offset-assert 2224) + (time-dist-too-far uint32 :offset-assert 2240) + (los-state slave-los-state :offset-assert 2244) + (good-point vector :inline :offset-assert 2256) + (los-tgt-spline-pt int32 :offset-assert 2272) + (los-tgt-spline-pt-incarnation int32 :offset-assert 2276) + (los-last-pos vector :inline :offset-assert 2288) + (intro-curve curve :inline :offset-assert 2304) + (intro-offset vector :inline :offset-assert 2336) + (intro-t float :offset-assert 2352) + (intro-t-step float :offset-assert 2356) + (outro-exit-value float :offset-assert 2360) + (spline-exists basic :offset-assert 2364) + (spline-curve curve :inline :offset-assert 2368) + (spline-offset vector :inline :offset-assert 2400) + (index cam-index :inline :offset-assert 2416) + (saved-pt vector :inline :offset-assert 2464) + (spline-tt float :offset-assert 2480) + (spline-follow-dist float :offset-assert 2484) + (change-event-from (pointer process-drawable) :offset-assert 2488) + (enter-has-run symbol :offset-assert 2492) + (blend-from-type uint64 :offset-assert 2496) + (blend-to-type uint64 :offset-assert 2504) + (have-phony-joystick basic :offset-assert 2512) + (phony-joystick-x float :offset-assert 2516) + (phony-joystick-y float :offset-assert 2520) + (string-min-val vector :inline :offset-assert 2528) + (string-max-val vector :inline :offset-assert 2544) + (string-val-locked basic :offset-assert 2560) ) :heap-base #x9a0 :method-count-assert 14 :size-assert #xa04 :flag-assert #xe09a00a04 + (:states + *camera-base-mode* + cam-bike + cam-billy + cam-circular + cam-decel + cam-endlessfall + cam-eye + cam-fixed + cam-fixed-read-entity + cam-free-floating + cam-launcher-longfall + cam-launcher-shortfall + cam-lookat + cam-mistycannon + cam-orbit + cam-periscope + cam-point-watch + cam-pov + cam-pov-track + cam-pov180 + cam-robotboss + cam-spline + cam-standoff + cam-standoff-read-entity + cam-stick + cam-string + ) ) @@ -493,6 +501,10 @@ :method-count-assert 14 :size-assert #x964 :flag-assert #xe09000964 + (:states + cam-master-active + list-keeper-active + ) ) diff --git a/goal_src/engine/camera/camera.gc b/goal_src/engine/camera/camera.gc index 05d525d496..70bc236d2a 100644 --- a/goal_src/engine/camera/camera.gc +++ b/goal_src/engine/camera/camera.gc @@ -5,8 +5,6 @@ ;; name in dgo: camera ;; dgos: GAME, ENGINE -(define-extern cam-free-floating (state camera-slave)) -(define-extern cam-master-active (state camera-master)) ;; DECOMP BEGINS diff --git a/goal_src/engine/debug/default-menu.gc b/goal_src/engine/debug/default-menu.gc index 092887929e..6bf7637b17 100644 --- a/goal_src/engine/debug/default-menu.gc +++ b/goal_src/engine/debug/default-menu.gc @@ -9,7 +9,6 @@ (define-extern *edit-instance* string) ;; Necessary forward declarations -(define-extern cam-robotboss (state camera-slave)) ;; DECOMP BEGINS diff --git a/goal_src/engine/debug/part-tester.gc b/goal_src/engine/debug/part-tester.gc index c915308057..09181fff74 100644 --- a/goal_src/engine/debug/part-tester.gc +++ b/goal_src/engine/debug/part-tester.gc @@ -9,38 +9,44 @@ (define-extern *part-tester* part-tester) +;; DECOMP BEGINS + +;; this file is debug only +(declare-file (debug)) (when *debug-segment* -;; failed to figure out what this is: -(set! - (-> *part-group-id-table* 105) - (new 'static 'sparticle-launch-group - :length 2 - :duration #xbb8 - :linger-duration #x5dc - :name "group-part-tester" - :launcher - (new 'static 'inline-array sparticle-group-item 2 (sp-item 56) (sp-item 57)) - :bounds (new 'static 'sphere :w 4096.0) - ) - ) +(set! (-> *part-group-id-table* 105) + (new 'static 'sparticle-launch-group + :length 2 + :duration #xbb8 + :linger-duration #x5dc + :name "group-part-tester" + :launcher + (new 'static 'inline-array sparticle-group-item 2 (sp-item 56) (sp-item 57)) + :bounds (new 'static 'sphere :w 4096.0) + ) + ) (deftype part-tester (process) ((root trsqv :offset-assert 112) (part sparticle-launch-control :offset-assert 116) - (old-group sparticle-launch-group :offset-assert 120) + (old-group sparticle-launch-group :offset-assert 120) ) :heap-base #x100 :method-count-assert 14 :size-assert #x7c :flag-assert #xe0100007c + (:states + part-tester-idle + ) ) + (define *part-tester-name* (the-as string #f)) (defmethod deactivate part-tester ((obj part-tester)) (if (nonzero? (-> obj part)) - (kill-and-free-particles (-> obj part)) - ) + (kill-and-free-particles (-> obj part)) + ) ((method-of-type process deactivate) obj) (none) ) @@ -52,18 +58,10 @@ (let ((gp-0 (entity-by-name *part-tester-name*))) (when gp-0 (let ((s5-0 (-> gp-0 extra process))) - (if - (and - s5-0 - (type-type? (-> s5-0 type) process-drawable) - (nonzero? (-> (the-as process-drawable s5-0) root)) + (if (and s5-0 (type-type? (-> s5-0 type) process-drawable) (nonzero? (-> (the-as process-drawable s5-0) root))) + (set! (-> self root trans quad) (-> (the-as process-drawable s5-0) root trans quad)) + (set! (-> self root trans quad) (-> gp-0 extra trans quad)) ) - (set! - (-> self root trans quad) - (-> (the-as process-drawable s5-0) root trans quad) - ) - (set! (-> self root trans quad) (-> gp-0 extra trans quad)) - ) ) ) ) @@ -73,18 +71,8 @@ (-> self root trans) (the-as rgba (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)) ) - - ;; change this line to change the particle group to test - ;; notes: - ;; - 3d particles won't work - ;; - particles that use aux list won't work - ;; - some particles may have callbacks that won't work yet - ;; - you need to load the level with the particle defs first - ;; - there is an issue with blending. check the "always" box as a temporary workaround - ;; - the visibilty check also doesn't work. comment it out in defmethod spawn. (let ((gp-1 (-> *part-group-id-table* 105))) (let ((s5-1 (-> self root trans))) - (when (!= gp-1 (-> self old-group)) (when (nonzero? (-> self part)) (kill-and-free-particles (-> self part)) @@ -92,23 +80,18 @@ ) (set! (-> self part) (create-launch-control gp-1 self)) ) - - - (when (nonzero? (-> self part)) - (spawn (-> self part) (cond - ((logtest? - (-> gp-1 flags) - (sp-group-flag screen-space) + (if (nonzero? (-> self part)) + (spawn (-> self part) (cond + ((logtest? (-> gp-1 flags) (sp-group-flag screen-space)) + *zero-vector* ) - *zero-vector* - ) - (else - (empty) - s5-1 + (else + (empty) + s5-1 + ) ) - ) - ) - ) + ) + ) ) (set! (-> self old-group) gp-1) ) @@ -126,36 +109,27 @@ (none) ) -(define-perm *debug-part-dead-pool* dead-pool - (new 'debug 'dead-pool 1 #x10000 '*debug-part-dead-pool*) - ) +(define-perm *debug-part-dead-pool* dead-pool (new 'debug 'dead-pool 1 #x10000 '*debug-part-dead-pool*)) (defun start-part () (kill-by-type part-tester *active-pool*) (let ((gp-0 (get-process *debug-part-dead-pool* part-tester #x4000))) - (when gp-0 - (let ((t9-2 (method-of-type part-tester activate))) - (t9-2 - (the-as part-tester gp-0) - *default-pool* - 'part-tester - (the-as pointer #x70004000) + (when gp-0 + (let ((t9-2 (method-of-type part-tester activate))) + (t9-2 (the-as part-tester gp-0) *default-pool* 'part-tester (the-as pointer #x70004000)) + ) + (run-now-in-process gp-0 part-tester-init-by-other (if *anim-tester* + (-> *anim-tester* 0 root trans) + (target-pos 0) + ) + ) + (-> gp-0 ppointer) ) - ) - (run-now-in-process gp-0 part-tester-init-by-other (if *anim-tester* - (-> - *anim-tester* - 0 - root - trans - ) - (target-pos 0) - ) - ) - (-> gp-0 ppointer) ) - ) (none) ) ) + + + diff --git a/goal_src/engine/debug/viewer.gc b/goal_src/engine/debug/viewer.gc index a95f947de7..2d7083a79f 100644 --- a/goal_src/engine/debug/viewer.gc +++ b/goal_src/engine/debug/viewer.gc @@ -7,14 +7,12 @@ ;; DECOMP BEGINS -(define - *viewer-sg* - (new 'static 'skeleton-group - :bounds (new 'static 'vector :w 16384.0) - :lod-dist - (new 'static 'array float 4 4095996000.0 0.0 0.0 0.0) - ) - ) +(define *viewer-sg* (new 'static 'skeleton-group + :bounds (new 'static 'vector :w 16384.0) + :lod-dist + (new 'static 'array float 4 4095996000.0 0.0 0.0 0.0) + ) + ) (deftype viewer (process-drawable) ((janim art-joint-anim :offset-assert 176) @@ -23,6 +21,9 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + viewer-process + ) ) ;; NOTE - manually added @@ -31,34 +32,27 @@ (defstate viewer-process (viewer) :code (behavior () - (while #t - (let ((a0-0 (-> self skel root-channel 0))) - (set! (-> a0-0 frame-group) (-> self janim)) - (set! (-> a0-0 param 0) (the float (+ (-> self janim data 0 length) -1))) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! a0-0 (-> self janim) num-func-seek!) - ) - (until (ja-done? 0) - (TODO-RENAME-9 (-> self align)) - (TODO-RENAME-10 (-> self align) 31 1.0 1.0 1.0) - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 param 0) - (the float (+ (-> a0-3 frame-group data 0 length) -1)) - ) - (set! (-> a0-3 param 1) 1.0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) + (while #t + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (-> self janim)) + (set! (-> a0-0 param 0) (the float (+ (-> self janim data 0 length) -1))) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! a0-0 (-> self janim) num-func-seek!) + ) + (until (ja-done? 0) + (TODO-RENAME-9 (-> self align)) + (TODO-RENAME-10 (-> self align) 31 1.0 1.0 1.0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1))) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior viewer) ja-post) ) @@ -73,122 +67,117 @@ (let ((s5-0 (-> arg2 data)) (gp-0 (-> arg0 data)) ) - (set! (-> gp-0 0) (the-as uint 0)) - (dotimes (s2-0 (- (length arg2) (+ (length arg1) 2))) - (when (= (-> s5-0 0) 45) - (let ((s1-0 #f)) - (dotimes (s0-0 (length arg1)) - (if (!= (-> s5-0 (+ s0-0 1)) (-> arg1 data s0-0)) - (goto cfg-10) + (set! (-> gp-0 0) (the-as uint 0)) + (dotimes (s2-0 (- (length arg2) (+ (length arg1) 2))) + (when (= (-> s5-0 0) 45) + (let ((s1-0 #f)) + (dotimes (s0-0 (length arg1)) + (if (!= (-> s5-0 (+ s0-0 1)) (-> arg1 data s0-0)) + (goto cfg-10) + ) + ) + (if (= (-> s5-0 (+ (length arg1) 1)) 45) + (set! s1-0 #t) + ) + (label cfg-10) + (when s1-0 + (let ((v1-22 (&+ s5-0 (+ (length arg1) 2)))) + (while (and (!= (-> v1-22 0) 45) (nonzero? (-> v1-22 0))) + (set! (-> gp-0 0) (-> v1-22 0)) + (set! v1-22 (&-> v1-22 1)) + (set! gp-0 (&-> gp-0 1)) + ) + ) + (set! (-> gp-0 0) (the-as uint 0)) + (return #t) + ) + ) ) - ) - (if (= (-> s5-0 (+ (length arg1) 1)) 45) - (set! s1-0 #t) - ) - (label cfg-10) - (when s1-0 - (let ((v1-22 (&+ s5-0 (+ (length arg1) 2)))) - (while (and (!= (-> v1-22 0) 45) (nonzero? (-> v1-22 0))) - (set! (-> gp-0 0) (-> v1-22 0)) - (set! v1-22 (&-> v1-22 1)) - (set! gp-0 (&-> gp-0 1)) - ) - ) - (set! (-> gp-0 0) (the-as uint 0)) - (return #t) - ) + (set! s5-0 (&-> s5-0 1)) ) - ) - (set! s5-0 (&-> s5-0 1)) ) - ) #f ) (defun art-part-name ((arg0 string)) (let ((gp-0 (-> arg0 data))) - (while (nonzero? (-> gp-0 0)) - (when (= (-> gp-0 0) 45) - (copyn-string<-charp - viewer-string - (&-> gp-0 1) - (- - (length arg0) - (the-as int (+ (- -1 (the-as int (-> arg0 data))) (the-as int gp-0))) - ) + (while (nonzero? (-> gp-0 0)) + (when (= (-> gp-0 0) 45) + (copyn-string<-charp + viewer-string + (&-> gp-0 1) + (- (length arg0) (the-as int (+ (- -1 (the-as int (-> arg0 data))) (the-as int gp-0)))) + ) + (return viewer-string) + ) + (set! gp-0 (&-> gp-0 1)) ) - (return viewer-string) - ) - (set! gp-0 (&-> gp-0 1)) ) - ) (clear viewer-string) ) (defbehavior init-viewer viewer ((arg0 string)) - (let ((s2-0 (load-to-heap-by-name (-> (if (-> self entity) - (-> self entity extra level) - (-> *level* level-default) - ) - art-group - ) - arg0 #f global 0 - ) - ) + (let ((s2-0 (load-to-heap-by-name + (-> (if (-> self entity) + (-> self entity extra level) + (-> *level* level-default) + ) + art-group + ) + arg0 + #f + global + 0 + ) + ) (s5-0 (the-as int #f)) (s4-0 (the-as int #f)) (s3-0 (the-as int #f)) ) - (when s2-0 - (dotimes (s1-0 (-> s2-0 length)) - (cond - ((and - (not s4-0) - (= (-> s2-0 data s1-0 type) merc-ctrl) - (or - (zero? (length viewer-geo-name)) - (string= (art-part-name (-> s2-0 data s1-0 name)) viewer-geo-name) - ) + (when s2-0 + (dotimes (s1-0 (-> s2-0 length)) + (cond + ((and + (not s4-0) + (= (-> s2-0 data s1-0 type) merc-ctrl) + (or (zero? (length viewer-geo-name)) (string= (art-part-name (-> s2-0 data s1-0 name)) viewer-geo-name)) + ) + (set! s4-0 s1-0) + ) + ((= (-> s2-0 data s1-0 type) art-joint-geo) + (set! s3-0 s1-0) + ) + ((and + (= (-> s2-0 data s1-0 type) art-joint-anim) + (or (zero? (length viewer-ja-name)) (string= (art-part-name (-> s2-0 data s1-0 name)) viewer-ja-name)) + ) + (set! s5-0 s1-0) + ) + ) + (if (and s4-0 s3-0 s5-0) + (goto cfg-34) + ) ) - (set! s4-0 s1-0) - ) - ((= (-> s2-0 data s1-0 type) art-joint-geo) - (set! s3-0 s1-0) - ) - ((and - (= (-> s2-0 data s1-0 type) art-joint-anim) - (or - (zero? (length viewer-ja-name)) - (string= (art-part-name (-> s2-0 data s1-0 name)) viewer-ja-name) + ) + (label cfg-34) + (cond + ((and s4-0 s3-0 s5-0) + (set! (-> self janim) (the-as art-joint-anim (-> s2-0 data s5-0))) + (let ((a1-3 *viewer-sg*)) + (set! (-> a1-3 art-group-name) arg0) + (set! (-> a1-3 jgeo) s3-0) + (set! (-> a1-3 janim) s5-0) + (set! (-> a1-3 mgeo 0) s4-0) + (initialize-skeleton self a1-3 '()) ) - ) - (set! s5-0 s1-0) + (set! (-> self align) (new 'process 'align-control self)) + (go viewer-process) ) + (else + (go process-drawable-art-error arg0) + ) ) - (if (and s4-0 s3-0 s5-0) - (goto cfg-34) - ) - ) ) - (label cfg-34) - (cond - ((and s4-0 s3-0 s5-0) - (set! (-> self janim) (the-as art-joint-anim (-> s2-0 data s5-0))) - (let ((a1-3 *viewer-sg*)) - (set! (-> a1-3 art-group-name) arg0) - (set! (-> a1-3 jgeo) s3-0) - (set! (-> a1-3 janim) s5-0) - (set! (-> a1-3 mgeo 0) s4-0) - (initialize-skeleton self a1-3 '()) - ) - (set! (-> self align) (new 'process 'align-control self)) - (go viewer-process) - ) - (else - (go process-drawable-art-error arg0) - ) - ) - ) ) (defmethod init-from-entity! viewer ((obj viewer) (arg0 entity-actor)) @@ -198,11 +187,11 @@ (actor-get-arg! viewer-ja-name "ja" (res-lump-struct arg0 'name string)) (actor-get-arg! viewer-geo-name "geo" (res-lump-struct arg0 'name string)) (let ((gp-1 (-> arg0 etype))) - (if (valid? gp-1 type #f #f 0) - (init-viewer (symbol->string (-> gp-1 symbol))) - (go process-drawable-art-error "unknown") + (if (valid? gp-1 type #f #f 0) + (init-viewer (symbol->string (-> gp-1 symbol))) + (go process-drawable-art-error "unknown") + ) ) - ) (none) ) @@ -221,36 +210,31 @@ (defun add-a-bunch ((arg0 string) (arg1 int) (arg2 int) (arg3 float)) (local-vars (sv-32 process)) (dotimes (s2-0 arg1) - (dotimes (s1-0 arg2) - (let ((s0-0 (new-stack-vector0))) - (position-in-front-of-camera! s0-0 40960.0 4096.0) - (+! (-> s0-0 x) (the float (* (- s2-0 (/ arg1 2)) (the int arg3)))) - (+! (-> s0-0 z) (the float (* (- s1-0 (/ arg2 2)) (the int arg3)))) - (set! sv-32 (get-process *default-dead-pool* viewer #x4000)) - (when sv-32 - (let ((t9-2 (method-of-type viewer activate))) - (t9-2 - (the-as viewer sv-32) - *entity-pool* - 'viewer - (the-as pointer #x70004000) + (dotimes (s1-0 arg2) + (let ((s0-0 (new-stack-vector0))) + (position-in-front-of-camera! s0-0 40960.0 4096.0) + (+! (-> s0-0 x) (the float (* (- s2-0 (/ arg1 2)) (the int arg3)))) + (+! (-> s0-0 z) (the float (* (- s1-0 (/ arg2 2)) (the int arg3)))) + (set! sv-32 (get-process *default-dead-pool* viewer #x4000)) + (when sv-32 + (let ((t9-2 (method-of-type viewer activate))) + (t9-2 (the-as viewer sv-32) *entity-pool* 'viewer (the-as pointer #x70004000)) + ) + (run-now-in-process sv-32 init-viewer-for-other arg0 s0-0) + (-> sv-32 ppointer) + ) ) - ) - (run-now-in-process sv-32 init-viewer-for-other arg0 s0-0) - (-> sv-32 ppointer) ) - ) ) - ) #f ) (defun birth-viewer ((arg0 process) (arg1 entity)) (set! (-> arg0 type) viewer) (let ((t9-0 init-entity)) - viewer - (t9-0 arg0 arg1) - ) + viewer + (t9-0 arg0 arg1) + ) (the-as object #t) ) diff --git a/goal_src/engine/game/collectables.gc b/goal_src/engine/game/collectables.gc index fb2a6be726..5e89adf8c9 100644 --- a/goal_src/engine/game/collectables.gc +++ b/goal_src/engine/game/collectables.gc @@ -50,6 +50,9 @@ (initialize (_type_) _type_ 20) (initialize-params (_type_ int float) none 21) ) + (:states + (hud-collecting handle) + ) ) @@ -1388,6 +1391,10 @@ :method-count-assert 31 :size-assert #x19c :flag-assert #x1f0130019c + (:states + (fuel-cell-clone-anim handle) + (fuel-cell-spline-slider handle float float) + ) ) @@ -2841,6 +2848,9 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + ecovalve-idle + ) ) diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index 11e0208b76..de94622c51 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -5,6 +5,9 @@ ;; name in dgo: game-h ;; dgos: GAME, ENGINE +(declare-type target process-drawable) +(declare-type voicebox process-drawable) +(defun-extern voicebox-spawn process vector (pointer process)) (declare-type nav-control basic) (declare-type path-control basic) @@ -13,28 +16,30 @@ (declare-type sparticle-launch-control basic) (declare-type water-control basic) (declare-type collide-shape basic) + +;; DECOMP BEGINS + (deftype process-drawable (process) - ((root trsqv :offset-assert 112) - (node-list cspace-array :offset-assert 116) - (draw draw-control :offset-assert 120) - (skel joint-control :offset-assert 124) - (nav nav-control :offset-assert 128) - (align align-control :offset-assert 132) - (path path-control :offset-assert 136) - (vol vol-control :offset-assert 140) - (fact fact-info :offset-assert 144) - (link actor-link-info :offset-assert 148) - (part sparticle-launch-control :offset-assert 152) - (water water-control :offset-assert 156) - (sound ambient-sound :offset-assert 160) - (state-flags uint32 :offset-assert 164) - (state-time int64 :offset-assert 168) + ((root trsqv :offset-assert 112) + (node-list cspace-array :offset-assert 116) + (draw draw-control :offset-assert 120) + (skel joint-control :offset-assert 124) + (nav nav-control :offset-assert 128) + (align align-control :offset-assert 132) + (path path-control :offset-assert 136) + (vol vol-control :offset-assert 140) + (fact fact-info :offset-assert 144) + (link actor-link-info :offset-assert 148) + (part sparticle-launch-control :offset-assert 152) + (water water-control :offset-assert 156) + (sound ambient-sound :offset-assert 160) + (state-flags uint32 :offset-assert 164) + (state-time int64 :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 - ;; inherited inspect of process (:methods (initialize-skeleton (_type_ skeleton-group pair) none 14) (dummy-15 (_type_ string object) _type_ 15) @@ -43,8 +48,13 @@ (dummy-18 (_type_) none 18) (dummy-19 (_type_) none 19) ) + (:states + (process-drawable-art-error string) + process-drawable-idle + ) ) + (deftype process-drawable-reserved (process-drawable) () :heap-base #x40 @@ -98,38 +108,39 @@ ) ) + (deftype attack-info (structure) - ((trans vector :inline :offset-assert 0) - (vector vector :inline :offset-assert 16) - (intersection vector :inline :offset-assert 32) - (attacker handle :offset-assert 48) - (invinc-time seconds :offset-assert 56) - (mask uint32 :offset-assert 64) - (mode symbol :offset-assert 68) - (shove-back meters :offset-assert 72) - (shove-up meters :offset-assert 76) - (speed meters :offset-assert 80) - (dist meters :offset-assert 84) - (control float :offset-assert 88) - (angle symbol :offset-assert 92) - (rotate-to degrees :offset-assert 96) - (prev-state state :offset-assert 100) + ((trans vector :inline :offset-assert 0) + (vector vector :inline :offset-assert 16) + (intersection vector :inline :offset-assert 32) + (attacker handle :offset-assert 48) + (invinc-time seconds :offset-assert 56) + (mask uint32 :offset-assert 64) + (mode symbol :offset-assert 68) + (shove-back meters :offset-assert 72) + (shove-up meters :offset-assert 76) + (speed meters :offset-assert 80) + (dist meters :offset-assert 84) + (control float :offset-assert 88) + (angle symbol :offset-assert 92) + (rotate-to degrees :offset-assert 96) + (prev-state state :offset-assert 100) ) :method-count-assert 10 :size-assert #x68 :flag-assert #xa00000068 - ;; field handle is likely a value type (:methods (dummy-9 (_type_ attack-info) none 9) ) ) + (define *global-attack-id* 0) (deftype ground-tween-info (structure) - ((chan uint8 3 :offset-assert 0) - (blend float 3 :offset-assert 4) - (group uint32 5 :offset-assert 16) + ((chan uint8 3 :offset-assert 0) + (blend float 3 :offset-assert 4) + (group uint32 5 :offset-assert 16) ) :method-count-assert 9 :size-assert #x24 @@ -137,8 +148,8 @@ ) -(declare-type target process-drawable) -(declare-type voicebox process-drawable) +0 + + -(defun-extern voicebox-spawn process vector (pointer process)) diff --git a/goal_src/engine/game/generic-obs-h.gc b/goal_src/engine/game/generic-obs-h.gc index 3b5fa3152a..9382a585f0 100644 --- a/goal_src/engine/game/generic-obs-h.gc +++ b/goal_src/engine/game/generic-obs-h.gc @@ -53,6 +53,9 @@ :method-count-assert 20 :size-assert #x114 :flag-assert #x1400b00114 + (:states + manipy-idle + ) ) @@ -69,6 +72,9 @@ (:methods (dummy-20 (_type_) none 20) ) + (:states + part-spawner-active + ) ) @@ -91,6 +97,9 @@ :method-count-assert 14 :size-assert #xf8 :flag-assert #xe009000f8 + (:states + part-tracker-process + ) ) @@ -123,6 +132,9 @@ (:methods (dummy-14 (_type_ pair) process 14) ) + (:states + camera-tracker-process + ) ) @@ -139,6 +151,9 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + touch-tracker-idle + ) ) @@ -152,6 +167,10 @@ :method-count-assert 14 :size-assert #x98 :flag-assert #xe00300098 + (:states + swingpole-active + swingpole-stance + ) ) @@ -192,6 +211,9 @@ :method-count-assert 14 :size-assert #xc4 :flag-assert #xe006000c4 + (:states + othercam-running + ) ) diff --git a/goal_src/engine/game/generic-obs.gc b/goal_src/engine/game/generic-obs.gc index aaf1c9036a..f429014ad1 100644 --- a/goal_src/engine/game/generic-obs.gc +++ b/goal_src/engine/game/generic-obs.gc @@ -6,8 +6,6 @@ ;; dgos: GAME, ENGINE (declare-type swingpole process) -(define-extern swingpole-stance (state swingpole)) -(define-extern swingpole-active (state swingpole)) (define-extern convert-to-hud-object (function process-drawable hud none :behavior hud)) @@ -22,15 +20,12 @@ (define-extern line-in-view-frustum? (function vector vector symbol)) (declare-type beach-part part-spawner) -(define-extern beach-part-grotto-1 (state beach-part)) - (declare-type launcher process-drawable) -(define-extern launcher-active (state launcher)) -(define-extern launcher-idle (state launcher)) -(define-extern launcher-deactivated (state launcher)) (define-extern command-get-camera (function object state object)) ;; ret - (state camera) | string | symbol +(define-extern beach-part-grotto-1 (state beach-part)) + ;; DECOMP BEGINS (defbehavior clone-anim-once process-drawable ((arg0 handle) (arg1 int) (arg2 symbol) (arg3 string)) @@ -1280,6 +1275,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + med-res-level-idle + ) ) @@ -1529,6 +1527,11 @@ :method-count-assert 20 :size-assert #xe4 :flag-assert #x14008000e4 + (:states + launcher-active + launcher-deactivated + launcher-idle + ) ) diff --git a/goal_src/engine/game/voicebox.gc b/goal_src/engine/game/voicebox.gc index 60acc72474..c491677c88 100644 --- a/goal_src/engine/game/voicebox.gc +++ b/goal_src/engine/game/voicebox.gc @@ -7,7 +7,6 @@ (define-extern *voicebox-sg* skeleton-group) -(define-extern empty-state (state process)) ;; DECOMP BEGINS @@ -17,6 +16,9 @@ :method-count-assert 14 :size-assert #xa04 :flag-assert #xe09a00a04 + (:states + cam-voicebox + ) ) @@ -57,92 +59,57 @@ (let ((gp-0 (new 'stack-no-clear 'vector)) (s5-0 (new 'stack-no-clear 'vector)) ) - (set! (-> gp-0 quad) (-> self parent-override 0 trans quad)) - (set! (-> s5-0 quad) (-> (target-pos 68) quad)) - (when *target* - (let - ((a2-0 - (vector-z-quaternion! - (new-stack-vector0) - (-> *target* control unknown-quaternion00) + (set! (-> gp-0 quad) (-> self parent-override 0 trans quad)) + (set! (-> s5-0 quad) (-> (target-pos 68) quad)) + (when *target* + (let ((a2-0 (vector-z-quaternion! (new-stack-vector0) (-> *target* control unknown-quaternion00)))) + (vector+float*! s5-0 s5-0 a2-0 (* -16384.0 (- 1.0 (-> self blend)))) ) - ) ) - (vector+float*! s5-0 s5-0 a2-0 (* -16384.0 (- 1.0 (-> self blend)))) - ) + (vector-lerp! (-> self root trans) gp-0 s5-0 (-> self blend)) ) - (vector-lerp! (-> self root trans) gp-0 s5-0 (-> self blend)) - ) (+! - (-> self root trans y) - (* - 1638.4 - (sin (* 54.613335 (the float (mod (-> *display* base-frame-counter) 1200)))) + (-> self root trans y) + (* 1638.4 (sin (* 54.613335 (the float (mod (-> *display* base-frame-counter) 1200))))) ) - ) (let ((gp-1 (new 'stack-no-clear 'quaternion))) - (forward-up->quaternion - gp-1 - (vector-normalize! - (vector-! - (new 'stack-no-clear 'vector) - (target-pos 37) - (-> self root trans) + (forward-up->quaternion + gp-1 + (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (target-pos 37) (-> self root trans)) 1.0) + (new 'static 'vector :y 1.0 :w 1.0) ) - 1.0 - ) - (new 'static 'vector :y 1.0 :w 1.0) + (rotate-toward-orientation! (-> self root) gp-1 65536.0 5461.3335) ) - (rotate-toward-orientation! (-> self root) gp-1 65536.0 5461.3335) - ) (when *target* - (let* ((gp-2 (-> *target* control)) - (s4-2 (-> self root trans)) - (f0-8 - (deg-diff - (y-angle gp-2) - (vector-y-angle - (vector-! (new 'stack-no-clear 'vector) s4-2 (-> gp-2 trans)) + (let* ((gp-2 (-> *target* control)) + (s4-2 (-> self root trans)) + (f0-8 + (deg-diff (y-angle gp-2) (vector-y-angle (vector-! (new 'stack-no-clear 'vector) s4-2 (-> gp-2 trans)))) ) - ) ) + (if (< 0.0 f0-8) + (set! (-> self twist) (seek (-> self twist) -0.4 (* 0.3 (-> *display* seconds-per-frame)))) + (set! (-> self twist) (seek (-> self twist) 0.4 (* 0.3 (-> *display* seconds-per-frame)))) ) - (if (< 0.0 f0-8) - (set! - (-> self twist) - (seek (-> self twist) -0.4 (* 0.3 (-> *display* seconds-per-frame))) ) - (set! - (-> self twist) - (seek (-> self twist) 0.4 (* 0.3 (-> *display* seconds-per-frame))) + (let ((a1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-9 from) self) + (set! (-> a1-9 num-params) 0) + (set! (-> a1-9 message) 'blocked-side?) + (case (send-event-function (ppointer->process (-> self parent-override)) a1-9) + ((1) + (set! (-> self twist) 0.5) + ) + ((2) + (set! (-> self twist) -0.5) + ) + ((3) + (set! (-> self twist) 0.0) + ) + ) ) - ) + (send-event (ppointer->process (-> self parent-override)) 'joystick (-> self twist) -1.0) ) - (let ((a1-9 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-9 from) self) - (set! (-> a1-9 num-params) 0) - (set! (-> a1-9 message) 'blocked-side?) - (case - (send-event-function (ppointer->process (-> self parent-override)) a1-9) - - ((1) - (set! (-> self twist) 0.5) - ) - ((2) - (set! (-> self twist) -0.5) - ) - ((3) - (set! (-> self twist) 0.0) - ) - ) - ) - (send-event - (ppointer->process (-> self parent-override)) - 'joystick - (-> self twist) - -1.0 - ) - ) (set! (-> self root scale x) (lerp-scale 1.0 0.0 (-> self blend) 0.8 1.0)) (set! (-> self root scale y) (-> self root scale x)) (set! (-> self root scale z) (-> self root scale x)) @@ -153,53 +120,48 @@ (defstate enter (voicebox) :virtual #t :event - (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('die) - (go-virtual exit) - ) - ) - ) + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 + (('die) + (go-virtual exit) + ) + ) + ) :trans (behavior () - (voicebox-track) - (if (< 0.1 (-> self blend)) - (point-toward-point-clear-roll-pitch! (-> self root) (target-pos 0)) + (voicebox-track) + (if (< 0.1 (-> self blend)) + (point-toward-point-clear-roll-pitch! (-> self root) (target-pos 0)) + ) + (none) ) - (none) - ) :code (behavior () - (set-setting! *setting-control* self 'sound-flava #f 20.0 6) - (if - (and - *target* - (logtest? (-> *target* control root-prim prim-core action) 512) - ) - (send-event - (ppointer->process (-> self parent-override)) - 'set-dist - (new 'static 'vector :z 8192.0 :w 1.0) - (new 'static 'vector :y 20480.0 :z 12288.0 :w 1.0) - ) - (send-event - (ppointer->process (-> self parent-override)) - 'set-dist - (new 'static 'vector :z 16384.0 :w 1.0) - (new 'static 'vector :y 20480.0 :z 40960.0 :w 1.0) - ) + (set-setting! *setting-control* self 'sound-flava #f 20.0 6) + (if (and *target* (logtest? (-> *target* control root-prim prim-core action) 512)) + (send-event + (ppointer->process (-> self parent-override)) + 'set-dist + (new 'static 'vector :z 8192.0 :w 1.0) + (new 'static 'vector :y 20480.0 :z 12288.0 :w 1.0) + ) + (send-event + (ppointer->process (-> self parent-override)) + 'set-dist + (new 'static 'vector :z 16384.0 :w 1.0) + (new 'static 'vector :y 20480.0 :z 40960.0 :w 1.0) + ) + ) + (init-cam-float-seeker (-> self seeker) 1.0 0.01 0.022222223 0.1) + (set! (-> self seeker target) 0.0) + (while (< 0.0001 (-> self blend)) + (update! (-> self seeker) 0.0) + (set! (-> self blend) (-> self seeker value)) + (suspend) + ) + (set! (-> self blend) 0.0) + (go-virtual idle) + (none) ) - (init-cam-float-seeker (-> self seeker) 1.0 0.01 0.022222223 0.1) - (set! (-> self seeker target) 0.0) - (while (< 0.0001 (-> self blend)) - (update! (-> self seeker) 0.0) - (set! (-> self blend) (-> self seeker value)) - (suspend) - ) - (set! (-> self blend) 0.0) - (go-virtual idle) - (none) - ) :post (the-as (function none :behavior voicebox) ja-post) ) @@ -212,19 +174,15 @@ voicebox-track :code (behavior () - (while #t - (suspend) - (let ((a0-0 (-> self skel root-channel 0))) - (set! (-> a0-0 param 0) 1.0) - (joint-control-channel-group-eval! - a0-0 - (the-as art-joint-anim #f) - num-func-loop! + (while #t + (suspend) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 param 0) 1.0) + (joint-control-channel-group-eval! a0-0 (the-as art-joint-anim #f) num-func-loop!) + ) ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior voicebox) ja-post) ) @@ -235,30 +193,26 @@ voicebox-track :code (behavior () - (clear-pending-settings-from-process *setting-control* self 'sound-flava) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self seeker target) 1.0) - (while - (and - (< (-> self blend) 0.9999) - (not - (and - (not (handle->process (-> self hint))) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) - (-> *setting-control* current hint) - ) + (clear-pending-settings-from-process *setting-control* self 'sound-flava) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self seeker target) 1.0) + (while (and (< (-> self blend) 0.9999) (not (and + (not (handle->process (-> self hint))) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (-> *setting-control* current hint) + ) + ) + ) + (update! (-> self seeker) 0.0) + (set! (-> self blend) (-> self seeker value)) + (suspend) ) - ) - (update! (-> self seeker) 0.0) - (set! (-> self blend) (-> self seeker value)) + (set! (-> self blend) 1.0) + (send-event (ppointer->process (-> self parent-override)) 'go empty-state) (suspend) + 0 + (none) ) - (set! (-> self blend) 1.0) - (send-event (ppointer->process (-> self parent-override)) 'go empty-state) - (suspend) - 0 - (none) - ) :post (the-as (function none :behavior voicebox) ja-post) ) @@ -281,55 +235,40 @@ (-> cam-string enter) :trans (behavior () - (if (zero? (logand (-> *camera* master-options) 2)) - (deactivate self) + (if (zero? (logand (-> *camera* master-options) 2)) + (deactivate self) + ) + (none) ) - (none) - ) :code (-> cam-string code) ) (defun voicebox-spawn ((arg0 process) (arg1 vector)) (with-pp - (let* ((s3-0 (get-process *camera-dead-pool* camera-voicebox #x4000)) - (s4-0 (when s3-0 - (let ((t9-1 (method-of-type camera-voicebox activate))) - (t9-1 - (the-as camera-voicebox s3-0) - arg0 - 'camera-voicebox - (the-as pointer #x70004000) + (let* ((s3-0 (get-process *camera-dead-pool* camera-voicebox #x4000)) + (s4-0 (when s3-0 + (let ((t9-1 (method-of-type camera-voicebox activate))) + (t9-1 (the-as camera-voicebox s3-0) arg0 'camera-voicebox (the-as pointer #x70004000)) + ) + (run-now-in-process s3-0 cam-slave-init cam-voicebox #f) + (-> s3-0 ppointer) ) - ) - (run-now-in-process s3-0 cam-slave-init cam-voicebox #f) - (-> s3-0 ppointer) ) ) + (when s4-0 + (let ((s5-1 (get-process *default-dead-pool* voicebox #x4000))) + (when s5-1 + (let ((t9-4 (method-of-type voicebox activate))) + (t9-4 (the-as voicebox s5-1) (ppointer->process s4-0) 'voicebox (the-as pointer #x70004000)) + ) + (run-now-in-process s5-1 voicebox-init-by-other arg1 (process->handle pp)) + (-> s5-1 ppointer) + ) ) - (when s4-0 - (let ((s5-1 (get-process *default-dead-pool* voicebox #x4000))) - (when s5-1 - (let ((t9-4 (method-of-type voicebox activate))) - (t9-4 - (the-as voicebox s5-1) - (ppointer->process s4-0) - 'voicebox - (the-as pointer #x70004000) - ) ) - (run-now-in-process - s5-1 - voicebox-init-by-other - arg1 - (process->handle pp) - ) - (-> s5-1 ppointer) - ) ) - ) ) - ) ) diff --git a/goal_src/engine/gfx/time-of-day-h.gc b/goal_src/engine/gfx/time-of-day-h.gc index ab438db904..b3b4815582 100644 --- a/goal_src/engine/gfx/time-of-day-h.gc +++ b/goal_src/engine/gfx/time-of-day-h.gc @@ -5,101 +5,116 @@ ;; name in dgo: time-of-day-h ;; dgos: GAME, ENGINE +;; TODO for mood +(declare-type time-of-day-proc process) +(declare-type time-of-day-palette basic) +(define-extern *time-of-day-proc* (pointer time-of-day-proc)) +(define-extern time-of-day-interp-colors (function (pointer rgba) uint mood-context none)) +(define-extern time-of-day-interp-colors-scratch (function (pointer rgba) time-of-day-palette mood-context none)) + +(declare-type sparticle-launch-control basic) + +;; DECOMP BEGINS (deftype palette-fade-control (structure) - ((trans vector :inline :offset-assert 0) - (fade float :offset-assert 16) - (actor-dist float :offset-assert 20) + ((trans vector :inline :offset-assert 0) + (fade float :offset-assert 16) + (actor-dist float :offset-assert 20) ) :method-count-assert 9 :size-assert #x18 :flag-assert #x900000018 ) + (deftype palette-fade-controls (basic) - ((control palette-fade-control 8 :inline :offset-assert 16) + ((control palette-fade-control 8 :inline :offset-assert 16) ) :method-count-assert 11 :size-assert #x110 :flag-assert #xb00000110 (:methods (reset! (_type_) symbol 9) - (set-fade! (_type_ int float float vector) object 10) ; returns float or error string + (set-fade! (_type_ int float float vector) object 10) ) ) -(define-perm *palette-fade-controls* palette-fade-controls - (new 'global 'palette-fade-controls) - ) -(declare-type sparticle-launch-control basic) +(define-perm *palette-fade-controls* palette-fade-controls (new 'global 'palette-fade-controls)) + (deftype time-of-day-proc (process) - ((year int32 :offset-assert 112) - (month int32 :offset-assert 116) - (week int32 :offset-assert 120) - (day int32 :offset-assert 124) - (hour int32 :offset-assert 128) - (minute int32 :offset-assert 132) - (second int32 :offset-assert 136) - (frame int32 :offset-assert 140) - (time-of-day float :offset-assert 144) - (time-ratio float :offset-assert 148) - (star-count int32 :offset-assert 152) + ((year int32 :offset-assert 112) + (month int32 :offset-assert 116) + (week int32 :offset-assert 120) + (day int32 :offset-assert 124) + (hour int32 :offset-assert 128) + (minute int32 :offset-assert 132) + (second int32 :offset-assert 136) + (frame int32 :offset-assert 140) + (time-of-day float :offset-assert 144) + (time-ratio float :offset-assert 148) + (star-count int32 :offset-assert 152) (stars sparticle-launch-control :offset-assert 156) - (sun-count int32 :offset-assert 160) + (sun-count int32 :offset-assert 160) (sun sparticle-launch-control :offset-assert 164) - (green-sun-count int32 :offset-assert 168) + (green-sun-count int32 :offset-assert 168) (green-sun sparticle-launch-control :offset-assert 172) - (moon-count int32 :offset-assert 176) + (moon-count int32 :offset-assert 176) (moon sparticle-launch-control :offset-assert 180) ) :heap-base #x50 :method-count-assert 14 :size-assert #xb8 :flag-assert #xe005000b8 + (:states + time-of-day-tick + ) ) + (deftype time-of-day-palette (basic) - ((width int32 :offset-assert 4) - (height int32 :offset-assert 8) - (pad int32 :offset-assert 12) - (data int32 1 :offset-assert 16) + ((width int32 :offset-assert 4) + (height int32 :offset-assert 8) + (pad int32 :offset-assert 12) + (data int32 1 :offset-assert 16) ) :method-count-assert 9 :size-assert #x14 :flag-assert #x900000014 ) + (deftype time-of-day-context (basic) - ((active-count uint32 :offset-assert 4) - (interp float :offset-assert 8) - (current-interp float :offset-assert 12) - (moods mood-context 2 :offset-assert 16) - (current-fog mood-fog :inline :offset-assert 32) - (current-sun mood-sun :inline :offset-assert 80) - (current-prt-color vector :inline :offset-assert 112) - (current-shadow vector :inline :offset-assert 128) - (current-shadow-color vector :inline :offset-assert 144) - (light-group light-group 9 :inline :offset-assert 160) - (title-light-group light-group :inline :offset-assert 1888) - (time float :offset-assert 2080) - (target-interp float :offset-assert 2084) - (erase-color rgba :offset-assert 2088) - (num-stars float :offset-assert 2092) - (light-masks-0 uint8 2 :offset-assert 2096) - (light-masks-1 uint8 2 :offset-assert 2098) - (light-interp float 2 :offset-assert 2100) - (sky symbol :offset-assert 2108) - (sun-fade float :offset-assert 2112) - (title-updated symbol :offset-assert 2116) + ((active-count uint32 :offset-assert 4) + (interp float :offset-assert 8) + (current-interp float :offset-assert 12) + (moods mood-context 2 :offset-assert 16) + (current-fog mood-fog :inline :offset-assert 32) + (current-sun mood-sun :inline :offset-assert 80) + (current-prt-color vector :inline :offset-assert 112) + (current-shadow vector :inline :offset-assert 128) + (current-shadow-color vector :inline :offset-assert 144) + (light-group light-group 9 :inline :offset-assert 160) + (title-light-group light-group :inline :offset-assert 1888) + (time float :offset-assert 2080) + (target-interp float :offset-assert 2084) + (erase-color rgba :offset-assert 2088) + (num-stars float :offset-assert 2092) + (light-masks-0 uint8 2 :offset-assert 2096) + (light-masks-1 uint8 2 :offset-assert 2098) + (light-interp float 2 :offset-assert 2100) + (sky symbol :offset-assert 2108) + (sun-fade float :offset-assert 2112) + (title-updated symbol :offset-assert 2116) ) :method-count-assert 9 :size-assert #x848 :flag-assert #x900000848 ) + (deftype time-of-day-dma (structure) - ((outa uint32 256 :offset-assert 0) + ((outa uint32 256 :offset-assert 0) (outb uint32 256 :offset-assert 1024) (banka uint32 256 :offset-assert 2048) (bankb uint32 256 :offset-assert 3072) @@ -109,10 +124,7 @@ :flag-assert #x900001000 ) -(define *time-of-day-mode* 8) ;; flags? enum? -(define *time-of-day-context* (new 'static 'time-of-day-context)) -;; TODO for mood -(define-extern *time-of-day-proc* (pointer time-of-day-proc)) -(define-extern time-of-day-interp-colors (function (pointer rgba) uint mood-context none)) -(define-extern time-of-day-interp-colors-scratch (function (pointer rgba) time-of-day-palette mood-context none)) \ No newline at end of file +(define *time-of-day-mode* 8) + +(define *time-of-day-context* (new 'static 'time-of-day-context)) diff --git a/goal_src/engine/target/sidekick.gc b/goal_src/engine/target/sidekick.gc index f6879c6839..d049af289d 100644 --- a/goal_src/engine/target/sidekick.gc +++ b/goal_src/engine/target/sidekick.gc @@ -6,7 +6,6 @@ ;; dgos: GAME, ENGINE (define-extern *sidekick-sg* skeleton-group) -(define-extern sidekick-clone (state sidekick)) ;; DECOMP BEGINS diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index dba9077c77..e984c80643 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -22,13 +22,9 @@ (declare-type sidekick process-drawable) (define-extern init-sidekick (function none :behavior sidekick)) ;; TODO - for logic-target - defined in target-death -(define-extern target-continue (state continue-point target)) -(define-extern target-periscope (state handle target)) ;; unknown type (define-extern mod-var-jump (function symbol symbol symbol vector vector :behavior target)) (define-extern init-var-jump (function float float vector vector vector vector :behavior target)) ;; 1st and 2nd vectors may be symbols instead? ;; TODO - for target-util -(define-extern target-falling (state symbol target)) -(define-extern target-slide-down (state target)) ;; TODO - for target-tube (define-extern target-attacked (function symbol attack-info process process (state handle attack-info target) object :behavior target)) ;; unconfirmed, target-tube::(event target-tube-start) ;; TODO - for racer-states @@ -88,10 +84,67 @@ (dummy-20 (_type_ collide-cache) object 20) ) (:states + target-attack + (target-attack-air symbol) + (target-attack-uppercut float float) + (target-attack-uppercut-jump float float) + target-billy-game (target-clone-anim handle) + (target-continue continue-point) (target-death symbol) target-demo + (target-double-jump float float) + (target-duck-high-jump float float symbol) + (target-duck-high-jump-jump float float symbol) + target-duck-stance + target-duck-walk + (target-eco-powerup object float) + target-edge-grab + (target-edge-grab-jump float float) + target-edge-grab-off + (target-falling symbol) + (target-final-door basic handle) + (target-fishing handle) + (target-flop float float float) + (target-flop-hit-ground symbol) + (target-flut-air-attack float) + target-flut-air-attack-hit-ground + (target-flut-clone-anim handle) + (target-flut-death symbol) + (target-flut-double-jump float float) + target-flut-falling + (target-flut-get-off handle) + (target-flut-get-off-hit-ground symbol) + (target-flut-get-off-jump handle) + (target-flut-get-on handle) + target-flut-grab + (target-flut-hit symbol attack-info) + target-flut-hit-ground + (target-flut-jump float float) + target-flut-running-attack + target-flut-stance + (target-flut-start handle) + target-flut-walk + target-grab + (target-high-jump float float basic) + (target-hit symbol attack-info) (target-hit-ground symbol) + (target-hit-ground-hard float) + target-ice-stance + target-ice-walk + (target-jump float float surface) + (target-jump-forward float float) + (target-launch float symbol vector int) + target-load-wait + target-look-around + (target-periscope handle) + (target-play-anim string handle) + (target-pole-cycle handle) + (target-pole-flip-forward float float float) + (target-pole-flip-forward-jump float float) + (target-pole-flip-up object object float) + (target-pole-flip-up-jump float float) + target-racing (target-racing-bounce float float symbol) (target-racing-clone-anim handle) (target-racing-death symbol) @@ -103,10 +156,40 @@ target-racing-grab (target-racing-hit handle attack-info) (target-racing-jump float float symbol) + (target-racing-smack float symbol) + (target-racing-start handle) + target-running-attack + target-slide-down + target-snowball + (target-snowball-start handle) + target-stance + target-stance-ambient + target-stance-look-around + target-startup + target-swim-down + (target-swim-jump float float) + (target-swim-jump-jump float float surface) + target-swim-stance + target-swim-up + target-swim-walk target-title target-title-play target-title-wait + target-tube + (target-tube-death symbol) + (target-tube-hit handle attack-info) + (target-tube-jump float float) + (target-tube-start handle) + target-turn-around + target-wade-stance + target-wade-walk + target-walk (target-warp-in vector vector) + (target-warp-out vector vector) + target-wheel + (target-wheel-flip float float) + target-yellow-blast + target-yellow-jump-blast ) ) @@ -123,6 +206,9 @@ :method-count-assert 20 :size-assert #xcc :flag-assert #x14006000cc + (:states + sidekick-clone + ) ) diff --git a/goal_src/engine/target/target.gc b/goal_src/engine/target/target.gc index 6eba8a8c76..bd84a47dcc 100644 --- a/goal_src/engine/target/target.gc +++ b/goal_src/engine/target/target.gc @@ -7,48 +7,17 @@ ;; TODO - almost all of these are in target-handler or target2, temporary -(define-extern target-attack-air (state symbol target)) ;; unknown type -(define-extern target-jump (state float float surface target)) ;; unknown type -(define-extern target-hit-ground (state symbol target)) ;; unknown type -(define-extern target-high-jump (state float float basic target)) ;; unknown type -(define-extern target-stance (state target)) ;; unknown type (define-extern target-state-hook-exit (function none :behavior target)) -(define-extern target-wade-stance (state target)) ;; unknown type -(define-extern target-ice-stance (state target)) ;; unknown type -(define-extern target-walk (state target)) ;; unknown type -(define-extern target-duck-stance (state target)) ;; unknown type -(define-extern target-attack (state target)) ;; unknown type -(define-extern target-running-attack (state target)) ;; unknown type -(define-extern target-stance-ambient (state target)) ;; unknown type (define-extern target-effect-exit (function none :behavior target)) -(define-extern target-ice-walk (state target)) ;; unknown type -(define-extern target-wheel (state target)) ;; unknown type -(define-extern target-duck-walk (state target)) ;; unknown type -(define-extern target-turn-around (state target)) ;; unknown type (define-extern target-post (function none)) (define-extern target-walk-event-handler (function process int symbol event-message-block object :behavior target)) -(define-extern target-attack-uppercut (state float float target)) ;; unknown type -(define-extern target-double-jump (state float float target)) ;; unknown type -(define-extern target-flop (state float float float target)) ;; unknown type -(define-extern target-launch (state float symbol vector int target)) ;; unknown type -(define-extern target-duck-high-jump (state float float symbol target)) ;; unknown type -(define-extern target-duck-high-jump-jump (state float float symbol target)) ;; unknown type -(define-extern target-wade-walk (state target)) ;; unknown type -(define-extern target-hit-ground-hard (state float target)) ;; unknown type (define-extern target-land-effect (function none :behavior target)) (define-extern target-dangerous-event-handler (function process int symbol event-message-block object :behavior target)) (define-extern target-standard-event-handler (function process int symbol event-message-block object :behavior target)) (define-extern target-jump-event-handler (function process int symbol event-message-block object :behavior target)) -(define-extern target-hit (state symbol attack-info target)) ;; unknown type (define-extern target-shoved (function meters meters process (state target) object :behavior target)) (define-extern target-send-attack (function process uint uint int int symbol :behavior target)) ;; i suspect the uints are actually structures/basics -(define-extern target-yellow-blast (state target)) ;; unknown type (define-extern target-bonk-event-handler (function process int symbol event-message-block object :behavior target)) -(define-extern target-attack-uppercut-jump (state float float target)) ;; unknown type -(define-extern target-flop-hit-ground (state symbol target)) ;; unknown type -(define-extern target-swim-down (state target)) ;; unknown type -(define-extern target-yellow-jump-blast (state target)) ;; unknown type -(define-extern target-wheel-flip (state float float target)) ;; unknown type ;; DECOMP BEGINS diff --git a/goal_src/engine/target/target2.gc b/goal_src/engine/target/target2.gc index 26b9cd86d4..6672bde0fa 100644 --- a/goal_src/engine/target/target2.gc +++ b/goal_src/engine/target/target2.gc @@ -6,211 +6,102 @@ ;; dgos: GAME, ENGINE (declare-type first-person-hud process) -(define-extern hud-waiting (state first-person-hud)) ;; unknown type -(define-extern hud-normal (state first-person-hud)) ;; unknown type -(define-extern hud-coming-in (state first-person-hud)) ;; unknown type -(define-extern hud-going-out (state first-person-hud)) ;; unknown type -(define-extern target-final-door (state basic handle target)) ;; unknown type -(define-extern target-pole-flip-up (state object object float target)) ;; unknown type -(define-extern target-pole-flip-forward (state float float float target)) ;; unknown type -(define-extern target-pole-flip-up-jump (state float float target)) ;; unknown type -(define-extern target-pole-flip-forward-jump (state float float target)) ;; unknown type -(define-extern target-edge-grab-jump (state float float target)) ;; unknown type -(define-extern target-edge-grab-off (state target)) ;; unknown type -(define-extern target-swim-stance (state target)) ;; unknown type -(define-extern target-swim-jump (state float float target)) ;; unknown type -(define-extern target-swim-walk (state target)) ;; unknown type -(define-extern target-swim-up (state target)) ;; unknown type -(define-extern target-swim-jump-jump (state float float surface target)) ;; unknown type ;; DECOMP BEGINS (defstate target-load-wait (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('loading) - (set! (-> self state-time) (-> *display* base-frame-counter)) - #f + (case arg2 + (('loading) + (set! (-> self state-time) (-> *display* base-frame-counter)) + #f + ) + (else + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) ) - ) :exit target-exit :code (behavior () - (set! (-> self control unknown-surface00) *walk-no-turn-mods*) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 15) - (ja-channel-push! 1 30) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 112)) - ) - (set! - (-> a0-2 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 112)) - data - 0 - length - ) - -1 + (set! (-> self control unknown-surface00) *walk-no-turn-mods*) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (ja-channel-push! 1 30) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 112))) + (set! (-> a0-2 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 112)) data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 1.0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 112)) num-func-seek!) ) - ) - ) - (set! (-> a0-2 param 1) 1.0) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 112)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (TODO-RENAME-9 (-> self align)) - (TODO-RENAME-10 - (-> self align) - 4 - (the-as float 1.0) - (the-as float 1.0) - (the-as float 1.0) - ) - (send-event - *camera* - 'joystick - (-> (new 'static 'array int32 1 0) 0) - (-> (new 'static 'array int32 1 0) 0) - ) - (suspend) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 param 0) - (the float (+ (-> a0-6 frame-group data 0 length) -1)) - ) - (set! (-> a0-6 param 1) 1.0) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 90) - (suspend) - (let ((s5-0 (-> self skel root-channel 0))) - (set! (-> s5-0 param 0) (ja-aframe (the-as float 19.0) 0)) - (set! (-> s5-0 param 1) 0.05) - (joint-control-channel-group-eval! - s5-0 - (the-as art-joint-anim #f) - num-func-seek! + (until (ja-done? 0) + (TODO-RENAME-9 (-> self align)) + (TODO-RENAME-10 (-> self align) 4 (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) + (send-event *camera* 'joystick (-> (new 'static 'array int32 1 0) 0) (-> (new 'static 'array int32 1 0) 0)) + (suspend) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) (the float (+ (-> a0-6 frame-group data 0 length) -1))) + (set! (-> a0-6 param 1) 1.0) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) - (suspend) - ) - ) - (ja-channel-push! 1 90) - (let ((gp-1 (-> self skel root-channel 0))) - (set! - (-> gp-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 36)) - ) - (set! - (-> gp-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 36)) - data - 0 - length - ) - -1 + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 90) + (suspend) + (let ((s5-0 (-> self skel root-channel 0))) + (set! (-> s5-0 param 0) (ja-aframe (the-as float 19.0) 0)) + (set! (-> s5-0 param 1) 0.05) + (joint-control-channel-group-eval! s5-0 (the-as art-joint-anim #f) num-func-seek!) + ) + (suspend) + ) ) - ) - ) - (set! (-> gp-1 param 1) 1.0) - (set! (-> gp-1 frame-num) (ja-aframe (the-as float 40.0) 0)) - (joint-control-channel-group! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 36)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-13 (-> self skel root-channel 0))) - (set! - (-> a0-13 param 0) - (the float (+ (-> a0-13 frame-group data 0 length) -1)) - ) - (set! (-> a0-13 param 1) 1.0) - (joint-control-channel-group-eval! - a0-13 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-15 (-> self skel root-channel 0))) - (set! - (-> a0-15 frame-group) - (the-as art-joint-anim (-> self draw art-group data 37)) - ) - (set! - (-> a0-15 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 37)) - data - 0 - length - ) - -1 + (ja-channel-push! 1 90) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 36))) + (set! (-> gp-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 36)) data 0 length) -1)) + ) + (set! (-> gp-1 param 1) 1.0) + (set! (-> gp-1 frame-num) (ja-aframe (the-as float 40.0) 0)) + (joint-control-channel-group! gp-1 (the-as art-joint-anim (-> self draw art-group data 36)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 param 0) (the float (+ (-> a0-13 frame-group data 0 length) -1))) + (set! (-> a0-13 param 1) 1.0) + (joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 frame-group) (the-as art-joint-anim (-> self draw art-group data 37))) + (set! (-> a0-15 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 37)) data 0 length) -1)) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! a0-15 (the-as art-joint-anim (-> self draw art-group data 37)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1))) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) ) - (set! (-> a0-15 param 1) 1.0) - (set! (-> a0-15 frame-num) 0.0) - (joint-control-channel-group! - a0-15 - (the-as art-joint-anim (-> self draw art-group data 37)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 param 0) - (the float (+ (-> a0-16 frame-group data 0 length) -1)) - ) - (set! (-> a0-16 param 1) 1.0) - (joint-control-channel-group-eval! - a0-16 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (go target-stance) + (none) ) - (go target-stance) - (none) - ) :post target-no-stick-post ) @@ -218,186 +109,109 @@ (defstate target-stance-ambient (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('movie) - (go target-stance) + (case arg2 + (('movie) + (go target-stance) + ) + (else + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) ) - ) :enter (behavior () - (set! (-> self neck flex-blend) 0.0) - ((-> target-stance enter)) - (let ((v1-2 (rand-vu-int-count 4))) - (cond - ((zero? v1-2) - (set! - (-> self control unknown-uint20) - (the-as - uint - (new 'static 'spool-anim - :name "eichar-ambient-1" - :index #xe7 - :parts 1 - :command-list '() + (set! (-> self neck flex-blend) 0.0) + ((-> target-stance enter)) + (let ((v1-2 (rand-vu-int-count 4))) + (cond + ((zero? v1-2) + (set! (-> self control unknown-uint20) + (the-as uint (new 'static 'spool-anim :name "eichar-ambient-1" :index #xe7 :parts 1 :command-list '())) + ) ) - ) - ) - ) - ((= v1-2 1) - (set! - (-> self control unknown-uint20) - (the-as - uint - (new 'static 'spool-anim - :name "eichar-ambient-2" - :index #xe8 - :parts 1 - :command-list '() + ((= v1-2 1) + (set! (-> self control unknown-uint20) + (the-as uint (new 'static 'spool-anim :name "eichar-ambient-2" :index #xe8 :parts 1 :command-list '())) + ) ) - ) - ) - ) - ((= v1-2 2) - (set! - (-> self control unknown-uint20) - (the-as - uint - (new 'static 'spool-anim - :name "eichar-ambient-3" - :index #xe9 - :parts 1 - :command-list '() + ((= v1-2 2) + (set! (-> self control unknown-uint20) + (the-as uint (new 'static 'spool-anim :name "eichar-ambient-3" :index #xe9 :parts 1 :command-list '())) + ) ) + (else + (set! (-> self control unknown-uint20) + (the-as uint (new 'static 'spool-anim :name "eichar-ambient-4" :index #xea :parts 1 :command-list '())) + ) + ) ) - ) ) - (else - (set! - (-> self control unknown-uint20) - (the-as - uint - (new 'static 'spool-anim - :name "eichar-ambient-4" - :index #xea - :parts 1 - :command-list '() - ) - ) - ) - ) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (none) ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) :exit (behavior () - (let ((a0-0 (-> self control unknown-spoolanim00))) - (when a0-0 - (ja-abort-spooled-anim a0-0 (the-as art-joint-anim #f) -1) - (ja-channel-set! 1) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) + (let ((a0-0 (-> self control unknown-spoolanim00))) + (when a0-0 + (ja-abort-spooled-anim a0-0 (the-as art-joint-anim #f) -1) + (ja-channel-set! 1) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + ) ) - ) + ((-> target-stance exit)) + (target-exit) + (none) ) - ((-> target-stance exit)) - (target-exit) - (none) - ) :trans (behavior () - (spool-push - *art-control* - (-> self control unknown-spoolanim00 name) - 0 - self - (the-as float -99.0) + (spool-push *art-control* (-> self control unknown-spoolanim00 name) 0 self (the-as float -99.0)) + (if (or + (logtest? + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) + (pad-buttons start l1 r1 triangle circle x square) + ) + *progress-process* + ) + (go target-stance) + ) + (none) ) - (if - (or - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-abs - 0 - ) - (pad-buttons start l1 r1 triangle circle x square) - ) - *progress-process* - ) - (go target-stance) - ) - (none) - ) :code (behavior () - (while - (let - ((v1-13 - (file-status *art-control* (-> self control unknown-spoolanim00 name) 0) - ) + (while (let ((v1-13 (file-status *art-control* (-> self control unknown-spoolanim00 name) 0))) + (not (or (= v1-13 'locked) (= v1-13 'active))) + ) + (suspend) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 param 0) 1.0) + (joint-control-channel-group-eval! a0-0 (the-as art-joint-anim #f) num-func-loop!) + ) + (let ((a0-1 (-> self skel root-channel 1))) + (set! (-> a0-1 param 0) 0.0) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-chan) + ) + (let ((a0-2 (-> self skel root-channel 2))) + (set! (-> a0-2 param 0) 0.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-chan) + ) ) - (not (or (= v1-13 'locked) (= v1-13 'active))) - ) - (suspend) - (let ((a0-0 (-> self skel root-channel 0))) - (set! (-> a0-0 param 0) 1.0) - (joint-control-channel-group-eval! - a0-0 - (the-as art-joint-anim #f) - num-func-loop! + (ja-play-spooled-anim + (-> self control unknown-spoolanim00) + (the-as art-joint-anim (-> self draw art-group data 5)) + (the-as art-joint-anim (-> self draw art-group data 5)) + (the-as (function process-drawable symbol) (lambda () (!= (-> *cpad-list* cpads 0 stick0-speed) 0.0))) ) - ) - (let ((a0-1 (-> self skel root-channel 1))) - (set! (-> a0-1 param 0) 0.0) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-chan - ) - ) - (let ((a0-2 (-> self skel root-channel 2))) - (set! (-> a0-2 param 0) 0.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-chan - ) - ) + (set! (-> self control unknown-uint20) (the-as uint #f)) + (go target-stance) + (none) ) - (ja-play-spooled-anim - (-> self control unknown-spoolanim00) - (the-as art-joint-anim (-> self draw art-group data 5)) - (the-as art-joint-anim (-> self draw art-group data 5)) - (the-as (function process-drawable symbol) (lambda () - (!= - (-> - *cpad-list* - cpads - 0 - stick0-speed - ) - 0.0 - ) - ) - ) - ) - (set! (-> self control unknown-uint20) (the-as uint #f)) - (go target-stance) - (none) - ) :post (the-as (function none :behavior target) target-post) ) @@ -418,6 +232,12 @@ (:methods (dumb-15 (_type_) none 14) ) + (:states + hud-coming-in + hud-going-out + hud-normal + hud-waiting + ) ) @@ -425,14 +245,12 @@ (defmethod deactivate first-person-hud ((obj first-person-hud)) (dotimes (s5-0 (-> obj nb-of-particles)) - (kill-and-free-particles (-> obj particles s5-0 part)) - (set! (-> obj particles s5-0 part matrix) -1) - ) + (kill-and-free-particles (-> obj particles s5-0 part)) + (set! (-> obj particles s5-0 part matrix) -1) + ) (enable-hud) (set! (-> *target* fp-hud) (the-as handle #f)) - ((the-as (function process none) (find-parent-method first-person-hud 10)) - obj - ) + ((the-as (function process none) (find-parent-method first-person-hud 10)) obj) (none) ) @@ -442,60 +260,51 @@ (set! (-> self max-nb-of-particles) 3) (set! (-> self in-out-position) 4096) (when (< (-> self nb-of-particles) (-> self max-nb-of-particles)) - (let ((gp-0 (-> self nb-of-particles))) - (set! (-> self particles gp-0) (new 'static 'hud-particle)) - (set! - (-> self particles gp-0 part) - (create-launch-control (-> *part-group-id-table* 611) self) - ) - (set! (-> self particles gp-0 init-pos x) -320.0) - (set! (-> self particles gp-0 init-pos y) 254.0) - (set! (-> self particles gp-0 init-pos z) 15.0) - (set! (-> self particles gp-0 part matrix) -1) + (let ((gp-0 (-> self nb-of-particles))) + (set! (-> self particles gp-0) (new 'static 'hud-particle)) + (set! (-> self particles gp-0 part) (create-launch-control (-> *part-group-id-table* 611) self)) + (set! (-> self particles gp-0 init-pos x) -320.0) + (set! (-> self particles gp-0 init-pos y) 254.0) + (set! (-> self particles gp-0 init-pos z) 15.0) + (set! (-> self particles gp-0 part matrix) -1) + ) + (+! (-> self nb-of-particles) 1) ) - (+! (-> self nb-of-particles) 1) - ) (when (< (-> self nb-of-particles) (-> self max-nb-of-particles)) - (let ((gp-1 (-> self nb-of-particles))) - (set! (-> self particles gp-1) (new 'static 'hud-particle)) - (set! - (-> self particles gp-1 part) - (create-launch-control (-> *part-group-id-table* 612) self) - ) - (set! (-> self particles gp-1 init-pos x) -320.0) - (set! (-> self particles gp-1 init-pos y) 192.0) - (set! (-> self particles gp-1 init-pos z) 15.0) - (set! (-> self particles gp-1 part matrix) -1) + (let ((gp-1 (-> self nb-of-particles))) + (set! (-> self particles gp-1) (new 'static 'hud-particle)) + (set! (-> self particles gp-1 part) (create-launch-control (-> *part-group-id-table* 612) self)) + (set! (-> self particles gp-1 init-pos x) -320.0) + (set! (-> self particles gp-1 init-pos y) 192.0) + (set! (-> self particles gp-1 init-pos z) 15.0) + (set! (-> self particles gp-1 part matrix) -1) + ) + (+! (-> self nb-of-particles) 1) ) - (+! (-> self nb-of-particles) 1) - ) (when (< (-> self nb-of-particles) (-> self max-nb-of-particles)) - (let ((gp-2 (-> self nb-of-particles))) - (set! (-> self particles gp-2) (new 'static 'hud-particle)) - (set! - (-> self particles gp-2 part) - (create-launch-control (-> *part-group-id-table* 613) self) - ) - (set! (-> self particles gp-2 init-pos x) 256.0) - (set! (-> self particles gp-2 init-pos y) 244.0) - (set! (-> self particles gp-2 init-pos z) 15.0) - (set! (-> self particles gp-2 part matrix) -1) + (let ((gp-2 (-> self nb-of-particles))) + (set! (-> self particles gp-2) (new 'static 'hud-particle)) + (set! (-> self particles gp-2 part) (create-launch-control (-> *part-group-id-table* 613) self)) + (set! (-> self particles gp-2 init-pos x) 256.0) + (set! (-> self particles gp-2 init-pos y) 244.0) + (set! (-> self particles gp-2 init-pos z) 15.0) + (set! (-> self particles gp-2 part matrix) -1) + ) + (+! (-> self nb-of-particles) 1) ) - (+! (-> self nb-of-particles) 1) - ) - (case (get-aspect-ratio) - (('aspect4x3) + (case (get-aspect-ratio) + (('aspect4x3) (set! (-> self sides-x-scale) 3.5) (set! (-> self sides-y-scale) 13.0) (set! (-> self x-offset) 0) 0 ) - (('aspect16x9) - (set! (-> self sides-x-scale) 2.8) - (set! (-> self sides-y-scale) 9.75) - (set! (-> self x-offset) 12) + (('aspect16x9) + (set! (-> self sides-x-scale) 2.8) + (set! (-> self sides-y-scale) 9.75) + (set! (-> self x-offset) 12) + ) ) - ) (set! (-> self event-hook) (-> hud-waiting event)) (go hud-waiting) (none) @@ -503,83 +312,65 @@ (defmethod relocate first-person-hud ((obj first-person-hud) (arg0 int)) (dotimes (v1-0 (-> obj nb-of-particles)) - (when (-> obj particles v1-0 part) - (if (nonzero? (-> obj particles v1-0 part)) - (&+! (-> obj particles v1-0 part) arg0) - ) + (when (-> obj particles v1-0 part) + (if (nonzero? (-> obj particles v1-0 part)) + (&+! (-> obj particles v1-0 part) arg0) + ) + ) ) - ) (the-as first-person-hud ((method-of-type process relocate) obj arg0)) ) (defmethod dumb-15 first-person-hud ((obj first-person-hud)) (dotimes (s5-0 (-> obj nb-of-particles)) - (set! - (-> obj particles s5-0 pos x) - (+ -256.0 (-> obj particles s5-0 init-pos x)) + (set! (-> obj particles s5-0 pos x) (+ -256.0 (-> obj particles s5-0 init-pos x))) + (set! (-> obj particles s5-0 pos y) + (* 0.5 (- (* (-> obj particles s5-0 init-pos y) (-> *video-parms* relative-y-scale)) + (the float (-> *video-parms* screen-sy)) + ) + ) + ) + (set! (-> obj particles s5-0 pos z) (-> obj particles s5-0 init-pos z)) + (if (> (-> obj particles s5-0 part matrix) 0) + (set-vector! + (sprite-get-user-hvdf (-> obj particles s5-0 part matrix)) + (the float (+ (the int (-> obj particles s5-0 pos x)) 2048)) + (the float (+ (the int (-> obj particles s5-0 pos y)) 2048)) + (- (-> *math-camera* hvdf-off z) (* 1024.0 (-> obj particles s5-0 pos z))) + (-> *math-camera* hvdf-off w) + ) + ) + (spawn (-> obj particles s5-0 part) *null-vector*) ) - (set! - (-> obj particles s5-0 pos y) - (* - 0.5 - (- - (* (-> obj particles s5-0 init-pos y) (-> *video-parms* relative-y-scale)) - (the float (-> *video-parms* screen-sy)) - ) - ) - ) - (set! (-> obj particles s5-0 pos z) (-> obj particles s5-0 init-pos z)) - (if (> (-> obj particles s5-0 part matrix) 0) - (set-vector! - (sprite-get-user-hvdf (-> obj particles s5-0 part matrix)) - (the float (+ (the int (-> obj particles s5-0 pos x)) 2048)) - (the float (+ (the int (-> obj particles s5-0 pos y)) 2048)) - (- (-> *math-camera* hvdf-off z) (* 1024.0 (-> obj particles s5-0 pos z))) - (-> *math-camera* hvdf-off w) - ) - ) - (spawn (-> obj particles s5-0 part) *null-vector*) - ) 0 (none) ) (defstate hud-waiting (first-person-hud) :event - (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('go-away) - (go hud-going-out) - ) - ) - ) + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 + (('go-away) + (go hud-going-out) + ) + ) + ) :enter - (behavior () - (disable-hud (the-as int (-> *hud-parts* power))) - (none) - ) + (behavior () (disable-hud (the-as int (-> *hud-parts* power))) (none)) :code (behavior () - (while #t - (dotimes (gp-0 (-> self nb-of-particles)) - (if (= (-> self particles gp-0 part matrix) -1) - (set! (-> self particles gp-0 part matrix) (sprite-allocate-user-hvdf)) + (while #t + (dotimes (gp-0 (-> self nb-of-particles)) + (if (= (-> self particles gp-0 part matrix) -1) + (set! (-> self particles gp-0 part matrix) (sprite-allocate-user-hvdf)) + ) + ) + (set-setting! *setting-control* self 'common-page 'set (the-as float (-> (new 'static 'array int32 1 0) 0)) 1) + (suspend) + (go hud-coming-in) + (suspend) ) - ) - (set-setting! - *setting-control* - self - 'common-page - 'set - (the-as float (-> (new 'static 'array int32 1 0) 0)) - 1 - ) - (suspend) - (go hud-coming-in) - (suspend) + (none) ) - (none) - ) ) (defstate hud-coming-in (first-person-hud) @@ -587,27 +378,19 @@ (-> hud-waiting event) :code (behavior () - (while #t - (set! - (-> self in-out-position) - (seekl - (-> self in-out-position) - 0 - (the int (* 350.0 (-> *display* time-adjust-ratio))) + (while #t + (set! (-> self in-out-position) + (seekl (-> self in-out-position) 0 (the int (* 350.0 (-> *display* time-adjust-ratio)))) + ) + (if (zero? (-> self in-out-position)) + (go hud-normal) + ) + (suspend) ) - ) - (if (zero? (-> self in-out-position)) - (go hud-normal) - ) - (suspend) + (none) ) - (none) - ) :post - (behavior () - (dumb-15 self) - (none) - ) + (behavior () (dumb-15 self) (none)) ) (defstate hud-normal (first-person-hud) @@ -615,176 +398,104 @@ (-> hud-waiting event) :code (behavior () - (while #t - (if - (or - (not *progress-process*) - (= (-> *progress-process* 0 next-state name) 'progress-going-out) - (= (-> *progress-process* 0 next-state name) 'progress-gone) + (while #t + (if (or + (not *progress-process*) + (= (-> *progress-process* 0 next-state name) 'progress-going-out) + (= (-> *progress-process* 0 next-state name) 'progress-gone) + ) + (set! (-> self in-out-position) + (seekl (-> self in-out-position) 0 (the int (* 150.0 (-> *display* time-adjust-ratio)))) + ) + (set! (-> self in-out-position) + (seekl (-> self in-out-position) 4096 (the int (* 200.0 (-> *display* time-adjust-ratio)))) + ) + ) + (suspend) ) - (set! - (-> self in-out-position) - (seekl - (-> self in-out-position) - 0 - (the int (* 150.0 (-> *display* time-adjust-ratio))) - ) - ) - (set! - (-> self in-out-position) - (seekl - (-> self in-out-position) - 4096 - (the int (* 200.0 (-> *display* time-adjust-ratio))) - ) - ) - ) - (suspend) + (none) ) - (none) - ) ) (defstate hud-going-out (first-person-hud) :code (behavior () - (while #t - (set! - (-> self in-out-position) - (seekl - (-> self in-out-position) - 4096 - (the int (* 350.0 (-> *display* time-adjust-ratio))) + (while #t + (set! (-> self in-out-position) + (seekl (-> self in-out-position) 4096 (the int (* 350.0 (-> *display* time-adjust-ratio)))) + ) + (if (= (-> self in-out-position) 4096) + (deactivate self) + ) + (suspend) ) - ) - (if (= (-> self in-out-position) 4096) - (deactivate self) - ) - (suspend) + (none) ) - (none) - ) :post - (behavior () - (dumb-15 self) - (none) - ) + (behavior () (dumb-15 self) (none)) ) -(defun - part-first-person-hud-left-func - ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) +(defun part-first-person-hud-left-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let ((s5-0 (handle->process (-> *target* fp-hud)))) - (when s5-0 - (let - ((f30-0 - (* - 0.00024414062 - (the float (-> (the-as first-person-hud s5-0) in-out-position)) + (when s5-0 + (let ((f30-0 (* 0.00024414062 (the float (-> (the-as first-person-hud s5-0) in-out-position))))) + (if (or (-> *setting-control* current movie) (movie?)) + (set! f30-0 1.0) + ) + (if (< 0.25 f30-0) + (set! f30-0 1.0) + (* 4.0 f30-0) + ) + (set! (-> (the-as first-person-hud s5-0) particles 0 init-pos x) + (the float (- 59 (-> (the-as first-person-hud s5-0) x-offset))) + ) + (set! (-> arg2 vector 0 w) (* 4096.0 (+ (-> (the-as first-person-hud s5-0) sides-x-scale) (* 10.0 f30-0)))) + (set! (-> arg2 vector 1 w) (* 4096.0 (+ (-> (the-as first-person-hud s5-0) sides-y-scale) (* 10.0 f30-0)))) ) - ) ) - (if (or (-> *setting-control* current movie) (movie?)) - (set! f30-0 1.0) - ) - (if (< 0.25 f30-0) - (set! f30-0 1.0) - (* 4.0 f30-0) - ) - (set! - (-> (the-as first-person-hud s5-0) particles 0 init-pos x) - (the float (- 59 (-> (the-as first-person-hud s5-0) x-offset))) - ) - (set! - (-> arg2 vector 0 w) - (* - 4096.0 - (+ (-> (the-as first-person-hud s5-0) sides-x-scale) (* 10.0 f30-0)) - ) - ) - (set! - (-> arg2 vector 1 w) - (* - 4096.0 - (+ (-> (the-as first-person-hud s5-0) sides-y-scale) (* 10.0 f30-0)) - ) - ) - ) ) - ) 0 (none) ) -(defun - part-first-person-hud-right-func - ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) +(defun part-first-person-hud-right-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let ((s5-0 (handle->process (-> *target* fp-hud)))) - (when s5-0 - (let - ((f30-0 - (* - 0.00024414062 - (the float (-> (the-as first-person-hud s5-0) in-out-position)) + (when s5-0 + (let ((f30-0 (* 0.00024414062 (the float (-> (the-as first-person-hud s5-0) in-out-position))))) + (if (or (-> *setting-control* current movie) (movie?)) + (set! f30-0 1.0) + ) + (if (< 0.25 f30-0) + (set! f30-0 1.0) + (* 4.0 f30-0) + ) + (set! (-> (the-as first-person-hud s5-0) particles 1 init-pos x) + (the float (+ (-> (the-as first-person-hud s5-0) x-offset) 452)) + ) + (set! (-> arg2 vector 0 w) (* 4096.0 (+ (-> (the-as first-person-hud s5-0) sides-x-scale) (* 10.0 f30-0)))) + (set! (-> arg2 vector 1 w) (* 4096.0 (+ (-> (the-as first-person-hud s5-0) sides-y-scale) (* 10.0 f30-0)))) ) - ) ) - (if (or (-> *setting-control* current movie) (movie?)) - (set! f30-0 1.0) - ) - (if (< 0.25 f30-0) - (set! f30-0 1.0) - (* 4.0 f30-0) - ) - (set! - (-> (the-as first-person-hud s5-0) particles 1 init-pos x) - (the float (+ (-> (the-as first-person-hud s5-0) x-offset) 452)) - ) - (set! - (-> arg2 vector 0 w) - (* - 4096.0 - (+ (-> (the-as first-person-hud s5-0) sides-x-scale) (* 10.0 f30-0)) - ) - ) - (set! - (-> arg2 vector 1 w) - (* - 4096.0 - (+ (-> (the-as first-person-hud s5-0) sides-y-scale) (* 10.0 f30-0)) - ) - ) - ) ) - ) 0 (none) ) -(defun - part-first-person-hud-selector-func - ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) +(defun part-first-person-hud-selector-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let ((v1-2 (handle->process (-> *target* fp-hud)))) - (when v1-2 - (let - ((f30-0 - (* - 0.00024414062 - (the float (-> (the-as first-person-hud v1-2) in-out-position)) + (when v1-2 + (let ((f30-0 (* 0.00024414062 (the float (-> (the-as first-person-hud v1-2) in-out-position))))) + (if (or (-> *setting-control* current movie) (movie?)) + (set! f30-0 1.0) + ) + (if (< 0.5 f30-0) + (set! f30-0 1.0) + (* 2.0 f30-0) + ) + (set! (-> arg2 vector 2 w) (- 64.0 (* 64.0 f30-0))) ) - ) ) - (if (or (-> *setting-control* current movie) (movie?)) - (set! f30-0 1.0) - ) - (if (< 0.5 f30-0) - (set! f30-0 1.0) - (* 2.0 f30-0) - ) - (set! (-> arg2 vector 2 w) (- 64.0 (* 64.0 f30-0))) - ) ) - ) 0 (none) ) @@ -802,25 +513,25 @@ (-> target-stance trans) :code (behavior () - (while (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 0) - (set! (-> a1-0 message) 'dist-from-interp-src) - (and - (< (send-event-function *camera* a1-0) 4915.2) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 21) - (zero? (ja-group-size)) - ) - ) - (suspend) + (while (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 0) + (set! (-> a1-0 message) 'dist-from-interp-src) + (and + (< (send-event-function *camera* a1-0) 4915.2) + (< (- (-> *display* base-frame-counter) (-> self state-time)) 21) + (zero? (ja-group-size)) + ) + ) + (suspend) + ) + (let ((v1-8 target-stance)) + (set! (-> self next-state) v1-8) + (set! (-> self state) v1-8) + ) + ((the-as (function none :behavior target) (-> target-stance code))) + (none) ) - (let ((v1-8 target-stance)) - (set! (-> self next-state) v1-8) - (set! (-> self state) v1-8) - ) - ((the-as (function none :behavior target) (-> target-stance code))) - (none) - ) :post (the-as (function none :behavior target) target-post) ) @@ -828,275 +539,191 @@ (defstate target-look-around (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (cond - ((and (= arg2 'query) (= (-> arg3 param 0) 'mode)) - (-> self state name) - ) - ((let ((v1-4 arg2)) - (= v1-4 'end-mode) + (cond + ((and (= arg2 'query) (= (-> arg3 param 0) 'mode)) + (-> self state name) + ) + ((let ((v1-4 arg2)) + (= v1-4 'end-mode) + ) + (go target-stance-look-around) + ) + ((-> self control unknown-symbol30) + (target-dangerous-event-handler arg0 arg1 arg2 arg3) + ) + (else + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - (go target-stance-look-around) - ) - ((-> self control unknown-symbol30) - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) ) - ) :enter (behavior () - (set! (-> self cam-user-mode) 'look-around) - (set! (-> self control unknown-surface00) *duck-mods*) - (logior! (-> self state-flags) 512) - (send-event *camera* 'blend-from-as-fixed) - (send-event *camera* 'no-intro) - (camera-change-to (the-as string 'cam-eye) 60 #f) - (let ((a0-5 (handle->process (-> self fp-hud)))) - (if a0-5 - (deactivate a0-5) - ) - ) - (let ((gp-0 (get-process *default-dead-pool* first-person-hud #x4000))) - (set! (-> self fp-hud) (ppointer->handle (when gp-0 - (let - ((t9-5 - (method-of-type - first-person-hud - activate - ) - ) - ) - (t9-5 - (the-as first-person-hud gp-0) - *dproc* - 'first-person-hud - (&+ *fp-hud-stack* #x3800) - ) - ) - (run-now-in-process - gp-0 - first-person-hud-init-by-other - ) - (-> gp-0 ppointer) - ) - ) - ) - ) - (none) - ) - :exit - (behavior () - (let ((a0-1 (handle->process (-> self fp-hud)))) - (if a0-1 - (send-event a0-1 'go-away) - ) - ) - (set! (-> self cam-user-mode) 'normal) - (target-exit) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) self) - (set! (-> a1-2 num-params) 1) - (set! (-> a1-2 message) 'query-state) - (set! (-> a1-2 param 0) (the-as uint cam-eye)) - (when (send-event-function *camera* a1-2) - (send-event *camera* 'no-intro) - (send-event *camera* 'force-blend 60) - (send-event *camera* 'clear-entity) - (camera-change-to (the-as string 'base) 60 #f) - ) - ) - (none) - ) - :trans - (behavior () - (local-vars (sv-48 vector)) - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) + (set! (-> self cam-user-mode) 'look-around) + (set! (-> self control unknown-surface00) *duck-mods*) + (logior! (-> self state-flags) 512) + (send-event *camera* 'blend-from-as-fixed) + (send-event *camera* 'no-intro) + (camera-change-to (the-as string 'cam-eye) 60 #f) + (let ((a0-5 (handle->process (-> self fp-hud)))) + (if a0-5 + (deactivate a0-5) ) - (init-vf0-vector) - (when - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 - ) - ) - (pad-buttons r2 circle square) - ) - (and - (= (-> self fact-info-target eco-type) 1) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (>= - (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) - 150 - ) - (not *pause-lock*) ) - (let - ((gp-1 - (vector-float*! - (new-stack-vector0) - (-> *math-camera* inv-camera-rot vector 2) - (the-as float (-> *TARGET-bank* yellow-projectile-speed)) - ) - ) - (s5-1 - (vector-float*! - (new-stack-vector0) - (-> *math-camera* inv-camera-rot vector 2) - 8192.0 - ) - ) - ) - (vector+float*! - s5-1 - s5-1 - (-> *math-camera* inv-camera-rot vector 1) - (the-as float -2048.0) - ) - (let ((s4-0 (get-process *default-dead-pool* projectile-yellow #x4000))) - (when s4-0 - (let ((t9-2 (method-of-type projectile-yellow activate))) - (t9-2 - (the-as projectile-yellow s4-0) - self - 'projectile-yellow - (the-as pointer #x70004000) - ) - ) - (let ((s3-0 run-function-in-process) - (s2-0 s4-0) - (s1-0 projectile-init-by-other) - (s0-0 (-> self entity)) + (let ((gp-0 (get-process *default-dead-pool* first-person-hud #x4000))) + (set! (-> self fp-hud) + (ppointer->handle + (when gp-0 + (let ((t9-5 (method-of-type first-person-hud activate))) + (t9-5 (the-as first-person-hud gp-0) *dproc* 'first-person-hud (&+ *fp-hud-stack* #x3800)) + ) + (run-now-in-process gp-0 first-person-hud-init-by-other) + (-> gp-0 ppointer) + ) ) - (set! sv-48 s5-1) - (let ((v0-3 (camera-pos))) - (.mov.vf vf6 vf0 :mask #b1000) - (.lvf vf4 (&-> v0-3 quad)) - ) - (.lvf vf5 (&-> s5-1 quad)) - (.add.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-48 quad) vf6) - (let - ((t1-0 - (if - (>= - (-> self fact-info-target eco-level) - (-> *FACT-bank* eco-level-max) - ) - 56 - 40 - ) ) - (t2-0 #f) - ) - ((the-as - (function object object object object object object object none) - s3-0 - ) - s2-0 - s1-0 - s0-0 - sv-48 - gp-1 - t1-0 - t2-0 - ) - ) - ) - (-> s4-0 ppointer) - ) - ) ) - (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) - ) - (when - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (pad-buttons triangle) - ) - (logclear! - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-abs - 0 - ) - (pad-buttons triangle) - ) - (logclear! - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (pad-buttons triangle) - ) - (set! (-> self cam-user-mode) 'normal) - ) (none) ) - ) + :exit + (behavior () + (let ((a0-1 (handle->process (-> self fp-hud)))) + (if a0-1 + (send-event a0-1 'go-away) + ) + ) + (set! (-> self cam-user-mode) 'normal) + (target-exit) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 1) + (set! (-> a1-2 message) 'query-state) + (set! (-> a1-2 param 0) (the-as uint cam-eye)) + (when (send-event-function *camera* a1-2) + (send-event *camera* 'no-intro) + (send-event *camera* 'force-blend 60) + (send-event *camera* 'clear-entity) + (camera-change-to (the-as string 'base) 60 #f) + ) + ) + (none) + ) + :trans + (behavior () + (local-vars (sv-48 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (when (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons r2 circle square) + ) + (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 150) + (not *pause-lock*) + ) + (let ((gp-1 (vector-float*! + (new-stack-vector0) + (-> *math-camera* inv-camera-rot vector 2) + (the-as float (-> *TARGET-bank* yellow-projectile-speed)) + ) + ) + (s5-1 (vector-float*! (new-stack-vector0) (-> *math-camera* inv-camera-rot vector 2) 8192.0)) + ) + (vector+float*! s5-1 s5-1 (-> *math-camera* inv-camera-rot vector 1) (the-as float -2048.0)) + (let ((s4-0 (get-process *default-dead-pool* projectile-yellow #x4000))) + (when s4-0 + (let ((t9-2 (method-of-type projectile-yellow activate))) + (t9-2 (the-as projectile-yellow s4-0) self 'projectile-yellow (the-as pointer #x70004000)) + ) + (let ((s3-0 run-function-in-process) + (s2-0 s4-0) + (s1-0 projectile-init-by-other) + (s0-0 (-> self entity)) + ) + (set! sv-48 s5-1) + (let ((v0-3 (camera-pos))) + (.mov.vf vf6 vf0 :mask #b1000) + (.lvf vf4 (&-> v0-3 quad)) + ) + (.lvf vf5 (&-> s5-1 quad)) + (.add.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-48 quad) vf6) + (let ((t1-0 (if (>= (-> self fact-info-target eco-level) (-> *FACT-bank* eco-level-max)) + 56 + 40 + ) + ) + (t2-0 #f) + ) + ((the-as (function object object object object object object object none) s3-0) + s2-0 + s1-0 + s0-0 + sv-48 + gp-1 + t1-0 + t2-0 + ) + ) + ) + (-> s4-0 ppointer) + ) + ) + ) + (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) + ) + (when (logtest? + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (pad-buttons triangle) + ) + (logclear! + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) + (pad-buttons triangle) + ) + (logclear! + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (pad-buttons triangle) + ) + (set! (-> self cam-user-mode) 'normal) + ) + (none) + ) + ) :code (behavior () - (while (let ((f30-0 8192.0) - (a1-0 (new 'stack-no-clear 'event-message-block)) - ) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 0) - (set! (-> a1-0 message) 'dist-from-interp-dest) - (< f30-0 (send-event-function *camera* a1-0)) - ) - (if (!= (-> self cam-user-mode) 'look-around) - (go target-stance) - ) - (suspend) + (while (let ((f30-0 8192.0) + (a1-0 (new 'stack-no-clear 'event-message-block)) + ) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 0) + (set! (-> a1-0 message) 'dist-from-interp-dest) + (< f30-0 (send-event-function *camera* a1-0)) + ) + (if (!= (-> self cam-user-mode) 'look-around) + (go target-stance) + ) + (suspend) + ) + (ja-channel-set! 0) + (set! (-> self control transv quad) (the-as uint128 0)) + (while #t + (if (!= (-> self cam-user-mode) 'look-around) + (go target-stance-look-around) + ) + (suspend) + ) + (none) ) - (ja-channel-set! 0) - (set! (-> self control transv quad) (the-as uint128 0)) - (while #t - (if (!= (-> self cam-user-mode) 'look-around) - (go target-stance-look-around) - ) - (suspend) - ) - (none) - ) :post target-no-move-post ) @@ -1104,220 +731,150 @@ (defstate target-billy-game (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (cond - ((and (= arg2 'query) (= (-> arg3 param 0) 'mode)) - (-> self state name) - ) - ((let ((v1-4 arg2)) - (= v1-4 'end-mode) + (cond + ((and (= arg2 'query) (= (-> arg3 param 0) 'mode)) + (-> self state name) + ) + ((let ((v1-4 arg2)) + (= v1-4 'end-mode) + ) + (go target-stance) + ) + (else + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - (go target-stance) - ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) ) - ) :enter (behavior () - (set! (-> self neck flex-blend) 0.0) - (set! (-> self control unknown-surface00) *duck-mods*) - (logior! (-> self state-flags) 512) - (send-event *camera* 'blend-from-as-fixed) - (send-event *camera* 'clear-entity) - (send-event *camera* 'no-intro) - (camera-change-to (the-as string 'cam-billy) 0 #f) - (let ((a0-6 (handle->process (-> self fp-hud)))) - (if a0-6 - (deactivate a0-6) - ) - ) - (let ((gp-0 (get-process *default-dead-pool* first-person-hud #x4000))) - (set! (-> self fp-hud) (ppointer->handle (when gp-0 - (let - ((t9-6 - (method-of-type - first-person-hud - activate - ) - ) - ) - (t9-6 - (the-as first-person-hud gp-0) - *dproc* - 'first-person-hud - (&+ *fp-hud-stack* #x3800) - ) - ) - (run-now-in-process - gp-0 - first-person-hud-init-by-other - ) - (-> gp-0 ppointer) - ) - ) - ) - ) - (none) - ) - :exit - (behavior () - (let ((a0-1 (handle->process (-> self fp-hud)))) - (if a0-1 - (send-event a0-1 'go-away) - ) - ) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) self) - (set! (-> a1-2 num-params) 1) - (set! (-> a1-2 message) 'query-state) - (set! (-> a1-2 param 0) (the-as uint cam-billy)) - (when (send-event-function *camera* a1-2) - (send-event *camera* 'no-intro) - (send-event *camera* 'force-blend 0) - (camera-change-to (the-as string 'base) 0 #f) - ) - ) - (target-exit) - (none) - ) - :trans - (behavior () - (local-vars (sv-48 vector)) - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) + (set! (-> self neck flex-blend) 0.0) + (set! (-> self control unknown-surface00) *duck-mods*) + (logior! (-> self state-flags) 512) + (send-event *camera* 'blend-from-as-fixed) + (send-event *camera* 'clear-entity) + (send-event *camera* 'no-intro) + (camera-change-to (the-as string 'cam-billy) 0 #f) + (let ((a0-6 (handle->process (-> self fp-hud)))) + (if a0-6 + (deactivate a0-6) ) - (init-vf0-vector) - (when - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 - ) - ) - (pad-buttons r2 circle square) - ) - (>= - (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) - 135 - ) - (and - (= (-> self fact-info-target eco-type) 1) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (not *pause-lock*) ) - (let - ((gp-1 - (vector-float*! - (new-stack-vector0) - (-> *math-camera* inv-camera-rot vector 2) - (the-as float (-> *TARGET-bank* yellow-projectile-speed)) - ) - ) - (s5-1 - (vector-float*! - (new-stack-vector0) - (-> *math-camera* inv-camera-rot vector 2) - 8192.0 - ) - ) - ) - (vector+float*! - s5-1 - s5-1 - (-> *math-camera* inv-camera-rot vector 1) - (the-as float -2048.0) - ) - (let ((s4-0 (get-process *default-dead-pool* projectile-yellow #x4000))) - (when s4-0 - (let ((t9-2 (method-of-type projectile-yellow activate))) - (t9-2 - (the-as projectile-yellow s4-0) - self - 'projectile-yellow - (the-as pointer #x70004000) - ) - ) - (let ((s3-0 run-function-in-process) - (s2-0 s4-0) - (s1-0 projectile-init-by-other) - (s0-0 (-> self entity)) + (let ((gp-0 (get-process *default-dead-pool* first-person-hud #x4000))) + (set! (-> self fp-hud) + (ppointer->handle + (when gp-0 + (let ((t9-6 (method-of-type first-person-hud activate))) + (t9-6 (the-as first-person-hud gp-0) *dproc* 'first-person-hud (&+ *fp-hud-stack* #x3800)) + ) + (run-now-in-process gp-0 first-person-hud-init-by-other) + (-> gp-0 ppointer) + ) ) - (set! sv-48 s5-1) - (let ((v0-4 (camera-pos))) - (.mov.vf vf6 vf0 :mask #b1000) - (.lvf vf4 (&-> v0-4 quad)) - ) - (.lvf vf5 (&-> s5-1 quad)) - (.add.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-48 quad) vf6) - (let - ((t1-0 - (if - (>= - (-> self fact-info-target eco-level) - (-> *FACT-bank* eco-level-max) - ) - 120 - 104 - ) ) - (t2-0 #f) - ) - ((the-as - (function object object object object object object object none) - s3-0 - ) - s2-0 - s1-0 - s0-0 - sv-48 - gp-1 - t1-0 - t2-0 - ) - ) - ) - (-> s4-0 ppointer) - ) - ) ) - (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) - ) (none) ) - ) - :code + :exit (behavior () - (ja-channel-set! 0) - (set! (-> self control transv quad) (the-as uint128 0)) - (anim-loop) - (none) - ) + (let ((a0-1 (handle->process (-> self fp-hud)))) + (if a0-1 + (send-event a0-1 'go-away) + ) + ) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 1) + (set! (-> a1-2 message) 'query-state) + (set! (-> a1-2 param 0) (the-as uint cam-billy)) + (when (send-event-function *camera* a1-2) + (send-event *camera* 'no-intro) + (send-event *camera* 'force-blend 0) + (camera-change-to (the-as string 'base) 0 #f) + ) + ) + (target-exit) + (none) + ) + :trans + (behavior () + (local-vars (sv-48 vector)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (when (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons r2 circle square) + ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 135) + (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) + (not *pause-lock*) + ) + (let ((gp-1 (vector-float*! + (new-stack-vector0) + (-> *math-camera* inv-camera-rot vector 2) + (the-as float (-> *TARGET-bank* yellow-projectile-speed)) + ) + ) + (s5-1 (vector-float*! (new-stack-vector0) (-> *math-camera* inv-camera-rot vector 2) 8192.0)) + ) + (vector+float*! s5-1 s5-1 (-> *math-camera* inv-camera-rot vector 1) (the-as float -2048.0)) + (let ((s4-0 (get-process *default-dead-pool* projectile-yellow #x4000))) + (when s4-0 + (let ((t9-2 (method-of-type projectile-yellow activate))) + (t9-2 (the-as projectile-yellow s4-0) self 'projectile-yellow (the-as pointer #x70004000)) + ) + (let ((s3-0 run-function-in-process) + (s2-0 s4-0) + (s1-0 projectile-init-by-other) + (s0-0 (-> self entity)) + ) + (set! sv-48 s5-1) + (let ((v0-4 (camera-pos))) + (.mov.vf vf6 vf0 :mask #b1000) + (.lvf vf4 (&-> v0-4 quad)) + ) + (.lvf vf5 (&-> s5-1 quad)) + (.add.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-48 quad) vf6) + (let ((t1-0 (if (>= (-> self fact-info-target eco-level) (-> *FACT-bank* eco-level-max)) + 120 + 104 + ) + ) + (t2-0 #f) + ) + ((the-as (function object object object object object object object none) s3-0) + s2-0 + s1-0 + s0-0 + sv-48 + gp-1 + t1-0 + t2-0 + ) + ) + ) + (-> s4-0 ppointer) + ) + ) + ) + (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) + ) + (none) + ) + ) + :code + (behavior () (ja-channel-set! 0) (set! (-> self control transv quad) (the-as uint128 0)) (anim-loop) (none)) :post target-no-move-post ) @@ -1325,685 +882,433 @@ (defstate target-grab (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (cond - ((and (= arg2 'query) (= (-> arg3 param 0) 'mode)) - (-> self state name) - ) - (else - (case arg2 - (('end-mode) - (go target-stance) - ) - (('play-anim) - (let ((v0-0 (the-as object (-> arg3 param 0)))) - (set! (-> self control unknown-uint20) (the-as uint v0-0)) - v0-0 - ) - ) - (('clone-anim) - (go - target-clone-anim - (process->handle (the-as process (-> arg3 param 0))) - ) - ) - (('change-mode) - (case (-> arg3 param 0) - (('final-door) - (go - target-final-door - (the-as basic (process->handle (the-as process (-> arg3 param 1)))) - (process->handle (the-as process (-> arg3 param 2))) - ) - ) - ) + (cond + ((and (= arg2 'query) (= (-> arg3 param 0) 'mode)) + (-> self state name) ) (else - (target-generic-event-handler arg0 arg1 arg2 arg3) - ) + (case arg2 + (('end-mode) + (go target-stance) + ) + (('play-anim) + (let ((v0-0 (the-as object (-> arg3 param 0)))) + (set! (-> self control unknown-uint20) (the-as uint v0-0)) + v0-0 + ) + ) + (('clone-anim) + (go target-clone-anim (process->handle (the-as process (-> arg3 param 0)))) + ) + (('change-mode) + (case (-> arg3 param 0) + (('final-door) + (go + target-final-door + (the-as basic (process->handle (the-as process (-> arg3 param 1)))) + (process->handle (the-as process (-> arg3 param 2))) + ) + ) + ) + ) + (else + (target-generic-event-handler arg0 arg1 arg2 arg3) + ) + ) + ) ) - ) ) - ) :enter (behavior () - (set! (-> self control unknown-surface00) *grab-mods*) - (set! (-> self neck flex-blend) 0.0) - (logior! (-> self state-flags) 272) - (set! (-> self control unknown-uint20) (the-as uint 'stance)) - (none) - ) + (set! (-> self control unknown-surface00) *grab-mods*) + (set! (-> self neck flex-blend) 0.0) + (logior! (-> self state-flags) 272) + (set! (-> self control unknown-uint20) (the-as uint 'stance)) + (none) + ) :exit - (behavior () - (set! (-> self state-flags) (logand -17 (-> self state-flags))) - (target-exit) - (none) - ) + (behavior () (set! (-> self state-flags) (logand -17 (-> self state-flags))) (target-exit) (none)) :code (behavior () - (set-forward-vel (the-as float (-> (new 'static 'array int32 1 0) 0))) - (let ((gp-0 0)) - (while (zero? (logand (-> self control status) 1)) - (target-falling-anim-trans) - (+! - gp-0 - (- - (-> *display* base-frame-counter) - (-> *display* old-base-frame-counter) - ) - ) - (suspend) - ) - (if (or (> gp-0 0) (let ((v1-11 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) + (set-forward-vel (the-as float (-> (new 'static 'array int32 1 0) 0))) + (let ((gp-0 0)) + (while (zero? (logand (-> self control status) 1)) + (target-falling-anim-trans) + (+! gp-0 (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (suspend) + ) + (if (or (> gp-0 0) (let ((v1-11 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + ) + (or + (= v1-11 (-> self draw art-group data 34)) + (= v1-11 (-> self draw art-group data 38)) + (= v1-11 (-> self draw art-group data 42)) + (= v1-11 (-> self draw art-group data 43)) + (= v1-11 (-> self draw art-group data 41)) + ) ) - (or - (= v1-11 (-> self draw art-group data 34)) - (= v1-11 (-> self draw art-group data 38)) - (= v1-11 (-> self draw art-group data 42)) - (= v1-11 (-> self draw art-group data 43)) - (= v1-11 (-> self draw art-group data 41)) - ) - ) - ) - (target-hit-ground-anim #f) - ) - ) - (-> self control unknown-spoolanim00) - (while #t - (let ((gp-1 (-> self control unknown-spoolanim00))) - (case gp-1 - (('stance) - (cond - ((or (and (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 23) - ) - (< 0.5 (-> self skel root-channel 6 frame-interp)) - ) - (let ((v1-32 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) - ) - (or - (= v1-32 (-> self draw art-group data 28)) - (= v1-32 (-> self draw art-group data 29)) - (= v1-32 (-> self draw art-group data 54)) - (= v1-32 (-> self draw art-group data 55)) - ) - ) - ) - (ja-channel-push! 1 45) - (let ((a0-39 (-> self skel root-channel 0))) - (set! - (-> a0-39 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-39 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-39 param 1) 1.0) - (set! (-> a0-39 frame-num) 0.0) - (joint-control-channel-group! - a0-39 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-40 (-> self skel root-channel 0))) - (set! - (-> a0-40 param 0) - (the float (+ (-> a0-40 frame-group data 0 length) -1)) - ) - (set! (-> a0-40 param 1) 1.0) - (joint-control-channel-group-eval! - a0-40 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-42 (-> self skel root-channel 0))) - (set! - (-> a0-42 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! - (-> a0-42 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 3)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-42 param 1) 1.0) - (set! (-> a0-42 frame-num) 0.0) - (joint-control-channel-group! - a0-42 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-43 (-> self skel root-channel 0))) - (set! - (-> a0-43 param 0) - (the float (+ (-> a0-43 frame-group data 0 length) -1)) - ) - (set! (-> a0-43 param 1) 1.0) - (joint-control-channel-group-eval! - a0-43 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (ja-channel-push! 1 45) - ) - ((let ((v1-87 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) ) - (and - (or - (= v1-87 (-> self draw art-group data 39)) - (= v1-87 (-> self draw art-group data 35)) - ) - (not (ja-max? 0)) - ) - ) - (let ((a0-54 (-> self skel root-channel 0))) - (set! - (-> a0-54 param 0) - (the float (+ (-> a0-54 frame-group data 0 length) -1)) - ) - (set! (-> a0-54 param 1) 1.0) - (joint-control-channel-group! - a0-54 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (while (not (ja-done? 0)) - (suspend) - (ja-eval) - ) - (ja-channel-push! 1 22) + (target-hit-ground-anim #f) ) - ((not (and (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 5) - ) - (= (ja-group-size) 1) - ) - ) - (ja-channel-push! 1 22) - ) - ) - (while #t - (let ((a0-63 (-> self skel root-channel 0))) - (set! - (-> a0-63 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-63 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-63 param 1) 1.0) - (set! (-> a0-63 frame-num) 0.0) - (joint-control-channel-group! - a0-63 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (if (!= gp-1 (-> self control unknown-spoolanim00)) - (goto cfg-94) - ) - (suspend) - (let ((a0-64 (-> self skel root-channel 0))) - (set! - (-> a0-64 param 0) - (the float (+ (-> a0-64 frame-group data 0 length) -1)) - ) - (set! (-> a0-64 param 1) 1.0) - (joint-control-channel-group-eval! - a0-64 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - ) - (('shock-in) - (ja-channel-push! 1 60) - (let ((s5-0 (-> self skel root-channel 0))) - (set! - (-> s5-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 88)) - ) - (set! (-> s5-0 param 0) (ja-aframe (the-as float 18.0) 0)) - (set! (-> s5-0 param 1) 1.0) - (set! (-> s5-0 frame-num) 0.0) - (joint-control-channel-group! - s5-0 - (the-as art-joint-anim (-> self draw art-group data 88)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (if (!= gp-1 (-> self control unknown-spoolanim00)) - (goto cfg-94) - ) - (suspend) - (let ((s5-1 (-> self skel root-channel 0))) - (set! (-> s5-1 param 0) (ja-aframe (the-as float 18.0) 0)) - (set! (-> s5-1 param 1) 1.0) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (while #t - (if (!= gp-1 (-> self control unknown-spoolanim00)) - (goto cfg-94) - ) - (suspend) - ) - ) - (('shock-out) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 88) - ) - ) - (ja-channel-push! 1 60) - ) - (let ((s5-2 (-> self skel root-channel 0))) - (set! - (-> s5-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 88)) - ) - (set! - (-> s5-2 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 88)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> s5-2 param 1) 1.0) - (set! (-> s5-2 frame-num) (ja-aframe (the-as float 18.0) 0)) - (joint-control-channel-group! - s5-2 - (the-as art-joint-anim (-> self draw art-group data 88)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (if (!= gp-1 (-> self control unknown-spoolanim00)) - (goto cfg-94) - ) - (suspend) - (let ((a0-82 (-> self skel root-channel 0))) - (set! - (-> a0-82 param 0) - (the float (+ (-> a0-82 frame-group data 0 length) -1)) - ) - (set! (-> a0-82 param 1) 1.0) - (joint-control-channel-group-eval! - a0-82 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (set! (-> self control unknown-uint20) (the-as uint 'stance)) - ) ) - ) - (label cfg-94) + (-> self control unknown-spoolanim00) + (while #t + (let ((gp-1 (-> self control unknown-spoolanim00))) + (case gp-1 + (('stance) + (cond + ((or + (and + (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 23) + ) + (< 0.5 (-> self skel root-channel 6 frame-interp)) + ) + (let ((v1-32 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + ) + (or + (= v1-32 (-> self draw art-group data 28)) + (= v1-32 (-> self draw art-group data 29)) + (= v1-32 (-> self draw art-group data 54)) + (= v1-32 (-> self draw art-group data 55)) + ) + ) + ) + (ja-channel-push! 1 45) + (let ((a0-39 (-> self skel root-channel 0))) + (set! (-> a0-39 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-39 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-39 param 1) 1.0) + (set! (-> a0-39 frame-num) 0.0) + (joint-control-channel-group! a0-39 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-40 (-> self skel root-channel 0))) + (set! (-> a0-40 param 0) (the float (+ (-> a0-40 frame-group data 0 length) -1))) + (set! (-> a0-40 param 1) 1.0) + (joint-control-channel-group-eval! a0-40 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-42 (-> self skel root-channel 0))) + (set! (-> a0-42 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> a0-42 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1)) + ) + (set! (-> a0-42 param 1) 1.0) + (set! (-> a0-42 frame-num) 0.0) + (joint-control-channel-group! a0-42 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-43 (-> self skel root-channel 0))) + (set! (-> a0-43 param 0) (the float (+ (-> a0-43 frame-group data 0 length) -1))) + (set! (-> a0-43 param 1) 1.0) + (joint-control-channel-group-eval! a0-43 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (ja-channel-push! 1 45) + ) + ((let ((v1-87 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + ) + (and + (or (= v1-87 (-> self draw art-group data 39)) (= v1-87 (-> self draw art-group data 35))) + (not (ja-max? 0)) + ) + ) + (let ((a0-54 (-> self skel root-channel 0))) + (set! (-> a0-54 param 0) (the float (+ (-> a0-54 frame-group data 0 length) -1))) + (set! (-> a0-54 param 1) 1.0) + (joint-control-channel-group! a0-54 (the-as art-joint-anim #f) num-func-seek!) + ) + (while (not (ja-done? 0)) + (suspend) + (ja-eval) + ) + (ja-channel-push! 1 22) + ) + ((not (and + (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 5) + ) + (= (ja-group-size) 1) + ) + ) + (ja-channel-push! 1 22) + ) + ) + (while #t + (let ((a0-63 (-> self skel root-channel 0))) + (set! (-> a0-63 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-63 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-63 param 1) 1.0) + (set! (-> a0-63 frame-num) 0.0) + (joint-control-channel-group! a0-63 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (if (!= gp-1 (-> self control unknown-spoolanim00)) + (goto cfg-94) + ) + (suspend) + (let ((a0-64 (-> self skel root-channel 0))) + (set! (-> a0-64 param 0) (the float (+ (-> a0-64 frame-group data 0 length) -1))) + (set! (-> a0-64 param 1) 1.0) + (joint-control-channel-group-eval! a0-64 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + ) + (('shock-in) + (ja-channel-push! 1 60) + (let ((s5-0 (-> self skel root-channel 0))) + (set! (-> s5-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 88))) + (set! (-> s5-0 param 0) (ja-aframe (the-as float 18.0) 0)) + (set! (-> s5-0 param 1) 1.0) + (set! (-> s5-0 frame-num) 0.0) + (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 88)) num-func-seek!) + ) + (until (ja-done? 0) + (if (!= gp-1 (-> self control unknown-spoolanim00)) + (goto cfg-94) + ) + (suspend) + (let ((s5-1 (-> self skel root-channel 0))) + (set! (-> s5-1 param 0) (ja-aframe (the-as float 18.0) 0)) + (set! (-> s5-1 param 1) 1.0) + (joint-control-channel-group-eval! s5-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (while #t + (if (!= gp-1 (-> self control unknown-spoolanim00)) + (goto cfg-94) + ) + (suspend) + ) + ) + (('shock-out) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 88) + ) + ) + (ja-channel-push! 1 60) + ) + (let ((s5-2 (-> self skel root-channel 0))) + (set! (-> s5-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 88))) + (set! (-> s5-2 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 88)) data 0 length) -1)) + ) + (set! (-> s5-2 param 1) 1.0) + (set! (-> s5-2 frame-num) (ja-aframe (the-as float 18.0) 0)) + (joint-control-channel-group! s5-2 (the-as art-joint-anim (-> self draw art-group data 88)) num-func-seek!) + ) + (until (ja-done? 0) + (if (!= gp-1 (-> self control unknown-spoolanim00)) + (goto cfg-94) + ) + (suspend) + (let ((a0-82 (-> self skel root-channel 0))) + (set! (-> a0-82 param 0) (the float (+ (-> a0-82 frame-group data 0 length) -1))) + (set! (-> a0-82 param 1) 1.0) + (joint-control-channel-group-eval! a0-82 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (set! (-> self control unknown-uint20) (the-as uint 'stance)) + ) + ) + ) + (label cfg-94) + ) + (none) ) - (none) - ) :post (behavior () - (if (logtest? (-> self control status) 1) - (set! (-> self control transv quad) (the-as uint128 0)) + (if (logtest? (-> self control status) 1) + (set! (-> self control transv quad) (the-as uint128 0)) + ) + (target-no-stick-post) + (none) ) - (target-no-stick-post) - (none) - ) ) (defstate target-pole-cycle (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (if (and (= arg2 'query) (= (-> arg3 param 0) 'mode)) - (-> self state name) - (target-standard-event-handler arg0 arg1 arg2 arg3) + (if (and (= arg2 'query) (= (-> arg3 param 0) 'mode)) + (-> self state name) + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - ) :enter (behavior ((arg0 handle)) - (set! (-> self control unknown-handle10) arg0) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *pole-mods*) - (logior! (-> self control root-prim prim-core action) 256) - (target-collide-set! - 'pole - (the-as float (-> (new 'static 'array int32 1 0) 0)) + (set! (-> self control unknown-handle10) arg0) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self control unknown-surface00) *pole-mods*) + (logior! (-> self control root-prim prim-core action) 256) + (target-collide-set! 'pole (the-as float (-> (new 'static 'array int32 1 0) 0))) + (set! (-> self control unknown-vector102 quad) (-> self control transv quad)) + (set! (-> self control transv quad) (the-as uint128 0)) + (send-event *camera* 'ease-in) + (set! (-> self control unknown-int21) (the-as int #f)) + (none) ) - (set! (-> self control unknown-vector102 quad) (-> self control transv quad)) - (set! (-> self control transv quad) (the-as uint128 0)) - (send-event *camera* 'ease-in) - (set! (-> self control unknown-int21) (the-as int #f)) - (none) - ) :exit (behavior () - (target-collide-set! - 'normal - (the-as float (-> (new 'static 'array int32 1 0) 0)) + (target-collide-set! 'normal (the-as float (-> (new 'static 'array int32 1 0) 0))) + (set! (-> self control root-prim prim-core action) (logand -257 (-> self control root-prim prim-core action))) + (set! (-> self control unknown-handle10) (the-as handle #f)) + (none) ) - (set! - (-> self control root-prim prim-core action) - (logand -257 (-> self control root-prim prim-core action)) - ) - (set! (-> self control unknown-handle10) (the-as handle #f)) - (none) - ) :trans (behavior () - (when - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 - ) - ) - (pad-buttons x) - ) - (zero? (logand (-> self state-flags) 2048)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) - ) - (set! (-> self control transv quad) (the-as uint128 0)) - (cond - ((< 44.0 (ja-aframe-num 0)) - (set-forward-vel (the-as float -49152.0)) - (let ((gp-0 (new-stack-vector0))) - (let - ((f0-2 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) - ) - ) - ) - 0.0 - (vector-! - gp-0 - (-> self control transv) - (vector-float*! gp-0 (-> self control dynam gravity-normal) f0-2) - ) - ) - (let* ((f0-3 (vector-length gp-0)) - (f1-1 f0-3) - (f2-0 -81920.0) + (when (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons x) ) - (vector+! - (-> self control transv) - (vector-float*! - (-> self control transv) - (-> self control dynam gravity-normal) - f2-0 - ) - (vector-float*! gp-0 gp-0 (/ f0-3 f1-1)) + (zero? (logand (-> self state-flags) 2048)) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + ) + (set! (-> self control transv quad) (the-as uint128 0)) + (cond + ((< 44.0 (ja-aframe-num 0)) + (set-forward-vel (the-as float -49152.0)) + (let ((gp-0 (new-stack-vector0))) + (let ((f0-2 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) + 0.0 + (vector-! gp-0 (-> self control transv) (vector-float*! gp-0 (-> self control dynam gravity-normal) f0-2)) + ) + (let* ((f0-3 (vector-length gp-0)) + (f1-1 f0-3) + (f2-0 -81920.0) + ) + (vector+! + (-> self control transv) + (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-0) + (vector-float*! gp-0 gp-0 (/ f0-3 f1-1)) + ) + ) + ) + (set! (-> self control status) (logand -8 (-> self control status))) + (go target-falling 'target-pole-cycle) ) + ((>= (ja-aframe-num 0) 14.0) + (remove-exit) + (go target-pole-flip-up 28672.0 28672.0 (* 1024.0 (- 26.0 (ja-aframe-num 0)))) + ) + (else + (remove-exit) + (go target-pole-flip-forward (the-as float 14336.0) (the-as float 14336.0) (the-as float 57344.0)) + ) ) - ) - (set! (-> self control status) (logand -8 (-> self control status))) - (go target-falling 'target-pole-cycle) ) - ((>= (ja-aframe-num 0) 14.0) - (remove-exit) - (go - target-pole-flip-up - 28672.0 - 28672.0 - (* 1024.0 (- 26.0 (ja-aframe-num 0))) - ) - ) - (else - (remove-exit) - (go - target-pole-flip-forward - (the-as float 14336.0) - (the-as float 14336.0) - (the-as float 57344.0) - ) - ) - ) + (none) ) - (none) - ) :code (behavior ((arg0 handle)) - (target-compute-pole) - (set! - (-> self control unknown-uint20) - (the-as - uint - (vector-dot - (-> self control unknown-vector100) - (vector-normalize! (-> self control unknown-vector102) (the-as float 1.0)) - ) - ) - ) - (cond - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + (target-compute-pole) + (set! (-> self control unknown-uint20) + (the-as uint (vector-dot + (-> self control unknown-vector100) + (vector-normalize! (-> self control unknown-vector102) (the-as float 1.0)) + ) + ) + ) + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 83) + ) + (while (not (-> self control unknown-int21)) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) (the float (+ (-> a0-6 frame-group data 0 length) -1))) + (set! (-> a0-6 param 1) 1.0) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-seek!) + ) + (suspend) ) - (-> self draw art-group data 83) - ) - (while (not (-> self control unknown-int21)) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 param 0) - (the float (+ (-> a0-6 frame-group data 0 length) -1)) - ) - (set! (-> a0-6 param 1) 1.0) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (suspend) - ) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 num-func) num-func-identity) - (set! (-> gp-1 frame-num) (ja-aframe (the-as float 37.0) 0)) - ) - ) - (else - (while (not (-> self control unknown-int21)) - (suspend) - ) - (suspend) - (ja-channel-push! 1 45) - ) - ) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 frame-group) - (the-as art-joint-anim (-> self draw art-group data 80)) - ) - (set! - (-> a0-9 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 80)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-9 param 1) 1.0) - (set! (-> a0-9 frame-num) 0.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim (-> self draw art-group data 80)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 param 0) - (the float (+ (-> a0-10 frame-group data 0 length) -1)) - ) - (set! (-> a0-10 param 1) 1.0) - (joint-control-channel-group-eval! - a0-10 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (while #t - (set! - (-> self anim-seed) - (the-as uint (if (rand-vu-percent? (the-as float 0.1)) - 0 - 1 - ) - ) - ) - (let ((a0-13 (-> self skel root-channel 0))) - (set! - (-> a0-13 frame-group) - (the-as art-joint-anim (-> self draw art-group data 80)) - ) - (set! - (-> a0-13 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 80)) - data - 0 - length + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 num-func) num-func-identity) + (set! (-> gp-1 frame-num) (ja-aframe (the-as float 37.0) 0)) ) - -1 - ) ) + (else + (while (not (-> self control unknown-int21)) + (suspend) + ) + (suspend) + (ja-channel-push! 1 45) + ) ) - (set! (-> a0-13 param 1) 1.0) - (set! (-> a0-13 frame-num) 0.0) - (joint-control-channel-group! - a0-13 - (the-as art-joint-anim (-> self draw art-group data 80)) - num-func-seek! + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 80))) + (set! (-> a0-9 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 80)) data 0 length) -1)) + ) + (set! (-> a0-9 param 1) 1.0) + (set! (-> a0-9 frame-num) 0.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 80)) num-func-seek!) ) - ) (until (ja-done? 0) - (suspend) - (let ((a0-14 (-> self skel root-channel 0))) - (set! - (-> a0-14 param 0) - (the float (+ (-> a0-14 frame-group data 0 length) -1)) - ) - (set! (-> a0-14 param 1) 1.0) - (joint-control-channel-group-eval! - a0-14 - (the-as art-joint-anim #f) - num-func-seek! - ) + (suspend) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1))) + (set! (-> a0-10 param 1) 1.0) + (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) + (while #t + (set! (-> self anim-seed) (the-as uint (if (rand-vu-percent? (the-as float 0.1)) + 0 + 1 + ) + ) + ) + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 frame-group) (the-as art-joint-anim (-> self draw art-group data 80))) + (set! (-> a0-13 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 80)) data 0 length) -1)) + ) + (set! (-> a0-13 param 1) 1.0) + (set! (-> a0-13 frame-num) 0.0) + (joint-control-channel-group! a0-13 (the-as art-joint-anim (-> self draw art-group data 80)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 param 0) (the float (+ (-> a0-14 frame-group data 0 length) -1))) + (set! (-> a0-14 param 1) 1.0) + (joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (none) ) - (none) - ) :post target-no-move-post ) @@ -2015,56 +1320,27 @@ (-> target-pole-cycle exit) :code (behavior ((arg0 object) (arg1 object) (arg2 float)) - (let ((s3-0 (-> self skel root-channel 0))) - (set! - (-> s3-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 81)) - ) - (set! - (-> s3-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 81)) - data - 0 - length + (let ((s3-0 (-> self skel root-channel 0))) + (set! (-> s3-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 81))) + (set! (-> s3-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 81)) data 0 length) -1)) + ) + (set! (-> s3-0 param 1) 1.0) + (set! (-> s3-0 frame-num) (ja-aframe (+ 1.0 (fmin 17.0 (ja-aframe-num 0))) 0)) + (joint-control-channel-group! s3-0 (the-as art-joint-anim (-> self draw art-group data 81)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> s3-0 param 1) 1.0) - (set! - (-> s3-0 frame-num) - (ja-aframe (+ 1.0 (fmin 17.0 (ja-aframe-num 0))) 0) - ) - (joint-control-channel-group! - s3-0 - (the-as art-joint-anim (-> self draw art-group data 81)) - num-func-seek! - ) + (set-forward-vel arg2) + (go target-pole-flip-up-jump (the-as float arg0) (the-as float arg1)) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 param 0) - (the float (+ (-> a0-4 frame-group data 0 length) -1)) - ) - (set! (-> a0-4 param 1) 1.0) - (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (set-forward-vel arg2) - (go target-pole-flip-up-jump (the-as float arg0) (the-as float arg1)) - (none) - ) :post target-no-move-post ) @@ -2078,91 +1354,56 @@ target-exit :trans (behavior () - ((-> target-jump-forward trans)) - (vector-flatten! - (-> self control transv) - (-> self control transv) - (-> self control unknown-vector100) + ((-> target-jump-forward trans)) + (vector-flatten! (-> self control transv) (-> self control transv) (-> self control unknown-vector100)) + (none) ) - (none) - ) :code (behavior ((arg0 float) (arg1 float)) - (sound-play-by-name (static-sound-name "jump") (new-sound-id) 1024 0 0 1 #t) - (send-event *camera* 'damp-up) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 83)) - num-func-identity - ) - (set! (-> gp-1 frame-num) 0.0) - ) - (let ((f0-1 (target-height-above-ground)) - (f1-1 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) - ) - ) - ) - (while - (not - (and - (< (fabs (/ f0-1 (* 0.0033333334 f1-1))) 40.0) - (and (< f1-1 0.0) (ja-min? 0)) - ) - ) - (suspend) - (let ((a0-5 (-> self skel root-channel 0))) - (set! (-> a0-5 param 0) 1.0) + (sound-play-by-name (static-sound-name "jump") (new-sound-id) 1024 0 0 1 #t) + (send-event *camera* 'damp-up) + (let ((gp-1 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-5 - (the-as art-joint-anim #f) - num-func-loop! - ) + gp-1 + (the-as art-joint-anim (-> self draw art-group data 83)) + num-func-identity + ) + (set! (-> gp-1 frame-num) 0.0) ) - (set! f0-1 (target-height-above-ground)) - (set! - f1-1 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) - ) + (let ((f0-1 (target-height-above-ground)) + (f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) + ) + (while (not (and (< (fabs (/ f0-1 (* 0.0033333334 f1-1))) 40.0) (and (< f1-1 0.0) (ja-min? 0)))) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) 1.0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-loop!) + ) + (set! f0-1 (target-height-above-ground)) + (set! f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) + ) ) - ) + (ja-channel-push! 1 75) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 38))) + (set! (-> a0-9 param 0) 1.0) + (set! (-> a0-9 frame-num) 0.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 38)) num-func-loop!) + ) + (while #t + (suspend) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 frame-group) (the-as art-joint-anim (-> self draw art-group data 38))) + (set! (-> a0-10 param 0) 1.0) + (joint-control-channel-group-eval! + a0-10 + (the-as art-joint-anim (-> self draw art-group data 38)) + num-func-loop! + ) + ) + ) + (none) ) - (ja-channel-push! 1 75) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 frame-group) - (the-as art-joint-anim (-> self draw art-group data 38)) - ) - (set! (-> a0-9 param 0) 1.0) - (set! (-> a0-9 frame-num) 0.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim (-> self draw art-group data 38)) - num-func-loop! - ) - ) - (while #t - (suspend) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 frame-group) - (the-as art-joint-anim (-> self draw art-group data 38)) - ) - (set! (-> a0-10 param 0) 1.0) - (joint-control-channel-group-eval! - a0-10 - (the-as art-joint-anim (-> self draw art-group data 38)) - num-func-loop! - ) - ) - ) - (none) - ) :post (the-as (function none :behavior target) target-post) ) @@ -2174,36 +1415,25 @@ (-> target-pole-cycle exit) :code (behavior ((arg0 float) (arg1 float) (arg2 float)) - (let ((s3-0 (-> self skel root-channel 0))) - (set! - (-> s3-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 82)) - ) - (set! (-> s3-0 param 0) (ja-aframe (the-as float 16.0) 0)) - (set! (-> s3-0 param 1) 1.0) - (set! (-> s3-0 frame-num) (ja-aframe (+ 1.0 (ja-aframe-num 0)) 0)) - (joint-control-channel-group! - s3-0 - (the-as art-joint-anim (-> self draw art-group data 82)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((s3-1 (-> self skel root-channel 0))) - (set! (-> s3-1 param 0) (ja-aframe (the-as float 16.0) 0)) - (set! (-> s3-1 param 1) 1.0) - (joint-control-channel-group-eval! - s3-1 - (the-as art-joint-anim #f) - num-func-seek! + (let ((s3-0 (-> self skel root-channel 0))) + (set! (-> s3-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 82))) + (set! (-> s3-0 param 0) (ja-aframe (the-as float 16.0) 0)) + (set! (-> s3-0 param 1) 1.0) + (set! (-> s3-0 frame-num) (ja-aframe (+ 1.0 (ja-aframe-num 0)) 0)) + (joint-control-channel-group! s3-0 (the-as art-joint-anim (-> self draw art-group data 82)) num-func-seek!) ) - ) + (until (ja-done? 0) + (suspend) + (let ((s3-1 (-> self skel root-channel 0))) + (set! (-> s3-1 param 0) (ja-aframe (the-as float 16.0) 0)) + (set! (-> s3-1 param 1) 1.0) + (joint-control-channel-group-eval! s3-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (set-forward-vel arg2) + (go target-pole-flip-forward-jump arg0 arg1) + (none) ) - (set-forward-vel arg2) - (go target-pole-flip-forward-jump arg0 arg1) - (none) - ) :post target-no-move-post ) @@ -2213,44 +1443,32 @@ target-standard-event-handler :enter (behavior ((arg0 float) (arg1 float)) - ((-> target-jump enter) arg0 arg1 (the-as surface #f)) - (set! (-> self control unknown-surface00) *forward-pole-jump-mods*) - (none) - ) + ((-> target-jump enter) arg0 arg1 (the-as surface #f)) + (set! (-> self control unknown-surface00) *forward-pole-jump-mods*) + (none) + ) :exit target-exit :trans (behavior () - ((-> target-jump-forward trans)) - (vector-flatten! - (-> self control transv) - (-> self control transv) - (-> self control unknown-vector100) + ((-> target-jump-forward trans)) + (vector-flatten! (-> self control transv) (-> self control transv) (-> self control unknown-vector100)) + (none) ) - (none) - ) :code (behavior ((arg0 float) (arg1 float)) - (sound-play-by-name (static-sound-name "jump") (new-sound-id) 1024 0 0 1 #t) - (until (ja-done? 0) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) + (sound-play-by-name (static-sound-name "jump") (new-sound-id) 1024 0 0 1 #t) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) + ) ) - (set! (-> a0-2 param 1) 1.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) + ((the-as (function none :behavior target) (-> target-pole-flip-up-jump code))) + (none) ) - ((the-as (function none :behavior target) (-> target-pole-flip-up-jump code)) - ) - (none) - ) :post (the-as (function none :behavior target) target-post) ) @@ -2258,288 +1476,190 @@ (defstate target-edge-grab (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('end-mode) - (go target-falling 'target-edge-grab) + (case arg2 + (('end-mode) + (go target-falling 'target-edge-grab) + ) + (else + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) ) - ) :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *edge-grab-mods*) - (set! (-> self control unknown-dword41) (-> *display* base-frame-counter)) - (logior! (-> self control root-prim prim-core action) 136) - (set! (-> self control unknown-vector102 quad) (-> self control transv quad)) - (set! (-> self control transv quad) (the-as uint128 0)) - (send-event *camera* 'ease-in) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self control unknown-surface00) *edge-grab-mods*) + (set! (-> self control unknown-dword41) (-> *display* base-frame-counter)) + (logior! (-> self control root-prim prim-core action) 136) + (set! (-> self control unknown-vector102 quad) (-> self control transv quad)) + (set! (-> self control transv quad) (the-as uint128 0)) + (send-event *camera* 'ease-in) + (none) + ) :exit (behavior () - (when (logtest? (-> self control root-prim prim-core action) 128) - (set! - (-> self control root-prim prim-core action) - (logand -137 (-> self control root-prim prim-core action)) - ) - (send-event *camera* 'damp-up) + (when (logtest? (-> self control root-prim prim-core action) 128) + (set! (-> self control root-prim prim-core action) (logand -137 (-> self control root-prim prim-core action))) + (send-event *camera* 'damp-up) + ) + (none) ) - (none) - ) :trans (behavior () - (when - (and - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 + (when (and + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons x) + ) + (zero? (logand (-> self state-flags) 2048)) + ) + (cond + ((or + (< -0.2 (local-pad-angle)) + (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + ) + (let ((a1-2 (new 'stack-no-clear 'collide-using-spheres-params))) + (set! (-> a1-2 spheres) (the-as (pointer sphere) (-> *collide-edge-work* world-player-leap-up-spheres))) + (set! (-> a1-2 num-spheres) (the-as uint 6)) + (set! (-> a1-2 collide-with) (-> self control root-prim collide-with)) + (set! (-> a1-2 proc) #f) + (set! (-> a1-2 ignore-pat) (the-as uint 1)) + (set! (-> a1-2 solid-only) #t) + (when (not (dummy-11 *collide-cache* a1-2)) + (remove-exit) + (go + target-edge-grab-jump + (-> *TARGET-bank* edge-grab-jump-height-min) + (-> *TARGET-bank* edge-grab-jump-height-max) + ) + ) + ) ) + (else + (remove-exit) + (go target-edge-grab-off) + ) ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 - ) - ) - (pad-buttons x) ) - (zero? (logand (-> self state-flags) 2048)) - ) - (cond - ((or - (< -0.2 (local-pad-angle)) - (= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed - ) - 0.0 - ) - ) - (let ((a1-2 (new 'stack-no-clear 'collide-using-spheres-params))) - (set! - (-> a1-2 spheres) - (the-as - (pointer sphere) - (-> *collide-edge-work* world-player-leap-up-spheres) - ) - ) - (set! (-> a1-2 num-spheres) (the-as uint 6)) - (set! (-> a1-2 collide-with) (-> self control root-prim collide-with)) - (set! (-> a1-2 proc) #f) - (set! (-> a1-2 ignore-pat) (the-as uint 1)) - (set! (-> a1-2 solid-only) #t) - (when (not (dummy-11 *collide-cache* a1-2)) - (remove-exit) - (go - target-edge-grab-jump - (-> *TARGET-bank* edge-grab-jump-height-min) - (-> *TARGET-bank* edge-grab-jump-height-max) - ) - ) - ) - ) - (else - (remove-exit) - (go target-edge-grab-off) - ) - ) + (none) ) - (none) - ) :code (behavior () - (target-compute-edge) - (set! - (-> self control unknown-uint20) - (the-as - uint - (vector-dot - (-> self control unknown-vector100) - (vector-normalize! (-> self control unknown-vector102) (the-as float 1.0)) + (target-compute-edge) + (set! (-> self control unknown-uint20) + (the-as uint (vector-dot + (-> self control unknown-vector100) + (vector-normalize! (-> self control unknown-vector102) (the-as float 1.0)) + ) + ) + ) + (while (< 0.0 (-> self control unknown-float110)) + (when (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 38) + ) + ) + (ja-channel-push! 1 45) + (let ((gp-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-1 + (the-as art-joint-anim (-> self draw art-group data 38)) + num-func-identity + ) + (set! (-> gp-1 frame-num) 0.0) + ) + ) + (suspend) ) - ) - ) - (while (< 0.0 (-> self control unknown-float110)) - (when (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 38) - ) + (ja-channel-push! 1 45) + (cond + ((< (the-as float (-> self control unknown-uint20)) -0.3) + (let ((gp-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-2 + (the-as art-joint-anim (-> self draw art-group data 48)) + num-func-identity ) - (ja-channel-push! 1 45) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 38)) - num-func-identity - ) - (set! (-> gp-1 frame-num) 0.0) - ) - ) - (suspend) - ) - (ja-channel-push! 1 45) - (cond - ((< (the-as float (-> self control unknown-uint20)) -0.3) - (let ((gp-2 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 48)) - num-func-identity - ) - (set! (-> gp-2 frame-num) 0.0) - ) - ) - ((< 0.3 (the-as float (-> self control unknown-uint20))) - (let ((gp-3 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-3 - (the-as art-joint-anim (-> self draw art-group data 47)) - num-func-identity - ) - (set! (-> gp-3 frame-num) 0.0) - ) - ) - (else - (let ((gp-4 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-4 - (the-as art-joint-anim (-> self draw art-group data 46)) - num-func-identity - ) - (set! (-> gp-4 frame-num) 0.0) - ) - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 param 0) - (the float (+ (-> a0-11 frame-group data 0 length) -1)) - ) - (set! (-> a0-11 param 1) 1.0) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (ja-channel-set! 1) - (while #t - (let ((a0-14 (-> self skel root-channel 0))) - (set! - (-> a0-14 frame-group) - (the-as art-joint-anim (-> self draw art-group data 44)) - ) - (set! - (-> a0-14 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 44)) - data - 0 - length + (set! (-> gp-2 frame-num) 0.0) ) - -1 - ) ) - ) - (set! (-> a0-14 param 1) 1.0) - (set! (-> a0-14 frame-num) 0.0) - (joint-control-channel-group! - a0-14 - (the-as art-joint-anim (-> self draw art-group data 44)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-15 (-> self skel root-channel 0))) - (set! - (-> a0-15 param 0) - (the float (+ (-> a0-15 frame-group data 0 length) -1)) - ) - (set! (-> a0-15 param 1) 1.0) - (joint-control-channel-group-eval! - a0-15 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (+! (-> self anim-seed) 1) - (let ((a0-17 (-> self skel root-channel 0))) - (set! - (-> a0-17 frame-group) - (the-as art-joint-anim (-> self draw art-group data 45)) - ) - (set! - (-> a0-17 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 45)) - data - 0 - length + ((< 0.3 (the-as float (-> self control unknown-uint20))) + (let ((gp-3 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-3 + (the-as art-joint-anim (-> self draw art-group data 47)) + num-func-identity + ) + (set! (-> gp-3 frame-num) 0.0) ) - -1 + ) + (else + (let ((gp-4 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-4 + (the-as art-joint-anim (-> self draw art-group data 46)) + num-func-identity + ) + (set! (-> gp-4 frame-num) 0.0) + ) ) - ) ) - (set! (-> a0-17 param 1) 1.0) - (set! (-> a0-17 frame-num) 0.0) - (joint-control-channel-group! - a0-17 - (the-as art-joint-anim (-> self draw art-group data 45)) - num-func-seek! - ) - ) (until (ja-done? 0) - (suspend) - (let ((a0-18 (-> self skel root-channel 0))) - (set! - (-> a0-18 param 0) - (the float (+ (-> a0-18 frame-group data 0 length) -1)) - ) - (set! (-> a0-18 param 1) 1.0) - (joint-control-channel-group-eval! - a0-18 - (the-as art-joint-anim #f) - num-func-seek! - ) + (suspend) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) (the float (+ (-> a0-11 frame-group data 0 length) -1))) + (set! (-> a0-11 param 1) 1.0) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) + (ja-channel-set! 1) + (while #t + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 frame-group) (the-as art-joint-anim (-> self draw art-group data 44))) + (set! (-> a0-14 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 44)) data 0 length) -1)) + ) + (set! (-> a0-14 param 1) 1.0) + (set! (-> a0-14 frame-num) 0.0) + (joint-control-channel-group! a0-14 (the-as art-joint-anim (-> self draw art-group data 44)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 param 0) (the float (+ (-> a0-15 frame-group data 0 length) -1))) + (set! (-> a0-15 param 1) 1.0) + (joint-control-channel-group-eval! a0-15 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (+! (-> self anim-seed) 1) + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 frame-group) (the-as art-joint-anim (-> self draw art-group data 45))) + (set! (-> a0-17 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 45)) data 0 length) -1)) + ) + (set! (-> a0-17 param 1) 1.0) + (set! (-> a0-17 frame-num) 0.0) + (joint-control-channel-group! a0-17 (the-as art-joint-anim (-> self draw art-group data 45)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-18 (-> self skel root-channel 0))) + (set! (-> a0-18 param 0) (the float (+ (-> a0-18 frame-group data 0 length) -1))) + (set! (-> a0-18 param 1) 1.0) + (joint-control-channel-group-eval! a0-18 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (none) ) - (none) - ) :post target-no-move-post ) @@ -2547,88 +1667,55 @@ (defstate target-edge-grab-jump (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('end-mode) - (go target-falling 'target-edge-grab) + (case arg2 + (('end-mode) + (go target-falling 'target-edge-grab) + ) + (else + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) ) - ) :exit (-> target-edge-grab exit) :code (behavior ((arg0 float) (arg1 float)) - (ja-channel-set! 1) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (set! - (-> self control root-prim prim-core action) - (logand -137 (-> self control root-prim prim-core action)) - ) - (set! (-> self control transv quad) (the-as uint128 0)) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (let ((a0-8 (-> self skel root-channel 0))) - (set! - (-> a0-8 frame-group) - (the-as art-joint-anim (-> self draw art-group data 49)) - ) - (set! - (-> a0-8 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 49)) - data - 0 - length - ) - -1 + (ja-channel-set! 1) + (set-quaternion! (-> self control) (-> self control dir-targ)) + (set! (-> self control root-prim prim-core action) (logand -137 (-> self control root-prim prim-core action))) + (set! (-> self control transv quad) (the-as uint128 0)) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (let ((a0-8 (-> self skel root-channel 0))) + (set! (-> a0-8 frame-group) (the-as art-joint-anim (-> self draw art-group data 49))) + (set! (-> a0-8 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 49)) data 0 length) -1)) + ) + (set! (-> a0-8 param 1) 1.0) + (set! (-> a0-8 frame-num) 0.0) + (joint-control-channel-group! a0-8 (the-as art-joint-anim (-> self draw art-group data 49)) num-func-seek!) + ) + (until (ja-done? 0) + (target-compute-edge-rider) + (TODO-RENAME-9 (-> self align)) + (when (zero? (logand (-> self align flags) 1)) + (vector-matrix*! s4-0 (the-as vector (-> self align delta)) (-> self control unknown-matrix01)) + (TODO-RENAME-28 (-> self control) s4-0) + ) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) ) - (set! (-> a0-8 param 1) 1.0) - (set! (-> a0-8 frame-num) 0.0) - (joint-control-channel-group! - a0-8 - (the-as art-joint-anim (-> self draw art-group data 49)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (target-compute-edge-rider) - (TODO-RENAME-9 (-> self align)) - (when (zero? (logand (-> self align flags) 1)) - (vector-matrix*! - s4-0 - (the-as vector (-> self align delta)) - (-> self control unknown-matrix01) - ) - (TODO-RENAME-28 (-> self control) s4-0) - ) - (suspend) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 param 0) - (the float (+ (-> a0-12 frame-group data 0 length) -1)) - ) - (set! (-> a0-12 param 1) 1.0) - (joint-control-channel-group-eval! - a0-12 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (set! (-> self control transv quad) (the-as uint128 0)) + (set! (-> self control unknown-dword70) 0) + (set-forward-vel (the-as float 16384.0)) + (send-event *camera* 'damp-up) + (go target-jump-forward arg0 arg1) + (none) ) - (set! (-> self control transv quad) (the-as uint128 0)) - (set! (-> self control unknown-dword70) 0) - (set-forward-vel (the-as float 16384.0)) - (send-event *camera* 'damp-up) - (go target-jump-forward arg0 arg1) - (none) - ) :post target-no-move-post ) @@ -2640,76 +1727,47 @@ (-> target-edge-grab exit) :code (behavior () - (ja-channel-set! 1) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (send-event *camera* 'damp-up) - (let ((gp-0 (new 'stack-no-clear 'vector))) - (let ((s5-0 (-> self skel root-channel 0))) - (set! - (-> s5-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 50)) + (ja-channel-set! 1) + (set-quaternion! (-> self control) (-> self control dir-targ)) + (send-event *camera* 'damp-up) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (let ((s5-0 (-> self skel root-channel 0))) + (set! (-> s5-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 50))) + (set! (-> s5-0 param 0) (ja-aframe (the-as float 191.0) 0)) + (set! (-> s5-0 param 1) 1.0) + (set! (-> s5-0 frame-num) 0.0) + (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 50)) num-func-seek!) + ) + (until (ja-done? 0) + (TODO-RENAME-9 (-> self align)) + (when (zero? (logand (-> self align flags) 1)) + (vector-matrix*! gp-0 (the-as vector (-> self align delta)) (-> self control unknown-matrix01)) + (TODO-RENAME-28 (-> self control) gp-0) + ) + (suspend) + (let ((s5-1 (-> self skel root-channel 0))) + (set! (-> s5-1 param 0) (ja-aframe (the-as float 191.0) 0)) + (set! (-> s5-1 param 1) 1.0) + (joint-control-channel-group-eval! s5-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - (set! (-> s5-0 param 0) (ja-aframe (the-as float 191.0) 0)) - (set! (-> s5-0 param 1) 1.0) - (set! (-> s5-0 frame-num) 0.0) - (joint-control-channel-group! - s5-0 - (the-as art-joint-anim (-> self draw art-group data 50)) - num-func-seek! + (set! (-> self control transv quad) (the-as uint128 0)) + (set! (-> self control root-prim prim-core action) (logand -137 (-> self control root-prim prim-core action))) + (vector-float*! (-> self control transv) (-> self control unknown-vector101) -40960.0) + (when (and + (< (- (-> *display* base-frame-counter) (the-as int (-> self control rider-time))) 60) + (or + (logtest? (-> self control unknown-surface01 flags) #x4000) + (= (-> self control poly-pat material) (pat-material rotate)) + ) + ) + (+! (-> self control transv x) (-> self control rider-last-move x)) + (+! (-> self control transv z) (-> self control rider-last-move z)) ) - ) - (until (ja-done? 0) - (TODO-RENAME-9 (-> self align)) - (when (zero? (logand (-> self align flags) 1)) - (vector-matrix*! - gp-0 - (the-as vector (-> self align delta)) - (-> self control unknown-matrix01) - ) - (TODO-RENAME-28 (-> self control) gp-0) - ) - (suspend) - (let ((s5-1 (-> self skel root-channel 0))) - (set! (-> s5-1 param 0) (ja-aframe (the-as float 191.0) 0)) - (set! (-> s5-1 param 1) 1.0) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (go target-falling 'target-edge-grab) + (none) ) - (set! (-> self control transv quad) (the-as uint128 0)) - (set! - (-> self control root-prim prim-core action) - (logand -137 (-> self control root-prim prim-core action)) - ) - (vector-float*! - (-> self control transv) - (-> self control unknown-vector101) - -40960.0 - ) - (when - (and - (< - (- - (-> *display* base-frame-counter) - (the-as int (-> self control rider-time)) - ) - 60 - ) - (or - (logtest? (-> self control unknown-surface01 flags) #x4000) - (= (-> self control poly-pat material) (pat-material rotate)) - ) - ) - (+! (-> self control transv x) (-> self control rider-last-move x)) - (+! (-> self control transv z) (-> self control rider-last-move z)) - ) - (go target-falling 'target-edge-grab) - (none) - ) :post target-no-move-post ) @@ -2719,469 +1777,297 @@ (-> target-running-attack event) :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *run-attack-mods*) - (set! (-> *run-attack-mods* turnv) 655360.0) - (set! (-> *run-attack-mods* turnvv) 655360.0) - (target-start-attack) - (target-danger-set! 'spin #f) - (set! (-> self control unknown-uint20) (the-as uint 0)) - (set! (-> self control unknown-int21) 0) - (set! (-> self control unknown-uint31) (the-as uint 0)) - (let ((gp-0 (new-stack-vector0)) - (f30-0 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self control unknown-surface00) *run-attack-mods*) + (set! (-> *run-attack-mods* turnv) 655360.0) + (set! (-> *run-attack-mods* turnvv) 655360.0) + (target-start-attack) + (target-danger-set! 'spin #f) + (set! (-> self control unknown-uint20) (the-as uint 0)) + (set! (-> self control unknown-int21) 0) + (set! (-> self control unknown-uint31) (the-as uint 0)) + (let ((gp-0 (new-stack-vector0)) + (f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) ) - ) - 0.0 - (vector-! - gp-0 - (-> self control transv) - (vector-float*! gp-0 (-> self control dynam gravity-normal) f30-0) - ) - (let* ((f0-5 (vector-length gp-0)) - (f1-0 f0-5) - ) - (if (< 0.0 f30-0) - (set! f30-0 0.0) + 0.0 + (vector-! gp-0 (-> self control transv) (vector-float*! gp-0 (-> self control dynam gravity-normal) f30-0)) + (let* ((f0-5 (vector-length gp-0)) + (f1-0 f0-5) + ) + (if (< 0.0 f30-0) + (set! f30-0 0.0) + ) + (vector+! + (-> self control transv) + (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f30-0) + (vector-float*! gp-0 gp-0 (/ f0-5 f1-0)) + ) + ) ) - (vector+! - (-> self control transv) - (vector-float*! - (-> self control transv) - (-> self control dynam gravity-normal) - f30-0 - ) - (vector-float*! gp-0 gp-0 (/ f0-5 f1-0)) - ) - ) + (none) ) - (none) - ) :exit (behavior () - (set! (-> *run-attack-mods* turnv) 0.0) - (set! (-> *run-attack-mods* turnvv) 0.0) - (set! (-> self control unknown-dword31) (-> *display* base-frame-counter)) - (target-exit) - (none) - ) + (set! (-> *run-attack-mods* turnv) 0.0) + (set! (-> *run-attack-mods* turnvv) 0.0) + (set! (-> self control unknown-dword31) (-> *display* base-frame-counter)) + (target-exit) + (none) + ) :code (behavior () - (let ((gp-0 (the-as handle #f))) - (ja-channel-push! 1 22) - (level-hint-spawn - (game-text-id daxter-you-can-shoot-with-yellow-eco) - "sksp0145" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (case (-> (level-get-target-inside *level*) name) - (('maincave) - (level-hint-spawn - (game-text-id daxter-maybe-you-can-shoot-better-goggles) - "sksp0328" + (let ((gp-0 (the-as handle #f))) + (ja-channel-push! 1 22) + (level-hint-spawn + (game-text-id daxter-you-can-shoot-with-yellow-eco) + "sksp0145" (the-as entity #f) *entity-pool* (game-task none) ) - ) - ) - (let ((s5-0 (-> self skel root-channel 0))) - (set! - (-> s5-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 84)) - ) - (set! (-> s5-0 param 0) (ja-aframe (the-as float 9.0) 0)) - (set! (-> s5-0 param 1) 1.0) - (set! (-> s5-0 frame-num) 0.0) - (joint-control-channel-group! - s5-0 - (the-as art-joint-anim (-> self draw art-group data 84)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) - (set! (-> *run-attack-mods* turnvv) 0.0) - ) - (suspend) - (let ((s5-1 (-> self skel root-channel 0))) - (set! (-> s5-1 param 0) (ja-aframe (the-as float 9.0) 0)) - (set! (-> s5-1 param 1) 1.0) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let - ((s5-2 - (vector-z-quaternion! - (new 'stack-no-clear 'vector) - (-> self control quat) - ) - ) - ) - (set! (-> s5-2 y) 0.0) - (vector-normalize! s5-2 (-> *TARGET-bank* yellow-projectile-speed)) - (when - (and - (= (-> self fact-info-target eco-type) 1) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (let ((gp-1 (get-process *default-dead-pool* projectile-yellow #x4000))) - (set! gp-0 (ppointer->handle (when gp-1 - (let - ((t9-12 - (method-of-type - projectile-yellow - activate - ) - ) - ) - (t9-12 - (the-as projectile-yellow gp-1) - self - 'projectile-yellow - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-1 - projectile-init-by-other - (-> self entity) - (vector<-cspace! - (new 'stack-no-clear 'vector) - (-> self node-list data 23) - ) - s5-2 - (if - (>= - (-> self fact-info-target eco-level) - (-> *FACT-bank* eco-level-max) - ) - 25 - 9 - ) - #f - ) - (-> gp-1 ppointer) - ) - ) - ) - ) - (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) - ) - ) - (let ((s5-3 (-> self skel root-channel 0))) - (set! - (-> s5-3 frame-group) - (the-as art-joint-anim (-> self draw art-group data 84)) - ) - (set! - (-> s5-3 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 84)) - data - 0 - length + (case (-> (level-get-target-inside *level*) name) + (('maincave) + (level-hint-spawn + (game-text-id daxter-maybe-you-can-shoot-better-goggles) + "sksp0328" + (the-as entity #f) + *entity-pool* + (game-task none) + ) ) - -1 ) - ) - ) - (set! (-> s5-3 param 1) 1.0) - (set! (-> s5-3 frame-num) (ja-aframe (the-as float 9.0) 0)) - (joint-control-channel-group! - s5-3 - (the-as art-joint-anim (-> self draw art-group data 84)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (if - (or - (< - (the-as - uint - (- - (-> *display* base-frame-counter) - (the-as int (-> self control unknown-uint30)) + (let ((s5-0 (-> self skel root-channel 0))) + (set! (-> s5-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 84))) + (set! (-> s5-0 param 0) (ja-aframe (the-as float 9.0) 0)) + (set! (-> s5-0 param 1) 1.0) + (set! (-> s5-0 frame-num) 0.0) + (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 84)) num-func-seek!) + ) + (until (ja-done? 0) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (set! (-> *run-attack-mods* turnvv) 0.0) + ) + (suspend) + (let ((s5-1 (-> self skel root-channel 0))) + (set! (-> s5-1 param 0) (ja-aframe (the-as float 9.0) 0)) + (set! (-> s5-1 param 1) 1.0) + (joint-control-channel-group-eval! s5-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((s5-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control quat)))) + (set! (-> s5-2 y) 0.0) + (vector-normalize! s5-2 (-> *TARGET-bank* yellow-projectile-speed)) + (when (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) + (let ((gp-1 (get-process *default-dead-pool* projectile-yellow #x4000))) + (set! gp-0 (ppointer->handle + (when gp-1 + (let ((t9-12 (method-of-type projectile-yellow activate))) + (t9-12 (the-as projectile-yellow gp-1) self 'projectile-yellow (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-1 + projectile-init-by-other + (-> self entity) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 23)) + s5-2 + (if (>= (-> self fact-info-target eco-level) (-> *FACT-bank* eco-level-max)) + 25 + 9 + ) + #f + ) + (-> gp-1 ppointer) + ) + ) + ) + ) + (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) + ) + ) + (let ((s5-3 (-> self skel root-channel 0))) + (set! (-> s5-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 84))) + (set! (-> s5-3 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 84)) data 0 length) -1)) + ) + (set! (-> s5-3 param 1) 1.0) + (set! (-> s5-3 frame-num) (ja-aframe (the-as float 9.0) 0)) + (joint-control-channel-group! s5-3 (the-as art-joint-anim (-> self draw art-group data 84)) num-func-seek!) + ) + (until (ja-done? 0) + (if (or + (< (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint30)))) + (the-as uint 30) + ) + (= (-> self control unknown-uint31) 1) + ) + (send-event (handle->process gp-0) 'die) + ) + (suspend) + (let ((a0-32 (-> self skel root-channel 0))) + (set! (-> a0-32 param 0) (the float (+ (-> a0-32 frame-group data 0 length) -1))) + (set! (-> a0-32 param 1) 1.0) + (joint-control-channel-group-eval! a0-32 (the-as art-joint-anim #f) num-func-seek!) ) - ) - (the-as uint 30) ) - (= (-> self control unknown-uint31) 1) - ) - (send-event (handle->process gp-0) 'die) ) - (suspend) - (let ((a0-32 (-> self skel root-channel 0))) - (set! - (-> a0-32 param 0) - (the float (+ (-> a0-32 frame-group data 0 length) -1)) - ) - (set! (-> a0-32 param 1) 1.0) - (joint-control-channel-group-eval! - a0-32 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (if (logtest? (-> self control status) 1) + (go target-stance) + (go target-falling #f) + ) + (none) ) - (if (logtest? (-> self control status) 1) - (go target-stance) - (go target-falling #f) - ) - (none) - ) :post (the-as (function none :behavior target) target-post) ) -(define - *yellow-jump-mods* - (new 'static 'surface - :name 'run - :tiltv 65536.0 - :tiltvv 131072.0 - :transv-max 40960.0 - :target-speed 40960.0 - :fric 0.1 - :nonlin-fric-dist 1.0 - :slip-factor 1.0 - :slide-factor 1.0 - :slope-up-factor 1.0 - :slope-down-factor 1.0 - :slope-slip-angle 1.0 - :impact-fric 1.0 - :bend-factor 1.0 - :bend-speed 1.0 - :alignv 1.0 - :slope-up-traction 1.0 - :align-speed 1.0 - :mode 'air - :flags #x800 - ) - ) +(define *yellow-jump-mods* (new 'static 'surface + :name 'run + :tiltv 65536.0 + :tiltvv 131072.0 + :transv-max 40960.0 + :target-speed 40960.0 + :fric 0.1 + :nonlin-fric-dist 1.0 + :slip-factor 1.0 + :slide-factor 1.0 + :slope-up-factor 1.0 + :slope-down-factor 1.0 + :slope-slip-angle 1.0 + :impact-fric 1.0 + :bend-factor 1.0 + :bend-speed 1.0 + :alignv 1.0 + :slope-up-traction 1.0 + :align-speed 1.0 + :mode 'air + :flags #x800 + ) + ) (defstate target-yellow-jump-blast (target) :event target-standard-event-handler :enter (behavior () - (set! (-> self control unknown-surface00) *yellow-jump-mods*) - (let ((gp-0 (new-stack-vector0))) - (let - ((f0-1 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) + (set! (-> self control unknown-surface00) *yellow-jump-mods*) + (let ((gp-0 (new-stack-vector0))) + (let ((f0-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) + 0.0 + (vector-! gp-0 (-> self control transv) (vector-float*! gp-0 (-> self control dynam gravity-normal) f0-1)) + ) + (let* ((f0-2 (vector-length gp-0)) + (f1-1 f0-2) + (f2-0 46917.434) + ) + (vector+! + (-> self control transv) + (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-0) + (vector-float*! gp-0 gp-0 (/ f0-2 f1-1)) + ) ) - ) ) - 0.0 - (vector-! - gp-0 - (-> self control transv) - (vector-float*! gp-0 (-> self control dynam gravity-normal) f0-1) - ) - ) - (let* ((f0-2 (vector-length gp-0)) - (f1-1 f0-2) - (f2-0 46917.434) - ) - (vector+! - (-> self control transv) - (vector-float*! - (-> self control transv) - (-> self control dynam gravity-normal) - f2-0 - ) - (vector-float*! gp-0 gp-0 (/ f0-2 f1-1)) - ) - ) + (none) ) - (none) - ) :exit (behavior () - (rot->dir-targ! (-> self control)) - (set! (-> self control unknown-dword31) (-> *display* base-frame-counter)) - (target-exit) - (none) - ) + (rot->dir-targ! (-> self control)) + (set! (-> self control unknown-dword31) (-> *display* base-frame-counter)) + (target-exit) + (none) + ) :code (behavior () - (ja-channel-push! 1 22) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 86)) - ) - (set! (-> gp-0 param 0) (ja-aframe (the-as float 15.0) 0)) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) 0.0) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 86)) - num-func-seek! - ) - ) - (until (ja-done? 0) + (ja-channel-push! 1 22) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 86))) + (set! (-> gp-0 param 0) (ja-aframe (the-as float 15.0) 0)) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) 0.0) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 86)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe (the-as float 15.0) 0)) + (set! (-> gp-1 param 1) 1.0) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe (the-as float 15.0) 0)) - (set! (-> gp-1 param 1) 1.0) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (suspend) - (let ((gp-2 (new-stack-vector0))) - (let - ((f0-6 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) + (let ((gp-2 (new-stack-vector0))) + (let ((f0-6 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) + 0.0 + (vector-! gp-2 (-> self control transv) (vector-float*! gp-2 (-> self control dynam gravity-normal) f0-6)) ) - ) - ) - 0.0 - (vector-! - gp-2 - (-> self control transv) - (vector-float*! gp-2 (-> self control dynam gravity-normal) f0-6) - ) - ) - (let* ((f0-7 (vector-length gp-2)) - (f1-1 f0-7) - (f2-0 46917.434) - ) - (vector+! - (-> self control transv) - (vector-float*! - (-> self control transv) - (-> self control dynam gravity-normal) - f2-0 - ) - (vector-float*! gp-2 gp-2 (/ f0-7 f1-1)) - ) - ) - ) - (let ((a0-13 (-> self skel root-channel 0))) - (set! - (-> a0-13 param 0) - (the float (+ (-> a0-13 frame-group data 0 length) -1)) - ) - (set! (-> a0-13 param 1) 1.0) - (joint-control-channel-group-eval! - a0-13 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (let ((gp-3 (get-process *default-dead-pool* projectile-yellow #x4000))) - (when gp-3 - (let ((t9-9 (method-of-type projectile-yellow activate))) - (t9-9 - (the-as projectile-yellow gp-3) - self - 'projectile-yellow - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-3 - projectile-init-by-other - (-> self entity) - (-> self control unknown-vector90) - (vector-float*! - (new 'stack-no-clear 'vector) - (vector-z-quaternion! - (new 'stack-no-clear 'vector) - (-> self control quat) + (let* ((f0-7 (vector-length gp-2)) + (f1-1 f0-7) + (f2-0 46917.434) + ) + (vector+! + (-> self control transv) + (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-0) + (vector-float*! gp-2 gp-2 (/ f0-7 f1-1)) + ) ) - (the-as float (-> *TARGET-bank* yellow-projectile-speed)) - ) - (if - (>= (-> self fact-info-target eco-level) (-> *FACT-bank* eco-level-max)) - 16 - 0 - ) - #f ) - (-> gp-3 ppointer) - ) - ) - (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) - (let ((gp-4 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-4) 30) - (suspend) - ) - ) - (let ((gp-5 (-> self skel root-channel 0))) - (set! - (-> gp-5 frame-group) - (the-as art-joint-anim (-> self draw art-group data 86)) - ) - (set! - (-> gp-5 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 86)) - data - 0 - length + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 param 0) (the float (+ (-> a0-13 frame-group data 0 length) -1))) + (set! (-> a0-13 param 1) 1.0) + (joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-seek!) + ) + (let ((gp-3 (get-process *default-dead-pool* projectile-yellow #x4000))) + (when gp-3 + (let ((t9-9 (method-of-type projectile-yellow activate))) + (t9-9 (the-as projectile-yellow gp-3) self 'projectile-yellow (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-3 + projectile-init-by-other + (-> self entity) + (-> self control unknown-vector90) + (vector-float*! + (new 'stack-no-clear 'vector) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control quat)) + (the-as float (-> *TARGET-bank* yellow-projectile-speed)) + ) + (if (>= (-> self fact-info-target eco-level) (-> *FACT-bank* eco-level-max)) + 16 + 0 + ) + #f + ) + (-> gp-3 ppointer) ) - -1 - ) ) - ) - (set! (-> gp-5 param 1) 1.0) - (set! (-> gp-5 frame-num) (ja-frame-num 0)) - (joint-control-channel-group! - gp-5 - (the-as art-joint-anim (-> self draw art-group data 86)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-22 (-> self skel root-channel 0))) - (set! - (-> a0-22 param 0) - (the float (+ (-> a0-22 frame-group data 0 length) -1)) + (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) + (let ((gp-4 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-4) 30) + (suspend) + ) ) - (set! (-> a0-22 param 1) 1.0) - (joint-control-channel-group-eval! - a0-22 - (the-as art-joint-anim #f) - num-func-seek! + (let ((gp-5 (-> self skel root-channel 0))) + (set! (-> gp-5 frame-group) (the-as art-joint-anim (-> self draw art-group data 86))) + (set! (-> gp-5 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 86)) data 0 length) -1)) + ) + (set! (-> gp-5 param 1) 1.0) + (set! (-> gp-5 frame-num) (ja-frame-num 0)) + (joint-control-channel-group! gp-5 (the-as art-joint-anim (-> self draw art-group data 86)) num-func-seek!) ) - ) + (until (ja-done? 0) + (suspend) + (let ((a0-22 (-> self skel root-channel 0))) + (set! (-> a0-22 param 0) (the float (+ (-> a0-22 frame-group data 0 length) -1))) + (set! (-> a0-22 param 1) 1.0) + (joint-control-channel-group-eval! a0-22 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (if (logtest? (-> self control status) 1) + (go target-stance) + (go target-falling #f) + ) + (none) ) - (if (logtest? (-> self control status) 1) - (go target-stance) - (go target-falling #f) - ) - (none) - ) :post target-no-stick-post ) @@ -3192,166 +2078,97 @@ :exit target-exit :trans - (behavior () - (slide-down-test) - (none) - ) + (behavior () (slide-down-test) (none)) :code (behavior ((arg0 object) (arg1 float)) - (set! (-> self neck flex-blend) 0.0) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (if (= arg1 (-> *FACT-bank* eco-full-inc)) - (set! (-> self control unknown-surface00) *double-jump-mods*) - (set! (-> self control unknown-surface00) *walk-mods*) - ) - (ja-channel-push! 1 15) - (let ((s5-0 (-> self skel root-channel 0))) - (set! - (-> s5-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 87)) - ) - (set! - (-> s5-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 87)) - data - 0 - length + (set! (-> self neck flex-blend) 0.0) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (if (= arg1 (-> *FACT-bank* eco-full-inc)) + (set! (-> self control unknown-surface00) *double-jump-mods*) + (set! (-> self control unknown-surface00) *walk-mods*) ) - -1 - ) + (ja-channel-push! 1 15) + (let ((s5-0 (-> self skel root-channel 0))) + (set! (-> s5-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 87))) + (set! (-> s5-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 87)) data 0 length) -1)) + ) + (set! (-> s5-0 param 1) (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) + 2.0 + 3.0 + ) + ) + ) + (set! (-> s5-0 frame-num) (ja-aframe + (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) + (-> (new 'static 'array int32 1 0) 0) + 6.0 + ) + ) + 0 + ) + ) + (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 87)) num-func-seek!) ) - ) - (set! - (-> s5-0 param 1) - (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) - 2.0 - 3.0 + (until (ja-done? 0) + (if (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) ) - ) - ) - (set! - (-> s5-0 frame-num) - (ja-aframe (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) - (-> (new 'static 'array int32 1 0) 0) - 6.0 - ) - ) - 0 - ) - ) - (joint-control-channel-group! - s5-0 - (the-as art-joint-anim (-> self draw art-group data 87)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (if - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons x) + ) + (zero? (logand (-> self water flags) 512)) + (zero? (logand (-> self state-flags) 2048)) + ) + (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 + (if (and + (logtest? + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (pad-buttons circle) + ) + (can-feet?) + ) + (go target-attack-air #f) ) - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 - ) + (when (can-hands? #f) + (if (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) + (go target-yellow-jump-blast) + (go target-running-attack) + ) ) - (pad-buttons x) - ) - (zero? (logand (-> self water flags) 512)) - (zero? (logand (-> self state-flags) 2048)) - ) - (go - target-jump - (-> *TARGET-bank* jump-height-min) - (-> *TARGET-bank* jump-height-max) - (the-as surface #f) - ) - ) - (if - (and - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 + (TODO-RENAME-9 (-> self align)) + (TODO-RENAME-10 + (-> self align) + 2 + (the-as float 1.0) + (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) + 2.0 + 1.0 + ) + ) + (the-as float 1.0) + ) + (suspend) + (let ((a0-30 (-> self skel root-channel 0))) + (set! (-> a0-30 param 0) (the float (+ (-> a0-30 frame-group data 0 length) -1))) + (set! (-> a0-30 param 1) (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) + 2.0 + 3.0 + ) + ) + ) + (joint-control-channel-group-eval! a0-30 (the-as art-joint-anim #f) num-func-seek!) ) - (pad-buttons circle) - ) - (can-feet?) ) - (go target-attack-air #f) - ) - (when (can-hands? #f) - (if - (and - (= (-> self fact-info-target eco-type) 1) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (go target-yellow-jump-blast) - (go target-running-attack) - ) - ) - (TODO-RENAME-9 (-> self align)) - (TODO-RENAME-10 - (-> self align) - 2 - (the-as float 1.0) - (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) - 2.0 - 1.0 - ) - ) - (the-as float 1.0) - ) - (suspend) - (let ((a0-30 (-> self skel root-channel 0))) - (set! - (-> a0-30 param 0) - (the float (+ (-> a0-30 frame-group data 0 length) -1)) - ) - (set! - (-> a0-30 param 1) - (the-as float (if (= arg1 (-> *FACT-bank* eco-full-inc)) - 2.0 - 3.0 - ) - ) - ) - (joint-control-channel-group-eval! - a0-30 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) + (go target-falling 'target-eco-powerup) + (none) ) - (go target-falling 'target-eco-powerup) - (none) - ) :post (the-as (function none :behavior target) target-post) ) @@ -3361,144 +2178,76 @@ target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *wade-mods*) - (set-zero! (-> self water bob)) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self control unknown-surface00) *wade-mods*) + (set-zero! (-> self water bob)) + (none) + ) :exit (behavior () - (target-state-hook-exit) - (target-exit) - (let ((v1-1 (-> self skel effect))) - (set! (-> v1-1 channel-offset) 0) + (target-state-hook-exit) + (target-exit) + (let ((v1-1 (-> self skel effect))) + (set! (-> v1-1 channel-offset) 0) + ) + 0 + (none) ) - 0 - (none) - ) :trans (behavior () - ((-> self state-hook)) - (when - (and - (zero? (logand (-> self water flags) 1024)) - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self water wade-time)) - ) - 15 + ((-> self state-hook)) + (when (and + (zero? (logand (-> self water flags) 1024)) + (>= (- (-> *display* base-frame-counter) (the-as int (-> self water wade-time))) 15) + ) + (if (logtest? (-> self water flags) 2048) + (go target-swim-stance) + (go target-stance) + ) ) - ) - (if (logtest? (-> self water flags) 2048) - (go target-swim-stance) - (go target-stance) - ) - ) - (if - (and - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-abs - 0 - ) - (pad-buttons l1 r1) - ) - (can-duck?) - ) - (go target-duck-stance) - ) - (if - (!= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed - ) - 0.0 - ) - (go target-wade-walk) - ) - (if - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) + (if (and + (logtest? + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) + (pad-buttons l1 r1) + ) + (can-duck?) + ) + (go target-duck-stance) ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 + (if (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + (go target-wade-walk) ) - ) - (pad-buttons x) + (if (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons x) + ) + (can-jump? #f) + ) + (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) + ) + (when (and + (logtest? + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (pad-buttons circle) + ) + (can-feet?) + ) + (sound-play-by-name (static-sound-name "swim-stroke") (new-sound-id) 1024 0 0 1 #t) + (dummy-13 (-> self water) (the-as float 1.4) (-> self control trans) 0 (-> self control transv)) + (go target-attack) ) - (can-jump? #f) - ) - (go - target-jump - (-> *TARGET-bank* jump-height-min) - (-> *TARGET-bank* jump-height-max) - (the-as surface #f) - ) + (if (can-hands? #t) + (go target-running-attack) + ) + (none) ) - (when - (and - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (pad-buttons circle) - ) - (can-feet?) - ) - (sound-play-by-name - (static-sound-name "swim-stroke") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (dummy-13 - (-> self water) - (the-as float 1.4) - (-> self control trans) - 0 - (-> self control transv) - ) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (none) - ) :code (-> target-stance code) :post @@ -3514,547 +2263,352 @@ (-> target-wade-stance exit) :trans (behavior () - ((-> self state-hook)) - (when - (and - (zero? (logand (-> self water flags) 1024)) - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self water wade-time)) - ) - 30 + ((-> self state-hook)) + (when (and + (zero? (logand (-> self water flags) 1024)) + (>= (- (-> *display* base-frame-counter) (the-as int (-> self water wade-time))) 30) + ) + (if (logtest? (-> self water flags) 2048) + (go target-swim-stance) + (go target-stance) + ) ) - ) - (if (logtest? (-> self water flags) 2048) - (go target-swim-stance) - (go target-stance) - ) - ) - (if - (= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed - ) - 0.0 - ) - (go target-wade-stance) - ) - (if - (and - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-abs - 0 - ) - (pad-buttons l1 r1) - ) - (can-duck?) - ) - (go target-duck-walk) - ) - (if - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) + (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + (go target-wade-stance) ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 + (if (and + (logtest? + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) + (pad-buttons l1 r1) + ) + (can-duck?) + ) + (go target-duck-walk) ) - ) - (pad-buttons x) + (if (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons x) + ) + (can-jump? #f) + ) + (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) + ) + (when (and + (logtest? + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (pad-buttons circle) + ) + (can-feet?) + ) + (sound-play-by-name (static-sound-name "swim-stroke") (new-sound-id) 1024 0 0 1 #t) + (dummy-13 (-> self water) (the-as float 1.4) (-> self control trans) 0 (-> self control transv)) + (go target-attack) ) - (can-jump? #f) - ) - (go - target-jump - (-> *TARGET-bank* jump-height-min) - (-> *TARGET-bank* jump-height-max) - (the-as surface #f) - ) + (if (can-hands? #t) + (go target-running-attack) + ) + (none) ) - (when - (and - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (pad-buttons circle) - ) - (can-feet?) - ) - (sound-play-by-name - (static-sound-name "swim-stroke") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (dummy-13 - (-> self water) - (the-as float 1.4) - (-> self control trans) - 0 - (-> self control transv) - ) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (none) - ) :code (behavior () - (let ((gp-0 105) - (f30-0 0.0) - ) - (let ((v1-2 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + (let ((gp-0 105) + (f30-0 0.0) + ) + (let ((v1-2 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + ) + (cond + ((or (= v1-2 (-> self draw art-group data 23)) (= v1-2 (-> self draw art-group data 18))) + (set! gp-0 15) + (set! f30-0 (ja-frame-num 0)) + ) + ((let ((v1-9 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) ) - ) - ) - (cond - ((or - (= v1-2 (-> self draw art-group data 23)) - (= v1-2 (-> self draw art-group data 18)) - ) - (set! gp-0 15) - (set! f30-0 (ja-frame-num 0)) - ) - ((let ((v1-9 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) + (or (= v1-9 (-> self draw art-group data 34)) (= v1-9 (-> self draw art-group data 38))) ) - (or - (= v1-9 (-> self draw art-group data 34)) - (= v1-9 (-> self draw art-group data 38)) - ) - ) - (set! gp-0 30) - ) - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + (set! gp-0 30) ) - (-> self draw art-group data 92) - ) - (set! gp-0 120) - ) - ) - ) - (cond - ((and (= (ja-group-size) 6) (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 89) - ) - ) - ) - (else - (ja-channel-push! 6 gp-0) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 dist) (-> *TARGET-bank* wade-shallow-walk-cycle-dist)) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 89)) - num-func-identity - ) - (set! (-> gp-1 frame-num) f30-0) - ) - (let ((gp-2 (-> self skel root-channel 1))) - (set! (-> gp-2 dist) (-> *TARGET-bank* wade-deep-walk-cycle-dist)) - (joint-control-channel-group-eval! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 90)) - num-func-identity - ) - (set! (-> gp-2 frame-num) f30-0) - ) - (let ((gp-3 (-> self skel root-channel 2))) - (set! (-> gp-3 frame-interp) 0.0) - (set! (-> gp-3 dist) (-> *TARGET-bank* walk-cycle-dist)) - (joint-control-channel-group-eval! - gp-3 - (the-as art-joint-anim (-> self draw art-group data 23)) - num-func-identity - ) - (set! (-> gp-3 frame-num) f30-0) - ) - (let ((gp-4 (-> self skel root-channel 3))) - (set! (-> gp-4 frame-interp) 0.0) - (set! (-> gp-4 dist) (-> *TARGET-bank* walk-down-cycle-dist)) - (joint-control-channel-group-eval! - gp-4 - (the-as art-joint-anim (-> self draw art-group data 25)) - num-func-identity - ) - (set! (-> gp-4 frame-num) f30-0) - ) - (let ((gp-5 (-> self skel root-channel 4))) - (set! (-> gp-5 frame-interp) 0.0) - (set! (-> gp-5 dist) (-> *TARGET-bank* walk-side-cycle-dist)) - (joint-control-channel-group-eval! - gp-5 - (the-as art-joint-anim (-> self draw art-group data 27)) - num-func-identity - ) - (set! (-> gp-5 frame-num) f30-0) - ) - ) - ) - ) - (set! (-> self skel root-channel 2 command) 'push) - (set! (-> self skel root-channel 5 command) 'stack) - (let ((f30-1 0.0) - (f28-0 0.0) - (f26-0 - (lerp-scale - (the-as float 1.0) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (-> self control unknown-float01) - (the-as float 16384.0) - (the-as float 32768.0) + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 92) + ) + (set! gp-0 120) ) ) - (gp-6 0) - ) - (while #t - (let - ((f0-10 (fmax -1.0 (fmin 1.0 (* 2.0 (-> self control unknown-float61))))) - (f24-0 (fmax -1.0 (fmin 1.0 (* 1.6 (-> self control unknown-float62))))) - ) - (let ((f1-4 (fabs (- f0-10 f30-1)))) - (set! f30-1 (seek f30-1 f0-10 (fmax 0.05 (fmin 0.2 (* 0.25 f1-4))))) - ) - (let ((f0-14 (fabs (- f24-0 f28-0)))) - (set! f28-0 (seek f28-0 f24-0 (fmax 0.05 (fmin 0.2 (* 0.25 f0-14))))) - ) - ) - (let ((v1-84 (-> self skel root-channel 3))) - (set! (-> v1-84 dist) (-> *TARGET-bank* walk-down-cycle-dist)) - (set! - (-> v1-84 frame-group) - (the-as art-joint-anim (-> self draw art-group data 25)) - ) - ) - (cond - ((>= f30-1 0.0) - (let ((v1-87 (-> self skel root-channel 3))) - (set! (-> v1-87 frame-interp) (fabs f30-1)) - (set! (-> v1-87 dist) (-> *TARGET-bank* walk-up-cycle-dist)) - (set! - (-> v1-87 frame-group) - (the-as art-joint-anim (-> self draw art-group data 24)) - ) ) - ) - (else - (let ((v1-90 (-> self skel root-channel 3))) - (set! (-> v1-90 frame-interp) (fabs f30-1)) - (set! (-> v1-90 dist) (-> *TARGET-bank* walk-down-cycle-dist)) - (set! - (-> v1-90 frame-group) - (the-as art-joint-anim (-> self draw art-group data 25)) - ) - ) - ) - ) - (cond - ((>= f28-0 0.0) - (let ((v1-93 (-> self skel root-channel 4))) - (set! (-> v1-93 frame-interp) (fabs f28-0)) - (set! (-> v1-93 dist) (-> *TARGET-bank* walk-side-cycle-dist)) - (set! - (-> v1-93 frame-group) - (the-as art-joint-anim (-> self draw art-group data 26)) - ) - ) - ) - (else - (let ((v1-96 (-> self skel root-channel 4))) - (set! (-> v1-96 frame-interp) (fabs f28-0)) - (set! (-> v1-96 dist) (-> *TARGET-bank* walk-side-cycle-dist)) - (set! - (-> v1-96 frame-group) - (the-as art-joint-anim (-> self draw art-group data 27)) - ) - ) - ) - ) - (let* ((f0-30 (- (-> self water height) (-> self control trans y))) - (f24-1 - (lerp-scale - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 1.0) - f0-30 - (lerp - (-> self water wade-height) - (-> self water swim-height) - (the-as float 0.25) - ) - (lerp - (-> self water wade-height) - (-> self water swim-height) - (the-as float 0.75) - ) + (cond + ((and (= (ja-group-size) 6) (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 89) + ) ) + ) + (else + (ja-channel-push! 6 gp-0) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 dist) (-> *TARGET-bank* wade-shallow-walk-cycle-dist)) + (joint-control-channel-group-eval! + gp-1 + (the-as art-joint-anim (-> self draw art-group data 89)) + num-func-identity + ) + (set! (-> gp-1 frame-num) f30-0) + ) + (let ((gp-2 (-> self skel root-channel 1))) + (set! (-> gp-2 dist) (-> *TARGET-bank* wade-deep-walk-cycle-dist)) + (joint-control-channel-group-eval! + gp-2 + (the-as art-joint-anim (-> self draw art-group data 90)) + num-func-identity + ) + (set! (-> gp-2 frame-num) f30-0) + ) + (let ((gp-3 (-> self skel root-channel 2))) + (set! (-> gp-3 frame-interp) 0.0) + (set! (-> gp-3 dist) (-> *TARGET-bank* walk-cycle-dist)) + (joint-control-channel-group-eval! + gp-3 + (the-as art-joint-anim (-> self draw art-group data 23)) + num-func-identity + ) + (set! (-> gp-3 frame-num) f30-0) + ) + (let ((gp-4 (-> self skel root-channel 3))) + (set! (-> gp-4 frame-interp) 0.0) + (set! (-> gp-4 dist) (-> *TARGET-bank* walk-down-cycle-dist)) + (joint-control-channel-group-eval! + gp-4 + (the-as art-joint-anim (-> self draw art-group data 25)) + num-func-identity + ) + (set! (-> gp-4 frame-num) f30-0) + ) + (let ((gp-5 (-> self skel root-channel 4))) + (set! (-> gp-5 frame-interp) 0.0) + (set! (-> gp-5 dist) (-> *TARGET-bank* walk-side-cycle-dist)) + (joint-control-channel-group-eval! + gp-5 + (the-as art-joint-anim (-> self draw art-group data 27)) + num-func-identity + ) + (set! (-> gp-5 frame-num) f30-0) + ) + ) + ) + ) + (set! (-> self skel root-channel 2 command) 'push) + (set! (-> self skel root-channel 5 command) 'stack) + (let ((f30-1 0.0) + (f28-0 0.0) + (f26-0 (lerp-scale + (the-as float 1.0) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (-> self control unknown-float01) + (the-as float 16384.0) + (the-as float 32768.0) + ) + ) + (gp-6 0) + ) + (while #t + (let ((f0-10 (fmax -1.0 (fmin 1.0 (* 2.0 (-> self control unknown-float61))))) + (f24-0 (fmax -1.0 (fmin 1.0 (* 1.6 (-> self control unknown-float62))))) + ) + (let ((f1-4 (fabs (- f0-10 f30-1)))) + (set! f30-1 (seek f30-1 f0-10 (fmax 0.05 (fmin 0.2 (* 0.25 f1-4))))) + ) + (let ((f0-14 (fabs (- f24-0 f28-0)))) + (set! f28-0 (seek f28-0 f24-0 (fmax 0.05 (fmin 0.2 (* 0.25 f0-14))))) + ) + ) + (let ((v1-84 (-> self skel root-channel 3))) + (set! (-> v1-84 dist) (-> *TARGET-bank* walk-down-cycle-dist)) + (set! (-> v1-84 frame-group) (the-as art-joint-anim (-> self draw art-group data 25))) + ) + (cond + ((>= f30-1 0.0) + (let ((v1-87 (-> self skel root-channel 3))) + (set! (-> v1-87 frame-interp) (fabs f30-1)) + (set! (-> v1-87 dist) (-> *TARGET-bank* walk-up-cycle-dist)) + (set! (-> v1-87 frame-group) (the-as art-joint-anim (-> self draw art-group data 24))) + ) + ) + (else + (let ((v1-90 (-> self skel root-channel 3))) + (set! (-> v1-90 frame-interp) (fabs f30-1)) + (set! (-> v1-90 dist) (-> *TARGET-bank* walk-down-cycle-dist)) + (set! (-> v1-90 frame-group) (the-as art-joint-anim (-> self draw art-group data 25))) + ) + ) + ) + (cond + ((>= f28-0 0.0) + (let ((v1-93 (-> self skel root-channel 4))) + (set! (-> v1-93 frame-interp) (fabs f28-0)) + (set! (-> v1-93 dist) (-> *TARGET-bank* walk-side-cycle-dist)) + (set! (-> v1-93 frame-group) (the-as art-joint-anim (-> self draw art-group data 26))) + ) + ) + (else + (let ((v1-96 (-> self skel root-channel 4))) + (set! (-> v1-96 frame-interp) (fabs f28-0)) + (set! (-> v1-96 dist) (-> *TARGET-bank* walk-side-cycle-dist)) + (set! (-> v1-96 frame-group) (the-as art-joint-anim (-> self draw art-group data 27))) + ) + ) + ) + (let* ((f0-30 (- (-> self water height) (-> self control trans y))) + (f24-1 (lerp-scale + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 1.0) + f0-30 + (lerp (-> self water wade-height) (-> self water swim-height) (the-as float 0.25)) + (lerp (-> self water wade-height) (-> self water swim-height) (the-as float 0.75)) + ) + ) + ) + (let ((v1-108 (-> self skel effect))) + (set! (-> v1-108 channel-offset) (if (< 0.5 f24-1) + 1 + 0 + ) + ) + ) + 0 + (set! f26-0 (seek + f26-0 + (lerp-scale + (the-as float 1.0) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (-> self control unknown-float01) + (the-as float 16384.0) + (the-as float 32768.0) + ) + (* 4.0 (-> *display* seconds-per-frame)) + ) + ) + (set! (-> self skel root-channel 1 frame-interp) f24-1) + (let ((s5-2 (-> self skel root-channel 0))) + (set! (-> s5-2 param 0) (/ (-> self control unknown-float01) + (* 60.0 (/ (dummy-9 (-> self skel)) (-> *TARGET-bank* run-cycle-length))) + ) + ) + (joint-control-channel-group-eval! s5-2 (the-as art-joint-anim #f) num-func-loop!) + ) + (let ((s5-3 (-> self skel root-channel 5))) + (set! (-> s5-3 frame-interp) (lerp f26-0 (the-as float (-> (new 'static 'array int32 1 0) 0)) f24-1)) + ) + ) + (let ((a0-66 (-> self skel root-channel 1))) + (set! (-> a0-66 param 0) 0.0) + (joint-control-channel-group-eval! a0-66 (the-as art-joint-anim #f) num-func-chan) + ) + (let ((a0-67 (-> self skel root-channel 2))) + (set! (-> a0-67 param 0) 0.0) + (joint-control-channel-group-eval! a0-67 (the-as art-joint-anim #f) num-func-chan) + ) + (let ((a0-68 (-> self skel root-channel 3))) + (set! (-> a0-68 param 0) 0.0) + (joint-control-channel-group-eval! a0-68 (the-as art-joint-anim #f) num-func-chan) + ) + (let ((a0-69 (-> self skel root-channel 4))) + (set! (-> a0-69 param 0) 0.0) + (joint-control-channel-group-eval! a0-69 (the-as art-joint-anim #f) num-func-chan) + ) + (when (and + (>= (- (-> *display* base-frame-counter) gp-6) 60) + (< (- (-> self water height) (-> self control trans y)) 4096.0) + ) + (case (the int (ja-aframe-num 0)) + ((15 16 17 18) + (dummy-13 + (-> self water) + (the-as float 0.2) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 75)) + 0 + (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) + ) + (set! gp-6 (-> *display* base-frame-counter)) + ) + ((46 47 48 49) + (dummy-13 + (-> self water) + (the-as float 0.2) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 71)) + 0 + (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) + ) + (set! gp-6 (-> *display* base-frame-counter)) ) ) - (let ((v1-108 (-> self skel effect))) - (set! (-> v1-108 channel-offset) (if (< 0.5 f24-1) - 1 - 0 - ) - ) - ) - 0 - (set! - f26-0 - (seek - f26-0 - (lerp-scale - (the-as float 1.0) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (-> self control unknown-float01) - (the-as float 16384.0) - (the-as float 32768.0) - ) - (* 4.0 (-> *display* seconds-per-frame)) - ) - ) - (set! (-> self skel root-channel 1 frame-interp) f24-1) - (let ((s5-2 (-> self skel root-channel 0))) - (set! - (-> s5-2 param 0) - (/ - (-> self control unknown-float01) - (* - 60.0 - (/ (dummy-9 (-> self skel)) (-> *TARGET-bank* run-cycle-length)) ) - ) + (suspend) ) - (joint-control-channel-group-eval! - s5-2 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (let ((s5-3 (-> self skel root-channel 5))) - (set! - (-> s5-3 frame-interp) - (lerp f26-0 (the-as float (-> (new 'static 'array int32 1 0) 0)) f24-1) - ) - ) ) - (let ((a0-66 (-> self skel root-channel 1))) - (set! (-> a0-66 param 0) 0.0) - (joint-control-channel-group-eval! - a0-66 - (the-as art-joint-anim #f) - num-func-chan - ) - ) - (let ((a0-67 (-> self skel root-channel 2))) - (set! (-> a0-67 param 0) 0.0) - (joint-control-channel-group-eval! - a0-67 - (the-as art-joint-anim #f) - num-func-chan - ) - ) - (let ((a0-68 (-> self skel root-channel 3))) - (set! (-> a0-68 param 0) 0.0) - (joint-control-channel-group-eval! - a0-68 - (the-as art-joint-anim #f) - num-func-chan - ) - ) - (let ((a0-69 (-> self skel root-channel 4))) - (set! (-> a0-69 param 0) 0.0) - (joint-control-channel-group-eval! - a0-69 - (the-as art-joint-anim #f) - num-func-chan - ) - ) - (when - (and - (>= (- (-> *display* base-frame-counter) gp-6) 60) - (< (- (-> self water height) (-> self control trans y)) 4096.0) - ) - (case (the int (ja-aframe-num 0)) - ((15 16 17 18) - (dummy-13 - (-> self water) - (the-as float 0.2) - (vector<-cspace! - (new 'stack-no-clear 'vector) - (-> self node-list data 75) - ) - 0 - (vector-float*! - (new 'stack-no-clear 'vector) - (-> self control transv) - 2.5 - ) - ) - (set! gp-6 (-> *display* base-frame-counter)) - ) - ((46 47 48 49) - (dummy-13 - (-> self water) - (the-as float 0.2) - (vector<-cspace! - (new 'stack-no-clear 'vector) - (-> self node-list data 71) - ) - 0 - (vector-float*! - (new 'stack-no-clear 'vector) - (-> self control transv) - 2.5 - ) - ) - (set! gp-6 (-> *display* base-frame-counter)) - ) - ) - ) - (suspend) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior target) target-post) ) -(defbehavior - target-swim-tilt target - ((arg0 float) (arg1 float) (arg2 float) (arg3 float)) - (let - ((gp-0 - (vector-z-quaternion! - (new 'stack-no-clear 'vector) - (-> self control unknown-quaternion00) +(defbehavior target-swim-tilt target ((arg0 float) (arg1 float) (arg2 float) (arg3 float)) + (let ((gp-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00)))) + (let ((v1-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control dir-targ))) + (f0-1 + (fmin 1.0 (* arg0 (/ (-> self control unknown-float01) (-> self control unknown-surface01 target-speed)))) + ) + ) + (set! (-> self control unknown-float130) + (seek + (-> self control unknown-float130) + (fmax (fmin (* (+ f0-1 arg2) (fmax 0.5 (+ 0.5 (vector-dot gp-0 v1-2)))) arg3) (- arg3)) + (* arg1 (-> *display* seconds-per-frame)) + ) + ) + ) + (let ((a2-2 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00)))) + (forward-up-nopitch->quaternion (-> self control unknown-quaternion01) gp-0 a2-2) ) - ) ) - (let - ((v1-2 - (vector-z-quaternion! - (new 'stack-no-clear 'vector) - (-> self control dir-targ) - ) - ) - (f0-1 - (fmin - 1.0 - (* - arg0 - (/ - (-> self control unknown-float01) - (-> self control unknown-surface01 target-speed) - ) - ) - ) - ) - ) - (set! - (-> self control unknown-float130) - (seek - (-> self control unknown-float130) - (fmax - (fmin (* (+ f0-1 arg2) (fmax 0.5 (+ 0.5 (vector-dot gp-0 v1-2)))) arg3) - (- arg3) - ) - (* arg1 (-> *display* seconds-per-frame)) - ) - ) - ) - (let - ((a2-2 - (vector-y-quaternion! - (new 'stack-no-clear 'vector) - (-> self control unknown-quaternion00) - ) - ) - ) - (forward-up-nopitch->quaternion - (-> self control unknown-quaternion01) - gp-0 - a2-2 - ) - ) - ) (quaternion-rotate-x! - (-> self control unknown-quaternion01) - (-> self control unknown-quaternion01) - (the-as float (if (>= (-> self control unknown-float130) 0.0) - 16384.0 - -16384.0 - ) + (-> self control unknown-quaternion01) + (-> self control unknown-quaternion01) + (the-as float (if (>= (-> self control unknown-float130) 0.0) + 16384.0 + -16384.0 + ) + ) ) - ) - (set! - (-> self control unknown-float00) - (fabs (-> self control unknown-float130)) - ) + (set! (-> self control unknown-float00) (fabs (-> self control unknown-float130))) (if (= (-> self next-state name) 'target-swim-down) - (set! - (-> self control unknown-float131) - (seek - (-> self control unknown-float131) - (the-as float -6144.0) - (* 4096.0 (-> *display* seconds-per-frame)) - ) - ) - (set! - (-> self control unknown-float131) - (seek - (-> self control unknown-float131) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (* 2048.0 (-> *display* seconds-per-frame)) - ) - ) - ) + (set! (-> self control unknown-float131) + (seek (-> self control unknown-float131) (the-as float -6144.0) (* 4096.0 (-> *display* seconds-per-frame))) + ) + (set! (-> self control unknown-float131) (seek + (-> self control unknown-float131) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (* 2048.0 (-> *display* seconds-per-frame)) + ) + ) + ) (let ((f0-20 (-> self control unknown-float131))) - (set! (-> self control unknown-vector11 y) f0-20) - f0-20 - ) + (set! (-> self control unknown-vector11 y) f0-20) + f0-20 + ) ) (defstate target-swim-stance (target) @@ -4062,301 +2616,173 @@ target-standard-event-handler :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *swim-mods*) - (logior! (-> self water flags) 16) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self control unknown-surface00) *swim-mods*) + (logior! (-> self water flags) 16) + (none) + ) :exit (behavior () - (target-state-hook-exit) - (set! (-> self control unknown-surface00 target-speed) 28672.0) - (target-exit) - (when - (not - (or - (= (-> self next-state name) 'target-swim-stance) - (= (-> self next-state name) 'target-swim-walk) - (= (-> self next-state name) 'target-swim-down) - (= (-> self next-state name) 'target-swim-up) + (target-state-hook-exit) + (set! (-> self control unknown-surface00 target-speed) 28672.0) + (target-exit) + (when (not (or + (= (-> self next-state name) 'target-swim-stance) + (= (-> self next-state name) 'target-swim-walk) + (= (-> self next-state name) 'target-swim-down) + (= (-> self next-state name) 'target-swim-up) + ) + ) + (quaternion-identity! (-> self control unknown-quaternion01)) + (set! (-> self control unknown-float00) 0.0) ) - ) - (quaternion-identity! (-> self control unknown-quaternion01)) - (set! (-> self control unknown-float00) 0.0) + (none) ) - (none) - ) :trans (behavior () - ((-> self state-hook)) - (if - (and - (logtest? (-> self control status) 1) - (zero? (logand (-> self control status) 1024)) - ) - (set-zero! (-> self water bob)) - ) - (when - (and - (zero? (logand (-> self water flags) 2048)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) - ) - (if (logtest? (-> self water flags) 1024) - (go target-wade-stance) - (go target-stance) - ) - ) - (if - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) + ((-> self state-hook)) + (if (and (logtest? (-> self control status) 1) (zero? (logand (-> self control status) 1024))) + (set-zero! (-> self water bob)) ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 - ) - ) - (pad-buttons x) - ) - (can-jump? #f) - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self water enter-swim-time)) - ) - 30 - ) - ) - (go - target-swim-jump - (-> *TARGET-bank* swim-jump-height-min) - (-> *TARGET-bank* swim-jump-height-max) - ) - ) - (if - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 - ) - ) - (pad-buttons square) - ) - (< (-> *TARGET-bank* min-dive-depth) (target-height-above-ground)) - ) - (go target-swim-down) - ) - (if - (and - (!= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed - ) - 0.0 - ) - (let ((gp-0 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) + (when (and + (zero? (logand (-> self water flags) 2048)) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) ) - ) - (ja-aframe-num 0) - (if - (or - (and (= gp-0 (-> self draw art-group data 96)) #t) - (and (= gp-0 (-> self draw art-group data 95)) #t) - ) - #f - #t - ) + (if (logtest? (-> self water flags) 1024) + (go target-wade-stance) + (go target-stance) + ) ) - ) - (go target-swim-walk) + (if (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons x) + ) + (can-jump? #f) + (>= (- (-> *display* base-frame-counter) (the-as int (-> self water enter-swim-time))) 30) + ) + (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) + ) + (if (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons square) + ) + (< (-> *TARGET-bank* min-dive-depth) (target-height-above-ground)) + ) + (go target-swim-down) + ) + (if (and + (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + (let ((gp-0 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + ) + (ja-aframe-num 0) + (if (or (and (= gp-0 (-> self draw art-group data 96)) #t) (and (= gp-0 (-> self draw art-group data 95)) #t)) + #f + #t + ) + ) + ) + (go target-swim-walk) + ) + (target-swim-tilt + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 2.0) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 1.0) + ) + (none) ) - (target-swim-tilt - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 2.0) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 1.0) - ) - (none) - ) :code (behavior () - (let ((v1-2 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + (let ((v1-2 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) ) ) - ) - (cond - ((or - (= v1-2 (-> self draw art-group data 96)) - (= v1-2 (-> self draw art-group data 95)) - ) - (ja-channel-push! 1 22) - (let ((a0-8 (-> self skel root-channel 0))) - (set! - (-> a0-8 frame-group) - (the-as art-joint-anim (-> self draw art-group data 97)) - ) - (set! - (-> a0-8 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 97)) - data - 0 - length + (cond + ((or (= v1-2 (-> self draw art-group data 96)) (= v1-2 (-> self draw art-group data 95))) + (ja-channel-push! 1 22) + (let ((a0-8 (-> self skel root-channel 0))) + (set! (-> a0-8 frame-group) (the-as art-joint-anim (-> self draw art-group data 97))) + (set! (-> a0-8 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 97)) data 0 length) -1)) + ) + (set! (-> a0-8 param 1) + (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + 1.0 + 2.0 + ) + ) + ) + (set! (-> a0-8 frame-num) 0.0) + (joint-control-channel-group! a0-8 (the-as art-joint-anim (-> self draw art-group data 97)) num-func-seek!) ) - -1 - ) - ) - ) - (set! - (-> a0-8 param 1) - (the-as - float - (if - (= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed - ) - 0.0 - ) - 1.0 - 2.0 - ) - ) - ) - (set! (-> a0-8 frame-num) 0.0) - (joint-control-channel-group! - a0-8 - (the-as art-joint-anim (-> self draw art-group data 97)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 param 0) - (the float (+ (-> a0-9 frame-group data 0 length) -1)) - ) - (let - ((v1-41 - (if - (= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed - ) - 0.0 + (until (ja-done? 0) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1))) + (let ((v1-41 (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + 1.0 + 2.0 + ) + ) + ) + (set! (-> a0-9 param 1) (the-as float v1-41)) + ) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!) ) - 1.0 - 2.0 - ) ) - ) - (set! (-> a0-9 param 1) (the-as float v1-41)) ) + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 92) + ) + (ja-channel-push! 1 249) + ) + (else + (ja-channel-push! 1 45) + ) + ) + ) + (while #t + (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + gp-0 + (the-as art-joint-anim (-> self draw art-group data 91)) + num-func-identity ) - (-> self draw art-group data 92) - ) - (ja-channel-push! 1 249) - ) - (else - (ja-channel-push! 1 45) - ) - ) - ) - (while #t - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 91)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (until - (and (ja-done? 0) (= (-> self skel root-channel 0) (-> self skel channel))) - (suspend) - (when (= (-> self skel root-channel 0) (-> self skel channel)) - (let ((a0-21 (-> self skel root-channel 0))) - (set! - (-> a0-21 param 0) - (the float (+ (-> a0-21 frame-group data 0 length) -1)) + (set! (-> gp-0 frame-num) 0.0) ) - (set! (-> a0-21 param 1) 1.0) - (joint-control-channel-group-eval! - a0-21 - (the-as art-joint-anim #f) - num-func-seek! + (until (and (ja-done? 0) (= (-> self skel root-channel 0) (-> self skel channel))) + (suspend) + (when (= (-> self skel root-channel 0) (-> self skel channel)) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) (the float (+ (-> a0-21 frame-group data 0 length) -1))) + (set! (-> a0-21 param 1) 1.0) + (joint-control-channel-group-eval! a0-21 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - ) ) - ) + (none) ) - (none) - ) :post target-swim-post ) @@ -4366,299 +2792,156 @@ target-standard-event-handler :enter (behavior () - ((-> target-swim-stance enter)) - (die-on-next-update! (-> self water bob)) - (set! - (-> self control unknown-uint20) - (the-as uint (-> *display* base-frame-counter)) + ((-> target-swim-stance enter)) + (die-on-next-update! (-> self water bob)) + (set! (-> self control unknown-uint20) (the-as uint (-> *display* base-frame-counter))) + (none) ) - (none) - ) :exit (-> target-swim-stance exit) :trans (behavior () - ((-> self state-hook)) - (if - (and - (logtest? (-> self control status) 1) - (zero? (logand (-> self control status) 1024)) - ) - (set-zero! (-> self water bob)) - ) - (when - (and - (zero? (logand (-> self water flags) 2048)) - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self water swim-time)) - ) - 30 - ) - ) - (if (logtest? (-> self water flags) 1024) - (go target-wade-stance) - (go target-stance) - ) - ) - (if - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) + ((-> self state-hook)) + (if (and (logtest? (-> self control status) 1) (zero? (logand (-> self control status) 1024))) + (set-zero! (-> self water bob)) ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 + (when (and + (zero? (logand (-> self water flags) 2048)) + (>= (- (-> *display* base-frame-counter) (the-as int (-> self water swim-time))) 30) + ) + (if (logtest? (-> self water flags) 1024) + (go target-wade-stance) + (go target-stance) + ) + ) + (if (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons x) + ) + (can-jump? #f) + (>= (- (-> *display* base-frame-counter) (the-as int (-> self water enter-swim-time))) 30) + ) + (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) - ) - (pad-buttons x) - ) - (can-jump? #f) - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self water enter-swim-time)) - ) - 30 - ) - ) - (go - target-swim-jump - (-> *TARGET-bank* swim-jump-height-min) - (-> *TARGET-bank* swim-jump-height-max) - ) - ) - (if - (and - (logtest? - (logior - (logior - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 1 - ) + (if (and + (logtest? + (logior + (logior + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) + ) + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) + ) + (pad-buttons square) + ) + (< (-> *TARGET-bank* min-dive-depth) (target-height-above-ground)) + ) + (go target-swim-down) ) - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 2 + (cond + ((= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + (if (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) + (the-as uint 15) + ) + (go target-swim-stance) + ) + ) + (else + (set! (-> self control unknown-uint20) (the-as uint (-> *display* base-frame-counter))) ) - ) - (pad-buttons square) ) - (< (-> *TARGET-bank* min-dive-depth) (target-height-above-ground)) - ) - (go target-swim-down) + (target-swim-tilt + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 2.0) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 1.0) + ) + (none) ) - (cond - ((= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed - ) - 0.0 - ) - (if - (>= - (the-as - uint - (- - (-> *display* base-frame-counter) - (the-as int (-> self control unknown-uint20)) - ) - ) - (the-as uint 15) - ) - (go target-swim-stance) - ) - ) - (else - (set! - (-> self control unknown-uint20) - (the-as uint (-> *display* base-frame-counter)) - ) - ) - ) - (target-swim-tilt - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 2.0) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 1.0) - ) - (none) - ) :code (behavior () - (let ((v1-2 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + (let ((v1-2 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) ) ) - ) - (cond - ((or - (= v1-2 (-> self draw art-group data 96)) - (= v1-2 (-> self draw art-group data 95)) - (= v1-2 (-> self draw art-group data 97)) - ) - (ja-channel-push! 1 90) - ) - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 97) - ) - (ja-channel-push! 1 45) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 92)) - ) - (set! - (-> gp-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 92)) - data - 0 - length + (cond + ((or + (= v1-2 (-> self draw art-group data 96)) + (= v1-2 (-> self draw art-group data 95)) + (= v1-2 (-> self draw art-group data 97)) ) - -1 - ) + (ja-channel-push! 1 90) ) + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 97) + ) + (ja-channel-push! 1 45) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 92))) + (set! (-> gp-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 92)) data 0 length) -1)) + ) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe (the-as float 19.0) 0)) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 92)) num-func-seek!) + ) + (until (ja-done? 0) + (TODO-RENAME-9 (-> self align)) + (if (zero? (logand (-> self align flags) 1)) + (set! (-> self control unknown-surface00 target-speed) + (* (-> self align delta trans z) (-> self control unknown-surface01 alignv) (-> *display* frames-per-second)) + ) + ) + (suspend) + (let ((a0-19 (-> self skel root-channel 0))) + (set! (-> a0-19 param 0) (the float (+ (-> a0-19 frame-group data 0 length) -1))) + (set! (-> a0-19 param 1) 1.0) + (joint-control-channel-group-eval! a0-19 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (ja-channel-push! 1 45) + ) ) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) (ja-aframe (the-as float 19.0) 0)) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 92)) - num-func-seek! + ) + (while #t + (let ((a0-22 (-> self skel root-channel 0))) + (set! (-> a0-22 frame-group) (the-as art-joint-anim (-> self draw art-group data 92))) + (set! (-> a0-22 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 92)) data 0 length) -1)) + ) + (set! (-> a0-22 param 1) 1.0) + (set! (-> a0-22 frame-num) 0.0) + (joint-control-channel-group! a0-22 (the-as art-joint-anim (-> self draw art-group data 92)) num-func-seek!) ) - ) (until (ja-done? 0) - (TODO-RENAME-9 (-> self align)) - (if (zero? (logand (-> self align flags) 1)) - (set! - (-> self control unknown-surface00 target-speed) - (* - (-> self align delta trans z) - (-> self control unknown-surface01 alignv) - (-> *display* frames-per-second) + (TODO-RENAME-9 (-> self align)) + (if (zero? (logand (-> self align flags) 1)) + (set! (-> self control unknown-surface00 target-speed) + (* (-> self align delta trans z) (-> self control unknown-surface01 alignv) (-> *display* frames-per-second)) + ) + ) + (suspend) + (let ((a0-24 (-> self skel root-channel 0))) + (set! (-> a0-24 param 0) (the float (+ (-> a0-24 frame-group data 0 length) -1))) + (set! (-> a0-24 param 1) 1.0) + (joint-control-channel-group-eval! a0-24 (the-as art-joint-anim #f) num-func-seek!) ) - ) ) - (suspend) - (let ((a0-19 (-> self skel root-channel 0))) - (set! - (-> a0-19 param 0) - (the float (+ (-> a0-19 frame-group data 0 length) -1)) - ) - (set! (-> a0-19 param 1) 1.0) - (joint-control-channel-group-eval! - a0-19 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) ) - (else - (ja-channel-push! 1 45) - ) - ) + (none) ) - (while #t - (let ((a0-22 (-> self skel root-channel 0))) - (set! - (-> a0-22 frame-group) - (the-as art-joint-anim (-> self draw art-group data 92)) - ) - (set! - (-> a0-22 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 92)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-22 param 1) 1.0) - (set! (-> a0-22 frame-num) 0.0) - (joint-control-channel-group! - a0-22 - (the-as art-joint-anim (-> self draw art-group data 92)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (TODO-RENAME-9 (-> self align)) - (if (zero? (logand (-> self align flags) 1)) - (set! - (-> self control unknown-surface00 target-speed) - (* - (-> self align delta trans z) - (-> self control unknown-surface01 alignv) - (-> *display* frames-per-second) - ) - ) - ) - (suspend) - (let ((a0-24 (-> self skel root-channel 0))) - (set! - (-> a0-24 param 0) - (the float (+ (-> a0-24 frame-group data 0 length) -1)) - ) - (set! (-> a0-24 param 1) 1.0) - (joint-control-channel-group-eval! - a0-24 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (none) - ) :post target-swim-post ) @@ -4666,344 +2949,236 @@ (defstate target-swim-down (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('attack 'attack-invinc) - (let ((v1-2 (the-as attack-info (-> arg3 param 1)))) - (when - (or - (zero? (logand (-> v1-2 mask) 32)) - (= (-> v1-2 mode) 'generic) - (= (-> v1-2 mode) 'drown) + (case arg2 + (('attack 'attack-invinc) + (let ((v1-2 (the-as attack-info (-> arg3 param 1)))) + (when (or (zero? (logand (-> v1-2 mask) 32)) (= (-> v1-2 mode) 'generic) (= (-> v1-2 mode) 'drown)) + (set! (-> v1-2 mode) 'damage) + (if (and (= (-> self game mode) 'play) (>= 1.0 (-> self fact-info-target health))) + (set! (-> v1-2 mode) 'drown-death) + ) + (logior! (-> v1-2 mask) 32) + (set! (-> self control unknown-uint20) (the-as uint #t)) + ) ) - (set! (-> v1-2 mode) 'damage) - (if - (and - (= (-> self game mode) 'play) - (>= 1.0 (-> self fact-info-target health)) - ) - (set! (-> v1-2 mode) 'drown-death) - ) - (logior! (-> v1-2 mask) 32) - (set! (-> self control unknown-uint20) (the-as uint #t)) - ) ) ) + (target-standard-event-handler arg0 arg1 arg2 arg3) ) - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self water flags) (logand -17 (-> self water flags))) - (set! (-> self control unknown-surface00) *dive-mods*) - (set! (-> self control dynam gravity-max) 16384.0) - (set! (-> self control dynam gravity-length) 16384.0) - (set! - (-> self water swim-time) - (the-as uint (-> *display* base-frame-counter)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self water flags) (logand -17 (-> self water flags))) + (set! (-> self control unknown-surface00) *dive-mods*) + (set! (-> self control dynam gravity-max) 16384.0) + (set! (-> self control dynam gravity-length) 16384.0) + (set! (-> self water swim-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self control unknown-uint20) (the-as uint #f)) + (if (= (-> self next-state name) 'target-swim-down) + (set! (-> self control unknown-float130) 0.0) + ) + (none) ) - (set! (-> self control unknown-uint20) (the-as uint #f)) - (if (= (-> self next-state name) 'target-swim-down) - (set! (-> self control unknown-float130) 0.0) - ) - (none) - ) :exit (behavior () - (set! - (-> self control dynam gravity-max) - (-> self control unknown-dynamics00 gravity-max) - ) - (set! - (-> self control dynam gravity-length) - (-> self control unknown-dynamics00 gravity-length) - ) - (target-exit) - (when - (not - (or - (= (-> self next-state name) 'target-swim-stance) - (= (-> self next-state name) 'target-swim-walk) - (= (-> self next-state name) 'target-swim-down) - (= (-> self next-state name) 'target-swim-up) + (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) + (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) + (target-exit) + (when (not (or + (= (-> self next-state name) 'target-swim-stance) + (= (-> self next-state name) 'target-swim-walk) + (= (-> self next-state name) 'target-swim-down) + (= (-> self next-state name) 'target-swim-up) + ) + ) + (quaternion-identity! (-> self control unknown-quaternion01)) + (set! (-> self control unknown-float00) 0.0) ) - ) - (quaternion-identity! (-> self control unknown-quaternion01)) - (set! (-> self control unknown-float00) 0.0) + (none) ) - (none) - ) :trans (behavior () - (if - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self water swim-time)) + (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self water swim-time))) 150) + (go target-stance) + ) + (cond + ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) + (set! (-> self control unknown-surface00) *dive-mods*) + (if (= (-> self next-state name) 'target-swim-down) + (target-swim-tilt + (the-as float -0.9) + (the-as float 1.0) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 0.5) + ) + ) + ) + (else + (set! (-> self control unknown-surface00) *dive-bottom-mods*) + (if (or (= (-> self next-state name) 'target-swim-down) (= (-> self next-state name) 'target-swim-stance)) + (target-swim-tilt + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 2.0) + (the-as float -1.0) + (the-as float 1.0) + ) + ) + ) ) - 150 - ) - (go target-stance) + (none) ) - (cond - ((>= - (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - 30 - ) - (set! (-> self control unknown-surface00) *dive-mods*) - (if (= (-> self next-state name) 'target-swim-down) - (target-swim-tilt - (the-as float -0.9) - (the-as float 1.0) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 0.5) - ) - ) - ) - (else - (set! (-> self control unknown-surface00) *dive-bottom-mods*) - (if - (or - (= (-> self next-state name) 'target-swim-down) - (= (-> self next-state name) 'target-swim-stance) - ) - (target-swim-tilt - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 2.0) - (the-as float -1.0) - (the-as float 1.0) - ) - ) - ) - ) - (none) - ) :code (behavior () - (let ((gp-0 60) - (s5-0 3000) - (f30-0 0.0) - ) - (let ((v1-2 (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) + (let ((gp-0 60) + (s5-0 3000) + (f30-0 0.0) ) - (set! f30-0 (cond - ((or - (= v1-2 (-> self draw art-group data 91)) - (= v1-2 (-> self draw art-group data 92)) - (= v1-2 (-> self draw art-group data 97)) - (= v1-2 (-> self draw art-group data 96)) - (= v1-2 (-> self draw art-group data 95)) - ) - (ja-channel-push! 1 22) - (let ((a0-17 (-> self skel root-channel 0))) - (set! - (-> a0-17 frame-group) - (the-as art-joint-anim (-> self draw art-group data 93)) - ) - (set! - (-> a0-17 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 93)) - data - 0 - length - ) - -1 + (let ((v1-2 (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + ) + (set! f30-0 + (cond + ((or + (= v1-2 (-> self draw art-group data 91)) + (= v1-2 (-> self draw art-group data 92)) + (= v1-2 (-> self draw art-group data 97)) + (= v1-2 (-> self draw art-group data 96)) + (= v1-2 (-> self draw art-group data 95)) + ) + (ja-channel-push! 1 22) + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 frame-group) (the-as art-joint-anim (-> self draw art-group data 93))) + (set! (-> a0-17 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 93)) data 0 length) -1)) + ) + (set! (-> a0-17 param 1) 1.0) + (set! (-> a0-17 frame-num) 0.0) + (joint-control-channel-group! a0-17 (the-as art-joint-anim (-> self draw art-group data 93)) num-func-seek!) + ) + (until (ja-done? 0) + (TODO-RENAME-9 (-> self align)) + (TODO-RENAME-10 (-> self align) 6 (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) + (if (= (ja-aframe-num 0) 73.0) + (dummy-13 (-> self water) (the-as float 0.7) (-> self control trans) 1 *null-vector*) ) - ) - ) - (set! (-> a0-17 param 1) 1.0) - (set! (-> a0-17 frame-num) 0.0) - (joint-control-channel-group! - a0-17 - (the-as art-joint-anim (-> self draw art-group data 93)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (TODO-RENAME-9 (-> self align)) - (TODO-RENAME-10 - (-> self align) - 6 - (the-as float 1.0) - (the-as float 1.0) - (the-as float 1.0) - ) - (if (= (ja-aframe-num 0) 73.0) - (dummy-13 - (-> self water) - (the-as float 0.7) - (-> self control trans) - 1 - *null-vector* - ) - ) - (suspend) - (let ((a0-22 (-> self skel root-channel 0))) - (set! - (-> a0-22 param 0) - (the float (+ (-> a0-22 frame-group data 0 length) -1)) - ) + (suspend) + (let ((a0-22 (-> self skel root-channel 0))) + (set! (-> a0-22 param 0) (the float (+ (-> a0-22 frame-group data 0 length) -1))) (set! (-> a0-22 param 1) 1.0) - (joint-control-channel-group-eval! - a0-22 - (the-as art-joint-anim #f) - num-func-seek! - ) + (joint-control-channel-group-eval! a0-22 (the-as art-joint-anim #f) num-func-seek!) ) - ) - (let ((s4-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! + ) + (let ((s4-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! s4-0 (the-as art-joint-anim (-> self draw art-group data 94)) num-func-identity ) - (set! (-> s4-0 frame-num) 0.0) - ) - f30-0 + (set! (-> s4-0 frame-num) 0.0) ) - (else - (case (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - + f30-0 + ) + (else + (case (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) (((-> self draw art-group data 63) - (-> self draw art-group data 66) - (-> self draw art-group data 64) - (-> self draw art-group data 67) - ) - (ja-channel-push! 1 22) - (set! gp-0 120) - (let ((s4-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s4-1 - (the-as art-joint-anim (-> self draw art-group data 94)) - num-func-identity - ) - (set! - (-> s4-1 frame-num) - (ja-aframe (the-as float 124.0) 0) - ) - ) - -16384.0 + (-> self draw art-group data 66) + (-> self draw art-group data 64) + (-> self draw art-group data 67) ) - (else (ja-channel-push! 1 22) - (let ((s4-2 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s4-2 - (the-as art-joint-anim (-> self draw art-group data 94)) - num-func-identity + (set! gp-0 120) + (let ((s4-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s4-1 + (the-as art-joint-anim (-> self draw art-group data 94)) + num-func-identity + ) + (set! (-> s4-1 frame-num) (ja-aframe (the-as float 124.0) 0)) ) - (set! (-> s4-2 frame-num) 0.0) - ) - f30-0 + -16384.0 ) + (else + (ja-channel-push! 1 22) + (let ((s4-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s4-2 + (the-as art-joint-anim (-> self draw art-group data 94)) + num-func-identity + ) + (set! (-> s4-2 frame-num) 0.0) + ) + f30-0 + ) ) - ) ) - ) - ) - (while #t - (if - (and - (or - (zero? - (logand - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-abs - 0 - ) - (pad-buttons square) - ) - ) - (-> self control unknown-spoolanim00) + ) + ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) gp-0) - ) - (go target-swim-up) - ) - (if - (or - (>= (- (-> *display* base-frame-counter) (-> self state-time)) s5-0) - (and - (logtest? (-> self control status) 1) - (and - (< (-> self water swim-depth) 8192.0) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) gp-0) - ) - ) - ) - (go target-swim-up) - ) - (let ((s4-3 (new-stack-vector0)) - (f24-0 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) - ) + (while #t + (if (and + (or + (zero? (logand + (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) + (pad-buttons square) + ) + ) + (-> self control unknown-spoolanim00) + ) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) gp-0) + ) + (go target-swim-up) ) - ) - 0.0 - (vector-! - s4-3 - (-> self control transv) - (vector-float*! s4-3 (-> self control dynam gravity-normal) f24-0) - ) - (let* ((f28-0 (vector-length s4-3)) - (f26-0 f28-0) - (f24-1 (+ f24-0 f30-0)) - ) - (set! - f30-0 - (seek - f30-0 - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (* 32768.0 (-> *display* seconds-per-frame)) - ) + (if (or + (>= (- (-> *display* base-frame-counter) (-> self state-time)) s5-0) + (and + (logtest? (-> self control status) 1) + (and + (< (-> self water swim-depth) 8192.0) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) gp-0) + ) + ) + ) + (go target-swim-up) + ) + (let ((s4-3 (new-stack-vector0)) + (f24-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) + ) + 0.0 + (vector-! s4-3 (-> self control transv) (vector-float*! s4-3 (-> self control dynam gravity-normal) f24-0)) + (let* ((f28-0 (vector-length s4-3)) + (f26-0 f28-0) + (f24-1 (+ f24-0 f30-0)) + ) + (set! f30-0 + (seek f30-0 (the-as float (-> (new 'static 'array int32 1 0) 0)) (* 32768.0 (-> *display* seconds-per-frame))) + ) + (vector+! + (-> self control transv) + (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f24-1) + (vector-float*! s4-3 s4-3 (/ f28-0 f26-0)) + ) + ) + ) + (suspend) + (let ((s4-4 (-> self skel root-channel 0))) + (set! (-> s4-4 param 0) (lerp-scale + (the-as float 0.4) + (the-as float 1.0) + (vector-length (-> self control transv)) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 16384.0) + ) + ) + (joint-control-channel-group-eval! s4-4 (the-as art-joint-anim #f) num-func-loop!) + ) ) - (vector+! - (-> self control transv) - (vector-float*! - (-> self control transv) - (-> self control dynam gravity-normal) - f24-1 - ) - (vector-float*! s4-3 s4-3 (/ f28-0 f26-0)) - ) - ) ) - (suspend) - (let ((s4-4 (-> self skel root-channel 0))) - (set! - (-> s4-4 param 0) - (lerp-scale - (the-as float 0.4) - (the-as float 1.0) - (vector-length (-> self control transv)) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - (the-as float 16384.0) - ) - ) - (joint-control-channel-group-eval! - s4-4 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) + (none) ) - (none) - ) :post target-swim-post ) @@ -5017,222 +3192,136 @@ (-> target-swim-down exit) :trans (behavior () - (if - (and - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (pad-buttons x) + (if (and + (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (zero? (logand (-> self state-flags) 2048)) + (zero? (logand (-> self water flags) #x6000)) + ) + (go + target-swim-jump-jump + (-> *TARGET-bank* swim-jump-height-min) + (-> *TARGET-bank* swim-jump-height-max) + (the-as surface #f) + ) + ) + (when (and + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 3000) + (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) + ) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'attack) + (set! (-> a1-1 param 0) (the-as uint #f)) + (let ((a0-8 (new 'static 'attack-info :mask #x20))) + (set! (-> a0-8 mode) 'drown-death) + (set! (-> a1-1 param 1) (the-as uint a0-8)) + ) + (send-event-function self a1-1) + ) ) - (zero? (logand (-> self state-flags) 2048)) - (zero? (logand (-> self water flags) #x6000)) - ) - (go - target-swim-jump-jump - (-> *TARGET-bank* swim-jump-height-min) - (-> *TARGET-bank* swim-jump-height-max) - (the-as surface #f) - ) + ((-> target-swim-down trans)) + (none) ) - (when - (and - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 3000) - (< - (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) - (-> *TARGET-bank* stuck-distance) - ) - ) - (let ((a1-1 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-1 from) self) - (set! (-> a1-1 num-params) 2) - (set! (-> a1-1 message) 'attack) - (set! (-> a1-1 param 0) (the-as uint #f)) - (let ((a0-8 (new 'static 'attack-info :mask #x20))) - (set! (-> a0-8 mode) 'drown-death) - (set! (-> a1-1 param 1) (the-as uint a0-8)) - ) - (send-event-function self a1-1) - ) - ) - ((-> target-swim-down trans)) - (none) - ) :code (behavior () - (ja-channel-push! 1 30) - (let ((f30-0 1.0)) - (let ((gp-0 #t)) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 95)) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 95)) - data - 0 - length + (ja-channel-push! 1 30) + (let ((f30-0 1.0)) + (let ((gp-0 #t)) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 95))) + (set! (-> a0-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 95)) data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 95)) num-func-seek!) ) - -1 - ) - ) - ) - (set! (-> a0-1 param 1) 1.0) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as art-joint-anim (-> self draw art-group data 95)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (target-swim-tilt (the-as float (if (< 8192.0 (-> self water swim-depth)) - 0.5 - (-> (new 'static 'array int32 1 0) 0) - ) - ) - (the-as - float - 1.0 - ) - (the-as float (-> (new 'static 'array int32 1 0) 0)) (the-as float 0.1) - ) - (if - (and - (zero? (logand (-> self water flags) 4096)) - (or - (>= (ja-aframe-num 0) 222.0) - (and - (!= - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - stick0-speed + (until (ja-done? 0) + (target-swim-tilt + (the-as float (if (< 8192.0 (-> self water swim-depth)) + 0.5 + (-> (new 'static 'array int32 1 0) 0) + ) + ) + (the-as float 1.0) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 0.1) + ) + (if (and + (zero? (logand (-> self water flags) 4096)) + (or + (>= (ja-aframe-num 0) 222.0) + (and + (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) + (>= (ja-aframe-num 0) 200.0) + ) + ) + ) + (goto cfg-37) + ) + (TODO-RENAME-9 (-> self align)) + (when (zero? (logand (-> self water flags) 4096)) + (logior! (-> self water flags) 16) + (set! gp-0 #f) + ) + (if gp-0 + (TODO-RENAME-10 (-> self align) 2 (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) + ) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1))) + (set! (-> a0-9 param 1) 1.0) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!) ) - 0.0 - ) - (>= (ja-aframe-num 0) 200.0) ) - ) ) - (goto cfg-37) - ) - (TODO-RENAME-9 (-> self align)) - (when (zero? (logand (-> self water flags) 4096)) - (logior! (-> self water flags) 16) - (set! gp-0 #f) - ) - (if gp-0 - (TODO-RENAME-10 - (-> self align) - 2 - (the-as float 1.0) - (the-as float 1.0) - (the-as float 1.0) + (let ((gp-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-1 + (the-as art-joint-anim (-> self draw art-group data 96)) + num-func-identity + ) + (set! (-> gp-1 frame-num) 0.0) ) - ) - (suspend) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 param 0) - (the float (+ (-> a0-9 frame-group data 0 length) -1)) + (while #t + (target-swim-tilt + (the-as float (if (< 8192.0 (-> self water swim-depth)) + 0.3 + (-> (new 'static 'array int32 1 0) 0) + ) + ) + (the-as float 1.0) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + (the-as float 0.1) + ) + (if (zero? (logand (-> self water flags) 4096)) + (goto cfg-37) + ) + (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (set! f30-0 2.0) + ) + (TODO-RENAME-9 (-> self align)) + (when (logtest? (-> self water flags) 4096) + (TODO-RENAME-10 (-> self align) 2 (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) + (set! (-> self control transv y) (+ 8192.0 (* 8192.0 f30-0))) + ) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) f30-0) + (joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-loop!) + ) + (set! f30-0 (seek f30-0 (the-as float 1.0) (-> *display* seconds-per-frame))) ) - (set! (-> a0-9 param 1) 1.0) - (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) ) - ) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 96)) - num-func-identity - ) - (set! (-> gp-1 frame-num) 0.0) - ) - (while #t - (target-swim-tilt (the-as float (if (< 8192.0 (-> self water swim-depth)) - 0.3 - (-> (new 'static 'array int32 1 0) 0) - ) - ) - (the-as - float - 1.0 - ) - (the-as float (-> (new 'static 'array int32 1 0) 0)) (the-as float 0.1) - ) - (if (zero? (logand (-> self water flags) 4096)) - (goto cfg-37) - ) - (if - (logtest? - (-> - *cpad-list* - cpads - (-> self control unknown-cpad-info00 number) - button0-rel - 0 - ) - (pad-buttons x) - ) - (set! f30-0 2.0) - ) - (TODO-RENAME-9 (-> self align)) - (when (logtest? (-> self water flags) 4096) - (TODO-RENAME-10 - (-> self align) - 2 - (the-as float 1.0) - (the-as float 1.0) - (the-as float 1.0) - ) - (set! (-> self control transv y) (+ 8192.0 (* 8192.0 f30-0))) - ) - (suspend) - (let ((a0-16 (-> self skel root-channel 0))) - (set! (-> a0-16 param 0) f30-0) - (joint-control-channel-group-eval! - a0-16 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (set! - f30-0 - (seek f30-0 (the-as float 1.0) (-> *display* seconds-per-frame)) - ) - ) + (label cfg-37) + (logior! (-> self water flags) 16) + (set! (-> self water swim-time) (the-as uint (-> *display* base-frame-counter))) + (start-bobbing! (-> self water) (the-as float -4096.0) 600 1500) + (set! (-> self water bob start-time) (+ (-> *display* base-frame-counter) -15)) + (go target-swim-stance) + (none) ) - (label cfg-37) - (logior! (-> self water flags) 16) - (set! - (-> self water swim-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (start-bobbing! (-> self water) (the-as float -4096.0) 600 1500) - (set! - (-> self water bob start-time) - (+ (-> *display* base-frame-counter) -15) - ) - (go target-swim-stance) - (none) - ) :post target-swim-post ) @@ -5246,18 +3335,18 @@ target-exit :trans (behavior () - (cond - ((< (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (set! (-> self water flags) (logior #x10000 (-> self water flags))) - (set! (-> self control status) (logand -8 (-> self control status))) - ) - (else - (set! (-> self trans-hook) (-> target-jump trans)) - ) + (cond + ((< (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (set! (-> self water flags) (logior #x10000 (-> self water flags))) + (set! (-> self control status) (logand -8 (-> self control status))) + ) + (else + (set! (-> self trans-hook) (-> target-jump trans)) + ) + ) + ((-> target-jump trans)) + (none) ) - ((-> target-jump trans)) - (none) - ) :code (-> target-jump code) :post @@ -5271,82 +3360,59 @@ (-> target-swim-stance enter) :exit (behavior () - ((-> target-swim-stance exit)) - (die-on-next-update! (-> self water bob)) - (set! (-> self water align-offset) 0.0) - (set! (-> self water flags) (logior #x10000 (-> self water flags))) - (none) - ) + ((-> target-swim-stance exit)) + (die-on-next-update! (-> self water bob)) + (set! (-> self water align-offset) 0.0) + (set! (-> self water flags) (logior #x10000 (-> self water flags))) + (none) + ) :code (behavior ((arg0 float) (arg1 float)) - (die-on-next-update! (-> self water bob)) - (ja-channel-push! 1 15) - (let ((s4-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s4-0 - (the-as art-joint-anim (-> self draw art-group data 98)) - num-func-identity - ) - (set! (-> s4-0 frame-num) 0.0) - ) - (until - (and (ja-done? 0) (= (-> self skel root-channel 0) (-> self skel channel))) - (TODO-RENAME-9 (-> self align)) - (if (zero? (logand (-> self align flags) 1)) - (+! (-> self water align-offset) (* 0.6 (-> self align delta trans y))) - ) - (suspend) - (when (= (-> self skel root-channel 0) (-> self skel channel)) - (let ((a0-8 (-> self skel root-channel 0))) - (set! - (-> a0-8 param 0) - (the float (+ (-> a0-8 frame-group data 0 length) -1)) - ) - (set! (-> a0-8 param 1) 2.0) + (die-on-next-update! (-> self water bob)) + (ja-channel-push! 1 15) + (let ((s4-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-8 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (let ((f30-0 (fmax 0.0 (- (-> self water bob-offset))))) - (let ((s4-1 (new-stack-vector0))) - (let - ((f0-8 - (vector-dot - (-> self control dynam gravity-normal) - (-> self control transv) - ) + s4-0 + (the-as art-joint-anim (-> self draw art-group data 98)) + num-func-identity ) - ) - 0.0 - (vector-! - s4-1 - (-> self control transv) - (vector-float*! s4-1 (-> self control dynam gravity-normal) f0-8) - ) + (set! (-> s4-0 frame-num) 0.0) ) - (let* ((f0-9 (vector-length s4-1)) - (f1-5 f0-9) - (f2-1 0.4096) + (until (and (ja-done? 0) (= (-> self skel root-channel 0) (-> self skel channel))) + (TODO-RENAME-9 (-> self align)) + (if (zero? (logand (-> self align flags) 1)) + (+! (-> self water align-offset) (* 0.6 (-> self align delta trans y))) + ) + (suspend) + (when (= (-> self skel root-channel 0) (-> self skel channel)) + (let ((a0-8 (-> self skel root-channel 0))) + (set! (-> a0-8 param 0) (the float (+ (-> a0-8 frame-group data 0 length) -1))) + (set! (-> a0-8 param 1) 2.0) + (joint-control-channel-group-eval! a0-8 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (let ((f30-0 (fmax 0.0 (- (-> self water bob-offset))))) + (let ((s4-1 (new-stack-vector0))) + (let ((f0-8 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) + 0.0 + (vector-! s4-1 (-> self control transv) (vector-float*! s4-1 (-> self control dynam gravity-normal) f0-8)) + ) + (let* ((f0-9 (vector-length s4-1)) + (f1-5 f0-9) + (f2-1 0.4096) + ) + (vector+! + (-> self control transv) + (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-1) + (vector-float*! s4-1 s4-1 (/ f0-9 f1-5)) ) - (vector+! - (-> self control transv) - (vector-float*! - (-> self control transv) - (-> self control dynam gravity-normal) - f2-1 + ) ) - (vector-float*! s4-1 s4-1 (/ f0-9 f1-5)) - ) + (go target-swim-jump-jump (+ f30-0 arg0) (+ f30-0 arg1) (the-as surface #f)) ) - ) - (go target-swim-jump-jump (+ f30-0 arg0) (+ f30-0 arg1) (the-as surface #f)) + (none) ) - (none) - ) :post target-swim-post ) @@ -5356,120 +3422,77 @@ target-standard-event-handler :enter (behavior ((arg0 float)) - (set! (-> self control unknown-dword31) 0) - (set! (-> self control unknown-dword33) 0) - (set-forward-vel (the-as float (-> (new 'static 'array int32 1 0) 0))) - (set! (-> self control unknown-surface00) *walk-mods*) - (none) - ) + (set! (-> self control unknown-dword31) 0) + (set! (-> self control unknown-dword33) 0) + (set-forward-vel (the-as float (-> (new 'static 'array int32 1 0) 0))) + (set! (-> self control unknown-surface00) *walk-mods*) + (none) + ) :code (behavior ((arg0 float)) - (when (!= arg0 0.0) - (let - ((f0-5 - (the - float - (the - int - (+ - 1.0 - (/ - (- arg0 (-> *TARGET-bank* fall-far)) - (-> *TARGET-bank* fall-far-inc) - ) + (when (!= arg0 0.0) + (let ((f0-5 (the float (the int (+ 1.0 (/ (- arg0 (-> *TARGET-bank* fall-far)) (-> *TARGET-bank* fall-far-inc)))))) + ) + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (* (-> *FACT-bank* health-single-inc) (- (fmax 0.0 f0-5))) + (the-as handle #f) ) - ) ) + (if (zero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))) + (target-timed-invulnerable (-> *TARGET-bank* hit-invulnerable-timeout) self) + ) + ) + (cond + ((and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health))) + (set! (-> self attack-info attacker) (the-as handle #f)) + (go target-death 'target-hit-ground-hard) ) + (else + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) + (ja-channel-push! 1 1) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 36)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (until (and (ja-done? 0) (= (-> self skel root-channel 0) (-> self skel channel))) + (suspend) + (when (= (-> self skel root-channel 0) (-> self skel channel)) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (let ((gp-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-1 + (the-as art-joint-anim (-> self draw art-group data 37)) + num-func-identity + ) + (set! (-> gp-1 frame-num) 0.0) + ) + (until (and (ja-done? 0) (= (-> self skel root-channel 0) (-> self skel channel))) + (suspend) + (when (= (-> self skel root-channel 0) (-> self skel channel)) + (let ((a0-20 (-> self skel root-channel 0))) + (set! (-> a0-20 param 0) (the float (+ (-> a0-20 frame-group data 0 length) -1))) + (set! (-> a0-20 param 1) 1.0) + (joint-control-channel-group-eval! a0-20 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (go target-stance) + ) ) - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (* (-> *FACT-bank* health-single-inc) (- (fmax 0.0 f0-5))) - (the-as handle #f) - ) - ) - (if (zero? (logand (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3))) - (target-timed-invulnerable - (-> *TARGET-bank* hit-invulnerable-timeout) - self - ) - ) + (none) ) - (cond - ((and - (= (-> self game mode) 'play) - (>= 0.0 (-> self fact-info-target health)) - ) - (set! (-> self attack-info attacker) (the-as handle #f)) - (go target-death 'target-hit-ground-hard) - ) - (else - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) - (ja-channel-push! 1 1) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 36)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (until - (and - (ja-done? 0) - (= (-> self skel root-channel 0) (-> self skel channel)) - ) - (suspend) - (when (= (-> self skel root-channel 0) (-> self skel channel)) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 param 0) - (the float (+ (-> a0-12 frame-group data 0 length) -1)) - ) - (set! (-> a0-12 param 1) 1.0) - (joint-control-channel-group-eval! - a0-12 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 37)) - num-func-identity - ) - (set! (-> gp-1 frame-num) 0.0) - ) - (until - (and - (ja-done? 0) - (= (-> self skel root-channel 0) (-> self skel channel)) - ) - (suspend) - (when (= (-> self skel root-channel 0) (-> self skel channel)) - (let ((a0-20 (-> self skel root-channel 0))) - (set! - (-> a0-20 param 0) - (the float (+ (-> a0-20 frame-group data 0 length) -1)) - ) - (set! (-> a0-20 param 1) 1.0) - (joint-control-channel-group-eval! - a0-20 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (go target-stance) - ) - ) - (none) - ) :post target-no-stick-post ) @@ -5477,170 +3500,120 @@ (defstate target-launch (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (if (and (= arg2 'query) (= (-> arg3 param 0) 'mode)) - 'target-launch - (target-standard-event-handler arg0 arg1 arg2 arg3) + (if (and (= arg2 'query) (= (-> arg3 param 0) 'mode)) + 'target-launch + (target-standard-event-handler arg0 arg1 arg2 arg3) + ) ) - ) :code (behavior ((arg0 float) (arg1 symbol) (arg2 vector) (arg3 int)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *turn-around-mods*) - (ja-channel-push! 1 45) - (set-forward-vel (the-as float (-> (new 'static 'array int32 1 0) 0))) - (let ((s2-0 (-> self skel root-channel 0))) - (set! - (-> s2-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 31)) - ) - (set! (-> s2-0 param 0) (ja-aframe (the-as float 15.0) 0)) - (set! (-> s2-0 param 1) 3.0) - (set! (-> s2-0 frame-num) 0.0) - (joint-control-channel-group! - s2-0 - (the-as art-joint-anim (-> self draw art-group data 31)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((s2-1 (-> self skel root-channel 0))) - (set! (-> s2-1 param 0) (ja-aframe (the-as float 15.0) 0)) - (set! (-> s2-1 param 1) 3.0) - (joint-control-channel-group-eval! - s2-1 - (the-as art-joint-anim #f) - num-func-seek! + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self control unknown-surface00) *turn-around-mods*) + (ja-channel-push! 1 45) + (set-forward-vel (the-as float (-> (new 'static 'array int32 1 0) 0))) + (let ((s2-0 (-> self skel root-channel 0))) + (set! (-> s2-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 31))) + (set! (-> s2-0 param 0) (ja-aframe (the-as float 15.0) 0)) + (set! (-> s2-0 param 1) 3.0) + (set! (-> s2-0 frame-num) 0.0) + (joint-control-channel-group! s2-0 (the-as art-joint-anim (-> self draw art-group data 31)) num-func-seek!) ) - ) - ) - (if arg1 - (send-event *camera* 'change-state arg1 180) - ) - (when (nonzero? arg3) - (let ((s3-1 (get-process *default-dead-pool* process #x4000))) - (when s3-1 - (let ((t9-9 (method-of-type process activate))) - (t9-9 s3-1 self 'process (the-as pointer #x70004000)) - ) - (run-next-time-in-process - s3-1 - (lambda :behavior target - ((arg0 vector) (arg1 int) (arg2 float)) - (local-vars (sv-32 int) (sv-40 vector) (sv-44 symbol)) - (set! sv-32 (-> *display* base-frame-counter)) - (let ((v1-2 (new-stack-vector0))) - (set! (-> v1-2 quad) (-> arg0 quad)) - (set! sv-40 v1-2) - ) - (set! sv-44 #t) - (until (>= (- (-> *display* base-frame-counter) sv-32) arg1) - (let ((s4-0 (ppointer->process (-> self parent)))) - (cond - ((and - sv-44 - (< - (- - (-> (the-as target s4-0) control trans y) - (-> (the-as target s4-0) control unknown-vector52 y) - ) - arg2 - ) - ) - (vector-xz-normalize! - (-> (the-as target s4-0) control transv) - (the-as float (-> (new 'static 'array int32 1 0) 0)) - ) - (case (-> (the-as target s4-0) current-level name) - (('jungleb) - (let - ((v1-16 - (vector-! - (new-stack-vector0) - (-> (the-as target s4-0) control trans) - sv-40 - ) - ) - ) - (set! - (-> (the-as target s4-0) control trans x) - (+ (-> sv-40 x) (fmax -4096.0 (fmin 4096.0 (-> v1-16 x)))) - ) - (set! - (-> (the-as target s4-0) control trans z) - (+ (-> sv-40 z) (fmax -4096.0 (fmin 4096.0 (-> v1-16 z)))) - ) - ) - ) - ) - ) - (else - (if sv-44 - (set! sv-32 (-> *display* base-frame-counter)) - ) - (set! sv-44 (the-as symbol #f)) - (when - (or - (= - (-> (the-as target s4-0) next-state name) - 'target-duck-high-jump-jump - ) - (= (-> (the-as target s4-0) next-state name) 'target-falling) - ) - (let ((v1-30 (-> (the-as target s4-0) control trans)) - (s3-0 (-> (the-as target s4-0) control transv)) - ) - (set! (-> s3-0 x) (- (-> sv-40 x) (-> v1-30 x))) - (set! (-> s3-0 z) (- (-> sv-40 z) (-> v1-30 z))) - (let ((f30-0 (vector-xz-length s3-0))) - (if (< 122880.0 f30-0) - (vector-xz-normalize! s3-0 (the-as float 122880.0)) - ) - (if (< 4096.0 f30-0) - (forward-up-nopitch->quaternion - (-> (the-as target s4-0) control dir-targ) - (vector-normalize-copy! - (new 'stack-no-clear 'vector) - s3-0 - (the-as float 1.0) - ) - (vector-y-quaternion! - (new 'stack-no-clear 'vector) - (-> (the-as target s4-0) control quat) - ) - ) - ) - ) - ) - ) - ) - ) - ) - (suspend) - 0 - ) - #f + (until (ja-done? 0) + (suspend) + (let ((s2-1 (-> self skel root-channel 0))) + (set! (-> s2-1 param 0) (ja-aframe (the-as float 15.0) 0)) + (set! (-> s2-1 param 1) 3.0) + (joint-control-channel-group-eval! s2-1 (the-as art-joint-anim #f) num-func-seek!) ) - arg2 - arg3 - (-> (new 'static 'array float 1 143360.0) 0) - ) - (-> s3-1 ppointer) ) - ) + (if arg1 + (send-event *camera* 'change-state arg1 180) + ) + (when (nonzero? arg3) + (let ((s3-1 (get-process *default-dead-pool* process #x4000))) + (when s3-1 + (let ((t9-9 (method-of-type process activate))) + (t9-9 s3-1 self 'process (the-as pointer #x70004000)) + ) + (run-next-time-in-process + s3-1 + (lambda :behavior target + ((arg0 vector) (arg1 int) (arg2 float)) + (local-vars (sv-32 int) (sv-40 vector) (sv-44 symbol)) + (set! sv-32 (-> *display* base-frame-counter)) + (let ((v1-2 (new-stack-vector0))) + (set! (-> v1-2 quad) (-> arg0 quad)) + (set! sv-40 v1-2) + ) + (set! sv-44 #t) + (until (>= (- (-> *display* base-frame-counter) sv-32) arg1) + (let ((s4-0 (ppointer->process (-> self parent)))) + (cond + ((and + sv-44 + (< (- (-> (the-as target s4-0) control trans y) (-> (the-as target s4-0) control unknown-vector52 y)) arg2) + ) + (vector-xz-normalize! + (-> (the-as target s4-0) control transv) + (the-as float (-> (new 'static 'array int32 1 0) 0)) + ) + (case (-> (the-as target s4-0) current-level name) + (('jungleb) + (let ((v1-16 (vector-! (new-stack-vector0) (-> (the-as target s4-0) control trans) sv-40))) + (set! (-> (the-as target s4-0) control trans x) (+ (-> sv-40 x) (fmax -4096.0 (fmin 4096.0 (-> v1-16 x))))) + (set! (-> (the-as target s4-0) control trans z) (+ (-> sv-40 z) (fmax -4096.0 (fmin 4096.0 (-> v1-16 z))))) + ) + ) + ) + ) + (else + (if sv-44 + (set! sv-32 (-> *display* base-frame-counter)) + ) + (set! sv-44 (the-as symbol #f)) + (when (or + (= (-> (the-as target s4-0) next-state name) 'target-duck-high-jump-jump) + (= (-> (the-as target s4-0) next-state name) 'target-falling) + ) + (let ((v1-30 (-> (the-as target s4-0) control trans)) + (s3-0 (-> (the-as target s4-0) control transv)) + ) + (set! (-> s3-0 x) (- (-> sv-40 x) (-> v1-30 x))) + (set! (-> s3-0 z) (- (-> sv-40 z) (-> v1-30 z))) + (let ((f30-0 (vector-xz-length s3-0))) + (if (< 122880.0 f30-0) + (vector-xz-normalize! s3-0 (the-as float 122880.0)) + ) + (if (< 4096.0 f30-0) + (forward-up-nopitch->quaternion + (-> (the-as target s4-0) control dir-targ) + (vector-normalize-copy! (new 'stack-no-clear 'vector) s3-0 (the-as float 1.0)) + (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> (the-as target s4-0) control quat)) + ) + ) + ) + ) + ) + ) + ) + ) + (suspend) + 0 + ) + #f + ) + arg2 + arg3 + (-> (new 'static 'array float 1 143360.0) 0) + ) + (-> s3-1 ppointer) + ) + ) + ) + (sound-play-by-name (static-sound-name "launch-fire") (new-sound-id) 1024 0 0 1 #t) + (go target-high-jump arg0 arg0 'launch) + (none) ) - (sound-play-by-name - (static-sound-name "launch-fire") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (go target-high-jump arg0 arg0 'launch) - (none) - ) :post target-no-stick-post ) @@ -5648,138 +3621,87 @@ (defstate target-periscope (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('change-mode) - #f + (case arg2 + (('change-mode) + #f + ) + (('end-mode) + (when (-> self control unknown-spoolanim00) + (set! (-> self control unknown-uint20) (the-as uint #f)) + #t + ) + ) + (else + (target-generic-event-handler arg0 arg1 arg2 arg3) + ) ) - (('end-mode) - (when (-> self control unknown-spoolanim00) - (set! (-> self control unknown-uint20) (the-as uint #f)) - #t - ) - ) - (else - (target-generic-event-handler arg0 arg1 arg2 arg3) - ) ) - ) :exit (behavior () - (target-exit) - (set! (-> self cam-user-mode) 'normal) - (logior! (-> self state-flags) 256) - (set! (-> self state-flags) (logand -17 (-> self state-flags))) - (none) - ) + (target-exit) + (set! (-> self cam-user-mode) 'normal) + (logior! (-> self state-flags) 256) + (set! (-> self state-flags) (logand -17 (-> self state-flags))) + (none) + ) :code (behavior ((arg0 handle)) - (set! (-> self neck flex-blend) 0.0) - (target-exit) - (logior! (-> self state-flags) 144) - (let ((v1-4 (handle->process arg0))) - (if v1-4 - (quaterion<-rotate-y-vector - (-> self control dir-targ) - (vector-! - (new 'stack-no-clear 'vector) - (-> (the-as process-drawable v1-4) root trans) - (-> self control trans) - ) + (set! (-> self neck flex-blend) 0.0) + (target-exit) + (logior! (-> self state-flags) 144) + (let ((v1-4 (handle->process arg0))) + (if v1-4 + (quaterion<-rotate-y-vector (-> self control dir-targ) (vector-! + (new 'stack-no-clear 'vector) + (-> (the-as process-drawable v1-4) root trans) + (-> self control trans) + ) + ) + ) ) - ) - ) - (set! (-> self control unknown-uint20) (the-as uint #t)) - (ja-channel-push! 1 30) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 frame-group) - (the-as art-joint-anim (-> self draw art-group data 101)) - ) - (set! - (-> a0-11 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 101)) - data - 0 - length + (set! (-> self control unknown-uint20) (the-as uint #t)) + (ja-channel-push! 1 30) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 frame-group) (the-as art-joint-anim (-> self draw art-group data 101))) + (set! (-> a0-11 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 101)) data 0 length) -1)) + ) + (set! (-> a0-11 param 1) 1.0) + (set! (-> a0-11 frame-num) 0.0) + (joint-control-channel-group! a0-11 (the-as art-joint-anim (-> self draw art-group data 101)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-11 param 1) 1.0) - (set! (-> a0-11 frame-num) 0.0) - (joint-control-channel-group! - a0-11 - (the-as art-joint-anim (-> self draw art-group data 101)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 param 0) - (the float (+ (-> a0-12 frame-group data 0 length) -1)) + (send-event (handle->process arg0) 'change-mode) + (while (-> self control unknown-spoolanim00) + (suspend) ) - (set! (-> a0-12 param 1) 1.0) - (joint-control-channel-group-eval! - a0-12 - (the-as art-joint-anim #f) - num-func-seek! + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 frame-group) (the-as art-joint-anim (-> self draw art-group data 101))) + (set! (-> a0-16 param 0) 0.0) + (set! (-> a0-16 param 1) 2.0) + (set! (-> a0-16 frame-num) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 101)) data 0 length) -1)) + ) + (joint-control-channel-group! a0-16 (the-as art-joint-anim (-> self draw art-group data 101)) num-func-seek!) ) - ) - ) - (send-event (handle->process arg0) 'change-mode) - (while (-> self control unknown-spoolanim00) - (suspend) - ) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 frame-group) - (the-as art-joint-anim (-> self draw art-group data 101)) - ) - (set! (-> a0-16 param 0) 0.0) - (set! (-> a0-16 param 1) 2.0) - (set! - (-> a0-16 frame-num) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 101)) - data - 0 - length + (until (ja-done? 0) + (suspend) + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) 0.0) + (set! (-> a0-17 param 1) 2.0) + (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (joint-control-channel-group! - a0-16 - (the-as art-joint-anim (-> self draw art-group data 101)) - num-func-seek! - ) + (go target-stance) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-17 (-> self skel root-channel 0))) - (set! (-> a0-17 param 0) 0.0) - (set! (-> a0-17 param 1) 2.0) - (joint-control-channel-group-eval! - a0-17 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go target-stance) - (none) - ) :post target-no-stick-post ) @@ -5789,65 +3711,47 @@ target-generic-event-handler :enter (behavior ((arg0 string) (arg1 handle)) - (set! (-> self control unknown-handle10) arg1) - (dummy-60 - (-> self control) - (the-as float 40960.0) - (the-as float 40960.0) - #f - (-> self control root-prim collide-with) + (set! (-> self control unknown-handle10) arg1) + (dummy-60 + (-> self control) + (the-as float 40960.0) + (the-as float 40960.0) + #f + (-> self control root-prim collide-with) + ) + (logior! (-> self state-flags) 256) + (set! (-> self neck flex-blend) 0.0) + (none) ) - (logior! (-> self state-flags) 256) - (set! (-> self neck flex-blend) 0.0) - (none) - ) :exit - (behavior () - (send-event (handle->process (-> self control unknown-handle10)) 'end-mode) - (target-exit) - (none) - ) + (behavior () (send-event (handle->process (-> self control unknown-handle10)) 'end-mode) (target-exit) (none)) :code (behavior ((arg0 string) (arg1 handle)) - (let - ((gp-0 - (the-as - art-joint-anim - (dummy-10 (-> self draw art-group) arg0 art-joint-anim) - ) - ) - ) - (when gp-0 - (send-event (ppointer->process (-> self sidekick)) 'matrix 'play-anim) - (ja-channel-set! 1) - (let ((a0-4 (-> self skel root-channel 0))) - (set! (-> a0-4 frame-group) gp-0) - (set! (-> a0-4 param 0) (the float (+ (-> gp-0 data 0 length) -1))) - (set! (-> a0-4 param 1) 1.0) - (set! (-> a0-4 frame-num) 0.0) - (joint-control-channel-group! a0-4 gp-0 num-func-seek!) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-5 (-> self skel root-channel 0))) - (set! - (-> a0-5 param 0) - (the float (+ (-> a0-5 frame-group data 0 length) -1)) + (let ((gp-0 (the-as art-joint-anim (dummy-10 (-> self draw art-group) arg0 art-joint-anim)))) + (when gp-0 + (send-event (ppointer->process (-> self sidekick)) 'matrix 'play-anim) + (ja-channel-set! 1) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 frame-group) gp-0) + (set! (-> a0-4 param 0) (the float (+ (-> gp-0 data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (set! (-> a0-4 frame-num) 0.0) + (joint-control-channel-group! a0-4 gp-0 num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group data 0 length) -1))) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (send-event (ppointer->process (-> self sidekick)) 'matrix 'normal) ) - (set! (-> a0-5 param 1) 1.0) - (joint-control-channel-group-eval! - a0-5 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) ) - (send-event (ppointer->process (-> self sidekick)) 'matrix 'normal) - ) + (go target-stance) + (none) ) - (go target-stance) - (none) - ) :post target-no-stick-post ) @@ -5855,87 +3759,75 @@ (defstate target-clone-anim (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (if (and (= arg2 'trans) (= (-> arg3 param 0) 'restore)) - (set! (-> self control unknown-uint20) (the-as uint #f)) + (if (and (= arg2 'trans) (= (-> arg3 param 0) 'restore)) + (set! (-> self control unknown-uint20) (the-as uint #f)) + ) + ((-> target-grab event) arg0 arg1 arg2 arg3) ) - ((-> target-grab event) arg0 arg1 arg2 arg3) - ) :enter (behavior ((arg0 handle)) - (set! (-> self control unknown-handle10) arg0) - (set! (-> self control unknown-vector102 quad) (-> self control trans quad)) - (set! (-> self control unknown-uint20) (the-as uint #t)) - (quaternion-copy! - (the-as quaternion (-> self control unknown-vector103)) - (-> self control quat) + (set! (-> self control unknown-handle10) arg0) + (set! (-> self control unknown-vector102 quad) (-> self control trans quad)) + (set! (-> self control unknown-uint20) (the-as uint #t)) + (quaternion-copy! (the-as quaternion (-> self control unknown-vector103)) (-> self control quat)) + (logior! (-> self state-flags) 256) + (vector-reset! (-> self control transv)) + (set! (-> self neck flex-blend) 0.0) + (send-event (ppointer->process (-> self sidekick)) 'shadow #t) + (none) ) - (logior! (-> self state-flags) 256) - (vector-reset! (-> self control transv)) - (set! (-> self neck flex-blend) 0.0) - (send-event (ppointer->process (-> self sidekick)) 'shadow #t) - (none) - ) :exit (behavior () - (send-event (ppointer->process (-> self sidekick)) 'matrix 'normal) - (send-event (ppointer->process (-> self sidekick)) 'shadow #t) - (let ((gp-0 (-> self node-list data 3)) - (a1-2 (&-> (-> self control) unknown-qword00)) + (send-event (ppointer->process (-> self sidekick)) 'matrix 'normal) + (send-event (ppointer->process (-> self sidekick)) 'shadow #t) + (let ((gp-0 (-> self node-list data 3)) + (a1-2 (&-> (-> self control) unknown-qword00)) + ) + (cond + ((not (-> self control unknown-spoolanim00)) ) - (cond - ((not (-> self control unknown-spoolanim00)) - ) - ((zero? (logand (-> self draw status) 2)) - (TODO-RENAME-30 (-> self control) (the-as vector a1-2)) - (matrix->quaternion - (-> self control unknown-quaternion00) - (-> gp-0 bone transform) - ) - (quaternion-copy! - (-> self control quat) - (-> self control unknown-quaternion00) - ) - (dummy-60 - (-> self control) - (the-as float 4096.0) - (the-as float 40960.0) - #t - (-> self control root-prim collide-with) - ) - (when (logtest? (-> self control status) 1024) - (let ((a1-6 (new-stack-vector0))) - (set! (-> a1-6 x) (-> self control trans x)) - (set! (-> a1-6 y) (-> self water height)) - (set! (-> a1-6 z) (-> self control trans z)) - (set! (-> a1-6 w) 1.0) - (TODO-RENAME-30 (-> self control) a1-6) + ((zero? (logand (-> self draw status) (draw-status drwf01))) + (TODO-RENAME-30 (-> self control) (the-as vector a1-2)) + (matrix->quaternion (-> self control unknown-quaternion00) (-> gp-0 bone transform)) + (quaternion-copy! (-> self control quat) (-> self control unknown-quaternion00)) + (dummy-60 + (-> self control) + (the-as float 4096.0) + (the-as float 40960.0) + #t + (-> self control root-prim collide-with) + ) + (when (logtest? (-> self control status) 1024) + (let ((a1-6 (new-stack-vector0))) + (set! (-> a1-6 x) (-> self control trans x)) + (set! (-> a1-6 y) (-> self water height)) + (set! (-> a1-6 z) (-> self control trans z)) + (set! (-> a1-6 w) 1.0) + (TODO-RENAME-30 (-> self control) a1-6) + ) + ) + ) + (else + (format 0 "ERROR: : camera used backup position~%") + (TODO-RENAME-30 (-> self control) (-> self control unknown-vector102)) + (quaternion-copy! (-> self control quat) (the-as quaternion (-> self control unknown-vector103))) + ) ) - ) ) - (else - (format 0 "ERROR: : camera used backup position~%") - (TODO-RENAME-30 (-> self control) (-> self control unknown-vector102)) - (quaternion-copy! - (-> self control quat) - (the-as quaternion (-> self control unknown-vector103)) - ) - ) - ) + (rot->dir-targ! (-> self control)) + (logior! (-> self control status) 7) + (set! (-> self control unknown-dword11) (-> *display* base-frame-counter)) + (ja-channel-set! 0) + (ja-post) + (target-exit) + (none) ) - (rot->dir-targ! (-> self control)) - (logior! (-> self control status) 7) - (set! (-> self control unknown-dword11) (-> *display* base-frame-counter)) - (ja-channel-set! 0) - (ja-post) - (target-exit) - (none) - ) :code (behavior ((arg0 handle)) - (clone-anim arg0 (the-as int (-> self draw origin-joint-index)) #t "") - (go target-stance) - (none) - ) + (clone-anim arg0 (the-as int (-> self draw origin-joint-index)) #t "") + (go target-stance) + (none) + ) :post target-no-ja-move-post ) diff --git a/goal_src/engine/ui/hud-h.gc b/goal_src/engine/ui/hud-h.gc index 0ca4600df6..803d961aab 100644 --- a/goal_src/engine/ui/hud-h.gc +++ b/goal_src/engine/ui/hud-h.gc @@ -107,6 +107,12 @@ (inc-value (_type_) float 25) (dec-value (_type_) float 26) ) + (:states + hud-arriving + hud-hidden + hud-in + (hud-leaving int) + ) ) @@ -128,20 +134,18 @@ ) -(define - *hud-parts* - (new 'static 'hud-parts - :pickups #f - :money #f - :fuel-cell #f - :health #f - :buzzers #f - :power #f - :bike-speed #f - :bike-heat #f - :money-all #f - ) - ) +(define *hud-parts* (new 'static 'hud-parts + :pickups #f + :money #f + :fuel-cell #f + :health #f + :buzzers #f + :power #f + :bike-speed #f + :bike-heat #f + :money-all #f + ) + ) 0 diff --git a/goal_src/engine/ui/hud.gc b/goal_src/engine/ui/hud.gc index 68efaf0c60..1e4a8726bb 100644 --- a/goal_src/engine/ui/hud.gc +++ b/goal_src/engine/ui/hud.gc @@ -8,10 +8,6 @@ ;; TODO - for hud-classes (define-extern hud-init-by-other (function int none :behavior hud)) -(define-extern hud-collecting (state handle collectable)) -(define-extern hud-leaving (state int hud)) -(define-extern hud-in (state hud)) -(define-extern hud-arriving (state hud)) ;; DECOMP BEGINS diff --git a/goal_src/engine/ui/progress-h.gc b/goal_src/engine/ui/progress-h.gc index 0b6c04d804..0967669e79 100644 --- a/goal_src/engine/ui/progress-h.gc +++ b/goal_src/engine/ui/progress-h.gc @@ -6,61 +6,6 @@ ;; dgos: GAME, ENGINE -(deftype count-info (structure) - ((money-count int32 :offset-assert 0) - (buzzer-count int32 :offset-assert 4) - ) - :pack-me - :method-count-assert 9 - :size-assert #x8 - :flag-assert #x900000008 - ) - -(deftype game-count-info (basic) - ((length int32 :offset-assert 4) - (data count-info :inline :dynamic :offset-assert 8) - ) - :method-count-assert 9 - :size-assert #x8 - :flag-assert #x900000008 - ) - -(deftype task-info-data (basic) - ((task-id game-task :offset-assert 4) - (task-name game-text-id 4 :offset-assert 8) - (text-index-when-resolved int32 :offset-assert 24) - ) - :method-count-assert 9 - :size-assert #x1c - :flag-assert #x90000001c - ) - -(deftype level-tasks-info (basic) - ((level-name-id game-text-id :offset-assert 4) - (text-group-index int32 :offset-assert 8) - (nb-of-tasks int32 :offset-assert 12) - (buzzer-task-index int32 :offset-assert 16) - (task-info task-info-data 8 :offset-assert 20) - ) - :method-count-assert 9 - :size-assert #x34 - :flag-assert #x900000034 - ) - -(deftype game-option (basic) - ((option-type uint64 :offset-assert 8) - (name game-text-id :offset-assert 16) - (scale basic :offset-assert 20) - (param1 float :offset-assert 24) - (param2 float :offset-assert 28) - (param3 int32 :offset-assert 32) - (value-to-modify pointer :offset-assert 36) - ) - :method-count-assert 9 - :size-assert #x28 - :flag-assert #x900000028 - ) - (defenum progress-screen :type int64 (invalid -1) @@ -100,6 +45,90 @@ (bad-disc 33) (quit 34) ) + +(defun-extern activate-progress process progress-screen none) +(defun-extern hide-progress-screen none) +(defun-extern hide-progress-icons none) + +(declare-type level-tasks-info basic) + +(define-extern *level-task-data* (array level-tasks-info)) +(define-extern *level-task-data-remap* (array int32)) + +(declare-type count-info structure) + +(defun-extern get-game-count int count-info) +(defun-extern progress-allowed? symbol) +(defun-extern pause-allowed? symbol) + +(declare-type progress process) + +(defun-extern deactivate-progress none) +(defun-extern calculate-completion progress float) +(defun-extern make-current-level-available-to-progress none) + +;; DECOMP BEGINS + +(deftype count-info (structure) + ((money-count int32 :offset-assert 0) + (buzzer-count int32 :offset-assert 4) + ) + :pack-me + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + + +(deftype game-count-info (basic) + ((length int32 :offset-assert 4) + (data count-info :inline :dynamic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + + +(deftype task-info-data (basic) + ((task-id game-task :offset-assert 4) + (task-name game-text-id 4 :offset-assert 8) + (text-index-when-resolved int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) + + +(deftype level-tasks-info (basic) + ((level-name-id game-text-id :offset-assert 4) + (text-group-index int32 :offset-assert 8) + (nb-of-tasks int32 :offset-assert 12) + (buzzer-task-index int32 :offset-assert 16) + (task-info task-info-data 8 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) + + +(deftype game-option (basic) + ((option-type uint64 :offset-assert 8) + (name game-text-id :offset-assert 16) + (scale basic :offset-assert 20) + (param1 float :offset-assert 24) + (param2 float :offset-assert 28) + (param3 int32 :offset-assert 32) + (value-to-modify pointer :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) + + (deftype progress (process) ((current-debug-string int32 :offset-assert 112) (current-debug-language int32 :offset-assert 116) @@ -147,18 +176,18 @@ (last-option-index-change int64 :offset-assert 296) (video-mode-timeout int64 :offset-assert 304) (display-state-stack progress-screen 5 :offset-assert 312) - (option-index-stack int32 5 :offset-assert 352) - (display-state-pos int32 :offset-assert 372) - (nb-of-icons int32 :offset-assert 376) - (icons hud-icon 6 :offset-assert 380) - (max-nb-of-particles int32 :offset-assert 404) - (nb-of-particles int32 :offset-assert 408) - (particles hud-particle 40 :offset-assert 412) - (particle-state int32 40 :offset-assert 572) + (option-index-stack int32 5 :offset-assert 352) + (display-state-pos int32 :offset-assert 372) + (nb-of-icons int32 :offset-assert 376) + (icons hud-icon 6 :offset-assert 380) + (max-nb-of-particles int32 :offset-assert 404) + (nb-of-particles int32 :offset-assert 408) + (particles hud-particle 40 :offset-assert 412) + (particle-state int32 40 :offset-assert 572) ) + :heap-base #x270 :method-count-assert 59 :size-assert #x2dc - :heap-base #x270 :flag-assert #x3b027002dc (:methods (dummy-14 (_type_) none 14) @@ -208,25 +237,16 @@ (draw-quit (_type_ font-context) none 58) ) (:states - progress-gone progress-coming-in + progress-debug progress-going-out + progress-gone + progress-normal progress-waiting ) ) -(define *progress-process* (the (pointer progress) #f)) + +(define *progress-process* (the-as (pointer progress) #f)) + (define *progress-last-task-index* 0) - -(defun-extern activate-progress process progress-screen none) -(defun-extern hide-progress-screen none) -(defun-extern hide-progress-icons none) -(define-extern *level-task-data* (array level-tasks-info)) -(define-extern *level-task-data-remap* (array int32)) -(defun-extern get-game-count int count-info) -(defun-extern progress-allowed? symbol) -(defun-extern pause-allowed? symbol) -(defun-extern deactivate-progress none) -(defun-extern calculate-completion progress float) -(defun-extern make-current-level-available-to-progress none) - diff --git a/goal_src/engine/ui/text-h.gc b/goal_src/engine/ui/text-h.gc index 090f3c84d0..18ebbdea65 100644 --- a/goal_src/engine/ui/text-h.gc +++ b/goal_src/engine/ui/text-h.gc @@ -193,7 +193,7 @@ (jungleb-eco-vents-opened #x289) (sidekick-speech-crate-steel-break2 #x28e) (sidekick-speech-hint-crate-darkeco2 #x28f) - + (daxter-screaming-jump #x290) (daxter-wahoo-jump #x291) (daxter-get-some #x292) @@ -201,12 +201,12 @@ (collectables-scout-flies-red-boxes #x295) (found-all-scout-flies #x296) (yakow-owed-powercell #x297) - + (jungle-mirrors-tutorial #x29c) (jungle-mirrors-break-the-mirror-jak #x29d) (jungle-mirrors-go-to-the-next-tower #x29f) (jungle-mirrors-follow-the-beam #x2a0) - + (misty-teetertotter-bonk-dax-tutorial #x2a4) (sidekick-hint-misty-get-red-eco #x2a5) @@ -439,7 +439,7 @@ (sage-voicebox-hint-crate-iron #x917) (training-warp-gate-blocked #x919) (training-warp-gate-reminder #x91a) - + (training-gimmie-task-name #x91b) (training-buzzer-task-name #x91c) (training-door-task-name #x91d) diff --git a/goal_src/kernel/gkernel-h.gc b/goal_src/kernel/gkernel-h.gc index 0ffb179a23..507b619edf 100644 --- a/goal_src/kernel/gkernel-h.gc +++ b/goal_src/kernel/gkernel-h.gc @@ -260,6 +260,9 @@ (:methods (new (symbol type basic int) _type_ 0) ) + (:states + dead-state + empty-state) :size-assert #x70 :method-count-assert 14 :no-runtime-type ;; already defined by kscheme. Don't do it again. diff --git a/goal_src/levels/beach/beach-part.gc b/goal_src/levels/beach/beach-part.gc index 0b2983fcdf..93d57bde4c 100644 --- a/goal_src/levels/beach/beach-part.gc +++ b/goal_src/levels/beach/beach-part.gc @@ -13,1103 +13,985 @@ :method-count-assert 21 :size-assert #xd0 :flag-assert #x15006000d0 - ) - - -(set! - (-> *part-id-table* 666) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 24 - (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) - (sp-flt spt-num 0.01) - (sp-flt spt-y (meters 1.0)) - (sp-rnd-flt spt-scale-x (meters 15.0) (meters 5.0) 1.0) - (sp-int spt-rot-x 4) - (sp-rnd-flt spt-rot-z (degrees -110.0) (degrees 20.0) 1.0) - (sp-flt spt-scale-y (meters 5.0)) - (sp-flt spt-r 192.0) - (sp-flt spt-g 192.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 0.0) - (sp-flt spt-scalevel-x (meters 0.0009765625)) - (sp-rnd-flt spt-rotvel-z (degrees -0.0033333332) (degrees 0.0066666664) 1.0) - (sp-flt spt-scalevel-y (meters 0.0009765625)) - (sp-flt spt-fade-a 0.02) - (sp-int spt-timer 2400) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-int spt-next-time 1200) - (sp-launcher-by-id spt-next-launcher 667) - (sp-flt spt-conerot-x (degrees 90.0)) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-flt spt-conerot-radius (meters 8.0)) - (sp-flt spt-rotate-y (degrees 0.0)) - (sp-end) + (:states + beach-part-grotto-1 ) - ) ) -(set! - (-> *part-id-table* 667) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.02) - (sp-end) - ) - ) - ) -(set! - (-> *part-id-table* 668) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 19 - (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) - (sp-rnd-flt spt-num 0.03 0.2 1.0) - (sp-flt spt-y (meters -4.0)) - (sp-flt spt-scale-x (meters 0.18)) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 192.0) - (sp-flt spt-g 192.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 0.0) - (sp-flt spt-fade-a 0.21333334) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2 bit3) - (sp-flt spt-userdata 0.0) - (sp-int spt-next-time 150) - (sp-launcher-by-id spt-next-launcher 669) - (sp-flt spt-conerot-x (degrees 90.0)) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-conerot-radius (meters 8.0) (meters 5.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 666) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) + (sp-flt spt-num 0.01) + (sp-flt spt-y (meters 1.0)) + (sp-rnd-flt spt-scale-x (meters 15.0) (meters 5.0) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-rot-z (degrees -110.0) (degrees 20.0) 1.0) + (sp-flt spt-scale-y (meters 5.0)) + (sp-flt spt-r 192.0) + (sp-flt spt-g 192.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 0.0) + (sp-flt spt-scalevel-x (meters 0.0009765625)) + (sp-rnd-flt spt-rotvel-z (degrees -0.0033333332) (degrees 0.0066666664) 1.0) + (sp-flt spt-scalevel-y (meters 0.0009765625)) + (sp-flt spt-fade-a 0.02) + (sp-int spt-timer 2400) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-int spt-next-time 1200) + (sp-launcher-by-id spt-next-launcher 667) + (sp-flt spt-conerot-x (degrees 90.0)) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-flt spt-conerot-radius (meters 8.0)) + (sp-flt spt-rotate-y (degrees 0.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 669) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 6 - (sp-flt spt-scalevel-y (meters 0.0024414062)) - (sp-flt spt-fade-a 0.0) - (sp-flt spt-accel-y -8.192) - (sp-int spt-next-time 210) - (sp-launcher-by-id spt-next-launcher 670) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 667) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.02) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 670) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 4 - (sp-flt spt-fade-a -0.16) - (sp-int spt-timer 150) - (sp-func spt-func 'check-water-level-drop) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 668) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 19 + (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) + (sp-rnd-flt spt-num 0.03 0.2 1.0) + (sp-flt spt-y (meters -4.0)) + (sp-flt spt-scale-x (meters 0.18)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 192.0) + (sp-flt spt-g 192.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 0.0) + (sp-flt spt-fade-a 0.21333334) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2 bit3) + (sp-flt spt-userdata 0.0) + (sp-int spt-next-time 150) + (sp-launcher-by-id spt-next-launcher 669) + (sp-flt spt-conerot-x (degrees 90.0)) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters 8.0) (meters 5.0) 1.0) + (sp-end) + ) + ) + ) + +(set! (-> *part-id-table* 669) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 6 + (sp-flt spt-scalevel-y (meters 0.0024414062)) + (sp-flt spt-fade-a 0.0) + (sp-flt spt-accel-y -8.192) + (sp-int spt-next-time 210) + (sp-launcher-by-id spt-next-launcher 670) + (sp-end) + ) + ) + ) + +(set! (-> *part-id-table* 670) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4 + (sp-flt spt-fade-a -0.16) + (sp-int spt-timer 150) + (sp-func spt-func 'check-water-level-drop) + (sp-end) + ) + ) + ) (defstate beach-part-grotto-1 (beach-part) :code (behavior () - (while #t - (when (dummy-20 self) - (let* ((gp-0 (camera-pos)) - (f0-0 (vector-vector-distance (-> self root trans) gp-0)) - ) - (if (or (< (-> gp-0 y) (-> self root trans y)) (< 122880.0 f0-0)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 666) - (-> self root trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + (while #t + (when (dummy-20 self) + (let* ((gp-0 (camera-pos)) + (f0-0 (vector-vector-distance (-> self root trans) gp-0)) + ) + (if (or (< (-> gp-0 y) (-> self root trans y)) (< 122880.0 f0-0)) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 666) + (-> self root trans) + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + ) + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 668) + (-> self root trans) + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) ) - ) + (suspend) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 668) - (-> self root trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + (none) + ) + ) + +(set! (-> *part-id-table* 671) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) + (sp-rnd-flt spt-num 0.3 0.4 1.0) + (sp-rnd-flt spt-x (meters -23.0) (meters 55.0) 1.0) + (sp-flt spt-z 2048.0) + (sp-flt spt-scale-x (meters 0.18)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 192.0) + (sp-flt spt-g 192.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 0.0) + (sp-flt spt-fade-a 0.10666667) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2 bit3) + (sp-flt spt-userdata 0.0) + (sp-int spt-next-time 300) + (sp-launcher-by-id spt-next-launcher 669) + (sp-rnd-flt spt-conerot-x (degrees -40.0) (degrees 80.0) 1.0) + (sp-flt spt-conerot-radius (meters 14.6)) + (sp-flt spt-rotate-y (degrees 37.0)) + (sp-end) + ) + ) ) - ) - (suspend) - ) - (none) - ) - ) -(set! - (-> *part-id-table* 671) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) - (sp-rnd-flt spt-num 0.3 0.4 1.0) - (sp-rnd-flt spt-x (meters -23.0) (meters 55.0) 1.0) - (sp-flt spt-z 2048.0) - (sp-flt spt-scale-x (meters 0.18)) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 192.0) - (sp-flt spt-g 192.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 0.0) - (sp-flt spt-fade-a 0.10666667) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2 bit3) - (sp-flt spt-userdata 0.0) - (sp-int spt-next-time 300) - (sp-launcher-by-id spt-next-launcher 669) - (sp-rnd-flt spt-conerot-x (degrees -40.0) (degrees 80.0) 1.0) - (sp-flt spt-conerot-radius (meters 14.6)) - (sp-flt spt-rotate-y (degrees 37.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-group-id-table* 161) (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-grotto-2" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 671 :fade-after (meters 80.0) :falloff-to (meters 80.0)) + ) + :bounds + (new 'static 'sphere :y -20480.0 :w 61440.0) + ) + ) -(set! - (-> *part-group-id-table* 161) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-grotto-2" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 671 :fade-after (meters 80.0) :falloff-to (meters 80.0)) - ) - :bounds - (new 'static 'sphere :y -20480.0 :w 61440.0) - ) - ) +(set! (-> *part-id-table* 672) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 23 + (sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2)) + (sp-rnd-flt spt-num 1.0 1.0 1.0) + (sp-rnd-flt spt-x (meters -10.0) (meters 4.0) 1.0) + (sp-flt spt-y (meters 103.0)) + (sp-rnd-flt spt-z -34816.0 65536.0 1.0) + (sp-rnd-flt spt-scale-x (meters 2.4) (meters 1.6) 1.0) + (sp-rnd-flt spt-scale-y (meters 1.2) (meters 0.8) 1.0) + (sp-flt spt-r 192.0) + (sp-flt spt-g 192.0) + (sp-flt spt-b 192.0) + (sp-rnd-flt spt-a 24.0 16.0 1.0) + (sp-flt spt-vel-x (meters 0.06666667)) + (sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0) + (sp-rnd-flt spt-vel-z (meters -0.0033333334) (meters 0.006666667) 1.0) + (sp-flt spt-scalevel-x (meters 0.0073242188)) + (sp-flt spt-scalevel-y (meters 0.029296875)) + (sp-flt spt-accel-x -3.7304192) + (sp-rnd-flt spt-accel-y -15.018667 -2.7306666 1.0) + (sp-int spt-timer 495) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0) + (sp-flt spt-rotate-y (degrees -124.99999)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 672) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 23 - (sp-tex spt-texture (new 'static 'texture-id :index #x18 :page #x2)) - (sp-rnd-flt spt-num 1.0 1.0 1.0) - (sp-rnd-flt spt-x (meters -10.0) (meters 4.0) 1.0) - (sp-flt spt-y (meters 103.0)) - (sp-rnd-flt spt-z -34816.0 65536.0 1.0) - (sp-rnd-flt spt-scale-x (meters 2.4) (meters 1.6) 1.0) - (sp-rnd-flt spt-scale-y (meters 1.2) (meters 0.8) 1.0) - (sp-flt spt-r 192.0) - (sp-flt spt-g 192.0) - (sp-flt spt-b 192.0) - (sp-rnd-flt spt-a 24.0 16.0 1.0) - (sp-flt spt-vel-x (meters 0.06666667)) - (sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0) - (sp-rnd-flt spt-vel-z (meters -0.0033333334) (meters 0.006666667) 1.0) - (sp-flt spt-scalevel-x (meters 0.0073242188)) - (sp-flt spt-scalevel-y (meters 0.029296875)) - (sp-flt spt-accel-x -3.7304192) - (sp-rnd-flt spt-accel-y -15.018667 -2.7306666 1.0) - (sp-int spt-timer 495) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-rnd-flt spt-launchrot-x (degrees -15.0) (degrees 30.0) 1.0) - (sp-flt spt-rotate-y (degrees -124.99999)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 673) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-rnd-flt spt-num 0.8 0.8 1.0) + (sp-rnd-flt spt-x (meters -9.0) (meters 3.5) 1.0) + (sp-flt spt-y (meters 103.0)) + (sp-rnd-flt spt-z -34816.0 65536.0 1.0) + (sp-rnd-flt spt-scale-x (meters 1.2) (meters 0.8) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 180.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 1.2) (meters 0.8) 1.0) + (sp-flt spt-r 192.0) + (sp-flt spt-g 192.0) + (sp-flt spt-b 192.0) + (sp-rnd-flt spt-a 16.0 20.0 1.0) + (sp-flt spt-vel-x (meters 0.038333334)) + (sp-rnd-flt spt-vel-y (meters 0.0033333334) (meters 0.01) 1.0) + (sp-rnd-flt spt-vel-z (meters -0.0033333334) (meters 0.006666667) 1.0) + (sp-flt spt-scalevel-x (meters 0.0146484375)) + (sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0) + (sp-flt spt-scalevel-y (meters 0.0146484375)) + (sp-flt spt-accel-x -1.189495) + (sp-rnd-flt spt-accel-y -4.7786665 -1.024 1.0) + (sp-int spt-timer 855) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-flt spt-rotate-y (degrees -124.99999)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 673) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 24 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-rnd-flt spt-num 0.8 0.8 1.0) - (sp-rnd-flt spt-x (meters -9.0) (meters 3.5) 1.0) - (sp-flt spt-y (meters 103.0)) - (sp-rnd-flt spt-z -34816.0 65536.0 1.0) - (sp-rnd-flt spt-scale-x (meters 1.2) (meters 0.8) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 180.0) 1.0) - (sp-rnd-flt spt-scale-y (meters 1.2) (meters 0.8) 1.0) - (sp-flt spt-r 192.0) - (sp-flt spt-g 192.0) - (sp-flt spt-b 192.0) - (sp-rnd-flt spt-a 16.0 20.0 1.0) - (sp-flt spt-vel-x (meters 0.038333334)) - (sp-rnd-flt spt-vel-y (meters 0.0033333334) (meters 0.01) 1.0) - (sp-rnd-flt spt-vel-z (meters -0.0033333334) (meters 0.006666667) 1.0) - (sp-flt spt-scalevel-x (meters 0.0146484375)) - (sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0) - (sp-flt spt-scalevel-y (meters 0.0146484375)) - (sp-flt spt-accel-x -1.189495) - (sp-rnd-flt spt-accel-y -4.7786665 -1.024 1.0) - (sp-int spt-timer 855) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-flt spt-rotate-y (degrees -124.99999)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 674) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 23 + (sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2)) + (sp-flt spt-num 0.9) + (sp-rnd-flt spt-x (meters -10.0) (meters 4.0) 1.0) + (sp-flt spt-y (meters 103.0)) + (sp-rnd-flt spt-z -38912.0 73728.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.2) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 28.0) + (sp-rnd-flt spt-vel-x (meters 0.06) (meters 0.006666667) 1.0) + (sp-rnd-flt spt-vel-y (meters 0.0033333334) (meters 0.02) 1.0) + (sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0) + (sp-flt spt-scalevel-x (meters -0.00024414062)) + (sp-flt spt-scalevel-y (meters 0.001953125)) + (sp-flt spt-accel-x -2.5600002) + (sp-rnd-flt spt-accel-y -6.826667 -3.4133334 1.0) + (sp-int spt-timer 660) + (sp-cpuinfo-flags bit2 bit3 bit12 bit14) + (sp-rnd-flt spt-launchrot-x (degrees -20.0) (degrees 40.0) 1.0) + (sp-flt spt-rotate-y (degrees -124.99999)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 674) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 23 - (sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x2)) - (sp-flt spt-num 0.9) - (sp-rnd-flt spt-x (meters -10.0) (meters 4.0) 1.0) - (sp-flt spt-y (meters 103.0)) - (sp-rnd-flt spt-z -38912.0 73728.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.2) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 28.0) - (sp-rnd-flt spt-vel-x (meters 0.06) (meters 0.006666667) 1.0) - (sp-rnd-flt spt-vel-y (meters 0.0033333334) (meters 0.02) 1.0) - (sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0) - (sp-flt spt-scalevel-x (meters -0.00024414062)) - (sp-flt spt-scalevel-y (meters 0.001953125)) - (sp-flt spt-accel-x -2.5600002) - (sp-rnd-flt spt-accel-y -6.826667 -3.4133334 1.0) - (sp-int spt-timer 660) - (sp-cpuinfo-flags bit2 bit3 bit12 bit14) - (sp-rnd-flt spt-launchrot-x (degrees -20.0) (degrees 40.0) 1.0) - (sp-flt spt-rotate-y (degrees -124.99999)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 675) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 27 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-flt spt-num 0.04) + (sp-rnd-flt spt-x (meters 6.0) (meters 6.0) 1.0) + (sp-flt spt-y (meters 6.5)) + (sp-rnd-flt spt-z -34816.0 65536.0 1.0) + (sp-flt spt-scale-x (meters 18.0)) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-rnd-flt spt-a 0.0 32.0 1.0) + (sp-rnd-flt spt-vel-x (meters -0.006666667) (meters 0.026666667) 1.0) + (sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0) + (sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0) + (sp-flt spt-scalevel-x (meters 0.0044444446)) + (sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a 0.42666668) + (sp-flt spt-accel-y 0.13653333) + (sp-flt spt-friction 0.99) + (sp-int spt-timer 1050) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-int-plain-rnd spt-next-time 90 59 1) + (sp-launcher-by-id spt-next-launcher 676) + (sp-flt spt-rotate-y (degrees -124.99999)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 675) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 27 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-flt spt-num 0.04) - (sp-rnd-flt spt-x (meters 6.0) (meters 6.0) 1.0) - (sp-flt spt-y (meters 6.5)) - (sp-rnd-flt spt-z -34816.0 65536.0 1.0) - (sp-flt spt-scale-x (meters 18.0)) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-rnd-flt spt-a 0.0 32.0 1.0) - (sp-rnd-flt spt-vel-x (meters -0.006666667) (meters 0.026666667) 1.0) - (sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0) - (sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0) - (sp-flt spt-scalevel-x (meters 0.0044444446)) - (sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a 0.42666668) - (sp-flt spt-accel-y 0.13653333) - (sp-flt spt-friction 0.99) - (sp-int spt-timer 1050) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-int-plain-rnd spt-next-time 90 59 1) - (sp-launcher-by-id spt-next-launcher 676) - (sp-flt spt-rotate-y (degrees -124.99999)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 676) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.14222223) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 676) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.14222223) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 677) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 25 + (sp-tex spt-texture (new 'static 'texture-id :index #x29 :page #x2)) + (sp-flt spt-num 0.2) + (sp-rnd-flt spt-x (meters 2.0) (meters 10.0) 1.0) + (sp-flt spt-y (meters 8.0)) + (sp-rnd-flt spt-z -43008.0 81920.0 1.0) + (sp-flt spt-scale-x (meters 18.0)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-rnd-flt spt-g 150.0 42.0 1.0) + (sp-flt spt-b 192.0) + (sp-rnd-flt spt-a 32.0 32.0 1.0) + (sp-rnd-flt spt-vel-x (meters 0.0) (meters 0.06666667) 1.0) + (sp-flt spt-vel-y (meters 0.008333334)) + (sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.01) 1.0) + (sp-rnd-flt spt-scalevel-y (meters 0.006666667) (meters 0.006666667) 1.0) + (sp-flt spt-fade-a 0.42666668) + (sp-flt spt-accel-y 0.13653333) + (sp-flt spt-friction 0.99) + (sp-int spt-timer 1050) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-int-plain-rnd spt-next-time 90 59 1) + (sp-launcher-by-id spt-next-launcher 676) + (sp-flt spt-rotate-y (degrees -124.99999)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 677) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 25 - (sp-tex spt-texture (new 'static 'texture-id :index #x29 :page #x2)) - (sp-flt spt-num 0.2) - (sp-rnd-flt spt-x (meters 2.0) (meters 10.0) 1.0) - (sp-flt spt-y (meters 8.0)) - (sp-rnd-flt spt-z -43008.0 81920.0 1.0) - (sp-flt spt-scale-x (meters 18.0)) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-rnd-flt spt-g 150.0 42.0 1.0) - (sp-flt spt-b 192.0) - (sp-rnd-flt spt-a 32.0 32.0 1.0) - (sp-rnd-flt spt-vel-x (meters 0.0) (meters 0.06666667) 1.0) - (sp-flt spt-vel-y (meters 0.008333334)) - (sp-rnd-flt spt-vel-z (meters -0.006666667) (meters 0.013333334) 1.0) - (sp-rnd-flt spt-scalevel-x (meters 0.01) (meters 0.01) 1.0) - (sp-rnd-flt spt-scalevel-y (meters 0.006666667) (meters 0.006666667) 1.0) - (sp-flt spt-fade-a 0.42666668) - (sp-flt spt-accel-y 0.13653333) - (sp-flt spt-friction 0.99) - (sp-int spt-timer 1050) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-int-plain-rnd spt-next-time 90 59 1) - (sp-launcher-by-id spt-next-launcher 676) - (sp-flt spt-rotate-y (degrees -124.99999)) - (sp-end) - ) - ) - ) +(set! (-> *part-group-id-table* 162) (new 'static 'sparticle-launch-group + :length 8 + :duration #xbb8 + :linger-duration #x5dc + :flags + (sp-group-flag always-draw unknown-bit-01) + :name "group-beach-waterfall" + :launcher + (new 'static 'inline-array sparticle-group-item 8 + (sp-item 677 :fade-after (meters 200.0) :falloff-to (meters 200.0)) + (sp-item 675) + (sp-item 675 :fade-after (meters 200.0) :falloff-to (meters 200.0)) + (sp-item 672) + (sp-item 672 :fade-after (meters 100.0) :falloff-to (meters 100.0)) + (sp-item 672 :fade-after (meters 160.0) :falloff-to (meters 160.0)) + (sp-item 673 :fade-after (meters 300.0) :falloff-to (meters 300.0)) + (sp-item 674 :fade-after (meters 90.0) :falloff-to (meters 90.0)) + ) + :bounds + (new 'static 'sphere :y 225280.0 :w 225280.0) + ) + ) -(set! - (-> *part-group-id-table* 162) - (new 'static 'sparticle-launch-group - :length 8 - :duration #xbb8 - :linger-duration #x5dc - :flags - (sp-group-flag always-draw unknown-bit-01) - :name "group-beach-waterfall" - :launcher - (new 'static 'inline-array sparticle-group-item 8 - (sp-item 677 :fade-after (meters 200.0) :falloff-to (meters 200.0)) - (sp-item 675) - (sp-item 675 :fade-after (meters 200.0) :falloff-to (meters 200.0)) - (sp-item 672) - (sp-item 672 :fade-after (meters 100.0) :falloff-to (meters 100.0)) - (sp-item 672 :fade-after (meters 160.0) :falloff-to (meters 160.0)) - (sp-item 673 :fade-after (meters 300.0) :falloff-to (meters 300.0)) - (sp-item 674 :fade-after (meters 90.0) :falloff-to (meters 90.0)) - ) - :bounds - (new 'static 'sphere :y 225280.0 :w 225280.0) - ) - ) +(set! (-> *part-group-id-table* 163) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-24" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 678 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 1200) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 163) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-24" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 678 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 1200) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-group-id-table* 164) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-23" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 679 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 600) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 164) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-23" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 679 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 600) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-group-id-table* 165) (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-22" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 680 :fade-after (meters 80.0) :period 2400 :length 1500) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 165) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-22" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 680 :fade-after (meters 80.0) :period 2400 :length 1500) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-group-id-table* 166) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-18" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 681 :fade-after (meters 100.0) :period 2400 :length 1500 :offset 1200) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 166) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-18" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 681 :fade-after (meters 100.0) :period 2400 :length 1500 :offset 1200) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-group-id-table* 167) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-17" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 682 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 600) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 167) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-17" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 682 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 600) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-group-id-table* 168) (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-16" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 683 :fade-after (meters 50.0) :period 2400 :length 1500) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 168) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-16" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 683 :fade-after (meters 50.0) :period 2400 :length 1500) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-group-id-table* 169) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-15" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 684 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 64936) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 169) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-15" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 684 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 64936) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-group-id-table* 170) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-14" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 685 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 64336) + ) + :bounds + (new 'static 'sphere :y 12288.0 :w 204800.0) + ) + ) -(set! - (-> *part-group-id-table* 170) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-14" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 685 :fade-after (meters 50.0) :period 2400 :length 1500 :offset 64336) - ) - :bounds - (new 'static 'sphere :y 12288.0 :w 204800.0) - ) - ) +(set! (-> *part-id-table* 678) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.01 0.01 1.0) + (sp-rnd-flt spt-x (meters -85.0) (meters 60.0) 1.0) + (sp-flt spt-y (meters 13.0)) + (sp-rnd-flt spt-z -122880.0 266240.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.026666667)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.008888889) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 1800) + (sp-launcher-by-id spt-next-launcher 686) + (sp-flt spt-rotate-y (degrees 40.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 678) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.01 0.01 1.0) - (sp-rnd-flt spt-x (meters -85.0) (meters 60.0) 1.0) - (sp-flt spt-y (meters 13.0)) - (sp-rnd-flt spt-z -122880.0 266240.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.026666667)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.008888889) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 1800) - (sp-launcher-by-id spt-next-launcher 686) - (sp-flt spt-rotate-y (degrees 40.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 686) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.07111111) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 686) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.07111111) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 679) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.01 0.01 1.0) + (sp-rnd-flt spt-x (meters -65.0) (meters 60.0) 1.0) + (sp-flt spt-y (meters 8.0)) + (sp-rnd-flt spt-z -122880.0 204800.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.02)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.008888889) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 1800) + (sp-launcher-by-id spt-next-launcher 687) + (sp-flt spt-rotate-y (degrees 40.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 679) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.01 0.01 1.0) - (sp-rnd-flt spt-x (meters -65.0) (meters 60.0) 1.0) - (sp-flt spt-y (meters 8.0)) - (sp-rnd-flt spt-z -122880.0 204800.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.02)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.008888889) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 1800) - (sp-launcher-by-id spt-next-launcher 687) - (sp-flt spt-rotate-y (degrees 40.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 687) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.07111111) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 687) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.07111111) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 680) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 22 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.01 0.01 1.0) + (sp-rnd-flt spt-x (meters -50.0) (meters 20.0) 1.0) + (sp-flt spt-y (meters 0.0)) + (sp-rnd-flt spt-z -163840.0 327680.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.026666667)) + (sp-flt spt-vel-z (meters 0.016666668)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.010666667) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 1500) + (sp-launcher-by-id spt-next-launcher 688) + (sp-flt spt-rotate-y (degrees 120.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 680) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 22 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.01 0.01 1.0) - (sp-rnd-flt spt-x (meters -50.0) (meters 20.0) 1.0) - (sp-flt spt-y (meters 0.0)) - (sp-rnd-flt spt-z -163840.0 327680.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.026666667)) - (sp-flt spt-vel-z (meters 0.016666668)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.010666667) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 1500) - (sp-launcher-by-id spt-next-launcher 688) - (sp-flt spt-rotate-y (degrees 120.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 688) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.08533333) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 688) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.08533333) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 681) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 22 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.03 0.04 1.0) + (sp-rnd-flt spt-x (meters -40.0) (meters 20.0) 1.0) + (sp-flt spt-y (meters 1.0)) + (sp-rnd-flt spt-z -163840.0 368640.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.026666667)) + (sp-flt spt-vel-z (meters -0.016666668)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.008888889) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 1800) + (sp-launcher-by-id spt-next-launcher 689) + (sp-flt spt-rotate-y (degrees -60.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 681) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 22 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.03 0.04 1.0) - (sp-rnd-flt spt-x (meters -40.0) (meters 20.0) 1.0) - (sp-flt spt-y (meters 1.0)) - (sp-rnd-flt spt-z -163840.0 368640.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.026666667)) - (sp-flt spt-vel-z (meters -0.016666668)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.008888889) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 1800) - (sp-launcher-by-id spt-next-launcher 689) - (sp-flt spt-rotate-y (degrees -60.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 689) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.07111111) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 689) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.07111111) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 682) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.015 0.02 1.0) + (sp-flt spt-x (meters -10.0)) + (sp-flt spt-y (meters 1.0)) + (sp-rnd-flt spt-z -40960.0 92160.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.026666667)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.017777778) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 900) + (sp-launcher-by-id spt-next-launcher 690) + (sp-flt spt-rotate-y (degrees -15.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 682) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.015 0.02 1.0) - (sp-flt spt-x (meters -10.0)) - (sp-flt spt-y (meters 1.0)) - (sp-rnd-flt spt-z -40960.0 92160.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.026666667)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.017777778) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 900) - (sp-launcher-by-id spt-next-launcher 690) - (sp-flt spt-rotate-y (degrees -15.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 690) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.017777778) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 690) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.017777778) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 683) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.015 0.02 1.0) + (sp-flt spt-x (meters -25.0)) + (sp-flt spt-y (meters 1.0)) + (sp-rnd-flt spt-z -61440.0 204800.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.026666667)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.013333334) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 1200) + (sp-launcher-by-id spt-next-launcher 691) + (sp-flt spt-rotate-y (degrees 0.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 683) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.015 0.02 1.0) - (sp-flt spt-x (meters -25.0)) - (sp-flt spt-y (meters 1.0)) - (sp-rnd-flt spt-z -61440.0 204800.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.026666667)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.013333334) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 1200) - (sp-launcher-by-id spt-next-launcher 691) - (sp-flt spt-rotate-y (degrees 0.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 691) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.013333334) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 691) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.013333334) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 684) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.015 0.015 1.0) + (sp-flt spt-x (meters -35.0)) + (sp-flt spt-y (meters 1.0)) + (sp-rnd-flt spt-z -143360.0 245760.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.026666667)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.016410256) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 975) + (sp-launcher-by-id spt-next-launcher 692) + (sp-flt spt-rotate-y (degrees 45.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 684) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.015 0.015 1.0) - (sp-flt spt-x (meters -35.0)) - (sp-flt spt-y (meters 1.0)) - (sp-rnd-flt spt-z -143360.0 245760.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.026666667)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.016410256) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 975) - (sp-launcher-by-id spt-next-launcher 692) - (sp-flt spt-rotate-y (degrees 45.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 692) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.016410256) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 692) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.016410256) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 685) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 0.015 0.015 1.0) + (sp-flt spt-x (meters -25.0)) + (sp-flt spt-y (meters 14.0)) + (sp-rnd-flt spt-z -61440.0 286720.0 1.0) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 130.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 54.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-x (meters 0.026666667)) + (sp-flt spt-rotvel-z (degrees -0.15)) + (sp-flt spt-fade-a 0.014222222) + (sp-int spt-timer 3600) + (sp-cpuinfo-flags bit2 bit12) + (sp-int spt-next-time 1125) + (sp-launcher-by-id spt-next-launcher 693) + (sp-flt spt-rotate-y (degrees 0.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 685) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 0.015 0.015 1.0) - (sp-flt spt-x (meters -25.0)) - (sp-flt spt-y (meters 14.0)) - (sp-rnd-flt spt-z -61440.0 286720.0 1.0) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 20.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 130.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 54.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-x (meters 0.026666667)) - (sp-flt spt-rotvel-z (degrees -0.15)) - (sp-flt spt-fade-a 0.014222222) - (sp-int spt-timer 3600) - (sp-cpuinfo-flags bit2 bit12) - (sp-int spt-next-time 1125) - (sp-launcher-by-id spt-next-launcher 693) - (sp-flt spt-rotate-y (degrees 0.0)) - (sp-end) - ) - ) - ) - -(set! - (-> *part-id-table* 693) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.014222222) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 693) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.014222222) (sp-end)) + ) + ) (define sound-beach-waterfall - (new 'static 'sound-spec - :num 1.0 - :group #x1 - :sound-name (static-sound-name "waterfall") - :volume #x400 - ) + (new 'static 'sound-spec :num 1.0 :group #x1 :sound-name (static-sound-name "waterfall") :volume #x400) ) -(set! - (-> *part-group-id-table* 171) - (new 'static 'sparticle-launch-group - :length 13 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-butterflies" - :launcher - (new 'static 'inline-array sparticle-group-item 13 - (sp-item 696 :fade-after (meters 120.0) :period 4903 :length 5 :hour-mask #b111111100000000000111111 :binding 694) - (sp-item 696 :fade-after (meters 120.0) :period 6637 :length 5 :hour-mask #b111111100000000000111111 :binding 694) - (sp-item 696 :fade-after (meters 120.0) :period 9846 :length 5 :hour-mask #b111111100000000000111111 :binding 694) - (sp-item 694 :flags (start-dead launch-asap) :binding 695) - (sp-item 695 :flags (is-3d start-dead)) - (sp-item 694 :flags (start-dead launch-asap) :binding 695) - (sp-item 695 :flags (is-3d start-dead)) - (sp-item 694 :flags (start-dead launch-asap) :binding 695) - (sp-item 695 :flags (is-3d start-dead)) - (sp-item 694 :flags (start-dead launch-asap) :binding 695) - (sp-item 695 :flags (is-3d start-dead)) - (sp-item 694 :flags (start-dead launch-asap) :binding 695) - (sp-item 695 :flags (is-3d start-dead)) - ) - :bounds (new 'static 'sphere :w 122880.0) - ) - ) +(set! (-> *part-group-id-table* 171) + (new 'static 'sparticle-launch-group + :length 13 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-butterflies" + :launcher + (new 'static 'inline-array sparticle-group-item 13 + (sp-item 696 :fade-after (meters 120.0) :period 4903 :length 5 :hour-mask #b111111100000000000111111 :binding 694) + (sp-item 696 :fade-after (meters 120.0) :period 6637 :length 5 :hour-mask #b111111100000000000111111 :binding 694) + (sp-item 696 :fade-after (meters 120.0) :period 9846 :length 5 :hour-mask #b111111100000000000111111 :binding 694) + (sp-item 694 :flags (start-dead launch-asap) :binding 695) + (sp-item 695 :flags (is-3d start-dead)) + (sp-item 694 :flags (start-dead launch-asap) :binding 695) + (sp-item 695 :flags (is-3d start-dead)) + (sp-item 694 :flags (start-dead launch-asap) :binding 695) + (sp-item 695 :flags (is-3d start-dead)) + (sp-item 694 :flags (start-dead launch-asap) :binding 695) + (sp-item 695 :flags (is-3d start-dead)) + (sp-item 694 :flags (start-dead launch-asap) :binding 695) + (sp-item 695 :flags (is-3d start-dead)) + ) + :bounds (new 'static 'sphere :w 122880.0) + ) + ) -(set! - (-> *part-id-table* 696) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 16 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 1.0) - (sp-rnd-flt spt-x (meters 0.0) (meters 7.5) 1.0) - (sp-rnd-flt spt-y (meters 14.0) (meters 3.0) 1.0) - (sp-flt spt-scale-x (meters 1.0)) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-a 0.0) - (sp-flt spt-vel-y (meters -0.036666665)) - (sp-flt spt-accel-y 1.3653333) - (sp-int spt-timer 6000) - (sp-cpuinfo-flags bit3) - (sp-int spt-next-time 555) - (sp-launcher-by-id spt-next-launcher 697) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 696) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 16 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-x (meters 0.0) (meters 7.5) 1.0) + (sp-rnd-flt spt-y (meters 14.0) (meters 3.0) 1.0) + (sp-flt spt-scale-x (meters 1.0)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-a 0.0) + (sp-flt spt-vel-y (meters -0.036666665)) + (sp-flt spt-accel-y 1.3653333) + (sp-int spt-timer 6000) + (sp-cpuinfo-flags bit3) + (sp-int spt-next-time 555) + (sp-launcher-by-id spt-next-launcher 697) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 697) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 4 - (sp-flt spt-accel-y 0.0) - (sp-int-plain-rnd spt-next-time 2700 1499 1) - (sp-launcher-by-id spt-next-launcher 698) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 697) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4 + (sp-flt spt-accel-y 0.0) + (sp-int-plain-rnd spt-next-time 2700 1499 1) + (sp-launcher-by-id spt-next-launcher 698) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 698) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-accel-y 1.3653333) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 698) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-accel-y 1.3653333) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 694) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 1.0) - (sp-rnd-flt spt-x (meters 0.0) (meters 16.0) 1.0) - (sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0) - (sp-rnd-flt spt-z 12288.0 4096.0 1.0) - (sp-flt spt-scale-x (meters 0.1)) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-g 0.0 256.0 1.0) - (sp-rnd-int spt-b 1124073472 1 128.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-omega 0.0 65536.0 1.0) - (sp-rnd-flt spt-vel-x (meters -0.017777778) (meters 0.035555556) 1.0) - (sp-rnd-flt spt-vel-y (meters -0.0074074077) (meters 0.0148148155) 1.0) - (sp-flt spt-vel-z (meters 0.0)) - (sp-int spt-timer 6000) - (sp-cpuinfo-flags bit3 bit7) - (sp-int-plain-rnd spt-next-time 150 449 1) - (sp-launcher-by-id spt-next-launcher 699) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 694) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-x (meters 0.0) (meters 16.0) 1.0) + (sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0) + (sp-rnd-flt spt-z 12288.0 4096.0 1.0) + (sp-flt spt-scale-x (meters 0.1)) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-g 0.0 256.0 1.0) + (sp-rnd-int spt-b 1124073472 1 128.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-omega 0.0 65536.0 1.0) + (sp-rnd-flt spt-vel-x (meters -0.017777778) (meters 0.035555556) 1.0) + (sp-rnd-flt spt-vel-y (meters -0.0074074077) (meters 0.0148148155) 1.0) + (sp-flt spt-vel-z (meters 0.0)) + (sp-int spt-timer 6000) + (sp-cpuinfo-flags bit3 bit7) + (sp-int-plain-rnd spt-next-time 150 449 1) + (sp-launcher-by-id spt-next-launcher 699) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 699) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 6 - (sp-rnd-flt spt-vel-x (meters -0.017777778) (meters 0.035555556) 1.0) - (sp-rnd-flt spt-vel-y (meters -0.0074074077) (meters 0.0148148155) 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) - (sp-int-plain-rnd spt-next-time 150 449 1) - (sp-launcher-by-id spt-next-launcher 699) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 699) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 6 + (sp-rnd-flt spt-vel-x (meters -0.017777778) (meters 0.035555556) 1.0) + (sp-rnd-flt spt-vel-y (meters -0.0074074077) (meters 0.0148148155) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0) + (sp-int-plain-rnd spt-next-time 150 449 1) + (sp-launcher-by-id spt-next-launcher 699) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 695) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 14 - (sp-tex spt-texture (new 'static 'texture-id :index #x22 :page #x2)) - (sp-func spt-birth-func 'birth-func-copy-rot-color) - (sp-flt spt-num 2.0) - (sp-flt spt-scale-x (meters 0.9)) - (sp-rnd-flt spt-rot-x -10922.667 54613.332 1.0) - (sp-flt spt-scale-y (meters 1.3)) - (sp-flt spt-r 255.0) - (sp-flt spt-g 255.0) - (sp-flt spt-b 255.0) - (sp-flt spt-a 128.0) - (sp-flt spt-fade-a -8.0) - (sp-int spt-timer 10) - (sp-cpuinfo-flags bit2 bit9 bit12) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 695) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (sp-tex spt-texture (new 'static 'texture-id :index #x22 :page #x2)) + (sp-func spt-birth-func 'birth-func-copy-rot-color) + (sp-flt spt-num 2.0) + (sp-flt spt-scale-x (meters 0.9)) + (sp-rnd-flt spt-rot-x -10922.667 54613.332 1.0) + (sp-flt spt-scale-y (meters 1.3)) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 255.0) + (sp-flt spt-a 128.0) + (sp-flt spt-fade-a -8.0) + (sp-int spt-timer 10) + (sp-cpuinfo-flags bit2 bit9 bit12) + (sp-end) + ) + ) + ) -(set! - (-> *part-group-id-table* 172) - (new 'static 'sparticle-launch-group - :length 3 - :duration #xbb8 - :linger-duration #x5dc - :name "group-beach-moth" - :launcher - (new 'static 'inline-array sparticle-group-item 3 - (sp-item 702 :fade-after (meters 120.0) :flags (bit1) :period 18030 :length 5 :hour-mask #b1111111110000000 :binding 700) - (sp-item 700 :flags (start-dead launch-asap) :binding 701) - (sp-item 701 :flags (is-3d start-dead)) - ) - :bounds (new 'static 'sphere :w 12288.0) - ) - ) +(set! (-> *part-group-id-table* 172) + (new 'static 'sparticle-launch-group + :length 3 + :duration #xbb8 + :linger-duration #x5dc + :name "group-beach-moth" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (sp-item 702 :fade-after (meters 120.0) :flags (bit1) :period 18030 :length 5 :hour-mask #b1111111110000000 :binding 700) + (sp-item 700 :flags (start-dead launch-asap) :binding 701) + (sp-item 701 :flags (is-3d start-dead)) + ) + :bounds (new 'static 'sphere :w 12288.0) + ) + ) -(set! - (-> *part-id-table* 702) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 10 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 1.0) - (sp-flt spt-scale-x (meters 0.1)) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-a 0.0) - (sp-int spt-timer 18000) - (sp-cpuinfo-flags bit3) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 702) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 10 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 1.0) + (sp-flt spt-scale-x (meters 0.1)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-a 0.0) + (sp-int spt-timer 18000) + (sp-cpuinfo-flags bit3) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 700) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 1.0) - (sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0) - (sp-flt spt-z 6144.0) - (sp-flt spt-scale-x (meters 0.1)) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-omega 0.0 65536.0 1.0) - (sp-rnd-flt spt-vel-x (meters 0.0044444446) (meters 0.0044444446) 1.0) - (sp-rnd-flt spt-vel-y (meters 0.008888889) (meters 0.008888889) 1.0) - (sp-flt spt-vel-z (meters 0.0)) - (sp-int spt-timer 18000) - (sp-cpuinfo-flags bit3 bit7) - (sp-int-plain-rnd spt-next-time 150 449 1) - (sp-launcher-by-id spt-next-launcher 703) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 700) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 1.0) + (sp-rnd-flt spt-y (meters 0.0) (meters 16.0) 1.0) + (sp-flt spt-z 6144.0) + (sp-flt spt-scale-x (meters 0.1)) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-omega 0.0 65536.0 1.0) + (sp-rnd-flt spt-vel-x (meters 0.0044444446) (meters 0.0044444446) 1.0) + (sp-rnd-flt spt-vel-y (meters 0.008888889) (meters 0.008888889) 1.0) + (sp-flt spt-vel-z (meters 0.0)) + (sp-int spt-timer 18000) + (sp-cpuinfo-flags bit3 bit7) + (sp-int-plain-rnd spt-next-time 150 449 1) + (sp-launcher-by-id spt-next-launcher 703) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 703) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 6 - (sp-rnd-flt spt-vel-x (meters -0.035555556) (meters 0.07111111) 1.0) - (sp-rnd-flt spt-vel-y (meters -0.0148148155) (meters 0.029629631) 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -0.4) (degrees 0.8) 1.0) - (sp-int-plain-rnd spt-next-time 150 449 1) - (sp-launcher-by-id spt-next-launcher 703) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 703) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 6 + (sp-rnd-flt spt-vel-x (meters -0.035555556) (meters 0.07111111) 1.0) + (sp-rnd-flt spt-vel-y (meters -0.0148148155) (meters 0.029629631) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -0.4) (degrees 0.8) 1.0) + (sp-int-plain-rnd spt-next-time 150 449 1) + (sp-launcher-by-id spt-next-launcher 703) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 701) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 13 - (sp-tex spt-texture (new 'static 'texture-id :index #x22 :page #x2)) - (sp-func spt-birth-func 'birth-func-copy-rot-color) - (sp-flt spt-num 2.0) - (sp-flt spt-scale-x (meters 0.4)) - (sp-rnd-flt spt-rot-x -10922.667 54613.332 1.0) - (sp-flt spt-scale-y (meters 0.4)) - (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 5) - (sp-cpuinfo-flags bit2 bit3 bit9 bit12) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 701) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 13 + (sp-tex spt-texture (new 'static 'texture-id :index #x22 :page #x2)) + (sp-func spt-birth-func 'birth-func-copy-rot-color) + (sp-flt spt-num 2.0) + (sp-flt spt-scale-x (meters 0.4)) + (sp-rnd-flt spt-rot-x -10922.667 54613.332 1.0) + (sp-flt spt-scale-y (meters 0.4)) + (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 5) + (sp-cpuinfo-flags bit2 bit3 bit9 bit12) + (sp-end) + ) + ) + ) diff --git a/goal_src/levels/citadel/citadel-obs.gc b/goal_src/levels/citadel/citadel-obs.gc index 859dea4c90..855d8f332c 100644 --- a/goal_src/levels/citadel/citadel-obs.gc +++ b/goal_src/levels/citadel/citadel-obs.gc @@ -41,20 +41,6 @@ (declare-type citb-hose process-drawable) (declare-type citb-generator process-drawable) -(define-extern citadelcam-idle (state citadelcam)) ;; unknown type -(define-extern citadelcam-stair-plats (state citadelcam)) ;; unknown type -(define-extern citb-generator-broken (state citb-generator)) ;; unknown type -(define-extern citb-generator-idle (state citb-generator)) ;; unknown type -(define-extern citb-disc-idle (state citb-disc)) ;; unknown type -(define-extern citb-robotboss-die (state citb-robotboss)) ;; unknown type -(define-extern citb-robotboss-idle (state citb-robotboss)) ;; unknown type -(define-extern citb-coil-broken (state citb-coil)) ;; unknown type -(define-extern citb-coil-idle (state citb-coil)) ;; unknown type -(define-extern citb-coil-break (state citb-coil)) ;; unknown type -(define-extern citb-hose-die (state citb-hose)) ;; unknown type -(define-extern citb-hose-idle (state citb-hose)) ;; unknown type -(define-extern citb-hose-spawn (state citb-hose)) ;; unknown type -(define-extern citb-generator-break (state citb-generator)) ;; unknown type ;; DECOMP BEGINS @@ -420,6 +406,9 @@ (init! (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + citb-disc-idle + ) ) @@ -843,6 +832,10 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + citb-robotboss-die + citb-robotboss-idle + ) ) @@ -1144,6 +1137,11 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + citb-coil-break + citb-coil-broken + citb-coil-idle + ) ) @@ -1305,6 +1303,11 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + citb-hose-die + citb-hose-idle + citb-hose-spawn + ) ) @@ -1469,6 +1472,11 @@ (init! (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + citb-generator-break + citb-generator-broken + citb-generator-idle + ) ) @@ -1816,6 +1824,10 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + citadelcam-idle + citadelcam-stair-plats + ) ) diff --git a/goal_src/levels/citadel/citb-drop-plat-CIT.gc b/goal_src/levels/citadel/citb-drop-plat-CIT.gc index 76e8f59dc4..1a3c087275 100644 --- a/goal_src/levels/citadel/citb-drop-plat-CIT.gc +++ b/goal_src/levels/citadel/citb-drop-plat-CIT.gc @@ -7,13 +7,6 @@ (declare-type drop-plat process) (declare-type citb-drop-plat process) -(define-extern drop-plat-die (state drop-plat)) ;; unknown type -(define-extern drop-plat-idle (state drop-plat)) ;; unknown type -(define-extern drop-plat-drop (state drop-plat)) ;; unknown type -(define-extern drop-plat-rise (state draw-control drop-plat)) ;; unknown type -(define-extern citb-drop-plat-idle (state citb-drop-plat)) ;; unknown type -(define-extern citb-drop-plat-active (state citb-drop-plat)) ;; unknown type -(define-extern drop-plat-spawn (state drop-plat)) ;; unknown type ;; DECOMP BEGINS @@ -75,6 +68,13 @@ (TODO-RENAME-20 (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + drop-plat-die + drop-plat-drop + drop-plat-idle + (drop-plat-rise draw-control) + drop-plat-spawn + ) ) @@ -368,6 +368,10 @@ :method-count-assert 20 :size-assert #x120 :flag-assert #x1400b00120 + (:states + citb-drop-plat-active + citb-drop-plat-idle + ) ) diff --git a/goal_src/levels/citadel/citb-plat.gc b/goal_src/levels/citadel/citb-plat.gc index 493a35dcd3..3fda835ebf 100644 --- a/goal_src/levels/citadel/citb-plat.gc +++ b/goal_src/levels/citadel/citb-plat.gc @@ -19,12 +19,6 @@ (declare-type citb-firehose process-drawable) (declare-type citb-chain-plat rigid-body-platform) -(define-extern citb-exit-plat-idle (state citb-exit-plat)) ;; unknown type -(define-extern citb-exit-plat-rise (state citb-exit-plat)) ;; unknown type -(define-extern citb-firehose-idle (state citb-firehose)) ;; unknown type -(define-extern citb-firehose-active (state citb-firehose)) ;; unknown type -(define-extern citb-firehose-blast (state citb-firehose)) ;; unknown type -(define-extern citb-chain-plat-settle (state citb-chain-plat)) ;; unknown type ;; DECOMP BEGINS @@ -454,6 +448,9 @@ :method-count-assert 35 :size-assert #x318 :flag-assert #x2302b00318 + (:states + citb-chain-plat-settle + ) ) @@ -938,6 +935,11 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + citb-firehose-active + citb-firehose-blast + citb-firehose-idle + ) ) @@ -1180,6 +1182,10 @@ :method-count-assert 33 :size-assert #xfc :flag-assert #x21009000fc + (:states + citb-exit-plat-idle + citb-exit-plat-rise + ) ) diff --git a/goal_src/levels/common/babak.gc b/goal_src/levels/common/babak.gc index 025ea77f56..b8411a2bd6 100644 --- a/goal_src/levels/common/babak.gc +++ b/goal_src/levels/common/babak.gc @@ -13,6 +13,9 @@ :method-count-assert 76 :size-assert #x190 :flag-assert #x4c01200190 + (:states + babak-run-to-cannon + ) ) @@ -29,633 +32,407 @@ :virtual #t :code (behavior () - (cond - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 10) - ) - (ja-channel-push! 1 45) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 6)) - ) - (set! - (-> gp-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 6)) - data - 0 - length + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 10) ) - -1 + (ja-channel-push! 1 45) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 6))) + (set! (-> gp-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 6)) data 0 length) -1)) + ) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 12.0 0)) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!) ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (ja-channel-push! 1 60) ) - ) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) (ja-aframe 12.0 0)) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-seek! - ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) - ) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group-eval! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (else - (ja-channel-push! 1 60) - ) + ((the-as (function none) (-> (method-of-type nav-enemy nav-enemy-patrol) code))) + (none) ) - ((the-as - (function none) - (-> (method-of-type nav-enemy nav-enemy-patrol) code) - ) - ) - (none) - ) ) (defstate nav-enemy-chase (babak) :virtual #t :code (behavior () - (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) - (cond - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 14) - ) - (let ((a0-5 (-> self skel root-channel 0))) - (set! - (-> a0-5 param 0) - (the float (+ (-> a0-5 frame-group data 0 length) -1)) - ) - (set! (-> a0-5 param 1) 1.0) - (joint-control-channel-group! - a0-5 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (ja-channel-push! 1 51) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) - ) - ) - (set! - (-> a0-7 param 0) - (the - float - (+ - (-> - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) + (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 14) ) - data - 0 - length + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group data 0 length) -1))) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group! a0-5 (the-as art-joint-anim #f) num-func-seek!) ) - -1 + (ja-channel-push! 1 51) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 frame-group) (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim)))) + (set! (-> a0-7 param 0) + (the float + (+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim))) data 0 length) -1) + ) + ) + (set! (-> a0-7 param 1) f30-0) + (set! (-> a0-7 frame-num) 0.0) + (joint-control-channel-group! + a0-7 + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim))) + num-func-seek! + ) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-8 (-> self skel root-channel 0))) + (set! (-> a0-8 param 0) (the float (+ (-> a0-8 frame-group data 0 length) -1))) + (set! (-> a0-8 param 1) f30-0) + (joint-control-channel-group-eval! a0-8 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (ja-channel-push! 1 60) + (let ((v1-42 (-> self skel root-channel 0))) + (set! (-> v1-42 frame-group) + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim))) + ) + ) + (let ((v1-45 (-> self skel root-channel 0))) + (set! (-> v1-45 num-func) num-func-identity) + (set! (-> v1-45 frame-num) 0.0) + ) ) - ) ) - (set! (-> a0-7 param 1) f30-0) - (set! (-> a0-7 frame-num) 0.0) - (joint-control-channel-group! - a0-7 - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) - ) - num-func-seek! + (while #t + (suspend) + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) f30-0) + (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-loop!) + ) ) - ) - (until (ja-done? 0) - (ja-blend-eval) - (suspend) - (let ((a0-8 (-> self skel root-channel 0))) - (set! - (-> a0-8 param 0) - (the float (+ (-> a0-8 frame-group data 0 length) -1)) - ) - (set! (-> a0-8 param 1) f30-0) - (joint-control-channel-group-eval! - a0-8 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) ) - (else - (ja-channel-push! 1 60) - (let ((v1-42 (-> self skel root-channel 0))) - (set! - (-> v1-42 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) - ) - ) - ) - (let ((v1-45 (-> self skel root-channel 0))) - (set! (-> v1-45 num-func) num-func-identity) - (set! (-> v1-45 frame-num) 0.0) - ) - ) - ) - (while #t - (suspend) - (let ((a0-17 (-> self skel root-channel 0))) - (set! (-> a0-17 param 0) f30-0) - (joint-control-channel-group-eval! - a0-17 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-stare (babak) :virtual #t :code (behavior () - (set! (-> self turn-time) 60) - (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) - (when - (or - (logtest? (-> self nav-enemy-flags) 256) - (and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5)) - ) - (ja-channel-push! 1 30) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 11)) - ) - (set! (-> gp-0 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-0 param 1) f30-0) - (set! (-> gp-0 frame-num) 0.0) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 11)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-1 param 1) f30-0) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (while #t - (when (not (nav-enemy-facing-player? 2730.6667)) - (logior! (-> self nav-enemy-flags) 16) - (let ((a0-9 (-> self skel root-channel 0))) - (set! (-> a0-9 param 0) 1.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (ja-channel-push! 1 60) - (let ((v1-25 (-> self skel root-channel 0))) - (set! - (-> v1-25 frame-group) - (the-as art-joint-anim (-> self draw art-group data 16)) - ) - ) - (let ((v1-28 (-> self skel root-channel 0))) - (set! (-> v1-28 num-func) num-func-identity) - (set! (-> v1-28 frame-num) 0.0) - ) - (until (nav-enemy-facing-player? 1820.4445) - (ja-blend-eval) - (suspend) - (let ((a0-15 (-> self skel root-channel 0))) - (set! (-> a0-15 param 0) 0.75) - (joint-control-channel-group-eval! - a0-15 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) - (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) - ) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 5) - ) + (set! (-> self turn-time) 60) + (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) + (when (or + (logtest? (-> self nav-enemy-flags) 256) + (and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5)) + ) + (ja-channel-push! 1 30) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) + (set! (-> gp-0 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-0 param 1) f30-0) + (set! (-> gp-0 frame-num) 0.0) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 11)) num-func-seek!) ) - (ja-channel-push! 1 60) - ) - (let ((a0-23 (-> self skel root-channel 0))) - (set! - (-> a0-23 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-23 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (until (ja-done? 0) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-1 param 1) f30-0) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (while #t + (when (not (nav-enemy-facing-player? 2730.6667)) + (logior! (-> self nav-enemy-flags) 16) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) 1.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim #f) num-func-loop!) + ) + (ja-channel-push! 1 60) + (let ((v1-25 (-> self skel root-channel 0))) + (set! (-> v1-25 frame-group) (the-as art-joint-anim (-> self draw art-group data 16))) + ) + (let ((v1-28 (-> self skel root-channel 0))) + (set! (-> v1-28 num-func) num-func-identity) + (set! (-> v1-28 frame-num) 0.0) + ) + (until (nav-enemy-facing-player? 1820.4445) + (ja-blend-eval) + (suspend) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 param 0) 0.75) + (joint-control-channel-group-eval! a0-15 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) + ) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 5) + ) + ) + (ja-channel-push! 1 60) + ) + (let ((a0-23 (-> self skel root-channel 0))) + (set! (-> a0-23 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-23 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-23 param 1) f30-0) + (set! (-> a0-23 frame-num) 0.0) + (joint-control-channel-group! a0-23 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-24 (-> self skel root-channel 0))) + (set! (-> a0-24 param 0) (the float (+ (-> a0-24 frame-group data 0 length) -1))) + (set! (-> a0-24 param 1) f30-0) + (joint-control-channel-group-eval! a0-24 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (when (nav-enemy-rnd-percent? 0.3) + (ja-channel-push! 1 30) + (let ((gp-2 (-> self skel root-channel 0))) + (set! (-> gp-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) + (set! (-> gp-2 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-2 param 1) f30-0) + (set! (-> gp-2 frame-num) 0.0) + (joint-control-channel-group! gp-2 (the-as art-joint-anim (-> self draw art-group data 11)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((gp-3 (-> self skel root-channel 0))) + (set! (-> gp-3 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-3 param 1) f30-0) + (joint-control-channel-group-eval! gp-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - -1 - ) ) - ) - (set! (-> a0-23 param 1) f30-0) - (set! (-> a0-23 frame-num) 0.0) - (joint-control-channel-group! - a0-23 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-24 (-> self skel root-channel 0))) - (set! - (-> a0-24 param 0) - (the float (+ (-> a0-24 frame-group data 0 length) -1)) - ) - (set! (-> a0-24 param 1) f30-0) - (joint-control-channel-group-eval! - a0-24 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (when (nav-enemy-rnd-percent? 0.3) - (ja-channel-push! 1 30) - (let ((gp-2 (-> self skel root-channel 0))) - (set! - (-> gp-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 11)) - ) - (set! (-> gp-2 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-2 param 1) f30-0) - (set! (-> gp-2 frame-num) 0.0) - (joint-control-channel-group! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 11)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((gp-3 (-> self skel root-channel 0))) - (set! (-> gp-3 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-3 param 1) f30-0) - (joint-control-channel-group-eval! - gp-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-give-up (babak) :virtual #t :code (behavior () - (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) - (ja-channel-push! 1 45) - (let ((s4-0 (-> self collide-info)) - (s5-0 (target-pos 0)) - ) - (when - (< - (fabs - (deg-diff - (y-angle s4-0) - (vector-y-angle - (vector-! (new 'stack-no-clear 'vector) s5-0 (-> s4-0 trans)) - ) - ) - ) - 12743.111 - ) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - (set! - (-> a0-6 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 9)) - data - 0 - length + (set! (-> self rotate-speed) 218453.33) + (set! (-> self turn-time) 150) + (ja-channel-push! 1 45) + (let ((s4-0 (-> self collide-info)) + (s5-0 (target-pos 0)) + ) + (when (< (fabs + (deg-diff (y-angle s4-0) (vector-y-angle (vector-! (new 'stack-no-clear 'vector) s5-0 (-> s4-0 trans)))) + ) + 12743.111 + ) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + (set! (-> a0-6 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1)) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-6 param 1) 1.0) - (set! (-> a0-6 frame-num) 0.0) - (joint-control-channel-group! - a0-6 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-seek! - ) ) - (until (ja-done? 0) + (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) + (nav-enemy-get-new-patrol-point) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> a0-12 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> a0-12 param 1) 1.0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! a0-12 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) + ) + (until (ja-done? 0) + (seek-to-point-toward-point! + (-> self collide-info) + (-> self nav destination-pos) + (-> self rotate-speed) + (-> self turn-time) + ) (suspend) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 param 0) (the float (+ (-> a0-14 frame-group data 0 length) -1))) + (set! (-> a0-14 param 1) 1.0) + (joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-seek!) ) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group-eval! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) ) - ) + (go-virtual nav-enemy-patrol) + (none) ) - (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) - (nav-enemy-get-new-patrol-point) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> a0-12 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-12 param 1) 1.0) - (set! (-> a0-12 frame-num) 0.0) - (joint-control-channel-group! - a0-12 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (seek-to-point-toward-point! - (-> self collide-info) - (-> self nav destination-pos) - (-> self rotate-speed) - (-> self turn-time) - ) - (suspend) - (let ((a0-14 (-> self skel root-channel 0))) - (set! - (-> a0-14 param 0) - (the float (+ (-> a0-14 frame-group data 0 length) -1)) - ) - (set! (-> a0-14 param 1) 1.0) - (joint-control-channel-group-eval! - a0-14 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go-virtual nav-enemy-patrol) - (none) - ) ) (defstate nav-enemy-jump-land (babak) :virtual #t :code (behavior () - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 param 0) - (the float (+ (-> a0-0 frame-group data 0 length) -1)) - ) - (set! (-> a0-0 param 1) 1.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (ja-channel-push! 1 22) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info jump-land-anim)) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 param 0) (the float (+ (-> a0-0 frame-group data 0 length) -1))) + (set! (-> a0-0 param 1) 1.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim #f) num-func-seek!) ) - ) - (set! (-> gp-0 param 0) (ja-aframe 32.0 0)) - (set! (-> gp-0 param 1) 0.5) - (set! (-> gp-0 frame-num) 0.0) - (joint-control-channel-group! - gp-0 - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info jump-land-anim)) + (ja-channel-push! 1 22) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info jump-land-anim))) + ) + (set! (-> gp-0 param 0) (ja-aframe 32.0 0)) + (set! (-> gp-0 param 1) 0.5) + (set! (-> gp-0 frame-num) 0.0) + (joint-control-channel-group! + gp-0 + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info jump-land-anim))) + num-func-seek! + ) ) - num-func-seek! - ) - ) - (until (ja-done? 0) - (ja-blend-eval) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 32.0 0)) - (set! (-> gp-1 param 1) 0.5) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 32.0 0)) + (set! (-> gp-1 param 1) 0.5) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) + (go-virtual nav-enemy-chase) + (none) ) - (go-virtual nav-enemy-chase) - (none) - ) ) -(define - *babak-nav-enemy-info* - (new 'static 'nav-enemy-info - :idle-anim 5 - :walk-anim 6 - :turn-anim 16 - :notice-anim 7 - :run-anim 8 - :jump-anim 13 - :jump-land-anim 14 - :victory-anim 11 - :taunt-anim 11 - :die-anim 12 - :neck-joint 5 - :player-look-at-joint 5 - :run-travel-speed (meters 6.0) - :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) - :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) - :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) - :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 2.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 30.0) - :proximity-notice-distance (meters 20.0) - :stop-chase-distance (meters 40.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 - :die-anim-hold-frame 24.0 - :jump-anim-start-frame 10.0 - :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 3.0) - :jump-height-factor 0.5 - :jump-start-anim-speed 1.0 - :shadow-max-y (meters 1.0) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) - :use-align #t - :draw-shadow #t - :move-to-ground #t - :hover-if-no-ground #f - :use-momentum #f - :use-flee #t - :use-proximity-notice #t - :use-jump-blocked #t - :use-jump-patrol #f - :gnd-collide-with #x1 - :debug-draw-neck #f - :debug-draw-jump #f - ) - ) +(define *babak-nav-enemy-info* (new 'static 'nav-enemy-info + :idle-anim 5 + :walk-anim 6 + :turn-anim 16 + :notice-anim 7 + :run-anim 8 + :jump-anim 13 + :jump-land-anim 14 + :victory-anim 11 + :taunt-anim 11 + :die-anim 12 + :neck-joint 5 + :player-look-at-joint 5 + :run-travel-speed (meters 6.0) + :run-rotate-speed (degrees 2880.0) + :run-acceleration (meters 1.0) + :run-turn-time (seconds 0.1) + :walk-travel-speed (meters 3.0) + :walk-rotate-speed (degrees 720.0) + :walk-acceleration (meters 1.0) + :walk-turn-time (seconds 0.5) + :attack-shove-back (meters 3.0) + :attack-shove-up (meters 2.0) + :shadow-size (meters 2.0) + :notice-nav-radius (meters 2.0) + :nav-nearest-y-threshold (meters 10.0) + :notice-distance (meters 30.0) + :proximity-notice-distance (meters 20.0) + :stop-chase-distance (meters 40.0) + :frustration-distance (meters 8.0) + :frustration-time #x4b0 + :die-anim-hold-frame 24.0 + :jump-anim-start-frame 10.0 + :jump-land-anim-end-frame 10000000000.0 + :jump-height-min (meters 3.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #t + :draw-shadow #t + :move-to-ground #t + :hover-if-no-ground #f + :use-momentum #f + :use-flee #t + :use-proximity-notice #t + :use-jump-blocked #t + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #f + ) + ) (defmethod initialize-collision babak ((obj babak)) - (let - ((s5-0 - (new - 'process - 'collide-shape-moving - obj - (collide-list-enum usually-hit-by-player) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 12288.0) + (set-root-prim! s5-0 s4-0) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 3072.0) + (append-prim s4-0 s3-0) + ) + (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 1) + (set-vector! (-> s3-1 local-sphere) 0.0 9830.4 0.0 3072.0) + (append-prim s4-0 s3-1) + ) + (let ((s3-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1)))) + (set! (-> s3-2 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-2 collide-with) (the-as uint 16)) + (set! (-> s3-2 prim-core offense) 2) + (set! (-> s3-2 transform-index) 6) + (set-vector! (-> s3-2 local-sphere) 0.0 0.0 0.0 2048.0) + (append-prim s4-0 s3-2) + ) ) - ) + (set! (-> s5-0 nav-radius) 6144.0) + (backup-collide-with-as s5-0) + (set! (-> s5-0 max-iteration-count) (the-as uint 2)) + (set! (-> obj collide-info) s5-0) ) - (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) default-collision-reaction) - (set! - (-> s5-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) - (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 12288.0) - (set-root-prim! s5-0 s4-0) - (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 1) - (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 3072.0) - (append-prim s4-0 s3-0) - ) - (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) - (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-1 collide-with) (the-as uint 16)) - (set! (-> s3-1 prim-core action) (the-as uint 1)) - (set! (-> s3-1 prim-core offense) 1) - (set-vector! (-> s3-1 local-sphere) 0.0 9830.4 0.0 3072.0) - (append-prim s4-0 s3-1) - ) - (let ((s3-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1)))) - (set! (-> s3-2 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-2 collide-with) (the-as uint 16)) - (set! (-> s3-2 prim-core offense) 2) - (set! (-> s3-2 transform-index) 6) - (set-vector! (-> s3-2 local-sphere) 0.0 0.0 0.0 2048.0) - (append-prim s4-0 s3-2) - ) - ) - (set! (-> s5-0 nav-radius) 6144.0) - (backup-collide-with-as s5-0) - (set! (-> s5-0 max-iteration-count) (the-as uint 2)) - (set! (-> obj collide-info) s5-0) - ) 0 (none) ) @@ -672,22 +449,19 @@ (defmethod TODO-RENAME-59 babak ((obj babak)) (cond - ((and - (and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) - ) - (logtest? (-> obj enemy-info options) (fact-options fop1)) + ((and + (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) + (logtest? (-> obj enemy-info options) (fact-options fop1)) + ) + (go (method-of-object obj nav-enemy-fuel-cell)) ) - (go (method-of-object obj nav-enemy-fuel-cell)) + ((logtest? (-> obj enemy-info options) (fact-options fop5)) + (go (method-of-object obj nav-enemy-wait-for-cue)) + ) + (else + (go (method-of-object obj nav-enemy-idle)) + ) ) - ((logtest? (-> obj enemy-info options) (fact-options fop5)) - (go (method-of-object obj nav-enemy-wait-for-cue)) - ) - (else - (go (method-of-object obj nav-enemy-idle)) - ) - ) 0 (none) ) diff --git a/goal_src/levels/common/basebutton.gc b/goal_src/levels/common/basebutton.gc index db96f7ca15..1e14c6744a 100644 --- a/goal_src/levels/common/basebutton.gc +++ b/goal_src/levels/common/basebutton.gc @@ -5,7 +5,6 @@ ;; name in dgo: basebutton ;; dgos: GAME, COMMON, L1 -(define-extern target-warp-out (state vector vector target)) ;; DECOMP BEGINS diff --git a/goal_src/levels/common/blocking-plane.gc b/goal_src/levels/common/blocking-plane.gc index 3b5a1ffba5..4747e32766 100644 --- a/goal_src/levels/common/blocking-plane.gc +++ b/goal_src/levels/common/blocking-plane.gc @@ -13,6 +13,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + blocking-plane-idle + ) ) @@ -27,139 +30,107 @@ (defstate blocking-plane-idle (blocking-plane) :code (behavior () - (transform-post) - (while #t - (logior! (-> self mask) (process-mask sleep)) - (suspend) + (transform-post) + (while #t + (logior! (-> self mask) (process-mask sleep)) + (suspend) + ) + (none) ) - (none) - ) ) -(defbehavior - blocking-plane-init-by-other blocking-plane - ((arg0 curve-control) (arg1 int)) +(defbehavior blocking-plane-init-by-other blocking-plane ((arg0 curve-control) (arg1 int)) (if (or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found))) - (deactivate self) - ) + (deactivate self) + ) (let ((s5-0 (new 'static 'vector)) (gp-0 (new 'static 'vector)) ) - 0.0 - (eval-path-curve-div! arg0 s5-0 (the float arg1) 'exact) - (eval-path-curve-div! arg0 gp-0 (+ 1.0 (the float arg1)) 'exact) - (let ((f30-1 (* 0.5 (vector-vector-distance s5-0 gp-0))) - (s4-1 - (new - 'process - 'collide-shape - self - (collide-list-enum usually-hit-by-player) - ) + 0.0 + (eval-path-curve-div! arg0 s5-0 (the float arg1) 'exact) + (eval-path-curve-div! arg0 gp-0 (+ 1.0 (the float arg1)) 'exact) + (let ((f30-1 (* 0.5 (vector-vector-distance s5-0 gp-0))) + (s4-1 (new 'process 'collide-shape self (collide-list-enum usually-hit-by-player))) ) - ) - (let - ((s3-1 - (new - 'process - 'collide-shape-prim-mesh - s4-1 - (the-as uint 0) - (the-as uint 0) + (let ((s3-1 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-1 prim-core collide-as) (the-as uint 512)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 4) + (set! (-> s3-1 transform-index) 3) + (set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 (fmax 122880.0 f30-1)) + (set-root-prim! s4-1 s3-1) ) - ) + (set! (-> s4-1 nav-radius) (* 0.75 (-> s4-1 root-prim local-sphere w))) + (backup-collide-with-as s4-1) + (set! (-> self root) s4-1) ) - (set! (-> s3-1 prim-core collide-as) (the-as uint 512)) - (set! (-> s3-1 collide-with) (the-as uint 16)) - (set! (-> s3-1 prim-core action) (the-as uint 1)) - (set! (-> s3-1 prim-core offense) 4) - (set! (-> s3-1 transform-index) 3) - (set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 (fmax 122880.0 f30-1)) - (set-root-prim! s4-1 s3-1) - ) - (set! (-> s4-1 nav-radius) (* 0.75 (-> s4-1 root-prim local-sphere w))) - (backup-collide-with-as s4-1) - (set! (-> self root) s4-1) - ) - (let ((s4-2 (new-stack-matrix0))) - (vector+! (-> self root trans) s5-0 gp-0) - (vector-float*! (-> self root trans) (-> self root trans) 0.5) - (set! (-> self root trans y) (+ 61440.0 (-> self root trans y))) - (vector-! (the-as vector (-> s4-2 vector)) gp-0 s5-0) - (set! - (-> self root scale x) - (* - 0.00024414062 - (vector-normalize-ret-len! (the-as vector (-> s4-2 vector)) 1.0) + (let ((s4-2 (new-stack-matrix0))) + (vector+! (-> self root trans) s5-0 gp-0) + (vector-float*! (-> self root trans) (-> self root trans) 0.5) + (set! (-> self root trans y) (+ 61440.0 (-> self root trans y))) + (vector-! (the-as vector (-> s4-2 vector)) gp-0 s5-0) + (set! (-> self root scale x) + (* 0.00024414062 (vector-normalize-ret-len! (the-as vector (-> s4-2 vector)) 1.0)) + ) + (set! (-> self root scale y) 30.0) + (set! (-> self root scale z) 0.0) + (set! (-> s4-2 vector 1 quad) (-> (new 'static 'vector :y 1.0 :w 1.0) quad)) + (vector-cross! (-> s4-2 vector 2) (the-as vector (-> s4-2 vector)) (-> s4-2 vector 1)) + (vector-normalize! (-> s4-2 vector 2) 1.0) + (matrix->quaternion (-> self root quat) s4-2) ) - ) - (set! (-> self root scale y) 30.0) - (set! (-> self root scale z) 0.0) - (set! (-> s4-2 vector 1 quad) (-> (new 'static 'vector :y 1.0 :w 1.0) quad)) - (vector-cross! - (-> s4-2 vector 2) - (the-as vector (-> s4-2 vector)) - (-> s4-2 vector 1) - ) - (vector-normalize! (-> s4-2 vector 2) 1.0) - (matrix->quaternion (-> self root quat) s4-2) ) - ) (initialize-skeleton self *ef-plane-sg* '()) - (logior! (-> self draw status) 32) + (logior! (-> self draw status) (draw-status drwf05)) (go blocking-plane-idle) (none) ) (defun blocking-plane-spawn ((arg0 curve-control)) (with-pp - (cond - ((or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found))) - ) - (else - (let ((s5-0 (the int (the float (+ (-> arg0 curve num-cverts) -1)))) - (s4-0 0) - ) - (while (< s4-0 s5-0) - (let ((s3-0 (get-process *default-dead-pool* blocking-plane #x4000))) - (when s3-0 - (let ((t9-1 (method-of-type blocking-plane activate))) - (t9-1 - (the-as blocking-plane s3-0) - pp - 'blocking-plane - (the-as pointer #x70004000) - ) - ) - (run-now-in-process s3-0 blocking-plane-init-by-other arg0 s4-0) - (-> s3-0 ppointer) - ) - ) - (+! s4-0 2) + (cond + ((or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found))) ) + (else + (let ((s5-0 (the int (the float (+ (-> arg0 curve num-cverts) -1)))) + (s4-0 0) + ) + (while (< s4-0 s5-0) + (let ((s3-0 (get-process *default-dead-pool* blocking-plane #x4000))) + (when s3-0 + (let ((t9-1 (method-of-type blocking-plane activate))) + (t9-1 (the-as blocking-plane s3-0) pp 'blocking-plane (the-as pointer #x70004000)) + ) + (run-now-in-process s3-0 blocking-plane-init-by-other arg0 s4-0) + (-> s3-0 ppointer) + ) + ) + (+! s4-0 2) + ) + ) + ) ) - ) + 0 + (none) ) - 0 - (none) - ) ) (defun blocking-plane-destroy () (with-pp - (let ((gp-0 (-> pp child))) - (while gp-0 - (let ((s5-0 (ppointer->process gp-0))) - (set! gp-0 (-> gp-0 0 brother)) - (if (type-type? (-> s5-0 type) blocking-plane) - (deactivate s5-0) - ) + (let ((gp-0 (-> pp child))) + (while gp-0 + (let ((s5-0 (ppointer->process gp-0))) + (set! gp-0 (-> gp-0 0 brother)) + (if (type-type? (-> s5-0 type) blocking-plane) + (deactivate s5-0) + ) + ) + ) ) - ) + 0 + (none) ) - 0 - (none) - ) ) diff --git a/goal_src/levels/common/joint-exploder.gc b/goal_src/levels/common/joint-exploder.gc index b7a3787516..50117c0bce 100644 --- a/goal_src/levels/common/joint-exploder.gc +++ b/goal_src/levels/common/joint-exploder.gc @@ -115,6 +115,9 @@ (TODO-RENAME-27 (_type_ joint-exploder-list int) joint-exploder-list 27) (TODO-RENAME-28 (_type_ joint-exploder-list) none 28) ) + (:states + joint-exploder-shatter + ) ) diff --git a/goal_src/levels/common/launcherdoor.gc b/goal_src/levels/common/launcherdoor.gc index 3adb8b7d2f..1cb5da94b2 100644 --- a/goal_src/levels/common/launcherdoor.gc +++ b/goal_src/levels/common/launcherdoor.gc @@ -10,8 +10,6 @@ (declare-type launcherdoor process-drawable) -(define-extern launcherdoor-open (state symbol launcherdoor)) ;; unknown type -(define-extern launcherdoor-closed (state symbol launcherdoor)) ;; unknown type ;; DECOMP BEGINS @@ -27,6 +25,10 @@ :method-count-assert 20 :size-assert #xc4 :flag-assert #x14006000c4 + (:states + (launcherdoor-closed symbol) + (launcherdoor-open symbol) + ) ) @@ -49,91 +51,75 @@ (defstate launcherdoor-closed (launcherdoor) :code (behavior ((arg0 symbol)) - (if (not arg0) - (sound-play-by-name - (static-sound-name "ldoor-close") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - ) - (when *target* - (case (-> *target* current-level name) - (('jungle 'jungleb) - (send-event *target* 'no-load-wait 6000) - ) - ) - ) - (restore-collide-with-as (-> self root-override)) - (let ((a0-7 (-> self skel root-channel 0))) - (set! (-> a0-7 param 0) 0.0) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (when arg0 - (let ((v1-22 (-> self skel root-channel 0))) - (set! (-> v1-22 num-func) num-func-identity) - (set! (-> v1-22 frame-num) 0.0) - ) - (set! (-> self draw force-lod) 1) - ) - (suspend) - (while #t - (if - (and - *target* - (= (-> *target* control unknown-surface00 name) 'launch-jump) - (< (-> *target* control trans y) (-> self thresh-y)) - ) - (go launcherdoor-open #f) - ) - (let ((a0-13 (-> self skel root-channel 0))) - (set! (-> a0-13 param 0) 0.0) - (set! (-> a0-13 param 1) (-> self close-speed)) - (joint-control-channel-group-eval! - a0-13 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (suspend) - (when (ja-done? 0) - (set! (-> self draw force-lod) 1) - (when (-> self notify-player-passed-thru?) - (set! (-> self notify-player-passed-thru?) #f) - (let* ((gp-1 (-> self entity)) - (s5-1 (entity-actor-count gp-1 'alt-actor)) - ) - (dotimes (s4-1 s5-1) - (let ((v1-43 (entity-actor-lookup gp-1 'alt-actor s4-1))) - (if v1-43 - (send-event (if v1-43 - (-> v1-43 extra process) - ) - 'notify - ) - ) + (if (not arg0) + (sound-play-by-name (static-sound-name "ldoor-close") (new-sound-id) 1024 0 0 1 #t) + ) + (when *target* + (case (-> *target* current-level name) + (('jungle 'jungleb) + (send-event *target* 'no-load-wait 6000) ) ) - ) - (case (-> self load-mode) - (('jungle) - (load-state-want-levels 'village1 'jungle) - (load-state-want-display-level 'village1 'display) - ) - ) ) - ) + (restore-collide-with-as (-> self root-override)) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) 0.0) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) + (when arg0 + (let ((v1-22 (-> self skel root-channel 0))) + (set! (-> v1-22 num-func) num-func-identity) + (set! (-> v1-22 frame-num) 0.0) + ) + (set! (-> self draw force-lod) 1) + ) + (suspend) + (while #t + (if (and + *target* + (= (-> *target* control unknown-surface00 name) 'launch-jump) + (< (-> *target* control trans y) (-> self thresh-y)) + ) + (go launcherdoor-open #f) + ) + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 param 0) 0.0) + (set! (-> a0-13 param 1) (-> self close-speed)) + (joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-seek!) + ) + (suspend) + (when (ja-done? 0) + (set! (-> self draw force-lod) 1) + (when (-> self notify-player-passed-thru?) + (set! (-> self notify-player-passed-thru?) #f) + (let* ((gp-1 (-> self entity)) + (s5-1 (entity-actor-count gp-1 'alt-actor)) + ) + (dotimes (s4-1 s5-1) + (let ((v1-43 (entity-actor-lookup gp-1 'alt-actor s4-1))) + (if v1-43 + (send-event + (if v1-43 + (-> v1-43 extra process) + ) + 'notify + ) + ) + ) + ) + ) + (case (-> self load-mode) + (('jungle) + (load-state-want-levels 'village1 'jungle) + (load-state-want-display-level 'village1 'display) + ) + ) + ) + ) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior launcherdoor) ja-post) ) @@ -141,168 +127,124 @@ (defstate launcherdoor-open (launcherdoor) :code (behavior ((arg0 symbol)) - (if (not arg0) - (sound-play-by-name - (static-sound-name "ldoor-open") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - ) - (set! (-> self draw force-lod) 0) - (clear-collide-with-as (-> self root-override)) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 param 0) - (the float (+ (-> a0-4 frame-group data 0 length) -1)) - ) - (set! (-> a0-4 param 1) 1.0) - (joint-control-channel-group! - a0-4 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (when arg0 - (let ((v1-16 (-> self skel root-channel 0))) - (set! (-> v1-16 num-func) num-func-identity) - (set! - (-> v1-16 frame-num) - (the float (+ (-> v1-16 frame-group data 0 length) -1)) - ) - ) - ) - (while #t - (when - (or - (not *target*) - (!= (-> *target* control unknown-surface00 name) 'launch-jump) - (< - (+ 4096.0 (-> self root-override trans y)) - (-> *target* control trans y) - ) - ) - (when (and *target* (< (-> self thresh-y) (-> *target* control trans y))) - (let ((a1-3 (res-lump-struct (-> self entity) 'continue-name structure))) - (when a1-3 - (let ((v1-36 (set-continue! *game-info* (the-as basic a1-3)))) - (load-commands-set! *level* (-> v1-36 load-commands)) - ) + (if (not arg0) + (sound-play-by-name (static-sound-name "ldoor-open") (new-sound-id) 1024 0 0 1 #t) ) - ) - (set! (-> self notify-player-passed-thru?) #t) + (set! (-> self draw force-lod) 0) + (clear-collide-with-as (-> self root-override)) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group! a0-4 (the-as art-joint-anim #f) num-func-seek!) ) - (go launcherdoor-closed #f) - ) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 param 0) - (the float (+ (-> a0-16 frame-group data 0 length) -1)) + (when arg0 + (let ((v1-16 (-> self skel root-channel 0))) + (set! (-> v1-16 num-func) num-func-identity) + (set! (-> v1-16 frame-num) (the float (+ (-> v1-16 frame-group data 0 length) -1))) + ) ) - (set! (-> a0-16 param 1) (-> self open-speed)) - (joint-control-channel-group-eval! - a0-16 - (the-as art-joint-anim #f) - num-func-seek! + (while #t + (when (or + (not *target*) + (!= (-> *target* control unknown-surface00 name) 'launch-jump) + (< (+ 4096.0 (-> self root-override trans y)) (-> *target* control trans y)) + ) + (when (and *target* (< (-> self thresh-y) (-> *target* control trans y))) + (let ((a1-3 (res-lump-struct (-> self entity) 'continue-name structure))) + (when a1-3 + (let ((v1-36 (set-continue! *game-info* (the-as basic a1-3)))) + (load-commands-set! *level* (-> v1-36 load-commands)) + ) + ) + ) + (set! (-> self notify-player-passed-thru?) #t) + ) + (go launcherdoor-closed #f) + ) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1))) + (set! (-> a0-16 param 1) (-> self open-speed)) + (joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!) + ) + (suspend) ) - ) - (suspend) + (none) ) - (none) - ) :post (the-as (function none :behavior launcherdoor) ja-post) ) -(defmethod - init-from-entity! - launcherdoor - ((obj launcherdoor) (arg0 entity-actor)) +(defmethod init-from-entity! launcherdoor ((obj launcherdoor) (arg0 entity-actor)) (set! (-> obj notify-player-passed-thru?) #f) (set! (-> obj open-speed) 4.0) (set! (-> obj close-speed) 2.0) - (let - ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 0) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 14336.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 0) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 14336.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (cond - ((= (-> (if (-> obj entity) - (-> obj entity extra level) - (-> *level* level-default) - ) - name + ((= (-> (if (-> obj entity) + (-> obj entity extra level) + (-> *level* level-default) + ) + name + ) + 'maincave ) - 'maincave + (set! (-> obj close-speed) 4.0) + (initialize-skeleton obj *launcherdoor-maincave-sg* '()) + (ja-channel-set! 1) + (let ((s5-1 (-> obj skel root-channel 0))) + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> obj draw art-group data 3)) + num-func-identity + ) + (set! (-> s5-1 frame-num) 0.0) + ) ) - (set! (-> obj close-speed) 4.0) - (initialize-skeleton obj *launcherdoor-maincave-sg* '()) - (ja-channel-set! 1) - (let ((s5-1 (-> obj skel root-channel 0))) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim (-> obj draw art-group data 3)) - num-func-identity + (else + (initialize-skeleton obj *launcherdoor-sg* '()) + (ja-channel-set! 1) + (let ((s5-2 (-> obj skel root-channel 0))) + (joint-control-channel-group-eval! + s5-2 + (the-as art-joint-anim (-> obj draw art-group data 3)) + num-func-identity + ) + (set! (-> s5-2 frame-num) 0.0) + ) ) - (set! (-> s5-1 frame-num) 0.0) - ) ) - (else - (initialize-skeleton obj *launcherdoor-sg* '()) - (ja-channel-set! 1) - (let ((s5-2 (-> obj skel root-channel 0))) - (joint-control-channel-group-eval! - s5-2 - (the-as art-joint-anim (-> obj draw art-group data 3)) - num-func-identity - ) - (set! (-> s5-2 frame-num) 0.0) - ) - ) - ) (transform-post) - (case (-> obj entity extra level name) - (('jungle) + (case (-> obj entity extra level name) + (('jungle) (set! (-> obj draw shadow-mask) (the-as uint 28)) ) - ) + ) (set! (-> obj load-mode) (-> (if (-> obj entity) - (-> obj entity extra level) - (-> *level* level-default) - ) - name - ) - ) + (-> obj entity extra level) + (-> *level* level-default) + ) + name + ) + ) (set! (-> obj thresh-y) (+ -81920.0 (-> obj root-override trans y))) - (if - (and *target* (= (-> *target* control unknown-surface00 name) 'launch-jump)) - (go launcherdoor-open #t) - (go launcherdoor-closed #t) - ) + (if (and *target* (= (-> *target* control unknown-surface00 name) 'launch-jump)) + (go launcherdoor-open #t) + (go launcherdoor-closed #t) + ) (none) ) diff --git a/goal_src/levels/common/orb-cache.gc b/goal_src/levels/common/orb-cache.gc index 6f7ee36805..d61ebf05bd 100644 --- a/goal_src/levels/common/orb-cache.gc +++ b/goal_src/levels/common/orb-cache.gc @@ -29,6 +29,7 @@ (:states (orb-cache-top-activate symbol) (orb-cache-top-complete symbol) + (orb-cache-top-idle symbol) ) ) @@ -44,93 +45,75 @@ (defstate orb-cache-top-idle (orb-cache-top) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('eco-blue) - (process-entity-status! self (entity-perm-status complete) #t) - (dotimes (gp-0 5) - (spawn-projectile-blue *target*) + (case arg2 + (('eco-blue) + (process-entity-status! self (entity-perm-status complete) #t) + (dotimes (gp-0 5) + (spawn-projectile-blue *target*) + ) + (increment-success-for-hint (game-text-id sidekick-hint-orb-cache-top)) + (go orb-cache-top-activate #f) ) - (increment-success-for-hint (game-text-id sidekick-hint-orb-cache-top)) - (go orb-cache-top-activate #f) + (else + (plat-event arg0 arg1 arg2 arg3) + ) ) - (else - (plat-event arg0 arg1 arg2 arg3) - ) ) - ) :trans (behavior () - (if - (and - (and - *target* - (>= - 20480.0 - (vector-vector-distance - (-> self root-override trans) - (-> *target* control trans) + (if (and + (and *target* (>= 20480.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'query) + (set! (-> a1-1 param 0) (the-as uint 'powerup)) + (set! (-> a1-1 param 1) (the-as uint 3)) + (not (send-event-function *target* a1-1)) + ) + ) + (level-hint-spawn + (game-text-id sidekick-hint-orb-cache-top) + "sksp0009" + (the-as entity #f) + *entity-pool* + (game-task none) + ) ) - ) - ) - (let ((a1-1 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-1 from) self) - (set! (-> a1-1 num-params) 2) - (set! (-> a1-1 message) 'query) - (set! (-> a1-1 param 0) (the-as uint 'powerup)) - (set! (-> a1-1 param 1) (the-as uint 3)) - (not (send-event-function *target* a1-1)) - ) - ) - (level-hint-spawn - (game-text-id sidekick-hint-orb-cache-top) - "sksp0009" - (the-as entity #f) - *entity-pool* - (game-task none) - ) + (none) ) - (none) - ) :code (behavior ((arg0 symbol)) - (if (and (not arg0) (-> self child)) - (sound-play-by-name - (static-sound-name "close-orb-cash") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - ) - (dotimes (gp-1 (-> self money)) - (let ((a0-4 (handle->process (-> self money-list gp-1)))) - (if a0-4 - (deactivate a0-4) + (if (and (not arg0) (-> self child)) + (sound-play-by-name (static-sound-name "close-orb-cash") (new-sound-id) 1024 0 0 1 #t) + ) + (dotimes (gp-1 (-> self money)) + (let ((a0-4 (handle->process (-> self money-list gp-1)))) + (if a0-4 + (deactivate a0-4) + ) + ) ) - ) + (process-entity-status! self (entity-perm-status complete) #f) + (let ((gp-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-2 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-identity + ) + (set! (-> gp-2 frame-num) (ja-aframe 0.0 0)) + ) + (transform-post) + (anim-loop) + (none) ) - (process-entity-status! self (entity-perm-status complete) #f) - (let ((gp-2 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-identity - ) - (set! (-> gp-2 frame-num) (ja-aframe 0.0 0)) - ) - (transform-post) - (anim-loop) - (none) - ) ) (defmethod dummy-22 orb-cache-top ((obj orb-cache-top)) (if (< 4096.0 (- (-> obj basetrans y) (-> obj root-pos))) - (activate! (-> obj smush) -1.0 60 150 1.0 1.0) - (activate! (-> obj smush) -0.5 60 150 1.0 1.0) - ) + (activate! (-> obj smush) -1.0 60 150 1.0 1.0) + (activate! (-> obj smush) -0.5 60 150 1.0 1.0) + ) (set! (-> obj bouncing) #t) (logclear! (-> obj mask) (process-mask sleep)) 0 @@ -139,417 +122,287 @@ (defmethod calculate-pos orb-cache-top ((obj orb-cache-top) (arg0 symbol)) (let ((f0-0 0.0)) - (when arg0 - (set! f0-0 (+ 10240.0 (* 6144.0 (the float (+ (-> obj money) -1))))) - (if (< f0-0 2048.0) - (set! f0-0 2048.0) - ) + (when arg0 + (set! f0-0 (+ 10240.0 (* 6144.0 (the float (+ (-> obj money) -1))))) + (if (< f0-0 2048.0) + (set! f0-0 2048.0) + ) + ) + (set! (-> obj platform-pos) (+ (-> obj root-pos) f0-0)) + (let ((f0-2 (+ -6144.0 f0-0))) + (dotimes (v1-5 (-> obj money)) + (set! (-> obj money-pos-list v1-5) (+ (-> obj root-pos) f0-2)) + (set! f0-2 (+ -6144.0 f0-2)) + ) + ) ) - (set! (-> obj platform-pos) (+ (-> obj root-pos) f0-0)) - (let ((f0-2 (+ -6144.0 f0-0))) - (dotimes (v1-5 (-> obj money)) - (set! (-> obj money-pos-list v1-5) (+ (-> obj root-pos) f0-2)) - (set! f0-2 (+ -6144.0 f0-2)) - ) - ) - ) 0 (none) ) (defmethod pos-logic orb-cache-top ((obj orb-cache-top) (arg0 symbol)) (dotimes (s4-0 (-> obj money)) - (when (not (handle->process (-> obj money-list s4-0))) - (dotimes (v1-6 (-> obj money)) - (when (< s4-0 v1-6) - (set! (-> obj money-list (+ v1-6 -1)) (-> obj money-list v1-6)) - (set! - (-> obj money-pos-actual (+ v1-6 -1)) - (-> obj money-pos-actual v1-6) - ) + (when (not (handle->process (-> obj money-list s4-0))) + (dotimes (v1-6 (-> obj money)) + (when (< s4-0 v1-6) + (set! (-> obj money-list (+ v1-6 -1)) (-> obj money-list v1-6)) + (set! (-> obj money-pos-actual (+ v1-6 -1)) (-> obj money-pos-actual v1-6)) + ) + ) + (+! (-> obj money) -1) + (calculate-pos obj arg0) + (+! s4-0 -1) + (let ((v1-15 (-> obj entity extra perm))) + (logior! (-> v1-15 status) (entity-perm-status user-set-from-cstage)) + (+! (-> v1-15 user-int16 0) 1) + ) ) - ) - (+! (-> obj money) -1) - (calculate-pos obj arg0) - (+! s4-0 -1) - (let ((v1-15 (-> obj entity extra perm))) - (logior! (-> v1-15 status) (entity-perm-status user-set-from-cstage)) - (+! (-> v1-15 user-int16 0) 1) - ) ) - ) (let ((s4-1 (new 'stack-no-clear 'vector)) (s5-1 #t) ) - (let ((s3-0 #f)) - (let ((f28-0 (- (-> obj basetrans y) (-> obj root-pos))) - (f30-0 (- (-> obj platform-pos) (-> obj root-pos))) + (let ((s3-0 #f)) + (let ((f28-0 (- (-> obj basetrans y) (-> obj root-pos))) + (f30-0 (- (-> obj platform-pos) (-> obj root-pos))) + ) + (when (zero? (-> obj money)) + (set! f30-0 2048.0) + (set! s3-0 #t) ) - (when (zero? (-> obj money)) - (set! f30-0 2048.0) - (set! s3-0 #t) - ) - (when - (and - (< f30-0 15155.2) - (and - *target* - (>= - 16384.0 - (vector-vector-distance - (-> obj root-override trans) - (-> *target* control trans) + (when (and + (< f30-0 15155.2) + (and *target* (>= 16384.0 (vector-vector-distance (-> obj root-override trans) (-> *target* control trans)))) + (< (-> (target-pos 0) y) (-> obj basetrans y)) + ) + (set! f30-0 (if (< 14131.2 f28-0) + 15155.2 + f28-0 + ) + ) + (set! s3-0 #f) ) - ) + (set! (-> obj basetrans y) + (seek (-> obj basetrans y) (+ (-> obj root-pos) f30-0) (* 40960.0 (-> *display* seconds-per-frame))) + ) + (if (not (= (-> obj basetrans y) (+ (-> obj root-pos) f30-0))) + (set! s5-1 #f) + ) ) - (< (-> (target-pos 0) y) (-> obj basetrans y)) - ) - (set! f30-0 (if (< 14131.2 f28-0) - 15155.2 - f28-0 - ) - ) - (set! s3-0 #f) + (dotimes (s2-0 (-> obj money)) + (set! (-> s4-1 quad) + (-> (the-as process-drawable (handle->process (-> obj money-list s2-0))) root trans quad) + ) + (set! (-> obj money-pos-actual s2-0) (seek + (-> obj money-pos-actual s2-0) + (-> obj money-pos-list s2-0) + (* 40960.0 (-> *display* seconds-per-frame)) + ) + ) + (if (not (= (-> obj money-pos-actual s2-0) (-> obj money-pos-list s2-0))) + (set! s5-1 #f) + ) + (if (>= (-> obj money-pos-actual s2-0) (+ -8192.0 (-> obj root-pos))) + (set! (-> s4-1 y) (-> obj money-pos-actual s2-0)) + (set! (-> s4-1 y) (+ -8192.0 (-> obj root-pos))) + ) + (send-event (handle->process (-> obj money-list s2-0)) 'trans s4-1) + ) + (set! s3-0 (and s5-1 s3-0)) + (if s3-0 + (go orb-cache-top-complete #f) + ) ) - (set! - (-> obj basetrans y) - (seek - (-> obj basetrans y) - (+ (-> obj root-pos) f30-0) - (* 40960.0 (-> *display* seconds-per-frame)) - ) - ) - (if (not (= (-> obj basetrans y) (+ (-> obj root-pos) f30-0))) - (set! s5-1 #f) - ) - ) - (dotimes (s2-0 (-> obj money)) - (set! - (-> s4-1 quad) - (-> - (the-as process-drawable (handle->process (-> obj money-list s2-0))) - root - trans - quad - ) - ) - (set! - (-> obj money-pos-actual s2-0) - (seek - (-> obj money-pos-actual s2-0) - (-> obj money-pos-list s2-0) - (* 40960.0 (-> *display* seconds-per-frame)) - ) - ) - (if (not (= (-> obj money-pos-actual s2-0) (-> obj money-pos-list s2-0))) - (set! s5-1 #f) - ) - (if (>= (-> obj money-pos-actual s2-0) (+ -8192.0 (-> obj root-pos))) - (set! (-> s4-1 y) (-> obj money-pos-actual s2-0)) - (set! (-> s4-1 y) (+ -8192.0 (-> obj root-pos))) - ) - (send-event (handle->process (-> obj money-list s2-0)) 'trans s4-1) - ) - (set! s3-0 (and s5-1 s3-0)) - (if s3-0 - (go orb-cache-top-complete #f) - ) + s5-1 ) - s5-1 - ) ) (defstate orb-cache-top-activate (orb-cache-top) :event - (the-as - (function process int symbol event-message-block object :behavior orb-cache-top) - plat-event - ) + (the-as (function process int symbol event-message-block object :behavior orb-cache-top) plat-event) :exit - (behavior () - (process-entity-status! self (entity-perm-status bit-3) #f) - (none) - ) + (behavior () (process-entity-status! self (entity-perm-status bit-3) #f) (none)) :trans (the-as (function none :behavior orb-cache-top) plat-trans) :code (behavior ((arg0 symbol)) - (process-entity-status! self (entity-perm-status bit-3) #t) - (calculate-pos self arg0) - (if arg0 - (set! (-> self basetrans y) (-> self platform-pos)) - (sound-play-by-name - (static-sound-name "open-orb-cash") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - ) - (dotimes (s5-1 (-> self money)) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (set! (-> s4-1 quad) (-> self basetrans quad)) - (set! (-> s4-1 y) (-> self money-pos-list s5-1)) - (set! (-> self money-pos-actual s5-1) (-> s4-1 y)) - (let ((s3-0 (get-process *default-dead-pool* money #x4000))) - (set! (-> self money-list s5-1) (ppointer->handle (when s3-0 - (let - ((t9-5 - (method-of-type - money - activate - ) - ) - ) - (t9-5 - (the-as money s3-0) - self - 'money - (the-as - pointer - #x70004000 - ) - ) - ) - (run-now-in-process - s3-0 - money-init-by-other-no-bob - s4-1 - *null-vector* - 5 - 1.0 - (-> self entity) - ) - (-> s3-0 ppointer) - ) - ) - ) - ) - ) - ) - (while #t - (calculate-pos self #t) - (while - (not - (or - (not *target*) - (< - (-> self inactive-distance) - (vector-vector-xz-distance - (-> self root-override trans) - (-> *target* control trans) - ) + (process-entity-status! self (entity-perm-status bit-3) #t) + (calculate-pos self arg0) + (if arg0 + (set! (-> self basetrans y) (-> self platform-pos)) + (sound-play-by-name (static-sound-name "open-orb-cash") (new-sound-id) 1024 0 0 1 #t) ) - ) - ) - (pos-logic self #t) - (suspend) - ) - (calculate-pos self #f) - (while - (and - (not - (and - (and - *target* - (>= - (-> self active-distance) - (vector-vector-xz-distance - (-> self root-override trans) - (-> *target* control trans) - ) + (dotimes (s5-1 (-> self money)) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (set! (-> s4-1 quad) (-> self basetrans quad)) + (set! (-> s4-1 y) (-> self money-pos-list s5-1)) + (set! (-> self money-pos-actual s5-1) (-> s4-1 y)) + (let ((s3-0 (get-process *default-dead-pool* money #x4000))) + (set! (-> self money-list s5-1) + (ppointer->handle + (when s3-0 + (let ((t9-5 (method-of-type money activate))) + (t9-5 (the-as money s3-0) self 'money (the-as pointer #x70004000)) + ) + (run-now-in-process s3-0 money-init-by-other-no-bob s4-1 *null-vector* 5 1.0 (-> self entity)) + (-> s3-0 ppointer) + ) + ) + ) ) - ) - (let ((a1-11 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-11 from) self) - (set! (-> a1-11 num-params) 2) - (set! (-> a1-11 message) 'query) - (set! (-> a1-11 param 0) (the-as uint 'powerup)) - (set! (-> a1-11 param 1) (the-as uint 3)) - (or (send-event-function *target* a1-11) (-> self activated)) - ) ) - ) - (not (pos-logic self #f)) ) - (suspend) - ) - (if - (not - (and - (and - *target* - (>= - (-> self active-distance) - (vector-vector-xz-distance - (-> self root-override trans) - (-> *target* control trans) + (while #t + (calculate-pos self #t) + (while (not + (or (not *target*) (< (-> self inactive-distance) + (vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans)) + ) + ) + ) + (pos-logic self #t) + (suspend) + ) + (calculate-pos self #f) + (while (and + (not + (and + (and *target* (>= (-> self active-distance) + (vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans)) + ) + ) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 2) + (set! (-> a1-11 message) 'query) + (set! (-> a1-11 param 0) (the-as uint 'powerup)) + (set! (-> a1-11 param 1) (the-as uint 3)) + (or (send-event-function *target* a1-11) (-> self activated)) + ) + ) + ) + (not (pos-logic self #f)) + ) + (suspend) + ) + (if (not + (and + (and *target* (>= (-> self active-distance) + (vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans)) + ) + ) + (let ((a1-14 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-14 from) self) + (set! (-> a1-14 num-params) 2) + (set! (-> a1-14 message) 'query) + (set! (-> a1-14 param 0) (the-as uint 'powerup)) + (set! (-> a1-14 param 1) (the-as uint 3)) + (or (send-event-function *target* a1-14) (-> self activated)) + ) + ) + ) + (go orb-cache-top-idle arg0) ) - ) - ) - (let ((a1-14 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-14 from) self) - (set! (-> a1-14 num-params) 2) - (set! (-> a1-14 message) 'query) - (set! (-> a1-14 param 0) (the-as uint 'powerup)) - (set! (-> a1-14 param 1) (the-as uint 3)) - (or (send-event-function *target* a1-14) (-> self activated)) - ) - ) ) - (go orb-cache-top-idle arg0) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior orb-cache-top) plat-post) ) (defstate orb-cache-top-complete (orb-cache-top) :event - (the-as - (function process int symbol event-message-block object :behavior orb-cache-top) - plat-event - ) + (the-as (function process int symbol event-message-block object :behavior orb-cache-top) plat-event) :trans (the-as (function none :behavior orb-cache-top) plat-trans) :code (behavior ((arg0 symbol)) - (if (not arg0) - (sound-play-by-name - (static-sound-name "close-orb-cash") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) + (if (not arg0) + (sound-play-by-name (static-sound-name "close-orb-cash") (new-sound-id) 1024 0 0 1 #t) + ) + (let ((gp-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-1 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-identity + ) + (set! (-> gp-1 frame-num) (ja-aframe 0.0 0)) + ) + (new 'stack-no-clear 'vector) + (set! (-> self basetrans y) (+ 2048.0 (-> self root-pos))) + (anim-loop) + (none) ) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-identity - ) - (set! (-> gp-1 frame-num) (ja-aframe 0.0 0)) - ) - (new 'stack-no-clear 'vector) - (set! (-> self basetrans y) (+ 2048.0 (-> self root-pos))) - (anim-loop) - (none) - ) :post (the-as (function none :behavior orb-cache-top) plat-post) ) -(defmethod - init-from-entity! - orb-cache-top - ((obj orb-cache-top) (arg0 entity-actor)) +(defmethod init-from-entity! orb-cache-top ((obj orb-cache-top) (arg0 entity-actor)) (let ((a0-1 (-> obj entity))) - (if (when a0-1 - (let ((a0-2 (-> a0-1 extra perm task))) - (if a0-2 - (= a0-2 (game-task none)) - ) - ) + (if (when a0-1 + (let ((a0-2 (-> a0-1 extra perm task))) + (if a0-2 + (= a0-2 (game-task none)) + ) + ) + ) + (set! (-> obj entity extra perm task) (game-task complete)) ) - (set! (-> obj entity extra perm task) (game-task complete)) ) - ) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint #x8800)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 0) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint #x8800)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 0) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (logclear! (-> obj mask) (process-mask actor-pause)) (initialize-skeleton obj *orb-cache-top-sg* '()) (logior! (-> obj skel status) 1) (dummy-47 (-> obj root-override)) (dummy-21 obj) - (set! - (-> obj money) - (res-lump-value - (-> obj entity) - 'orb-cache-count - int - :default - (the-as uint128 20) - ) - ) + (set! (-> obj money) (res-lump-value (-> obj entity) 'orb-cache-count int :default (the-as uint128 20))) (set! (-> obj active-distance) 61440.0) (set! (-> obj inactive-distance) 245760.0) (set! (-> obj root-pos) (-> obj basetrans y)) (set! (-> obj platform-pos) (-> obj root-pos)) - (set! - (-> obj activated) - (the-as - symbol - (and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) - ) - ) - ) + (set! (-> obj activated) + (the-as + symbol + (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) + ) + ) (let ((v1-39 (-> obj entity extra perm))) - (logior! (-> v1-39 status) (entity-perm-status user-set-from-cstage)) - (set! (-> obj money) (- (-> obj money) (-> v1-39 user-int16 0))) - ) + (logior! (-> v1-39 status) (entity-perm-status user-set-from-cstage)) + (set! (-> obj money) (- (-> obj money) (-> v1-39 user-int16 0))) + ) (dotimes (v1-42 (-> obj money)) - (set! (-> obj money-list v1-42) (the-as handle #f)) - ) + (set! (-> obj money-list v1-42) (the-as handle #f)) + ) (cond - ((zero? (-> obj money)) - (go orb-cache-top-complete #t) - ) - ((and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) + ((zero? (-> obj money)) + (go orb-cache-top-complete #t) ) - (go orb-cache-top-activate #t) + ((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) + (go orb-cache-top-activate #t) + ) + (else + (go orb-cache-top-idle #f) + ) ) - (else - (go orb-cache-top-idle #f) - ) - ) (none) ) diff --git a/goal_src/levels/finalboss/green-eco-lurker.gc b/goal_src/levels/finalboss/green-eco-lurker.gc index 18fe7c8000..a833a72a40 100644 --- a/goal_src/levels/finalboss/green-eco-lurker.gc +++ b/goal_src/levels/finalboss/green-eco-lurker.gc @@ -23,6 +23,8 @@ (:states green-eco-lurker-appear green-eco-lurker-appear-land + green-eco-lurker-tune-spheres + green-eco-lurker-wait-to-appear ) ) @@ -36,6 +38,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + spawn-minions + ) ) diff --git a/goal_src/levels/finalboss/light-eco.gc b/goal_src/levels/finalboss/light-eco.gc index 00d5b393f7..735f2aec66 100644 --- a/goal_src/levels/finalboss/light-eco.gc +++ b/goal_src/levels/finalboss/light-eco.gc @@ -25,6 +25,7 @@ (common-trans (_type_) none 20) ) (:states + light-eco-child-appear light-eco-child-die light-eco-child-grabbed light-eco-child-hit-ground @@ -51,6 +52,7 @@ ) (:states light-eco-mother-active + light-eco-mother-appear light-eco-mother-discipate ) ) diff --git a/goal_src/levels/finalboss/robotboss-h.gc b/goal_src/levels/finalboss/robotboss-h.gc index 0ba3b3466e..d777e72124 100644 --- a/goal_src/levels/finalboss/robotboss-h.gc +++ b/goal_src/levels/finalboss/robotboss-h.gc @@ -66,63 +66,77 @@ (:methods (ease-loc-t (_type_) float 20) ) + (:states + robotboss-blue-dark-bomb + robotboss-blue-dark-bomb-wait + robotboss-blue-wait + robotboss-daxter-sacrifice-movie + robotboss-green + robotboss-green-dark-bomb + robotboss-green-dark-bomb-wait + robotboss-green-wait + robotboss-red + robotboss-red-dark-bomb + robotboss-red-dark-bomb-wait + robotboss-red-wait + robotboss-white-eco-movie + robotboss-yellow + robotboss-yellow-dark-bomb + robotboss-yellow-dark-bomb-wait + robotboss-yellow-wait + ) ) (defmethod relocate robotboss ((obj robotboss) (arg0 int)) (dotimes (v1-0 7) - (if (nonzero? (-> obj particle v1-0)) - (&+! (-> obj particle v1-0) arg0) + (if (nonzero? (-> obj particle v1-0)) + (&+! (-> obj particle v1-0) arg0) + ) ) - ) (dotimes (v1-3 4) - (if (nonzero? (-> obj looping-sound v1-3)) - (&+! (-> obj looping-sound v1-3) arg0) + (if (nonzero? (-> obj looping-sound v1-3)) + (&+! (-> obj looping-sound v1-3) arg0) + ) ) - ) (if (nonzero? (-> obj yellow-gun)) - (&+! (-> obj yellow-gun) arg0) - ) + (&+! (-> obj yellow-gun) arg0) + ) (the-as robotboss ((method-of-type process-drawable relocate) obj arg0)) ) (defmethod deactivate robotboss ((obj robotboss)) (dotimes (s5-0 7) - (let ((a0-1 (-> obj particle s5-0))) - (if (nonzero? a0-1) - (kill-and-free-particles a0-1) - ) + (let ((a0-1 (-> obj particle s5-0))) + (if (nonzero? a0-1) + (kill-and-free-particles a0-1) + ) + ) ) - ) (dotimes (s5-1 4) - (let ((a0-2 (-> obj looping-sound s5-1))) - (if (nonzero? a0-2) - (stop! a0-2) - ) + (let ((a0-2 (-> obj looping-sound s5-1))) + (if (nonzero? a0-2) + (stop! a0-2) + ) + ) ) - ) ((method-of-type process-drawable deactivate) obj) (none) ) (defun target-has-all-the-cells? () (with-pp - (the-as - symbol - (and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) pp) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'pickup)) - (set! (-> a1-0 param 1) (the-as uint 6)) - (>= - (the int (the-as float (send-event-function *target* a1-0))) - 100 - ) - ) - ) + (the-as symbol (and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) pp) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'query) + (set! (-> a1-0 param 0) (the-as uint 'pickup)) + (set! (-> a1-0 param 1) (the-as uint 6)) + (>= (the int (the-as float (send-event-function *target* a1-0))) 100) + ) + ) + ) ) - ) ) (defskelgroup *robotboss-sg* robotboss diff --git a/goal_src/levels/finalboss/robotboss-misc.gc b/goal_src/levels/finalboss/robotboss-misc.gc index 8985405201..97fe83136e 100644 --- a/goal_src/levels/finalboss/robotboss-misc.gc +++ b/goal_src/levels/finalboss/robotboss-misc.gc @@ -8,8 +8,6 @@ (declare-type ecoclaw process-drawable) (define-extern *ecoclaw* (pointer ecoclaw)) -(define-extern ecoclaw-idle (state ecoclaw)) ;; unknown type -(define-extern ecoclaw-activate (state ecoclaw)) ;; unknown type ;; DECOMP BEGINS @@ -114,6 +112,10 @@ :method-count-assert 20 :size-assert #x110 :flag-assert #x1400a00110 + (:states + ecoclaw-activate + ecoclaw-idle + ) ) diff --git a/goal_src/levels/finalboss/robotboss-weapon.gc b/goal_src/levels/finalboss/robotboss-weapon.gc index 533d30cb65..49a3a22371 100644 --- a/goal_src/levels/finalboss/robotboss-weapon.gc +++ b/goal_src/levels/finalboss/robotboss-weapon.gc @@ -156,6 +156,9 @@ :method-count-assert 20 :size-assert #xe0 :flag-assert #x14007000e0 + (:states + arcing-shot-debug-trajectory + ) ) @@ -227,6 +230,12 @@ :method-count-assert 20 :size-assert #xf4 :flag-assert #x14009000f4 + (:states + darkecobomb-countdown + (darkecobomb-explode symbol) + darkecobomb-idle + darkecobomb-land + ) ) @@ -588,6 +597,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + greenshot-idle + ) ) @@ -700,6 +712,11 @@ :method-count-assert 20 :size-assert #x130 :flag-assert #x1400c00130 + (:states + redshot-explode + redshot-idle + redshot-wait + ) ) @@ -964,6 +981,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + yellowshot-idle + ) ) diff --git a/goal_src/levels/finalboss/sage-finalboss-FIN.gc b/goal_src/levels/finalboss/sage-finalboss-FIN.gc index 116f773b75..721812b96b 100644 --- a/goal_src/levels/finalboss/sage-finalboss-FIN.gc +++ b/goal_src/levels/finalboss/sage-finalboss-FIN.gc @@ -216,6 +216,9 @@ :method-count-assert 53 :size-assert #x270 :flag-assert #x3502000270 + (:states + sage-finalboss-credits + ) ) diff --git a/goal_src/levels/firecanyon/firecanyon-obs.gc b/goal_src/levels/firecanyon/firecanyon-obs.gc index 629eda0935..007685f5b3 100644 --- a/goal_src/levels/firecanyon/firecanyon-obs.gc +++ b/goal_src/levels/firecanyon/firecanyon-obs.gc @@ -12,11 +12,6 @@ (declare-type spike process-drawable) (declare-type balloon process-drawable) -(define-extern spike-down (state spike)) ;; unknown type -(define-extern spike-idle (state spike)) ;; unknown type -(define-extern spike-up (state spike)) ;; unknown type -(define-extern balloon-idle (state balloon)) ;; unknown type -(define-extern balloon-popping (state balloon)) ;; unknown type ;; DECOMP BEGINS @@ -27,237 +22,198 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 - ) - - -(set! - (-> *part-group-id-table* 227) - (new 'static 'sparticle-launch-group - :length 3 - :duration #x5 - :linger-duration #x5dc - :name "group-balloon" - :launcher - (new 'static 'inline-array sparticle-group-item 3 - (sp-item 1006) - (sp-item 1007) - (sp-item 1008) + (:states + balloon-idle + balloon-popping ) - :bounds (new 'static 'sphere :w 61440.0) - ) ) -(set! - (-> *part-id-table* 1007) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 17 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-flt spt-num 8.0) - (sp-rnd-flt spt-x (meters -1.0) (meters 2.0) 1.0) - (sp-rnd-flt spt-y (meters 1.0) (meters 2.0) 1.0) - (sp-rnd-flt spt-z -4096.0 8192.0 1.0) - (sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 96.0) - (sp-flt spt-g 96.0) - (sp-flt spt-b 255.0) - (sp-rnd-flt spt-a 32.0 32.0 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0) - (sp-flt spt-fade-a -0.42666668) - (sp-int spt-timer 150) - (sp-cpuinfo-flags bit2 bit3) - (sp-end) - ) - ) - ) -(set! - (-> *part-id-table* 1008) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-flt spt-num 16.0) - (sp-flt spt-y (meters 2.0)) - (sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 96.0) - (sp-flt spt-g 96.0) - (sp-flt spt-b 255.0) - (sp-rnd-flt spt-a 32.0 32.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.04) (meters 0.08) 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0) - (sp-flt spt-fade-a -0.85333335) - (sp-flt spt-friction 0.98) - (sp-int spt-timer 75) - (sp-cpuinfo-flags bit2 bit3) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-flt spt-conerot-radius (meters 1.5)) - (sp-end) - ) - ) - ) +(set! (-> *part-group-id-table* 227) + (new 'static 'sparticle-launch-group + :length 3 + :duration #x5 + :linger-duration #x5dc + :name "group-balloon" + :launcher + (new 'static 'inline-array sparticle-group-item 3 (sp-item 1006) (sp-item 1007) (sp-item 1008)) + :bounds (new 'static 'sphere :w 61440.0) + ) + ) -(set! - (-> *part-id-table* 1006) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 14 - (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) - (sp-flt spt-num 1.0) - (sp-flt spt-y (meters 2.0)) - (sp-flt spt-scale-x (meters 12.0)) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 100.0 28.0 1.0) - (sp-flt spt-g 100.0) - (sp-flt spt-b 80.0) - (sp-flt spt-a 96.0) - (sp-flt spt-fade-a -0.08) - (sp-int spt-timer 15) - (sp-cpuinfo-flags bit2 bit3) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1007) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 17 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-flt spt-num 8.0) + (sp-rnd-flt spt-x (meters -1.0) (meters 2.0) 1.0) + (sp-rnd-flt spt-y (meters 1.0) (meters 2.0) 1.0) + (sp-rnd-flt spt-z -4096.0 8192.0 1.0) + (sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 96.0) + (sp-flt spt-g 96.0) + (sp-flt spt-b 255.0) + (sp-rnd-flt spt-a 32.0 32.0 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0) + (sp-flt spt-fade-a -0.42666668) + (sp-int spt-timer 150) + (sp-cpuinfo-flags bit2 bit3) + (sp-end) + ) + ) + ) + +(set! (-> *part-id-table* 1008) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-flt spt-num 16.0) + (sp-flt spt-y (meters 2.0)) + (sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 96.0) + (sp-flt spt-g 96.0) + (sp-flt spt-b 255.0) + (sp-rnd-flt spt-a 32.0 32.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.04) (meters 0.08) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0) + (sp-flt spt-fade-a -0.85333335) + (sp-flt spt-friction 0.98) + (sp-int spt-timer 75) + (sp-cpuinfo-flags bit2 bit3) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-flt spt-conerot-radius (meters 1.5)) + (sp-end) + ) + ) + ) + +(set! (-> *part-id-table* 1006) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) + (sp-flt spt-num 1.0) + (sp-flt spt-y (meters 2.0)) + (sp-flt spt-scale-x (meters 12.0)) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 100.0 28.0 1.0) + (sp-flt spt-g 100.0) + (sp-flt spt-b 80.0) + (sp-flt spt-a 96.0) + (sp-flt spt-fade-a -0.08) + (sp-int spt-timer 15) + (sp-cpuinfo-flags bit2 bit3) + (sp-end) + ) + ) + ) (defstate balloon-popping (balloon) :code (behavior () - (ja-channel-set! 0) - (clear-collide-with-as (-> self root-override)) - (ja-post) - (sound-play-by-name - (static-sound-name "cool-balloon") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-1 - (let ((t9-6 (method-of-type part-tracker activate))) - (t9-6 - (the-as part-tracker gp-1) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) - ) + (ja-channel-set! 0) + (clear-collide-with-as (-> self root-override)) + (ja-post) + (sound-play-by-name (static-sound-name "cool-balloon") (new-sound-id) 1024 0 0 1 #t) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-6 (method-of-type part-tracker activate))) + (t9-6 (the-as part-tracker gp-1) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-1 + part-tracker-init + (-> *part-group-id-table* 227) + -1 + #f + #f + #f + (-> self root-override trans) + ) + (-> gp-1 ppointer) + ) ) - (run-now-in-process - gp-1 - part-tracker-init - (-> *part-group-id-table* 227) - -1 - #f - #f - #f - (-> self root-override trans) - ) - (-> gp-1 ppointer) - ) + (suspend) + (dummy-18 self) + (deactivate self) + (none) ) - (suspend) - (dummy-18 self) - (deactivate self) - (none) - ) ) (defstate balloon-idle (balloon) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('attack) - (send-event arg0 'heat -10.0) - (go balloon-popping) + (case arg2 + (('attack) + (send-event arg0 'heat -10.0) + (go balloon-popping) + ) ) ) - ) :code (behavior () - (transform-post) - (while #t - (let ((a0-0 (-> self skel root-channel 0))) - (set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) + (transform-post) + (while #t + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! (-> a0-0 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! + a0-0 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1))) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - (set! - (-> a0-0 param 0) - (the float (+ (-> (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! a0-0 (if (> (-> self skel active-channels) 0) - (-> - self - skel - root-channel - 0 - frame-group - ) - ) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 param 0) - (the float (+ (-> a0-1 frame-group data 0 length) -1)) - ) - (set! (-> a0-1 param 1) 1.0) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior balloon) ja-post) ) (defmethod init-from-entity! balloon ((obj balloon) (arg0 entity-actor)) - (let - ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) - (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core offense) 4) - (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 8192.0) - (set-root-prim! s4-0 s3-0) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core offense) 4) + (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 8192.0) + (set-root-prim! s4-0 s3-0) + ) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *balloon-sg* '()) - (set! - (-> obj part) - (create-launch-control (-> *part-group-id-table* 227) obj) - ) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 227) obj)) (go balloon-idle) (none) ) @@ -270,6 +226,11 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + spike-down + spike-idle + spike-up + ) ) @@ -284,280 +245,251 @@ (defstate spike-up (spike) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (if (= v1-0 'go-spike-up) - #t - ) - ) + (let ((v1-0 arg2)) + (the-as object (if (= v1-0 'go-spike-up) + #t + ) + ) + ) ) - ) :trans (behavior () - (when (nonzero? (-> self num-alts)) - (let ((s5-0 (/ (-> self num-alts) 2)) - (gp-0 #t) - ) - (while (< s5-0 (+ (-> self num-alts) -1)) - (let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor s5-0))) - (if - (and - v1-2 - (-> v1-2 extra process) - (let ((a1-1 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-1 from) self) - (set! (-> a1-1 num-params) 0) - (set! (-> a1-1 message) 'go-spike-up) - (not (send-event-function (if v1-2 - (-> v1-2 extra process) - ) - a1-1 + (when (nonzero? (-> self num-alts)) + (let ((s5-0 (/ (-> self num-alts) 2)) + (gp-0 #t) + ) + (while (< s5-0 (+ (-> self num-alts) -1)) + (let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor s5-0))) + (if (and v1-2 (-> v1-2 extra process) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) 'go-spike-up) + (not (send-event-function + (if v1-2 + (-> v1-2 extra process) + ) + a1-1 + ) + ) + ) + ) + (set! gp-0 #f) ) - ) + ) + (+! s5-0 1) + ) + (when gp-0 + (set! (-> self num-alts) 0) + 0 ) - ) - (set! gp-0 #f) ) - ) - (+! s5-0 1) ) - (when gp-0 - (set! (-> self num-alts) 0) - 0 - ) - ) + (none) ) - (none) - ) :code (behavior () - (let ((a0-0 (-> self skel root-channel 0))) - (set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) - (set! - (-> a0-0 param 0) - (the float (+ (-> (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 - ) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! (-> a0-0 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! + a0-0 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) ) - ) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! a0-0 (if (> (-> self skel active-channels) 0) - (-> - self - skel - root-channel - 0 - frame-group - ) - ) - num-func-seek! - ) - ) - (until (ja-done? 0) - (transform-post) - (suspend) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 param 0) - (the float (+ (-> a0-1 frame-group data 0 length) -1)) + (until (ja-done? 0) + (transform-post) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1))) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) - (set! (-> a0-1 param 1) 1.0) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-seek! + (while #t + (suspend) ) - ) + (none) ) - (while #t - (suspend) - ) - (none) - ) ) (defstate spike-down (spike) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (when (= v1-0 'go-spike-up) - (go spike-up) - #t - ) - ) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'go-spike-up) + (go spike-up) + #t + ) + ) + ) ) - ) :trans (behavior () - (when (nonzero? (-> self num-alts)) - (let ((s5-0 0) - (gp-0 #t) - ) - (while (< s5-0 (/ (-> self num-alts) 2)) - (let ((v1-1 (entity-actor-lookup (-> self entity) 'alt-actor s5-0))) - (if - (and - v1-1 - (-> v1-1 extra process) - (let ((a1-1 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-1 from) self) - (set! (-> a1-1 num-params) 0) - (set! (-> a1-1 message) 'go-spike-up) - (not (send-event-function (if v1-1 - (-> v1-1 extra process) - ) - a1-1 + (when (nonzero? (-> self num-alts)) + (let ((s5-0 0) + (gp-0 #t) + ) + (while (< s5-0 (/ (-> self num-alts) 2)) + (let ((v1-1 (entity-actor-lookup (-> self entity) 'alt-actor s5-0))) + (if (and v1-1 (-> v1-1 extra process) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) 'go-spike-up) + (not (send-event-function + (if v1-1 + (-> v1-1 extra process) + ) + a1-1 + ) + ) + ) + ) + (set! gp-0 #f) ) - ) + ) + (+! s5-0 1) + ) + (when gp-0 + (set! (-> self num-alts) 0) + 0 ) - ) - (set! gp-0 #f) ) - ) - (+! s5-0 1) ) - (when gp-0 - (set! (-> self num-alts) 0) - 0 - ) - ) + (none) ) - (none) - ) :code (behavior () - (transform-post) - (while #t - (suspend) + (transform-post) + (while #t + (suspend) + ) + (none) ) - (none) - ) ) (defstate spike-idle (spike) :trans (behavior () - (when (and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 1) - (set! (-> a1-0 message) 'query) - (set! (-> a1-0 param 0) (the-as uint 'mode)) - (= (send-event-function *target* a1-0) 'racer) - ) - (< - (vector-vector-distance (-> self root-override trans) (target-pos 0)) - 225280.0 - ) - ) - (sound-play-by-name - (static-sound-name "magma-rock") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (let ((v1-8 (entity-actor-count (-> self entity) 'alt-actor))) - 0 - (cond - ((>= 1 v1-8) - (go spike-up) - ) - ((let* ((v1-11 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-12 (the-as number (logior #x3f800000 v1-11))) + (when (and + *target* + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'query) + (set! (-> a1-0 param 0) (the-as uint 'mode)) + (= (send-event-function *target* a1-0) 'racer) ) - (< (+ -1.0 (the-as float v1-12)) 0.5) + (< (vector-vector-distance (-> self root-override trans) (target-pos 0)) 225280.0) + ) + (sound-play-by-name (static-sound-name "magma-rock") (new-sound-id) 1024 0 0 1 #t) + (let ((v1-8 (entity-actor-count (-> self entity) 'alt-actor))) + 0 + (cond + ((>= 1 v1-8) + (go spike-up) + ) + ((let* ((v1-11 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-12 (the-as number (logior #x3f800000 v1-11))) + ) + (< (+ -1.0 (the-as float v1-12)) 0.5) + ) + (go spike-down) + ) + (else + (go spike-up) + ) + ) ) - (go spike-down) - ) - (else - (go spike-up) - ) ) - ) + (none) ) - (none) - ) :code (behavior () - (transform-post) - (while #t - (suspend) + (transform-post) + (while #t + (suspend) + ) + (none) ) - (none) - ) ) (defmethod init-from-entity! spike ((obj spike) (arg0 entity-actor)) - (let - ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 24576.0 0.0 40960.0) - (set-root-prim! s4-0 s3-0) - (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-0 collide-with) (the-as uint 16)) - (set! (-> s2-0 prim-core action) (the-as uint 1)) - (set! (-> s2-0 prim-core offense) 4) - (set! (-> s2-0 transform-index) 3) - (set-vector! (-> s2-0 local-sphere) 0.0 8192.0 0.0 16384.0) - (append-prim s3-0 s2-0) - ) - (let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s2-1 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-1 collide-with) (the-as uint 16)) - (set! (-> s2-1 prim-core action) (the-as uint 1)) - (set! (-> s2-1 prim-core offense) 4) - (set! (-> s2-1 transform-index) 3) - (set-vector! (-> s2-1 local-sphere) 0.0 20480.0 0.0 16384.0) - (append-prim s3-0 s2-1) - ) - (let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s2-2 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-2 collide-with) (the-as uint 16)) - (set! (-> s2-2 prim-core action) (the-as uint 1)) - (set! (-> s2-2 prim-core offense) 4) - (set! (-> s2-2 transform-index) 3) - (set-vector! (-> s2-2 local-sphere) 0.0 32768.0 0.0 16384.0) - (append-prim s3-0 s2-2) - ) - (let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s2-3 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-3 collide-with) (the-as uint 16)) - (set! (-> s2-3 prim-core action) (the-as uint 1)) - (set! (-> s2-3 prim-core offense) 4) - (set! (-> s2-3 transform-index) 3) - (set-vector! (-> s2-3 local-sphere) 0.0 45056.0 0.0 16384.0) - (append-prim s3-0 s2-3) - ) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 24576.0 0.0 40960.0) + (set-root-prim! s4-0 s3-0) + (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-0 collide-with) (the-as uint 16)) + (set! (-> s2-0 prim-core action) (the-as uint 1)) + (set! (-> s2-0 prim-core offense) 4) + (set! (-> s2-0 transform-index) 3) + (set-vector! (-> s2-0 local-sphere) 0.0 8192.0 0.0 16384.0) + (append-prim s3-0 s2-0) + ) + (let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s2-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-1 collide-with) (the-as uint 16)) + (set! (-> s2-1 prim-core action) (the-as uint 1)) + (set! (-> s2-1 prim-core offense) 4) + (set! (-> s2-1 transform-index) 3) + (set-vector! (-> s2-1 local-sphere) 0.0 20480.0 0.0 16384.0) + (append-prim s3-0 s2-1) + ) + (let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s2-2 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-2 collide-with) (the-as uint 16)) + (set! (-> s2-2 prim-core action) (the-as uint 1)) + (set! (-> s2-2 prim-core offense) 4) + (set! (-> s2-2 transform-index) 3) + (set-vector! (-> s2-2 local-sphere) 0.0 32768.0 0.0 16384.0) + (append-prim s3-0 s2-2) + ) + (let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s2-3 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-3 collide-with) (the-as uint 16)) + (set! (-> s2-3 prim-core action) (the-as uint 1)) + (set! (-> s2-3 prim-core offense) 4) + (set! (-> s2-3 transform-index) 3) + (set-vector! (-> s2-3 local-sphere) 0.0 45056.0 0.0 16384.0) + (append-prim s3-0 s2-3) + ) + ) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *spike-sg* '()) (set! (-> obj draw origin-joint-index) (the-as uint 3)) (set! (-> obj num-alts) (entity-actor-count (-> obj entity) 'alt-actor)) (if (zero? (-> obj num-alts)) - (go spike-down) - (go spike-idle) - ) + (go spike-down) + (go spike-idle) + ) (none) ) @@ -583,344 +515,292 @@ ) -(set! - (-> *part-group-id-table* 228) - (new 'static 'sparticle-launch-group - :length 69 - :duration #x258 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-dark-cluster-explosion" - :launcher - (new 'static 'inline-array sparticle-group-item 69 - (sp-item 2100 :period 600 :length 5) - (sp-item 2101 :period 600 :length 40) - (sp-item 2102 :period 600 :length 20) - (sp-item 2103 :period 600 :length 20) - (sp-item 2104 :fade-after (meters 100.0) :period 600 :length 5 :binding 296) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - (sp-item 296 :flags (start-dead launch-asap) :binding 297) - (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) - ) - :bounds (new 'static 'sphere :w 49152.0) - ) - ) +(set! (-> *part-group-id-table* 228) + (new 'static 'sparticle-launch-group + :length 69 + :duration #x258 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-dark-cluster-explosion" + :launcher + (new 'static 'inline-array sparticle-group-item 69 + (sp-item 2100 :period 600 :length 5) + (sp-item 2101 :period 600 :length 40) + (sp-item 2102 :period 600 :length 20) + (sp-item 2103 :period 600 :length 20) + (sp-item 2104 :fade-after (meters 100.0) :period 600 :length 5 :binding 296) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + (sp-item 296 :flags (start-dead launch-asap) :binding 297) + (sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead)) + ) + :bounds (new 'static 'sphere :w 49152.0) + ) + ) -(set! - (-> *part-id-table* 2104) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 16 - (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) - (sp-flt spt-num 32.0) - (sp-rnd-flt spt-x (meters -2.0) (meters 4.0) 1.0) - (sp-rnd-flt spt-y (meters 1.0) (meters 2.0) 1.0) - (sp-rnd-flt spt-z -8192.0 16384.0 1.0) - (sp-flt spt-scale-x (meters 0.1)) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.026666667) 1.0) - (sp-flt spt-accel-y -1.3653333) - (sp-flt spt-friction 0.94) - (sp-int spt-timer 240) - (sp-cpuinfo-flags bit3) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 140.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2104) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 16 + (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) + (sp-flt spt-num 32.0) + (sp-rnd-flt spt-x (meters -2.0) (meters 4.0) 1.0) + (sp-rnd-flt spt-y (meters 1.0) (meters 2.0) 1.0) + (sp-rnd-flt spt-z -8192.0 16384.0 1.0) + (sp-flt spt-scale-x (meters 0.1)) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.026666667) 1.0) + (sp-flt spt-accel-y -1.3653333) + (sp-flt spt-friction 0.94) + (sp-int spt-timer 240) + (sp-cpuinfo-flags bit3) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 140.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2101) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 22 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 12.0) - (sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0) - (sp-rnd-flt spt-scale-x (meters 0.4) (meters 0.8) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 128.0 128.0 1.0) - (sp-rnd-flt spt-g 0.0 32.0 1.0) - (sp-rnd-flt spt-b 128.0 128.0 1.0) - (sp-rnd-flt spt-a 32.0 96.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.04) (meters 0.16) 1.0) - (sp-flt spt-scalevel-x (meters -0.0026666666)) - (sp-copy-from-other spt-scalevel-y -4) - (sp-rnd-flt spt-accel-y -0.68266666 -0.68266666 1.0) - (sp-flt spt-friction 0.9) - (sp-int spt-timer 300) - (sp-cpuinfo-flags bit2 bit14) - (sp-int-plain-rnd spt-next-time 30 89 1) - (sp-launcher-by-id spt-next-launcher 2105) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 120.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-conerot-radius (meters 2.0) (meters 4.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2101) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 22 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 12.0) + (sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.4) (meters 0.8) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 0.0 32.0 1.0) + (sp-rnd-flt spt-b 128.0 128.0 1.0) + (sp-rnd-flt spt-a 32.0 96.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.04) (meters 0.16) 1.0) + (sp-flt spt-scalevel-x (meters -0.0026666666)) + (sp-copy-from-other spt-scalevel-y -4) + (sp-rnd-flt spt-accel-y -0.68266666 -0.68266666 1.0) + (sp-flt spt-friction 0.9) + (sp-int spt-timer 300) + (sp-cpuinfo-flags bit2 bit14) + (sp-int-plain-rnd spt-next-time 30 89 1) + (sp-launcher-by-id spt-next-launcher 2105) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 120.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters 2.0) (meters 4.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2105) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -1.0666667) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2105) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -1.0666667) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 2103) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 15 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 12.0) - (sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0) - (sp-flt spt-scale-x (meters 0.3)) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 180.0) 1.0) - (sp-flt spt-scale-y (meters 12.0)) - (sp-rnd-flt spt-r 128.0 128.0 1.0) - (sp-rnd-flt spt-g 0.0 32.0 1.0) - (sp-rnd-flt spt-b 128.0 64.0 1.0) - (sp-rnd-flt spt-a 32.0 64.0 1.0) - (sp-flt spt-scalevel-y (meters 1.04)) - (sp-flt spt-fade-a -1.6) - (sp-int spt-timer 60) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2103) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 12.0) + (sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0) + (sp-flt spt-scale-x (meters 0.3)) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 180.0) 1.0) + (sp-flt spt-scale-y (meters 12.0)) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-g 0.0 32.0 1.0) + (sp-rnd-flt spt-b 128.0 64.0 1.0) + (sp-rnd-flt spt-a 32.0 64.0 1.0) + (sp-flt spt-scalevel-y (meters 1.04)) + (sp-flt spt-fade-a -1.6) + (sp-int spt-timer 60) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2100) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 13 - (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) - (sp-flt spt-num 1.0) - (sp-flt spt-y (meters 2.0)) - (sp-flt spt-scale-x (meters 24.0)) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 192.0 64.0 1.0) - (sp-rnd-flt spt-g 0.0 32.0 1.0) - (sp-rnd-flt spt-b 128.0 128.0 1.0) - (sp-flt spt-a 128.0) - (sp-flt spt-fade-a -2.3272727) - (sp-int spt-timer 54) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2100) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 13 + (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) + (sp-flt spt-num 1.0) + (sp-flt spt-y (meters 2.0)) + (sp-flt spt-scale-x (meters 24.0)) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 192.0 64.0 1.0) + (sp-rnd-flt spt-g 0.0 32.0 1.0) + (sp-rnd-flt spt-b 128.0 128.0 1.0) + (sp-flt spt-a 128.0) + (sp-flt spt-fade-a -2.3272727) + (sp-int spt-timer 54) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2102) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 23 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-flt spt-num 16.0) - (sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0) - (sp-rnd-flt spt-scale-x (meters 3.0) (meters 1.5) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 0.0 96.0 1.0) - (sp-rnd-flt spt-g 0.0 32.0 1.0) - (sp-rnd-flt spt-b 64.0 32.0 1.0) - (sp-rnd-flt spt-a 64.0 64.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.08) (meters 0.04) 1.0) - (sp-flt spt-scalevel-x (meters 0.02)) - (sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a -0.28444445) - (sp-rnd-flt spt-accel-y 0.68266666 0.68266666 1.0) - (sp-flt spt-friction 0.8) - (sp-int spt-timer 510) - (sp-cpuinfo-flags bit2 bit14) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 120.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-conerot-radius (meters 0.0) (meters 4.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2102) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 23 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-flt spt-num 16.0) + (sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0) + (sp-rnd-flt spt-scale-x (meters 3.0) (meters 1.5) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 0.0 96.0 1.0) + (sp-rnd-flt spt-g 0.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 64.0 64.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.08) (meters 0.04) 1.0) + (sp-flt spt-scalevel-x (meters 0.02)) + (sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.28444445) + (sp-rnd-flt spt-accel-y 0.68266666 0.68266666 1.0) + (sp-flt spt-friction 0.8) + (sp-int spt-timer 510) + (sp-cpuinfo-flags bit2 bit14) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 120.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-conerot-radius (meters 0.0) (meters 4.0) 1.0) + (sp-end) + ) + ) + ) (defstate die (crate-darkeco-cluster) :virtual #t :code (behavior () - (ja-channel-set! 0) - (clear-collide-with-as (-> self root-override)) - (ja-post) - (sound-play-by-name - (static-sound-name "dcrate-break") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-1 - (let ((t9-6 (method-of-type part-tracker activate))) - (t9-6 - (the-as part-tracker gp-1) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) - ) + (ja-channel-set! 0) + (clear-collide-with-as (-> self root-override)) + (ja-post) + (sound-play-by-name (static-sound-name "dcrate-break") (new-sound-id) 1024 0 0 1 #t) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-6 (method-of-type part-tracker activate))) + (t9-6 (the-as part-tracker gp-1) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-1 + part-tracker-init + (-> *part-group-id-table* 228) + -1 + #f + #f + #f + (-> self root-override trans) + ) + (-> gp-1 ppointer) + ) ) - (run-now-in-process - gp-1 - part-tracker-init - (-> *part-group-id-table* 228) - -1 - #f - #f - #f - (-> self root-override trans) - ) - (-> gp-1 ppointer) - ) + (suspend) + (dummy-18 self) + (deactivate self) + (none) ) - (suspend) - (dummy-18 self) - (deactivate self) - (none) - ) ) (defstate idle (crate-darkeco-cluster) :virtual #t :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('attack 'touch) - (let ((a1-3 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-3 from) self) - (set! (-> a1-3 num-params) 2) - (set! (-> a1-3 message) 'attack) - (set! (-> a1-3 param 0) (-> arg3 param 0)) - (let ((a2-2 (new 'static 'attack-info :mask #x20))) - (set! (-> a2-2 mode) 'darkeco) - (set! (-> a1-3 param 1) (the-as uint a2-2)) - ) - (send-event-function arg0 a1-3) + (case arg2 + (('attack 'touch) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 2) + (set! (-> a1-3 message) 'attack) + (set! (-> a1-3 param 0) (-> arg3 param 0)) + (let ((a2-2 (new 'static 'attack-info :mask #x20))) + (set! (-> a2-2 mode) 'darkeco) + (set! (-> a1-3 param 1) (the-as uint a2-2)) + ) + (send-event-function arg0 a1-3) + ) + (go-virtual die) ) - (go-virtual die) ) ) - ) :code - (behavior () - (transform-post) - (logior! (-> self mask) (process-mask sleep)) - (suspend) - 0 - (none) - ) + (behavior () (transform-post) (logior! (-> self mask) (process-mask sleep)) (suspend) 0 (none)) ) -(defmethod - init-from-entity! - crate-darkeco-cluster - ((obj crate-darkeco-cluster) (arg0 entity-actor)) - (let - ((s4-0 - (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)) - ) - ) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) +(defmethod init-from-entity! crate-darkeco-cluster ((obj crate-darkeco-cluster) (arg0 entity-actor)) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 128)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 6553.6 0.0 13516.8) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 128)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 1) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 6553.6 0.0 13516.8) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *crate-darkeco-cluster-sg* '()) (go (method-of-object obj idle)) diff --git a/goal_src/levels/flut_common/target-flut.gc b/goal_src/levels/flut_common/target-flut.gc index 3ee1b01f2f..34aeb4e32e 100644 --- a/goal_src/levels/flut_common/target-flut.gc +++ b/goal_src/levels/flut_common/target-flut.gc @@ -5,23 +5,6 @@ ;; name in dgo: target-flut ;; dgos: L1, SNO, SWA -(define-extern target-flut-stance (state target)) ;; unknown type -(define-extern target-flut-grab (state target)) ;; unknown type -(define-extern target-flut-clone-anim (state handle target)) ;; unknown type -(define-extern target-flut-get-off-hit-ground (state symbol target)) ;; unknown type -(define-extern target-flut-get-off-jump (state handle target)) ;; unknown type -(define-extern target-flut-death (state symbol target)) ;; unknown type -(define-extern target-flut-hit-ground (state target)) ;; unknown type -(define-extern target-flut-air-attack-hit-ground (state target)) ;; unknown type -(define-extern target-flut-jump (state float float target)) ;; unknown type -(define-extern target-flut-falling (state target)) ;; unknown type -(define-extern target-flut-hit (state symbol attack-info target)) ;; unknown type -(define-extern target-flut-walk (state target)) ;; unknown type -(define-extern target-flut-air-attack (state float target)) ;; unknown type -(define-extern target-flut-double-jump (state float float target)) ;; unknown type -(define-extern target-flut-running-attack (state target)) ;; unknown type -(define-extern target-flut-get-on (state handle target)) ;; unknown type -(define-extern target-flut-get-off (state handle target)) ;; unknown type (define-extern target-flut-falling-anim-trans (function none :behavior target)) diff --git a/goal_src/levels/jungle/bouncer.gc b/goal_src/levels/jungle/bouncer.gc index 2b5a10b303..0d3ea6330d 100644 --- a/goal_src/levels/jungle/bouncer.gc +++ b/goal_src/levels/jungle/bouncer.gc @@ -6,9 +6,6 @@ ;; dgos: JUN, JUNGLE, L1 (declare-type springbox process-drawable) -(define-extern bouncer-wait (state springbox)) ;; unknown type -(define-extern bouncer-fire (state springbox)) ;; unknown type -(define-extern bouncer-smush (state springbox)) ;; unknown type ;; DECOMP BEGINS @@ -20,6 +17,11 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + bouncer-fire + bouncer-smush + bouncer-wait + ) ) @@ -36,135 +38,101 @@ (defstate bouncer-wait (springbox) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('bonk) - (let ((a1-3 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-3 from) self) - (set! (-> a1-3 num-params) 3) - (set! (-> a1-3 message) 'jump) - (set! (-> a1-3 param 0) (the-as uint (-> self spring-height))) - (set! (-> a1-3 param 1) (the-as uint (-> self spring-height))) - (set! (-> a1-3 param 2) (the-as uint #f)) - (when (send-event-function arg0 a1-3) - (sound-play-by-name - (static-sound-name "trampoline") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t + (case arg2 + (('bonk) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 3) + (set! (-> a1-3 message) 'jump) + (set! (-> a1-3 param 0) (the-as uint (-> self spring-height))) + (set! (-> a1-3 param 1) (the-as uint (-> self spring-height))) + (set! (-> a1-3 param 2) (the-as uint #f)) + (when (send-event-function arg0 a1-3) + (sound-play-by-name (static-sound-name "trampoline") (new-sound-id) 1024 0 0 1 #t) + (go bouncer-fire) + ) + ) + ) + (('touch) + (if (not (or (= (-> self next-state name) 'bouncer-smush) (= (-> self next-state name) 'bouncer-fire))) + (go bouncer-smush) + ) + ) + (('attack) + (when (and (= (-> arg3 param 1) 'flop) (send-event arg0 'jump (-> self spring-height) (-> self spring-height) #f)) + (go bouncer-fire) + #f ) - (go bouncer-fire) - ) ) ) - (('touch) - (if - (not - (or - (= (-> self next-state name) 'bouncer-smush) - (= (-> self next-state name) 'bouncer-fire) - ) - ) - (go bouncer-smush) - ) - ) - (('attack) - (when - (and - (= (-> arg3 param 1) 'flop) - (send-event - arg0 - 'jump - (-> self spring-height) - (-> self spring-height) - #f - ) - ) - (go bouncer-fire) - #f - ) - ) ) - ) :code (behavior () - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (transform-post) + (while #t + (logior! (-> self mask) (process-mask sleep)) + (suspend) + ) + (none) ) - (transform-post) - (while #t - (logior! (-> self mask) (process-mask sleep)) - (suspend) - ) - (none) - ) ) (defstate bouncer-smush (springbox) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('touch) - (set! (-> self state-time) (-> *display* base-frame-counter)) - #f + (case arg2 + (('touch) + (set! (-> self state-time) (-> *display* base-frame-counter)) + #f + ) + (else + ((-> bouncer-wait event) arg0 arg1 arg2 arg3) + ) ) - (else - ((-> bouncer-wait event) arg0 arg1 arg2 arg3) - ) ) - ) :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self smush) 0.0) - (while #t - (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) - (let ((a0-1 (-> self skel root-channel 0))) - (set! (-> a0-1 param 0) 0.0) - (set! (-> a0-1 param 1) 0.1) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (else - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 param 0) - (lerp-scale - (ja-aframe 6.0 0) - (ja-aframe 2.0 0) - (vector-vector-xz-distance (target-pos 0) (-> self root trans)) - 0.0 - 4096.0 + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self smush) 0.0) + (while #t + (cond + ((>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) 0.0) + (set! (-> a0-1 param 1) 0.1) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) + (else + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 param 0) (lerp-scale + (ja-aframe 6.0 0) + (ja-aframe 2.0 0) + (vector-vector-xz-distance (target-pos 0) (-> self root trans)) + 0.0 + 4096.0 + ) + ) + (set! (-> gp-0 param 1) 0.2) + (joint-control-channel-group-eval! gp-0 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - (set! (-> gp-0 param 1) 0.2) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) + (suspend) + (if (ja-min? 0) + (go bouncer-wait) + ) ) - ) - (suspend) - (if (ja-min? 0) - (go bouncer-wait) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior springbox) transform-post) ) @@ -172,102 +140,55 @@ (defstate bouncer-fire (springbox) :code (behavior () - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 2)) - ) - (set! - (-> gp-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) + (set! (-> gp-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) + ) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 6.0 0)) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1))) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) (ja-aframe 6.0 0)) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-seek! - ) + (go bouncer-wait) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 param 0) - (the float (+ (-> a0-3 frame-group data 0 length) -1)) - ) - (set! (-> a0-3 param 1) 1.0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go bouncer-wait) - (none) - ) :post (the-as (function none :behavior springbox) transform-post) ) (defmethod init-from-entity! springbox ((obj springbox) (arg0 entity-actor)) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 128)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 0) + (set-vector! (-> s3-0 local-sphere) 0.0 3072.0 0.0 6963.2) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 128)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 0) - (set-vector! (-> s3-0 local-sphere) 0.0 3072.0 0.0 6963.2) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *bouncer-sg* '()) (nav-mesh-connect obj (-> obj root) (the-as nav-control #f)) - (set! - (-> obj spring-height) - (res-lump-float arg0 'spring-height :default 45056.0) - ) + (set! (-> obj spring-height) (res-lump-float arg0 'spring-height :default 45056.0)) (go bouncer-wait) (none) ) diff --git a/goal_src/levels/jungle/darkvine.gc b/goal_src/levels/jungle/darkvine.gc index f6258bae6c..0438921e0a 100644 --- a/goal_src/levels/jungle/darkvine.gc +++ b/goal_src/levels/jungle/darkvine.gc @@ -9,9 +9,6 @@ (declare-type darkvine process-drawable) -(define-extern darkvine-die (state symbol darkvine)) ;; unknown type -(define-extern darkvine-idle (state darkvine)) ;; unknown type -(define-extern darkvine-retreat (state darkvine)) ;; unknown type ;; DECOMP BEGINS @@ -29,31 +26,29 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + (darkvine-die symbol) + darkvine-idle + darkvine-retreat + ) ) (defmethod run-logic? darkvine ((obj darkvine)) (or - (zero? (logand (-> obj mask) (process-mask actor-pause))) - (or - (and - (nonzero? (-> obj draw)) - (logtest? (-> obj draw status) 8) - (>= - (+ - (-> *ACTOR-bank* pause-dist) - (-> obj root-override pause-adjust-distance) - ) - (vector-vector-distance (-> obj root-override trans) (math-camera-pos)) + (zero? (logand (-> obj mask) (process-mask actor-pause))) + (or + (and + (nonzero? (-> obj draw)) + (logtest? (-> obj draw status) (draw-status drwf03)) + (>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root-override pause-adjust-distance)) + (vector-vector-distance (-> obj root-override trans) (math-camera-pos)) + ) + ) + (and (nonzero? (-> obj skel)) (!= (-> obj skel root-channel 0) (-> obj skel channel))) + (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-status drwf04))) ) - ) - (and - (nonzero? (-> obj skel)) - (!= (-> obj skel root-channel 0) (-> obj skel channel)) - ) - (and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) 16)) ) - ) ) (defskelgroup *darkvine-sg* darkvine @@ -64,151 +59,135 @@ :longest-edge (meters 0) ) -(set! - (-> *part-group-id-table* 175) - (new 'static 'sparticle-launch-group - :length 3 - :duration #x96 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-darkvine-puffs" - :launcher - (new 'static 'inline-array sparticle-group-item 3 - (sp-item 800) - (sp-item 801) - (sp-item 802) - ) - :bounds - (new 'static 'sphere :y 8192.0 :w 12288.0) - ) - ) +(set! (-> *part-group-id-table* 175) + (new 'static 'sparticle-launch-group + :length 3 + :duration #x96 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-darkvine-puffs" + :launcher + (new 'static 'inline-array sparticle-group-item 3 (sp-item 800) (sp-item 801) (sp-item 802)) + :bounds + (new 'static 'sphere :y 8192.0 :w 12288.0) + ) + ) -(set! - (-> *part-id-table* 800) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 19 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-flt spt-num 0.8) - (sp-rnd-flt spt-x (meters 0.0) (meters 0.5) 1.0) - (sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 30.0 20.0 1.0) - (sp-rnd-flt spt-g 25.0 10.0 1.0) - (sp-rnd-flt spt-b 10.0 5.0 1.0) - (sp-rnd-flt spt-a 0.0 32.0 1.0) - (sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0) - (sp-flt spt-vel-y (meters 0.013333334)) - (sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667) - (sp-flt spt-fade-a 0.1882353) - (sp-flt spt-accel-y -2.048) - (sp-int spt-timer 255) - (sp-cpuinfo-flags bit2 bit12) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 800) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 19 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-flt spt-num 0.8) + (sp-rnd-flt spt-x (meters 0.0) (meters 0.5) 1.0) + (sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 30.0 20.0 1.0) + (sp-rnd-flt spt-g 25.0 10.0 1.0) + (sp-rnd-flt spt-b 10.0 5.0 1.0) + (sp-rnd-flt spt-a 0.0 32.0 1.0) + (sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0) + (sp-flt spt-vel-y (meters 0.013333334)) + (sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667) + (sp-flt spt-fade-a 0.1882353) + (sp-flt spt-accel-y -2.048) + (sp-int spt-timer 255) + (sp-cpuinfo-flags bit2 bit12) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 802) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 18 - (sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2)) - (sp-flt spt-num 0.25) - (sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0) - (sp-rnd-flt spt-scale-x (meters 0.025) (meters 0.2) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 45.0 45.0 1.0) - (sp-rnd-flt spt-g 45.0 10.0 1.0) - (sp-rnd-flt spt-b 20.0 6.0 1.0) - (sp-flt spt-a 96.0) - (sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0) - (sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0) - (sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667) - (sp-flt spt-accel-y -2.7306666) - (sp-int spt-timer 375) - (sp-cpuinfo-flags bit2 bit12) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 802) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 18 + (sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2)) + (sp-flt spt-num 0.25) + (sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.025) (meters 0.2) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 45.0 45.0 1.0) + (sp-rnd-flt spt-g 45.0 10.0 1.0) + (sp-rnd-flt spt-b 20.0 6.0 1.0) + (sp-flt spt-a 96.0) + (sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0) + (sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0) + (sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667) + (sp-flt spt-accel-y -2.7306666) + (sp-int spt-timer 375) + (sp-cpuinfo-flags bit2 bit12) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 801) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 18 - (sp-tex spt-texture (new 'static 'texture-id :index #x17 :page #x2)) - (sp-flt spt-num 0.5) - (sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0) - (sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.4) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.1) 1.0) - (sp-rnd-flt spt-r 10.0 6.0 1.0) - (sp-rnd-flt spt-g 40.0 90.0 1.0) - (sp-rnd-flt spt-b 10.0 6.0 1.0) - (sp-flt spt-a 96.0) - (sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0) - (sp-rnd-flt spt-vel-y (meters 0.01) (meters 0.013333334) 1.0) - (sp-rnd-int-flt spt-rotvel-z (degrees -1.2) 1 436.90668) - (sp-flt spt-accel-y -1.3653333) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2 bit12) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 801) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 18 + (sp-tex spt-texture (new 'static 'texture-id :index #x17 :page #x2)) + (sp-flt spt-num 0.5) + (sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.4) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.1) 1.0) + (sp-rnd-flt spt-r 10.0 6.0 1.0) + (sp-rnd-flt spt-g 40.0 90.0 1.0) + (sp-rnd-flt spt-b 10.0 6.0 1.0) + (sp-flt spt-a 96.0) + (sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0) + (sp-rnd-flt spt-vel-y (meters 0.01) (meters 0.013333334) 1.0) + (sp-rnd-int-flt spt-rotvel-z (degrees -1.2) 1 436.90668) + (sp-flt spt-accel-y -1.3653333) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2 bit12) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 50] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 52] -(defbehavior - darkvine-event-handler darkvine - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) +(defbehavior darkvine-event-handler darkvine ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'touch) - (dummy-45 (-> self root-override)) - (when (-> self dangerous) - (let ((a1-1 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-1 from) self) - (set! (-> a1-1 num-params) 2) - (set! (-> a1-1 message) 'attack) - (set! (-> a1-1 param 0) (-> arg3 param 0)) - (set! - (-> a1-1 param 1) - (the-as uint (new 'static 'attack-info)) - ) - (if (send-event-function arg0 a1-1) - (dummy-54 (-> self root-override) 2 0) - ) - ) - ) - ) - ((= v1-0 'attack) - (let ((v1-10 (-> arg3 param 2))) - (cond - ((!= v1-10 (-> self player-attack-id)) - (set! (-> self player-attack-id) (the-as int v1-10)) - (when (-> self vulnerable) - (dummy-45 (-> self root-override)) - (go darkvine-retreat) + (the-as object (cond + ((= v1-0 'touch) + (dummy-45 (-> self root-override)) + (when (-> self dangerous) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'attack) + (set! (-> a1-1 param 0) (-> arg3 param 0)) + (set! (-> a1-1 param 1) (the-as uint (new 'static 'attack-info))) + (if (send-event-function arg0 a1-1) + (dummy-54 (-> self root-override) 2 0) + ) + ) + ) + ) + ((= v1-0 'attack) + (let ((v1-10 (-> arg3 param 2))) + (cond + ((!= v1-10 (-> self player-attack-id)) + (set! (-> self player-attack-id) (the-as int v1-10)) + (when (-> self vulnerable) + (dummy-45 (-> self root-override)) + (go darkvine-retreat) + ) + ) + (else + 'push + ) + ) ) - ) - (else - 'push - ) ) ) - ) - ) + ) ) - ) ) (defstate darkvine-idle (darkvine) @@ -216,99 +195,62 @@ darkvine-event-handler :code (behavior () - (set! (-> self dangerous) #t) - (set! (-> self vulnerable) #t) - (let ((f30-0 0.0)) - (while #t - (if - (logtest? (get-reminder (get-task-control (game-task jungle-plant)) 0) 1) - (go darkvine-die #f) - ) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! - (-> a0-3 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 3)) - data - 0 - length + (set! (-> self dangerous) #t) + (set! (-> self vulnerable) #t) + (let ((f30-0 0.0)) + (while #t + (if (logtest? (get-reminder (get-task-control (game-task jungle-plant)) 0) 1) + (go darkvine-die #f) + ) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> a0-3 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1)) + ) + (set! (-> a0-3 param 1) (-> self speed)) + (set! (-> a0-3 frame-num) 0.0) + (joint-control-channel-group! a0-3 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) - -1 - ) + (until (ja-done? 0) + (if (and (>= (ja-aframe-num 0) 120.0) (>= 180.0 (ja-aframe-num 0))) + (seek-toward-yaw-angle! (-> self root-override) f30-0 32768.0 150) + ) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) (-> self speed)) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (set! f30-0 (if (rand-vu-percent? 0.5) + (+ 16384.0 f30-0) + (+ -16384.0 f30-0) + ) + ) ) - ) - (set! (-> a0-3 param 1) (-> self speed)) - (set! (-> a0-3 frame-num) 0.0) - (joint-control-channel-group! - a0-3 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) ) - (until (ja-done? 0) - (if (and (>= (ja-aframe-num 0) 120.0) (>= 180.0 (ja-aframe-num 0))) - (seek-toward-yaw-angle! (-> self root-override) f30-0 32768.0 150) - ) - (suspend) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) - ) - (set! (-> a0-7 param 1) (-> self speed)) - (joint-control-channel-group-eval! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (set! f30-0 (if (rand-vu-percent? 0.5) - (+ 16384.0 f30-0) - (+ -16384.0 f30-0) - ) - ) - ) + (none) ) - (none) - ) :post (behavior () - (when - (and - (-> self hit-player) - (or - (not *target*) - (>= - (- (-> *display* base-frame-counter) (the-as int (-> self touch-time))) - 15 - ) + (when (and + (-> self hit-player) + (or (not *target*) (>= (- (-> *display* base-frame-counter) (the-as int (-> self touch-time))) 15)) + ) + (dummy-54 (-> self root-override) 2 4) + (set! (-> self hit-player) #f) ) - ) - (dummy-54 (-> self root-override) 2 4) - (set! (-> self hit-player) #f) + (transform-post) + (if *target* + (look-at-enemy! + (-> *target* neck) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data (-> self tip-index))) + 'nothing + self + ) + ) + (none) ) - (transform-post) - (if *target* - (look-at-enemy! - (-> *target* neck) - (vector<-cspace! - (new 'stack-no-clear 'vector) - (-> self node-list data (-> self tip-index)) - ) - 'nothing - self - ) - ) - (none) - ) ) (defstate darkvine-retreat (darkvine) @@ -316,145 +258,88 @@ darkvine-event-handler :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self dangerous) #f) - (set! (-> self vulnerable) #f) - (logclear! (-> self mask) (process-mask actor-pause)) - (ja-channel-push! 1 45) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-2 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self dangerous) #f) + (set! (-> self vulnerable) #f) + (logclear! (-> self mask) (process-mask actor-pause)) + (ja-channel-push! 1 45) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-2 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 1.0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 800) + (-> self root-override trans) + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 ) - -1 - ) - ) - ) - (set! (-> a0-2 param 1) 1.0) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 800) - (-> self root-override trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (suspend) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 param 0) - (the float (+ (-> a0-4 frame-group data 0 length) -1)) - ) - (set! (-> a0-4 param 1) 1.0) - (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (ja-channel-set! 0) - (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 600) - (suspend) - ) - ) - (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-1 - (let ((t9-7 (method-of-type part-tracker activate))) - (t9-7 - (the-as part-tracker gp-1) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-1 - part-tracker-init - (-> *part-group-id-table* 175) - -1 - #f - #f - #f - (-> self root-override trans) - ) - (-> gp-1 ppointer) - ) - ) - (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 150) - (suspend) - ) - ) - (set! (-> self dangerous) #t) - (logior! (-> self mask) (process-mask actor-pause)) - (ja-channel-set! 1) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-11 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-11 param 1) 1.0) - (set! (-> a0-11 frame-num) 0.0) - (joint-control-channel-group! - a0-11 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) + (ja-channel-set! 0) + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 600) + (suspend) + ) + ) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-7 (method-of-type part-tracker activate))) + (t9-7 (the-as part-tracker gp-1) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-1 + part-tracker-init + (-> *part-group-id-table* 175) + -1 + #f + #f + #f + (-> self root-override trans) + ) + (-> gp-1 ppointer) + ) + ) + (let ((gp-2 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-2) 150) + (suspend) + ) + ) + (set! (-> self dangerous) #t) + (logior! (-> self mask) (process-mask actor-pause)) + (ja-channel-set! 1) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-11 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-11 param 1) 1.0) + (set! (-> a0-11 frame-num) 0.0) + (joint-control-channel-group! a0-11 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (go darkvine-idle) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 param 0) - (the float (+ (-> a0-12 frame-group data 0 length) -1)) - ) - (set! (-> a0-12 param 1) 1.0) - (joint-control-channel-group-eval! - a0-12 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go darkvine-idle) - (none) - ) :post (-> darkvine-idle post) ) @@ -462,82 +347,81 @@ (defstate darkvine-die (darkvine) :code (behavior ((arg0 symbol)) - (logclear! (-> self mask) (process-mask actor-pause)) - (if arg0 - (ja-channel-set! 1) - (ja-channel-push! 1 150) + (logclear! (-> self mask) (process-mask actor-pause)) + (if arg0 + (ja-channel-set! 1) + (ja-channel-push! 1 150) + ) + (clear-collide-with-as (-> self root-override)) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (while (!= (-> self skel root-channel 0) (-> self skel channel)) + (suspend) + ) + (logior! (-> self mask) (process-mask sleep)) + (anim-loop) + (none) ) - (clear-collide-with-as (-> self root-override)) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (while (!= (-> self skel root-channel 0) (-> self skel channel)) - (suspend) - ) - (logior! (-> self mask) (process-mask sleep)) - (anim-loop) - (none) - ) :post (-> darkvine-idle post) ) (defmethod init-from-entity! darkvine ((obj darkvine) (arg0 entity-actor)) (set! (-> obj mask) (logior (process-mask enemy) (-> obj mask))) - (let - ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3072)) - (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 16384.0) - (set-root-prim! s4-0 s3-0) - (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) - (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-0 collide-with) (the-as uint 16)) - (set! (-> s2-0 prim-core action) (the-as uint 3073)) - (set! (-> s2-0 prim-core offense) 4) - (set! (-> s2-0 transform-index) 5) - (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 3276.8) - (append-prim s3-0 s2-0) - ) - (let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) - (set! (-> s2-1 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-1 collide-with) (the-as uint 16)) - (set! (-> s2-1 prim-core action) (the-as uint 3073)) - (set! (-> s2-1 prim-core offense) 4) - (set! (-> s2-1 transform-index) 6) - (set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 2867.2) - (append-prim s3-0 s2-1) - ) - (let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) - (set! (-> s2-2 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-2 collide-with) (the-as uint 16)) - (set! (-> s2-2 prim-core action) (the-as uint 3073)) - (set! (-> s2-2 prim-core offense) 4) - (set! (-> s2-2 transform-index) 7) - (set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 2457.6) - (append-prim s3-0 s2-2) - ) - (let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) - (set! (-> s2-3 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-3 collide-with) (the-as uint 16)) - (set! (-> s2-3 prim-core action) (the-as uint 3073)) - (set! (-> s2-3 prim-core offense) 4) - (set! (-> s2-3 transform-index) 8) - (set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 2048.0) - (append-prim s3-0 s2-3) - ) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3072)) + (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 16384.0) + (set-root-prim! s4-0 s3-0) + (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) + (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-0 collide-with) (the-as uint 16)) + (set! (-> s2-0 prim-core action) (the-as uint 3073)) + (set! (-> s2-0 prim-core offense) 4) + (set! (-> s2-0 transform-index) 5) + (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 3276.8) + (append-prim s3-0 s2-0) + ) + (let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) + (set! (-> s2-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-1 collide-with) (the-as uint 16)) + (set! (-> s2-1 prim-core action) (the-as uint 3073)) + (set! (-> s2-1 prim-core offense) 4) + (set! (-> s2-1 transform-index) 6) + (set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 2867.2) + (append-prim s3-0 s2-1) + ) + (let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) + (set! (-> s2-2 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-2 collide-with) (the-as uint 16)) + (set! (-> s2-2 prim-core action) (the-as uint 3073)) + (set! (-> s2-2 prim-core offense) 4) + (set! (-> s2-2 transform-index) 7) + (set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 2457.6) + (append-prim s3-0 s2-2) + ) + (let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) + (set! (-> s2-3 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-3 collide-with) (the-as uint 16)) + (set! (-> s2-3 prim-core action) (the-as uint 3073)) + (set! (-> s2-3 prim-core offense) 4) + (set! (-> s2-3 transform-index) 8) + (set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 2048.0) + (append-prim s3-0 s2-3) + ) + ) + (set! (-> s4-0 nav-radius) 2048.0) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) 2048.0) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (set! (-> obj tip-index) 8) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *darkvine-sg* '()) @@ -545,8 +429,8 @@ (set! (-> obj hit-player) #f) (set! (-> obj speed) (rand-vu-float-range 0.95 1.05)) (if (logtest? (get-reminder (get-task-control (game-task jungle-plant)) 0) 1) - (go darkvine-die #t) - ) + (go darkvine-die #t) + ) (go darkvine-idle) (none) ) diff --git a/goal_src/levels/jungle/fisher-JUN.gc b/goal_src/levels/jungle/fisher-JUN.gc index 26eac21c9b..27744a9261 100644 --- a/goal_src/levels/jungle/fisher-JUN.gc +++ b/goal_src/levels/jungle/fisher-JUN.gc @@ -6,8 +6,6 @@ ;; dgos: JUN (declare-type fisher-fish process-drawable) -(define-extern fisher-fish-caught (state fisher-fish)) -(define-extern fisher-fish-die (state fisher-fish)) ;; DECOMP BEGINS @@ -25,206 +23,173 @@ (define *FISHER-bank* - (new 'static 'fisher-bank - :width (meters 3.3) - :net-radius (meters 0.7) - :max-caught #xc8 - :max-missed 20 - ) + (new 'static 'fisher-bank :width (meters 3.3) :net-radius (meters 0.7) :max-caught #xc8 :max-missed 20) ) -(set! - (-> *part-group-id-table* 177) - (new 'static 'sparticle-launch-group - :length 2 - :duration #x5 - :linger-duration #x1c2 - :flags (sp-group-flag use-local-clock) - :name "group-bad-fish" - :launcher - (new 'static 'inline-array sparticle-group-item 2 - (sp-item 828) - (sp-item 2013) - ) - :bounds (new 'static 'sphere :w 8192.0) - ) - ) +(set! (-> *part-group-id-table* 177) + (new 'static 'sparticle-launch-group + :length 2 + :duration #x5 + :linger-duration #x1c2 + :flags (sp-group-flag use-local-clock) + :name "group-bad-fish" + :launcher + (new 'static 'inline-array sparticle-group-item 2 (sp-item 828) (sp-item 2013)) + :bounds (new 'static 'sphere :w 8192.0) + ) + ) -(set! - (-> *part-id-table* 828) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 17 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-rnd-flt spt-num 0.5 0.5 1.0) - (sp-flt spt-y (meters 0.2)) - (sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.5) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 128.0 128.0 1.0) - (sp-rnd-flt spt-b 128.0 128.0 1.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-vel-x (meters -0.0033333334) (meters 0.006666667) 1.0) - (sp-flt spt-scalevel-x (meters 0.0033333334)) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a 0.53333336) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2 bit14) - (sp-int-plain-rnd spt-next-time 10 53 1) - (sp-launcher-by-id spt-next-launcher 829) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 828) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 17 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-rnd-flt spt-num 0.5 0.5 1.0) + (sp-flt spt-y (meters 0.2)) + (sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.5) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 128.0 128.0 1.0) + (sp-rnd-flt spt-b 128.0 128.0 1.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-vel-x (meters -0.0033333334) (meters 0.006666667) 1.0) + (sp-flt spt-scalevel-x (meters 0.0033333334)) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a 0.53333336) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2 bit14) + (sp-int-plain-rnd spt-next-time 10 53 1) + (sp-launcher-by-id spt-next-launcher 829) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 829) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.21333334) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 829) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.21333334) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 2013) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 15 - (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) - (sp-rnd-flt spt-num 0.1 1.0 1.0) - (sp-rnd-flt spt-x (meters -0.7) (meters 0.5) 1.0) - (sp-rnd-flt spt-z -409.6 819.2 1.0) - (sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.1) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 255.0) - (sp-flt spt-g 255.0) - (sp-flt spt-b 255.0) - (sp-rnd-flt spt-a 32.0 32.0 1.0) - (sp-flt spt-fade-a -0.42666668) - (sp-flt spt-accel-y 1.3653333) - (sp-int spt-timer 150) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2013) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) + (sp-rnd-flt spt-num 0.1 1.0 1.0) + (sp-rnd-flt spt-x (meters -0.7) (meters 0.5) 1.0) + (sp-rnd-flt spt-z -409.6 819.2 1.0) + (sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.1) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 255.0) + (sp-rnd-flt spt-a 32.0 32.0 1.0) + (sp-flt spt-fade-a -0.42666668) + (sp-flt spt-accel-y 1.3653333) + (sp-int spt-timer 150) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-end) + ) + ) + ) -(set! - (-> *part-group-id-table* 178) - (new 'static 'sparticle-launch-group - :length 1 - :duration #x5 - :linger-duration #x1c2 - :flags (sp-group-flag use-local-clock) - :name "group-normal-fish" - :launcher - (new 'static 'inline-array sparticle-group-item 1 (sp-item 2001)) - :bounds (new 'static 'sphere :w 8192.0) - ) - ) +(set! (-> *part-group-id-table* 178) (new 'static 'sparticle-launch-group + :length 1 + :duration #x5 + :linger-duration #x1c2 + :flags (sp-group-flag use-local-clock) + :name "group-normal-fish" + :launcher + (new 'static 'inline-array sparticle-group-item 1 (sp-item 2001)) + :bounds (new 'static 'sphere :w 8192.0) + ) + ) -(set! - (-> *part-id-table* 2001) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 15 - (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) - (sp-rnd-flt spt-num 0.1 1.0 1.0) - (sp-rnd-flt spt-x (meters -0.4) (meters 0.5) 1.0) - (sp-rnd-flt spt-z -1024.0 2048.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.1) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 255.0) - (sp-flt spt-g 255.0) - (sp-flt spt-b 255.0) - (sp-rnd-flt spt-a 32.0 32.0 1.0) - (sp-flt spt-fade-a -0.42666668) - (sp-flt spt-accel-y 1.3653333) - (sp-int spt-timer 150) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2001) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) + (sp-rnd-flt spt-num 0.1 1.0 1.0) + (sp-rnd-flt spt-x (meters -0.4) (meters 0.5) 1.0) + (sp-rnd-flt spt-z -1024.0 2048.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.1) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 255.0) + (sp-rnd-flt spt-a 32.0 32.0 1.0) + (sp-flt spt-fade-a -0.42666668) + (sp-flt spt-accel-y 1.3653333) + (sp-int spt-timer 150) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-end) + ) + ) + ) -(set! - (-> *part-group-id-table* 179) - (new 'static 'sparticle-launch-group - :length 2 - :duration #x5 - :linger-duration #x4b0 - :flags (sp-group-flag use-local-clock) - :name "group-fish-collect" - :launcher - (new 'static 'inline-array sparticle-group-item 2 - (sp-item 830) - (sp-item 831) - ) - :bounds (new 'static 'sphere :w 32768.0) - ) - ) +(set! (-> *part-group-id-table* 179) + (new 'static 'sparticle-launch-group + :length 2 + :duration #x5 + :linger-duration #x4b0 + :flags (sp-group-flag use-local-clock) + :name "group-fish-collect" + :launcher + (new 'static 'inline-array sparticle-group-item 2 (sp-item 830) (sp-item 831)) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) -(set! - (-> *part-id-table* 831) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 11 - (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) - (sp-flt spt-num 2.0) - (sp-rnd-flt spt-scale-x (meters 5.0) (meters 1.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 32.0 64.0 1.0) - (sp-rnd-flt spt-g 128.0 128.0 1.0) - (sp-flt spt-a 16.0) - (sp-flt spt-fade-a -1.6) - (sp-int spt-timer 25) - (sp-cpuinfo-flags bit2 bit3) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 831) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 11 + (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) + (sp-flt spt-num 2.0) + (sp-rnd-flt spt-scale-x (meters 5.0) (meters 1.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 32.0 64.0 1.0) + (sp-rnd-flt spt-g 128.0 128.0 1.0) + (sp-flt spt-a 16.0) + (sp-flt spt-fade-a -1.6) + (sp-int spt-timer 25) + (sp-cpuinfo-flags bit2 bit3) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 830) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) - (sp-flt spt-num 16.0) - (sp-rnd-flt spt-scale-x (meters 2.0) (meters 2.0) 1.0) - (sp-int spt-rot-x 4) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-scale-y (meters 0.25) (meters 0.5) 1.0) - (sp-rnd-flt spt-r 32.0 64.0 1.0) - (sp-rnd-flt spt-g 128.0 128.0 1.0) - (sp-flt spt-b 0.0) - (sp-flt spt-a 0.0) - (sp-flt spt-scalevel-x (meters 0.009765625)) - (sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0) - (sp-flt spt-scalevel-y (meters 0.009765625)) - (sp-flt spt-fade-a 1.2) - (sp-int spt-timer 150) - (sp-cpuinfo-flags bit2 bit3) - (sp-func spt-func 'sparticle-track-root) - (sp-int-plain-rnd spt-next-time 10 9 1) - (sp-launcher-by-id spt-next-launcher 832) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 830) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) + (sp-flt spt-num 16.0) + (sp-rnd-flt spt-scale-x (meters 2.0) (meters 2.0) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.25) (meters 0.5) 1.0) + (sp-rnd-flt spt-r 32.0 64.0 1.0) + (sp-rnd-flt spt-g 128.0 128.0 1.0) + (sp-flt spt-b 0.0) + (sp-flt spt-a 0.0) + (sp-flt spt-scalevel-x (meters 0.009765625)) + (sp-rnd-flt spt-rotvel-z (degrees -0.3) (degrees 0.6) 1.0) + (sp-flt spt-scalevel-y (meters 0.009765625)) + (sp-flt spt-fade-a 1.2) + (sp-int spt-timer 150) + (sp-cpuinfo-flags bit2 bit3) + (sp-func spt-func 'sparticle-track-root) + (sp-int-plain-rnd spt-next-time 10 9 1) + (sp-launcher-by-id spt-next-launcher 832) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 832) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.8) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 832) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.8) (sp-end)) + ) + ) (deftype fisher-params (structure) ((timeout seconds :offset-assert 0) @@ -237,559 +202,558 @@ (deadly-percent float :offset-assert 48) (powerup-percent float :offset-assert 52) ) - :allow-misaligned :method-count-assert 9 + :allow-misaligned + :method-count-assert 9 :size-assert #x38 :flag-assert #x900000038 ) -(define - *fisher-params* - (new - 'static - 'boxed-array - :type (inline-array fisher-params) :length 6 :allocated-length 6 - (new 'static 'inline-array fisher-params 16 - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 0.5) - :vel 0.6 - :swing-max (seconds 0.1) - :period (seconds 0.5) - :fish-vel 1.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 10) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.6) - :fish-vel 1.5 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 8) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.6) - :fish-vel 1.6 - :bad-percent 0.5 - :powerup-percent 0.25 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 15) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.45) - :fish-vel 1.7 - :bad-percent 0.1 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 15) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.4) - :fish-vel 1.8 - :bad-percent 0.1 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 15) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.5) - :fish-vel 1.9 - :bad-percent 0.9 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 2000) - :vel 0.8 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.35) - :fish-vel 2.0 - :bad-percent 0.1 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params) - ) - (new 'static 'inline-array fisher-params 16 - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 1) - :vel 0.6 - :swing-max (seconds 0.1) - :period (seconds 0.5) - :fish-vel 1.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 11) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.7) - :fish-vel 1.4 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 9) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.7) - :fish-vel 1.5 - :bad-percent 0.4 - :powerup-percent 0.25 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 18) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period #x9e - :fish-vel 1.6 - :bad-percent 0.083 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 18) - :vel 2.41 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.48) - :fish-vel 1.7 - :bad-percent 0.083 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 14) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.58) - :fish-vel 1.8 - :bad-percent 0.8 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 2000) - :vel 0.8 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.43) - :fish-vel 1.8 - :bad-percent 0.083 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params) - ) - (new 'static 'inline-array fisher-params 16 - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 1.5) - :vel 0.6 - :swing-max (seconds 0.1) - :period (seconds 0.5) - :fish-vel 1.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 12) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.8) - :fish-vel 1.4 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 10) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.8) - :fish-vel 1.5 - :bad-percent 0.3 - :powerup-percent 0.25 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 21) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.61) - :fish-vel 1.5 - :bad-percent 0.066 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 21) - :vel 1.83 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period #xa8 - :fish-vel 1.6 - :bad-percent 0.066 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 14) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.66) - :fish-vel 1.6 - :bad-percent 0.6 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 2000) - :vel 0.8 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.5133333) - :fish-vel 1.7 - :bad-percent 0.066 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params) - ) - (new 'static 'inline-array fisher-params 16 - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 2) - :vel 0.6 - :swing-max (seconds 0.1) - :period (seconds 0.5) - :fish-vel 1.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 13) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.9) - :fish-vel 1.3 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 11) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.9) - :fish-vel 1.4 - :bad-percent 0.2 - :powerup-percent 0.25 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 23) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.7) - :fish-vel 1.4 - :bad-percent 0.05 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 23) - :vel 1.25 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.65) - :fish-vel 1.5 - :bad-percent 0.05 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 13) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.75) - :fish-vel 1.5 - :bad-percent 0.5 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 2000) - :vel 0.8 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.6) - :fish-vel 1.6 - :bad-percent 0.05 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params) - ) - (new 'static 'inline-array fisher-params 26 - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 2.5) - :vel 0.6 - :swing-max (seconds 0.1) - :period (seconds 0.5) - :fish-vel 1.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 13) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.9) - :fish-vel 1.3 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 11) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.9) - :fish-vel 1.3 - :bad-percent 0.2 - :powerup-percent 0.25 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-min (seconds 333.33) - :swing-max (seconds 0.33333334) - :period (seconds 0.5) - :fish-vel 1.3 - :powerup-percent 0.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-min (seconds 333.33) - :period (seconds 0.5) - :fish-vel 1.3 - :powerup-percent 0.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-min (seconds 333.33) - :swing-max (seconds 0.33333334) - :period (seconds 0.5) - :fish-vel 1.3 - :powerup-percent 0.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-min (seconds 333.33) - :period (seconds 0.5) - :fish-vel 1.3 - :powerup-percent 0.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 11) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.9) - :fish-vel 1.3 - :bad-percent 0.05 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-min (seconds 333.33) - :swing-max (seconds 0.33333334) - :period (seconds 0.5) - :fish-vel 1.3 - :powerup-percent 0.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-min (seconds 333.33) - :period (seconds 0.5) - :fish-vel 1.3 - :powerup-percent 0.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-min (seconds 333.33) - :swing-max (seconds 0.33333334) - :period (seconds 0.5) - :fish-vel 1.3 - :powerup-percent 0.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 2000) - :vel 0.7 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.9) - :fish-vel 1.3 - :bad-percent 0.05 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params) - ) - (new 'static 'inline-array fisher-params 22 - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 3) - :vel 0.6 - :swing-max (seconds 0.1) - :period (seconds 0.5) - :fish-vel 1.5 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 10) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.6) - :fish-vel 2.0 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 5) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.6) - :fish-vel 2.0 - :bad-percent 0.75 - :powerup-percent 0.25 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 15) - :vel 0.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.3) - :fish-vel 2.0 - :bad-percent 0.1 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 15) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.4) - :fish-vel 2.0 - :bad-percent 0.1 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 15) - :vel 3.0 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.4) - :fish-vel 2.0 - :bad-percent 0.9 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 30) - :vel 1.4 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.25) - :fish-vel 2.0 - :bad-percent 0.1 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 30) - :vel 1.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.15) - :fish-vel 2.2 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 30) - :vel 1.4 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.25) - :fish-vel 2.0 - :bad-percent 0.2 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params - :timeout (seconds 31535998.0) - :vel 1.6 - :swing-min (seconds 0.5) - :swing-max (seconds 2) - :period (seconds 0.15) - :fish-vel 2.2 - :bad-percent 0.1 - :powerup-percent 0.1 - ) - (new 'static 'fisher-params :timeout (seconds 2)) - (new 'static 'fisher-params) - ) - ) - ) +(define *fisher-params* (new + 'static + 'boxed-array + :type (inline-array fisher-params) :length 6 :allocated-length 6 + (new 'static 'inline-array fisher-params 16 + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 0.5) + :vel 0.6 + :swing-max (seconds 0.1) + :period (seconds 0.5) + :fish-vel 1.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 10) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.6) + :fish-vel 1.5 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 8) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.6) + :fish-vel 1.6 + :bad-percent 0.5 + :powerup-percent 0.25 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 15) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.45) + :fish-vel 1.7 + :bad-percent 0.1 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 15) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.4) + :fish-vel 1.8 + :bad-percent 0.1 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 15) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.5) + :fish-vel 1.9 + :bad-percent 0.9 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 2000) + :vel 0.8 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.35) + :fish-vel 2.0 + :bad-percent 0.1 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params) + ) + (new 'static 'inline-array fisher-params 16 + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 1) + :vel 0.6 + :swing-max (seconds 0.1) + :period (seconds 0.5) + :fish-vel 1.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 11) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.7) + :fish-vel 1.4 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 9) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.7) + :fish-vel 1.5 + :bad-percent 0.4 + :powerup-percent 0.25 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 18) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period #x9e + :fish-vel 1.6 + :bad-percent 0.083 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 18) + :vel 2.41 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.48) + :fish-vel 1.7 + :bad-percent 0.083 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 14) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.58) + :fish-vel 1.8 + :bad-percent 0.8 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 2000) + :vel 0.8 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.43) + :fish-vel 1.8 + :bad-percent 0.083 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params) + ) + (new 'static 'inline-array fisher-params 16 + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 1.5) + :vel 0.6 + :swing-max (seconds 0.1) + :period (seconds 0.5) + :fish-vel 1.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 12) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.8) + :fish-vel 1.4 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 10) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.8) + :fish-vel 1.5 + :bad-percent 0.3 + :powerup-percent 0.25 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 21) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.61) + :fish-vel 1.5 + :bad-percent 0.066 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 21) + :vel 1.83 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period #xa8 + :fish-vel 1.6 + :bad-percent 0.066 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 14) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.66) + :fish-vel 1.6 + :bad-percent 0.6 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 2000) + :vel 0.8 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.5133333) + :fish-vel 1.7 + :bad-percent 0.066 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params) + ) + (new 'static 'inline-array fisher-params 16 + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 2) + :vel 0.6 + :swing-max (seconds 0.1) + :period (seconds 0.5) + :fish-vel 1.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 13) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.9) + :fish-vel 1.3 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 11) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.9) + :fish-vel 1.4 + :bad-percent 0.2 + :powerup-percent 0.25 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 23) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.7) + :fish-vel 1.4 + :bad-percent 0.05 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 23) + :vel 1.25 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.65) + :fish-vel 1.5 + :bad-percent 0.05 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 13) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.75) + :fish-vel 1.5 + :bad-percent 0.5 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 2000) + :vel 0.8 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.6) + :fish-vel 1.6 + :bad-percent 0.05 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params) + ) + (new 'static 'inline-array fisher-params 26 + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 2.5) + :vel 0.6 + :swing-max (seconds 0.1) + :period (seconds 0.5) + :fish-vel 1.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 13) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.9) + :fish-vel 1.3 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 11) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.9) + :fish-vel 1.3 + :bad-percent 0.2 + :powerup-percent 0.25 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-min (seconds 333.33) + :swing-max (seconds 0.33333334) + :period (seconds 0.5) + :fish-vel 1.3 + :powerup-percent 0.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-min (seconds 333.33) + :period (seconds 0.5) + :fish-vel 1.3 + :powerup-percent 0.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-min (seconds 333.33) + :swing-max (seconds 0.33333334) + :period (seconds 0.5) + :fish-vel 1.3 + :powerup-percent 0.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-min (seconds 333.33) + :period (seconds 0.5) + :fish-vel 1.3 + :powerup-percent 0.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 11) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.9) + :fish-vel 1.3 + :bad-percent 0.05 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-min (seconds 333.33) + :swing-max (seconds 0.33333334) + :period (seconds 0.5) + :fish-vel 1.3 + :powerup-percent 0.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-min (seconds 333.33) + :period (seconds 0.5) + :fish-vel 1.3 + :powerup-percent 0.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-min (seconds 333.33) + :swing-max (seconds 0.33333334) + :period (seconds 0.5) + :fish-vel 1.3 + :powerup-percent 0.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 2000) + :vel 0.7 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.9) + :fish-vel 1.3 + :bad-percent 0.05 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params) + ) + (new 'static 'inline-array fisher-params 22 + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 3) + :vel 0.6 + :swing-max (seconds 0.1) + :period (seconds 0.5) + :fish-vel 1.5 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 10) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.6) + :fish-vel 2.0 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 5) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.6) + :fish-vel 2.0 + :bad-percent 0.75 + :powerup-percent 0.25 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 15) + :vel 0.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.3) + :fish-vel 2.0 + :bad-percent 0.1 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 15) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.4) + :fish-vel 2.0 + :bad-percent 0.1 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 15) + :vel 3.0 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.4) + :fish-vel 2.0 + :bad-percent 0.9 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 30) + :vel 1.4 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.25) + :fish-vel 2.0 + :bad-percent 0.1 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 30) + :vel 1.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.15) + :fish-vel 2.2 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 30) + :vel 1.4 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.25) + :fish-vel 2.0 + :bad-percent 0.2 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params + :timeout (seconds 31535998.0) + :vel 1.6 + :swing-min (seconds 0.5) + :swing-max (seconds 2) + :period (seconds 0.15) + :fish-vel 2.2 + :bad-percent 0.1 + :powerup-percent 0.1 + ) + (new 'static 'fisher-params :timeout (seconds 2)) + (new 'static 'fisher-params) + ) + ) + ) (deftype fisher (process-taskable) ((paddle-end vector 2 :inline :offset-assert 384) @@ -820,6 +784,10 @@ :method-count-assert 53 :size-assert #x260 :flag-assert #x3501f00260 + (:states + fisher-done + fisher-playing + ) ) @@ -835,6 +803,11 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + fisher-fish-caught + fisher-fish-die + fisher-fish-fall + ) ) @@ -881,100 +854,84 @@ (defmethod dummy-52 fisher ((obj fisher)) (let ((v1-1 (-> obj draw shadow-ctrl))) - (when v1-1 - (let ((f0-0 (-> obj root-override trans y))) - (let ((a0-2 v1-1)) - (set! (-> a0-2 settings bot-plane w) (- (+ -1024.0 f0-0))) + (when v1-1 + (let ((f0-0 (-> obj root-override trans y))) + (let ((a0-2 v1-1)) + (set! (-> a0-2 settings bot-plane w) (- (+ -1024.0 f0-0))) + ) + 0 + (let ((a0-4 v1-1)) + (set! (-> a0-4 settings top-plane w) (- (+ 4096.0 f0-0))) + ) + ) + 0 + (set! (-> v1-1 settings flags) (logand -9 (-> v1-1 settings flags))) ) - 0 - (let ((a0-4 v1-1)) - (set! (-> a0-4 settings top-plane w) (- (+ 4096.0 f0-0))) - ) - ) - 0 - (set! (-> v1-1 settings flags) (logand -9 (-> v1-1 settings flags))) ) - ) (none) ) (defmethod draw-npc-shadow fisher ((obj fisher)) (-> obj draw shadow-ctrl) (cond - ((and - (-> obj draw shadow) - (zero? (-> obj draw cur-lod)) - (logtest? (-> obj draw status) 8) + ((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) (draw-status drwf03))) + (let ((v1-9 (-> obj draw shadow-ctrl))) + (set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags))) + ) + 0 + (dummy-14 (-> obj draw shadow-ctrl)) ) - (let ((v1-9 (-> obj draw shadow-ctrl))) - (set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags))) - ) - 0 - (dummy-14 (-> obj draw shadow-ctrl)) + (else + (let ((v1-14 (-> obj draw shadow-ctrl))) + (logior! (-> v1-14 settings flags) 32) + ) + 0 + ) ) - (else - (let ((v1-14 (-> obj draw shadow-ctrl))) - (logior! (-> v1-14 settings flags) 32) - ) - 0 - ) - ) (none) ) (defbehavior fisher-fish-water fisher-fish ((arg0 vector) (arg1 float)) (let ((gp-0 (new 'stack-no-clear 'vector))) - (set! (-> gp-0 quad) (-> arg0 quad)) - (set! (-> gp-0 y) (ocean-get-height gp-0)) - (set! (-> *part-id-table* 118 init-specs 4 initial-valuef) (+ 24576.0 arg1)) - (set! (-> *part-id-table* 118 init-specs 19 initial-valuef) (+ 49152.0 arg1)) - (set! (-> *part-id-table* 118 init-specs 1 initial-valuef) 0.05) - (set! (-> *part-id-table* 118 init-specs 2 initial-valuef) 0.0) - (set! (-> *part-id-table* 118 init-specs 13 initial-valuef) 0.35555556) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 118) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + (set! (-> gp-0 quad) (-> arg0 quad)) + (set! (-> gp-0 y) (ocean-get-height gp-0)) + (set! (-> *part-id-table* 118 init-specs 4 initial-valuef) (+ 24576.0 arg1)) + (set! (-> *part-id-table* 118 init-specs 19 initial-valuef) (+ 49152.0 arg1)) + (set! (-> *part-id-table* 118 init-specs 1 initial-valuef) 0.05) + (set! (-> *part-id-table* 118 init-specs 2 initial-valuef) 0.0) + (set! (-> *part-id-table* 118 init-specs 13 initial-valuef) 0.35555556) + (sp-launch-particles-var + *sp-particle-system-3d* + (-> *part-id-table* 118) + gp-0 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) ) - ) 0 (none) ) (defbehavior fisher-fish-move fisher-fish () (+! (-> self pos) (* (-> self vel) (-> *display* seconds-per-frame))) - (eval-path-curve-div! - (-> (the-as fisher (-> self parent 0)) path) - (-> self root trans) - (-> self pos) - 'interp - ) - (TODO-RENAME-12 - (-> (the-as fisher (-> self parent 0)) path) - (-> self dir) - (-> self pos) - ) + (eval-path-curve-div! (-> (the-as fisher (-> self parent 0)) path) (-> self root trans) (-> self pos) 'interp) + (TODO-RENAME-12 (-> (the-as fisher (-> self parent 0)) path) (-> self dir) (-> self pos)) (seek-toward-heading-vec! (-> self root) (-> self dir) 291271.12 60) (let ((f30-1 (+ 16384.0 (y-angle (-> self root)))) (gp-0 (new-stack-vector0)) ) - (set! (-> gp-0 x) (sin f30-1)) - (set! (-> gp-0 y) 0.0) - (set! (-> gp-0 z) (cos f30-1)) - (set! (-> gp-0 w) 1.0) - (vector-normalize! - gp-0 - (* 2.0 (+ -0.5 (-> self offset)) (-> *FISHER-bank* width)) + (set! (-> gp-0 x) (sin f30-1)) + (set! (-> gp-0 y) 0.0) + (set! (-> gp-0 z) (cos f30-1)) + (set! (-> gp-0 w) 1.0) + (vector-normalize! gp-0 (* 2.0 (+ -0.5 (-> self offset)) (-> *FISHER-bank* width))) + (vector+! (-> self root trans) (-> self root trans) gp-0) ) - (vector+! (-> self root trans) (-> self root trans) gp-0) - ) (fisher-fish-water (-> self root trans) (y-angle (-> self root))) (if (nonzero? (-> self part)) - (spawn (-> self part) (-> self root trans)) - ) + (spawn (-> self part) (-> self root trans)) + ) 0 (none) ) @@ -982,92 +939,60 @@ (defstate fisher-fish-fall (fisher-fish) :code (behavior () - (set-heading-vec! - (-> self root) - (TODO-RENAME-12 - (-> (the-as fisher (-> self parent 0)) path) - (-> self dir) - (-> self pos) - ) + (set-heading-vec! + (-> self root) + (TODO-RENAME-12 (-> (the-as fisher (-> self parent 0)) path) (-> self dir) (-> self pos)) + ) + (while #t + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! (-> a0-2 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-2 param 1) 1.0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! + a0-2 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (fisher-fish-move) + (if (< (vector-vector-xz-distance (-> self root trans) (-> (the-as fisher (-> self parent 0)) paddle-pos)) + (+ (-> *FISHER-bank* net-radius) (* (-> self size) (-> self root scale x))) + ) + (go fisher-fish-caught) + ) + (if (or + (>= (-> self pos) (the float (+ (-> (the-as fisher (-> self parent 0)) path curve num-cverts) -1))) + (>= (-> self pos) 7.2) + ) + (go fisher-fish-die) + ) + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (none) ) - (while #t - (let ((a0-2 (-> self skel root-channel 0))) - (set! (-> a0-2 frame-group) (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) - (set! - (-> a0-2 param 0) - (the float (+ (-> (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-2 param 1) 1.0) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! a0-2 (if (> (-> self skel active-channels) 0) - (-> - self - skel - root-channel - 0 - frame-group - ) - ) - num-func-seek! - ) - ) - (until (ja-done? 0) - (fisher-fish-move) - (if - (< - (vector-vector-xz-distance - (-> self root trans) - (-> (the-as fisher (-> self parent 0)) paddle-pos) - ) - (+ - (-> *FISHER-bank* net-radius) - (* (-> self size) (-> self root scale x)) - ) - ) - (go fisher-fish-caught) - ) - (if - (or - (>= - (-> self pos) - (the - float - (+ (-> (the-as fisher (-> self parent 0)) path curve num-cverts) -1) - ) - ) - (>= (-> self pos) 7.2) - ) - (go fisher-fish-die) - ) - (suspend) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 param 0) - (the float (+ (-> a0-4 frame-group data 0 length) -1)) - ) - (set! (-> a0-4 param 1) 1.0) - (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (none) - ) :post (the-as (function none :behavior fisher-fish) ja-post) ) @@ -1075,287 +1000,146 @@ (defstate fisher-fish-caught (fisher-fish) :code (behavior () - (case (-> self mode) - (('deadly 'bad) - (sound-play-by-name - (static-sound-name "caught-eel") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t + (case (-> self mode) + (('deadly 'bad) + (sound-play-by-name (static-sound-name "caught-eel") (new-sound-id) 1024 0 0 1 #t) + (ambient-hint-spawn "sksp0a42" (-> self root trans) *entity-pool* 'ambient) + (send-event (ppointer->process (-> self parent)) 'deadly) ) - (ambient-hint-spawn - "sksp0a42" - (-> self root trans) - *entity-pool* - 'ambient - ) - (send-event (ppointer->process (-> self parent)) 'deadly) - ) - (('powerup) - (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-1 - (let ((t9-5 (method-of-type part-tracker activate))) - (t9-5 - (the-as part-tracker gp-1) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) + (('powerup) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-5 (method-of-type part-tracker activate))) + (t9-5 (the-as part-tracker gp-1) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process gp-1 part-tracker-init (-> *part-group-id-table* 179) -1 #f #f #f (-> self root trans)) + (-> gp-1 ppointer) + ) ) - ) - (run-now-in-process - gp-1 - part-tracker-init - (-> *part-group-id-table* 179) - -1 - #f - #f - #f - (-> self root trans) - ) - (-> gp-1 ppointer) + (sound-play-by-name (static-sound-name "get-big-fish") (new-sound-id) 1024 0 0 1 #t) + (send-event (ppointer->process (-> self parent)) 'fisher-fish-caught 5) ) - ) - (sound-play-by-name - (static-sound-name "get-big-fish") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (send-event (ppointer->process (-> self parent)) 'fisher-fish-caught 5) - ) - (else - (let ((gp-3 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-3 - (let ((t9-11 (method-of-type part-tracker activate))) - (t9-11 - (the-as part-tracker gp-3) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) - ) + (else + (let ((gp-3 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-3 + (let ((t9-11 (method-of-type part-tracker activate))) + (t9-11 (the-as part-tracker gp-3) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process gp-3 part-tracker-init (-> *part-group-id-table* 179) -1 #f #f #f (-> self root trans)) + (-> gp-3 ppointer) + ) + ) + (sound-play-by-name (static-sound-name "get-small-fish") (new-sound-id) 1024 0 0 1 #t) + (send-event (ppointer->process (-> self parent)) 'fisher-fish-caught 1) ) - (run-now-in-process - gp-3 - part-tracker-init - (-> *part-group-id-table* 179) - -1 - #f - #f - #f - (-> self root trans) + ) + (set! (-> self vel) (* 0.25 (-> self vel))) + (while (< 0.1 (-> self root scale x)) + (set! (-> self offset) (-> (the-as fisher (-> self parent 0)) paddle)) + (fisher-fish-move) + (vector-float*! (-> self root scale) (-> self root scale) 0.93) + (ja-post) + (suspend) + (let ((a0-22 (-> self skel root-channel 0))) + (set! (-> a0-22 param 0) 1.0) + (joint-control-channel-group-eval! a0-22 (the-as art-joint-anim #f) num-func-loop!) ) - (-> gp-3 ppointer) - ) ) - (sound-play-by-name - (static-sound-name "get-small-fish") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (send-event (ppointer->process (-> self parent)) 'fisher-fish-caught 1) - ) + (none) ) - (set! (-> self vel) (* 0.25 (-> self vel))) - (while (< 0.1 (-> self root scale x)) - (set! (-> self offset) (-> (the-as fisher (-> self parent 0)) paddle)) - (fisher-fish-move) - (vector-float*! (-> self root scale) (-> self root scale) 0.93) - (ja-post) - (suspend) - (let ((a0-22 (-> self skel root-channel 0))) - (set! (-> a0-22 param 0) 1.0) - (joint-control-channel-group-eval! - a0-22 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) - (none) - ) ) (defstate fisher-fish-die (fisher-fish) :code (behavior () - (case (-> self mode) - (('deadly 'bad) - ) - (('powerup) - (level-hint-spawn - (game-text-id sidekick-hint-fish-powerup) - "sksp0b42" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (let* ((v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-3 (the-as number (logior #x3f800000 v1-2))) - (f0-2 (+ -1.0 (the-as float v1-3))) - ) - (if (< 0.5 f0-2) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA04" - #t - (-> self root trans) - ) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA05" - #t - (-> self root trans) - ) + (case (-> self mode) + (('deadly 'bad) ) - ) - (send-event (ppointer->process (-> self parent)) 'fisher-fish-die 5) - ) - (else - (let* ((v1-21 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-22 (the-as number (logior #x3f800000 v1-21))) - (f0-5 (+ -1.0 (the-as float v1-22))) - ) - (cond - ((and - (< 0.8333 f0-5) - (< - (-> (the-as fisher (-> self parent 0)) paddle-pos z) - (-> self root trans z) - ) + (('powerup) + (level-hint-spawn + (game-text-id sidekick-hint-fish-powerup) + "sksp0b42" + (the-as entity #f) + *entity-pool* + (game-task none) ) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA01" - #t - (-> self root trans) + (let* ((v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-3 (the-as number (logior #x3f800000 v1-2))) + (f0-2 (+ -1.0 (the-as float v1-3))) + ) + (if (< 0.5 f0-2) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA04" #t (-> self root trans)) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA05" #t (-> self root trans)) + ) ) - ) - ((< 0.8333 f0-5) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA02" - #t - (-> self root trans) - ) - ) - ((and - (< 0.6666 f0-5) - (< - (-> (the-as fisher (-> self parent 0)) paddle-pos z) - (-> self root trans z) - ) - ) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA1A" - #t - (-> self root trans) - ) - ) - ((< 0.6666 f0-5) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA2A" - #t - (-> self root trans) - ) - ) - ((< 0.5 f0-5) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA06" - #t - (-> self root trans) - ) - ) - ((< 0.3333 f0-5) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA08" - #t - (-> self root trans) - ) - ) - ((< 0.1666 f0-5) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA09" - #t - (-> self root trans) - ) - ) - ((> (-> (the-as fisher (-> self parent 0)) missed) 0) - (play-ambient - (-> (the-as fisher (-> self parent 0)) ambient) - "FIS-TA10" - #t - (-> self root trans) - ) - ) + (send-event (ppointer->process (-> self parent)) 'fisher-fish-die 5) ) + (else + (let* ((v1-21 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-22 (the-as number (logior #x3f800000 v1-21))) + (f0-5 (+ -1.0 (the-as float v1-22))) + ) + (cond + ((and (< 0.8333 f0-5) (< (-> (the-as fisher (-> self parent 0)) paddle-pos z) (-> self root trans z))) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA01" #t (-> self root trans)) + ) + ((< 0.8333 f0-5) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA02" #t (-> self root trans)) + ) + ((and (< 0.6666 f0-5) (< (-> (the-as fisher (-> self parent 0)) paddle-pos z) (-> self root trans z))) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA1A" #t (-> self root trans)) + ) + ((< 0.6666 f0-5) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA2A" #t (-> self root trans)) + ) + ((< 0.5 f0-5) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA06" #t (-> self root trans)) + ) + ((< 0.3333 f0-5) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA08" #t (-> self root trans)) + ) + ((< 0.1666 f0-5) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA09" #t (-> self root trans)) + ) + ((> (-> (the-as fisher (-> self parent 0)) missed) 0) + (play-ambient (-> (the-as fisher (-> self parent 0)) ambient) "FIS-TA10" #t (-> self root trans)) + ) + ) + ) + (send-event (ppointer->process (-> self parent)) 'fisher-fish-die 1) + ) ) - (send-event (ppointer->process (-> self parent)) 'fisher-fish-die 1) - ) + (none) ) - (none) - ) ) -(defbehavior - fisher-fish-init-by-other fisher-fish - ((arg0 symbol) (arg1 float) (arg2 float)) +(defbehavior fisher-fish-init-by-other fisher-fish ((arg0 symbol) (arg1 float) (arg2 float)) (set! (-> self mode) arg0) (logclear! (-> self mask) (process-mask actor-pause)) (set! (-> self root) (new 'process 'trsqv)) (set! (-> self size) 3276.8) - (initialize-skeleton self (cond - ((or (= arg0 'deadly) (= arg0 'bad)) - (set! (-> self size) 409.6) - (set-vector! (-> self root scale) 0.9 0.9 0.7 1.0) - (set! - (-> self part) - (create-launch-control - (-> *part-group-id-table* 177) - self - ) - ) - *catch-fishc-sg* - ) - ((= arg0 'powerup) - (set-vector! (-> self root scale) 0.4 0.4 0.4 1.0) - (set! - (-> self part) - (create-launch-control - (-> *part-group-id-table* 178) - self - ) - ) - *catch-fishb-sg* - ) - (else - (set-vector! (-> self root scale) 0.3 0.3 0.3 1.0) - (set! - (-> self part) - (create-launch-control - (-> *part-group-id-table* 178) - self - ) - ) - *catch-fisha-sg* - ) - ) - '() - ) + (initialize-skeleton + self + (cond + ((or (= arg0 'deadly) (= arg0 'bad)) + (set! (-> self size) 409.6) + (set-vector! (-> self root scale) 0.9 0.9 0.7 1.0) + (set! (-> self part) (create-launch-control (-> *part-group-id-table* 177) self)) + *catch-fishc-sg* + ) + ((= arg0 'powerup) + (set-vector! (-> self root scale) 0.4 0.4 0.4 1.0) + (set! (-> self part) (create-launch-control (-> *part-group-id-table* 178) self)) + *catch-fishb-sg* + ) + (else + (set-vector! (-> self root scale) 0.3 0.3 0.3 1.0) + (set! (-> self part) (create-launch-control (-> *part-group-id-table* 178) self)) + *catch-fisha-sg* + ) + ) + '() + ) (set! (-> self pos) 1.0) (set! (-> self offset) arg1) (set! (-> self vel) arg2) @@ -1368,518 +1152,356 @@ ) (defbehavior fisher-draw-display fisher ((arg0 fisher)) - (let - ((s5-0 - (new - 'stack - 'font-context - *font-default-matrix* - 435 - 10 - 0.0 - (font-color orange-red) - (font-flags shadow kerning) + (let ((s5-0 (new + 'stack + 'font-context + *font-default-matrix* + 435 + 10 + 0.0 + (font-color orange-red) + (font-flags shadow kerning) + ) + ) + ) + (let ((v1-1 s5-0)) + (set! (-> v1-1 width) (the float 200)) + ) + (let ((v1-2 s5-0)) + (set! (-> v1-2 height) (the float 30)) + ) + (let ((v1-3 s5-0)) + (set! (-> v1-3 scale) 0.7) + ) + (set! (-> s5-0 flags) (font-flags shadow kerning right large)) + (print-game-text (lookup-text! *common-text* (game-text-id caught) #f) s5-0 #f 128 22) + (set! (-> s5-0 origin x) 488.0) + (let ((s4-1 print-game-text)) + (format (clear *temp-string*) "~3D" (-> arg0 caught)) + (s4-1 *temp-string* s5-0 #f 128 22) + ) + (set! (-> s5-0 origin x) 435.0) + (set! (-> s5-0 origin y) 25.0) + (print-game-text (lookup-text! *common-text* (game-text-id missed) #f) s5-0 #f 128 22) + (set! (-> s5-0 origin x) 488.0) + (let ((s4-3 print-game-text)) + (format (clear *temp-string*) "~3D" (-> arg0 missed)) + (s4-3 *temp-string* s5-0 #f 128 22) ) - ) ) - (let ((v1-1 s5-0)) - (set! (-> v1-1 width) (the float 200)) - ) - (let ((v1-2 s5-0)) - (set! (-> v1-2 height) (the float 30)) - ) - (let ((v1-3 s5-0)) - (set! (-> v1-3 scale) 0.7) - ) - (set! (-> s5-0 flags) (font-flags shadow kerning right large)) - (print-game-text - (lookup-text! *common-text* (game-text-id caught) #f) - s5-0 - #f - 128 - 22 - ) - (set! (-> s5-0 origin x) 488.0) - (let ((s4-1 print-game-text)) - (format (clear *temp-string*) "~3D" (-> arg0 caught)) - (s4-1 *temp-string* s5-0 #f 128 22) - ) - (set! (-> s5-0 origin x) 435.0) - (set! (-> s5-0 origin y) 25.0) - (print-game-text - (lookup-text! *common-text* (game-text-id missed) #f) - s5-0 - #f - 128 - 22 - ) - (set! (-> s5-0 origin x) 488.0) - (let ((s4-3 print-game-text)) - (format (clear *temp-string*) "~3D" (-> arg0 missed)) - (s4-3 *temp-string* s5-0 #f 128 22) - ) - ) (none) ) (defmethod play-anim! fisher ((obj fisher) (arg0 symbol)) (if arg0 - (set! (-> obj training) #f) - ) - (case (current-status (-> obj tasks)) - (((task-status need-hint) (task-status need-introduction)) + (set! (-> obj training) #f) + ) + (case (current-status (-> obj tasks)) + (((task-status need-hint) (task-status need-introduction)) (when arg0 - (set! (-> obj blend-on-exit) #t) - (close-status! (-> obj tasks) (task-status need-introduction)) - (set! (-> obj training) #t) - ) + (set! (-> obj blend-on-exit) #t) + (close-status! (-> obj tasks) (task-status need-introduction)) + (set! (-> obj training) #t) + ) (new 'static 'spool-anim - :name "fisher-introduction" - :index 8 - :parts 9 - :command-list - '( - (0 - want-levels - village1 - jungle - ) - (0 - alive - "jungle-part-1" + :name "fisher-introduction" + :index 8 + :parts 9 + :command-list + '((0 want-levels village1 jungle) + (0 alive "jungle-part-1") + (130 blackout 10) + (130 display-level village1 movie) + (130 want-force-vis village1 #t) + (134 blackout 0) + (229 blackout 10) + (232 blackout 0) + (235 display-level village1 #f) + (235 want-force-vis village1 #f) + (419 blackout 10) + (422 blackout 0) + (518 blackout 10) + (521 blackout 0) + (585 blackout 10) + (588 blackout 0) + (668 blackout 10) + (671 blackout 0) + (848 display-level village1 movie) + (848 want-force-vis village1 #t) + (849 alive "fishermans-boat-2") + (878 blackout 10) + (881 blackout 0) + (958 blackout 10) + (961 blackout 0) + (965 dead "fishermans-boat-2") + (965 display-level village1 display) + (965 want-force-vis village1 #f) ) - ((the binteger 130) - blackout - (the binteger 10) - ) - ((the binteger 130) - display-level - village1 - movie - ) - ((the binteger 130) - want-force-vis - village1 - #t - ) - ((the binteger 134) - blackout - 0 - ) - ((the binteger 229) - blackout - (the binteger 10) - ) - ((the binteger 232) - blackout - 0 - ) - ((the binteger 235) - display-level - village1 - #f - ) - ((the binteger 235) - want-force-vis - village1 - #f - ) - ((the binteger 419) - blackout - (the binteger 10) - ) - ((the binteger 422) - blackout - 0 - ) - ((the binteger 518) - blackout - (the binteger 10) - ) - ((the binteger 521) - blackout - 0 - ) - ((the binteger 585) - blackout - (the binteger 10) - ) - ((the binteger 588) - blackout - 0 - ) - ((the binteger 668) - blackout - (the binteger 10) - ) - ((the binteger 671) - blackout - 0 - ) - ((the binteger 848) - display-level - village1 - movie - ) - ((the binteger 848) - want-force-vis - village1 - #t - ) - ((the binteger 849) - alive - "fishermans-boat-2" - ) - ((the binteger 878) - blackout - (the binteger 10) - ) - ((the binteger 881) - blackout - 0 - ) - ((the binteger 958) - blackout - (the binteger 10) - ) - ((the binteger 961) - blackout - 0 - ) - ((the binteger 965) - dead - "fishermans-boat-2" - ) - ((the binteger 965) - display-level - village1 - display - ) - ((the binteger 965) want-force-vis village1 #f) - ) - ) - ) - (((task-status need-reminder-a) (task-status need-reminder)) - (set! (-> obj skippable) #t) - (set! (-> obj blend-on-exit) #t) - (new 'static 'spool-anim - :name "fisher-reminder-1" - :index 10 - :parts 1 - :command-list '() - ) - ) - (((task-status need-reward-speech)) - (when arg0 - (set! (-> obj cell-for-task) (current-task (-> obj tasks))) - (close-current! (-> obj tasks)) - ) - (new 'static 'spool-anim - :name "fisher-resolution" - :index 9 - :parts 4 - :command-list - '( - ((the binteger 188) - blackout - (the binteger 10) - ) - ((the binteger 199) blackout 0) ) ) - ) - (else - (if arg0 - (format - 0 - "ERROR: : ~S playing anim for task status ~S~%" - (-> obj name) - (task-status->string (current-status (-> obj tasks))) - ) + (((task-status need-reminder-a) (task-status need-reminder)) + (set! (-> obj skippable) #t) + (set! (-> obj blend-on-exit) #t) + (new 'static 'spool-anim :name "fisher-reminder-1" :index 10 :parts 1 :command-list '()) ) - (get-art-elem obj) + (((task-status need-reward-speech)) + (when arg0 + (set! (-> obj cell-for-task) (current-task (-> obj tasks))) + (close-current! (-> obj tasks)) + ) + (new 'static 'spool-anim + :name "fisher-resolution" + :index 9 + :parts 4 + :command-list + '((188 blackout 10) (199 blackout 0)) + ) + ) + (else + (if arg0 + (format + 0 + "ERROR: : ~S playing anim for task status ~S~%" + (-> obj name) + (task-status->string (current-status (-> obj tasks))) + ) + ) + (get-art-elem obj) + ) ) - ) ) (defmethod get-art-elem fisher ((obj fisher)) - (if - (closed? - (-> obj tasks) - (game-task jungle-fishgame) - (task-status need-reminder) - ) - (-> obj draw art-group data 7) - (-> obj draw art-group data 6) - ) + (if (closed? (-> obj tasks) (game-task jungle-fishgame) (task-status need-reminder)) + (-> obj draw art-group data 7) + (-> obj draw art-group data 6) + ) ) (defmethod dummy-38 fisher ((obj fisher)) - (case (current-status (-> obj tasks)) - (((task-status need-reminder-a) (task-status need-reminder)) + (case (current-status (-> obj tasks)) + (((task-status need-reminder-a) (task-status need-reminder)) (go (method-of-object obj query)) ) - (((task-status need-reward-speech)) - (go (method-of-object obj play-anim)) + (((task-status need-reward-speech)) + (go (method-of-object obj play-anim)) + ) + (else + ((the-as (function fisher none) (find-parent-method fisher 38)) obj) + ) ) - (else - ((the-as (function fisher none) (find-parent-method fisher 38)) obj) - ) - ) (none) ) (defmethod get-accept-anim fisher ((obj fisher) (arg0 symbol)) (when arg0 - (close-current! (-> obj tasks)) - (aybabtu 2) - ) + (close-current! (-> obj tasks)) + (aybabtu 2) + ) (new 'static 'spool-anim - :name "fisher-accept" - :index 12 - :parts 6 - :command-list - '( - (0 - send-event - self - emissive-on - ) - ((the binteger 700) send-event self emissive-off) - ) - ) + :name "fisher-accept" + :index 12 + :parts 6 + :command-list + '((0 send-event self emissive-on) (700 send-event self emissive-off)) + ) ) (defmethod get-reject-anim fisher ((obj fisher) (arg0 symbol)) - (new 'static 'spool-anim - :name "fisher-reject" - :index 11 - :parts 2 - :command-list '() - ) + (new 'static 'spool-anim :name "fisher-reject" :index 11 :parts 2 :command-list '()) ) (defstate fisher-done (fisher) :enter (behavior () - (init! - (-> self query) - (lookup-text! *common-text* (game-text-id play-again?) #f) - 40 - 150 - 30 - #f - (lookup-text! *common-text* (game-text-id quit) #f) - ) - (ja-channel-set! 1) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 frame-group) (the-as art-joint-anim (get-art-elem self))) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (-> self child) - (deactivate (-> self child 0)) - ) - (set! *camera-look-through-other* 2) - (cond - ((>= (-> self caught) (-> *FISHER-bank* max-caught)) - (send-event *target* 'end-mode) - (set! - (-> self trans-hook) - (lambda :behavior fisher - () - (set! *camera-look-through-other* 2) - (when (process-grab? *target*) - (close-current! (-> self tasks)) - (go-virtual play-anim) - ) - (none) - ) + (init! + (-> self query) + (lookup-text! *common-text* (game-text-id play-again?) #f) + 40 + 150 + 30 + #f + (lookup-text! *common-text* (game-text-id quit) #f) ) - ) - ((< (-> self caught) 0) - (send-event *target* 'end-mode) - (go-virtual idle) - ) - (else - (let ((gp-2 (-> self entity extra perm))) - (logior! (-> gp-2 status) (entity-perm-status user-set-from-cstage)) - (cond - ((-> self hard) - ) - ((and (< (-> self caught) 40) (< (-> self missed) 5)) - ) - ((and (< (-> self caught) 80) (< (-> self missed) 10)) - ) - (else - (set! (-> gp-2 user-int8 4) (the-as int (+ (-> gp-2 user-uint8 4) 1))) - (let ((v1-40 (-> self caught))) - (if (>= v1-40 90) - (set! v1-40 (+ v1-40 -90 v1-40)) - ) - (set! - (-> gp-2 user-object 0) - (+ - (the-as float (-> gp-2 user-object 0)) - (* - 12.903226 - (/ (the float v1-40) (fmax 5.0 (the float (-> self missed)))) - ) - ) - ) - ) - ) - ) - (let ((f0-4 (if (zero? (-> gp-2 user-uint8 4)) - 200.0 - (/ - (the-as float (-> gp-2 user-object 0)) - (the float (-> gp-2 user-uint8 4)) - ) - ) + (ja-channel-set! 1) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 frame-group) (the-as art-joint-anim (get-art-elem self))) + ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (while (-> self child) + (deactivate (-> self child 0)) + ) + (set! *camera-look-through-other* 2) + (cond + ((>= (-> self caught) (-> *FISHER-bank* max-caught)) + (send-event *target* 'end-mode) + (set! (-> self trans-hook) (lambda :behavior fisher + () + (set! *camera-look-through-other* 2) + (when (process-grab? *target*) + (close-current! (-> self tasks)) + (go-virtual play-anim) + ) + (none) + ) ) + ) + ((< (-> self caught) 0) + (send-event *target* 'end-mode) + (go-virtual idle) + ) + (else + (let ((gp-2 (-> self entity extra perm))) + (logior! (-> gp-2 status) (entity-perm-status user-set-from-cstage)) + (cond + ((-> self hard) + ) + ((and (< (-> self caught) 40) (< (-> self missed) 5)) + ) + ((and (< (-> self caught) 80) (< (-> self missed) 10)) + ) + (else + (set! (-> gp-2 user-int8 4) (the-as int (+ (-> gp-2 user-uint8 4) 1))) + (let ((v1-40 (-> self caught))) + (if (>= v1-40 90) + (set! v1-40 (+ v1-40 -90 v1-40)) + ) + (set! (-> gp-2 user-object 0) + (+ (the-as float (-> gp-2 user-object 0)) + (* 12.903226 (/ (the float v1-40) (fmax 5.0 (the float (-> self missed))))) + ) + ) + ) + ) ) - (when (zero? (mod (+ (-> gp-2 user-uint8 5) 1) (the-as uint 5))) - (cond - ((-> self hard) - ) - ((= (-> gp-2 user-uint8 5) 4) - (if (< f0-4 60.0) - (set! - (-> gp-2 user-int8 6) - (seekl (the-as int (-> gp-2 user-uint8 6)) 4 1) + (let ((f0-4 (if (zero? (-> gp-2 user-uint8 4)) + 200.0 + (/ (the-as float (-> gp-2 user-object 0)) (the float (-> gp-2 user-uint8 4))) + ) + ) + ) + (when (zero? (mod (+ (-> gp-2 user-uint8 5) 1) (the-as uint 5))) + (cond + ((-> self hard) + ) + ((= (-> gp-2 user-uint8 5) 4) + (if (< f0-4 60.0) + (set! (-> gp-2 user-int8 6) (seekl (the-as int (-> gp-2 user-uint8 6)) 4 1)) + ) + (set! (-> gp-2 user-object 0) 0.0) + (set! (-> gp-2 user-int8 4) 0) + 0 + ) + ((= (-> gp-2 user-uint8 5) 9) + (if (< f0-4 120.0) + (set! (-> gp-2 user-int8 6) (seekl (the-as int (-> gp-2 user-uint8 6)) 4 1)) + ) + ) + (else + (set! (-> gp-2 user-int8 6) (seekl (the-as int (-> gp-2 user-uint8 6)) 4 1)) + ) + ) + ) ) - ) - (set! (-> gp-2 user-object 0) 0.0) - (set! (-> gp-2 user-int8 4) 0) - 0 - ) - ((= (-> gp-2 user-uint8 5) 9) - (if (< f0-4 120.0) - (set! - (-> gp-2 user-int8 6) - (seekl (the-as int (-> gp-2 user-uint8 6)) 4 1) + (set! (-> gp-2 user-int8 5) (seekl (the-as int (-> gp-2 user-uint8 5)) 255 1)) + (set! (-> self difficulty) (the-as int (-> gp-2 user-uint8 6))) + (if (-> self hard) + (set! (-> self difficulty) 5) + ) + (format + #t + "fisher: accum ~f div ~d tries ~d diff ~d~%" + (the-as float (-> gp-2 user-object 0)) + (-> gp-2 user-uint8 4) + (-> gp-2 user-uint8 5) + (-> gp-2 user-uint8 6) ) - ) ) - (else - (set! - (-> gp-2 user-int8 6) - (seekl (the-as int (-> gp-2 user-uint8 6)) 4 1) - ) + (let ((gp-3 (get-process *default-dead-pool* process #x4000))) + (when gp-3 + (let ((t9-15 (method-of-type process activate))) + (t9-15 gp-3 *default-pool* 'process (the-as pointer #x70004000)) + ) + (run-next-time-in-process gp-3 (lambda :behavior process + () + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 30) + (suspend) + ) + ) + (ambient-hint-spawn "st-lose" (the-as vector #f) *entity-pool* 'stinger) + (none) + ) + ) + (-> gp-3 ppointer) + ) ) - ) + (send-event *target* 'lose) ) - ) - (set! - (-> gp-2 user-int8 5) - (seekl (the-as int (-> gp-2 user-uint8 5)) 255 1) - ) - (set! (-> self difficulty) (the-as int (-> gp-2 user-uint8 6))) - (if (-> self hard) - (set! (-> self difficulty) 5) - ) - (format - #t - "fisher: accum ~f div ~d tries ~d diff ~d~%" - (the-as float (-> gp-2 user-object 0)) - (-> gp-2 user-uint8 4) - (-> gp-2 user-uint8 5) - (-> gp-2 user-uint8 6) - ) ) - (let ((gp-3 (get-process *default-dead-pool* process #x4000))) - (when gp-3 - (let ((t9-15 (method-of-type process activate))) - (t9-15 gp-3 *default-pool* 'process (the-as pointer #x70004000)) - ) - (run-next-time-in-process - gp-3 - (lambda :behavior process - () - (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 30) - (suspend) - ) - ) - (ambient-hint-spawn - "st-lose" - (the-as vector #f) - *entity-pool* - 'stinger - ) - (none) - ) - ) - (-> gp-3 ppointer) - ) - ) - (send-event *target* 'lose) - ) + (none) ) - (none) - ) :exit (behavior () - (when (and *target* (the-as target #f)) - (send-event *target* 'end-mode) - (process-grab? *target*) + (when (and *target* (the-as target #f)) + (send-event *target* 'end-mode) + (process-grab? *target*) + ) + (none) ) - (none) - ) :trans (behavior () - (set! *camera-look-through-other* 2) - (cond - ((>= (-> self caught) (-> *FISHER-bank* max-caught)) - ) - ((< (-> self caught) 0) - ) - (else - (when (< (mod (-> *display* base-frame-counter) 300) 150) - (let* - ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf)) - (gp-0 (-> s5-0 base)) - ) - (draw-string-xy - (lookup-text! *common-text* (game-text-id lose!) #f) - s5-0 - 256 - 100 - (font-color orange-red) - (font-flags shadow kerning middle large) - ) - (let ((a3-1 (-> s5-0 base))) - (let ((v1-13 (the-as dma-packet (-> s5-0 base)))) - (set! (-> v1-13 dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> v1-13 vif0) (new 'static 'vif-tag)) - (set! (-> v1-13 vif1) (new 'static 'vif-tag)) - (set! (-> s5-0 base) (&+ (the-as pointer v1-13) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) frame bucket-group) - (bucket-id debug-draw0) - gp-0 - (the-as (pointer dma-tag) a3-1) - ) - ) + (set! *camera-look-through-other* 2) + (cond + ((>= (-> self caught) (-> *FISHER-bank* max-caught)) ) - ) - (fisher-draw-display self) - (let ((gp-1 (get-response (-> self query)))) - (cond - ((and (= gp-1 'yes) (process-release? *target*)) - (go-virtual enter-playing) - ) - ((= gp-1 'no) - (go-virtual play-reject) - ) + ((< (-> self caught) 0) ) + (else + (when (< (mod (-> *display* base-frame-counter) 300) 150) + (let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf)) + (gp-0 (-> s5-0 base)) + ) + (draw-string-xy + (lookup-text! *common-text* (game-text-id lose!) #f) + s5-0 + 256 + 100 + (font-color orange-red) + (font-flags shadow kerning middle large) + ) + (let ((a3-1 (-> s5-0 base))) + (let ((v1-13 (the-as dma-packet (-> s5-0 base)))) + (set! (-> v1-13 dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> v1-13 vif0) (new 'static 'vif-tag)) + (set! (-> v1-13 vif1) (new 'static 'vif-tag)) + (set! (-> s5-0 base) (&+ (the-as pointer v1-13) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) frame bucket-group) + (bucket-id debug-draw0) + gp-0 + (the-as (pointer dma-tag) a3-1) + ) + ) + ) + ) + (fisher-draw-display self) + (let ((gp-1 (get-response (-> self query)))) + (cond + ((and (= gp-1 'yes) (process-release? *target*)) + (go-virtual enter-playing) + ) + ((= gp-1 'no) + (go-virtual play-reject) + ) + ) + ) + ) ) - ) + (spool-push *art-control* "fisher-reject" 0 self -99.0) + (none) ) - (spool-push *art-control* "fisher-reject" 0 self -99.0) - (none) - ) :code (the-as (function none :behavior fisher) process-taskable-anim-loop) :post @@ -1891,223 +1513,127 @@ (v1-2 (the-as number (logior #x3f800000 v1-1))) (f0-2 (+ -1.0 (the-as float v1-2))) ) - (cond - ((and - (< 0.3 f0-2) - (< (+ (-> *FISHER-bank* max-caught) -30) (-> self caught)) - ) - (if - (and - (>= (- (-> *display* base-frame-counter) (-> self ambient-almost)) 3000) - (play-ambient - (-> self ambient) - "FIS-TA11" - #t - (-> self root-override trans) - ) + (cond + ((and (< 0.3 f0-2) (< (+ (-> *FISHER-bank* max-caught) -30) (-> self caught))) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self ambient-almost)) 3000) + (play-ambient (-> self ambient) "FIS-TA11" #t (-> self root-override trans)) + ) + (set! (-> self ambient-almost) (-> *display* base-frame-counter)) + ) ) - (set! (-> self ambient-almost) (-> *display* base-frame-counter)) - ) - ) - ((< 0.125 f0-2) - ) - ((< 0.1 f0-2) - (if - (and - (>= (- (-> *display* base-frame-counter) (-> self ambient-steady)) 3000) - (play-ambient - (-> self ambient) - "FIS-TA06" - #t - (-> self root-override trans) - ) + ((< 0.125 f0-2) ) - (set! (-> self ambient-steady) (-> *display* base-frame-counter)) - ) - ) - ((< (+ (-> *FISHER-bank* max-missed) -6) (-> self missed)) - (if - (and - (>= (- (-> *display* base-frame-counter) (-> self ambient-sagging)) 3000) - (play-ambient - (-> self ambient) - "FIS-TA07" - #t - (-> self root-override trans) - ) + ((< 0.1 f0-2) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self ambient-steady)) 3000) + (play-ambient (-> self ambient) "FIS-TA06" #t (-> self root-override trans)) + ) + (set! (-> self ambient-steady) (-> *display* base-frame-counter)) + ) + ) + ((< (+ (-> *FISHER-bank* max-missed) -6) (-> self missed)) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self ambient-sagging)) 3000) + (play-ambient (-> self ambient) "FIS-TA07" #t (-> self root-override trans)) + ) + (set! (-> self ambient-sagging) (-> *display* base-frame-counter)) + ) ) - (set! (-> self ambient-sagging) (-> *display* base-frame-counter)) ) - ) ) - ) (none) ) (defbehavior fisher-game-update fisher () - (when - (>= - (- (-> *display* base-frame-counter) (-> self block-time)) - (the-as int (-> self params timeout)) + (when (>= (- (-> *display* base-frame-counter) (-> self block-time)) (the-as int (-> self params timeout))) + (set! (-> self block-time) (-> *display* base-frame-counter)) + (+! (-> self block) 1) + (mem-copy! + (the-as pointer (-> self params)) + (the-as pointer (-> *fisher-params* (-> self difficulty) (-> self block))) + 56 + ) ) - (set! (-> self block-time) (-> *display* base-frame-counter)) - (+! (-> self block) 1) - (mem-copy! - (the-as pointer (-> self params)) - (the-as pointer (-> *fisher-params* (-> self difficulty) (-> self block))) - 56 - ) - ) - (when - (>= - (- (-> *display* base-frame-counter) (-> self turn-time)) - (-> self swing-time) - ) - (set! (-> self turn-time) (-> *display* base-frame-counter)) - (set! - (-> self swing-time) - (rand-vu-int-range - (the-as int (-> self params swing-min)) - (the-as int (-> self params swing-max)) - ) - ) - (set! (-> self params vel) (- (-> self params vel))) - ) - (+! - (-> self spawner) - (* (-> self params vel) (-> *display* seconds-per-frame)) - ) - (if (= (-> self params swing-min) #x1869f) - (set! (-> self spawner) (* 0.01 (the float (-> self params swing-max)))) - ) - (cond - ((and (< 0.0 (-> self params vel)) (>= (-> self spawner) 1.0)) - (set! (-> self params vel) (- (-> self params vel))) - (set! (-> self spawner) 1.0) - ) - ((and (< (-> self params vel) 0.0) (>= 0.0 (-> self spawner))) - (set! (-> self params vel) (- (-> self params vel))) - (set! (-> self spawner) 0.0) - ) - ) - (when - (and - (nonzero? (-> self params period)) - (>= - (- (-> *display* base-frame-counter) (-> self spawn-time)) - (the-as int (-> self params period)) - ) - ) - (let ((gp-0 (cond - ((rand-vu-percent? (-> self params powerup-percent)) - (if - (and - (>= - (- - (-> *display* base-frame-counter) - (-> self ambient-big-one) - ) - 9000 - ) - (play-ambient - (-> self ambient) - "FIS-TA03" - #t - (-> self root-override trans) - ) - ) - (set! - (-> self ambient-big-one) - (-> *display* base-frame-counter) - ) - ) - 'powerup - ) - ((rand-vu-percent? (-> self params bad-percent)) - 'bad - ) - ((rand-vu-percent? (-> self params deadly-percent)) - 'deadly - ) - (else - 'normal - ) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self turn-time)) (-> self swing-time)) + (set! (-> self turn-time) (-> *display* base-frame-counter)) + (set! (-> self swing-time) + (rand-vu-int-range (the-as int (-> self params swing-min)) (the-as int (-> self params swing-max))) ) - ) - (if - (and - (!= gp-0 'bad) - (< 0.8 (fabs (- (-> self spawner-last) (-> self spawner)))) - ) - (set! - (-> self spawner) - (* 0.5 (+ (-> self spawner-last) (-> self spawner))) + (set! (-> self params vel) (- (-> self params vel))) + ) + (+! (-> self spawner) (* (-> self params vel) (-> *display* seconds-per-frame))) + (if (= (-> self params swing-min) #x1869f) + (set! (-> self spawner) (* 0.01 (the float (-> self params swing-max)))) ) + (cond + ((and (< 0.0 (-> self params vel)) (>= (-> self spawner) 1.0)) + (set! (-> self params vel) (- (-> self params vel))) + (set! (-> self spawner) 1.0) ) - (set! (-> self spawner-last) (-> self spawner)) - (set! (-> self spawn-time) (-> *display* base-frame-counter)) - (sound-play-by-name - (static-sound-name "fish-spawn") - (new-sound-id) - 716 - 0 - 0 - 1 - #t + ((and (< (-> self params vel) 0.0) (>= 0.0 (-> self spawner))) + (set! (-> self params vel) (- (-> self params vel))) + (set! (-> self spawner) 0.0) ) - (fisher-spawn-ambient) - (let ((s5-1 (get-process *default-dead-pool* fisher-fish #x4000))) - (when s5-1 - (let ((t9-10 (method-of-type fisher-fish activate))) - (t9-10 - (the-as fisher-fish s5-1) - self - 'fisher-fish - (the-as pointer #x70004000) + ) + (when (and + (nonzero? (-> self params period)) + (>= (- (-> *display* base-frame-counter) (-> self spawn-time)) (the-as int (-> self params period))) + ) + (let ((gp-0 + (cond + ((rand-vu-percent? (-> self params powerup-percent)) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self ambient-big-one)) 9000) + (play-ambient (-> self ambient) "FIS-TA03" #t (-> self root-override trans)) + ) + (set! (-> self ambient-big-one) (-> *display* base-frame-counter)) + ) + 'powerup + ) + ((rand-vu-percent? (-> self params bad-percent)) + 'bad + ) + ((rand-vu-percent? (-> self params deadly-percent)) + 'deadly + ) + (else + 'normal + ) + ) + ) + ) + (if (and (!= gp-0 'bad) (< 0.8 (fabs (- (-> self spawner-last) (-> self spawner))))) + (set! (-> self spawner) (* 0.5 (+ (-> self spawner-last) (-> self spawner)))) + ) + (set! (-> self spawner-last) (-> self spawner)) + (set! (-> self spawn-time) (-> *display* base-frame-counter)) + (sound-play-by-name (static-sound-name "fish-spawn") (new-sound-id) 716 0 0 1 #t) + (fisher-spawn-ambient) + (let ((s5-1 (get-process *default-dead-pool* fisher-fish #x4000))) + (when s5-1 + (let ((t9-10 (method-of-type fisher-fish activate))) + (t9-10 (the-as fisher-fish s5-1) self 'fisher-fish (the-as pointer #x70004000)) + ) + (run-now-in-process s5-1 fisher-fish-init-by-other gp-0 (-> self spawner) (* 1.85 (-> self params fish-vel))) + (-> s5-1 ppointer) + ) ) - ) - (run-now-in-process - s5-1 - fisher-fish-init-by-other - gp-0 - (-> self spawner) - (* 1.85 (-> self params fish-vel)) - ) - (-> s5-1 ppointer) ) - ) ) - ) - (let - ((f1-14 - (analog-input - (the-as int (-> *cpad-list* cpads 0 leftx)) - 128.0 - 32.0 - 110.0 - 28.0 - ) - ) + (let ((f1-14 (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 32.0 110.0 28.0))) + (+! (-> self paddle-vel) (* f1-14 (-> *display* seconds-per-frame))) ) - (+! (-> self paddle-vel) (* f1-14 (-> *display* seconds-per-frame))) - ) - (set! - (-> self paddle-vel) - (seek (-> self paddle-vel) 0.0 (* 15.0 (-> *display* seconds-per-frame))) - ) + (set! (-> self paddle-vel) (seek (-> self paddle-vel) 0.0 (* 15.0 (-> *display* seconds-per-frame)))) (set! (-> self paddle-vel) (fmax -2.0 (fmin 2.0 (-> self paddle-vel)))) - (+! - (-> self paddle) - (* (-> self paddle-vel) (-> *display* seconds-per-frame)) - ) + (+! (-> self paddle) (* (-> self paddle-vel) (-> *display* seconds-per-frame))) (set! (-> self paddle) (fmax 0.0 (fmin 1.0 (-> self paddle)))) (vector-lerp! - (-> self paddle-pos) - (the-as vector (-> self paddle-end)) - (the-as vector (&-> self stack 288)) - (-> self paddle) - ) + (-> self paddle-pos) + (the-as vector (-> self paddle-end)) + (the-as vector (&-> self stack 288)) + (-> self paddle) + ) 0 (none) ) @@ -2115,727 +1641,563 @@ (defstate fisher-playing (fisher) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (local-vars (v0-2 object)) - (case arg2 - (('fisher-fish-die) - (sound-play-by-name - (static-sound-name "fish-miss") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t + (local-vars (v0-2 object)) + (case arg2 + (('fisher-fish-die) + (sound-play-by-name (static-sound-name "fish-miss") (new-sound-id) 1024 0 0 1 #t) + (set! v0-2 (+ (-> self missed) (-> arg3 param 0))) + (set! (-> self missed) (the-as int v0-2)) + v0-2 + ) + (('fisher-fish-caught) + (send-event *target* 'bounce) + (set! v0-2 (+ (-> self caught) (-> arg3 param 0))) + (set! (-> self caught) (the-as int v0-2)) + v0-2 + ) + (('deadly) + (go fisher-done) + ) + (('bad) + (set! v0-2 (seekl (-> self caught) 0 10)) + (set! (-> self caught) (the-as int v0-2)) + v0-2 ) - (set! v0-2 (+ (-> self missed) (-> arg3 param 0))) - (set! (-> self missed) (the-as int v0-2)) - v0-2 ) - (('fisher-fish-caught) - (send-event *target* 'bounce) - (set! v0-2 (+ (-> self caught) (-> arg3 param 0))) - (set! (-> self caught) (the-as int v0-2)) - v0-2 - ) - (('deadly) - (go fisher-done) - ) - (('bad) - (set! v0-2 (seekl (-> self caught) 0 10)) - (set! (-> self caught) (the-as int v0-2)) - v0-2 - ) ) - ) :enter (behavior () - (set-setting! *setting-control* self 'ambient-volume 'rel 50.0 0) - (send-event *target* 'reset-pickup 'eco) - (ja-channel-set! 0) - (clear-collide-with-as (-> self root-override)) - (let ((gp-0 (get-process *default-dead-pool* process #x4000))) - (when gp-0 - (let ((t9-5 (method-of-type process activate))) - (t9-5 gp-0 self 'process (the-as pointer #x70004000)) - ) - (run-next-time-in-process - gp-0 - (lambda :behavior fisher-fish - () - (logclear! (-> self mask) (process-mask pause)) - (while #t - (fisher-draw-display - (the-as fisher (ppointer->process (-> self parent))) - ) - (suspend) + (set-setting! *setting-control* self 'ambient-volume 'rel 50.0 0) + (send-event *target* 'reset-pickup 'eco) + (ja-channel-set! 0) + (clear-collide-with-as (-> self root-override)) + (let ((gp-0 (get-process *default-dead-pool* process #x4000))) + (when gp-0 + (let ((t9-5 (method-of-type process activate))) + (t9-5 gp-0 self 'process (the-as pointer #x70004000)) + ) + (run-next-time-in-process gp-0 (lambda :behavior fisher-fish + () + (logclear! (-> self mask) (process-mask pause)) + (while #t + (fisher-draw-display (the-as fisher (ppointer->process (-> self parent)))) + (suspend) + ) + (none) + ) + ) + (-> gp-0 ppointer) ) - (none) - ) ) - (-> gp-0 ppointer) - ) + (send-event *camera* 'change-to-entity-by-name "camera-152") + (init! (-> self query) (the-as string #f) 40 150 25 #t (lookup-text! *common-text* (game-text-id quit) #f)) + (none) ) - (send-event *camera* 'change-to-entity-by-name "camera-152") - (init! - (-> self query) - (the-as string #f) - 40 - 150 - 25 - #t - (lookup-text! *common-text* (game-text-id quit) #f) - ) - (none) - ) :exit (behavior () - (clear-pending-settings-from-process *setting-control* self 'ambient-volume) - (let* ((v1-2 *camera-other-matrix*) - (a3-0 (-> *camera-combiner* inv-camera-rot)) - (a0-2 (-> a3-0 vector 0 quad)) - (a1-1 (-> a3-0 vector 1 quad)) - (a2-1 (-> a3-0 vector 2 quad)) - (a3-1 (-> a3-0 vector 3 quad)) - ) - (set! (-> v1-2 vector 0 quad) a0-2) - (set! (-> v1-2 vector 1 quad) a1-1) - (set! (-> v1-2 vector 2 quad) a2-1) - (set! (-> v1-2 vector 3 quad) a3-1) + (clear-pending-settings-from-process *setting-control* self 'ambient-volume) + (let* ((v1-2 *camera-other-matrix*) + (a3-0 (-> *camera-combiner* inv-camera-rot)) + (a0-2 (-> a3-0 vector 0 quad)) + (a1-1 (-> a3-0 vector 1 quad)) + (a2-1 (-> a3-0 vector 2 quad)) + (a3-1 (-> a3-0 vector 3 quad)) + ) + (set! (-> v1-2 vector 0 quad) a0-2) + (set! (-> v1-2 vector 1 quad) a1-1) + (set! (-> v1-2 vector 2 quad) a2-1) + (set! (-> v1-2 vector 3 quad) a3-1) + ) + (set! (-> *camera-other-fov* data) (-> *camera-combiner* fov)) + (set! (-> *camera-other-trans* quad) (-> *camera-combiner* trans quad)) + (set! (-> *camera-other-root* quad) (-> self root-override trans quad)) + (restore-collide-with-as (-> self root-override)) + (send-event *camera* 'blend-from-as-fixed) + (send-event *camera* 'change-state *camera-base-mode* 0) + (send-event *camera* 'clear-entity) + 0 + (none) ) - (set! (-> *camera-other-fov* data) (-> *camera-combiner* fov)) - (set! (-> *camera-other-trans* quad) (-> *camera-combiner* trans quad)) - (set! (-> *camera-other-root* quad) (-> self root-override trans quad)) - (restore-collide-with-as (-> self root-override)) - (send-event *camera* 'blend-from-as-fixed) - (send-event *camera* 'change-state *camera-base-mode* 0) - (send-event *camera* 'clear-entity) - 0 - (none) - ) :trans (behavior () - (spool-push *art-control* "fisher-resolution" 0 self -99.0) - (spool-push *art-control* "fisher-reject" 0 self -99.0) - (none) - ) + (spool-push *art-control* "fisher-resolution" 0 self -99.0) + (spool-push *art-control* "fisher-reject" 0 self -99.0) + (none) + ) :code (behavior () - (set! *display-profile* #f) - (set! (-> self paddle) 0.5) - (set! (-> self paddle-vel) 0.0) - (set! (-> self start-time) (-> *display* base-frame-counter)) - (set! (-> self caught) 0) - (set! (-> self missed) 0) - (set! (-> self spawner) 0.5) - (set! (-> self spawner-last) 0.5) - (set! (-> self swing-time) 0) - (set! (-> self block) -1) - (set! (-> self block-time) (-> *display* base-frame-counter)) - (+! (-> self block) 1) - (mem-copy! - (the-as pointer (-> self params)) - (the-as pointer (-> *fisher-params* (-> self difficulty) (-> self block))) - 56 - ) - (set! (-> self ambient-big-one) 0) - (set! (-> self ambient-steady) 0) - (set! (-> self ambient-sagging) 0) - (set! (-> self ambient-almost) 0) - (while #t - (hide-hud-quick) - (fisher-game-update) - (if - (or - (zero? (-> self params timeout)) - (>= (-> self missed) (-> *FISHER-bank* max-missed)) - (>= (-> self caught) (-> *FISHER-bank* max-caught)) + (set! *display-profile* #f) + (set! (-> self paddle) 0.5) + (set! (-> self paddle-vel) 0.0) + (set! (-> self start-time) (-> *display* base-frame-counter)) + (set! (-> self caught) 0) + (set! (-> self missed) 0) + (set! (-> self spawner) 0.5) + (set! (-> self spawner-last) 0.5) + (set! (-> self swing-time) 0) + (set! (-> self block) -1) + (set! (-> self block-time) (-> *display* base-frame-counter)) + (+! (-> self block) 1) + (mem-copy! + (the-as pointer (-> self params)) + (the-as pointer (-> *fisher-params* (-> self difficulty) (-> self block))) + 56 ) - (go fisher-done) - ) - (suspend) + (set! (-> self ambient-big-one) 0) + (set! (-> self ambient-steady) 0) + (set! (-> self ambient-sagging) 0) + (set! (-> self ambient-almost) 0) + (while #t + (hide-hud-quick) + (fisher-game-update) + (if (or + (zero? (-> self params timeout)) + (>= (-> self missed) (-> *FISHER-bank* max-missed)) + (>= (-> self caught) (-> *FISHER-bank* max-caught)) + ) + (go fisher-done) + ) + (suspend) + ) + (none) ) - (none) - ) :post - (behavior () - (ja-post) - (none) - ) + (behavior () (ja-post) (none)) ) (defstate enter-playing (fisher) :virtual #t :trans (behavior () - (set-blackout-frames 5) - (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'change-mode) - (set! (-> a1-0 param 0) (the-as uint 'fishing)) - (set! (-> a1-0 param 1) (the-as uint self)) - (if (send-event-function *target* a1-0) - (go fisher-playing) - ) + (set-blackout-frames 5) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'change-mode) + (set! (-> a1-0 param 0) (the-as uint 'fishing)) + (set! (-> a1-0 param 1) (the-as uint self)) + (if (send-event-function *target* a1-0) + (go fisher-playing) + ) + ) + (none) ) - (none) - ) ) (defstate query (fisher) :virtual #t :enter (behavior () - (init! - (-> self query) - (lookup-text! *common-text* (game-text-id fish?) #f) - 40 - 150 - 25 - #f - (lookup-text! *common-text* (game-text-id quit) #f) + (init! + (-> self query) + (lookup-text! *common-text* (game-text-id fish?) #f) + 40 + 150 + 25 + #f + (lookup-text! *common-text* (game-text-id quit) #f) + ) + (none) ) - (none) - ) ) (defmethod TODO-RENAME-43 fisher ((obj fisher)) (cond - ((closed? - (-> obj tasks) - (game-task jungle-fishgame) - (task-status need-reminder) - ) - (when - (TODO-RENAME-10 - (-> obj ambient) - (new 'stack-no-clear 'vector) - 300 - 122880.0 - obj - ) - (let* ((v1-5 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-6 (the-as number (logior #x3f800000 v1-5))) - (f0-2 (+ -1.0 (the-as float v1-6))) - ) - (if (< 0.5 f0-2) - (play-ambient - (-> obj ambient) - "FIS-LO03" - #f - (-> obj root-override trans) - ) - (play-ambient - (-> obj ambient) - "FIS-LO05" - #f - (-> obj root-override trans) - ) + ((closed? (-> obj tasks) (game-task jungle-fishgame) (task-status need-reminder)) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 300 122880.0 obj) + (let* ((v1-5 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-6 (the-as number (logior #x3f800000 v1-5))) + (f0-2 (+ -1.0 (the-as float v1-6))) + ) + (if (< 0.5 f0-2) + (play-ambient (-> obj ambient) "FIS-LO03" #f (-> obj root-override trans)) + (play-ambient (-> obj ambient) "FIS-LO05" #f (-> obj root-override trans)) + ) + ) ) - ) ) - ) - (else - (when - (TODO-RENAME-10 - (-> obj ambient) - (new 'stack-no-clear 'vector) - 9000 - 122880.0 - obj - ) - (let* ((v1-15 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-16 (the-as number (logior #x3f800000 v1-15))) - (f0-5 (+ -1.0 (the-as float v1-16))) + (else + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (let* ((v1-15 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-16 (the-as number (logior #x3f800000 v1-15))) + (f0-5 (+ -1.0 (the-as float v1-16))) + ) + (cond + ((< 0.875 f0-5) + (play-ambient (-> obj ambient) "FIS-LO01" #f (-> obj root-override trans)) + ) + ((< 0.75 f0-5) + (play-ambient (-> obj ambient) "FIS-LO04" #f (-> obj root-override trans)) + ) + ((< 0.625 f0-5) + (play-ambient (-> obj ambient) "FIS-AM01" #f (-> obj root-override trans)) + ) + ((< 0.5 f0-5) + (play-ambient (-> obj ambient) "FIS-AM02" #f (-> obj root-override trans)) + ) + ((< 0.375 f0-5) + (play-ambient (-> obj ambient) "FIS-AM03" #f (-> obj root-override trans)) + ) + ((< 0.25 f0-5) + (play-ambient (-> obj ambient) "FIS-AM04" #f (-> obj root-override trans)) + ) + ((< 0.125 f0-5) + (play-ambient (-> obj ambient) "FIS-AM05" #f (-> obj root-override trans)) + ) + (else + (play-ambient (-> obj ambient) "FIS-AM06" #f (-> obj root-override trans)) + ) ) - (cond - ((< 0.875 f0-5) - (play-ambient - (-> obj ambient) - "FIS-LO01" - #f - (-> obj root-override trans) - ) + ) ) - ((< 0.75 f0-5) - (play-ambient - (-> obj ambient) - "FIS-LO04" - #f - (-> obj root-override trans) - ) - ) - ((< 0.625 f0-5) - (play-ambient - (-> obj ambient) - "FIS-AM01" - #f - (-> obj root-override trans) - ) - ) - ((< 0.5 f0-5) - (play-ambient - (-> obj ambient) - "FIS-AM02" - #f - (-> obj root-override trans) - ) - ) - ((< 0.375 f0-5) - (play-ambient - (-> obj ambient) - "FIS-AM03" - #f - (-> obj root-override trans) - ) - ) - ((< 0.25 f0-5) - (play-ambient - (-> obj ambient) - "FIS-AM04" - #f - (-> obj root-override trans) - ) - ) - ((< 0.125 f0-5) - (play-ambient - (-> obj ambient) - "FIS-AM05" - #f - (-> obj root-override trans) - ) - ) - (else - (play-ambient - (-> obj ambient) - "FIS-AM06" - #f - (-> obj root-override trans) - ) - ) - ) ) - ) ) - ) ) (defstate play-accept (fisher) :virtual #t :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (local-vars (v0-0 rgbaf)) - (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'emissive-on) - (set-vector! (-> self draw color-mult) 0.6 0.6 0.6 1.0) - (set! v0-0 (-> self draw color-emissive)) - (set! (-> v0-0 x) 0.6) - (set! (-> v0-0 y) 0.6) - (set! (-> v0-0 z) 0.6) - (set! (-> v0-0 w) 0.0) - v0-0 - ) - ((= v1-0 'emissive-off) - (set-vector! (-> self draw color-mult) 1.0 1.0 1.0 1.0) - (set! v0-0 (-> self draw color-emissive)) - (set! (-> v0-0 x) 0.0) - (set! (-> v0-0 y) 0.0) - (set! (-> v0-0 z) 0.0) - (set! (-> v0-0 w) 0.0) - v0-0 - ) - ) - ) + (local-vars (v0-0 rgbaf)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'emissive-on) + (set-vector! (-> self draw color-mult) 0.6 0.6 0.6 1.0) + (set! v0-0 (-> self draw color-emissive)) + (set! (-> v0-0 x) 0.6) + (set! (-> v0-0 y) 0.6) + (set! (-> v0-0 z) 0.6) + (set! (-> v0-0 w) 0.0) + v0-0 + ) + ((= v1-0 'emissive-off) + (set-vector! (-> self draw color-mult) 1.0 1.0 1.0 1.0) + (set! v0-0 (-> self draw color-emissive)) + (set! (-> v0-0 x) 0.0) + (set! (-> v0-0 y) 0.0) + (set! (-> v0-0 z) 0.0) + (set! (-> v0-0 w) 0.0) + v0-0 + ) + ) + ) + ) ) - ) :trans (behavior () - (when (-> self training) - (let ((gp-0 (new-stack-vector0))) - (vector<-cspace! gp-0 (-> self node-list data 74)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2001) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + (when (-> self training) + (let ((gp-0 (new-stack-vector0))) + (vector<-cspace! gp-0 (-> self node-list data 74)) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 2001) + gp-0 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + (fisher-fish-water gp-0 (+ 32768.0 (vector-y-angle (-> self node-list data 75 bone transform vector 1)))) + (vector<-cspace! gp-0 (-> self node-list data 77)) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 2001) + gp-0 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + (fisher-fish-water gp-0 (+ 32768.0 (vector-y-angle (-> self node-list data 78 bone transform vector 1)))) + (vector<-cspace! gp-0 (-> self node-list data 80)) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 828) + gp-0 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 2013) + gp-0 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + (fisher-fish-water gp-0 (+ 32768.0 (vector-y-angle (-> self node-list data 80 bone transform vector 1)))) + ) ) - (fisher-fish-water - gp-0 - (+ - 32768.0 - (vector-y-angle (-> self node-list data 75 bone transform vector 1)) - ) + (let ((t9-14 (-> (the-as state (find-parent-method fisher 24)) trans))) + (if t9-14 + (t9-14) + ) ) - (vector<-cspace! gp-0 (-> self node-list data 77)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2001) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (fisher-fish-water - gp-0 - (+ - 32768.0 - (vector-y-angle (-> self node-list data 78 bone transform vector 1)) - ) - ) - (vector<-cspace! gp-0 (-> self node-list data 80)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 828) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2013) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (fisher-fish-water - gp-0 - (+ - 32768.0 - (vector-y-angle (-> self node-list data 80 bone transform vector 1)) - ) - ) - ) + (none) ) - (let ((t9-14 (-> (the-as state (find-parent-method fisher 24)) trans))) - (if t9-14 - (t9-14) - ) - ) - (none) - ) ) (defstate idle (fisher) :virtual #t :trans (behavior () - (let ((t9-1 (-> (the-as state (find-parent-method fisher 30)) trans))) - (if t9-1 - (t9-1) - ) - ) - (when (task-complete? *game-info* (-> self entity extra perm task)) - (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) - (let ((v1-9 (-> self cheat-temp))) - (cond - ((zero? v1-9) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left)) - (+! (-> self cheat-temp) 1) + (let ((t9-1 (-> (the-as state (find-parent-method fisher 30)) trans))) + (if t9-1 + (t9-1) ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 1) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left)) - (+! (-> self cheat-temp) 1) - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 2) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right)) - (+! (-> self cheat-temp) 1) - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 3) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right)) - (+! (-> self cheat-temp) 1) - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 4) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left)) - (+! (-> self cheat-temp) 1) - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 5) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons left)) - (+! (-> self cheat-temp) 1) - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 6) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right)) - (+! (-> self cheat-temp) 1) - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 7) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons right)) - (+! (-> self cheat-temp) 1) - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ((= v1-9 8) - (cond - ((logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x)) - (set! (-> self hard) #t) - (set! (-> self difficulty) 5) - (set! (-> *FISHER-bank* max-caught) #x70000000) - (ambient-hint-spawn - "FIS-LO03" - (the-as vector #f) - *entity-pool* - 'stinger - ) - (set! (-> self cheat-temp) 0) - 0 - ) - (else - (set! (-> self cheat-temp) 0) - 0 - ) - ) - ) - ) ) - ) + (when (task-complete? *game-info* (-> self entity extra perm task)) + (when (nonzero? (-> *cpad-list* cpads 0 button0-rel 0)) + (let ((v1-9 (-> self cheat-temp))) + (cond + ((zero? v1-9) + (cond + ((cpad-pressed? 0 left) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 1) + (cond + ((cpad-pressed? 0 left) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 2) + (cond + ((cpad-pressed? 0 right) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 3) + (cond + ((cpad-pressed? 0 right) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 4) + (cond + ((cpad-pressed? 0 left) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 5) + (cond + ((cpad-pressed? 0 left) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 6) + (cond + ((cpad-pressed? 0 right) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 7) + (cond + ((cpad-pressed? 0 right) + (+! (-> self cheat-temp) 1) + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ((= v1-9 8) + (cond + ((cpad-pressed? 0 x) + (set! (-> self hard) #t) + (set! (-> self difficulty) 5) + (set! (-> *FISHER-bank* max-caught) #x70000000) + (ambient-hint-spawn "FIS-LO03" (the-as vector #f) *entity-pool* 'stinger) + (set! (-> self cheat-temp) 0) + 0 + ) + (else + (set! (-> self cheat-temp) 0) + 0 + ) + ) + ) + ) + ) + ) + ) + (none) ) - (none) - ) :code (behavior () - (if (!= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (get-art-elem self) - ) - (ja-channel-push! 1 60) - ) - (while #t - (let ((gp-0 (-> self skel root-channel 0))) - (set! (-> gp-0 frame-group) (the-as art-joint-anim (get-art-elem self))) - ) - (let* ((f30-0 5.0) - (v1-9 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) - (v1-10 (the-as number (logior #x3f800000 v1-9))) - ) - (countdown (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-10)))) 5)) - (let ((a0-10 (-> self skel root-channel 0))) - (set! (-> a0-10 frame-group) (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) - (set! - (-> a0-10 param 0) - (the float (+ (-> (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) ) - ) - ) - (set! (-> a0-10 param 1) 1.0) - (set! (-> a0-10 frame-num) 0.0) - (joint-control-channel-group! - a0-10 - (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - num-func-seek! - ) - ) - (until (ja-done? 0) - (TODO-RENAME-43 self) - (suspend) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 param 0) - (the float (+ (-> a0-12 frame-group data 0 length) -1)) - ) - (set! (-> a0-12 param 1) 1.0) - (joint-control-channel-group-eval! - a0-12 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - ) - (when (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + (get-art-elem self) ) - (-> self draw art-group data 6) - ) - (let ((a0-19 (-> self skel root-channel 0))) - (set! - (-> a0-19 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-19 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (ja-channel-push! 1 60) + ) + (while #t + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (get-art-elem self))) + ) + (let* ((f30-0 5.0) + (v1-9 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-10 (the-as number (logior #x3f800000 v1-9))) + ) + (countdown (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-10)))) 5)) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! (-> a0-10 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-10 param 1) 1.0) + (set! (-> a0-10 frame-num) 0.0) + (joint-control-channel-group! + a0-10 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (TODO-RENAME-43 self) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + ) + (when (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 6) + ) + (let ((a0-19 (-> self skel root-channel 0))) + (set! (-> a0-19 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-19 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-19 param 1) 1.0) + (set! (-> a0-19 frame-num) 0.0) + (joint-control-channel-group! a0-19 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (TODO-RENAME-43 self) + (suspend) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) (the float (+ (-> a0-21 frame-group data 0 length) -1))) + (set! (-> a0-21 param 1) 1.0) + (joint-control-channel-group-eval! a0-21 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-19 param 1) 1.0) - (set! (-> a0-19 frame-num) 0.0) - (joint-control-channel-group! - a0-19 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) ) - (until (ja-done? 0) - (TODO-RENAME-43 self) - (suspend) - (let ((a0-21 (-> self skel root-channel 0))) - (set! - (-> a0-21 param 0) - (the float (+ (-> a0-21 frame-group data 0 length) -1)) - ) - (set! (-> a0-21 param 1) 1.0) - (joint-control-channel-group-eval! - a0-21 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) + (none) ) - (none) - ) ) (defmethod initialize-collision fisher ((obj fisher) (arg0 int) (arg1 vector)) - (let - ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) - (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) - (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set! (-> s4-0 prim-core offense) 4) - (set-vector! (-> s4-0 local-sphere) 6144.0 0.0 4096.0 14336.0) - (set-root-prim! s5-0 s4-0) - (let ((s2-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0)))) - (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-0 collide-with) (the-as uint 16)) - (set! (-> s2-0 prim-core action) (the-as uint 1)) - (set! (-> s2-0 prim-core offense) 4) - (set! (-> s2-0 transform-index) arg0) - (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 6553.6) - (append-prim s4-0 s2-0) - ) - (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0)))) - (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-1 collide-with) (the-as uint 16)) - (set! (-> s3-1 prim-core action) (the-as uint 1)) - (set! (-> s3-1 prim-core offense) 4) - (set! (-> s3-1 transform-index) 57) - (set-vector! (-> s3-1 local-sphere) 0.0 4096.0 0.0 4096.0) - (append-prim s4-0 s3-1) - ) + (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set! (-> s4-0 prim-core offense) 4) + (set-vector! (-> s4-0 local-sphere) 6144.0 0.0 4096.0 14336.0) + (set-root-prim! s5-0 s4-0) + (let ((s2-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0)))) + (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-0 collide-with) (the-as uint 16)) + (set! (-> s2-0 prim-core action) (the-as uint 1)) + (set! (-> s2-0 prim-core offense) 4) + (set! (-> s2-0 transform-index) arg0) + (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 6553.6) + (append-prim s4-0 s2-0) + ) + (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0)))) + (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 4) + (set! (-> s3-1 transform-index) 57) + (set-vector! (-> s3-1 local-sphere) 0.0 4096.0 0.0 4096.0) + (append-prim s4-0 s3-1) + ) + ) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (backup-collide-with-as s5-0) + (set! (-> obj root-override) s5-0) ) - (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) - (backup-collide-with-as s5-0) - (set! (-> obj root-override) s5-0) - ) 0 (none) ) (defmethod target-above-threshold? fisher ((obj fisher)) - (or - (= (current-task (-> obj tasks)) (game-task jungle-fishgame)) - (-> obj hard) - ) + (or (= (current-task (-> obj tasks)) (game-task jungle-fishgame)) (-> obj hard)) ) (defmethod init-from-entity! fisher ((obj fisher) (arg0 entity-actor)) (dummy-40 obj arg0 *fisher-sg* 3 49 (new 'static 'vector :w 4096.0) 33) (set! (-> obj tasks) (get-task-control (game-task jungle-fishgame))) (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) - (logior! - (-> obj path flags) - (path-control-flag display draw-line draw-point draw-text) - ) - (let - ((s5-0 (eval-path-curve-div! (-> obj path) (-> obj paddle-pos) 6.5 'interp)) - (s4-0 (TODO-RENAME-12 (-> obj path) (new-stack-vector0) 6.5)) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) + (let ((s5-0 (eval-path-curve-div! (-> obj path) (-> obj paddle-pos) 6.5 'interp)) + (s4-0 (TODO-RENAME-12 (-> obj path) (new-stack-vector0) 6.5)) + ) + (set! (-> s5-0 y) (+ 2457.6 (-> s5-0 y))) + (vector-normalize! (vector-rotate-y! s4-0 s4-0 16384.0) (-> *FISHER-bank* width)) + (vector-! (the-as vector (-> obj paddle-end)) s5-0 s4-0) + (vector+! (the-as vector (&-> obj stack 288)) s5-0 s4-0) ) - (set! (-> s5-0 y) (+ 2457.6 (-> s5-0 y))) - (vector-normalize! - (vector-rotate-y! s4-0 s4-0 16384.0) - (-> *FISHER-bank* width) - ) - (vector-! (the-as vector (-> obj paddle-end)) s5-0 s4-0) - (vector+! (the-as vector (&-> obj stack 288)) s5-0 s4-0) - ) (set! (-> obj music) 'fishgame) - (set! - (-> obj difficulty) - (the-as int (-> obj entity extra perm user-uint8 6)) - ) + (set! (-> obj difficulty) (the-as int (-> obj entity extra perm user-uint8 6))) (set! (-> obj hard) #f) (set! (-> *FISHER-bank* max-caught) 200) (set! (-> obj training) #f) @@ -2846,250 +2208,181 @@ (defstate target-fishing (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (cond - ((= arg2 'bounce) - (set-zero! (-> self control unknown-smush00)) - (activate! (-> self control unknown-smush00) 1.0 120 210 0.3 1.0) - ) - ((= arg2 'lose) - (set! (-> self control unknown-uint20) (the-as uint arg2)) - arg2 - ) - (else - ((-> target-grab event) arg0 arg1 arg2 arg3) - ) + (cond + ((= arg2 'bounce) + (set-zero! (-> self control unknown-smush00)) + (activate! (-> self control unknown-smush00) 1.0 120 210 0.3 1.0) + ) + ((= arg2 'lose) + (set! (-> self control unknown-uint20) (the-as uint arg2)) + arg2 + ) + (else + ((-> target-grab event) arg0 arg1 arg2 arg3) + ) + ) ) - ) :enter (behavior ((arg0 handle)) - (set! (-> self control unknown-surface00) *empty-mods*) - (logior! (-> self state-flags) 16) - (set-zero! (-> self control unknown-smush00)) - (set! (-> self control unknown-uint20) (the-as uint #f)) - (none) - ) + (set! (-> self control unknown-surface00) *empty-mods*) + (logior! (-> self state-flags) 16) + (set-zero! (-> self control unknown-smush00)) + (set! (-> self control unknown-uint20) (the-as uint #f)) + (none) + ) :exit (behavior () - (set! (-> self state-flags) (logand -17 (-> self state-flags))) - (let ((v1-2 (-> self manipy))) - (when v1-2 - (deactivate (-> v1-2 0)) - (set! (-> self manipy) (the-as (pointer manipy) #f)) - ) + (set! (-> self state-flags) (logand -17 (-> self state-flags))) + (let ((v1-2 (-> self manipy))) + (when v1-2 + (deactivate (-> v1-2 0)) + (set! (-> self manipy) (the-as (pointer manipy) #f)) + ) + ) + (-> target-periscope exit) + (none) ) - (-> target-periscope exit) - (none) - ) :code (behavior ((arg0 handle)) - (let ((v1-1 (handle->process arg0))) - (when (and v1-1 (type-type? (-> v1-1 type) fisher)) - (set-vector! (-> self control trans) 1067827.2 9420.8 -955596.8 1.0) - (set-yaw-angle-clear-roll-pitch! (-> self control) -20024.889) - (rot->dir-targ! (-> self control)) - ) - ) - (ja-channel-set! 1) - (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) - (set! (-> self manipy) (the-as (pointer manipy) (when s5-0 - (let - ((t9-5 - (method-of-type - manipy - activate - ) - ) - ) - (t9-5 - (the-as manipy s5-0) - self - 'manipy - (the-as - pointer - #x70004000 - ) - ) - ) - (let - ((t9-6 - run-function-in-process - ) - (a0-11 s5-0) - (a1-5 manipy-init) - (a2-2 - (-> self control trans) - ) - (v1-16 - (handle->process arg0) - ) - ) - ((the-as - (function object object object object object object none) - t9-6 - ) - a0-11 - a1-5 - a2-2 - (if v1-16 - (-> v1-16 entity) - (the-as entity #f) - ) - *fish-net-sg* - #f - ) - ) - (-> s5-0 ppointer) - ) - ) - ) - ) - (when (-> self manipy) - (send-event (ppointer->process (-> self manipy)) 'anim-mode 'copy-parent) - (send-event - (ppointer->process (-> self manipy)) - 'eval - (lambda :behavior target - () - (set! - (-> self attack-info vector x) - (the-as - float - (new 'process 'joint-mod (joint-mod-handler-mode joint-set*) self 6) + (let ((v1-1 (handle->process arg0))) + (when (and v1-1 (type-type? (-> v1-1 type) fisher)) + (set-vector! (-> self control trans) 1067827.2 9420.8 -955596.8 1.0) + (set-yaw-angle-clear-roll-pitch! (-> self control) -20024.889) + (rot->dir-targ! (-> self control)) ) - ) - (set! - (-> self attack-info vector y) - (the-as - float - (new 'process 'joint-mod (joint-mod-handler-mode joint-set*) self 5) - ) - ) - (none) ) - ) - (let ((v1-35 (-> self manipy 0 node-list data))) - (set! (-> v1-35 0 param0) cspace<-cspace+quaternion!) - (set! (-> v1-35 0 param1) (the-as basic (-> self node-list data 23))) - (set! (-> v1-35 0 param2) (the-as basic (-> self control quat))) - ) - ) - (let ((s5-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim (-> self draw art-group data 99)) - num-func-identity - ) - (set! (-> s5-1 frame-num) (ja-aframe 15.0 0)) - ) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (until (-> self control unknown-spoolanim00) - (let ((v1-42 (handle->process arg0))) - (when v1-42 - (let ((a0-28 (-> self skel root-channel 0))) - (set! - (-> a0-28 param 0) - (* - (fmax 0.0 (- 1.0 (-> (the-as fisher v1-42) paddle))) - (the float (+ (-> (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 - ) - ) - ) - ) - (set! (-> a0-28 param 1) 1.0) - (joint-control-channel-group-eval! - a0-28 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (when (-> self manipy) - (let ((s2-0 (new-stack-quaternion0)) - (s4-0 (new-stack-quaternion0)) - (s3-0 (quaternion-identity! (new-stack-quaternion0))) - (f30-0 (update! (-> self control unknown-smush00))) - ) - (quaternion-rotate-y! s3-0 s3-0 (* 5461.3335 f30-0)) - (set-vector! s2-0 1.0 1.0 1.0 1.0) - (set-vector! s4-0 0.0 (* 2048.0 (-> s5-2 y)) (* 819.2 (-> s5-2 y)) 1.0) - (initialize-skeleton - (-> self manipy 0 joint 0) - (the-as skeleton-group s4-0) - (the-as pair s3-0) - ) - (set-vector! s4-0 0.0 (* -614.4 f30-0) 0.0 1.0) - (let* ((a0-34 (-> self manipy 0 joint 1)) - (t9-16 (method-of-object a0-34 initialize-skeleton)) - (a2-7 #f) + (ja-channel-set! 1) + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> self manipy) + (the-as (pointer manipy) (when s5-0 + (let ((t9-5 (method-of-type manipy activate))) + (t9-5 (the-as manipy s5-0) self 'manipy (the-as pointer #x70004000)) + ) + (let ((t9-6 run-function-in-process) + (a0-11 s5-0) + (a1-5 manipy-init) + (a2-2 (-> self control trans)) + (v1-16 (handle->process arg0)) + ) + ((the-as (function object object object object object object none) t9-6) + a0-11 + a1-5 + a2-2 + (if v1-16 + (-> v1-16 entity) + (the-as entity #f) + ) + *fish-net-sg* + #f + ) + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + (when (-> self manipy) + (send-event (ppointer->process (-> self manipy)) 'anim-mode 'copy-parent) + (send-event + (ppointer->process (-> self manipy)) + 'eval + (lambda :behavior target + () + (set! (-> self attack-info vector x) + (the-as float (new 'process 'joint-mod (joint-mod-handler-mode joint-set*) self 6)) ) - (t9-16 a0-34 (the-as skeleton-group s4-0) (the-as pair a2-7)) + (set! (-> self attack-info vector y) + (the-as float (new 'process 'joint-mod (joint-mod-handler-mode joint-set*) self 5)) + ) + (none) ) - (set! (-> s5-2 y) (-> s5-2 x)) - (set! (-> s5-2 x) f30-0) - ) ) - ) + (let ((v1-35 (-> self manipy 0 node-list data))) + (set! (-> v1-35 0 param0) cspace<-cspace+quaternion!) + (set! (-> v1-35 0 param1) (the-as basic (-> self node-list data 23))) + (set! (-> v1-35 0 param2) (the-as basic (-> self control quat))) + ) ) - (suspend) - ) - ) - (case (-> self control unknown-spoolanim00) - (('lose) - (ja-channel-push! 1 30) - (let ((a0-38 (-> self skel root-channel 0))) - (set! - (-> a0-38 frame-group) - (the-as art-joint-anim (-> self draw art-group data 100)) + (let ((s5-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> self draw art-group data 99)) + num-func-identity ) - (set! - (-> a0-38 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 100)) - data - 0 - length + (set! (-> s5-1 frame-num) (ja-aframe 15.0 0)) + ) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (until (-> self control unknown-spoolanim00) + (let ((v1-42 (handle->process arg0))) + (when v1-42 + (let ((a0-28 (-> self skel root-channel 0))) + (set! (-> a0-28 param 0) (* (fmax 0.0 (- 1.0 (-> (the-as fisher v1-42) paddle))) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + ) + (set! (-> a0-28 param 1) 1.0) + (joint-control-channel-group-eval! a0-28 (the-as art-joint-anim #f) num-func-seek!) + ) + (when (-> self manipy) + (let ((s2-0 (new-stack-quaternion0)) + (s4-0 (new-stack-quaternion0)) + (s3-0 (quaternion-identity! (new-stack-quaternion0))) + (f30-0 (update! (-> self control unknown-smush00))) + ) + (quaternion-rotate-y! s3-0 s3-0 (* 5461.3335 f30-0)) + (set-vector! s2-0 1.0 1.0 1.0 1.0) + (set-vector! s4-0 0.0 (* 2048.0 (-> s5-2 y)) (* 819.2 (-> s5-2 y)) 1.0) + (initialize-skeleton (-> self manipy 0 joint 0) (the-as skeleton-group s4-0) (the-as pair s3-0)) + (set-vector! s4-0 0.0 (* -614.4 f30-0) 0.0 1.0) + (let* ((a0-34 (-> self manipy 0 joint 1)) + (t9-16 (method-of-object a0-34 initialize-skeleton)) + (a2-7 #f) + ) + (t9-16 a0-34 (the-as skeleton-group s4-0) (the-as pair a2-7)) + ) + (set! (-> s5-2 y) (-> s5-2 x)) + (set! (-> s5-2 x) f30-0) + ) + ) + ) + ) + (suspend) + ) + ) + (case (-> self control unknown-spoolanim00) + (('lose) + (ja-channel-push! 1 30) + (let ((a0-38 (-> self skel root-channel 0))) + (set! (-> a0-38 frame-group) (the-as art-joint-anim (-> self draw art-group data 100))) + (set! (-> a0-38 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 100)) data 0 length) -1)) + ) + (set! (-> a0-38 param 1) 1.0) + (set! (-> a0-38 frame-num) 0.0) + (joint-control-channel-group! a0-38 (the-as art-joint-anim (-> self draw art-group data 100)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-39 (-> self skel root-channel 0))) + (set! (-> a0-39 param 0) (the float (+ (-> a0-39 frame-group data 0 length) -1))) + (set! (-> a0-39 param 1) 1.0) + (joint-control-channel-group-eval! a0-39 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-38 param 1) 1.0) - (set! (-> a0-38 frame-num) 0.0) - (joint-control-channel-group! - a0-38 - (the-as art-joint-anim (-> self draw art-group data 100)) - num-func-seek! - ) + (anim-loop) ) - (until (ja-done? 0) - (suspend) - (let ((a0-39 (-> self skel root-channel 0))) - (set! - (-> a0-39 param 0) - (the float (+ (-> a0-39 frame-group data 0 length) -1)) - ) - (set! (-> a0-39 param 1) 1.0) - (joint-control-channel-group-eval! - a0-39 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (anim-loop) ) + (none) ) - (none) - ) :post (the-as (function none :behavior target) target-post) ) diff --git a/goal_src/levels/jungle/jungle-obs.gc b/goal_src/levels/jungle/jungle-obs.gc index c64ad673ca..9eb3e6cea2 100644 --- a/goal_src/levels/jungle/jungle-obs.gc +++ b/goal_src/levels/jungle/jungle-obs.gc @@ -29,17 +29,6 @@ (declare-type maindoor process-drawable) (declare-type jngpusher process-drawable) -(define-extern towertop-idle (state towertop)) ;; unknown type -(define-extern lurkerm-tall-sail-idle (state lurkerm-tall-sail)) ;; unknown type -(define-extern lurkerm-short-sail-idle (state lurkerm-short-sail)) ;; unknown type -(define-extern lurkerm-piston-idle (state lurkerm-piston)) ;; unknown type -(define-extern accordian-idle (state accordian)) ;; unknown type -(define-extern precurbridge-activate (state precurbridge)) ;; unknown type -(define-extern precurbridge-active (state symbol precurbridge)) ;; unknown type -(define-extern precurbridge-idle (state precurbridge)) ;; unknown type -(define-extern maindoor-open (state symbol maindoor)) ;; unknown type -(define-extern maindoor-closed (state symbol maindoor)) ;; unknown type -(define-extern jngpusher-idle (state jngpusher)) ;; unknown type ;; DECOMP BEGINS @@ -164,6 +153,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + towertop-idle + ) ) @@ -222,6 +214,9 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + lurkerm-tall-sail-idle + ) ) @@ -333,6 +328,9 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + lurkerm-short-sail-idle + ) ) @@ -464,6 +462,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + lurkerm-piston-idle + ) ) @@ -594,6 +595,9 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + accordian-idle + ) ) @@ -737,6 +741,11 @@ :method-count-assert 20 :size-assert #x110 :flag-assert #x1400a00110 + (:states + precurbridge-activate + (precurbridge-active symbol) + precurbridge-idle + ) ) @@ -1165,6 +1174,10 @@ :method-count-assert 20 :size-assert #xc0 :flag-assert #x14005000c0 + (:states + (maindoor-closed symbol) + (maindoor-open symbol) + ) ) @@ -1364,6 +1377,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + jngpusher-idle + ) ) diff --git a/goal_src/levels/jungleb/jungleb-obs.gc b/goal_src/levels/jungleb/jungleb-obs.gc index 9c6177641d..75b5321be6 100644 --- a/goal_src/levels/jungleb/jungleb-obs.gc +++ b/goal_src/levels/jungleb/jungleb-obs.gc @@ -10,8 +10,6 @@ (declare-type eggtop process-drawable) -(define-extern eggtop-close (state symbol eggtop)) -(define-extern eggtop-idle (state eggtop)) ;; DECOMP BEGINS @@ -24,6 +22,10 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + (eggtop-close symbol) + eggtop-idle + ) ) @@ -35,661 +37,406 @@ :longest-edge (meters 0) ) -(set! - (-> *part-group-id-table* 189) - (new 'static 'sparticle-launch-group - :length 5 - :duration #xbb8 - :linger-duration #x5dc - :name "group-jungle-blue-eco-room-open" - :launcher - (new 'static 'inline-array sparticle-group-item 5 - (sp-item 899 :fade-after (meters 110.0)) - (sp-item 900 :fade-after (meters 110.0)) - (sp-item 901 :fade-after (meters 110.0)) - (sp-item 902 :fade-after (meters 110.0)) - (sp-item 903 :fade-after (meters 110.0)) - ) - :bounds - (new 'static 'sphere :y -24576.0 :w 32768.0) - ) - ) +(set! (-> *part-group-id-table* 189) (new 'static 'sparticle-launch-group + :length 5 + :duration #xbb8 + :linger-duration #x5dc + :name "group-jungle-blue-eco-room-open" + :launcher + (new 'static 'inline-array sparticle-group-item 5 + (sp-item 899 :fade-after (meters 110.0)) + (sp-item 900 :fade-after (meters 110.0)) + (sp-item 901 :fade-after (meters 110.0)) + (sp-item 902 :fade-after (meters 110.0)) + (sp-item 903 :fade-after (meters 110.0)) + ) + :bounds + (new 'static 'sphere :y -24576.0 :w 32768.0) + ) + ) -(set! - (-> *part-group-id-table* 190) - (new 'static 'sparticle-launch-group - :length 3 - :duration #x384 - :linger-duration #x5dc - :name "group-jungle-blue-eco-room-activate" - :launcher - (new 'static 'inline-array sparticle-group-item 3 - (sp-item 903) - (sp-item 903) - (sp-item 904 :flags (bit1) :period 1200 :length 15) - ) - :bounds - (new 'static 'sphere :y -24576.0 :w 32768.0) - ) - ) +(set! (-> *part-group-id-table* 190) (new 'static 'sparticle-launch-group + :length 3 + :duration #x384 + :linger-duration #x5dc + :name "group-jungle-blue-eco-room-activate" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (sp-item 903) + (sp-item 903) + (sp-item 904 :flags (bit1) :period 1200 :length 15) + ) + :bounds + (new 'static 'sphere :y -24576.0 :w 32768.0) + ) + ) -(set! - (-> *part-id-table* 904) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 18 - (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) - (sp-flt spt-num 30.0) - (sp-flt spt-y (meters -4.0)) - (sp-rnd-flt spt-scale-x (meters 20.0) (meters 10.0) 1.0) - (sp-int spt-rot-x 4) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-scale-y (meters 5.0) (meters 2.0) 1.0) - (sp-rnd-flt spt-r 0.0 16.0 1.0) - (sp-rnd-flt spt-g 16.0 32.0 1.0) - (sp-flt spt-b 127.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-rotvel-z (degrees -0.05) (degrees 0.1) 1.0) - (sp-flt spt-fade-a 0.85333335) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) - (sp-int spt-next-time 75) - (sp-launcher-by-id spt-next-launcher 905) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 904) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 18 + (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) + (sp-flt spt-num 30.0) + (sp-flt spt-y (meters -4.0)) + (sp-rnd-flt spt-scale-x (meters 20.0) (meters 10.0) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 5.0) (meters 2.0) 1.0) + (sp-rnd-flt spt-r 0.0 16.0 1.0) + (sp-rnd-flt spt-g 16.0 32.0 1.0) + (sp-flt spt-b 127.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-rotvel-z (degrees -0.05) (degrees 0.1) 1.0) + (sp-flt spt-fade-a 0.85333335) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) + (sp-int spt-next-time 75) + (sp-launcher-by-id spt-next-launcher 905) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 905) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 4 - (sp-flt spt-fade-a 0.0) - (sp-int spt-next-time 225) - (sp-launcher-by-id spt-next-launcher 906) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 905) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4 + (sp-flt spt-fade-a 0.0) + (sp-int spt-next-time 225) + (sp-launcher-by-id spt-next-launcher 906) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 906) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.14222223) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 906) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.14222223) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 899) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 12 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 1.0) - (sp-flt spt-y (meters -4.0)) - (sp-rnd-flt spt-scale-x (meters 10.0) (meters 2.0) 1.0) - (sp-rnd-flt spt-scale-y (meters 8.0) (meters 2.0) 1.0) - (sp-rnd-flt spt-r 0.0 64.0 1.0) - (sp-rnd-flt spt-g 0.0 64.0 1.0) - (sp-flt spt-b 255.0) - (sp-rnd-flt spt-a 128.0 128.0 1.0) - (sp-int spt-timer 5) - (sp-cpuinfo-flags bit2 bit3) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 899) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 12 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 1.0) + (sp-flt spt-y (meters -4.0)) + (sp-rnd-flt spt-scale-x (meters 10.0) (meters 2.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 8.0) (meters 2.0) 1.0) + (sp-rnd-flt spt-r 0.0 64.0 1.0) + (sp-rnd-flt spt-g 0.0 64.0 1.0) + (sp-flt spt-b 255.0) + (sp-rnd-flt spt-a 128.0 128.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags bit2 bit3) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 900) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 12 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 1.0) - (sp-flt spt-y (meters -4.0)) - (sp-rnd-flt spt-scale-x (meters 3.0) (meters 2.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-rnd-flt spt-a 128.0 128.0 1.0) - (sp-int spt-timer 5) - (sp-cpuinfo-flags bit2 bit3) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 900) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 12 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 1.0) + (sp-flt spt-y (meters -4.0)) + (sp-rnd-flt spt-scale-x (meters 3.0) (meters 2.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-rnd-flt spt-a 128.0 128.0 1.0) + (sp-int spt-timer 5) + (sp-cpuinfo-flags bit2 bit3) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 901) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 17 - (sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2)) - (sp-rnd-flt spt-num 0.5 1.0 1.0) - (sp-flt spt-y (meters -4.0)) - (sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0) - (sp-int spt-rot-x 4) - (sp-rnd-flt spt-rot-z (degrees -30.0) (degrees 60.0) 1.0) - (sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0) - (sp-flt spt-r 64.0) - (sp-flt spt-g 64.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 128.0) - (sp-flt spt-fade-a -1.6) - (sp-int spt-timer 90) - (sp-cpuinfo-flags bit2 bit3) - (sp-int spt-next-time 10) - (sp-launcher-by-id spt-next-launcher 907) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 901) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 17 + (sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2)) + (sp-rnd-flt spt-num 0.5 1.0 1.0) + (sp-flt spt-y (meters -4.0)) + (sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-rot-z (degrees -30.0) (degrees 60.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0) + (sp-flt spt-r 64.0) + (sp-flt spt-g 64.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 128.0) + (sp-flt spt-fade-a -1.6) + (sp-int spt-timer 90) + (sp-cpuinfo-flags bit2 bit3) + (sp-int spt-next-time 10) + (sp-launcher-by-id spt-next-launcher 907) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 907) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 6 - (sp-flt spt-r 64.0) - (sp-flt spt-g 64.0) - (sp-flt spt-fade-r -1.0) - (sp-flt spt-fade-g -1.0) - (sp-flt spt-fade-a -2.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 907) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 6 + (sp-flt spt-r 64.0) + (sp-flt spt-g 64.0) + (sp-flt spt-fade-r -1.0) + (sp-flt spt-fade-g -1.0) + (sp-flt spt-fade-a -2.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 902) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 17 - (sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2)) - (sp-rnd-flt spt-num 0.5 1.0 1.0) - (sp-flt spt-y (meters -4.0)) - (sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0) - (sp-int spt-rot-x 4) - (sp-rnd-flt spt-rot-z (degrees 150.0) (degrees 60.0) 1.0) - (sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0) - (sp-flt spt-r 64.0) - (sp-flt spt-g 64.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 128.0) - (sp-flt spt-fade-a -1.6) - (sp-int spt-timer 90) - (sp-cpuinfo-flags bit2 bit3) - (sp-int spt-next-time 10) - (sp-launcher-by-id spt-next-launcher 907) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 902) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 17 + (sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2)) + (sp-rnd-flt spt-num 0.5 1.0 1.0) + (sp-flt spt-y (meters -4.0)) + (sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-rot-z (degrees 150.0) (degrees 60.0) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0) + (sp-flt spt-r 64.0) + (sp-flt spt-g 64.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 128.0) + (sp-flt spt-fade-a -1.6) + (sp-int spt-timer 90) + (sp-cpuinfo-flags bit2 bit3) + (sp-int spt-next-time 10) + (sp-launcher-by-id spt-next-launcher 907) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 903) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2)) - (sp-rnd-flt spt-num 1.0 1.0 1.0) - (sp-rnd-flt spt-y (meters -6.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-scale-x (meters 6.0) (meters 2.0) 1.0) - (sp-int spt-rot-x 4) - (sp-rnd-flt spt-rot-z (degrees -140.0) (degrees 100.00001) 1.0) - (sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0) - (sp-flt spt-r 64.0) - (sp-flt spt-g 64.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 128.0) - (sp-flt spt-fade-a -1.6) - (sp-int spt-timer 90) - (sp-cpuinfo-flags bit2 bit3) - (sp-int spt-next-time 10) - (sp-launcher-by-id spt-next-launcher 907) - (sp-flt spt-conerot-x (degrees 90.0)) - (sp-rnd-flt spt-conerot-y (degrees 80.0) (degrees 200.00002) 1.0) - (sp-flt spt-conerot-radius (meters 4.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 903) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2)) + (sp-rnd-flt spt-num 1.0 1.0 1.0) + (sp-rnd-flt spt-y (meters -6.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-scale-x (meters 6.0) (meters 2.0) 1.0) + (sp-int spt-rot-x 4) + (sp-rnd-flt spt-rot-z (degrees -140.0) (degrees 100.00001) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0) + (sp-flt spt-r 64.0) + (sp-flt spt-g 64.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 128.0) + (sp-flt spt-fade-a -1.6) + (sp-int spt-timer 90) + (sp-cpuinfo-flags bit2 bit3) + (sp-int spt-next-time 10) + (sp-launcher-by-id spt-next-launcher 907) + (sp-flt spt-conerot-x (degrees 90.0)) + (sp-rnd-flt spt-conerot-y (degrees 80.0) (degrees 200.00002) 1.0) + (sp-flt spt-conerot-radius (meters 4.0)) + (sp-end) + ) + ) + ) (defstate eggtop-idle (eggtop) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (when (= v1-0 'notify) - (case (-> arg3 param 0) - (('pickup) - (if (type-type? (-> arg0 type) fuel-cell) - (save-reminder - (get-task-control (-> self entity extra perm task)) - 1 - 0 + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'notify) + (case (-> arg3 param 0) + (('pickup) + (if (type-type? (-> arg0 type) fuel-cell) + (save-reminder (get-task-control (-> self entity extra perm task)) 1 0) + ) + ) ) - ) ) - ) - ) - ) + ) + ) ) - ) :exit - (behavior () - (sound-stop (-> self sound-id)) - (none) - ) + (behavior () (sound-stop (-> self sound-id)) (none)) :trans (behavior () - (if - (and - (not (-> self child)) - (task-complete? *game-info* (-> self entity extra perm task)) - ) - (go eggtop-close #f) + (if (and (not (-> self child)) (task-complete? *game-info* (-> self entity extra perm task))) + (go eggtop-close #f) + ) + (spawn (-> self part) (-> self root-override trans)) + (sound-play-by-name (static-sound-name "electric-loop") (-> self sound-id) 1024 0 0 1 #t) + (none) ) - (spawn (-> self part) (-> self root-override trans)) - (sound-play-by-name - (static-sound-name "electric-loop") - (-> self sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (none) - ) :code - (behavior () - (suspend) - (dummy-47 (-> self root-override)) - (anim-loop) - (none) - ) + (behavior () (suspend) (dummy-47 (-> self root-override)) (anim-loop) (none)) :post (the-as (function none :behavior eggtop) ja-post) ) (defstate eggtop-close (eggtop) :trans - (behavior () - (rider-trans) - (hide-hud-quick) - (none) - ) + (behavior () (rider-trans) (hide-hud-quick) (none)) :code (behavior ((arg0 symbol)) - (when (not arg0) - (sound-play-by-name - (static-sound-name "vent-switch") - (new-sound-id) - 2048 - 0 - 0 - 1 - #t - ) - (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-1 - (let ((t9-3 (method-of-type part-tracker activate))) - (t9-3 - (the-as part-tracker gp-1) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) + (when (not arg0) + (sound-play-by-name (static-sound-name "vent-switch") (new-sound-id) 2048 0 0 1 #t) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-3 (method-of-type part-tracker activate))) + (t9-3 (the-as part-tracker gp-1) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-1 + part-tracker-init + (-> *part-group-id-table* 190) + -1 + #f + #f + #f + (-> self root-override trans) + ) + (-> gp-1 ppointer) + ) ) - ) - (run-now-in-process - gp-1 - part-tracker-init - (-> *part-group-id-table* 190) - -1 - #f - #f - #f - (-> self root-override trans) - ) - (-> gp-1 ppointer) - ) - ) - (let ((gp-2 (get-process *default-dead-pool* camera-tracker #x4000))) - (set! (-> self cam-tracker) (the-as uint (ppointer->handle (when gp-2 - (let - ((t9-6 - (method-of-type - camera-tracker - activate - ) - ) - ) - (t9-6 - (the-as - camera-tracker - gp-2 - ) - self - 'camera-tracker - (the-as - pointer - #x70004000 - ) - ) - ) - (run-now-in-process - gp-2 - camera-tracker-init - (lambda :behavior camera-tracker - () - (while - (not - (process-grab? - *target* - ) - ) - (suspend) - ) - (let - ((gp-0 - (-> - *display* - base-frame-counter - ) - ) - ) - (until - (>= - (- - (-> - *display* - base-frame-counter - ) - gp-0 - ) - 300 - ) - (suspend) - ) - ) - (send-event - *camera* - 'blend-from-as-fixed - ) - (camera-look-at - (the-as - pair - "ecovent-171" - ) - (the-as - uint - 0 - ) - ) - (camera-change-to - "camera-223" - 0 - #f - ) - (let - ((gp-1 - (-> - *display* - base-frame-counter - ) - ) - ) - (until - (>= - (- - (-> - *display* - base-frame-counter - ) - gp-1 - ) - 900 - ) - (suspend) - ) - ) - (while - (not - (process-release? - (handle->process - (-> - self - grab-target - ) - ) - ) - ) - (suspend) - ) - (send-event - *camera* - 'blend-from-as-fixed - ) - (level-hint-spawn - (game-text-id - jungleb-eco-vents-opened - ) - "asstvb02" - (the-as - entity - #f - ) - *entity-pool* - (game-task - none - ) - ) - (camera-look-at - (the-as - pair - *target* - ) - (the-as - uint - 0 - ) - ) - (camera-change-to - (the-as - string - 'base - ) - 150 - #f - ) - (send-event - (ppointer->process - (-> - *hud-parts* - fuel-cell - ) - ) - 'show - ) - (none) - ) - ) - (-> - gp-2 - ppointer - ) - ) - ) + (let ((gp-2 (get-process *default-dead-pool* camera-tracker #x4000))) + (set! (-> self cam-tracker) + (the-as + uint + (ppointer->handle (when gp-2 + (let ((t9-6 (method-of-type camera-tracker activate))) + (t9-6 (the-as camera-tracker gp-2) self 'camera-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-2 + camera-tracker-init + (lambda :behavior camera-tracker + () + (while (not (process-grab? *target*)) + (suspend) + ) + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 300) + (suspend) + ) + ) + (send-event *camera* 'blend-from-as-fixed) + (camera-look-at (the-as pair "ecovent-171") (the-as uint 0)) + (camera-change-to "camera-223" 0 #f) + (let ((gp-1 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-1) 900) + (suspend) + ) + ) + (while (not (process-release? (handle->process (-> self grab-target)))) + (suspend) + ) + (send-event *camera* 'blend-from-as-fixed) + (level-hint-spawn + (game-text-id jungleb-eco-vents-opened) + "asstvb02" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (camera-look-at (the-as pair *target*) (the-as uint 0)) + (camera-change-to (the-as string 'base) 150 #f) + (send-event (ppointer->process (-> *hud-parts* fuel-cell)) 'show) + (none) + ) + ) + (-> gp-2 ppointer) + ) ) - ) - ) - (save-reminder (get-task-control (-> self entity extra perm task)) 2 0) - (sound-play-by-name - (static-sound-name "jngb-eggtop-seq") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 frame-group) - (the-as art-joint-anim (-> self draw art-group data 2)) - ) - (set! - (-> a0-16 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length - ) - -1 + ) + ) + ) + (save-reminder (get-task-control (-> self entity extra perm task)) 2 0) + (sound-play-by-name (static-sound-name "jngb-eggtop-seq") (new-sound-id) 1024 0 0 1 #t) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) + (set! (-> a0-16 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) + ) + (set! (-> a0-16 param 1) 1.0) + (set! (-> a0-16 frame-num) 0.0) + (joint-control-channel-group! a0-16 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) (the float (+ (-> a0-17 frame-group data 0 length) -1))) + (set! (-> a0-17 param 1) 1.0) + (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) ) - (set! (-> a0-16 param 1) 1.0) - (set! (-> a0-16 frame-num) 0.0) - (joint-control-channel-group! - a0-16 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-seek! + (process-entity-status! self (entity-perm-status complete) #t) + (let ((a0-20 (-> self entity))) + (if (and a0-20 (= self (-> a0-20 extra process))) + (entity-task-complete-on a0-20) + ) ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-17 (-> self skel root-channel 0))) - (set! - (-> a0-17 param 0) - (the float (+ (-> a0-17 frame-group data 0 length) -1)) - ) - (set! (-> a0-17 param 1) 1.0) + (let ((gp-4 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-17 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (process-entity-status! self (entity-perm-status complete) #t) - (let ((a0-20 (-> self entity))) - (if (and a0-20 (= self (-> a0-20 extra process))) - (entity-task-complete-on a0-20) - ) - ) - (let ((gp-4 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-4 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-identity - ) - (set! - (-> gp-4 frame-num) - (the - float - (+ - (-> + gp-4 (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length + num-func-identity ) - -1 - ) + (set! (-> gp-4 frame-num) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) + ) ) - ) + (suspend) + (logior! (-> self mask) (process-mask sleep)) + (suspend) + 0 + (none) ) - (suspend) - (logior! (-> self mask) (process-mask sleep)) - (suspend) - 0 - (none) - ) :post (the-as (function none :behavior eggtop) rider-post) ) (defmethod init-from-entity! eggtop ((obj eggtop) (arg0 entity-actor)) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 4) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 -7372.8 16384.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 4) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 -7372.8 16384.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *eggtop-sg* '()) (logior! (-> obj skel status) 1) (dummy-47 (-> obj root-override)) - (set! - (-> obj part) - (create-launch-control (-> *part-group-id-table* 189) obj) - ) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 189) obj)) (set! (-> obj sound-id) (new-sound-id)) (cond - ((task-complete? *game-info* (-> obj entity extra perm task)) - (go eggtop-close #t) - ) - (else - (birth-pickup-at-point - (vector+! - (new 'stack-no-clear 'vector) - (-> obj root-override trans) - (new 'static 'vector :y 6144.0 :w 1.0) - ) - (pickup-type fuel-cell) - (the float (-> obj entity extra perm task)) - #f - obj - (the-as fact-info #f) + ((task-complete? *game-info* (-> obj entity extra perm task)) + (go eggtop-close #t) ) - (go eggtop-idle) + (else + (birth-pickup-at-point + (vector+! (new 'stack-no-clear 'vector) (-> obj root-override trans) (new 'static 'vector :y 6144.0 :w 1.0)) + (pickup-type fuel-cell) + (the float (-> obj entity extra perm task)) + #f + obj + (the-as fact-info #f) + ) + (go eggtop-idle) + ) ) - ) (none) ) @@ -711,31 +458,20 @@ ) (defmethod TODO-RENAME-24 jng-iris-door ((obj jng-iris-door)) - (let - ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others)))) - (let - ((s4-0 - (new - 'process - 'collide-shape-prim-mesh - s5-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others)))) + (let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 512)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set! (-> s4-0 prim-core offense) 4) + (set! (-> s4-0 transform-index) 0) + (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 16384.0) + (set-root-prim! s5-0 s4-0) ) - ) - (set! (-> s4-0 prim-core collide-as) (the-as uint 512)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set! (-> s4-0 prim-core offense) 4) - (set! (-> s4-0 transform-index) 0) - (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 16384.0) - (set-root-prim! s5-0 s4-0) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (backup-collide-with-as s5-0) + (set! (-> obj root-override) s5-0) ) - (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) - (backup-collide-with-as s5-0) - (set! (-> obj root-override) s5-0) - ) 0 (none) ) diff --git a/goal_src/levels/jungleb/plat-flip.gc b/goal_src/levels/jungleb/plat-flip.gc index eb484e04a5..4a923bd950 100644 --- a/goal_src/levels/jungleb/plat-flip.gc +++ b/goal_src/levels/jungleb/plat-flip.gc @@ -23,6 +23,9 @@ :method-count-assert 20 :size-assert #x100 :flag-assert #x1400900100 + (:states + plat-flip-idle + ) ) @@ -37,168 +40,102 @@ (defstate plat-flip-idle (plat-flip) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'bonk) - (activate! (-> self smush) -1.0 90 300 1.0 1.0) - ) - ((= v1-0 'touch) - (send-event arg0 'no-look-around 450) - (the-as smush-control #f) - ) - ) - ) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'bonk) + (activate! (-> self smush) -1.0 90 300 1.0 1.0) + ) + ((= v1-0 'touch) + (send-event arg0 'no-look-around 450) + (the-as smush-control #f) + ) + ) + ) + ) ) - ) :trans (the-as (function none :behavior plat-flip) rider-trans) :code (behavior () - (local-vars (f30-0 float) (f30-1 float)) - (let ((gp-0 #f)) - (while #t - (let ((f0-1 (get-current-value (-> self sync) (-> self total-time)))) - (cond - ((< f0-1 (-> self before-turn-down-time)) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-identity - ) - (set! (-> gp-1 frame-num) 0.0) - ) - (set! gp-0 #f) - ) - ((begin - (set! f30-0 (- f0-1 (-> self before-turn-down-time))) - (< f30-0 (-> self turn-down-time)) - ) - (when (not gp-0) - (set! gp-0 #t) - (sound-play-by-name - (static-sound-name "plat-flip") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - ) - (let ((s5-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-identity - ) - (set! - (-> s5-1 frame-num) - (/ - (* - f30-0 - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length + (local-vars (f30-0 float) (f30-1 float)) + (let ((gp-0 #f)) + (while #t + (let ((f0-1 (get-current-value (-> self sync) (-> self total-time)))) + (cond + ((< f0-1 (-> self before-turn-down-time)) + (let ((gp-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-1 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> gp-1 frame-num) 0.0) ) - -1 - ) + (set! gp-0 #f) ) - ) - (-> self turn-down-time) - ) - ) - ) - ) - ((begin - (set! f30-1 (- f30-0 (-> self turn-down-time))) - (< f30-1 (-> self before-turn-up-time)) - ) - (set! gp-0 #f) - (let ((s5-2 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s5-2 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-identity - ) - (set! - (-> s5-2 frame-num) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length - ) - -1 - ) - ) - ) - ) - ) - (else - (when (not gp-0) - (set! gp-0 #t) - (sound-play-by-name - (static-sound-name "plat-flip") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - ) - (let ((f30-2 (- f30-1 (-> self before-turn-up-time))) - (s5-4 (-> self skel root-channel 0)) - ) - (joint-control-channel-group-eval! - s5-4 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-identity - ) - (set! - (-> s5-4 frame-num) - (/ - (* - f30-2 - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 3)) - data - 0 - length + ((begin (set! f30-0 (- f0-1 (-> self before-turn-down-time))) (< f30-0 (-> self turn-down-time))) + (when (not gp-0) + (set! gp-0 #t) + (sound-play-by-name (static-sound-name "plat-flip") (new-sound-id) 1024 0 0 1 #t) + ) + (let ((s5-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> s5-1 frame-num) + (/ (* f30-0 (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1))) + (-> self turn-down-time) + ) + ) ) - -1 - ) ) + ((begin (set! f30-1 (- f30-0 (-> self turn-down-time))) (< f30-1 (-> self before-turn-up-time))) + (set! gp-0 #f) + (let ((s5-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s5-2 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> s5-2 frame-num) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) + ) + ) + ) + (else + (when (not gp-0) + (set! gp-0 #t) + (sound-play-by-name (static-sound-name "plat-flip") (new-sound-id) 1024 0 0 1 #t) + ) + (let ((f30-2 (- f30-1 (-> self before-turn-up-time))) + (s5-4 (-> self skel root-channel 0)) + ) + (joint-control-channel-group-eval! + s5-4 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-identity + ) + (set! (-> s5-4 frame-num) + (/ (* f30-2 (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1))) + (-> self turn-up-time) + ) + ) + ) + ) ) - (-> self turn-up-time) - ) ) - ) + (let ((s5-5 (new 'stack-no-clear 'vector))) + (set! (-> s5-5 quad) (-> self base-pos quad)) + (+! (-> s5-5 y) (* 1638.4 (update! (-> self smush)))) + (TODO-RENAME-30 (-> self root-override) s5-5) + ) + (suspend) ) - ) ) - (let ((s5-5 (new 'stack-no-clear 'vector))) - (set! (-> s5-5 quad) (-> self base-pos quad)) - (+! (-> s5-5 y) (* 1638.4 (update! (-> self smush)))) - (TODO-RENAME-30 (-> self root-override) s5-5) - ) - (suspend) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior plat-flip) rider-post) ) @@ -206,103 +143,75 @@ (defmethod init-from-entity! plat-flip ((obj plat-flip) (arg0 entity-actor)) (local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag)) (set! (-> obj mask) (logior (process-mask platform) (-> obj mask))) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (set! (-> obj base-pos quad) (-> obj root-override trans quad)) (initialize-skeleton obj *plat-flip-sg* '()) (logior! (-> obj skel status) 1) (let ((f30-0 300.0)) - (set! sv-16 (new 'static 'res-tag)) - (let ((v1-28 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16)))) - (set! - (-> obj before-turn-down-time) - (* f30-0 (if (and v1-28 (> (the-as int (-> sv-16 elt-count)) 0)) - (-> (the-as (pointer float) v1-28)) - 2.0 - ) + (set! sv-16 (new 'static 'res-tag)) + (let ((v1-28 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16)))) + (set! (-> obj before-turn-down-time) (* f30-0 (if (and v1-28 (> (the-as int (-> sv-16 elt-count)) 0)) + (-> (the-as (pointer float) v1-28)) + 2.0 + ) + ) + ) ) - ) ) - ) (let ((f30-1 300.0)) - (set! sv-32 (new 'static 'res-tag)) - (let ((v1-31 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-32)))) - (set! - (-> obj before-turn-up-time) - (* f30-1 (if (and v1-31 (< 1 (the-as int (-> sv-32 elt-count)))) - (-> (the-as (pointer float) v1-31) 1) - 0.2 - ) + (set! sv-32 (new 'static 'res-tag)) + (let ((v1-31 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-32)))) + (set! (-> obj before-turn-up-time) (* f30-1 (if (and v1-31 (< 1 (the-as int (-> sv-32 elt-count)))) + (-> (the-as (pointer float) v1-31) 1) + 0.2 + ) + ) + ) ) - ) ) - ) (set! (-> obj turn-down-time) 300.0) (set! (-> obj turn-up-time) 300.0) - (set! - (-> obj total-time) - (+ - (-> obj before-turn-down-time) - (-> obj turn-down-time) - (-> obj before-turn-up-time) - (-> obj turn-up-time) - ) - ) + (set! (-> obj total-time) + (+ (-> obj before-turn-down-time) (-> obj turn-down-time) (-> obj before-turn-up-time) (-> obj turn-up-time)) + ) (let ((s4-1 (-> obj sync)) (s3-1 (method-of-type sync-info setup-params!)) (s2-0 (the int (-> obj total-time))) ) - (set! sv-48 (new 'static 'res-tag)) - (let ((v1-35 (res-lump-data arg0 'sync-percent pointer :tag-ptr (& sv-48)))) - (s3-1 - s4-1 - (the-as uint s2-0) - (if (and v1-35 (> (the-as int (-> sv-48 elt-count)) 0)) - (-> (the-as (pointer float) v1-35) 0) - 0.0 + (set! sv-48 (new 'static 'res-tag)) + (let ((v1-35 (res-lump-data arg0 'sync-percent pointer :tag-ptr (& sv-48)))) + (s3-1 + s4-1 + (the-as uint s2-0) + (if (and v1-35 (> (the-as int (-> sv-48 elt-count)) 0)) + (-> (the-as (pointer float) v1-35) 0) + 0.0 + ) + 0.15 + 0.15 + ) ) - 0.15 - 0.15 - ) ) - ) (dummy-47 (-> obj root-override)) (go plat-flip-idle) (none) diff --git a/goal_src/levels/lavatube/lavatube-obs.gc b/goal_src/levels/lavatube/lavatube-obs.gc index 298e824ecf..5d1ddf74d0 100644 --- a/goal_src/levels/lavatube/lavatube-obs.gc +++ b/goal_src/levels/lavatube/lavatube-obs.gc @@ -13,6 +13,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavabase-idle + ) ) @@ -83,6 +86,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavafall-idle + ) ) @@ -153,6 +159,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavashortcut-idle + ) ) @@ -508,6 +517,10 @@ :method-count-assert 20 :size-assert #x1b0 :flag-assert #x14014001b0 + (:states + darkecobarrel-mover-die + darkecobarrel-mover-move + ) ) @@ -520,6 +533,9 @@ :method-count-assert 20 :size-assert #xc8 :flag-assert #x14006000c8 + (:states + darkecobarrel-spawner + ) ) @@ -987,6 +1003,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavafallsewera-idle + ) ) @@ -1057,6 +1076,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavafallsewerb-idle + ) ) @@ -1739,6 +1761,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavayellowtarp-idle + ) ) diff --git a/goal_src/levels/maincave/dark-crystal.gc b/goal_src/levels/maincave/dark-crystal.gc index df05fc8e4b..a9ff06ebdf 100644 --- a/goal_src/levels/maincave/dark-crystal.gc +++ b/goal_src/levels/maincave/dark-crystal.gc @@ -10,10 +10,6 @@ (declare-type dark-crystal process-drawable) -(define-extern dark-crystal-spawn-fuel-cell (state dark-crystal)) ;; unknown type -(define-extern dark-crystal-idle (state dark-crystal)) ;; unknown type -(define-extern dark-crystal-explode (state dark-crystal)) ;; unknown type -(define-extern dark-crystal-activate (state dark-crystal)) ;; unknown type ;; DECOMP BEGINS @@ -35,6 +31,12 @@ (dummy-20 (_type_) none 20) (dummy-21 (_type_) symbol 21) ) + (:states + dark-crystal-activate + dark-crystal-explode + dark-crystal-idle + dark-crystal-spawn-fuel-cell + ) ) @@ -581,7 +583,7 @@ (suspend) (ja-channel-set! 0) (ja-post) - (logior! (-> self draw status) 2) + (logior! (-> self draw status) (draw-status drwf01)) (dummy-20 self) (if (-> self underwater?) (sound-play-by-name (static-sound-name "water-explosion") (new-sound-id) 1024 0 0 1 #t) @@ -644,7 +646,7 @@ ) (ja-channel-set! 0) (ja-post) - (logior! (-> self draw status) 2) + (logior! (-> self draw status) (draw-status drwf01)) (if (not (task-complete? *game-info* (-> self entity extra perm task))) (birth-pickup-at-point (-> self root-override trans) diff --git a/goal_src/levels/maincave/driller-lurker.gc b/goal_src/levels/maincave/driller-lurker.gc index dcbc725cdf..e34720d53c 100644 --- a/goal_src/levels/maincave/driller-lurker.gc +++ b/goal_src/levels/maincave/driller-lurker.gc @@ -9,14 +9,6 @@ (declare-type driller-lurker process-drawable) -(define-extern driller-lurker-idle-drilling (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-patrol (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-chase (state symbol driller-lurker)) ;; unknown type -(define-extern driller-lurker-jammed-standing (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-attack (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-patrol-pause (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-die (state driller-lurker)) ;; unknown type -(define-extern driller-lurker-debug-play-anims (state driller-lurker)) ;; unknown type ;; DECOMP BEGINS @@ -61,6 +53,16 @@ (dummy-26 (_type_) symbol 26) (dummy-27 (_type_) object 27) ) + (:states + driller-lurker-attack + (driller-lurker-chase symbol) + driller-lurker-debug-play-anims + driller-lurker-die + driller-lurker-idle-drilling + driller-lurker-jammed-standing + driller-lurker-patrol + driller-lurker-patrol-pause + ) ) @@ -75,764 +77,580 @@ (define *driller-lurker-shadow-control* - (new 'static 'shadow-control - :settings - (new 'static 'shadow-settings - :center - (new 'static 'vector :w (the-as float #x9)) - :shadow-dir - (new 'static 'vector :y -1.0 :w 614400.0) - :bot-plane (new 'static 'plane :y 1.0 :w 4096.0) - :top-plane (new 'static 'plane :y 1.0 :w -2048.0) - :fade-dist 245760.0 - ) - ) + (new 'static 'shadow-control :settings (new 'static 'shadow-settings + :center + (new 'static 'vector :w (the-as float #x9)) + :shadow-dir + (new 'static 'vector :y -1.0 :w 614400.0) + :bot-plane (new 'static 'plane :y 1.0 :w 4096.0) + :top-plane (new 'static 'plane :y 1.0 :w -2048.0) + :fade-dist 245760.0 + ) + ) ) -(set! - (-> *part-group-id-table* 331) - (new 'static 'sparticle-launch-group - :length 4 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-driller-lurker-drilling-debris" - :launcher - (new 'static 'inline-array sparticle-group-item 4 - (sp-item 728 :fade-after (meters 80.0) :falloff-to (meters 80.0)) - (sp-item 2075 :fade-after (meters 60.0) :falloff-to (meters 60.0)) - (sp-item 2076 :fade-after (meters 60.0) :falloff-to (meters 60.0)) - (sp-item 2077 :fade-after (meters 40.0) :falloff-to (meters 40.0)) - ) - :bounds (new 'static 'sphere :w 32768.0) - ) - ) +(set! (-> *part-group-id-table* 331) (new 'static 'sparticle-launch-group + :length 4 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-driller-lurker-drilling-debris" + :launcher + (new 'static 'inline-array sparticle-group-item 4 + (sp-item 728 :fade-after (meters 80.0) :falloff-to (meters 80.0)) + (sp-item 2075 :fade-after (meters 60.0) :falloff-to (meters 60.0)) + (sp-item 2076 :fade-after (meters 60.0) :falloff-to (meters 60.0)) + (sp-item 2077 :fade-after (meters 40.0) :falloff-to (meters 40.0)) + ) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) -(set! - (-> *part-id-table* 728) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 24 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-flt spt-num 4.0) - (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-z -2048.0 4096.0 1.0) - (sp-rnd-flt spt-scale-x (meters 1.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 64.0 32.0 1.0) - (sp-rnd-flt spt-g 64.0 32.0 1.0) - (sp-rnd-flt spt-b 64.0 32.0 1.0) - (sp-rnd-flt spt-a 32.0 64.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.026666667) (meters 0.026666667) 1.0) - (sp-flt spt-scalevel-x (meters 0.006666667)) - (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a -0.45714286) - (sp-flt spt-accel-y 2.7306666) - (sp-flt spt-friction 0.9) - (sp-int spt-timer 210) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 728) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-flt spt-num 4.0) + (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-z -2048.0 4096.0 1.0) + (sp-rnd-flt spt-scale-x (meters 1.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 64.0 32.0 1.0) + (sp-rnd-flt spt-g 64.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 32.0 64.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.026666667) (meters 0.026666667) 1.0) + (sp-flt spt-scalevel-x (meters 0.006666667)) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.45714286) + (sp-flt spt-accel-y 2.7306666) + (sp-flt spt-friction 0.9) + (sp-int spt-timer 210) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2075) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 24 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-flt spt-num 4.0) - (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-z -2048.0 4096.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.25) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 64.0 32.0 1.0) - (sp-rnd-flt spt-g 64.0 32.0 1.0) - (sp-rnd-flt spt-b 64.0 32.0 1.0) - (sp-rnd-flt spt-a 32.0 32.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.10666667) 1.0) - (sp-flt spt-scalevel-x (meters 0.006666667)) - (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a -0.30476192) - (sp-flt spt-accel-y 2.7306666) - (sp-flt spt-friction 0.9) - (sp-int spt-timer 210) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2075) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-flt spt-num 4.0) + (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-z -2048.0 4096.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.25) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 64.0 32.0 1.0) + (sp-rnd-flt spt-g 64.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 32.0 32.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.10666667) 1.0) + (sp-flt spt-scalevel-x (meters 0.006666667)) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.30476192) + (sp-flt spt-accel-y 2.7306666) + (sp-flt spt-friction 0.9) + (sp-int spt-timer 210) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2076) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 23 - (sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2)) - (sp-flt spt-num 4.0) - (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-z -2048.0 4096.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.1) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 96.0 64.0 1.0) - (sp-rnd-flt spt-g 128.0 64.0 1.0) - (sp-rnd-flt spt-b 192.0 64.0 1.0) - (sp-flt spt-a 128.0) - (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.10666667) 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) - (sp-flt spt-accel-y -13.653334) - (sp-flt spt-friction 0.97) - (sp-int spt-timer 450) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-int spt-next-time 375) - (sp-launcher-by-id spt-next-launcher 2078) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2076) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 23 + (sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2)) + (sp-flt spt-num 4.0) + (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-z -2048.0 4096.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 96.0 64.0 1.0) + (sp-rnd-flt spt-g 128.0 64.0 1.0) + (sp-rnd-flt spt-b 192.0 64.0 1.0) + (sp-flt spt-a 128.0) + (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.10666667) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) + (sp-flt spt-accel-y -13.653334) + (sp-flt spt-friction 0.97) + (sp-int spt-timer 450) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-int spt-next-time 375) + (sp-launcher-by-id spt-next-launcher 2078) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2078) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -1.7066667) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2078) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -1.7066667) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 2077) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 23 - (sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2)) - (sp-rnd-flt spt-num 8.0 8.0 1.0) - (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-z -2048.0 4096.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.15) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 96.0 64.0 1.0) - (sp-rnd-flt spt-g 128.0 64.0 1.0) - (sp-rnd-flt spt-b 192.0 64.0 1.0) - (sp-rnd-flt spt-a 64.0 64.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.10666667) 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) - (sp-flt spt-accel-y -13.653334) - (sp-flt spt-friction 0.97) - (sp-int spt-timer 150) - (sp-cpuinfo-flags bit2 bit12 bit14) - (sp-int spt-next-time 5) - (sp-launcher-by-id spt-next-launcher 2078) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2077) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 23 + (sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2)) + (sp-rnd-flt spt-num 8.0 8.0 1.0) + (sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-y (meters -0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-z -2048.0 4096.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.15) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 96.0 64.0 1.0) + (sp-rnd-flt spt-g 128.0 64.0 1.0) + (sp-rnd-flt spt-b 192.0 64.0 1.0) + (sp-rnd-flt spt-a 64.0 64.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.10666667) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) + (sp-flt spt-accel-y -13.653334) + (sp-flt spt-friction 0.97) + (sp-int spt-timer 150) + (sp-cpuinfo-flags bit2 bit12 bit14) + (sp-int spt-next-time 5) + (sp-launcher-by-id spt-next-launcher 2078) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(defbehavior - driller-lurker-default-event-handler driller-lurker - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) +(defbehavior driller-lurker-default-event-handler driller-lurker ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (local-vars (sv-96 collide-shape-prim)) (cond - ((= arg2 'attack) - (cond - ((= (-> arg0 type) target) - (let ((v1-3 (-> arg3 param 2))) - (when (!= v1-3 (-> self player-attack-id)) - (set! (-> self player-attack-id) v1-3) - (case (-> self mode) - ((5) - (let ((v1-5 *target*)) - (when (!= (-> arg3 param 1) 'flop) - (let - ((f0-4 - (atan - (- (-> v1-5 control trans x) (-> self root-overeride trans x)) - (- (-> v1-5 control trans z) (-> self root-overeride trans z)) + ((= arg2 'attack) + (cond + ((= (-> arg0 type) target) + (let ((v1-3 (-> arg3 param 2))) + (when (!= v1-3 (-> self player-attack-id)) + (set! (-> self player-attack-id) v1-3) + (case (-> self mode) + ((5) + (let ((v1-5 *target*)) + (when (!= (-> arg3 param 1) 'flop) + (let ((f0-4 (atan + (- (-> v1-5 control trans x) (-> self root-overeride trans x)) + (- (-> v1-5 control trans z) (-> self root-overeride trans z)) + ) + ) + ) + (quaternion-axis-angle! (-> self root-overeride quat) 0.0 1.0 0.0 f0-4) + ) + ) ) - ) + (go driller-lurker-die) ) - (quaternion-axis-angle! - (-> self root-overeride quat) - 0.0 - 1.0 - 0.0 - f0-4 - ) - ) - ) - ) - (go driller-lurker-die) - ) - (else - (let ((s4-0 *target*) - (s2-0 #f) - (s3-0 #f) - ) - (let* ((s1-0 (the-as touching-shapes-entry (-> arg3 param 0))) - (s0-0 (-> s1-0 head)) + (else + (let ((s4-0 *target*) + (s2-0 #f) + (s3-0 #f) + ) + (let* ((s1-0 (the-as touching-shapes-entry (-> arg3 param 0))) + (s0-0 (-> s1-0 head)) + ) + (while s0-0 + (set! sv-96 (get-touched-prim s0-0 (-> self root-overeride) (the-as touching-prims-entry s1-0))) + (if (and + (logtest? + (-> (get-touched-prim s0-0 (-> s4-0 control) (the-as touching-prims-entry s1-0)) prim-core action) + 1 + ) + (logtest? (-> sv-96 prim-id) 1) + ) + (set! s2-0 #t) + ) + (if (logtest? (-> sv-96 prim-id) 2) + (set! s3-0 #t) + ) + (set! s0-0 (-> s0-0 next)) + ) + ) + (cond + ((or s2-0 (not s3-0)) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) self) + (set! (-> a1-6 num-params) 2) + (set! (-> a1-6 message) 'attack) + (set! (-> a1-6 param 0) (-> arg3 param 0)) + (let ((v1-34 (new 'static 'attack-info :mask #xc0))) + (set! (-> v1-34 shove-up) 8192.0) + (set! (-> v1-34 shove-back) 12288.0) + (set! (-> a1-6 param 1) (the-as uint v1-34)) + ) + (when (send-event-function arg0 a1-6) + (set! (-> self hit-player?) #t) + (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (dummy-54 (-> self root-overeride) 2 0) + (let ((v1-39 (-> self mode))) + (if (or (zero? v1-39) (= v1-39 1) (= v1-39 2)) + (go driller-lurker-chase #t) + ) + ) + ) + ) + ) + (s3-0 + (when (!= (-> arg3 param 1) 'flop) + (let ((f0-11 (atan + (- (-> s4-0 control trans x) (-> self root-overeride trans x)) + (- (-> s4-0 control trans z) (-> self root-overeride trans z)) + ) + ) + ) + (quaternion-axis-angle! (-> self root-overeride quat) 0.0 1.0 0.0 f0-11) + ) + ) + (go driller-lurker-die) + ) + ) ) - (while s0-0 - (set! - sv-96 - (get-touched-prim - s0-0 - (-> self root-overeride) - (the-as touching-prims-entry s1-0) - ) - ) - (if - (and - (logtest? - (-> - (get-touched-prim - s0-0 - (-> s4-0 control) - (the-as touching-prims-entry s1-0) - ) - prim-core - action - ) - 1 ) - (logtest? (-> sv-96 prim-id) 1) - ) - (set! s2-0 #t) ) - (if (logtest? (-> sv-96 prim-id) 2) - (set! s3-0 #t) - ) - (set! s0-0 (-> s0-0 next)) - ) ) - (cond - ((or s2-0 (not s3-0)) - (let ((a1-6 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-6 from) self) - (set! (-> a1-6 num-params) 2) - (set! (-> a1-6 message) 'attack) - (set! (-> a1-6 param 0) (-> arg3 param 0)) - (let ((v1-34 (new 'static 'attack-info :mask #xc0))) - (set! (-> v1-34 shove-up) 8192.0) - (set! (-> v1-34 shove-back) 12288.0) - (set! (-> a1-6 param 1) (the-as uint v1-34)) - ) - (when (send-event-function arg0 a1-6) - (set! (-> self hit-player?) #t) - (set! - (-> self hit-player-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (dummy-54 (-> self root-overeride) 2 0) - (let ((v1-39 (-> self mode))) - (if (or (zero? v1-39) (= v1-39 1) (= v1-39 2)) - (go driller-lurker-chase #t) - ) - ) - ) - ) - ) - (s3-0 - (when (!= (-> arg3 param 1) 'flop) - (let - ((f0-11 - (atan - (- (-> s4-0 control trans x) (-> self root-overeride trans x)) - (- (-> s4-0 control trans z) (-> self root-overeride trans z)) - ) - ) - ) - (quaternion-axis-angle! - (-> self root-overeride quat) - 0.0 - 1.0 - 0.0 - f0-11 - ) - ) - ) - (go driller-lurker-die) - ) - ) - ) ) - ) - ) - ) - ) - (else - (go driller-lurker-die) - ) - ) - ) - ((= arg2 'touch) - (when (= (-> arg0 type) target) - (let ((a1-11 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-11 from) self) - (set! (-> a1-11 num-params) 2) - (set! (-> a1-11 message) 'attack) - (set! (-> a1-11 param 0) (-> arg3 param 0)) - (let ((v1-57 (new 'static 'attack-info :mask #xc0))) - (set! (-> v1-57 shove-up) 8192.0) - (set! (-> v1-57 shove-back) 12288.0) - (set! (-> a1-11 param 1) (the-as uint v1-57)) - ) - (when (send-event-function arg0 a1-11) - (set! (-> self hit-player?) #t) - (set! - (-> self hit-player-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (dummy-54 (-> self root-overeride) 2 0) - (let ((v1-62 (-> self mode))) - (if (or (zero? v1-62) (= v1-62 1) (= v1-62 2)) - (go driller-lurker-chase #t) - ) - ) - ) - ) - ) - ) - ) - ) - -(defmethod - dummy-20 - driller-lurker - ((obj driller-lurker) (arg0 symbol) (arg1 target)) - (let ((v1-1 (-> *display* base-frame-counter))) - (when (!= v1-1 (-> obj last-update-time)) - (set! (-> obj last-update-time) (the-as uint v1-1)) - (let* ((f0-0 (-> obj path-speed)) - (f1-1 - (seek - f0-0 - (-> obj targ-path-speed) - (* 12288.0 (-> *display* seconds-per-frame)) - ) - ) - ) - (set! (-> obj path-speed) f1-1) - (when (< 0.0 f1-1) - (let* ((f0-5 (-> obj path-u)) - (f30-0 (* (-> obj path-dir) f1-1 (-> *display* seconds-per-frame))) - (s4-0 #t) - (f0-6 - (+ f0-5 (* 0.00024414062 (-> obj path-units-per-meter) f30-0)) - ) - ) - (cond - ((< f0-6 0.0) - (set! s4-0 #f) - (cond - (arg0 - (set! f0-6 (- f0-6)) - (set! (-> obj path-dir) (- (-> obj path-dir))) - (set! (-> obj path-speed) 0.0) - ) - (else - (set! f0-6 0.0) - (set! (-> obj path-speed) 0.0) - ) - ) - ) - ((< 1.0 f0-6) - (set! s4-0 #f) - (cond - (arg0 - (set! f0-6 (- 2.0 f0-6)) - (set! (-> obj path-dir) (- (-> obj path-dir))) - (set! (-> obj path-speed) 0.0) - ) - (else - (set! f0-6 1.0) - (set! (-> obj path-speed) 0.0) - ) - ) - ) - ) - (set! (-> obj path-u) f0-6) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (set! (-> s3-1 quad) (-> obj root-overeride trans quad)) - (eval-path-curve! - (-> obj path) - (-> obj root-overeride trans) - f0-6 - 'interp - ) - (when s4-0 - (let - ((f0-7 (vector-vector-xz-distance s3-1 (-> obj root-overeride trans))) - ) - (set! - (-> obj path-units-per-meter) - (* (/ (fabs f30-0) f0-7) (-> obj path-units-per-meter)) - ) - ) - ) - ) - ) - ) - ) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (TODO-RENAME-14 (-> obj path) s4-1 (-> obj path-u)) - (let ((f0-13 (atan (-> s4-1 x) (-> s4-1 z)))) - (if (< (-> obj path-dir) 0.0) - (set! f0-13 (+ 32768.0 f0-13)) - ) - (set! (-> obj path-ry) f0-13) - ) - ) - (case (-> obj mode) - ((4) - (when *target* - (let ((a0-13 (target-pos 0)) - (v1-26 (new 'stack-no-clear 'vector)) - ) - (vector-! v1-26 a0-13 (-> obj root-overeride trans)) - (let ((f0-16 (atan (-> v1-26 x) (-> v1-26 z)))) - (set! - (-> obj facing-ry) - (deg-seek-smooth - (-> obj facing-ry) - f0-16 - (* 32768.0 (-> *display* seconds-per-frame)) - 0.25 - ) - ) - ) - ) - (when (< 16384.0 (fabs (deg- (-> obj facing-ry) (-> obj path-ry)))) - (set! (-> obj path-dir) (- (-> obj path-dir))) - (set! (-> obj path-ry) (+ 32768.0 (-> obj path-ry))) - ) - ) - ) - (else - (if (!= (-> obj mode) 1) - (set! - (-> obj facing-ry) - (deg-seek-smooth - (-> obj facing-ry) - (-> obj path-ry) - (* 32768.0 (-> *display* seconds-per-frame)) - 0.25 - ) - ) - ) - ) - ) - (quaternion-axis-angle! - (-> obj root-overeride quat) - 0.0 - 1.0 - 0.0 - (-> obj facing-ry) - ) - (let ((f30-2 0.0)) - (when *target* - (let - ((f0-34 - (vector-vector-xz-distance - (target-pos 0) - (-> obj root-overeride trans) - ) - ) - ) - (if (< f0-34 36864.0) - (set! f30-2 (- 1.0 (* 0.00006510417 (fmax 0.0 (+ -21504.0 f0-34))))) - ) - ) - ) - (let - ((f28-1 - (* - 0.0001373291 - (fmin 7281.778 (fabs (deg- (-> obj path-ry) (-> obj facing-ry)))) - ) - ) - ) - (cond - ((< 0.0 f30-2) - (let ((s3-2 (new 'stack-no-clear 'vector))) - (vector-! s3-2 (target-pos 0) (-> obj root-overeride trans)) - (let* ((f1-27 (vector-x-angle s3-2)) - (f1-29 (fmax 728.1778 (fmin 10194.489 f1-27))) - (f0-46 (* 0.000105637766 (+ -728.1778 f1-29))) - (f0-47 (lerp f28-1 f0-46 f30-2)) - ) - (set! - (-> obj up-blend) - (seek-with-smooth - (-> obj up-blend) - f0-47 - (* 8192.0 (-> *display* seconds-per-frame)) - 0.25 - 0.01 - ) - ) - ) - ) ) (else - (set! - (-> obj up-blend) - (seek-with-smooth - (-> obj up-blend) - f28-1 - (* 8192.0 (-> *display* seconds-per-frame)) - 0.125 - 0.01 - ) + (go driller-lurker-die) ) - ) ) - ) ) - (when (and arg1 *target*) - (set-target! (-> obj neck) (target-pos 5)) - (if *target* - (look-at-enemy! - (-> *target* neck) - (the-as vector (-> obj root-overeride root-prim prim-core)) - 'attacking - obj - ) - ) - ) - (let ((f30-3 (-> obj drill-speed))) - (let ((v1-56 (-> obj mode))) - (cond - ((or (= v1-56 2) (zero? v1-56)) - (set! - f30-3 - (seek f30-3 72817.78 (* 372827.03 (-> *display* seconds-per-frame))) - ) - ) - ((= v1-56 1) - (set! - f30-3 - (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame))) - ) - ) - ((or (= v1-56 3) (= v1-56 4)) - (set! - f30-3 - (if - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> obj started-chasing-time)) - ) - 675 + ((= arg2 'touch) + (when (= (-> arg0 type) target) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 2) + (set! (-> a1-11 message) 'attack) + (set! (-> a1-11 param 0) (-> arg3 param 0)) + (let ((v1-57 (new 'static 'attack-info :mask #xc0))) + (set! (-> v1-57 shove-up) 8192.0) + (set! (-> v1-57 shove-back) 12288.0) + (set! (-> a1-11 param 1) (the-as uint v1-57)) ) - (seek f30-3 0.0 (* 600746.7 (-> *display* seconds-per-frame))) - (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame))) - ) - ) - ) - ((= v1-56 5) - (set! - f30-3 - (if - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> obj started-chasing-time)) - ) - 1725 + (when (send-event-function arg0 a1-11) + (set! (-> self hit-player?) #t) + (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (dummy-54 (-> self root-overeride) 2 0) + (let ((v1-62 (-> self mode))) + (if (or (zero? v1-62) (= v1-62 1) (= v1-62 2)) + (go driller-lurker-chase #t) + ) + ) ) - (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame))) - (seek f30-3 0.0 (* 600746.7 (-> *display* seconds-per-frame))) - ) ) - ) ) - ) - (set! (-> obj drill-speed) f30-3) - (cond - ((>= f30-3 36408.89) - (update-trans! (-> obj sound) (-> obj root-overeride trans)) - (update! (-> obj sound)) - (set! (-> obj played-drill-sound?) #t) - ) - (else - (when (-> obj played-drill-sound?) - (set! (-> obj played-drill-sound?) #f) - (stop! (-> obj sound)) - ) - ) - ) - (let - ((f0-69 (+ (-> obj drill-rz) (* f30-3 (-> *display* seconds-per-frame))))) - (set! - (-> obj drill-rz) - (- f0-69 (* (the float (the int (/ f0-69 65536.0))) 65536.0)) - ) - ) - ) - (let ((s5-2 (new 'stack-no-clear 'quaternion))) - (quaternion-axis-angle! s5-2 0.0 0.0 1.0 (-> obj drill-rz)) - (set-trs! (-> obj drill) (the-as vector #f) s5-2 (the-as vector #f)) - ) - 0 - ) - ) - (when - (and - (-> obj hit-player?) - (or - (not *target*) - (and - (zero? (logand (-> *target* state-flags) #x80f8)) - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> obj hit-player-time)) - ) - 15 - ) - ) ) ) - (dummy-54 (-> obj root-overeride) 2 1) - (set! (-> obj hit-player?) #f) - #f - ) + ) + +(defmethod dummy-20 driller-lurker ((obj driller-lurker) (arg0 symbol) (arg1 target)) + (let ((v1-1 (-> *display* base-frame-counter))) + (when (!= v1-1 (-> obj last-update-time)) + (set! (-> obj last-update-time) (the-as uint v1-1)) + (let* ((f0-0 (-> obj path-speed)) + (f1-1 (seek f0-0 (-> obj targ-path-speed) (* 12288.0 (-> *display* seconds-per-frame)))) + ) + (set! (-> obj path-speed) f1-1) + (when (< 0.0 f1-1) + (let* ((f0-5 (-> obj path-u)) + (f30-0 (* (-> obj path-dir) f1-1 (-> *display* seconds-per-frame))) + (s4-0 #t) + (f0-6 (+ f0-5 (* 0.00024414062 (-> obj path-units-per-meter) f30-0))) + ) + (cond + ((< f0-6 0.0) + (set! s4-0 #f) + (cond + (arg0 + (set! f0-6 (- f0-6)) + (set! (-> obj path-dir) (- (-> obj path-dir))) + (set! (-> obj path-speed) 0.0) + ) + (else + (set! f0-6 0.0) + (set! (-> obj path-speed) 0.0) + ) + ) + ) + ((< 1.0 f0-6) + (set! s4-0 #f) + (cond + (arg0 + (set! f0-6 (- 2.0 f0-6)) + (set! (-> obj path-dir) (- (-> obj path-dir))) + (set! (-> obj path-speed) 0.0) + ) + (else + (set! f0-6 1.0) + (set! (-> obj path-speed) 0.0) + ) + ) + ) + ) + (set! (-> obj path-u) f0-6) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (set! (-> s3-1 quad) (-> obj root-overeride trans quad)) + (eval-path-curve! (-> obj path) (-> obj root-overeride trans) f0-6 'interp) + (when s4-0 + (let ((f0-7 (vector-vector-xz-distance s3-1 (-> obj root-overeride trans)))) + (set! (-> obj path-units-per-meter) (* (/ (fabs f30-0) f0-7) (-> obj path-units-per-meter))) + ) + ) + ) + ) + ) + ) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (TODO-RENAME-14 (-> obj path) s4-1 (-> obj path-u)) + (let ((f0-13 (atan (-> s4-1 x) (-> s4-1 z)))) + (if (< (-> obj path-dir) 0.0) + (set! f0-13 (+ 32768.0 f0-13)) + ) + (set! (-> obj path-ry) f0-13) + ) + ) + (case (-> obj mode) + ((4) + (when *target* + (let ((a0-13 (target-pos 0)) + (v1-26 (new 'stack-no-clear 'vector)) + ) + (vector-! v1-26 a0-13 (-> obj root-overeride trans)) + (let ((f0-16 (atan (-> v1-26 x) (-> v1-26 z)))) + (set! (-> obj facing-ry) + (deg-seek-smooth (-> obj facing-ry) f0-16 (* 32768.0 (-> *display* seconds-per-frame)) 0.25) + ) + ) + ) + (when (< 16384.0 (fabs (deg- (-> obj facing-ry) (-> obj path-ry)))) + (set! (-> obj path-dir) (- (-> obj path-dir))) + (set! (-> obj path-ry) (+ 32768.0 (-> obj path-ry))) + ) + ) + ) + (else + (if (!= (-> obj mode) 1) + (set! (-> obj facing-ry) + (deg-seek-smooth (-> obj facing-ry) (-> obj path-ry) (* 32768.0 (-> *display* seconds-per-frame)) 0.25) + ) + ) + ) + ) + (quaternion-axis-angle! (-> obj root-overeride quat) 0.0 1.0 0.0 (-> obj facing-ry)) + (let ((f30-2 0.0)) + (when *target* + (let ((f0-34 (vector-vector-xz-distance (target-pos 0) (-> obj root-overeride trans)))) + (if (< f0-34 36864.0) + (set! f30-2 (- 1.0 (* 0.00006510417 (fmax 0.0 (+ -21504.0 f0-34))))) + ) + ) + ) + (let ((f28-1 (* 0.0001373291 (fmin 7281.778 (fabs (deg- (-> obj path-ry) (-> obj facing-ry))))))) + (cond + ((< 0.0 f30-2) + (let ((s3-2 (new 'stack-no-clear 'vector))) + (vector-! s3-2 (target-pos 0) (-> obj root-overeride trans)) + (let* ((f1-27 (vector-x-angle s3-2)) + (f1-29 (fmax 728.1778 (fmin 10194.489 f1-27))) + (f0-46 (* 0.000105637766 (+ -728.1778 f1-29))) + (f0-47 (lerp f28-1 f0-46 f30-2)) + ) + (set! (-> obj up-blend) + (seek-with-smooth (-> obj up-blend) f0-47 (* 8192.0 (-> *display* seconds-per-frame)) 0.25 0.01) + ) + ) + ) + ) + (else + (set! (-> obj up-blend) + (seek-with-smooth (-> obj up-blend) f28-1 (* 8192.0 (-> *display* seconds-per-frame)) 0.125 0.01) + ) + ) + ) + ) + ) + (when (and arg1 *target*) + (set-target! (-> obj neck) (target-pos 5)) + (if *target* + (look-at-enemy! (-> *target* neck) (the-as vector (-> obj root-overeride root-prim prim-core)) 'attacking obj) + ) + ) + (let ((f30-3 (-> obj drill-speed))) + (let ((v1-56 (-> obj mode))) + (cond + ((or (= v1-56 2) (zero? v1-56)) + (set! f30-3 (seek f30-3 72817.78 (* 372827.03 (-> *display* seconds-per-frame)))) + ) + ((= v1-56 1) + (set! f30-3 (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame)))) + ) + ((or (= v1-56 3) (= v1-56 4)) + (set! f30-3 (if (>= (- (-> *display* base-frame-counter) (the-as int (-> obj started-chasing-time))) 675) + (seek f30-3 0.0 (* 600746.7 (-> *display* seconds-per-frame))) + (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame))) + ) + ) + ) + ((= v1-56 5) + (set! f30-3 (if (>= (- (-> *display* base-frame-counter) (the-as int (-> obj started-chasing-time))) 1725) + (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame))) + (seek f30-3 0.0 (* 600746.7 (-> *display* seconds-per-frame))) + ) + ) + ) + ) + ) + (set! (-> obj drill-speed) f30-3) + (cond + ((>= f30-3 36408.89) + (update-trans! (-> obj sound) (-> obj root-overeride trans)) + (update! (-> obj sound)) + (set! (-> obj played-drill-sound?) #t) + ) + (else + (when (-> obj played-drill-sound?) + (set! (-> obj played-drill-sound?) #f) + (stop! (-> obj sound)) + ) + ) + ) + (let ((f0-69 (+ (-> obj drill-rz) (* f30-3 (-> *display* seconds-per-frame))))) + (set! (-> obj drill-rz) (- f0-69 (* (the float (the int (/ f0-69 65536.0))) 65536.0))) + ) + ) + (let ((s5-2 (new 'stack-no-clear 'quaternion))) + (quaternion-axis-angle! s5-2 0.0 0.0 1.0 (-> obj drill-rz)) + (set-trs! (-> obj drill) (the-as vector #f) s5-2 (the-as vector #f)) + ) + 0 + ) + ) + (when (and + (-> obj hit-player?) + (or (not *target*) (and + (zero? (logand (-> *target* state-flags) #x80f8)) + (>= (- (-> *display* base-frame-counter) (the-as int (-> obj hit-player-time))) 15) + ) + ) + ) + (dummy-54 (-> obj root-overeride) 2 1) + (set! (-> obj hit-player?) #f) + #f + ) ) (defmethod dummy-23 driller-lurker ((obj driller-lurker)) (let ((v1-1 (-> *display* base-frame-counter))) - (when (!= v1-1 (-> obj last-player-path-u-time)) - (set! (-> obj last-player-path-u-time) (the-as uint v1-1)) - (cond - (*target* - (let* ((s5-0 (-> obj path)) - (s4-0 (method-of-object s5-0 TODO-RENAME-20)) - ) - (target-pos 0) - (set! (-> obj player-path-u) (s4-0 s5-0)) - ) + (when (!= v1-1 (-> obj last-player-path-u-time)) + (set! (-> obj last-player-path-u-time) (the-as uint v1-1)) + (cond + (*target* + (let* ((s5-0 (-> obj path)) + (s4-0 (method-of-object s5-0 TODO-RENAME-20)) + ) + (target-pos 0) + (set! (-> obj player-path-u) (s4-0 s5-0)) + ) + ) + (else + (set! (-> obj player-path-u) 0.0) + ) + ) ) - (else - (set! (-> obj player-path-u) 0.0) - ) - ) ) - ) (-> obj player-path-u) ) (defmethod dummy-25 driller-lurker ((obj driller-lurker)) (when *target* - (let* ((s5-0 (target-pos 0)) - (f0-1 (- (-> s5-0 y) (-> obj root-overeride trans y))) - ) - (when (and (>= 32768.0 f0-1) (>= f0-1 -2048.0)) - (case (-> obj mode) - ((1) - (if - (>= - 73728.0 - (vector-vector-xz-distance (-> obj root-overeride trans) s5-0) - ) - (return #t) - ) - ) - (else - (when - (>= - 102400.0 - (vector-vector-xz-distance (-> obj root-overeride trans) s5-0) - ) - (let - ((f0-8 - (atan - (- (-> s5-0 x) (-> obj root-overeride trans x)) - (- (-> s5-0 z) (-> obj root-overeride trans z)) - ) + (let* ((s5-0 (target-pos 0)) + (f0-1 (- (-> s5-0 y) (-> obj root-overeride trans y))) ) + (when (and (>= 32768.0 f0-1) (>= f0-1 -2048.0)) + (case (-> obj mode) + ((1) + (if (>= 73728.0 (vector-vector-xz-distance (-> obj root-overeride trans) s5-0)) + (return #t) + ) + ) + (else + (when (>= 102400.0 (vector-vector-xz-distance (-> obj root-overeride trans) s5-0)) + (let ((f0-8 (atan (- (-> s5-0 x) (-> obj root-overeride trans x)) (- (-> s5-0 z) (-> obj root-overeride trans z)))) + ) + (if (>= 20024.889 (fabs (deg- f0-8 (-> obj facing-ry)))) + (return #t) + ) + ) + ) + ) ) - (if (>= 20024.889 (fabs (deg- f0-8 (-> obj facing-ry)))) - (return #t) - ) - ) ) - ) ) - ) ) - ) #f ) (defmethod dummy-26 driller-lurker ((obj driller-lurker)) (when *target* - (let* ((a1-0 (target-pos 0)) - (f0-1 (- (-> a1-0 y) (-> obj root-overeride trans y))) + (let* ((a1-0 (target-pos 0)) + (f0-1 (- (-> a1-0 y) (-> obj root-overeride trans y))) + ) + (if (and + (< f0-1 40960.0) + (< -10240.0 f0-1) + (< (vector-vector-xz-distance (-> obj root-overeride trans) a1-0) 143360.0) + ) + (return #f) ) - (if - (and - (< f0-1 40960.0) - (< -10240.0 f0-1) - (< - (vector-vector-xz-distance (-> obj root-overeride trans) a1-0) - 143360.0 - ) ) - (return #f) - ) ) - ) #t ) (defmethod dummy-24 driller-lurker ((obj driller-lurker)) (when *target* - (let* ((a1-0 (target-pos 0)) - (f0-1 (- (-> a1-0 y) (-> obj root-overeride trans y))) + (let* ((a1-0 (target-pos 0)) + (f0-1 (- (-> a1-0 y) (-> obj root-overeride trans y))) + ) + (when (and (< f0-1 40960.0) (< -10240.0 f0-1)) + (let ((f0-2 (vector-vector-xz-distance (-> obj root-overeride trans) a1-0))) + (cond + ((>= 17408.0 f0-2) + (return #t) + ) + ((< f0-2 143360.0) + (let ((f0-3 (dummy-23 obj)) + (f1-5 (-> obj path-u)) + ) + (if (>= (* 0.1 (-> obj path-units-per-meter)) (fabs (- f0-3 f1-5))) + (return #t) + ) + ) + ) + ) ) - (when (and (< f0-1 40960.0) (< -10240.0 f0-1)) - (let - ((f0-2 (vector-vector-xz-distance (-> obj root-overeride trans) a1-0))) - (cond - ((>= 17408.0 f0-2) - (return #t) ) - ((< f0-2 143360.0) - (let ((f0-3 (dummy-23 obj)) - (f1-5 (-> obj path-u)) - ) - (if (>= (* 0.1 (-> obj path-units-per-meter)) (fabs (- f0-3 f1-5))) - (return #t) - ) - ) - ) - ) ) - ) ) - ) #f ) @@ -840,19 +658,16 @@ (let ((a2-0 (-> obj node-list data 25 bone transform)) (s5-0 (new 'stack-no-clear 'vector)) ) - (set-vector! s5-0 0.0 0.0 8192.0 1.0) - (vector-matrix*! s5-0 s5-0 a2-0) - (vector-float*! s5-0 s5-0 (/ 1.0 (-> s5-0 w))) - (spawn (-> obj part) s5-0) - ) + (set-vector! s5-0 0.0 0.0 8192.0 1.0) + (vector-matrix*! s5-0 s5-0 a2-0) + (vector-float*! s5-0 s5-0 (/ 1.0 (-> s5-0 w))) + (spawn (-> obj part) s5-0) + ) ) (defstate driller-lurker-debug-play-anims (driller-lurker) :code - (behavior () - 0 - (none) - ) + (behavior () 0 (none)) :post (the-as (function none :behavior driller-lurker) transform-post) ) @@ -862,136 +677,93 @@ driller-lurker-default-event-handler :enter (behavior () - (set! (-> self mode) (the-as uint 1)) - (set! (-> self targ-path-speed) 0.0) - (set! (-> self path-speed) 0.0) - (shut-down! (-> self neck)) - (none) - ) + (set! (-> self mode) (the-as uint 1)) + (set! (-> self targ-path-speed) 0.0) + (set! (-> self path-speed) 0.0) + (shut-down! (-> self neck)) + (none) + ) :exit - (behavior () - (stop! (-> self sound2)) - (none) - ) + (behavior () (stop! (-> self sound2)) (none)) :trans (behavior () - (if (dummy-25 self) - (go driller-lurker-chase #t) + (if (dummy-25 self) + (go driller-lurker-chase #t) + ) + (dummy-20 self #t (the-as target #f)) + (none) ) - (dummy-20 self #t (the-as target #f)) - (none) - ) :code (behavior () - (update-trans! (-> self sound2) (-> self root-overeride trans)) - (while #t - (set! (-> self timeout) (rand-vu-int-range 4 8)) - (ja-channel-push! 1 60) - (dotimes (gp-0 (-> self timeout)) - (let ((f30-0 (rand-vu-float-range 1.0 1.8))) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 frame-group) - (the-as art-joint-anim (-> self draw art-group data 15)) - ) - (set! - (-> a0-4 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 15)) - data - 0 - length - ) - -1 + (update-trans! (-> self sound2) (-> self root-overeride trans)) + (while #t + (set! (-> self timeout) (rand-vu-int-range 4 8)) + (ja-channel-push! 1 60) + (dotimes (gp-0 (-> self timeout)) + (let ((f30-0 (rand-vu-float-range 1.0 1.8))) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 frame-group) (the-as art-joint-anim (-> self draw art-group data 15))) + (set! (-> a0-4 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 15)) data 0 length) -1)) + ) + (set! (-> a0-4 param 1) f30-0) + (set! (-> a0-4 frame-num) 0.0) + (joint-control-channel-group! a0-4 (the-as art-joint-anim (-> self draw art-group data 15)) num-func-seek!) + ) + (until (ja-done? 0) + (update! (-> self sound2)) + (if (and (>= (ja-aframe-num 0) 7.0) (>= 13.0 (ja-aframe-num 0))) + (dummy-27 self) + ) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1))) + (set! (-> a0-9 param 1) f30-0) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) + ) + (stop! (-> self sound2)) + (ja-channel-push! 1 60) + (cond + ((zero? (rand-vu-int-count 2)) + (let ((gp-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-1 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-identity + ) + (set! (-> gp-1 frame-num) 0.0) + ) ) + (else + (let ((gp-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-2 + (the-as art-joint-anim (-> self draw art-group data 7)) + num-func-identity + ) + (set! (-> gp-2 frame-num) 0.0) + ) + ) ) - (set! (-> a0-4 param 1) f30-0) - (set! (-> a0-4 frame-num) 0.0) - (joint-control-channel-group! - a0-4 - (the-as art-joint-anim (-> self draw art-group data 15)) - num-func-seek! + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1))) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group! a0-16 (the-as art-joint-anim #f) num-func-seek!) ) - ) (until (ja-done? 0) - (update! (-> self sound2)) - (if (and (>= (ja-aframe-num 0) 7.0) (>= 13.0 (ja-aframe-num 0))) - (dummy-27 self) + (suspend) + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) (the float (+ (-> a0-17 frame-group data 0 length) -1))) + (set! (-> a0-17 param 1) 1.0) + (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-seek!) + ) ) - (suspend) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 param 0) - (the float (+ (-> a0-9 frame-group data 0 length) -1)) - ) - (set! (-> a0-9 param 1) f30-0) - (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) ) - ) - (stop! (-> self sound2)) - (ja-channel-push! 1 60) - (cond - ((zero? (rand-vu-int-count 2)) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-identity - ) - (set! (-> gp-1 frame-num) 0.0) - ) - ) - (else - (let ((gp-2 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 7)) - num-func-identity - ) - (set! (-> gp-2 frame-num) 0.0) - ) - ) - ) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 param 0) - (the float (+ (-> a0-16 frame-group data 0 length) -1)) - ) - (set! (-> a0-16 param 1) 1.0) - (joint-control-channel-group! - a0-16 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-17 (-> self skel root-channel 0))) - (set! - (-> a0-17 param 0) - (the float (+ (-> a0-17 frame-group data 0 length) -1)) - ) - (set! (-> a0-17 param 1) 1.0) - (joint-control-channel-group-eval! - a0-17 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior driller-lurker) transform-post) ) @@ -1001,92 +773,70 @@ driller-lurker-default-event-handler :enter (behavior () - (set! (-> self mode) (the-as uint 2)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self timeout) (rand-vu-int-range 900 3600)) - (set! (-> self targ-path-speed) 15360.0) - (if (>= 4096.0 (-> self path-speed)) + (set! (-> self mode) (the-as uint 2)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self timeout) (rand-vu-int-range 900 3600)) (set! (-> self targ-path-speed) 15360.0) + (if (>= 4096.0 (-> self path-speed)) + (set! (-> self targ-path-speed) 15360.0) + ) + (shut-down! (-> self neck)) + (none) ) - (shut-down! (-> self neck)) - (none) - ) :trans (behavior () - (if (dummy-25 self) - (go driller-lurker-chase #t) + (if (dummy-25 self) + (go driller-lurker-chase #t) + ) + (dummy-20 self #t (the-as target #f)) + (none) ) - (dummy-20 self #t (the-as target #f)) - (none) - ) :code (behavior () - (ja-channel-push! 2 60) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (let ((a0-2 (-> self skel root-channel 1))) - (set! (-> a0-2 frame-interp) (-> self up-blend)) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - (set! (-> a0-2 param 0) 0.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-chan - ) - ) - (while #t - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 param 0) - (the float (+ (-> a0-3 frame-group data 0 length) -1)) - ) - (set! (-> a0-3 param 1) 1.0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (when (= (ja-group-size) 2) - (let ((a0-4 (-> self skel root-channel 1))) - (set! (-> a0-4 frame-interp) (-> self up-blend)) - (set! (-> a0-4 param 0) 0.0) + (ja-channel-push! 2 60) + (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-chan - ) - ) - ) - (when (ja-done? 0) - (if - (and - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - (-> self timeout) + gp-0 + (the-as art-joint-anim (-> self draw art-group data 8)) + num-func-identity ) - (>= 546.13336 (fabs (deg- (-> self path-ry) (-> self facing-ry)))) - ) - (go driller-lurker-patrol-pause) + (set! (-> gp-0 frame-num) 0.0) ) - (let ((v1-34 (-> self skel root-channel 0))) - (set! (-> v1-34 num-func) num-func-identity) - (set! (-> v1-34 frame-num) 0.0) + (let ((a0-2 (-> self skel root-channel 1))) + (set! (-> a0-2 frame-interp) (-> self up-blend)) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + (set! (-> a0-2 param 0) 0.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-chan) ) - ) + (while #t + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1))) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) + (when (= (ja-group-size) 2) + (let ((a0-4 (-> self skel root-channel 1))) + (set! (-> a0-4 frame-interp) (-> self up-blend)) + (set! (-> a0-4 param 0) 0.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-chan) + ) + ) + (when (ja-done? 0) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self timeout)) + (>= 546.13336 (fabs (deg- (-> self path-ry) (-> self facing-ry)))) + ) + (go driller-lurker-patrol-pause) + ) + (let ((v1-34 (-> self skel root-channel 0))) + (set! (-> v1-34 num-func) num-func-identity) + (set! (-> v1-34 frame-num) 0.0) + ) + ) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior driller-lurker) transform-post) ) @@ -1096,119 +846,105 @@ driller-lurker-default-event-handler :enter (behavior () - (set! (-> self mode) (the-as uint 2)) - (set! (-> self path-speed) 0.0) - (set! (-> self targ-path-speed) 0.0) - (shut-down! (-> self neck)) - (none) - ) + (set! (-> self mode) (the-as uint 2)) + (set! (-> self path-speed) 0.0) + (set! (-> self targ-path-speed) 0.0) + (shut-down! (-> self neck)) + (none) + ) :trans (behavior () - (if (dummy-25 self) - (go driller-lurker-chase #t) + (if (dummy-25 self) + (go driller-lurker-chase #t) + ) + (dummy-20 self #t (the-as target #f)) + (none) ) - (dummy-20 self #t (the-as target #f)) - (none) - ) :code (behavior () - (set! (-> self timeout) (rand-vu-int-range 2 4)) - (let ((s5-0 -1)) - (dotimes (gp-0 (-> self timeout)) - (let ((v1-0 (rand-vu-int-count 3))) - (if (= v1-0 s5-0) - (set! v1-0 (mod (+ v1-0 1) 3)) - ) - (set! s5-0 v1-0) - (cond - ((zero? v1-0) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 5) - ) + (set! (-> self timeout) (rand-vu-int-range 2 4)) + (let ((s5-0 -1)) + (dotimes (gp-0 (-> self timeout)) + (let ((v1-0 (rand-vu-int-count 3))) + (if (= v1-0 s5-0) + (set! v1-0 (mod (+ v1-0 1) 3)) + ) + (set! s5-0 v1-0) + (cond + ((zero? v1-0) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 5) + ) + ) + (ja-channel-push! 1 60) + ) + (let ((s4-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s4-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> s4-0 frame-num) 0.0) + ) ) - (ja-channel-push! 1 60) - ) - (let ((s4-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s4-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-identity - ) - (set! (-> s4-0 frame-num) 0.0) - ) - ) - ((= v1-0 1) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 6) - ) + ((= v1-0 1) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 6) + ) + ) + (ja-channel-push! 1 60) + ) + (let ((s4-1 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s4-1 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-identity + ) + (set! (-> s4-1 frame-num) 0.0) + ) ) - (ja-channel-push! 1 60) - ) - (let ((s4-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s4-1 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-identity - ) - (set! (-> s4-1 frame-num) 0.0) - ) - ) - ((= v1-0 2) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 7) - ) + ((= v1-0 2) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 7) + ) + ) + (ja-channel-push! 1 60) + ) + (let ((s4-2 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s4-2 + (the-as art-joint-anim (-> self draw art-group data 7)) + num-func-identity + ) + (set! (-> s4-2 frame-num) 0.0) + ) ) - (ja-channel-push! 1 60) - ) - (let ((s4-2 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s4-2 - (the-as art-joint-anim (-> self draw art-group data 7)) - num-func-identity + ) + ) + (let ((a0-27 (-> self skel root-channel 0))) + (set! (-> a0-27 param 0) (the float (+ (-> a0-27 frame-group data 0 length) -1))) + (set! (-> a0-27 param 1) 1.0) + (joint-control-channel-group! a0-27 (the-as art-joint-anim #f) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-28 (-> self skel root-channel 0))) + (set! (-> a0-28 param 0) (the float (+ (-> a0-28 frame-group data 0 length) -1))) + (set! (-> a0-28 param 1) 1.0) + (joint-control-channel-group-eval! a0-28 (the-as art-joint-anim #f) num-func-seek!) + ) ) - (set! (-> s4-2 frame-num) 0.0) - ) ) - ) ) - (let ((a0-27 (-> self skel root-channel 0))) - (set! - (-> a0-27 param 0) - (the float (+ (-> a0-27 frame-group data 0 length) -1)) - ) - (set! (-> a0-27 param 1) 1.0) - (joint-control-channel-group! - a0-27 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-28 (-> self skel root-channel 0))) - (set! - (-> a0-28 param 0) - (the float (+ (-> a0-28 frame-group data 0 length) -1)) - ) - (set! (-> a0-28 param 1) 1.0) - (joint-control-channel-group-eval! - a0-28 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) + (go driller-lurker-patrol) + (none) ) - (go driller-lurker-patrol) - (none) - ) :post (the-as (function none :behavior driller-lurker) transform-post) ) @@ -1218,119 +954,95 @@ driller-lurker-default-event-handler :enter (behavior ((arg0 symbol)) - (if arg0 - (set! - (-> self started-chasing-time) - (the-as uint (-> *display* base-frame-counter)) - ) + (if arg0 + (set! (-> self started-chasing-time) (the-as uint (-> *display* base-frame-counter))) + ) + (set! (-> self mode) (the-as uint 3)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self targ-path-speed) 23552.0) + (none) ) - (set! (-> self mode) (the-as uint 3)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self targ-path-speed) 23552.0) - (none) - ) :trans (behavior () - (if (dummy-24 self) - (go driller-lurker-attack) - ) - (if (dummy-26 self) - (go driller-lurker-patrol) - ) - (if - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self started-chasing-time)) - ) - 900 - ) - (go driller-lurker-jammed-standing) - ) - (let* ((gp-0 (-> self path)) - (s5-0 (method-of-object gp-0 TODO-RENAME-20)) + (if (dummy-24 self) + (go driller-lurker-attack) + ) + (if (dummy-26 self) + (go driller-lurker-patrol) + ) + (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-chasing-time))) 900) + (go driller-lurker-jammed-standing) + ) + (let* ((gp-0 (-> self path)) + (s5-0 (method-of-object gp-0 TODO-RENAME-20)) + ) + (target-pos 0) + (let ((f0-1 (- (s5-0 gp-0) (-> self path-u)))) + (when (>= (fabs f0-1) (* 0.1 (-> self path-units-per-meter))) + (cond + ((< 0.0 f0-1) + (when (< (-> self path-dir) 0.0) + (set! (-> self path-dir) 1.0) + (set! (-> self path-speed) 0.0) + ) + ) + (else + (when (>= (-> self path-dir) 0.0) + (set! (-> self path-dir) -1.0) + (set! (-> self path-speed) 0.0) + ) + ) + ) ) - (target-pos 0) - (let ((f0-1 (- (s5-0 gp-0) (-> self path-u)))) - (when (>= (fabs f0-1) (* 0.1 (-> self path-units-per-meter))) - (cond - ((< 0.0 f0-1) - (when (< (-> self path-dir) 0.0) - (set! (-> self path-dir) 1.0) - (set! (-> self path-speed) 0.0) - ) ) - (else - (when (>= (-> self path-dir) 0.0) - (set! (-> self path-dir) -1.0) - (set! (-> self path-speed) 0.0) - ) - ) - ) ) - ) + (dummy-20 self #f (the-as target #t)) + (none) ) - (dummy-20 self #f (the-as target #t)) - (none) - ) :code (behavior ((arg0 symbol)) - (ja-channel-push! 2 60) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 11)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (let ((a0-3 (-> self skel root-channel 1))) - (set! (-> a0-3 frame-interp) (-> self up-blend)) - (set! - (-> a0-3 frame-group) - (the-as art-joint-anim (-> self draw art-group data 12)) - ) - (set! (-> a0-3 param 0) 0.0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim (-> self draw art-group data 12)) - num-func-chan - ) - ) - (while #t - (suspend) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 param 0) - (the float (+ (-> a0-4 frame-group data 0 length) -1)) - ) - (set! (-> a0-4 param 1) 1.0) - (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (when (= (ja-group-size) 2) - (let ((a0-5 (-> self skel root-channel 1))) - (set! (-> a0-5 frame-interp) (-> self up-blend)) - (set! (-> a0-5 param 0) 0.0) + (ja-channel-push! 2 60) + (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-5 - (the-as art-joint-anim #f) - num-func-chan - ) + gp-0 + (the-as art-joint-anim (-> self draw art-group data 11)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) ) - ) - (when (ja-done? 0) - (let ((v1-27 (-> self skel root-channel 0))) - (set! (-> v1-27 num-func) num-func-identity) - (set! (-> v1-27 frame-num) 0.0) + (let ((a0-3 (-> self skel root-channel 1))) + (set! (-> a0-3 frame-interp) (-> self up-blend)) + (set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 12))) + (set! (-> a0-3 param 0) 0.0) + (joint-control-channel-group-eval! + a0-3 + (the-as art-joint-anim (-> self draw art-group data 12)) + num-func-chan + ) ) - ) + (while #t + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-seek!) + ) + (when (= (ja-group-size) 2) + (let ((a0-5 (-> self skel root-channel 1))) + (set! (-> a0-5 frame-interp) (-> self up-blend)) + (set! (-> a0-5 param 0) 0.0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-chan) + ) + ) + (when (ja-done? 0) + (let ((v1-27 (-> self skel root-channel 0))) + (set! (-> v1-27 num-func) num-func-identity) + (set! (-> v1-27 frame-num) 0.0) + ) + ) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior driller-lurker) transform-post) ) @@ -1340,95 +1052,74 @@ driller-lurker-default-event-handler :enter (behavior () - (set! (-> self mode) (the-as uint 4)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self path-speed) 0.0) - (set! (-> self targ-path-speed) 0.0) - (none) - ) + (set! (-> self mode) (the-as uint 4)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self path-speed) 0.0) + (set! (-> self targ-path-speed) 0.0) + (none) + ) :trans (behavior () - (cond - ((dummy-24 self) - (set! (-> self state-time) (-> *display* base-frame-counter)) - ) - (else - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (go driller-lurker-chase #f) + (cond + ((dummy-24 self) + (set! (-> self state-time) (-> *display* base-frame-counter)) + ) + (else + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (go driller-lurker-chase #f) + ) + ) ) - ) + (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-chasing-time))) 900) + (go driller-lurker-jammed-standing) + ) + (dummy-20 self #f (the-as target #t)) + (none) ) - (if - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self started-chasing-time)) - ) - 900 - ) - (go driller-lurker-jammed-standing) - ) - (dummy-20 self #f (the-as target #t)) - (none) - ) :code (behavior () - (ja-channel-push! 2 60) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 13)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (let ((a0-2 (-> self skel root-channel 1))) - (set! (-> a0-2 frame-interp) (-> self up-blend)) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 14)) - ) - (set! (-> a0-2 param 0) 0.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 14)) - num-func-chan - ) - ) - (while #t - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 param 0) - (the float (+ (-> a0-3 frame-group data 0 length) -1)) - ) - (set! (-> a0-3 param 1) 1.0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (when (= (ja-group-size) 2) - (let ((a0-4 (-> self skel root-channel 1))) - (set! (-> a0-4 frame-interp) (-> self up-blend)) - (set! (-> a0-4 param 0) 0.0) + (ja-channel-push! 2 60) + (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-chan - ) + gp-0 + (the-as art-joint-anim (-> self draw art-group data 13)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) ) - ) - (when (ja-done? 0) - (let ((v1-27 (-> self skel root-channel 0))) - (set! (-> v1-27 num-func) num-func-identity) - (set! (-> v1-27 frame-num) 0.0) + (let ((a0-2 (-> self skel root-channel 1))) + (set! (-> a0-2 frame-interp) (-> self up-blend)) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 14))) + (set! (-> a0-2 param 0) 0.0) + (joint-control-channel-group-eval! + a0-2 + (the-as art-joint-anim (-> self draw art-group data 14)) + num-func-chan + ) ) - ) + (while #t + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1))) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) + (when (= (ja-group-size) 2) + (let ((a0-4 (-> self skel root-channel 1))) + (set! (-> a0-4 frame-interp) (-> self up-blend)) + (set! (-> a0-4 param 0) 0.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-chan) + ) + ) + (when (ja-done? 0) + (let ((v1-27 (-> self skel root-channel 0))) + (set! (-> v1-27 num-func) num-func-identity) + (set! (-> v1-27 frame-num) 0.0) + ) + ) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior driller-lurker) transform-post) ) @@ -1438,79 +1129,47 @@ driller-lurker-default-event-handler :enter (behavior () - (set! (-> self mode) (the-as uint 5)) - (set! (-> self path-speed) 0.0) - (set! (-> self targ-path-speed) 0.0) - (shut-down! (-> self neck)) - (none) - ) + (set! (-> self mode) (the-as uint 5)) + (set! (-> self path-speed) 0.0) + (set! (-> self targ-path-speed) 0.0) + (shut-down! (-> self neck)) + (none) + ) :trans - (behavior () - (dummy-20 self #f (the-as target #f)) - (none) - ) + (behavior () (dummy-20 self #f (the-as target #f)) (none)) :code (behavior () - (ja-channel-push! 1 60) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length + (ja-channel-push! 1 60) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> a0-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-1 param 1) 1.0) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) + (set! (-> self started-chasing-time) (the-as uint (-> *display* base-frame-counter))) + (cond + (*target* + (go driller-lurker-chase #f) + (set! (-> self path-speed) 5888.0) + ) + (else + (set! (-> self path-speed) 7680.0) + (go driller-lurker-patrol) + ) ) - (set! (-> a0-2 param 1) 1.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) + (none) ) - (set! - (-> self started-chasing-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (cond - (*target* - (go driller-lurker-chase #f) - (set! (-> self path-speed) 5888.0) - ) - (else - (set! (-> self path-speed) 7680.0) - (go driller-lurker-patrol) - ) - ) - (none) - ) :post (the-as (function none :behavior driller-lurker) transform-post) ) @@ -1518,103 +1177,68 @@ (defstate driller-lurker-die (driller-lurker) :event (the-as - (function process int symbol event-message-block object :behavior driller-lurker) - process-drawable-death-event-handler - ) + (function process int symbol event-message-block object :behavior driller-lurker) + process-drawable-death-event-handler + ) :code (behavior () - (shut-down! (-> self neck)) - (logclear! (-> self mask) (process-mask actor-pause)) - (ja-channel-push! 1 60) - (clear-collide-with-as (-> self root-overeride)) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 frame-group) - (the-as art-joint-anim (-> self draw art-group data 16)) - ) - (set! - (-> a0-4 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 16)) - data - 0 - length + (shut-down! (-> self neck)) + (logclear! (-> self mask) (process-mask actor-pause)) + (ja-channel-push! 1 60) + (clear-collide-with-as (-> self root-overeride)) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 frame-group) (the-as art-joint-anim (-> self draw art-group data 16))) + (set! (-> a0-4 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 16)) data 0 length) -1)) + ) + (set! (-> a0-4 param 1) 1.0) + (set! (-> a0-4 frame-num) 0.0) + (joint-control-channel-group! a0-4 (the-as art-joint-anim (-> self draw art-group data 16)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group data 0 length) -1))) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-4 param 1) 1.0) - (set! (-> a0-4 frame-num) 0.0) - (joint-control-channel-group! - a0-4 - (the-as art-joint-anim (-> self draw art-group data 16)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-5 (-> self skel root-channel 0))) - (set! - (-> a0-5 param 0) - (the float (+ (-> a0-5 frame-group data 0 length) -1)) + (send-event self 'death-end) + (while (-> self child) + (suspend) ) - (set! (-> a0-5 param 1) 1.0) - (joint-control-channel-group-eval! - a0-5 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) + (dummy-18 self) + (none) ) - (send-event self 'death-end) - (while (-> self child) - (suspend) - ) - (dummy-18 self) - (none) - ) :post (the-as (function none :behavior driller-lurker) ja-post) ) (defmethod relocate driller-lurker ((obj driller-lurker) (arg0 int)) (if (nonzero? (-> obj neck)) - (&+! (-> obj neck) arg0) - ) + (&+! (-> obj neck) arg0) + ) (if (nonzero? (-> obj drill)) - (&+! (-> obj drill) arg0) - ) + (&+! (-> obj drill) arg0) + ) (if (nonzero? (-> obj sound2)) - (&+! (-> obj sound2) arg0) - ) + (&+! (-> obj sound2) arg0) + ) (the-as - driller-lurker - ((the-as - (function process-drawable int process-drawable) - (find-parent-method driller-lurker 7) - ) - obj - arg0 + driller-lurker + ((the-as (function process-drawable int process-drawable) (find-parent-method driller-lurker 7)) obj arg0) ) - ) ) (defmethod deactivate driller-lurker ((obj driller-lurker)) (if (nonzero? (-> obj sound2)) - (stop! (-> obj sound2)) - ) + (stop! (-> obj sound2)) + ) ((method-of-type process-drawable deactivate) obj) (none) ) -(defmethod - init-from-entity! - driller-lurker - ((obj driller-lurker) (arg0 entity-actor)) +(defmethod init-from-entity! driller-lurker ((obj driller-lurker) (arg0 entity-actor)) (local-vars (sv-16 res-tag)) (set! (-> obj hit-player?) #f) (set! (-> obj played-drill-sound?) #f) @@ -1628,225 +1252,185 @@ (set! (-> obj player-attack-id) (the-as uint 0)) (set! (-> obj ambient-drilling-u) -1.0) (set! (-> obj mask) (logior (process-mask enemy) (-> obj mask))) - (let - ((s4-0 - (new - 'process - 'collide-shape-moving - obj - (collide-list-enum usually-hit-by-player) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 6) 0))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3073)) + (set! (-> s3-0 prim-core offense) 2) + (set-vector! (-> s3-0 local-sphere) 0.0 11264.0 0.0 22528.0) + (set-root-prim! s4-0 s3-0) + (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) + (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-0 collide-with) (the-as uint 16)) + (set! (-> s2-0 prim-core action) (the-as uint 3073)) + (set! (-> s2-0 prim-core offense) 1) + (set-vector! (-> s2-0 local-sphere) 0.0 3276.8 0.0 4505.6) + (append-prim s3-0 s2-0) + ) + (let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) + (set! (-> s2-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-1 collide-with) (the-as uint 16)) + (set! (-> s2-1 prim-core action) (the-as uint 3073)) + (set! (-> s2-1 prim-core offense) 1) + (set-vector! (-> s2-1 local-sphere) 0.0 7372.8 0.0 4505.6) + (append-prim s3-0 s2-1) + ) + (let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) + (set! (-> s2-2 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-2 collide-with) (the-as uint 16)) + (set! (-> s2-2 prim-core action) (the-as uint 3073)) + (set! (-> s2-2 prim-core offense) 1) + (set-vector! (-> s2-2 local-sphere) 0.0 11468.8 0.0 4505.6) + (append-prim s3-0 s2-2) + ) + (let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) + (set! (-> s2-3 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-3 collide-with) (the-as uint 16)) + (set! (-> s2-3 prim-core offense) 2) + (set! (-> s2-3 transform-index) 25) + (set-vector! (-> s2-3 local-sphere) 0.0 0.0 4096.0 3276.8) + (append-prim s3-0 s2-3) + ) + (let ((s2-4 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) + (set! (-> s2-4 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-4 collide-with) (the-as uint 16)) + (set! (-> s2-4 prim-core offense) 2) + (set! (-> s2-4 transform-index) 25) + (set-vector! (-> s2-4 local-sphere) 0.0 0.0 5734.4 3686.4) + (append-prim s3-0 s2-4) + ) + (let ((s2-5 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) + (set! (-> s2-5 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-5 collide-with) (the-as uint 16)) + (set! (-> s2-5 prim-core offense) 2) + (set! (-> s2-5 transform-index) 25) + (set-vector! (-> s2-5 local-sphere) 0.0 0.0 9420.8 2457.6) + (append-prim s3-0 s2-5) + ) ) - ) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-overeride) s4-0) ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 6) 0))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3073)) - (set! (-> s3-0 prim-core offense) 2) - (set-vector! (-> s3-0 local-sphere) 0.0 11264.0 0.0 22528.0) - (set-root-prim! s4-0 s3-0) - (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) - (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-0 collide-with) (the-as uint 16)) - (set! (-> s2-0 prim-core action) (the-as uint 3073)) - (set! (-> s2-0 prim-core offense) 1) - (set-vector! (-> s2-0 local-sphere) 0.0 3276.8 0.0 4505.6) - (append-prim s3-0 s2-0) - ) - (let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) - (set! (-> s2-1 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-1 collide-with) (the-as uint 16)) - (set! (-> s2-1 prim-core action) (the-as uint 3073)) - (set! (-> s2-1 prim-core offense) 1) - (set-vector! (-> s2-1 local-sphere) 0.0 7372.8 0.0 4505.6) - (append-prim s3-0 s2-1) - ) - (let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2)))) - (set! (-> s2-2 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-2 collide-with) (the-as uint 16)) - (set! (-> s2-2 prim-core action) (the-as uint 3073)) - (set! (-> s2-2 prim-core offense) 1) - (set-vector! (-> s2-2 local-sphere) 0.0 11468.8 0.0 4505.6) - (append-prim s3-0 s2-2) - ) - (let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) - (set! (-> s2-3 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-3 collide-with) (the-as uint 16)) - (set! (-> s2-3 prim-core offense) 2) - (set! (-> s2-3 transform-index) 25) - (set-vector! (-> s2-3 local-sphere) 0.0 0.0 4096.0 3276.8) - (append-prim s3-0 s2-3) - ) - (let ((s2-4 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) - (set! (-> s2-4 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-4 collide-with) (the-as uint 16)) - (set! (-> s2-4 prim-core offense) 2) - (set! (-> s2-4 transform-index) 25) - (set-vector! (-> s2-4 local-sphere) 0.0 0.0 5734.4 3686.4) - (append-prim s3-0 s2-4) - ) - (let ((s2-5 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) - (set! (-> s2-5 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-5 collide-with) (the-as uint 16)) - (set! (-> s2-5 prim-core offense) 2) - (set! (-> s2-5 transform-index) 25) - (set-vector! (-> s2-5 local-sphere) 0.0 0.0 9420.8 2457.6) - (append-prim s3-0 s2-5) - ) - ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-overeride) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *driller-lurker-sg* '()) (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) - (logior! - (-> obj path flags) - (path-control-flag display draw-line draw-point draw-text) - ) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) (if (< (-> obj path curve num-cverts) 2) - (go process-drawable-art-error "bad path") - ) - (set! - (-> obj fact) - (new - 'process - 'fact-info-enemy - obj - (pickup-type eco-pill-random) - (-> *FACT-bank* default-pill-inc) - ) - ) + (go process-drawable-art-error "bad path") + ) + (set! (-> obj fact) + (new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)) + ) (set! (-> obj draw shadow-ctrl) *driller-lurker-shadow-control*) - (set! - (-> obj sound) - (new - 'process - 'ambient-sound - (new 'static 'sound-spec - :mask #x80 - :num 1.0 - :group #x1 - :sound-name (static-sound-name "drill-idle") - :volume #x400 - :fo-max 40 - ) - (-> obj root-overeride trans) - ) - ) - (set! - (-> obj sound2) - (new - 'process - 'ambient-sound - (new 'static 'sound-spec - :mask #x80 - :num 1.0 - :group #x1 - :sound-name (static-sound-name "drill-idle2") - :volume #x400 - :fo-max 60 - ) - (-> obj root-overeride trans) - ) - ) - (set! - (-> obj part) - (create-launch-control (-> *part-group-id-table* 331) obj) - ) + (set! (-> obj sound) + (new + 'process + 'ambient-sound + (new 'static 'sound-spec + :mask #x80 + :num 1.0 + :group #x1 + :sound-name (static-sound-name "drill-idle") + :volume #x400 + :fo-max 40 + ) + (-> obj root-overeride trans) + ) + ) + (set! (-> obj sound2) + (new + 'process + 'ambient-sound + (new 'static 'sound-spec + :mask #x80 + :num 1.0 + :group #x1 + :sound-name (static-sound-name "drill-idle2") + :volume #x400 + :fo-max 60 + ) + (-> obj root-overeride trans) + ) + ) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 331) obj)) (let ((f0-34 (path-distance (-> obj path)))) - (set! (-> obj path-units-per-meter) (/ 4096.0 f0-34)) - ) + (set! (-> obj path-units-per-meter) (/ 4096.0 f0-34)) + ) (set! (-> obj path-dir) 1.0) (set! (-> obj path-u) 0.0) (set! (-> obj path-speed) 15360.0) (set! (-> obj targ-path-speed) 15360.0) (set! (-> obj up-blend) 0.0) (set! sv-16 (new 'static 'res-tag)) - (let - ((v1-91 - (res-lump-data - arg0 - 'driller-lurker - (pointer float) - :tag-ptr - (the-as (pointer res-tag) (new 'stack-no-clear 'vector)) + (let ((v1-91 + (res-lump-data + arg0 + 'driller-lurker + (pointer float) + :tag-ptr + (the-as (pointer res-tag) (new 'stack-no-clear 'vector)) + ) + ) + ) + (when v1-91 + (set! (-> obj path-u) (fmax 0.0 (fmin 1.0 (-> v1-91 0)))) + (if (< (-> v1-91 1) 0.0) + (set! (-> obj path-dir) -1.0) + ) + (let ((f0-45 (-> v1-91 2))) + (when (!= f0-45 12345.0) + (let ((f30-0 (* 182.04445 f0-45))) + (set! (-> obj ambient-drilling-u) (-> obj path-u)) + (quaternion-axis-angle! (-> obj root-overeride quat) 0.0 1.0 0.0 f30-0) + (set! (-> obj facing-ry) f30-0) + ) + ) + ) ) - ) ) - (when v1-91 - (set! (-> obj path-u) (fmax 0.0 (fmin 1.0 (-> v1-91 0)))) - (if (< (-> v1-91 1) 0.0) - (set! (-> obj path-dir) -1.0) - ) - (let ((f0-45 (-> v1-91 2))) - (when (!= f0-45 12345.0) - (let ((f30-0 (* 182.04445 f0-45))) - (set! (-> obj ambient-drilling-u) (-> obj path-u)) - (quaternion-axis-angle! (-> obj root-overeride quat) 0.0 1.0 0.0 f30-0) - (set! (-> obj facing-ry) f30-0) - ) - ) - ) - ) - ) - (eval-path-curve! - (-> obj path) - (-> obj root-overeride trans) - (-> obj path-u) - 'interp - ) + (eval-path-curve! (-> obj path) (-> obj root-overeride trans) (-> obj path-u) 'interp) (let ((s5-1 (new 'stack-no-clear 'vector))) - (TODO-RENAME-14 (-> obj path) s5-1 (-> obj path-u)) - (let ((f0-51 (atan (-> s5-1 x) (-> s5-1 z)))) - (if (< (-> obj path-dir) 0.0) - (set! f0-51 (+ 32768.0 f0-51)) - ) - (set! (-> obj path-ry) f0-51) - (if (< (-> obj ambient-drilling-u) 0.0) - (set! (-> obj facing-ry) f0-51) - ) + (TODO-RENAME-14 (-> obj path) s5-1 (-> obj path-u)) + (let ((f0-51 (atan (-> s5-1 x) (-> s5-1 z)))) + (if (< (-> obj path-dir) 0.0) + (set! f0-51 (+ 32768.0 f0-51)) + ) + (set! (-> obj path-ry) f0-51) + (if (< (-> obj ambient-drilling-u) 0.0) + (set! (-> obj facing-ry) f0-51) + ) + ) ) - ) (let ((v1-103 (new 'process 'joint-mod (joint-mod-handler-mode reset) obj 6))) - (set! (-> obj neck) v1-103) - (set-vector! (-> obj neck twist-max) 8192.0 8192.0 0.0 1.0) - (set! (-> v1-103 up) (the-as uint 1)) - (set! (-> v1-103 nose) (the-as uint 2)) - (set! (-> v1-103 ear) (the-as uint 0)) - (set! (-> v1-103 max-dist) 102400.0) - (set! (-> v1-103 ignore-angle) 16384.0) - ) - (set! - (-> obj drill) - (new 'process 'joint-mod (joint-mod-handler-mode joint-set*) obj 38) - ) + (set! (-> obj neck) v1-103) + (set-vector! (-> obj neck twist-max) 8192.0 8192.0 0.0 1.0) + (set! (-> v1-103 up) (the-as uint 1)) + (set! (-> v1-103 nose) (the-as uint 2)) + (set! (-> v1-103 ear) (the-as uint 0)) + (set! (-> v1-103 max-dist) 102400.0) + (set! (-> v1-103 ignore-angle) 16384.0) + ) + (set! (-> obj drill) (new 'process 'joint-mod (joint-mod-handler-mode joint-set*) obj 38)) (transform-post) (create-connection! - *cavecrystal-light-control* - obj - (-> obj entity) - (the-as - (function object object object object object) - cavecrystal-light-control-default-callback + *cavecrystal-light-control* + obj + (-> obj entity) + (the-as (function object object object object object) cavecrystal-light-control-default-callback) + -1 + 8192.0 ) - -1 - 8192.0 - ) (if (>= (-> obj ambient-drilling-u) 0.0) - (go driller-lurker-idle-drilling) - (go driller-lurker-patrol) - ) + (go driller-lurker-idle-drilling) + (go driller-lurker-patrol) + ) (none) ) diff --git a/goal_src/levels/maincave/gnawer.gc b/goal_src/levels/maincave/gnawer.gc index f97798358c..4052197034 100644 --- a/goal_src/levels/maincave/gnawer.gc +++ b/goal_src/levels/maincave/gnawer.gc @@ -10,14 +10,6 @@ (declare-type gnawer process-drawable) -(define-extern gnawer-put-items-at-dest (state gnawer)) ;; unknown type -(define-extern gnawer-chewing-on-post (state gnawer)) ;; unknown type -(define-extern gnawer-give-fuel-cell (state gnawer)) ;; unknown type -(define-extern gnawer-dying-give-pickups (state gnawer)) ;; unknown type -(define-extern gnawer-wait-to-run (state gnawer)) ;; unknown type -(define-extern gnawer-die (state gnawer)) ;; unknown type -(define-extern gnawer-run (state gnawer)) ;; unknown type -(define-extern gnawer-retreat-into-post (state gnawer)) ;; unknown type (define-extern gnawer-joint-callback (function gnawer none)) @@ -116,6 +108,16 @@ (dummy-29 (_type_ int vector vector) float 29) (dummy-30 (_type_ process-drawable) uint 30) ) + (:states + gnawer-chewing-on-post + gnawer-die + gnawer-dying-give-pickups + gnawer-give-fuel-cell + gnawer-put-items-at-dest + gnawer-retreat-into-post + gnawer-run + gnawer-wait-to-run + ) ) diff --git a/goal_src/levels/maincave/mother-spider-egg.gc b/goal_src/levels/maincave/mother-spider-egg.gc index 75dd9dec31..647d429a01 100644 --- a/goal_src/levels/maincave/mother-spider-egg.gc +++ b/goal_src/levels/maincave/mother-spider-egg.gc @@ -10,12 +10,6 @@ (declare-type mother-spider-egg process-drawable) -(define-extern mother-spider-egg-falling (state mother-spider-egg)) ;; unknown type -(define-extern mother-spider-egg-die-exit (state mother-spider-egg)) ;; unknown type -(define-extern mother-spider-egg-hatch (state mother-spider-egg)) ;; unknown type -(define-extern mother-spider-egg-die (state mother-spider-egg)) ;; unknown type -(define-extern mother-spider-egg-on-ground (state mother-spider-egg)) ;; unknown type -(define-extern mother-spider-egg-die-while-falling (state mother-spider-egg)) ;; unknown type ;; DECOMP BEGINS diff --git a/goal_src/levels/misty/babak-with-cannon.gc b/goal_src/levels/misty/babak-with-cannon.gc index 05128ded20..e5bac4fd35 100644 --- a/goal_src/levels/misty/babak-with-cannon.gc +++ b/goal_src/levels/misty/babak-with-cannon.gc @@ -6,13 +6,10 @@ ;; dgos: BEA, L1, MIS (declare-type babak-with-cannon babak) -(define-extern babak-with-cannon-jump-off-cannon (state babak-with-cannon)) ;; unknown type -(define-extern babak-with-cannon-shooting (state babak-with-cannon)) ;; unknown type -(define-extern babak-with-cannon-jump-onto-cannon (state babak-with-cannon)) ;; unknown type -(define-extern babak-run-to-cannon (state babak)) ;; unknown type ;; DECOMP BEGINS +;; definition of type babak-with-cannon (deftype babak-with-cannon (babak) ((cannon-ent entity :offset-assert 400) (distance float :offset-assert 404) @@ -21,679 +18,518 @@ :method-count-assert 76 :size-assert #x198 :flag-assert #x4c01300198 + (:states + babak-with-cannon-jump-off-cannon + babak-with-cannon-jump-onto-cannon + babak-with-cannon-shooting + ) ) +;; definition for method 3 of type babak-with-cannon +(defmethod inspect babak-with-cannon ((obj babak-with-cannon)) + (let ((t9-0 (method-of-type babak inspect))) + (t9-0 obj) + ) + (format #t "~T~Tcannon-ent: ~A~%" (-> obj cannon-ent)) + (format #t "~T~Tdistance: ~f~%" (-> obj distance)) + obj + ) +;; failed to figure out what this is: nav-enemy-default-event-handler +;; failed to figure out what this is: (defstate nav-enemy-idle (babak-with-cannon) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior babak-with-cannon) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior babak-with-cannon) + nav-enemy-default-event-handler + ) :trans (behavior () - (if - (and - (and - *target* - (>= - (-> self enemy-info idle-distance) - (vector-vector-distance - (-> self collide-info trans) - (-> *target* control trans) + (if (and + (and *target* (>= (-> self enemy-info idle-distance) + (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) + ) + ) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self state-timeout)) + ) + (go-virtual nav-enemy-patrol) ) - ) - ) - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - (-> self state-timeout) - ) - ) - (go-virtual nav-enemy-patrol) + (none) ) - (none) - ) :code (behavior () - (ja-channel-push! 1 22) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info idle-anim)) - ) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info idle-anim)) - ) - data - 0 - length + (ja-channel-push! 1 22) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info idle-anim))) + ) + (set! (-> a0-1 param 0) + (the float + (+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self nav-info idle-anim))) data 0 length) -1) + ) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info idle-anim))) + num-func-seek! ) - -1 - ) ) - ) - (set! (-> a0-1 param 1) 1.0) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info idle-anim)) + (until (ja-done? 0) + (ja-post) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) + ) ) - num-func-seek! - ) + (anim-loop) + (none) ) - (until (ja-done? 0) - (ja-post) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) - ) - (set! (-> a0-2 param 1) 1.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (anim-loop) - (none) - ) :post (the-as (function none :behavior babak-with-cannon) #f) ) +;; failed to figure out what this is: (defstate nav-enemy-patrol (babak-with-cannon) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior babak-with-cannon) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior babak-with-cannon) + nav-enemy-default-event-handler + ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) - (let ((f30-0 (- (-> (target-pos 0) y) (-> self collide-info trans y)))) - (if - (and - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) - (or - (or - (not *target*) - (< - (-> self distance) - (vector-vector-distance - (-> self collide-info trans) - (-> *target* control trans) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (let ((f30-0 (- (-> (target-pos 0) y) (-> self collide-info trans y)))) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (or + (or + (not *target*) + (< (-> self distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) + ) + (< f30-0 -40960.0) + ) + ) + (go babak-run-to-cannon) + ) + ) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self state-timeout)) + (if (or (not *target*) (< (-> self enemy-info idle-distance) + (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) + ) + ) + (go-virtual nav-enemy-idle) + ) + ) + (if (nav-enemy-notice-player?) + (go-virtual nav-enemy-notice) ) - ) - (< f30-0 -40960.0) - ) - ) - (go babak-run-to-cannon) ) - ) - (when - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - (-> self state-timeout) - ) - (if - (or - (not *target*) - (< - (-> self enemy-info idle-distance) - (vector-vector-distance - (-> self collide-info trans) - (-> *target* control trans) - ) - ) - ) - (go-virtual nav-enemy-idle) - ) - ) - (if (nav-enemy-notice-player?) - (go-virtual nav-enemy-notice) - ) + (none) ) - (none) - ) :code (-> (method-of-type babak nav-enemy-patrol) code) ) +;; failed to figure out what this is: (defstate babak-run-to-cannon (babak) :event (the-as - (function process int symbol event-message-block object :behavior babak) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior babak) + nav-enemy-default-event-handler + ) :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self nav destination-pos quad) (-> self entity extra trans quad)) - (set! (-> self nav target-pos quad) (-> self entity extra trans quad)) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self nav destination-pos quad) (-> self entity extra trans quad)) + (set! (-> self nav target-pos quad) (-> self entity extra trans quad)) + (none) + ) :trans (behavior () - (if (nav-enemy-notice-player?) - (go-virtual nav-enemy-chase) + (if (nav-enemy-notice-player?) + (go-virtual nav-enemy-chase) + ) + (if (logtest? (nav-control-flags bit19) (-> self nav flags)) + (go babak-with-cannon-jump-onto-cannon) + ) + (none) ) - (if (logtest? (nav-control-flags bit19) (-> self nav flags)) - (go babak-with-cannon-jump-onto-cannon) - ) - (none) - ) :code (behavior () - (ja-channel-push! 1 22) - (while #t - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 8)) - data - 0 - length - ) - -1 + (ja-channel-push! 1 22) + (while #t + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + (set! (-> a0-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 8)) data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 8)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) ) - (set! (-> a0-1 param 1) 1.0) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) - ) - (set! (-> a0-2 param 1) 1.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (none) ) - (none) - ) :post - (behavior () - (nav-enemy-travel-post) - (none) - ) + (behavior () (nav-enemy-travel-post) (none)) ) +;; definition for function handle->process-safe (defun handle->process-safe ((arg0 handle)) (let ((v0-0 (the-as process #f))) - (if (handle->process arg0) - (set! v0-0 (-> arg0 process 0)) + (if (handle->process arg0) + (set! v0-0 (-> arg0 process 0)) + ) + v0-0 ) - v0-0 - ) ) +;; definition for function babak-with-cannon-compute-cannon-dir +;; Used lq/sq (defun babak-with-cannon-compute-cannon-dir ((arg0 mistycannon) (arg1 vector)) (set! (-> arg1 quad) (-> arg0 node-list data 3 bone transform vector 2 quad)) arg1 ) +;; definition for function babak-with-cannon-compute-ride-point +;; Used lq/sq (defun babak-with-cannon-compute-ride-point ((arg0 mistycannon) (arg1 vector)) - (set! (-> arg1 quad) (-> arg0 root trans quad)) + (set! (-> arg1 quad) (-> arg0 root-override trans quad)) (let ((a1-4 (new 'static 'vector :y 18149.377 :z -17289.217 :w 1.0)) (a2-0 (-> arg0 node-list data 3 bone transform)) ) - (vector-matrix*! arg1 a1-4 a2-0) - ) + (vector-matrix*! arg1 a1-4 a2-0) + ) arg1 ) +;; definition for function babak-with-cannon-ride-cannon-post (defbehavior babak-with-cannon-ride-cannon-post babak-with-cannon () (let* ((v1-0 (-> self cannon-ent)) (s5-0 (if v1-0 - (-> v1-0 extra process) - ) - ) - (gp-0 - (if (and (nonzero? s5-0) (type-type? (-> s5-0 type) process-drawable)) - s5-0 - ) - ) + (-> v1-0 extra process) + ) + ) + (gp-0 (if (and (nonzero? s5-0) (type-type? (-> s5-0 type) process-drawable)) + s5-0 + ) + ) ) - (when gp-0 - (let ((s5-1 (new 'stack-no-clear 'vector))) - (babak-with-cannon-compute-cannon-dir (the-as mistycannon gp-0) s5-1) - (forward-up->quaternion (-> self collide-info quat) s5-1 *y-vector*) - ) - (babak-with-cannon-compute-ride-point - (the-as mistycannon gp-0) - (-> self collide-info trans) - ) + (when gp-0 + (let ((s5-1 (new 'stack-no-clear 'vector))) + (babak-with-cannon-compute-cannon-dir (the-as mistycannon gp-0) s5-1) + (forward-up->quaternion (-> self collide-info quat) s5-1 *y-vector*) + ) + (babak-with-cannon-compute-ride-point (the-as mistycannon gp-0) (-> self collide-info trans)) + ) ) - ) (nav-enemy-simple-post) (none) ) +;; failed to figure out what this is: (defstate babak-with-cannon-jump-onto-cannon (babak-with-cannon) :event (the-as - (function process int symbol event-message-block object :behavior babak-with-cannon) - nav-enemy-jump-event-handler - ) + (function process int symbol event-message-block object :behavior babak-with-cannon) + nav-enemy-jump-event-handler + ) :exit - (behavior () - (logior! (-> self nav-enemy-flags) 24) - (none) - ) + (behavior () (logior! (-> self nav-enemy-flags) 24) (none)) :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self rotate-speed) (-> self nav-info run-rotate-speed)) - (set! (-> self turn-time) (the-as int (-> self nav-info run-turn-time))) - (set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags))) - (nav-enemy-neck-control-inactive) - (let* ((v1-7 (-> self cannon-ent)) - (gp-0 (if v1-7 - (-> v1-7 extra process) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self rotate-speed) (-> self nav-info run-rotate-speed)) + (set! (-> self turn-time) (the-as int (-> self nav-info run-turn-time))) + (set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags))) + (nav-enemy-neck-control-inactive) + (let* ((v1-7 (-> self cannon-ent)) + (gp-0 (if v1-7 + (-> v1-7 extra process) + ) + ) + (a0-2 (if (and (nonzero? gp-0) (type-type? (-> gp-0 type) process-drawable)) + gp-0 + ) ) ) - (a0-2 - (if - (and (nonzero? gp-0) (type-type? (-> gp-0 type) process-drawable)) - gp-0 - ) - ) + (cond + (a0-2 + (babak-with-cannon-compute-ride-point (the-as mistycannon a0-2) (-> self event-param-point)) + (nav-enemy-initialize-jump (-> self event-param-point)) ) - (cond - (a0-2 - (babak-with-cannon-compute-ride-point - (the-as mistycannon a0-2) - (-> self event-param-point) - ) - (nav-enemy-initialize-jump (-> self event-param-point)) + (else + (go-virtual nav-enemy-idle) + ) + ) ) - (else - (go-virtual nav-enemy-idle) + (when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335)) + (ja-channel-push! 1 60) + (nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445) ) - ) - ) - (when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335)) - (ja-channel-push! 1 60) - (nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445) - ) - (logior! (-> self nav-enemy-flags) 16) - (nav-enemy-execute-jump) - (set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags))) - (let* ((v1-20 (-> self cannon-ent)) - (gp-1 (if v1-20 - (-> v1-20 extra process) + (logior! (-> self nav-enemy-flags) 16) + (nav-enemy-execute-jump) + (set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags))) + (let* ((v1-20 (-> self cannon-ent)) + (gp-1 (if v1-20 + (-> v1-20 extra process) + ) + ) + (a0-9 (if (and (nonzero? gp-1) (type-type? (-> gp-1 type) process-drawable)) + gp-1 + ) ) ) - (a0-9 - (if - (and (nonzero? gp-1) (type-type? (-> gp-1 type) process-drawable)) - gp-1 + (when a0-9 + (let ((gp-2 (babak-with-cannon-compute-cannon-dir (the-as mistycannon a0-9) (new 'stack-no-clear 'vector)))) + (when (not (nav-enemy-facing-direction? gp-2 1820.4445)) + (ja-channel-push! 1 60) + (nav-enemy-turn-to-face-dir gp-2 182.04445) + (forward-up->quaternion (-> self collide-info quat) gp-2 *y-vector*) ) - ) ) - (when a0-9 - (let - ((gp-2 - (babak-with-cannon-compute-cannon-dir - (the-as mistycannon a0-9) - (new 'stack-no-clear 'vector) - ) ) - ) - (when (not (nav-enemy-facing-direction? gp-2 1820.4445)) - (ja-channel-push! 1 60) - (nav-enemy-turn-to-face-dir gp-2 182.04445) - (forward-up->quaternion (-> self collide-info quat) gp-2 *y-vector*) - ) ) - ) - ) - (ja-channel-push! 1 30) - (let ((a0-15 (-> self skel root-channel 0))) - (set! - (-> a0-15 frame-group) - (the-as art-joint-anim (-> self draw art-group data 17)) - ) - (set! - (-> a0-15 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 17)) - data - 0 - length + (ja-channel-push! 1 30) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 frame-group) (the-as art-joint-anim (-> self draw art-group data 17))) + (set! (-> a0-15 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 17)) data 0 length) -1)) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! a0-15 (the-as art-joint-anim (-> self draw art-group data 17)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1))) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-15 param 1) 1.0) - (set! (-> a0-15 frame-num) 0.0) - (joint-control-channel-group! - a0-15 - (the-as art-joint-anim (-> self draw art-group data 17)) - num-func-seek! - ) + (go babak-with-cannon-shooting) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 param 0) - (the float (+ (-> a0-16 frame-group data 0 length) -1)) - ) - (set! (-> a0-16 param 1) 1.0) - (joint-control-channel-group-eval! - a0-16 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go babak-with-cannon-shooting) - (none) - ) :post (the-as (function none :behavior babak-with-cannon) nav-enemy-jump-post) ) +;; failed to figure out what this is: (defstate babak-with-cannon-jump-off-cannon (babak-with-cannon) :event (the-as - (function process int symbol event-message-block object :behavior babak-with-cannon) - nav-enemy-jump-event-handler - ) + (function process int symbol event-message-block object :behavior babak-with-cannon) + nav-enemy-jump-event-handler + ) :exit - (behavior () - (logior! (-> self nav-enemy-flags) 24) - (none) - ) + (behavior () (logior! (-> self nav-enemy-flags) 24) (none)) :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (nav-enemy-initialize-jump (-> self entity extra trans)) - (nav-enemy-neck-control-look-at) - (set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags))) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 17)) - ) - (set! (-> a0-2 param 0) 0.0) - (set! (-> a0-2 param 1) 2.0) - (set! - (-> a0-2 frame-num) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 17)) - data - 0 - length + (set! (-> self state-time) (-> *display* base-frame-counter)) + (nav-enemy-initialize-jump (-> self entity extra trans)) + (nav-enemy-neck-control-look-at) + (set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags))) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 17))) + (set! (-> a0-2 param 0) 0.0) + (set! (-> a0-2 param 1) 2.0) + (set! (-> a0-2 frame-num) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 17)) data 0 length) -1)) + ) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 17)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) 0.0) + (set! (-> a0-3 param 1) 2.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (joint-control-channel-group! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 17)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! (-> a0-3 param 0) 0.0) - (set! (-> a0-3 param 1) 2.0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! + (when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335)) + (ja-channel-push! 1 60) + (nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445) ) - ) + (logior! (-> self nav-enemy-flags) 16) + (nav-enemy-execute-jump) + (let ((a1-6 (dummy-16 (-> self nav) (-> self jump-dest)))) + (set-current-poly! (-> self nav) a1-6) + ) + (go-virtual nav-enemy-jump-land) + (none) ) - (when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335)) - (ja-channel-push! 1 60) - (nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445) - ) - (logior! (-> self nav-enemy-flags) 16) - (nav-enemy-execute-jump) - (let ((a1-6 (dummy-16 (-> self nav) (-> self jump-dest)))) - (set-current-poly! (-> self nav) a1-6) - ) - (go-virtual nav-enemy-jump-land) - (none) - ) :post (the-as (function none :behavior babak-with-cannon) nav-enemy-jump-post) ) +;; failed to figure out what this is: (defstate babak-with-cannon-shooting (babak-with-cannon) :event (the-as - (function process int symbol event-message-block object :behavior babak-with-cannon) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior babak-with-cannon) + nav-enemy-default-event-handler + ) :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor 0))) - (if v1-2 - (logior! (-> v1-2 extra perm status) (entity-perm-status complete)) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor 0))) + (if v1-2 + (logior! (-> v1-2 extra perm status) (entity-perm-status complete)) + ) + ) + (none) ) - (none) - ) :exit (behavior () - (let ((v1-0 (entity-actor-lookup (-> self entity) 'alt-actor 0))) - (if v1-0 - (logclear! (-> v1-0 extra perm status) (entity-perm-status complete)) - ) + (let ((v1-0 (entity-actor-lookup (-> self entity) 'alt-actor 0))) + (if v1-0 + (logclear! (-> v1-0 extra perm status) (entity-perm-status complete)) + ) + ) + (none) ) - (none) - ) :trans (behavior () - (let ((f0-1 (- (-> (target-pos 0) y) (-> self collide-info trans y)))) - (if - (and - (< -40960.0 f0-1) - (and - (and - *target* - (>= - (-> self distance) - (vector-vector-distance - (-> self collide-info trans) - (-> *target* control trans) + (let ((f0-1 (- (-> (target-pos 0) y) (-> self collide-info trans y)))) + (if (and + (< -40960.0 f0-1) + (and + (and + *target* + (>= (-> self distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) + ) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + ) + ) + (go babak-with-cannon-jump-off-cannon) ) - ) - ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) - ) ) - (go babak-with-cannon-jump-off-cannon) - ) + (none) ) - (none) - ) :code (behavior () - (while #t - (suspend) + (while #t + (suspend) + ) + (none) ) - (none) - ) :post babak-with-cannon-ride-cannon-post ) +;; failed to figure out what this is: (defstate nav-enemy-die (babak-with-cannon) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior babak-with-cannon) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior babak-with-cannon) + nav-enemy-default-event-handler + ) :trans (behavior () - (if (and *target* (= (-> *target* current-level name) 'beach)) - (spool-push *art-control* "beachcam-cannon" 0 self -1.0) - ) - (if (and *target* (= (-> *target* current-level name) 'misty)) - (spool-push *art-control* "mistycam-cannon" 0 self -1.0) - ) - (let - ((t9-3 - (-> - (the-as (state nav-enemy) (find-parent-method babak-with-cannon 23)) - trans - ) + (if (and *target* (= (-> *target* current-level name) 'beach)) + (spool-push *art-control* "beachcam-cannon" 0 self -1.0) + ) + (if (and *target* (= (-> *target* current-level name) 'misty)) + (spool-push *art-control* "mistycam-cannon" 0 self -1.0) + ) + (let ((t9-3 (-> (the-as (state nav-enemy) (find-parent-method babak-with-cannon 23)) trans))) + (if t9-3 + (t9-3) + ) ) - ) - (if t9-3 - (t9-3) - ) + (none) ) - (none) - ) ) +;; failed to figure out what this is: (defstate nav-enemy-fuel-cell (babak-with-cannon) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior babak-with-cannon) - process-drawable-fuel-cell-handler - ) + (function process int symbol event-message-block object :behavior babak-with-cannon) + process-drawable-fuel-cell-handler + ) :code (behavior () - (ja-channel-set! 0) - (clear-collide-with-as (-> self collide-info)) - (ja-post) - (when (not (task-complete? *game-info* (-> self entity extra perm task))) - (when - (not - (and - (-> self entity) - (logtest? - (-> self entity extra perm status) - (entity-perm-status complete) + (ja-channel-set! 0) + (clear-collide-with-as (-> self collide-info)) + (ja-post) + (when (not (task-complete? *game-info* (-> self entity extra perm task))) + (when (not (and (-> self entity) (logtest? (-> self entity extra perm status) (entity-perm-status complete)))) + (process-entity-status! self (entity-perm-status complete) #t) + (if (and *target* (= (-> *target* current-level name) 'beach)) + (beachcam-spawn) + ) + (if (and *target* (= (-> *target* current-level name) 'misty)) + (mistycam-spawn) + ) + ) + (if (not (-> self child)) + (birth-pickup-at-point + (-> self collide-info trans) + (pickup-type fuel-cell) + (the float (-> self entity extra perm task)) + #f + self + (the-as fact-info #f) + ) + ) + (while (-> self child) + (suspend) ) - ) ) - (process-entity-status! self (entity-perm-status complete) #t) - (if (and *target* (= (-> *target* current-level name) 'beach)) - (beachcam-spawn) - ) - (if (and *target* (= (-> *target* current-level name) 'misty)) - (mistycam-spawn) - ) - ) - (if (not (-> self child)) - (birth-pickup-at-point - (-> self collide-info trans) - (pickup-type fuel-cell) - (the float (-> self entity extra perm task)) - #f - self - (the-as fact-info #f) - ) - ) - (while (-> self child) - (suspend) - ) + (dummy-18 self) + (none) ) - (dummy-18 self) - (none) - ) ) +;; definition for method 39 of type babak-with-cannon (defmethod common-post babak-with-cannon ((obj babak-with-cannon)) (cond - ((= (level-status *level* 'beach) 'active) - (spool-push *art-control* "beachcam-cannon" 0 obj -99.0) + ((= (level-status *level* 'beach) 'active) + (spool-push *art-control* "beachcam-cannon" 0 obj -99.0) + ) + ((= (level-status *level* 'misty) 'active) + (spool-push *art-control* "mistycam-cannon" 0 obj -99.0) + ) ) - ((= (level-status *level* 'misty) 'active) - (spool-push *art-control* "mistycam-cannon" 0 obj -99.0) - ) - ) ((method-of-type nav-enemy common-post) obj) (none) ) -(defmethod - init-from-entity! - babak-with-cannon - ((obj babak-with-cannon) (arg0 entity-actor)) +;; definition for method 11 of type babak-with-cannon +;; INFO: Return type mismatch object vs none. +(defmethod init-from-entity! babak-with-cannon ((obj babak-with-cannon) (arg0 entity-actor)) (initialize-collision obj) (process-drawable-from-entity! obj arg0) (TODO-RENAME-48 obj) (set! (-> obj distance) (res-lump-float arg0 'distance :default 163840.0)) (set! (-> obj cannon-ent) (entity-actor-lookup (-> obj entity) 'alt-actor 0)) (logclear! (-> obj mask) (process-mask actor-pause)) - (if - (or - (not - (and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) + (if (or + (not (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete)))) + (zero? (logand (-> obj enemy-info options) (fact-options fop1))) + ) + (go (method-of-object obj nav-enemy-idle)) ) - ) - (zero? (logand (-> obj enemy-info options) (fact-options fop1))) - ) - (go (method-of-object obj nav-enemy-idle)) - ) (go (method-of-object obj nav-enemy-fuel-cell)) (none) ) - - - - diff --git a/goal_src/levels/misty/bonelurker.gc b/goal_src/levels/misty/bonelurker.gc index 1890780c18..a4b08c588c 100644 --- a/goal_src/levels/misty/bonelurker.gc +++ b/goal_src/levels/misty/bonelurker.gc @@ -6,7 +6,6 @@ ;; dgos: L1, MIS (declare-type bonelurker nav-enemy) -(define-extern bonelurker-stun (state bonelurker)) ;; DECOMP BEGINS @@ -17,6 +16,9 @@ :method-count-assert 76 :size-assert #x198 :flag-assert #x4c01300198 + (:states + bonelurker-stun + ) ) @@ -41,142 +43,112 @@ (none) ) -(defmethod - dummy-44 - bonelurker - ((obj bonelurker) (arg0 process) (arg1 event-message-block)) +(defmethod dummy-44 bonelurker ((obj bonelurker) (arg0 process) (arg1 event-message-block)) (the-as - object - (when - (and - (logtest? (-> obj nav-enemy-flags) 64) - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg1 param 0)) - (-> obj collide-info) - (the-as uint 1) + object + (when (and (logtest? (-> obj nav-enemy-flags) 64) ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg1 param 0)) + (-> obj collide-info) + (the-as uint 1) + ) + ) + (when (nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic) + (set! (-> obj speed-scale) 0.5) + #t + ) ) - ) - (when - (nav-enemy-send-attack - arg0 - (the-as touching-shapes-entry (-> arg1 param 0)) - 'generic - ) - (set! (-> obj speed-scale) 0.5) - #t - ) ) - ) ) -(defmethod - dummy-43 - bonelurker - ((obj bonelurker) (arg0 process) (arg1 event-message-block)) +(defmethod dummy-43 bonelurker ((obj bonelurker) (arg0 process) (arg1 event-message-block)) (with-pp - (set! (-> obj state-time) (-> *display* base-frame-counter)) - (let ((a1-1 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-1 from) pp) - (set! (-> a1-1 num-params) 2) - (set! (-> a1-1 message) 'query) - (set! (-> a1-1 param 0) (the-as uint 'powerup)) - (set! (-> a1-1 param 1) (the-as uint 2)) - (the-as object (cond - ((or - (send-event-function *target* a1-1) - (= (-> arg1 param 1) 'explode) - ) - (logclear! (-> obj mask) (process-mask actor-pause)) - (go (method-of-object obj nav-enemy-die)) - 'die - ) - (else - (cond - (((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg1 param 0)) - (-> obj collide-info) - (the-as uint 2) - ) - (let ((a1-3 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-3 from) pp) - (set! (-> a1-3 num-params) 2) - (set! (-> a1-3 message) 'shove) - (set! (-> a1-3 param 0) (-> arg1 param 0)) - (let ((v1-19 (new 'static 'attack-info :mask #x40))) - (set! (-> v1-19 shove-back) 16384.0) - (set! (-> a1-3 param 1) (the-as uint v1-19)) - ) - (send-event-function arg0 a1-3) - ) - (go bonelurker-stun) - #t - ) - ((and - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg1 param 0)) - (-> obj collide-info) - (the-as uint 1) - ) - (= (-> obj skel root-channel 0) (-> obj skel channel)) - (let ((v1-30 (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - ) + (set! (-> obj state-time) (-> *display* base-frame-counter)) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) pp) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'query) + (set! (-> a1-1 param 0) (the-as uint 'powerup)) + (set! (-> a1-1 param 1) (the-as uint 2)) + (the-as + object + (cond + ((or (send-event-function *target* a1-1) (= (-> arg1 param 1) 'explode)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (go (method-of-object obj nav-enemy-die)) + 'die + ) + (else + (cond + (((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg1 param 0)) + (-> obj collide-info) + (the-as uint 2) + ) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) pp) + (set! (-> a1-3 num-params) 2) + (set! (-> a1-3 message) 'shove) + (set! (-> a1-3 param 0) (-> arg1 param 0)) + (let ((v1-19 (new 'static 'attack-info :mask #x40))) + (set! (-> v1-19 shove-back) 16384.0) + (set! (-> a1-3 param 1) (the-as uint v1-19)) + ) + (send-event-function arg0 a1-3) + ) + (go bonelurker-stun) + #t + ) + ((and + ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg1 param 0)) + (-> obj collide-info) + (the-as uint 1) + ) + (= (-> obj skel root-channel 0) (-> obj skel channel)) + (let ((v1-30 (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) ) - (or - (= v1-30 (-> obj draw art-group data 9)) - (= v1-30 (-> obj draw art-group data 10)) - ) - ) - ) - (let ((a1-6 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-6 from) pp) - (set! (-> a1-6 num-params) 2) - (set! (-> a1-6 message) 'shove) - (set! (-> a1-6 param 0) (-> arg1 param 0)) - (let ((v1-36 (new 'static 'attack-info :mask #x40))) - (set! (-> v1-36 shove-back) 16384.0) - (set! (-> a1-6 param 1) (the-as uint v1-36)) - ) - (send-event-function arg0 a1-6) - ) - (set! - (-> obj bump-player-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (set! - (-> obj nav-enemy-flags) - (logand -65 (-> obj nav-enemy-flags)) - ) - 'push ) - ) - ) - ) - ) + (or (= v1-30 (-> obj draw art-group data 9)) (= v1-30 (-> obj draw art-group data 10))) + ) + ) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) pp) + (set! (-> a1-6 num-params) 2) + (set! (-> a1-6 message) 'shove) + (set! (-> a1-6 param 0) (-> arg1 param 0)) + (let ((v1-36 (new 'static 'attack-info :mask #x40))) + (set! (-> v1-36 shove-back) 16384.0) + (set! (-> a1-6 param 1) (the-as uint v1-36)) + ) + (send-event-function arg0 a1-6) + ) + (set! (-> obj bump-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj nav-enemy-flags) (logand -65 (-> obj nav-enemy-flags))) + 'push + ) + ) + ) + ) + ) + ) ) - ) ) -(defbehavior - bonelurker-stunned-event-handler bonelurker - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) +(defbehavior bonelurker-stunned-event-handler bonelurker ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((v1-0 arg2)) - (the-as object (when (= v1-0 'attack) - (when - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - 150 + (the-as object (when (= v1-0 'attack) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (nav-enemy-set-hit-from-direction arg0) + (send-event arg0 'get-attack-count 1) + (logclear! (-> self mask) (process-mask actor-pause)) + (go-virtual nav-enemy-die) + 'die + ) ) - (nav-enemy-set-hit-from-direction arg0) - (send-event arg0 'get-attack-count 1) - (logclear! (-> self mask) (process-mask actor-pause)) - (go-virtual nav-enemy-die) - 'die - ) - ) + ) ) - ) ) nav-enemy-default-event-handler @@ -185,27 +157,16 @@ nav-enemy-default-event-handler (TODO-RENAME-9 (-> self align)) (dummy-11 (-> self nav) (-> self nav target-pos)) (TODO-RENAME-11 - (-> self align) - 4 - (-> self nav travel) - (the-as int 1.0) - 1.0 - (* (-> self enemy-info speed) (-> self speed-scale)) - ) - (vector-v++! - (-> self collide-info transv) - (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0) - ) + (-> self align) + 4 + (-> self nav travel) + (the-as int 1.0) + 1.0 + (* (-> self enemy-info speed) (-> self speed-scale)) + ) + (vector-v++! (-> self collide-info transv) (dummy-62 (-> self collide-info) (new-stack-vector0) 0.0)) (TODO-RENAME-10 (-> self align) 16 1.0 1.0 1.0) - (dummy-59 - (-> self collide-info) - (-> self collide-info transv) - (the-as uint 1) - 8192.0 - #t - #f - #f - ) + (dummy-59 (-> self collide-info) (-> self collide-info transv) (the-as uint 1) 8192.0 #t #f #f) (nav-enemy-common-post) (none) ) @@ -214,52 +175,41 @@ nav-enemy-default-event-handler :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :exit - (behavior () - (bonelurker-set-large-bounds-sphere) - (none) - ) + (behavior () (bonelurker-set-large-bounds-sphere) (none)) :code (behavior () - (bonelurker-set-small-bounds-sphere) - ((the-as - (function none :behavior bonelurker) - (-> (method-of-type nav-enemy nav-enemy-idle) code) - ) + (bonelurker-set-small-bounds-sphere) + ((the-as (function none :behavior bonelurker) (-> (method-of-type nav-enemy nav-enemy-idle) code))) + (none) ) - (none) - ) ) (defstate nav-enemy-patrol (bonelurker) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :code (behavior () - (ja-channel-push! 1 60) - ((the-as - (function none :behavior bonelurker) - (-> (method-of-type nav-enemy nav-enemy-patrol) code) - ) + (ja-channel-push! 1 60) + ((the-as (function none :behavior bonelurker) (-> (method-of-type nav-enemy nav-enemy-patrol) code))) + (none) ) - (none) - ) ) (defstate nav-enemy-notice (bonelurker) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :code (-> (method-of-type nav-enemy nav-enemy-notice) code) ) @@ -268,345 +218,176 @@ nav-enemy-default-event-handler :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :trans (behavior () - ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) - (if - (and - (zero? (logand (-> self nav-enemy-flags) 64)) - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self bump-player-time)) - ) - 150 - ) - ) - (logior! (-> self nav-enemy-flags) 64) + ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) + (if (and + (zero? (logand (-> self nav-enemy-flags) 64)) + (>= (- (-> *display* base-frame-counter) (the-as int (-> self bump-player-time))) 150) + ) + (logior! (-> self nav-enemy-flags) 64) + ) + (none) ) - (none) - ) :code (behavior () - (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 30) - (set! (-> self speed-scale) 1.0) - (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) - (cond - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 13) - ) - (ja-channel-push! 1 90) - ) - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 15) - ) - (ja-channel-push! 1 60) - ) - (else - (ja-channel-push! 1 45) - ) - ) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - (set! - (-> a0-12 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 9)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-12 param 1) f30-0) - (set! (-> a0-12 frame-num) 0.0) - (joint-control-channel-group! - a0-12 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-13 (-> self skel root-channel 0))) - (set! - (-> a0-13 param 0) - (the float (+ (-> a0-13 frame-group data 0 length) -1)) - ) - (set! (-> a0-13 param 1) f30-0) - (joint-control-channel-group-eval! - a0-13 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-15 (-> self skel root-channel 0))) - (set! - (-> a0-15 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> a0-15 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-15 param 1) f30-0) - (set! (-> a0-15 frame-num) 0.0) - (joint-control-channel-group! - a0-15 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 param 0) - (the float (+ (-> a0-16 frame-group data 0 length) -1)) - ) - (set! (-> a0-16 param 1) f30-0) - (joint-control-channel-group-eval! - a0-16 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (while #t - (cond - ((or - (not *target*) - (< - 36864.0 - (vector-vector-distance - (-> self collide-info trans) - (-> *target* control trans) - ) - ) - ) - (let ((a0-19 (-> self skel root-channel 0))) - (set! - (-> a0-19 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - (set! - (-> a0-19 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 8)) - data - 0 - length + (set! (-> self rotate-speed) 524288.0) + (set! (-> self turn-time) 30) + (set! (-> self speed-scale) 1.0) + (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 13) ) - -1 - ) - ) + (ja-channel-push! 1 90) ) - (set! (-> a0-19 param 1) f30-0) - (set! (-> a0-19 frame-num) 0.0) - (joint-control-channel-group! - a0-19 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-20 (-> self skel root-channel 0))) - (set! - (-> a0-20 param 0) - (the float (+ (-> a0-20 frame-group data 0 length) -1)) - ) - (set! (-> a0-20 param 1) f30-0) - (joint-control-channel-group-eval! - a0-20 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (else - (let ((a0-22 (-> self skel root-channel 0))) - (set! - (-> a0-22 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - (set! - (-> a0-22 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 9)) - data - 0 - length + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 15) ) - -1 - ) + (ja-channel-push! 1 60) + ) + (else + (ja-channel-push! 1 45) ) - ) - (set! (-> a0-22 param 1) f30-0) - (set! (-> a0-22 frame-num) 0.0) - (joint-control-channel-group! - a0-22 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-seek! - ) ) - (until (ja-done? 0) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + (set! (-> a0-12 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1)) + ) + (set! (-> a0-12 param 1) f30-0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! a0-12 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!) + ) + (until (ja-done? 0) (suspend) - (let ((a0-23 (-> self skel root-channel 0))) - (set! - (-> a0-23 param 0) - (the float (+ (-> a0-23 frame-group data 0 length) -1)) + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 param 0) (the float (+ (-> a0-13 frame-group data 0 length) -1))) + (set! (-> a0-13 param 1) f30-0) + (joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-seek!) ) - (set! (-> a0-23 param 1) f30-0) - (joint-control-channel-group-eval! - a0-23 - (the-as art-joint-anim #f) - num-func-seek! + ) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> a0-15 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> a0-15 param 1) f30-0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! a0-15 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1))) + (set! (-> a0-16 param 1) f30-0) + (joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!) ) - ) ) - (if (logtest? (-> self nav-enemy-flags) 256) - (go-virtual nav-enemy-victory) - ) - (let ((a0-25 (-> self skel root-channel 0))) - (set! - (-> a0-25 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> a0-25 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length + (while #t + (cond + ((or + (not *target*) + (< 36864.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) + ) + (let ((a0-19 (-> self skel root-channel 0))) + (set! (-> a0-19 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + (set! (-> a0-19 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 8)) data 0 length) -1)) + ) + (set! (-> a0-19 param 1) f30-0) + (set! (-> a0-19 frame-num) 0.0) + (joint-control-channel-group! a0-19 (the-as art-joint-anim (-> self draw art-group data 8)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-20 (-> self skel root-channel 0))) + (set! (-> a0-20 param 0) (the float (+ (-> a0-20 frame-group data 0 length) -1))) + (set! (-> a0-20 param 1) f30-0) + (joint-control-channel-group-eval! a0-20 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (let ((a0-22 (-> self skel root-channel 0))) + (set! (-> a0-22 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + (set! (-> a0-22 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1)) + ) + (set! (-> a0-22 param 1) f30-0) + (set! (-> a0-22 frame-num) 0.0) + (joint-control-channel-group! a0-22 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-23 (-> self skel root-channel 0))) + (set! (-> a0-23 param 0) (the float (+ (-> a0-23 frame-group data 0 length) -1))) + (set! (-> a0-23 param 1) f30-0) + (joint-control-channel-group-eval! a0-23 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (if (logtest? (-> self nav-enemy-flags) 256) + (go-virtual nav-enemy-victory) + ) + (let ((a0-25 (-> self skel root-channel 0))) + (set! (-> a0-25 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> a0-25 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> a0-25 param 1) f30-0) + (set! (-> a0-25 frame-num) 0.0) + (joint-control-channel-group! a0-25 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-26 (-> self skel root-channel 0))) + (set! (-> a0-26 param 0) (the float (+ (-> a0-26 frame-group data 0 length) -1))) + (set! (-> a0-26 param 1) f30-0) + (joint-control-channel-group-eval! a0-26 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (if (logtest? (-> self nav-enemy-flags) 256) + (go-virtual nav-enemy-victory) + ) + (let ((a0-28 (-> self skel root-channel 0))) + (set! (-> a0-28 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + (set! (-> a0-28 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 8)) data 0 length) -1)) + ) + (set! (-> a0-28 param 1) f30-0) + (set! (-> a0-28 frame-num) 0.0) + (joint-control-channel-group! a0-28 (the-as art-joint-anim (-> self draw art-group data 8)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-29 (-> self skel root-channel 0))) + (set! (-> a0-29 param 0) (the float (+ (-> a0-29 frame-group data 0 length) -1))) + (set! (-> a0-29 param 1) f30-0) + (joint-control-channel-group-eval! a0-29 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - -1 - ) ) - ) - (set! (-> a0-25 param 1) f30-0) - (set! (-> a0-25 frame-num) 0.0) - (joint-control-channel-group! - a0-25 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-26 (-> self skel root-channel 0))) - (set! - (-> a0-26 param 0) - (the float (+ (-> a0-26 frame-group data 0 length) -1)) - ) - (set! (-> a0-26 param 1) f30-0) - (joint-control-channel-group-eval! - a0-26 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (if (logtest? (-> self nav-enemy-flags) 256) - (go-virtual nav-enemy-victory) - ) - (let ((a0-28 (-> self skel root-channel 0))) - (set! - (-> a0-28 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - (set! - (-> a0-28 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 8)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-28 param 1) f30-0) - (set! (-> a0-28 frame-num) 0.0) - (joint-control-channel-group! - a0-28 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-29 (-> self skel root-channel 0))) - (set! - (-> a0-29 param 0) - (the float (+ (-> a0-29 frame-group data 0 length) -1)) - ) - (set! (-> a0-29 param 1) f30-0) - (joint-control-channel-group-eval! - a0-29 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-stop-chase (bonelurker) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :code (-> (method-of-type nav-enemy nav-enemy-stop-chase) code) ) @@ -615,379 +396,209 @@ nav-enemy-default-event-handler :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :code (behavior () - (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 60) - (let ((f30-0 (rand-vu-float-range 0.8 1.2))) - (when (and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5)) - (ja-channel-push! 1 30) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 13)) - ) - (set! (-> gp-0 param 0) (ja-aframe 48.0 0)) - (set! (-> gp-0 param 1) f30-0) - (set! (-> gp-0 frame-num) 0.0) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 13)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 48.0 0)) - (set! (-> gp-1 param 1) f30-0) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (while #t - (when (not (nav-enemy-facing-player? 2730.6667)) - (logior! (-> self nav-enemy-flags) 16) - (ja-channel-push! 1 60) - (let ((v1-20 (-> self skel root-channel 0))) - (set! - (-> v1-20 frame-group) - (the-as art-joint-anim (-> self draw art-group data 16)) - ) - ) - (let ((v1-23 (-> self skel root-channel 0))) - (set! (-> v1-23 num-func) num-func-identity) - (set! (-> v1-23 frame-num) 0.0) - ) - (until (nav-enemy-facing-player? 1820.4445) - (ja-blend-eval) - (suspend) - (let ((a0-14 (-> self skel root-channel 0))) - (set! (-> a0-14 param 0) 1.0) - (joint-control-channel-group-eval! - a0-14 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) - (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) - ) - (ja-channel-push! 1 75) - (let ((a0-18 (-> self skel root-channel 0))) - (set! - (-> a0-18 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-18 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (set! (-> self rotate-speed) 524288.0) + (set! (-> self turn-time) 60) + (let ((f30-0 (rand-vu-float-range 0.8 1.2))) + (when (and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5)) + (ja-channel-push! 1 30) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 13))) + (set! (-> gp-0 param 0) (ja-aframe 48.0 0)) + (set! (-> gp-0 param 1) f30-0) + (set! (-> gp-0 frame-num) 0.0) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 13)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 48.0 0)) + (set! (-> gp-1 param 1) f30-0) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (while #t + (when (not (nav-enemy-facing-player? 2730.6667)) + (logior! (-> self nav-enemy-flags) 16) + (ja-channel-push! 1 60) + (let ((v1-20 (-> self skel root-channel 0))) + (set! (-> v1-20 frame-group) (the-as art-joint-anim (-> self draw art-group data 16))) + ) + (let ((v1-23 (-> self skel root-channel 0))) + (set! (-> v1-23 num-func) num-func-identity) + (set! (-> v1-23 frame-num) 0.0) + ) + (until (nav-enemy-facing-player? 1820.4445) + (ja-blend-eval) + (suspend) + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 param 0) 1.0) + (joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) + ) + (ja-channel-push! 1 75) + (let ((a0-18 (-> self skel root-channel 0))) + (set! (-> a0-18 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-18 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-18 param 1) f30-0) + (set! (-> a0-18 frame-num) 0.0) + (joint-control-channel-group! a0-18 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-19 (-> self skel root-channel 0))) + (set! (-> a0-19 param 0) (the float (+ (-> a0-19 frame-group data 0 length) -1))) + (set! (-> a0-19 param 1) f30-0) + (joint-control-channel-group-eval! a0-19 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) 1.0) + (joint-control-channel-group! a0-21 (the-as art-joint-anim #f) num-func-loop!) + ) + (when (rand-vu-percent? 0.15) + (ja-channel-push! 1 30) + (let ((gp-2 (-> self skel root-channel 0))) + (set! (-> gp-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 13))) + (set! (-> gp-2 param 0) (ja-aframe 48.0 0)) + (set! (-> gp-2 param 1) f30-0) + (set! (-> gp-2 frame-num) 0.0) + (joint-control-channel-group! gp-2 (the-as art-joint-anim (-> self draw art-group data 13)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((gp-3 (-> self skel root-channel 0))) + (set! (-> gp-3 param 0) (ja-aframe 48.0 0)) + (set! (-> gp-3 param 1) f30-0) + (joint-control-channel-group-eval! gp-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - -1 - ) ) - ) - (set! (-> a0-18 param 1) f30-0) - (set! (-> a0-18 frame-num) 0.0) - (joint-control-channel-group! - a0-18 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-19 (-> self skel root-channel 0))) - (set! - (-> a0-19 param 0) - (the float (+ (-> a0-19 frame-group data 0 length) -1)) - ) - (set! (-> a0-19 param 1) f30-0) - (joint-control-channel-group-eval! - a0-19 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-21 (-> self skel root-channel 0))) - (set! (-> a0-21 param 0) 1.0) - (joint-control-channel-group! - a0-21 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (when (rand-vu-percent? 0.15) - (ja-channel-push! 1 30) - (let ((gp-2 (-> self skel root-channel 0))) - (set! - (-> gp-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 13)) - ) - (set! (-> gp-2 param 0) (ja-aframe 48.0 0)) - (set! (-> gp-2 param 1) f30-0) - (set! (-> gp-2 frame-num) 0.0) - (joint-control-channel-group! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 13)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((gp-3 (-> self skel root-channel 0))) - (set! (-> gp-3 param 0) (ja-aframe 48.0 0)) - (set! (-> gp-3 param 1) f30-0) - (joint-control-channel-group-eval! - gp-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-give-up (bonelurker) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :code (behavior () - (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 30) - (ja-channel-push! 1 45) - (let ((s4-0 (-> self collide-info)) - (s5-0 (target-pos 0)) - ) - (when - (< - (fabs - (deg-diff - (y-angle s4-0) - (vector-y-angle - (vector-! (new 'stack-no-clear 'vector) s5-0 (-> s4-0 trans)) - ) - ) - ) - 12743.111 - ) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-6 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (set! (-> self rotate-speed) 524288.0) + (set! (-> self turn-time) 30) + (ja-channel-push! 1 45) + (let ((s4-0 (-> self collide-info)) + (s5-0 (target-pos 0)) ) - -1 - ) - ) - ) - (set! (-> a0-6 param 1) 1.0) - (set! (-> a0-6 frame-num) 0.0) - (joint-control-channel-group! - a0-6 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) - ) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group-eval! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-9 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (when (< (fabs + (deg-diff (y-angle s4-0) (vector-y-angle (vector-! (new 'stack-no-clear 'vector) s5-0 (-> s4-0 trans)))) + ) + 12743.111 + ) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-6 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) ) - -1 - ) - ) - ) - (set! (-> a0-9 param 1) 1.0) - (set! (-> a0-9 frame-num) 0.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 param 0) - (the float (+ (-> a0-10 frame-group data 0 length) -1)) - ) - (set! (-> a0-10 param 1) 1.0) - (joint-control-channel-group-eval! - a0-10 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-12 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-9 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-9 param 1) 1.0) + (set! (-> a0-9 frame-num) 0.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1))) + (set! (-> a0-10 param 1) 1.0) + (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-12 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-12 param 1) 1.0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! a0-12 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 param 0) (the float (+ (-> a0-13 frame-group data 0 length) -1))) + (set! (-> a0-13 param 1) 1.0) + (joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-12 param 1) 1.0) - (set! (-> a0-12 frame-num) 0.0) - (joint-control-channel-group! - a0-12 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) ) - (until (ja-done? 0) + (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) + (nav-enemy-get-new-patrol-point) + (let ((a0-18 (-> self skel root-channel 0))) + (set! (-> a0-18 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-18 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-18 param 1) 1.0) + (set! (-> a0-18 frame-num) 0.0) + (joint-control-channel-group! a0-18 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (seek-to-point-toward-point! + (-> self collide-info) + (-> self nav destination-pos) + (-> self rotate-speed) + (-> self turn-time) + ) (suspend) - (let ((a0-13 (-> self skel root-channel 0))) - (set! - (-> a0-13 param 0) - (the float (+ (-> a0-13 frame-group data 0 length) -1)) + (let ((a0-20 (-> self skel root-channel 0))) + (set! (-> a0-20 param 0) (the float (+ (-> a0-20 frame-group data 0 length) -1))) + (set! (-> a0-20 param 1) 1.0) + (joint-control-channel-group-eval! a0-20 (the-as art-joint-anim #f) num-func-seek!) ) - (set! (-> a0-13 param 1) 1.0) - (joint-control-channel-group-eval! - a0-13 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) ) - ) + (go-virtual nav-enemy-patrol) + (none) ) - (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) - (nav-enemy-get-new-patrol-point) - (let ((a0-18 (-> self skel root-channel 0))) - (set! - (-> a0-18 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-18 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-18 param 1) 1.0) - (set! (-> a0-18 frame-num) 0.0) - (joint-control-channel-group! - a0-18 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (seek-to-point-toward-point! - (-> self collide-info) - (-> self nav destination-pos) - (-> self rotate-speed) - (-> self turn-time) - ) - (suspend) - (let ((a0-20 (-> self skel root-channel 0))) - (set! - (-> a0-20 param 0) - (the float (+ (-> a0-20 frame-group data 0 length) -1)) - ) - (set! (-> a0-20 param 1) 1.0) - (joint-control-channel-group-eval! - a0-20 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go-virtual nav-enemy-patrol) - (none) - ) ) (defstate nav-enemy-victory (bonelurker) :virtual #t :event (the-as - (function process int symbol event-message-block object :behavior bonelurker) - nav-enemy-default-event-handler - ) + (function process int symbol event-message-block object :behavior bonelurker) + nav-enemy-default-event-handler + ) :code (-> (method-of-type nav-enemy nav-enemy-victory) code) ) @@ -996,185 +607,138 @@ nav-enemy-default-event-handler :event bonelurker-stunned-event-handler :enter - (behavior () - (nav-enemy-neck-control-inactive) - (none) - ) + (behavior () (nav-enemy-neck-control-inactive) (none)) :exit - (behavior () - (nav-enemy-neck-control-look-at) - (none) - ) + (behavior () (nav-enemy-neck-control-look-at) (none)) :code (behavior () - (let ((gp-0 (new 'stack-no-clear 'vector))) - (vector-normalize-copy! gp-0 (-> self hit-from-dir) 16384.0) - (vector+! gp-0 (-> self collide-info trans) gp-0) - (set! (-> self nav target-pos quad) (-> gp-0 quad)) - ) - (ja-channel-push! 1 30) - (let ((a0-5 (-> self skel root-channel 0))) - (set! - (-> a0-5 frame-group) - (the-as art-joint-anim (-> self draw art-group data 15)) - ) - (set! - (-> a0-5 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 15)) - data - 0 - length + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector-normalize-copy! gp-0 (-> self hit-from-dir) 16384.0) + (vector+! gp-0 (-> self collide-info trans) gp-0) + (set! (-> self nav target-pos quad) (-> gp-0 quad)) + ) + (ja-channel-push! 1 30) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 frame-group) (the-as art-joint-anim (-> self draw art-group data 15))) + (set! (-> a0-5 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 15)) data 0 length) -1)) + ) + (set! (-> a0-5 param 1) 1.0) + (set! (-> a0-5 frame-num) 0.0) + (joint-control-channel-group! a0-5 (the-as art-joint-anim (-> self draw art-group data 15)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) (the float (+ (-> a0-6 frame-group data 0 length) -1))) + (set! (-> a0-6 param 1) 1.0) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-5 param 1) 1.0) - (set! (-> a0-5 frame-num) 0.0) - (joint-control-channel-group! - a0-5 - (the-as art-joint-anim (-> self draw art-group data 15)) - num-func-seek! - ) + (go-virtual nav-enemy-chase) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 param 0) - (the float (+ (-> a0-6 frame-group data 0 length) -1)) - ) - (set! (-> a0-6 param 1) 1.0) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go-virtual nav-enemy-chase) - (none) - ) :post bonelurker-push-post ) -(define - *bonelurker-nav-enemy-info* - (new 'static 'nav-enemy-info - :idle-anim 5 - :walk-anim 6 - :turn-anim 16 - :notice-anim 7 - :run-anim 8 - :jump-anim 17 - :jump-land-anim 18 - :victory-anim 13 - :taunt-anim 13 - :die-anim 14 - :neck-joint 5 - :player-look-at-joint 5 - :run-travel-speed (meters 6.0) - :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) - :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) - :walk-rotate-speed (degrees 2880.0) - :walk-acceleration (meters 1.0) - :walk-turn-time (seconds 0.1) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 5.0) - :nav-nearest-y-threshold (meters 5.0) - :notice-distance (meters 30.0) - :stop-chase-distance (meters 40.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 - :die-anim-hold-frame 24.0 - :jump-anim-start-frame 10.0 - :jump-land-anim-end-frame 32.0 - :jump-height-min (meters 3.0) - :jump-height-factor 0.5 - :jump-start-anim-speed 1.0 - :shadow-max-y (meters 1.0) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) - :use-align #t - :draw-shadow #t - :move-to-ground #t - :hover-if-no-ground #f - :use-momentum #f - :use-flee #f - :use-proximity-notice #f - :use-jump-blocked #t - :use-jump-patrol #f - :gnd-collide-with #x1 - :debug-draw-neck #f - :debug-draw-jump #f - ) - ) +(define *bonelurker-nav-enemy-info* (new 'static 'nav-enemy-info + :idle-anim 5 + :walk-anim 6 + :turn-anim 16 + :notice-anim 7 + :run-anim 8 + :jump-anim 17 + :jump-land-anim 18 + :victory-anim 13 + :taunt-anim 13 + :die-anim 14 + :neck-joint 5 + :player-look-at-joint 5 + :run-travel-speed (meters 6.0) + :run-rotate-speed (degrees 2880.0) + :run-acceleration (meters 1.0) + :run-turn-time (seconds 0.1) + :walk-travel-speed (meters 3.0) + :walk-rotate-speed (degrees 2880.0) + :walk-acceleration (meters 1.0) + :walk-turn-time (seconds 0.1) + :attack-shove-back (meters 3.0) + :attack-shove-up (meters 2.0) + :shadow-size (meters 2.0) + :notice-nav-radius (meters 5.0) + :nav-nearest-y-threshold (meters 5.0) + :notice-distance (meters 30.0) + :stop-chase-distance (meters 40.0) + :frustration-distance (meters 8.0) + :frustration-time #x4b0 + :die-anim-hold-frame 24.0 + :jump-anim-start-frame 10.0 + :jump-land-anim-end-frame 32.0 + :jump-height-min (meters 3.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #t + :draw-shadow #t + :move-to-ground #t + :hover-if-no-ground #f + :use-momentum #f + :use-flee #f + :use-proximity-notice #f + :use-jump-blocked #t + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #f + ) + ) (defmethod initialize-collision bonelurker ((obj bonelurker)) - (let - ((s5-0 - (new - 'process - 'collide-shape-moving - obj - (collide-list-enum usually-hit-by-player) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set-vector! (-> s4-0 local-sphere) 0.0 10240.0 0.0 24576.0) + (set-root-prim! s5-0 s4-0) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 4096.0) + (append-prim s4-0 s3-0) + ) + (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 1) + (set-vector! (-> s3-1 local-sphere) 0.0 11468.8 0.0 4096.0) + (append-prim s4-0 s3-1) + ) + (let ((s3-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1)))) + (set! (-> s3-2 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-2 collide-with) (the-as uint 16)) + (set! (-> s3-2 prim-core offense) 2) + (set! (-> s3-2 transform-index) 29) + (set-vector! (-> s3-2 local-sphere) 0.0 4915.2 0.0 4915.2) + (append-prim s4-0 s3-2) + ) ) - ) + (set! (-> s5-0 nav-radius) 8192.0) + (backup-collide-with-as s5-0) + (set! (-> s5-0 max-iteration-count) (the-as uint 1)) + (set! (-> obj collide-info) s5-0) ) - (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) default-collision-reaction) - (set! - (-> s5-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) - (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set-vector! (-> s4-0 local-sphere) 0.0 10240.0 0.0 24576.0) - (set-root-prim! s5-0 s4-0) - (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 1) - (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 4096.0) - (append-prim s4-0 s3-0) - ) - (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) - (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-1 collide-with) (the-as uint 16)) - (set! (-> s3-1 prim-core action) (the-as uint 1)) - (set! (-> s3-1 prim-core offense) 1) - (set-vector! (-> s3-1 local-sphere) 0.0 11468.8 0.0 4096.0) - (append-prim s4-0 s3-1) - ) - (let ((s3-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1)))) - (set! (-> s3-2 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-2 collide-with) (the-as uint 16)) - (set! (-> s3-2 prim-core offense) 2) - (set! (-> s3-2 transform-index) 29) - (set-vector! (-> s3-2 local-sphere) 0.0 4915.2 0.0 4915.2) - (append-prim s4-0 s3-2) - ) - ) - (set! (-> s5-0 nav-radius) 8192.0) - (backup-collide-with-as s5-0) - (set! (-> s5-0 max-iteration-count) (the-as uint 1)) - (set! (-> obj collide-info) s5-0) - ) 0 (none) ) diff --git a/goal_src/levels/misty/misty-conveyor.gc b/goal_src/levels/misty/misty-conveyor.gc index b6e6c1cf05..8cafb33b9a 100644 --- a/goal_src/levels/misty/misty-conveyor.gc +++ b/goal_src/levels/misty/misty-conveyor.gc @@ -9,70 +9,56 @@ (declare-type keg-conveyor-paddle process-drawable) (declare-type keg process-drawable) -(define-extern keg-conveyor-idle (state keg-conveyor)) ;; unknown type -(define-extern keg-conveyor-paddle-idle (state keg-conveyor-paddle)) ;; unknown type -(define-extern keg-on-paddle (state keg)) ;; unknown type -(define-extern keg-die (state keg)) ;; unknown type -(define-extern keg-in-chute (state keg)) ;; unknown type -(define-extern keg-on-path (state keg)) ;; unknown type -(define-extern keg-paddle-to-path (state keg)) ;; unknown type ;; DECOMP BEGINS -(set! - (-> *part-group-id-table* 197) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xa - :linger-duration #x258 - :flags (sp-group-flag use-local-clock) - :name "group-keg-bounce" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 2014 :fade-after (meters 100.0) :falloff-to (meters 100.0)) - ) - :bounds (new 'static 'sphere :w 49152.0) - ) - ) +(set! (-> *part-group-id-table* 197) (new 'static 'sparticle-launch-group + :length 1 + :duration #xa + :linger-duration #x258 + :flags (sp-group-flag use-local-clock) + :name "group-keg-bounce" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 2014 :fade-after (meters 100.0) :falloff-to (meters 100.0)) + ) + :bounds (new 'static 'sphere :w 49152.0) + ) + ) -(set! - (-> *part-id-table* 2014) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-flt spt-num 12.0) - (sp-rnd-flt spt-x (meters -3.0) (meters 6.0) 1.0) - (sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 128.0 32.0 1.0) - (sp-rnd-flt spt-g 96.0 32.0 1.0) - (sp-rnd-flt spt-b 64.0 32.0 1.0) - (sp-rnd-flt spt-a 16.0 16.0 1.0) - (sp-rnd-flt spt-vel-z (meters -0.013333334) (meters 0.026666667) 1.0) - (sp-flt spt-scalevel-x (meters 0.013333334)) - (sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a -0.10666667) - (sp-flt spt-accel-y -0.68266666) - (sp-int spt-timer 300) - (sp-cpuinfo-flags bit2 bit3) - (sp-flt spt-rotate-y (degrees 0.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2014) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-flt spt-num 12.0) + (sp-rnd-flt spt-x (meters -3.0) (meters 6.0) 1.0) + (sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 128.0 32.0 1.0) + (sp-rnd-flt spt-g 96.0 32.0 1.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-z (meters -0.013333334) (meters 0.026666667) 1.0) + (sp-flt spt-scalevel-x (meters 0.013333334)) + (sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.10666667) + (sp-flt spt-accel-y -0.68266666) + (sp-int spt-timer 300) + (sp-cpuinfo-flags bit2 bit3) + (sp-flt spt-rotate-y (degrees 0.0)) + (sp-end) + ) + ) + ) (defun keg-bounce-set-particle-rotation-callback ((arg0 part-tracker)) (let ((v1-0 (the-as object (-> arg0 userdata)))) - (set! - (-> *part-id-table* 2014 init-specs 18 initial-valuef) - (quaternion-y-angle - (-> (the-as (pointer process-drawable) v1-0) 0 root quat) - ) + (set! (-> *part-id-table* 2014 init-specs 18 initial-valuef) + (quaternion-y-angle (-> (the-as (pointer process-drawable) v1-0) 0 root quat)) + ) ) - ) 0 (none) ) @@ -85,6 +71,9 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + keg-conveyor-idle + ) ) @@ -97,6 +86,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + keg-conveyor-paddle-idle + ) ) @@ -113,6 +105,13 @@ :method-count-assert 20 :size-assert #x104 :flag-assert #x1400a00104 + (:states + keg-die + keg-in-chute + keg-on-paddle + keg-on-path + keg-paddle-to-path + ) ) @@ -149,122 +148,93 @@ (none) ) -(defbehavior - keg-event-handler keg - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) +(defbehavior keg-event-handler keg ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((v1-0 arg2)) - (the-as object (when (or (= v1-0 'touch) (= v1-0 'attack)) - (let ((a1-3 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-3 from) self) - (set! (-> a1-3 num-params) 2) - (set! (-> a1-3 message) 'attack) - (set! (-> a1-3 param 0) (-> arg3 param 0)) - (set! - (-> a1-3 param 1) - (the-as uint (new 'static 'attack-info)) - ) - (when (send-event-function arg0 a1-3) - (sound-play-by-name - (static-sound-name "icrate-break") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (let - ((gp-1 - (get-process *default-dead-pool* part-tracker #x4000) - ) - ) - (when gp-1 - (let ((t9-4 (method-of-type part-tracker activate))) - (t9-4 - (the-as part-tracker gp-1) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-1 - part-tracker-init - (-> *part-group-id-table* 71) - 20 - #f - #f - #f - (-> self root-override trans) - ) - (-> gp-1 ppointer) - ) - ) - (sound-stop (-> self sound-id)) - (deactivate self) - ) - ) - ) + (the-as + object + (when (or (= v1-0 'touch) (= v1-0 'attack)) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 2) + (set! (-> a1-3 message) 'attack) + (set! (-> a1-3 param 0) (-> arg3 param 0)) + (set! (-> a1-3 param 1) (the-as uint (new 'static 'attack-info))) + (when (send-event-function arg0 a1-3) + (sound-play-by-name (static-sound-name "icrate-break") (new-sound-id) 1024 0 0 1 #t) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-4 (method-of-type part-tracker activate))) + (t9-4 (the-as part-tracker gp-1) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-1 + part-tracker-init + (-> *part-group-id-table* 71) + 20 + #f + #f + #f + (-> self root-override trans) + ) + (-> gp-1 ppointer) + ) + ) + (sound-stop (-> self sound-id)) + (deactivate self) + ) + ) + ) + ) ) - ) ) (defbehavior keg-post keg () (cond - ((= (-> self keg-behavior) 1) - ) - (else - (if - (< - (vector-vector-distance (-> self root-override trans) (ear-trans)) - 163840.0 - ) - (sound-play-by-name - (static-sound-name "barrel-roll") - (-> self sound-id) - 1024 - 0 - 0 - 1 - (the-as symbol (-> self root-override trans)) - ) + ((= (-> self keg-behavior) 1) ) + (else + (if (< (vector-vector-distance (-> self root-override trans) (ear-trans)) 163840.0) + (sound-play-by-name + (static-sound-name "barrel-roll") + (-> self sound-id) + 1024 + 0 + 0 + 1 + (the-as symbol (-> self root-override trans)) + ) + ) + ) ) - ) (transform-post) ) (defstate keg-on-paddle (keg) :event - (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('detach) - (go keg-paddle-to-path) - ) - ) - ) + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 + (('detach) + (go keg-paddle-to-path) + ) + ) + ) :code (behavior () - (set! - (-> (the-as keg (-> self parent 0)) sync-offset) - (the-as float (process->ppointer self)) + (set! (-> (the-as keg (-> self parent 0)) sync-offset) (the-as float (process->ppointer self))) + (let ((v1-3 (-> self skel root-channel 0))) + (set! (-> v1-3 num-func) num-func-identity) + (set! (-> v1-3 frame-num) 0.0) + ) + (while #t + (let ((gp-0 (-> (the-as process-drawable (-> self parent 0)) node-list data 4))) + (matrix->quaternion (-> self root-override quat) (-> gp-0 bone transform)) + (vector<-cspace! (-> self root-override trans) gp-0) + ) + (set! (-> self path-position quad) (-> self root-override trans quad)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (suspend) + ) + (none) ) - (let ((v1-3 (-> self skel root-channel 0))) - (set! (-> v1-3 num-func) num-func-identity) - (set! (-> v1-3 frame-num) 0.0) - ) - (while #t - (let - ((gp-0 (-> (the-as process-drawable (-> self parent 0)) node-list data 4))) - (matrix->quaternion (-> self root-override quat) (-> gp-0 bone transform)) - (vector<-cspace! (-> self root-override trans) gp-0) - ) - (set! (-> self path-position quad) (-> self root-override trans quad)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (suspend) - ) - (none) - ) :post (the-as (function none :behavior keg) keg-post) ) @@ -274,71 +244,38 @@ keg-event-handler :code (behavior () - (let ((gp-0 (new-stack-vector0))) - (set! (-> gp-0 quad) (-> self root-override trans quad)) - (let - ((s5-0 - (eval-path-curve-div! - (-> (the-as process-drawable (-> self parent 0)) path) - (new-stack-vector0) + (let ((gp-0 (new-stack-vector0))) + (set! (-> gp-0 quad) (-> self root-override trans quad)) + (let ((s5-0 + (eval-path-curve-div! (-> (the-as process-drawable (-> self parent 0)) path) (new-stack-vector0) 0.0 'interp) + ) + (s4-0 (quaternion-copy! (new-stack-quaternion0) (-> self root-override quat))) + (s3-0 (new-stack-quaternion0)) + (a1-3 (TODO-RENAME-12 (-> (the-as process-drawable (-> self parent 0)) path) (new-stack-vector0) 0.0)) + (f30-0 45.0) + ) 0.0 - 'interp - ) - ) - (s4-0 - (quaternion-copy! (new-stack-quaternion0) (-> self root-override quat)) - ) - (s3-0 (new-stack-quaternion0)) - (a1-3 - (TODO-RENAME-12 - (-> (the-as process-drawable (-> self parent 0)) path) - (new-stack-vector0) 0.0 - ) - ) - (f30-0 45.0) - ) - 0.0 - 0.0 - (forward-up-nopitch->quaternion - s3-0 - a1-3 - (new 'static 'vector :y 1.0 :w 1.0) - ) - (while #t - (if - (>= - (the float (- (-> *display* base-frame-counter) (-> self state-time))) - f30-0 - ) - (go keg-on-path) - ) - (let - ((f28-0 - (/ - (the float (- (-> *display* base-frame-counter) (-> self state-time))) - f30-0 + (forward-up-nopitch->quaternion s3-0 a1-3 (new 'static 'vector :y 1.0 :w 1.0)) + (while #t + (if (>= (the float (- (-> *display* base-frame-counter) (-> self state-time))) f30-0) + (go keg-on-path) + ) + (let ((f28-0 (/ (the float (- (-> *display* base-frame-counter) (-> self state-time))) f30-0))) + (vector-lerp! (-> self root-override trans) gp-0 s5-0 f28-0) + (set! (-> self path-position quad) (-> self root-override trans quad)) + (quaternion-slerp! (-> self root-override quat) s4-0 s3-0 f28-0) + ) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) 1.0) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) ) - ) ) - (vector-lerp! (-> self root-override trans) gp-0 s5-0 f28-0) - (set! (-> self path-position quad) (-> self root-override trans quad)) - (quaternion-slerp! (-> self root-override quat) s4-0 s3-0 f28-0) - ) - (let ((a0-11 (-> self skel root-channel 0))) - (set! (-> a0-11 param 0) 1.0) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (suspend) ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior keg) keg-post) ) @@ -348,200 +285,126 @@ keg-event-handler :code (behavior () - (local-vars - (sv-48 float) - (sv-64 float) - (sv-80 float) - (sv-96 float) - (sv-112 float) - ) - (let ((gp-0 (new-stack-vector0)) - (s5-0 (new 'stack 'vector3s)) - ) - 0.0 - (let ((f30-0 0.0)) - 0.0 - (let - ((f28-0 - (the - float - (+ - (-> - (the-as keg-conveyor-paddle (-> self parent 0)) - path - curve - num-cverts - ) - -1 + (local-vars (sv-48 float) (sv-64 float) (sv-80 float) (sv-96 float) (sv-112 float)) + (let ((gp-0 (new-stack-vector0)) + (s5-0 (new 'stack 'vector3s)) ) - ) - ) - ) 0.0 - (let - ((f26-1 - (- - 1.0 - (get-current-phase - (-> (the-as keg-conveyor-paddle (-> self parent 0)) sync) - ) + (let ((f30-0 0.0)) + 0.0 + (let ((f28-0 (the float (+ (-> (the-as keg-conveyor-paddle (-> self parent 0)) path curve num-cverts) -1)))) + 0.0 + (let ((f26-1 (- 1.0 (get-current-phase (-> (the-as keg-conveyor-paddle (-> self parent 0)) sync)))) + (f24-0 102379.1) + ) + (/ 1.0 f24-0) + (let ((f22-0 1.0) + (f20-0 2.5) + ) + (set! sv-48 0.0) + (set! sv-64 0.0) + (set! sv-80 (- (-> *standard-dynamics* gravity-length))) + (while #t + (let ((f0-13 (+ (get-current-phase (-> (the-as keg-conveyor-paddle (-> self parent 0)) sync)) f26-1))) + (set! sv-96 (- f0-13 (the float (the int f0-13)))) + ) + (if (< sv-96 f30-0) + (go keg-in-chute) + ) + (set! f30-0 sv-96) + (set! sv-112 (* sv-96 f28-0)) + (eval-path-curve-div! + (-> (the-as keg-conveyor-paddle (-> self parent 0)) path) + (-> self path-position) + sv-112 + 'interp + ) + (TODO-RENAME-12 (-> (the-as keg-conveyor-paddle (-> self parent 0)) path) gp-0 sv-112) + (seek-toward-heading-vec! (-> self root-override) gp-0 131072.0 30) + (set! (-> self root-override trans quad) (-> self path-position quad)) + (when (= (-> self keg-behavior) 1) + (cond + ((>= (vector4-dot (camera-pos) (-> self shadow-enable-plane)) 0.0) + (let ((v1-32 (-> self draw shadow-ctrl))) + (set! (-> v1-32 settings flags) (logand -33 (-> v1-32 settings flags))) + ) + 0 + (let ((v1-35 (-> self draw shadow-ctrl))) + (set! (-> v1-35 settings top-plane w) (- (-> self path-position y))) + ) + 0 + (let ((v1-38 (-> self draw shadow-ctrl))) + (set! (-> v1-38 settings bot-plane w) (- (+ -8192.0 (-> self path-position y)))) + ) + 0 + ) + (else + (let ((v1-41 (-> self draw shadow-ctrl))) + (logior! (-> v1-41 settings flags) 32) + ) + 0 + (let ((v1-44 (-> self draw shadow-ctrl))) + (set! (-> v1-44 settings top-plane w) (- (-> self path-position y))) + ) + 0 + (let ((v1-47 (-> self draw shadow-ctrl))) + (set! (-> v1-47 settings bot-plane w) (- (+ -8192.0 (-> self path-position y)))) + ) + 0 + ) + ) + (let ((f0-32 (- f28-0 sv-112))) + (if (< f0-32 f20-0) + (set! f22-0 (/ f0-32 f20-0)) + ) + ) + (set! sv-64 (+ sv-64 (* sv-80 (-> *display* seconds-per-frame)))) + (set! sv-48 (+ sv-48 (* sv-64 (-> *display* seconds-per-frame)))) + (when (< sv-48 0.0) + (set! sv-48 0.0) + (activate! (-> self smush) -0.15 90 150 1.0 1.0) + (set! sv-64 f24-0) + (sound-play-by-name (static-sound-name "barrel-bounce") (new-sound-id) 819 0 0 1 #t) + (let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when s4-1 + (let ((t9-12 (method-of-type part-tracker activate))) + (t9-12 (the-as part-tracker s4-1) self 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + s4-1 + part-tracker-init + (-> *part-group-id-table* 197) + -1 + keg-bounce-set-particle-rotation-callback + (-> self ppointer) + #f + (-> self root-override trans) + ) + (-> s4-1 ppointer) + ) + ) + ) + (let ((f0-39 (update! (-> self smush)))) + (keg-update-smush self f0-39) + ) + (+! (-> self root-override trans y) (* f22-0 sv-48)) + (set! (-> s5-0 x) 0.0) + (set! (-> s5-0 y) 1.0) + (set! (-> s5-0 z) 0.0) + ) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) 1.0) + (joint-control-channel-group-eval! a0-21 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) + ) + ) + ) ) - ) - (f24-0 102379.1) ) - (/ 1.0 f24-0) - (let ((f22-0 1.0) - (f20-0 2.5) - ) - (set! sv-48 0.0) - (set! sv-64 0.0) - (set! sv-80 (- (-> *standard-dynamics* gravity-length))) - (while #t - (let - ((f0-13 - (+ - (get-current-phase - (-> (the-as keg-conveyor-paddle (-> self parent 0)) sync) - ) - f26-1 - ) - ) - ) - (set! sv-96 (- f0-13 (the float (the int f0-13)))) - ) - (if (< sv-96 f30-0) - (go keg-in-chute) - ) - (set! f30-0 sv-96) - (set! sv-112 (* sv-96 f28-0)) - (eval-path-curve-div! - (-> (the-as keg-conveyor-paddle (-> self parent 0)) path) - (-> self path-position) - sv-112 - 'interp - ) - (TODO-RENAME-12 - (-> (the-as keg-conveyor-paddle (-> self parent 0)) path) - gp-0 - sv-112 - ) - (seek-toward-heading-vec! (-> self root-override) gp-0 131072.0 30) - (set! (-> self root-override trans quad) (-> self path-position quad)) - (when (= (-> self keg-behavior) 1) - (cond - ((>= (vector4-dot (camera-pos) (-> self shadow-enable-plane)) 0.0) - (let ((v1-32 (-> self draw shadow-ctrl))) - (set! - (-> v1-32 settings flags) - (logand -33 (-> v1-32 settings flags)) - ) - ) - 0 - (let ((v1-35 (-> self draw shadow-ctrl))) - (set! - (-> v1-35 settings top-plane w) - (- (-> self path-position y)) - ) - ) - 0 - (let ((v1-38 (-> self draw shadow-ctrl))) - (set! - (-> v1-38 settings bot-plane w) - (- (+ -8192.0 (-> self path-position y))) - ) - ) - 0 - ) - (else - (let ((v1-41 (-> self draw shadow-ctrl))) - (logior! (-> v1-41 settings flags) 32) - ) - 0 - (let ((v1-44 (-> self draw shadow-ctrl))) - (set! - (-> v1-44 settings top-plane w) - (- (-> self path-position y)) - ) - ) - 0 - (let ((v1-47 (-> self draw shadow-ctrl))) - (set! - (-> v1-47 settings bot-plane w) - (- (+ -8192.0 (-> self path-position y))) - ) - ) - 0 - ) - ) - (let ((f0-32 (- f28-0 sv-112))) - (if (< f0-32 f20-0) - (set! f22-0 (/ f0-32 f20-0)) - ) - ) - (set! sv-64 (+ sv-64 (* sv-80 (-> *display* seconds-per-frame)))) - (set! sv-48 (+ sv-48 (* sv-64 (-> *display* seconds-per-frame)))) - (when (< sv-48 0.0) - (set! sv-48 0.0) - (activate! (-> self smush) -0.15 90 150 1.0 1.0) - (set! sv-64 f24-0) - (sound-play-by-name - (static-sound-name "barrel-bounce") - (new-sound-id) - 819 - 0 - 0 - 1 - #t - ) - (let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000))) - (when s4-1 - (let ((t9-12 (method-of-type part-tracker activate))) - (t9-12 - (the-as part-tracker s4-1) - self - 'part-tracker - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - s4-1 - part-tracker-init - (-> *part-group-id-table* 197) - -1 - keg-bounce-set-particle-rotation-callback - (-> self ppointer) - #f - (-> self root-override trans) - ) - (-> s4-1 ppointer) - ) - ) - ) - (let ((f0-39 (update! (-> self smush)))) - (keg-update-smush self f0-39) - ) - (+! (-> self root-override trans y) (* f22-0 sv-48)) - (set! (-> s5-0 x) 0.0) - (set! (-> s5-0 y) 1.0) - (set! (-> s5-0 z) 0.0) - ) - (let ((a0-21 (-> self skel root-channel 0))) - (set! (-> a0-21 param 0) 1.0) - (joint-control-channel-group-eval! - a0-21 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (suspend) - ) - ) - ) ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior keg) keg-post) ) @@ -551,152 +414,103 @@ keg-event-handler :code (behavior () - (let - ((gp-0 - (TODO-RENAME-12 - (-> (the-as process-drawable (-> self parent 0)) path) - (new-stack-vector0) - (the - float - (+ - (-> (the-as process-drawable (-> self parent 0)) path curve num-cverts) - -1 - ) + (let ((gp-0 (TODO-RENAME-12 + (-> (the-as process-drawable (-> self parent 0)) path) + (new-stack-vector0) + (the float (+ (-> (the-as process-drawable (-> self parent 0)) path curve num-cverts) -1)) + ) + ) + (s5-0 (new-stack-vector0)) + (f30-0 61440.0) + (f28-0 0.0) + (f26-0 (- (-> *standard-dynamics* gravity-length))) + ) + (let ((v1-10 (-> self draw shadow-ctrl))) + (logior! (-> v1-10 settings flags) 32) + ) + 0 + (clear-collide-with-as (-> self root-override)) + (vector-normalize! gp-0 1.0) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (while #t + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (go keg-die) + ) + (let ((v1-23 (-> self root-override trans))) + (vector-float*! s5-0 gp-0 (* f30-0 (-> *display* seconds-per-frame))) + (set! (-> s5-0 y) (* f28-0 (-> *display* seconds-per-frame))) + (+! f28-0 (* f26-0 (-> *display* seconds-per-frame))) + (vector+! v1-23 v1-23 s5-0) + ) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) 1.0) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) ) - ) ) - (s5-0 (new-stack-vector0)) - (f30-0 61440.0) - (f28-0 0.0) - (f26-0 (- (-> *standard-dynamics* gravity-length))) - ) - (let ((v1-10 (-> self draw shadow-ctrl))) - (logior! (-> v1-10 settings flags) 32) - ) - 0 - (clear-collide-with-as (-> self root-override)) - (vector-normalize! gp-0 1.0) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while #t - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) - (go keg-die) - ) - (let ((v1-23 (-> self root-override trans))) - (vector-float*! s5-0 gp-0 (* f30-0 (-> *display* seconds-per-frame))) - (set! (-> s5-0 y) (* f28-0 (-> *display* seconds-per-frame))) - (+! f28-0 (* f26-0 (-> *display* seconds-per-frame))) - (vector+! v1-23 v1-23 s5-0) - ) - (let ((a0-11 (-> self skel root-channel 0))) - (set! (-> a0-11 param 0) 1.0) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (suspend) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior keg) keg-post) ) (defstate keg-die (keg) :event - (the-as - (function process int symbol event-message-block object :behavior keg) - #f - ) + (the-as (function process int symbol event-message-block object :behavior keg) #f) :code - (behavior () - (sound-stop (-> self sound-id)) - (dummy-18 self) - (none) - ) + (behavior () (sound-stop (-> self sound-id)) (dummy-18 self) (none)) :post (the-as (function none :behavior keg) transform-post) ) (defbehavior keg-init-by-other keg ((arg0 keg) (arg1 int)) (stack-size-set! (-> self main-thread) 512) - (let - ((s4-0 - (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 16384.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 16384.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> self root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> self root-override) s4-0) - ) (set! (-> self root-override trans quad) (-> arg0 root-override trans quad)) (initialize-skeleton self *keg-sg* '()) - (set! - (-> self draw shadow-ctrl) - (new 'process 'shadow-control 0.0 0.0 614400.0 (the-as float 60) 245760.0) - ) + (set! (-> self draw shadow-ctrl) (new 'process 'shadow-control 0.0 0.0 614400.0 (the-as float 60) 245760.0)) (let ((v1-25 (-> self draw shadow-ctrl))) - (logior! (-> v1-25 settings flags) 32) - ) + (logior! (-> v1-25 settings flags) 32) + ) 0 - (let - ((s5-1 (new 'static 'vector :x -514715.0 :y 226968.0 :z 3906894.8 :w 1.0))) - (let - ((v1-27 (new 'static 'vector :x 115430.4 :y 109848.9 :z 4391595.5 :w 1.0)) - (s3-1 (new 'stack-no-clear 'vector)) - (s4-1 (new 'stack-no-clear 'vector)) - ) - (vector-! s3-1 v1-27 s5-1) - (vector-normalize! s3-1 1.0) - (vector-cross! s4-1 s3-1 *y-vector*) - (vector-normalize! s4-1 1.0) - (vector-cross! (-> self shadow-enable-plane) s4-1 s3-1) + (let ((s5-1 (new 'static 'vector :x -514715.0 :y 226968.0 :z 3906894.8 :w 1.0))) + (let ((v1-27 (new 'static 'vector :x 115430.4 :y 109848.9 :z 4391595.5 :w 1.0)) + (s3-1 (new 'stack-no-clear 'vector)) + (s4-1 (new 'stack-no-clear 'vector)) + ) + (vector-! s3-1 v1-27 s5-1) + (vector-normalize! s3-1 1.0) + (vector-cross! s4-1 s3-1 *y-vector*) + (vector-normalize! s4-1 1.0) + (vector-cross! (-> self shadow-enable-plane) s4-1 s3-1) + ) + (vector-normalize! (-> self shadow-enable-plane) 1.0) + (set! (-> self shadow-enable-plane w) (- (vector-dot (-> self shadow-enable-plane) s5-1))) ) - (vector-normalize! (-> self shadow-enable-plane) 1.0) - (set! - (-> self shadow-enable-plane w) - (- (vector-dot (-> self shadow-enable-plane) s5-1)) - ) - ) (set! (-> self keg-behavior) arg1) (logclear! (-> self mask) (process-mask actor-pause enemy)) (let ((gp-1 (new-stack-vector0))) - (TODO-RENAME-12 - (-> (the-as process-drawable (-> self parent 0)) path) - gp-1 - 0.0 + (TODO-RENAME-12 (-> (the-as process-drawable (-> self parent 0)) path) gp-1 0.0) + (set-heading-vec! (-> self root-override) gp-1) ) - (set-heading-vec! (-> self root-override) gp-1) - ) (set! (-> self sound-id) (new-sound-id)) (go keg-on-paddle) (none) @@ -704,58 +518,46 @@ (defun keg-conveyor-spawn-keg ((arg0 keg-conveyor)) (let ((s5-0 (get-process *default-dead-pool* keg #x4000))) - (when s5-0 - (let ((t9-1 (method-of-type keg activate))) - (t9-1 (the-as keg s5-0) arg0 'keg (the-as pointer #x70004000)) - ) - (run-now-in-process s5-0 keg-init-by-other arg0 0) - (-> s5-0 ppointer) + (when s5-0 + (let ((t9-1 (method-of-type keg activate))) + (t9-1 (the-as keg s5-0) arg0 'keg (the-as pointer #x70004000)) + ) + (run-now-in-process s5-0 keg-init-by-other arg0 0) + (-> s5-0 ppointer) + ) ) - ) ) (defun keg-conveyor-spawn-bouncing-keg ((arg0 keg-conveyor)) (let ((s5-0 (get-process *default-dead-pool* keg #x4000))) - (when s5-0 - (let ((t9-1 (method-of-type keg activate))) - (t9-1 (the-as keg s5-0) arg0 'keg (the-as pointer #x70004000)) - ) - (run-now-in-process s5-0 keg-init-by-other arg0 1) - (-> s5-0 ppointer) + (when s5-0 + (let ((t9-1 (method-of-type keg activate))) + (t9-1 (the-as keg s5-0) arg0 'keg (the-as pointer #x70004000)) + ) + (run-now-in-process s5-0 keg-init-by-other arg0 1) + (-> s5-0 ppointer) + ) ) - ) ) (define *keg-conveyor-keg-spawn-table* - (the-as (array int8) - (new - 'static - 'boxed-array - :type int8 :length 6 :allocated-length 6 - 1 - 2 - 1 - 1 - 2 - 1 - ) - ) + (the-as (array int8) (new 'static 'boxed-array :type int8 :length 6 :allocated-length 6 1 2 1 1 2 1)) ) (defstate keg-conveyor-idle (keg-conveyor) :code (behavior () - (let ((v1-2 (-> self skel root-channel 0))) - (set! (-> v1-2 num-func) num-func-identity) - (set! (-> v1-2 frame-num) 0.0) + (let ((v1-2 (-> self skel root-channel 0))) + (set! (-> v1-2 num-func) num-func-identity) + (set! (-> v1-2 frame-num) 0.0) + ) + 0.0 + (while #t + (suspend) + ) + (none) ) - 0.0 - (while #t - (suspend) - ) - (none) - ) :post (the-as (function none :behavior keg-conveyor) ja-post) ) @@ -763,166 +565,125 @@ (defstate keg-conveyor-paddle-idle (keg-conveyor-paddle) :code (behavior () - (let ((f30-0 57.0) - (gp-0 0) - (s5-0 (length *keg-conveyor-keg-spawn-table*)) - ) - (while #t - (let ((s4-0 #f)) - (when - (or - (not *target*) - (< - 102400.0 - (vector-vector-distance - (-> self root-override trans) - (-> *target* control trans) + (let ((f30-0 57.0) + (gp-0 0) + (s5-0 (length *keg-conveyor-keg-spawn-table*)) ) - ) - ) - (let ((v1-10 (-> *keg-conveyor-keg-spawn-table* gp-0))) - (cond - ((zero? v1-10) - (nothing) - ) - ((= v1-10 1) - (keg-conveyor-spawn-keg (the-as keg-conveyor self)) - ) - ((= v1-10 2) - (keg-conveyor-spawn-bouncing-keg (the-as keg-conveyor self)) - ) - (else - (nothing) - ) - ) - ) - ) - (+! gp-0 1) - (if (>= gp-0 s5-0) - (set! gp-0 0) - ) - (let ((a0-6 (-> self skel root-channel 0))) - (set! (-> a0-6 frame-group) (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - ) - (set! - (-> a0-6 param 0) - (the float (+ (-> (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-6 param 1) 1.0) - (set! (-> a0-6 frame-num) 0.0) - (joint-control-channel-group! - a0-6 - (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - num-func-seek! - ) - ) - (until (ja-done? 0) - (when (and (not s4-0) (>= (ja-aframe-num 0) f30-0)) - (set! s4-0 #t) - (when (-> self object-on-paddle) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) self) - (set! (-> a1-2 num-params) 0) - (set! (-> a1-2 message) 'detach) - (let ((t9-8 send-event-function) - (v1-42 (-> self object-on-paddle)) - ) - (t9-8 (the-as process-tree (if v1-42 - (-> v1-42 0 max-value) - ) + (while #t + (let ((s4-0 #f)) + (when (or + (not *target*) + (< 102400.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) ) - a1-2 + (let ((v1-10 (-> *keg-conveyor-keg-spawn-table* gp-0))) + (cond + ((zero? v1-10) + (nothing) + ) + ((= v1-10 1) + (keg-conveyor-spawn-keg (the-as keg-conveyor self)) + ) + ((= v1-10 2) + (keg-conveyor-spawn-bouncing-keg (the-as keg-conveyor self)) + ) + (else + (nothing) + ) + ) + ) + ) + (+! gp-0 1) + (if (>= gp-0 s5-0) + (set! gp-0 0) + ) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! (-> a0-6 param 0) (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! + a0-6 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (when (and (not s4-0) (>= (ja-aframe-num 0) f30-0)) + (set! s4-0 #t) + (when (-> self object-on-paddle) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 0) + (set! (-> a1-2 message) 'detach) + (let ((t9-8 send-event-function) + (v1-42 (-> self object-on-paddle)) + ) + (t9-8 + (the-as process-tree (if v1-42 + (-> v1-42 0 max-value) + ) + ) + a1-2 + ) + ) + ) + ) + ) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1))) + (set! (-> a0-9 param 1) 1.0) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) ) - ) ) - (suspend) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 param 0) - (the float (+ (-> a0-9 frame-group data 0 length) -1)) - ) - (set! (-> a0-9 param 1) 1.0) - (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior keg-conveyor-paddle) transform-post) ) -(defbehavior - keg-conveyor-paddle-init-by-other keg-conveyor-paddle - ((arg0 keg-conveyor-paddle)) - (let - ((s5-0 - (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) default-collision-reaction) - (set! - (-> s5-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let - ((s4-0 - (new - 'process - 'collide-shape-prim-mesh - s5-0 - (the-as uint 0) - (the-as uint 0) - ) +(defbehavior keg-conveyor-paddle-init-by-other keg-conveyor-paddle ((arg0 keg-conveyor-paddle)) + (let ((s5-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set! (-> s4-0 prim-core offense) 4) + (set! (-> s4-0 transform-index) 3) + (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 16384.0) + (set-root-prim! s5-0 s4-0) ) - ) - (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set! (-> s4-0 prim-core offense) 4) - (set! (-> s4-0 transform-index) 3) - (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 16384.0) - (set-root-prim! s5-0 s4-0) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (backup-collide-with-as s5-0) + (set! (-> self root-override) s5-0) ) - (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) - (backup-collide-with-as s5-0) - (set! (-> self root-override) s5-0) - ) (set! (-> self path) (new 'process 'curve-control self 'path -1000000000.0)) - (logior! - (-> self path flags) - (path-control-flag display draw-line draw-point draw-text) - ) + (logior! (-> self path flags) (path-control-flag display draw-line draw-point draw-text)) (set! (-> self root-override trans quad) (-> arg0 root-override trans quad)) - (set! - (-> self root-override quat vec quad) - (-> arg0 root-override quat vec quad) - ) + (set! (-> self root-override quat vec quad) (-> arg0 root-override quat vec quad)) (set! (-> self root-override scale quad) (-> arg0 root-override scale quad)) (initialize-skeleton self *keg-conveyor-paddle-sg* '()) (setup-params! (-> self sync) (the-as uint 4800) 0.0 0.15 0.15) @@ -934,74 +695,47 @@ (defmethod relocate keg-conveyor ((obj keg-conveyor) (arg0 int)) (if (nonzero? (-> obj pivot)) - (&+! (-> obj pivot) arg0) - ) + (&+! (-> obj pivot) arg0) + ) (the-as - keg-conveyor - ((the-as - (function process-drawable int process-drawable) - (find-parent-method keg-conveyor 7) - ) - obj - arg0 + keg-conveyor + ((the-as (function process-drawable int process-drawable) (find-parent-method keg-conveyor 7)) obj arg0) ) - ) ) ;; WARN: Expression building failed: Function (method 11 keg-conveyor) has a return type of none, but the expression builder found a return statement. -(defmethod - init-from-entity! - keg-conveyor - ((obj keg-conveyor) (arg0 entity-actor)) +(defmethod init-from-entity! keg-conveyor ((obj keg-conveyor) (arg0 entity-actor)) (set! (-> obj mask) (logior (process-mask enemy death) (-> obj mask))) (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *keg-conveyor-sg* '()) (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) - (logior! - (-> obj path flags) - (path-control-flag display draw-line draw-point draw-text) - ) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) (when (logtest? (-> obj path flags) (path-control-flag not-found)) - (go process-drawable-art-error "path") - (return #f) - ) + (go process-drawable-art-error "path") + (return #f) + ) (logclear! (-> obj mask) (process-mask actor-pause)) - (set! - (-> obj pivot) - (new - 'process - 'joint-mod-spinner - obj - 4 - (new 'static 'vector :x 1.0 :w 1.0) - 65536.0 - ) - ) + (set! (-> obj pivot) (new 'process 'joint-mod-spinner obj 4 (new 'static 'vector :x 1.0 :w 1.0) 65536.0)) (let ((s5-1 (new-stack-vector0))) - (let ((s4-0 (new-stack-matrix0))) - (TODO-RENAME-12 (-> obj path) s5-1 0.0) - (set-heading-vec! (-> obj root) s5-1) - (quaternion->matrix s4-0 (-> obj root quat)) - (set-vector! s5-1 -4096.0 -3072.0 -1433.6 1.0) - (vector-rotate*! s5-1 s5-1 s4-0) - ) - (vector+! (-> obj root trans) (-> obj root trans) s5-1) - ) - (let ((s5-2 (get-process *default-dead-pool* keg-conveyor-paddle #x4000))) - (when s5-2 - (let ((t9-11 (method-of-type keg-conveyor-paddle activate))) - (t9-11 - (the-as keg-conveyor-paddle s5-2) - obj - 'keg-conveyor-paddle - (the-as pointer #x70004000) + (let ((s4-0 (new-stack-matrix0))) + (TODO-RENAME-12 (-> obj path) s5-1 0.0) + (set-heading-vec! (-> obj root) s5-1) + (quaternion->matrix s4-0 (-> obj root quat)) + (set-vector! s5-1 -4096.0 -3072.0 -1433.6 1.0) + (vector-rotate*! s5-1 s5-1 s4-0) + ) + (vector+! (-> obj root trans) (-> obj root trans) s5-1) + ) + (let ((s5-2 (get-process *default-dead-pool* keg-conveyor-paddle #x4000))) + (when s5-2 + (let ((t9-11 (method-of-type keg-conveyor-paddle activate))) + (t9-11 (the-as keg-conveyor-paddle s5-2) obj 'keg-conveyor-paddle (the-as pointer #x70004000)) + ) + (run-now-in-process s5-2 keg-conveyor-paddle-init-by-other obj) + (-> s5-2 ppointer) ) - ) - (run-now-in-process s5-2 keg-conveyor-paddle-init-by-other obj) - (-> s5-2 ppointer) ) - ) (go keg-conveyor-idle) (none) ) diff --git a/goal_src/levels/misty/misty-teetertotter.gc b/goal_src/levels/misty/misty-teetertotter.gc index 4464b4e837..5e60e91655 100644 --- a/goal_src/levels/misty/misty-teetertotter.gc +++ b/goal_src/levels/misty/misty-teetertotter.gc @@ -6,9 +6,6 @@ ;; dgos: L1, MIS (declare-type teetertotter process-drawable) -(define-extern teetertotter-idle (state teetertotter)) -(define-extern teetertotter-launch (state teetertotter)) -(define-extern teetertotter-bend (state teetertotter)) ;; DECOMP BEGINS @@ -21,6 +18,11 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + teetertotter-bend + teetertotter-idle + teetertotter-launch + ) ) @@ -33,74 +35,57 @@ ) (defun target-on-end-of-teetertotter? ((arg0 teetertotter)) - (let - ((gp-1 - (vector-! - (new-stack-vector0) - (-> *target* control trans) - (-> arg0 root trans) - ) - ) + (let ((gp-1 (vector-! (new-stack-vector0) (-> *target* control trans) (-> arg0 root trans)))) + (if (< (vector-dot (vector-x-quaternion! (new-stack-vector0) (-> arg0 root quat)) gp-1) -8192.0) + #t + ) ) - (if - (< - (vector-dot - (vector-x-quaternion! (new-stack-vector0) (-> arg0 root quat)) - gp-1 - ) - -8192.0 - ) - #t - ) - ) ) (defstate teetertotter-idle (teetertotter) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('attack) - (case (-> arg3 param 1) - (('flop) - (when (target-on-end-of-teetertotter? self) - (set! (-> self in-launch-window) #f) - (increment-success-for-hint - (game-text-id misty-teetertotter-bonk-dax-tutorial) - ) - (go teetertotter-launch) + (case arg2 + (('attack) + (case (-> arg3 param 1) + (('flop) + (when (target-on-end-of-teetertotter? self) + (set! (-> self in-launch-window) #f) + (increment-success-for-hint (game-text-id misty-teetertotter-bonk-dax-tutorial)) + (go teetertotter-launch) + ) ) ) ) - ) - (('bonk) - (when (target-on-end-of-teetertotter? self) - (level-hint-spawn - (game-text-id misty-teetertotter-bonk-dax-tutorial) - "sksp0070" - (the-as entity #f) - *entity-pool* - (game-task none) + (('bonk) + (when (target-on-end-of-teetertotter? self) + (level-hint-spawn + (game-text-id misty-teetertotter-bonk-dax-tutorial) + "sksp0070" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (go teetertotter-bend) + ) ) - (go teetertotter-bend) ) - ) ) - ) :code (behavior () - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (while #t + (suspend) + ) + (none) ) - (while #t - (suspend) - ) - (none) - ) :post (the-as (function none :behavior teetertotter) transform-post) ) @@ -108,117 +93,89 @@ (defstate teetertotter-launch (teetertotter) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (the-as object (when (= arg2 'touch) - (when - (and - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg3 param 0)) - (the-as collide-shape-moving (-> self root)) - (the-as uint 1) - ) - (-> self rock-is-dangerous) - ) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) self) - (set! (-> a1-2 num-params) 2) - (set! (-> a1-2 message) 'attack) - (set! (-> a1-2 param 0) (-> arg3 param 0)) - (let ((a0-2 (new 'static 'attack-info :mask #x20))) - (set! (-> a0-2 mode) 'deadly) - (set! (-> a1-2 param 1) (the-as uint a0-2)) - ) - (send-event-function arg0 a1-2) - ) - ) - (when - (and - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg3 param 0)) - (the-as collide-shape-moving (-> self root)) - (the-as uint 2) - ) - (target-on-end-of-teetertotter? self) - (not (-> self launched-player)) - (-> self in-launch-window) - ) - (let ((a1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-4 from) self) - (set! (-> a1-4 num-params) 2) - (set! (-> a1-4 message) 'shove) - (set! (-> a1-4 param 0) (the-as uint #f)) - (let ((v1-16 (new 'static 'attack-info :mask #xcc0))) - (set! (-> v1-16 shove-back) 0.0) - (set! (-> v1-16 shove-up) 53248.0) - (set! (-> v1-16 angle) 'jump) - (set! (-> v1-16 control) 1.0) - (set! (-> a1-4 param 1) (the-as uint v1-16)) - ) - (when (send-event-function arg0 a1-4) - (let ((v0-0 #t)) - (set! (-> self launched-player) v0-0) - v0-0 + (the-as object (when (= arg2 'touch) + (when (and + ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg3 param 0)) + (the-as collide-shape-moving (-> self root)) + (the-as uint 1) + ) + (-> self rock-is-dangerous) + ) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 2) + (set! (-> a1-2 message) 'attack) + (set! (-> a1-2 param 0) (-> arg3 param 0)) + (let ((a0-2 (new 'static 'attack-info :mask #x20))) + (set! (-> a0-2 mode) 'deadly) + (set! (-> a1-2 param 1) (the-as uint a0-2)) + ) + (send-event-function arg0 a1-2) + ) + ) + (when (and + ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg3 param 0)) + (the-as collide-shape-moving (-> self root)) + (the-as uint 2) + ) + (target-on-end-of-teetertotter? self) + (not (-> self launched-player)) + (-> self in-launch-window) + ) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 2) + (set! (-> a1-4 message) 'shove) + (set! (-> a1-4 param 0) (the-as uint #f)) + (let ((v1-16 (new 'static 'attack-info :mask #xcc0))) + (set! (-> v1-16 shove-back) 0.0) + (set! (-> v1-16 shove-up) 53248.0) + (set! (-> v1-16 angle) 'jump) + (set! (-> v1-16 control) 1.0) + (set! (-> a1-4 param 1) (the-as uint v1-16)) + ) + (when (send-event-function arg0 a1-4) + (let ((v0-0 #t)) + (set! (-> self launched-player) v0-0) + v0-0 + ) + ) + ) ) - ) ) - ) - ) + ) ) - ) :code (behavior () - (set! (-> self launched-player) #f) - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length + (set! (-> self launched-player) #f) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (let ((f0-4 (ja-aframe-num 0))) + (set! (-> self in-launch-window) (and (>= f0-4 76.0) (>= 82.0 f0-4))) + (let ((v1-16 (>= f0-4 12.0))) + (set! (-> self rock-is-dangerous) (and v1-16 (>= 76.0 f0-4))) + ) + ) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) + (go teetertotter-idle) + (none) ) - (until (ja-done? 0) - (let ((f0-4 (ja-aframe-num 0))) - (set! (-> self in-launch-window) (and (>= f0-4 76.0) (>= 82.0 f0-4))) - (let ((v1-16 (>= f0-4 12.0))) - (set! (-> self rock-is-dangerous) (and v1-16 (>= 76.0 f0-4))) - ) - ) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) - ) - (set! (-> a0-2 param 1) 1.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go teetertotter-idle) - (none) - ) :post (the-as (function none :behavior teetertotter) rider-post) ) @@ -226,171 +183,94 @@ (defstate teetertotter-bend (teetertotter) :code (behavior () - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1))) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) + (go teetertotter-idle) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 param 0) - (the float (+ (-> a0-1 frame-group data 0 length) -1)) - ) - (set! (-> a0-1 param 1) 1.0) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go teetertotter-idle) - (none) - ) :post (the-as (function none :behavior teetertotter) rider-post) ) -(defmethod - init-from-entity! - teetertotter - ((obj teetertotter) (arg0 entity-actor)) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) +(defmethod init-from-entity! teetertotter ((obj teetertotter) (arg0 entity-actor)) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 5) 0))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set-vector! (-> s3-0 local-sphere) 0.0 12288.0 0.0 36864.0) + (set-root-prim! s4-0 s3-0) + (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) + (set! (-> s2-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s2-0 collide-with) (the-as uint 16)) + (set! (-> s2-0 prim-core action) (the-as uint 1)) + (set! (-> s2-0 prim-core offense) 4) + (set! (-> s2-0 transform-index) 5) + (set-vector! (-> s2-0 local-sphere) -4096.0 2048.0 0.0 5120.0) + (append-prim s3-0 s2-0) + ) + (let ((s2-1 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 2)))) + (set! (-> s2-1 prim-core collide-as) (the-as uint 2048)) + (set! (-> s2-1 collide-with) (the-as uint 16)) + (set! (-> s2-1 prim-core action) (the-as uint 3)) + (set! (-> s2-1 prim-core offense) 4) + (set! (-> s2-1 transform-index) 7) + (set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 32768.0) + (append-prim s3-0 s2-1) + ) + (let ((s2-2 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0)))) + (set! (-> s2-2 prim-core collide-as) (the-as uint 2048)) + (set! (-> s2-2 collide-with) (the-as uint 16)) + (set! (-> s2-2 prim-core action) (the-as uint 1)) + (set! (-> s2-2 prim-core offense) 4) + (set! (-> s2-2 transform-index) 4) + (set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 32768.0) + (append-prim s3-0 s2-2) + ) + (let ((s2-3 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 2) (the-as uint 0)))) + (set! (-> s2-3 prim-core collide-as) (the-as uint 2048)) + (set! (-> s2-3 collide-with) (the-as uint 16)) + (set! (-> s2-3 prim-core action) (the-as uint 1)) + (set! (-> s2-3 prim-core offense) 4) + (set! (-> s2-3 transform-index) 3) + (set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 32768.0) + (append-prim s3-0 s2-3) + ) + (let ((s2-4 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 3) (the-as uint 2)))) + (set! (-> s2-4 prim-core collide-as) (the-as uint 2048)) + (set! (-> s2-4 collide-with) (the-as uint 16)) + (set! (-> s2-4 prim-core action) (the-as uint 3)) + (set! (-> s2-4 prim-core offense) 4) + (set! (-> s2-4 transform-index) 3) + (set-vector! (-> s2-4 local-sphere) 0.0 0.0 0.0 32768.0) + (append-prim s3-0 s2-4) + ) + ) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root) s4-0) ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 5) 0))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set-vector! (-> s3-0 local-sphere) 0.0 12288.0 0.0 36864.0) - (set-root-prim! s4-0 s3-0) - (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1)))) - (set! (-> s2-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s2-0 collide-with) (the-as uint 16)) - (set! (-> s2-0 prim-core action) (the-as uint 1)) - (set! (-> s2-0 prim-core offense) 4) - (set! (-> s2-0 transform-index) 5) - (set-vector! (-> s2-0 local-sphere) -4096.0 2048.0 0.0 5120.0) - (append-prim s3-0 s2-0) - ) - (let - ((s2-1 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 2) - ) - ) - ) - (set! (-> s2-1 prim-core collide-as) (the-as uint 2048)) - (set! (-> s2-1 collide-with) (the-as uint 16)) - (set! (-> s2-1 prim-core action) (the-as uint 3)) - (set! (-> s2-1 prim-core offense) 4) - (set! (-> s2-1 transform-index) 7) - (set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 32768.0) - (append-prim s3-0 s2-1) - ) - (let - ((s2-2 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 1) - (the-as uint 0) - ) - ) - ) - (set! (-> s2-2 prim-core collide-as) (the-as uint 2048)) - (set! (-> s2-2 collide-with) (the-as uint 16)) - (set! (-> s2-2 prim-core action) (the-as uint 1)) - (set! (-> s2-2 prim-core offense) 4) - (set! (-> s2-2 transform-index) 4) - (set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 32768.0) - (append-prim s3-0 s2-2) - ) - (let - ((s2-3 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 2) - (the-as uint 0) - ) - ) - ) - (set! (-> s2-3 prim-core collide-as) (the-as uint 2048)) - (set! (-> s2-3 collide-with) (the-as uint 16)) - (set! (-> s2-3 prim-core action) (the-as uint 1)) - (set! (-> s2-3 prim-core offense) 4) - (set! (-> s2-3 transform-index) 3) - (set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 32768.0) - (append-prim s3-0 s2-3) - ) - (let - ((s2-4 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 3) - (the-as uint 2) - ) - ) - ) - (set! (-> s2-4 prim-core collide-as) (the-as uint 2048)) - (set! (-> s2-4 collide-with) (the-as uint 16)) - (set! (-> s2-4 prim-core action) (the-as uint 3)) - (set! (-> s2-4 prim-core offense) 4) - (set! (-> s2-4 transform-index) 3) - (set-vector! (-> s2-4 local-sphere) 0.0 0.0 0.0 32768.0) - (append-prim s3-0 s2-4) - ) - ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *teetertotter-sg* '()) (set! (-> obj launched-player) #f) diff --git a/goal_src/levels/misty/misty-warehouse.gc b/goal_src/levels/misty/misty-warehouse.gc index 851ed02f9a..32404284e9 100644 --- a/goal_src/levels/misty/misty-warehouse.gc +++ b/goal_src/levels/misty/misty-warehouse.gc @@ -6,9 +6,6 @@ ;; dgos: L1, MIS (declare-type silostep process-drawable) -(define-extern silostep-rise (state symbol silostep)) -(define-extern silostep-idle (state silostep)) -(define-extern silostep-camera (state silostep)) ;; DECOMP BEGINS @@ -20,6 +17,11 @@ :method-count-assert 20 :size-assert #xc0 :flag-assert #x14005000c0 + (:states + silostep-camera + silostep-idle + (silostep-rise symbol) + ) ) @@ -33,32 +35,31 @@ (defstate silostep-idle (silostep) :event - (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('trigger) - (go silostep-camera) - ) - (('trigger-rise) - (go silostep-rise #f) - ) - ) - ) + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 + (('trigger) + (go silostep-camera) + ) + (('trigger-rise) + (go silostep-rise #f) + ) + ) + ) :code (behavior () - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (transform-post) + (while #t + (suspend) + ) + (none) ) - (transform-post) - (while #t - (suspend) - ) - (none) - ) :post (the-as (function none :behavior silostep) ja-post) ) @@ -66,81 +67,60 @@ (defbehavior misty-camera-view silostep () (let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000)) (v1-1 (when gp-0 - (let ((t9-1 (method-of-type camera-tracker activate))) - (t9-1 - (the-as camera-tracker gp-0) - self - 'camera-tracker - (the-as pointer #x70004000) - ) + (let ((t9-1 (method-of-type camera-tracker activate))) + (t9-1 (the-as camera-tracker gp-0) self 'camera-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-0 + camera-tracker-init + (lambda :behavior camera-tracker + () + (while (not (process-grab? *target*)) + (suspend) + ) + (camera-change-to "camera-160" 150 #f) + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 900) + (suspend) + ) + ) + (while (not (process-release? (handle->process (-> self grab-target)))) + (suspend) + ) + (camera-change-to (the-as string 'base) 150 #f) + (none) + ) + ) + (-> gp-0 ppointer) ) - (run-now-in-process - gp-0 - camera-tracker-init - (lambda :behavior camera-tracker - () - (while (not (process-grab? *target*)) - (suspend) - ) - (camera-change-to "camera-160" 150 #f) - (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 900) - (suspend) - ) - ) - (while - (not - (process-release? (handle->process (-> self grab-target))) - ) - (suspend) - ) - (camera-change-to (the-as string 'base) 150 #f) - (none) - ) - ) - (-> gp-0 ppointer) - ) - ) - (v0-3 - (logior - (new 'static 'handle :pid (-> v1-1 0 pid)) - (new 'static 'handle :process v1-1) - ) - ) + ) + (v0-3 (logior (new 'static 'handle :pid (-> v1-1 0 pid)) (new 'static 'handle :process v1-1))) ) - (set! (-> self cam-tracker) (the-as uint v0-3)) - (the-as handle v0-3) - ) + (set! (-> self cam-tracker) (the-as uint v0-3)) + (the-as handle v0-3) + ) ) (defstate silostep-camera (silostep) :code (behavior () - (misty-camera-view) - (let* ((gp-0 (get-task-control (game-task misty-warehouse))) - (v1-1 (get-reminder gp-0 0)) - ) - (save-reminder gp-0 (logior v1-1 2) 0) + (misty-camera-view) + (let* ((gp-0 (get-task-control (game-task misty-warehouse))) + (v1-1 (get-reminder gp-0 0)) + ) + (save-reminder gp-0 (logior v1-1 2) 0) + ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (let ((gp-1 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-1) 300) + (suspend) + ) + ) + (sound-play-by-name (static-sound-name "arena-steps") (new-sound-id) 1024 0 0 1 #t) + (send-to-all-after (-> self link) 'trigger-rise) + (go silostep-rise #f) + (none) ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 300) - (suspend) - ) - ) - (sound-play-by-name - (static-sound-name "arena-steps") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (send-to-all-after (-> self link) 'trigger-rise) - (go silostep-rise #f) - (none) - ) :post (the-as (function none :behavior silostep) ja-post) ) @@ -148,120 +128,79 @@ (defstate silostep-rise (silostep) :code (behavior ((arg0 symbol)) - (process-entity-status! self (entity-perm-status complete) #t) - (when (not arg0) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 2)) + (process-entity-status! self (entity-perm-status complete) #t) + (when (not arg0) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) + (set! (-> a0-2 param 0) (-> self anim-limit)) + (set! (-> a0-2 param 1) 1.0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + ) + (until (ja-done? 0) + (rider-trans) + (rider-post) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (-> self anim-limit)) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - (set! (-> a0-2 param 0) (-> self anim-limit)) - (set! (-> a0-2 param 1) 1.0) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (rider-trans) - (rider-post) - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! (-> a0-3 param 0) (-> self anim-limit)) - (set! (-> a0-3 param 1) 1.0) + (let ((gp-1 (-> self skel root-channel 0))) (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) + gp-1 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> gp-1 frame-num) (-> self anim-limit)) ) - ) + (rider-post) + (while #t + (ja-post) + (suspend) + ) + (none) ) - (let ((gp-1 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-identity - ) - (set! (-> gp-1 frame-num) (-> self anim-limit)) - ) - (rider-post) - (while #t - (ja-post) - (suspend) - ) - (none) - ) :post (the-as (function none :behavior silostep) #f) ) (defmethod init-from-entity! silostep ((obj silostep) (arg0 entity-actor)) (logior! (-> obj mask) (process-mask movie-subject)) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 4) + (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 18432.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 4) - (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 18432.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *silostep-sg* '()) - (set! - (-> obj anim-limit) - (* - (res-lump-float arg0 'distance :default 1.0) - (the - float - (+ - (-> (the-as art-joint-anim (-> obj draw art-group data 2)) data 0 length) - -1 - ) - ) - ) - ) + (set! (-> obj anim-limit) + (* (res-lump-float arg0 'distance :default 1.0) + (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) data 0 length) -1)) + ) + ) (set! (-> obj link) (new 'process 'actor-link-info obj)) - (if - (and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) - ) - (go silostep-rise #t) - (go silostep-idle) - ) + (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) + (go silostep-rise #t) + (go silostep-idle) + ) (none) ) @@ -283,31 +222,20 @@ (defmethod TODO-RENAME-24 rounddoor ((obj rounddoor)) - (let - ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others)))) - (let - ((s4-0 - (new - 'process - 'collide-shape-prim-mesh - s5-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others)))) + (let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set! (-> s4-0 prim-core offense) 4) + (set! (-> s4-0 transform-index) 0) + (set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0) + (set-root-prim! s5-0 s4-0) ) - ) - (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set! (-> s4-0 prim-core offense) 4) - (set! (-> s4-0 transform-index) 0) - (set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0) - (set-root-prim! s5-0 s4-0) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (backup-collide-with-as s5-0) + (set! (-> obj root-override) s5-0) ) - (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) - (backup-collide-with-as s5-0) - (set! (-> obj root-override) s5-0) - ) 0 (none) ) @@ -322,10 +250,7 @@ (set! (-> obj auto-close) #t) (set! (-> obj one-way) #t) (vector-x-quaternion! (-> obj out-dir) (-> obj root-override quat)) - (set! - (-> obj out-dir w) - (- 8192.0 (vector-dot (-> obj out-dir) (-> obj root-override trans))) - ) + (set! (-> obj out-dir w) (- 8192.0 (vector-dot (-> obj out-dir) (-> obj root-override trans)))) (dummy-47 (-> obj root-override)) 0 (none) diff --git a/goal_src/levels/misty/quicksandlurker.gc b/goal_src/levels/misty/quicksandlurker.gc index 12ad42018a..85b1cfcb8b 100644 --- a/goal_src/levels/misty/quicksandlurker.gc +++ b/goal_src/levels/misty/quicksandlurker.gc @@ -354,6 +354,7 @@ :size-assert #xb0 :flag-assert #x14004000b0 (:states + quicksandlurker-missile-idle quicksandlurker-missile-impact ) ) @@ -554,10 +555,12 @@ quicksandlurker-attack quicksandlurker-die quicksandlurker-hide + quicksandlurker-idle quicksandlurker-popup quicksandlurker-track quicksandlurker-victory quicksandlurker-wait + quicksandlurker-yawn ) ) diff --git a/goal_src/levels/ogre/flying-lurker.gc b/goal_src/levels/ogre/flying-lurker.gc index 809446add0..1d6c5f791a 100644 --- a/goal_src/levels/ogre/flying-lurker.gc +++ b/goal_src/levels/ogre/flying-lurker.gc @@ -6,7 +6,6 @@ ;; dgos: L1, OGR (declare-type flying-lurker process-drawable) -(define-extern flying-lurker-clone (state handle string flying-lurker)) ;; DECOMP BEGINS @@ -26,6 +25,12 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + plunger-lurker-die + plunger-lurker-flee + plunger-lurker-idle + plunger-lurker-plunge + ) ) @@ -401,6 +406,14 @@ (:methods (dummy-20 (_type_) none 20) ) + (:states + (flying-lurker-clone handle string) + flying-lurker-die + flying-lurker-fly + flying-lurker-idle + flying-lurker-sleep + flying-lurker-start + ) ) diff --git a/goal_src/levels/ogre/ogre-obs.gc b/goal_src/levels/ogre/ogre-obs.gc index e3fa138333..5348d71afb 100644 --- a/goal_src/levels/ogre/ogre-obs.gc +++ b/goal_src/levels/ogre/ogre-obs.gc @@ -23,13 +23,6 @@ (declare-type ogre-bridge process-drawable) (declare-type shortcut-boulder process-drawable) -(define-extern ogre-bridgeend-idle (state ogre-bridgeend)) ;; unknown type -(define-extern ogre-bridge-activated (state ogre-bridge)) ;; unknown type -(define-extern ogre-bridge-idle (state ogre-bridge)) ;; unknown type -(define-extern ogre-bridge-break (state ogre-bridge)) ;; unknown type -(define-extern ogre-bridge-activate (state ogre-bridge)) ;; unknown type -(define-extern shortcut-boulder-idle (state shortcut-boulder)) ;; unknown type -(define-extern shortcut-boulder-break (state shortcut-boulder)) ;; unknown type ;; DECOMP BEGINS @@ -997,6 +990,12 @@ :method-count-assert 20 :size-assert #xd1 :flag-assert #x14007000d1 + (:states + ogre-bridge-activate + ogre-bridge-activated + ogre-bridge-break + ogre-bridge-idle + ) ) @@ -1415,6 +1414,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + ogre-bridgeend-idle + ) ) @@ -1584,6 +1586,10 @@ :method-count-assert 20 :size-assert #xd1 :flag-assert #x14007000d1 + (:states + shortcut-boulder-break + shortcut-boulder-idle + ) ) diff --git a/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc b/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc index d55df2beed..9f120c9909 100644 --- a/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc +++ b/goal_src/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL.gc @@ -5,7 +5,6 @@ ;; name in dgo: target-racer-h ;; dgos: FIC, LAV, MIS, OGR, ROL -(define-extern target-racing-smack (state float symbol target)) (define-extern target-racing-center-anim (function none :behavior target)) (define-extern racer-buzz (function float none :behavior target)) (define-extern target-racing-post (function none :behavior target)) diff --git a/goal_src/levels/robocave/spider-egg.gc b/goal_src/levels/robocave/spider-egg.gc index 37d9b92b17..773f818cbd 100644 --- a/goal_src/levels/robocave/spider-egg.gc +++ b/goal_src/levels/robocave/spider-egg.gc @@ -10,9 +10,6 @@ (declare-type spider-egg process-drawable) -(define-extern spider-egg-idle (state symbol spider-egg)) ;; unknown type -(define-extern spider-egg-hatch (state spider-egg)) ;; unknown type -(define-extern spider-egg-die (state spider-egg)) ;; unknown type ;; DECOMP BEGINS @@ -25,6 +22,11 @@ :method-count-assert 20 :size-assert #xd5 :flag-assert #x14007000d5 + (:states + spider-egg-die + spider-egg-hatch + (spider-egg-idle symbol) + ) ) @@ -47,204 +49,115 @@ (defstate spider-egg-idle (spider-egg) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (local-vars (v0-0 none)) - (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'touch) - (dummy-55 - (-> self root-override) - arg0 - (the-as touching-shapes-entry (-> arg3 param 0)) - 0.7 - 6144.0 - 16384.0 - ) - ) - ((= v1-0 'can-spawn?) - (return (the-as object #t)) - v0-0 - ) - ((= v1-0 'notify-spawned) - (go spider-egg-hatch) - ) - ((= v1-0 'attack) - (go spider-egg-die) - ) - ) - ) + (local-vars (v0-0 none)) + (let ((v1-0 arg2)) + (the-as + object + (cond + ((= v1-0 'touch) + (dummy-55 (-> self root-override) arg0 (the-as touching-shapes-entry (-> arg3 param 0)) 0.7 6144.0 16384.0) + ) + ((= v1-0 'can-spawn?) + (return (the-as object #t)) + v0-0 + ) + ((= v1-0 'notify-spawned) + (go spider-egg-hatch) + ) + ((= v1-0 'attack) + (go spider-egg-die) + ) + ) + ) + ) ) - ) :enter - (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) + (behavior ((arg0 symbol)) (set! (-> self state-time) (-> *display* base-frame-counter)) (none)) :code (behavior ((arg0 symbol)) - (let ((f30-0 (rand-vu-float-range 0.8 1.2))) - (cond - (arg0 - (ja-channel-set! 1) - (let ((gp-1 (-> self skel root-channel 0))) - (set! - (-> gp-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - (set! - (-> gp-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 9)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> gp-1 param 1) f30-0) - (set! - (-> gp-1 frame-num) - (rand-vu-float-range - 0.0 - (the float (+ (-> (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 - ) - ) - ) - ) - (joint-control-channel-group! - gp-1 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-5 (-> self skel root-channel 0))) - (set! - (-> a0-5 param 0) - (the float (+ (-> a0-5 frame-group data 0 length) -1)) - ) - (set! (-> a0-5 param 1) f30-0) - (joint-control-channel-group-eval! - a0-5 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (else - (ja-channel-push! 1 60) - ) - ) - (while #t - (let ((gp-2 (rand-vu-int-range 2 6))) - (dotimes (s5-0 gp-2) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - (set! - (-> a0-9 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 9)) - data - 0 - length + (let ((f30-0 (rand-vu-float-range 0.8 1.2))) + (cond + (arg0 + (ja-channel-set! 1) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + (set! (-> gp-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1)) + ) + (set! (-> gp-1 param 1) f30-0) + (set! (-> gp-1 frame-num) + (rand-vu-float-range 0.0 (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + ) + (joint-control-channel-group! gp-1 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group data 0 length) -1))) + (set! (-> a0-5 param 1) f30-0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-9 param 1) f30-0) - (set! (-> a0-9 frame-num) 0.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-seek! - ) + (else + (ja-channel-push! 1 60) + ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 param 0) - (the float (+ (-> a0-10 frame-group data 0 length) -1)) + (while #t + (let ((gp-2 (rand-vu-int-range 2 6))) + (dotimes (s5-0 gp-2) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + (set! (-> a0-9 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1)) + ) + (set! (-> a0-9 param 1) f30-0) + (set! (-> a0-9 frame-num) 0.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1))) + (set! (-> a0-10 param 1) f30-0) + (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) ) - (set! (-> a0-10 param 1) f30-0) - (joint-control-channel-group-eval! - a0-10 - (the-as art-joint-anim #f) - num-func-seek! + (ja-channel-push! 1 30) + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 frame-group) (the-as art-joint-anim (-> self draw art-group data 13))) + (set! (-> a0-13 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 13)) data 0 length) -1)) + ) + (set! (-> a0-13 param 1) 1.0) + (set! (-> a0-13 frame-num) 0.0) + (joint-control-channel-group! a0-13 (the-as art-joint-anim (-> self draw art-group data 13)) num-func-seek!) ) - ) + (until (ja-done? 0) + (suspend) + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 param 0) (the float (+ (-> a0-14 frame-group data 0 length) -1))) + (set! (-> a0-14 param 1) 1.0) + (joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (ja-channel-push! 1 30) ) - ) ) - (ja-channel-push! 1 30) - (let ((a0-13 (-> self skel root-channel 0))) - (set! - (-> a0-13 frame-group) - (the-as art-joint-anim (-> self draw art-group data 13)) - ) - (set! - (-> a0-13 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 13)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-13 param 1) 1.0) - (set! (-> a0-13 frame-num) 0.0) - (joint-control-channel-group! - a0-13 - (the-as art-joint-anim (-> self draw art-group data 13)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-14 (-> self skel root-channel 0))) - (set! - (-> a0-14 param 0) - (the float (+ (-> a0-14 frame-group data 0 length) -1)) - ) - (set! (-> a0-14 param 1) 1.0) - (joint-control-channel-group-eval! - a0-14 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (ja-channel-push! 1 30) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior spider-egg) ja-post) ) @@ -252,93 +165,62 @@ (defstate spider-egg-hatch (spider-egg) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (local-vars (v0-0 symbol)) - (case arg2 - (('can-spawn?) - (return (the-as object #f)) - v0-0 + (local-vars (v0-0 symbol)) + (case arg2 + (('can-spawn?) + (return (the-as object #f)) + v0-0 + ) ) ) - ) :code (behavior () - (dummy-18 self) - (logclear! (-> self mask) (process-mask actor-pause)) - (clear-collide-with-as (-> self root-override)) - (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-0 - (let ((t9-3 (method-of-type part-tracker activate))) - (t9-3 - (the-as part-tracker gp-0) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-0 - part-tracker-init - (-> *part-group-id-table* 324) - -1 - #f - #f - #f - (-> self root-override trans) - ) - (-> gp-0 ppointer) - ) - ) - (lods-assign! (-> self draw) (-> self broken-look)) - (ja-channel-push! 1 60) - (let ((a0-8 (-> self skel root-channel 0))) - (set! - (-> a0-8 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> a0-8 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length + (dummy-18 self) + (logclear! (-> self mask) (process-mask actor-pause)) + (clear-collide-with-as (-> self root-override)) + (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-0 + (let ((t9-3 (method-of-type part-tracker activate))) + (t9-3 (the-as part-tracker gp-0) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-0 + part-tracker-init + (-> *part-group-id-table* 324) + -1 + #f + #f + #f + (-> self root-override trans) + ) + (-> gp-0 ppointer) ) - -1 - ) ) - ) - (set! (-> a0-8 param 1) 1.0) - (set! (-> a0-8 frame-num) 0.0) - (joint-control-channel-group! - a0-8 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 param 0) - (the float (+ (-> a0-9 frame-group data 0 length) -1)) + (lods-assign! (-> self draw) (-> self broken-look)) + (ja-channel-push! 1 60) + (let ((a0-8 (-> self skel root-channel 0))) + (set! (-> a0-8 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> a0-8 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> a0-8 param 1) 1.0) + (set! (-> a0-8 frame-num) 0.0) + (joint-control-channel-group! a0-8 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) ) - (set! (-> a0-9 param 1) 1.0) - (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-seek! + (until (ja-done? 0) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1))) + (set! (-> a0-9 param 1) 1.0) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) + (logior! (-> self draw status) (draw-status drwf01)) + (until (not (-> self child)) + (suspend) + ) + (none) ) - (logior! (-> self draw status) 2) - (until (not (-> self child)) - (suspend) - ) - (none) - ) :post (the-as (function none :behavior spider-egg) ja-post) ) @@ -346,110 +228,80 @@ (defstate spider-egg-die (spider-egg) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (local-vars (v0-0 symbol)) - (case arg2 - (('can-spawn?) - (return (the-as object #f)) - v0-0 + (local-vars (v0-0 symbol)) + (case arg2 + (('can-spawn?) + (return (the-as object #f)) + v0-0 + ) ) ) - ) :code (behavior () - (dummy-18 self) - (logclear! (-> self mask) (process-mask actor-pause)) - (when (-> self notify-actor) - (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 1) - (set! (-> a1-0 message) 'notify) - (set! (-> a1-0 param 0) (the-as uint 'die)) - (let ((t9-1 send-event-function) - (v1-9 (-> self notify-actor)) - ) - (t9-1 (if v1-9 - (-> v1-9 extra process) - ) - a1-0 - ) - ) - ) - ) - (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) - (when gp-0 - (let ((t9-3 (method-of-type part-tracker activate))) - (t9-3 - (the-as part-tracker gp-0) - *entity-pool* - 'part-tracker - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-0 - part-tracker-init - (-> *part-group-id-table* 325) - -1 - #f - #f - #f - (-> self root-override trans) - ) - (-> gp-0 ppointer) - ) - ) - (lods-assign! (-> self draw) (-> self broken-look)) - (ja-channel-push! 1 30) - (clear-collide-with-as (-> self root-override)) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 frame-group) - (the-as art-joint-anim (-> self draw art-group data 12)) - ) - (set! - (-> a0-9 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 12)) - data - 0 - length + (dummy-18 self) + (logclear! (-> self mask) (process-mask actor-pause)) + (when (-> self notify-actor) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'notify) + (set! (-> a1-0 param 0) (the-as uint 'die)) + (let ((t9-1 send-event-function) + (v1-9 (-> self notify-actor)) + ) + (t9-1 + (if v1-9 + (-> v1-9 extra process) + ) + a1-0 + ) + ) ) - -1 - ) ) - ) - (set! (-> a0-9 param 1) 1.0) - (set! (-> a0-9 frame-num) 0.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim (-> self draw art-group data 12)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 param 0) - (the float (+ (-> a0-10 frame-group data 0 length) -1)) + (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-0 + (let ((t9-3 (method-of-type part-tracker activate))) + (t9-3 (the-as part-tracker gp-0) *entity-pool* 'part-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-0 + part-tracker-init + (-> *part-group-id-table* 325) + -1 + #f + #f + #f + (-> self root-override trans) + ) + (-> gp-0 ppointer) + ) ) - (set! (-> a0-10 param 1) 1.0) - (joint-control-channel-group-eval! - a0-10 - (the-as art-joint-anim #f) - num-func-seek! + (lods-assign! (-> self draw) (-> self broken-look)) + (ja-channel-push! 1 30) + (clear-collide-with-as (-> self root-override)) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 12))) + (set! (-> a0-9 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 12)) data 0 length) -1)) + ) + (set! (-> a0-9 param 1) 1.0) + (set! (-> a0-9 frame-num) 0.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 12)) num-func-seek!) ) - ) + (until (ja-done? 0) + (suspend) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1))) + (set! (-> a0-10 param 1) 1.0) + (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (logior! (-> self draw status) (draw-status drwf01)) + (until (not (-> self child)) + (suspend) + ) + (none) ) - (logior! (-> self draw status) 2) - (until (not (-> self child)) - (suspend) - ) - (none) - ) :post (the-as (function none :behavior spider-egg) ja-post) ) @@ -457,72 +309,51 @@ (defmethod init-from-entity! spider-egg ((obj spider-egg) (arg0 entity-actor)) (set! (-> obj mask) (logior (process-mask enemy) (-> obj mask))) (set! (-> obj mask) (logior (process-mask attackable) (-> obj mask))) - (let - ((s4-0 - (new - 'process - 'collide-shape-moving - obj - (collide-list-enum usually-hit-by-player) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 2048.0 0.0 3686.4) + (set-root-prim! s4-0 s3-0) ) - ) + (set! (-> s4-0 nav-radius) 4096.0) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 1) - (set-vector! (-> s3-0 local-sphere) 0.0 2048.0 0.0 3686.4) - (set-root-prim! s4-0 s3-0) - ) - (set! (-> s4-0 nav-radius) 4096.0) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *spider-egg-unbroken-sg* '()) - (dummy-9 - (-> obj broken-look) - *spider-egg-broken-sg* - (-> obj draw art-group) - (-> obj entity) - ) + (dummy-9 (-> obj broken-look) *spider-egg-broken-sg* (-> obj draw art-group) (-> obj entity)) (set-vector! (-> obj root-override scale) 0.4 0.4 0.4 1.0) (if (not (dummy-60 (-> obj root-override) 12288.0 40960.0 #t (the-as uint 1))) - (go process-drawable-art-error "no ground") - ) - (set! - (-> obj root-override trans y) - (+ -409.6 (-> obj root-override trans y)) - ) + (go process-drawable-art-error "no ground") + ) + (set! (-> obj root-override trans y) (+ -409.6 (-> obj root-override trans y))) (let ((s4-1 (new 'stack-no-clear 'vector))) - (set! (-> s4-1 quad) (-> obj root-override surface-normal quad)) - (+! (-> s4-1 x) (rand-vu-float-range -0.2 0.2)) - (+! (-> s4-1 z) (rand-vu-float-range -0.2 0.2)) - (vector-normalize! s4-1 1.0) - (quaternion-axis-angle! - (-> obj root-override quat) - (-> s4-1 x) - (-> s4-1 y) - (-> s4-1 z) - (rand-vu-float-range 0.0 65536.0) + (set! (-> s4-1 quad) (-> obj root-override surface-normal quad)) + (+! (-> s4-1 x) (rand-vu-float-range -0.2 0.2)) + (+! (-> s4-1 z) (rand-vu-float-range -0.2 0.2)) + (vector-normalize! s4-1 1.0) + (quaternion-axis-angle! + (-> obj root-override quat) + (-> s4-1 x) + (-> s4-1 y) + (-> s4-1 z) + (rand-vu-float-range 0.0 65536.0) + ) ) - ) (dummy-47 (-> obj root-override)) (nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f)) (if (> (entity-actor-count arg0 'alt-actor) 0) - (set! (-> obj notify-actor) (entity-actor-lookup arg0 'alt-actor 0)) - (set! (-> obj notify-actor) #f) - ) + (set! (-> obj notify-actor) (entity-actor-lookup arg0 'alt-actor 0)) + (set! (-> obj notify-actor) #f) + ) (go spider-egg-idle #t) (none) ) diff --git a/goal_src/levels/snow/snow-bumper.gc b/goal_src/levels/snow/snow-bumper.gc index 07a44fb80b..adc23cfdea 100644 --- a/goal_src/levels/snow/snow-bumper.gc +++ b/goal_src/levels/snow/snow-bumper.gc @@ -9,11 +9,6 @@ (declare-type snow-bumper process-drawable) -(define-extern snow-bumper-spawn-fuel-cell (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-inactive-idle (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-active-far-idle (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-deactivate (state snow-bumper)) ;; unknown type -(define-extern snow-bumper-active-close-idle (state snow-bumper)) ;; unknown type ;; DECOMP BEGINS @@ -32,6 +27,13 @@ (dummy-20 (_type_) none 20) (shove-player (_type_ process-drawable) none 21) ) + (:states + snow-bumper-active-close-idle + snow-bumper-active-far-idle + snow-bumper-deactivate + snow-bumper-inactive-idle + snow-bumper-spawn-fuel-cell + ) ) @@ -43,386 +45,287 @@ :longest-edge (meters 0) ) -(set! - (-> *part-group-id-table* 519) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-snow-bumper-idle" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 1893 :fade-after (meters 90.0) :falloff-to (meters 90.0) :period 25 :length 10) - ) - :bounds (new 'static 'sphere :w 32768.0) - ) - ) +(set! (-> *part-group-id-table* 519) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-snow-bumper-idle" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 1893 :fade-after (meters 90.0) :falloff-to (meters 90.0) :period 25 :length 10) + ) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) -(set! - (-> *part-id-table* 1893) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 15.0) - (sp-flt spt-y (meters 1.5)) - (sp-flt spt-z 0.0) - (sp-flt spt-scale-x (meters 1.5)) - (sp-flt spt-scale-y (meters 6.0)) - (sp-flt spt-r 0.0) - (sp-flt spt-g 64.0) - (sp-rnd-flt spt-b 64.0 32.0 1.0) - (sp-rnd-flt spt-a 32.0 64.0 1.0) - (sp-flt spt-vel-y (meters 0.013333334)) - (sp-flt spt-scalevel-x (meters 0.0038461538)) - (sp-flt spt-scalevel-y (meters -0.03076923)) - (sp-flt spt-fade-a 0.0) - (sp-int spt-timer 25) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-flt spt-conerot-x (degrees 90.0)) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-flt spt-conerot-radius (meters 5.0)) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1893) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 15.0) + (sp-flt spt-y (meters 1.5)) + (sp-flt spt-z 0.0) + (sp-flt spt-scale-x (meters 1.5)) + (sp-flt spt-scale-y (meters 6.0)) + (sp-flt spt-r 0.0) + (sp-flt spt-g 64.0) + (sp-rnd-flt spt-b 64.0 32.0 1.0) + (sp-rnd-flt spt-a 32.0 64.0 1.0) + (sp-flt spt-vel-y (meters 0.013333334)) + (sp-flt spt-scalevel-x (meters 0.0038461538)) + (sp-flt spt-scalevel-y (meters -0.03076923)) + (sp-flt spt-fade-a 0.0) + (sp-int spt-timer 25) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-flt spt-conerot-x (degrees 90.0)) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-flt spt-conerot-radius (meters 5.0)) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-group-id-table* 520) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-snow-bumper-shove" - :launcher - (new 'static 'inline-array sparticle-group-item 1 (sp-item 1895)) - :bounds (new 'static 'sphere :w 32768.0) - ) - ) +(set! (-> *part-group-id-table* 520) (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-snow-bumper-shove" + :launcher + (new 'static 'inline-array sparticle-group-item 1 (sp-item 1895)) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) -(set! - (-> *part-id-table* 1895) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 19 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 16.0) - (sp-flt spt-x (meters 5.5)) - (sp-flt spt-y (meters 1.5)) - (sp-flt spt-z 0.0) - (sp-flt spt-scale-x (meters 2.0)) - (sp-flt spt-scale-y (meters 6.0)) - (sp-rnd-flt spt-r 64.0 32.0 1.0) - (sp-flt spt-g 64.0) - (sp-flt spt-b 0.0) - (sp-flt spt-a 64.0) - (sp-flt spt-vel-x (meters 0.033333335)) - (sp-flt spt-scalevel-x (meters 0.008333334)) - (sp-flt spt-scalevel-y (meters 0.2)) - (sp-flt spt-fade-a 0.0) - (sp-int spt-timer 25) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 45.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1895) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 19 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 16.0) + (sp-flt spt-x (meters 5.5)) + (sp-flt spt-y (meters 1.5)) + (sp-flt spt-z 0.0) + (sp-flt spt-scale-x (meters 2.0)) + (sp-flt spt-scale-y (meters 6.0)) + (sp-rnd-flt spt-r 64.0 32.0 1.0) + (sp-flt spt-g 64.0) + (sp-flt spt-b 0.0) + (sp-flt spt-a 64.0) + (sp-flt spt-vel-x (meters 0.033333335)) + (sp-flt spt-scalevel-x (meters 0.008333334)) + (sp-flt spt-scalevel-y (meters 0.2)) + (sp-flt spt-fade-a 0.0) + (sp-int spt-timer 25) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 45.0) 1.0) + (sp-end) + ) + ) + ) (defmethod shove-player snow-bumper ((obj snow-bumper) (arg0 process-drawable)) (with-pp - (let ((s5-0 (new 'stack-no-clear 'vector))) - (vector-! s5-0 (-> arg0 root trans) (-> obj root trans)) - (set! (-> s5-0 y) 0.0) - (vector-normalize! s5-0 1.0) - (let* ((f0-3 (atan (-> s5-0 x) (-> s5-0 z))) - (f30-0 (-> obj base-shove-ry)) - (f28-0 (-> obj max-shove-diff-ry)) - (f0-4 (deg- f0-3 f30-0)) - ) - (when (< f28-0 (fabs f0-4)) - (let ((f30-1 (if (>= f0-4 0.0) - (+ f30-0 f28-0) - (- f30-0 f28-0) - ) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (vector-! s5-0 (-> arg0 root trans) (-> obj root trans)) + (set! (-> s5-0 y) 0.0) + (vector-normalize! s5-0 1.0) + (let* ((f0-3 (atan (-> s5-0 x) (-> s5-0 z))) + (f30-0 (-> obj base-shove-ry)) + (f28-0 (-> obj max-shove-diff-ry)) + (f0-4 (deg- f0-3 f30-0)) ) + (when (< f28-0 (fabs f0-4)) + (let ((f30-1 (if (>= f0-4 0.0) + (+ f30-0 f28-0) + (- f30-0 f28-0) + ) + ) + ) + (set-vector! s5-0 (sin f30-1) 0.0 (cos f30-1) 1.0) ) - (set-vector! s5-0 (sin f30-1) 0.0 (cos f30-1) 1.0) - ) - ) - ) - (let ((f0-12 (+ -16384.0 (atan (-> s5-0 x) (-> s5-0 z))))) - (set! - (-> *part-id-table* 1895 init-specs 17 initial-valuef) - (+ -4096.0 f0-12) - ) - ) - (spawn (-> obj part2) (-> obj root trans)) - (let ((s3-1 (new 'stack-no-clear 'vector))) - (vector-normalize-copy! s3-1 s5-0 32768.0) - (vector+! s3-1 s3-1 (-> obj root trans)) - (vector-! s5-0 s3-1 (-> arg0 root trans)) - ) - (let ((f30-3 (vector-xz-length s5-0))) - (vector-normalize! s5-0 1.0) - (let ((a1-12 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-12 from) pp) - (set! (-> a1-12 num-params) 2) - (set! (-> a1-12 message) 'shove) - (set! (-> a1-12 param 0) (the-as uint #f)) - (let ((v1-16 (new 'static 'attack-info :mask #xc2))) - (set! (-> v1-16 vector quad) (-> s5-0 quad)) - (set! (-> v1-16 shove-up) 4096.0) - (set! (-> v1-16 shove-back) f30-3) - (set! (-> a1-12 param 1) (the-as uint v1-16)) - ) - (if (send-event-function *target* a1-12) - (set! - (-> obj last-shoved-player-time) - (the-as uint (-> *display* base-frame-counter)) + ) + ) + (let ((f0-12 (+ -16384.0 (atan (-> s5-0 x) (-> s5-0 z))))) + (set! (-> *part-id-table* 1895 init-specs 17 initial-valuef) (+ -4096.0 f0-12)) + ) + (spawn (-> obj part2) (-> obj root trans)) + (let ((s3-1 (new 'stack-no-clear 'vector))) + (vector-normalize-copy! s3-1 s5-0 32768.0) + (vector+! s3-1 s3-1 (-> obj root trans)) + (vector-! s5-0 s3-1 (-> arg0 root trans)) + ) + (let ((f30-3 (vector-xz-length s5-0))) + (vector-normalize! s5-0 1.0) + (let ((a1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-12 from) pp) + (set! (-> a1-12 num-params) 2) + (set! (-> a1-12 message) 'shove) + (set! (-> a1-12 param 0) (the-as uint #f)) + (let ((v1-16 (new 'static 'attack-info :mask #xc2))) + (set! (-> v1-16 vector quad) (-> s5-0 quad)) + (set! (-> v1-16 shove-up) 4096.0) + (set! (-> v1-16 shove-back) f30-3) + (set! (-> a1-12 param 1) (the-as uint v1-16)) + ) + (if (send-event-function *target* a1-12) + (set! (-> obj last-shoved-player-time) (the-as uint (-> *display* base-frame-counter))) + ) + ) ) - ) ) - ) + (none) ) - (none) - ) ) (defstate snow-bumper-active-far-idle (snow-bumper) :trans (behavior () - (if - (and - *target* - (>= - 135895450000.0 - (vector-vector-xz-distance-squared (-> self root trans) (target-pos 0)) - ) - ) - (go snow-bumper-active-close-idle) + (if (and *target* (>= 135895450000.0 (vector-vector-xz-distance-squared (-> self root trans) (target-pos 0)))) + (go snow-bumper-active-close-idle) + ) + 0 + (none) ) - 0 - (none) - ) :code (behavior () - (transform-post) - (suspend) - (while #t - (logior! (-> self mask) (process-mask sleep-code)) + (transform-post) (suspend) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) ) (defstate snow-bumper-active-close-idle (snow-bumper) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('touch 'attack 'bonk) - (when (= (-> arg0 type) target) - (let ((gp-0 (-> arg3 param 0))) - (when - (and - (>= - 6144.0 - (vector-vector-xz-distance (-> self root trans) (target-pos 0)) + (case arg2 + (('touch 'attack 'bonk) + (when (= (-> arg0 type) target) + (let ((gp-0 (-> arg3 param 0))) + (when (and + (>= 6144.0 (vector-vector-xz-distance (-> self root trans) (target-pos 0))) + ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry gp-0) + (the-as collide-shape-moving (-> self root)) + (the-as uint 1) + ) + ) + (close-specific-task! (game-task snow-bumpers) (task-status need-hint)) + (go snow-bumper-deactivate) + ) ) - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry gp-0) - (the-as collide-shape-moving (-> self root)) - (the-as uint 1) - ) - ) - (close-specific-task! (game-task snow-bumpers) (task-status need-hint)) - (go snow-bumper-deactivate) ) - ) ) ) ) - ) :trans (behavior () - (cond - (*target* - (let* ((gp-0 (target-pos 0)) - (f30-0 (vector-vector-xz-distance (-> self root trans) gp-0)) - (f28-0 (- (-> gp-0 y) (-> self root trans y))) - ) - (if (< 368640.0 f30-0) - (go snow-bumper-active-far-idle) - ) - (if - (and - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self last-shoved-player-time)) + (cond + (*target* + (let* ((gp-0 (target-pos 0)) + (f30-0 (vector-vector-xz-distance (-> self root trans) gp-0)) + (f28-0 (- (-> gp-0 y) (-> self root trans y))) + ) + (if (< 368640.0 f30-0) + (go snow-bumper-active-far-idle) + ) + (if (and + (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-shoved-player-time))) 150) + (>= 20480.0 f30-0) + (>= f28-0 -4096.0) + (>= 11059.2 f28-0) + ) + (shove-player self *target*) + ) ) - 150 - ) - (>= 20480.0 f30-0) - (>= f28-0 -4096.0) - (>= 11059.2 f28-0) ) - (shove-player self *target*) - ) + (else + (go snow-bumper-active-far-idle) + ) ) - ) - (else - (go snow-bumper-active-far-idle) - ) + (spawn (-> self part) (-> self root trans)) + (update! (-> self sound)) + (none) ) - (spawn (-> self part) (-> self root trans)) - (update! (-> self sound)) - (none) - ) :code (behavior () - (transform-post) - (suspend) - (while #t - (logior! (-> self mask) (process-mask sleep-code)) + (transform-post) (suspend) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) ) (defstate snow-bumper-deactivate (snow-bumper) :exit - (behavior () - (stop! (-> self sound)) - (logior! (-> self mask) (process-mask actor-pause)) - (none) - ) + (behavior () (stop! (-> self sound)) (logior! (-> self mask) (process-mask actor-pause)) (none)) :trans (the-as (function none :behavior snow-bumper) rider-trans) :code (behavior () - (local-vars (sv-16 symbol)) - (logclear! (-> self mask) (process-mask actor-pause)) - (sound-play-by-name - (static-sound-name "bumper-pwr-dwn") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-3 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length + (local-vars (sv-16 symbol)) + (logclear! (-> self mask) (process-mask actor-pause)) + (sound-play-by-name (static-sound-name "bumper-pwr-dwn") (new-sound-id) 1024 0 0 1 #t) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-3 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-3 param 1) 0.05) + (set! (-> a0-3 frame-num) 0.0) + (joint-control-channel-group! a0-3 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (spawn (-> self part) (-> self root trans)) + (update! (-> self sound)) + (suspend) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) (the float (+ (-> a0-6 frame-group data 0 length) -1))) + (set! (-> a0-6 param 1) 0.05) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-3 param 1) 0.05) - (set! (-> a0-3 frame-num) 0.0) - (joint-control-channel-group! - a0-3 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (spawn (-> self part) (-> self root trans)) - (update! (-> self sound)) - (suspend) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 param 0) - (the float (+ (-> a0-6 frame-group data 0 length) -1)) + (stop! (-> self sound)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (suspend) ) - (set! (-> a0-6 param 1) 0.05) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-seek! + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-10 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-10 param 1) 0.02) + (set! (-> a0-10 frame-num) 0.0) + (joint-control-channel-group! a0-10 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) ) - ) - ) - (stop! (-> self sound)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (suspend) - ) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-10 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (until (ja-done? 0) + (suspend) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) (the float (+ (-> a0-11 frame-group data 0 length) -1))) + (set! (-> a0-11 param 1) 0.02) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-10 param 1) 0.02) - (set! (-> a0-10 frame-num) 0.0) - (joint-control-channel-group! - a0-10 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 param 0) - (the float (+ (-> a0-11 frame-group data 0 length) -1)) + (process-entity-status! self (entity-perm-status complete) #t) + (set! sv-16 (the-as symbol #f)) + (apply-all (-> self link) actor-link-subtask-complete-hook (& sv-16)) + (when sv-16 + (save-reminder (get-task-control (game-task snow-bumpers)) (-> self bumper-id) 0) + (go snow-bumper-spawn-fuel-cell) ) - (set! (-> a0-11 param 1) 0.02) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) + (go snow-bumper-inactive-idle) + (none) ) - (process-entity-status! self (entity-perm-status complete) #t) - (set! sv-16 (the-as symbol #f)) - (apply-all (-> self link) actor-link-subtask-complete-hook (& sv-16)) - (when sv-16 - (save-reminder - (get-task-control (game-task snow-bumpers)) - (-> self bumper-id) - 0 - ) - (go snow-bumper-spawn-fuel-cell) - ) - (go snow-bumper-inactive-idle) - (none) - ) :post (the-as (function none :behavior snow-bumper) rider-post) ) @@ -430,247 +333,170 @@ (defstate snow-bumper-spawn-fuel-cell (snow-bumper) :code (behavior () - (ja-channel-set! 1) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-identity - ) - (set! - (-> gp-0 frame-num) - (the - float - (+ - (-> + (ja-channel-set! 1) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + num-func-identity ) - -1 - ) + (set! (-> gp-0 frame-num) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) ) - ) + (transform-post) + (if (not (task-complete? *game-info* (-> self entity extra perm task))) + (birth-pickup-at-point + (-> self root trans) + (pickup-type fuel-cell) + (the float (-> self entity extra perm task)) + #t + self + (the-as fact-info #f) + ) + ) + (until (not (-> self child)) + (suspend) + ) + (go snow-bumper-inactive-idle) + (none) ) - (transform-post) - (if (not (task-complete? *game-info* (-> self entity extra perm task))) - (birth-pickup-at-point - (-> self root trans) - (pickup-type fuel-cell) - (the float (-> self entity extra perm task)) - #t - self - (the-as fact-info #f) - ) - ) - (until (not (-> self child)) - (suspend) - ) - (go snow-bumper-inactive-idle) - (none) - ) ) (defstate snow-bumper-inactive-idle (snow-bumper) :code (behavior () - (set! (-> self root nav-radius) 6963.2) - (ja-channel-set! 1) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-identity - ) - (set! - (-> gp-0 frame-num) - (the - float - (+ - (-> + (set! (-> self root nav-radius) 6963.2) + (ja-channel-set! 1) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + num-func-identity ) - -1 - ) + (set! (-> gp-0 frame-num) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) ) - ) + (transform-post) + (suspend) + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + 0 + (none) ) - (transform-post) - (suspend) - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) - 0 - (none) - ) ) (defmethod deactivate snow-bumper ((obj snow-bumper)) (if (nonzero? (-> obj part2)) - (kill-and-free-particles (-> obj part2)) - ) + (kill-and-free-particles (-> obj part2)) + ) ((method-of-type process-drawable deactivate) obj) (none) ) (defmethod relocate snow-bumper ((obj snow-bumper) (arg0 int)) (if (nonzero? (-> obj part2)) - (&+! (-> obj part2) arg0) - ) + (&+! (-> obj part2) arg0) + ) (the-as - snow-bumper - ((the-as - (function process-drawable int process-drawable) - (find-parent-method snow-bumper 7) - ) - obj - arg0 + snow-bumper + ((the-as (function process-drawable int process-drawable) (find-parent-method snow-bumper 7)) obj arg0) ) - ) ) (defmethod init-from-entity! snow-bumper ((obj snow-bumper) (arg0 entity-actor)) (local-vars (sv-16 res-tag)) (set! (-> obj last-shoved-player-time) (the-as uint 0)) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3)) - (set-vector! (-> s3-0 local-sphere) 0.0 9011.2 0.0 13926.4) - (set-root-prim! s4-0 s3-0) - (let - ((s2-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 1) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3)) + (set-vector! (-> s3-0 local-sphere) 0.0 9011.2 0.0 13926.4) + (set-root-prim! s4-0 s3-0) + (let ((s2-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 1)))) + (set! (-> s2-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s2-0 collide-with) (the-as uint 16)) + (set! (-> s2-0 prim-core action) (the-as uint 3)) + (set! (-> s2-0 prim-core offense) 4) + (set! (-> s2-0 transform-index) 6) + (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 4915.2) + (append-prim s3-0 s2-0) ) - ) - ) - (set! (-> s2-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s2-0 collide-with) (the-as uint 16)) - (set! (-> s2-0 prim-core action) (the-as uint 3)) - (set! (-> s2-0 prim-core offense) 4) - (set! (-> s2-0 transform-index) 6) - (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 4915.2) - (append-prim s3-0 s2-0) - ) - (let - ((s2-1 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 1) - (the-as uint 2) + (let ((s2-1 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 2)))) + (set! (-> s2-1 prim-core collide-as) (the-as uint 512)) + (set! (-> s2-1 collide-with) (the-as uint 16)) + (set! (-> s2-1 prim-core action) (the-as uint 1)) + (set! (-> s2-1 prim-core offense) 4) + (set! (-> s2-1 transform-index) 3) + (set-vector! (-> s2-1 local-sphere) 0.0 8192.0 0.0 11878.4) + (append-prim s3-0 s2-1) ) - ) ) - (set! (-> s2-1 prim-core collide-as) (the-as uint 512)) - (set! (-> s2-1 collide-with) (the-as uint 16)) - (set! (-> s2-1 prim-core action) (the-as uint 1)) - (set! (-> s2-1 prim-core offense) 4) - (set! (-> s2-1 transform-index) 3) - (set-vector! (-> s2-1 local-sphere) 0.0 8192.0 0.0 11878.4) - (append-prim s3-0 s2-1) - ) + (set! (-> s4-0 nav-radius) 20480.0) + (backup-collide-with-as s4-0) + (set! (-> obj root) s4-0) ) - (set! (-> s4-0 nav-radius) 20480.0) - (backup-collide-with-as s4-0) - (set! (-> obj root) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *snow-bumper-sg* '()) - (set! - (-> obj part) - (create-launch-control (-> *part-group-id-table* 519) obj) - ) - (set! - (-> obj part2) - (create-launch-control (-> *part-group-id-table* 520) obj) - ) + (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 519) obj)) + (set! (-> obj part2) (create-launch-control (-> *part-group-id-table* 520) obj)) (nav-mesh-connect obj (-> obj root) (the-as nav-control #f)) (set! (-> obj link) (new 'process 'actor-link-info obj)) (set! (-> obj bumper-id) (+ (actor-count-before (-> obj link)) 1)) - (set! - (-> obj sound) - (new - 'process - 'ambient-sound - (new 'static 'sound-spec - :mask #x80 - :num 1.0 - :group #x1 - :sound-name (static-sound-name "snow-bumper") - :volume #x400 - :fo-max 40 - ) - (-> obj root trans) - ) - ) + (set! (-> obj sound) (new + 'process + 'ambient-sound + (new 'static 'sound-spec + :mask #x80 + :num 1.0 + :group #x1 + :sound-name (static-sound-name "snow-bumper") + :volume #x400 + :fo-max 40 + ) + (-> obj root trans) + ) + ) (ja-channel-set! 1) (let ((s5-1 (-> obj skel root-channel 0))) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim (-> obj draw art-group data 3)) - num-func-identity + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> obj draw art-group data 3)) + num-func-identity + ) + (set! (-> s5-1 frame-num) 0.0) ) - (set! (-> s5-1 frame-num) 0.0) - ) (transform-post) (set! (-> obj base-shove-ry) 0.0) (set! (-> obj max-shove-diff-ry) 32768.0) (set! sv-16 (new 'static 'res-tag)) - (let - ((v1-52 - (res-lump-data (-> obj entity) 'rotmin (pointer float) :tag-ptr (& sv-16)) - ) - ) - (when v1-52 - (set! (-> obj base-shove-ry) (-> v1-52 0)) - (set! (-> obj max-shove-diff-ry) (-> v1-52 1)) - ) - ) - (cond - ((and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) - ) - (if - (and - (= - (get-reminder (get-task-control (game-task snow-bumpers)) 0) - (-> obj bumper-id) - ) - (not (task-complete? *game-info* (-> obj entity extra perm task))) + (let ((v1-52 (res-lump-data (-> obj entity) 'rotmin (pointer float) :tag-ptr (& sv-16)))) + (when v1-52 + (set! (-> obj base-shove-ry) (-> v1-52 0)) + (set! (-> obj max-shove-diff-ry) (-> v1-52 1)) ) - (go snow-bumper-spawn-fuel-cell) - (go snow-bumper-inactive-idle) + ) + (cond + ((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) + (if (and + (= (get-reminder (get-task-control (game-task snow-bumpers)) 0) (-> obj bumper-id)) + (not (task-complete? *game-info* (-> obj entity extra perm task))) + ) + (go snow-bumper-spawn-fuel-cell) + (go snow-bumper-inactive-idle) + ) ) + (else + (go snow-bumper-active-far-idle) + ) ) - (else - (go snow-bumper-active-far-idle) - ) - ) (none) ) diff --git a/goal_src/levels/snow/snow-flutflut-obs.gc b/goal_src/levels/snow/snow-flutflut-obs.gc index 093e581693..60d4f8d076 100644 --- a/goal_src/levels/snow/snow-flutflut-obs.gc +++ b/goal_src/levels/snow/snow-flutflut-obs.gc @@ -13,16 +13,6 @@ (declare-type flutflut-plat plat) (declare-type snow-button process-drawable) -(define-extern elevator-idle-at-cave (state flutflut-plat)) ;; unknown type -(define-extern elevator-travel-to-cave (state flutflut-plat)) ;; unknown type -(define-extern elevator-idle-at-fort (state flutflut-plat)) ;; unknown type -(define-extern elevator-travel-to-fort (state flutflut-plat)) ;; unknown type -(define-extern flutflut-plat-hidden-idle (state flutflut-plat)) ;; unknown type -(define-extern flutflut-plat-hide (state flutflut-plat)) ;; unknown type -(define-extern flutflut-plat-appear (state flutflut-plat)) ;; unknown type -(define-extern snow-button-up-idle (state snow-button)) ;; unknown type -(define-extern snow-button-deactivate (state snow-button)) ;; unknown type -(define-extern snow-button-activate (state snow-button)) ;; unknown type ;; DECOMP BEGINS @@ -44,6 +34,15 @@ :method-count-assert 33 :size-assert #x180 :flag-assert #x2101100180 + (:states + elevator-idle-at-cave + elevator-idle-at-fort + elevator-travel-to-cave + elevator-travel-to-fort + flutflut-plat-appear + flutflut-plat-hidden-idle + flutflut-plat-hide + ) ) @@ -59,6 +58,11 @@ :method-count-assert 20 :size-assert #xf0 :flag-assert #x14008000f0 + (:states + snow-button-activate + snow-button-deactivate + snow-button-up-idle + ) ) diff --git a/goal_src/levels/snow/snow-ram-boss.gc b/goal_src/levels/snow/snow-ram-boss.gc index d1aba120d1..07114d1f0b 100644 --- a/goal_src/levels/snow/snow-ram-boss.gc +++ b/goal_src/levels/snow/snow-ram-boss.gc @@ -27,5 +27,18 @@ :size-assert #x1f4 :heap-base #x190 :flag-assert #x4c019001f4 + (:states + ram-boss-tracking + ram-boss-nav-resume + ram-boss-throw + ram-boss-nav-start + ram-boss-jump-down-hit-ground + (ram-boss-jump-down basic vector) + (ram-boss-already-down basic vector) + ram-boss-idle + ram-boss-lose-shield + ram-boss-up-defend-block + ram-boss-forward-defend-block + ram-boss-show-anims) ) (define-extern ram-boss-init-by-other (function basic nav-enemy symbol none :behavior ram-boss)) diff --git a/goal_src/levels/snow/snow-ram-h.gc b/goal_src/levels/snow/snow-ram-h.gc index e3eb172b54..16c84f3856 100644 --- a/goal_src/levels/snow/snow-ram-h.gc +++ b/goal_src/levels/snow/snow-ram-h.gc @@ -25,6 +25,11 @@ (dummy-21 (_type_) object 21) (dummy-22 (_type_) symbol 22) ) + (:states + ram-fun-idle + ram-give-fuel-cell + ram-idle + ) ) diff --git a/goal_src/levels/snow/snow-ram.gc b/goal_src/levels/snow/snow-ram.gc index 24058722f8..cc6e4aabba 100644 --- a/goal_src/levels/snow/snow-ram.gc +++ b/goal_src/levels/snow/snow-ram.gc @@ -9,9 +9,6 @@ (declare-type ram process-drawable) -(define-extern ram-fun-idle (state ram)) ;; unknown type -(define-extern ram-idle (state ram)) ;; unknown type -(define-extern ram-give-fuel-cell (state ram)) ;; unknown type ;; DECOMP BEGINS diff --git a/goal_src/levels/snow/target-snowball.gc b/goal_src/levels/snow/target-snowball.gc index 0479f606e2..b6de16f7a8 100644 --- a/goal_src/levels/snow/target-snowball.gc +++ b/goal_src/levels/snow/target-snowball.gc @@ -5,7 +5,6 @@ ;; name in dgo: target-snowball ;; dgos: L1, SNO -(define-extern target-snowball (state target)) ;; unknown type ;; DECOMP BEGINS diff --git a/goal_src/levels/snow/yeti.gc b/goal_src/levels/snow/yeti.gc index 4af840b4e6..09a0b197e2 100644 --- a/goal_src/levels/snow/yeti.gc +++ b/goal_src/levels/snow/yeti.gc @@ -7,12 +7,6 @@ (declare-type yeti process-drawable) (declare-type yeti-slave nav-enemy) -(define-extern yeti-resuming-start (state yeti)) ;; unknown type -(define-extern yeti-first-time-start (state yeti)) ;; unknown type -(define-extern yeti-idle (state yeti)) ;; unknown type -(define-extern yeti-slave-appear-jump-up (state yeti-slave)) ;; unknown type -(define-extern yeti-slave-appear-land (state yeti-slave)) ;; unknown type -(define-extern yeti-slave-show-anims (state yeti-slave)) ;; unknown type ;; DECOMP BEGINS @@ -24,6 +18,11 @@ :method-count-assert 76 :size-assert #x198 :flag-assert #x4c01300198 + (:states + yeti-slave-appear-jump-up + yeti-slave-appear-land + yeti-slave-show-anims + ) ) @@ -44,6 +43,11 @@ (TODO-RENAME-20 (_type_ vector vector) symbol 20) (aggro? (_type_ vector) symbol 21) ) + (:states + yeti-first-time-start + yeti-idle + yeti-resuming-start + ) ) @@ -55,202 +59,183 @@ :longest-edge (meters 1.3) ) -(define - *yeti-nav-enemy-info* - (new 'static 'nav-enemy-info - :idle-anim 2 - :walk-anim 3 - :turn-anim -1 - :notice-anim 4 - :run-anim 5 - :jump-anim 10 - :jump-land-anim 11 - :victory-anim 8 - :taunt-anim 8 - :die-anim 9 - :neck-joint 5 - :player-look-at-joint 5 - :run-travel-speed (meters 6.0) - :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) - :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) - :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) - :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 2.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 30.0) - :stop-chase-distance (meters 40.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 - :die-anim-hold-frame 24.0 - :jump-anim-start-frame 10.0 - :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 3.0) - :jump-height-factor 0.5 - :jump-start-anim-speed 1.0 - :shadow-max-y (meters 1.0) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) - :use-align #t - :draw-shadow #t - :move-to-ground #t - :hover-if-no-ground #f - :use-momentum #f - :use-flee #f - :use-proximity-notice #f - :use-jump-blocked #f - :use-jump-patrol #f - :gnd-collide-with #x1 - :debug-draw-neck #f - :debug-draw-jump #f - ) - ) +(define *yeti-nav-enemy-info* (new 'static 'nav-enemy-info + :idle-anim 2 + :walk-anim 3 + :turn-anim -1 + :notice-anim 4 + :run-anim 5 + :jump-anim 10 + :jump-land-anim 11 + :victory-anim 8 + :taunt-anim 8 + :die-anim 9 + :neck-joint 5 + :player-look-at-joint 5 + :run-travel-speed (meters 6.0) + :run-rotate-speed (degrees 2880.0) + :run-acceleration (meters 1.0) + :run-turn-time (seconds 0.1) + :walk-travel-speed (meters 3.0) + :walk-rotate-speed (degrees 720.0) + :walk-acceleration (meters 1.0) + :walk-turn-time (seconds 0.5) + :attack-shove-back (meters 3.0) + :attack-shove-up (meters 2.0) + :shadow-size (meters 2.0) + :notice-nav-radius (meters 2.0) + :nav-nearest-y-threshold (meters 10.0) + :notice-distance (meters 30.0) + :stop-chase-distance (meters 40.0) + :frustration-distance (meters 8.0) + :frustration-time #x4b0 + :die-anim-hold-frame 24.0 + :jump-anim-start-frame 10.0 + :jump-land-anim-end-frame 10000000000.0 + :jump-height-min (meters 3.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #t + :draw-shadow #t + :move-to-ground #t + :hover-if-no-ground #f + :use-momentum #f + :use-flee #f + :use-proximity-notice #f + :use-jump-blocked #f + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #f + ) + ) -(set! - (-> *part-group-id-table* 538) - (new 'static 'sparticle-launch-group - :length 2 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-yeti-slave-appear1" - :launcher - (new 'static 'inline-array sparticle-group-item 2 - (sp-item 1928 :fade-after (meters 70.0) :falloff-to (meters 70.0)) - (sp-item 1929 :fade-after (meters 70.0) :falloff-to (meters 70.0)) - ) - :bounds (new 'static 'sphere :w 65536.0) - ) - ) +(set! (-> *part-group-id-table* 538) (new 'static 'sparticle-launch-group + :length 2 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-yeti-slave-appear1" + :launcher + (new 'static 'inline-array sparticle-group-item 2 + (sp-item 1928 :fade-after (meters 70.0) :falloff-to (meters 70.0)) + (sp-item 1929 :fade-after (meters 70.0) :falloff-to (meters 70.0)) + ) + :bounds (new 'static 'sphere :w 65536.0) + ) + ) -(set! - (-> *part-id-table* 1929) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-flt spt-num 16.0) - (sp-rnd-flt spt-x (meters -2.0) (meters 4.0) 1.0) - (sp-rnd-flt spt-y (meters 0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-z -8192.0 16384.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.24) (meters 0.24) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-rnd-flt spt-a 96.0 32.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.033333335) (meters 0.05) 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -2.4) (degrees 3.4666667) 1.0) - (sp-flt spt-accel-y -5.4613333) - (sp-flt spt-friction 0.99) - (sp-int spt-timer 450) - (sp-cpuinfo-flags bit2 bit12) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 40.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1929) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-flt spt-num 16.0) + (sp-rnd-flt spt-x (meters -2.0) (meters 4.0) 1.0) + (sp-rnd-flt spt-y (meters 0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-z -8192.0 16384.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.24) (meters 0.24) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-rnd-flt spt-a 96.0 32.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.033333335) (meters 0.05) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -2.4) (degrees 3.4666667) 1.0) + (sp-flt spt-accel-y -5.4613333) + (sp-flt spt-friction 0.99) + (sp-int spt-timer 450) + (sp-cpuinfo-flags bit2 bit12) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 40.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 1928) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 24 - (sp-tex spt-texture (new 'static 'texture-id :page #x2)) - (sp-flt spt-num 32.0) - (sp-rnd-flt spt-x (meters -2.0) (meters 4.0) 1.0) - (sp-rnd-flt spt-y (meters 0.5) (meters 1.0) 1.0) - (sp-rnd-flt spt-z -8192.0 16384.0 1.0) - (sp-rnd-flt spt-scale-x (meters 2.5) (meters 2.5) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-rnd-flt spt-a 16.0 16.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.05) (meters 0.016666668) 1.0) - (sp-flt spt-scalevel-x (meters 0.006666667)) - (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a -0.07111111) - (sp-flt spt-accel-y -5.4613333) - (sp-flt spt-friction 0.99) - (sp-int spt-timer 450) - (sp-cpuinfo-flags bit2 bit12) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 40.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1928) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 24 + (sp-tex spt-texture (new 'static 'texture-id :page #x2)) + (sp-flt spt-num 32.0) + (sp-rnd-flt spt-x (meters -2.0) (meters 4.0) 1.0) + (sp-rnd-flt spt-y (meters 0.5) (meters 1.0) 1.0) + (sp-rnd-flt spt-z -8192.0 16384.0 1.0) + (sp-rnd-flt spt-scale-x (meters 2.5) (meters 2.5) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-rnd-flt spt-a 16.0 16.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.05) (meters 0.016666668) 1.0) + (sp-flt spt-scalevel-x (meters 0.006666667)) + (sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 1.2) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a -0.07111111) + (sp-flt spt-accel-y -5.4613333) + (sp-flt spt-friction 0.99) + (sp-int spt-timer 450) + (sp-cpuinfo-flags bit2 bit12) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 40.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-group-id-table* 539) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-yeti-slave-appear2" - :launcher - (new 'static 'inline-array sparticle-group-item 1 - (sp-item 1930 :fade-after (meters 70.0) :falloff-to (meters 70.0)) - ) - :bounds (new 'static 'sphere :w 65536.0) - ) - ) +(set! (-> *part-group-id-table* 539) (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-yeti-slave-appear2" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (sp-item 1930 :fade-after (meters 70.0) :falloff-to (meters 70.0)) + ) + :bounds (new 'static 'sphere :w 65536.0) + ) + ) -(set! - (-> *part-id-table* 1930) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 19 - (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) - (sp-rnd-flt spt-num 1.0 2.0 1.0) - (sp-rnd-flt spt-x (meters -0.25) (meters 0.5) 1.0) - (sp-rnd-flt spt-z -1024.0 2048.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.1) 1.0) - (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-rnd-flt spt-a 64.0 64.0 1.0) - (sp-rnd-flt spt-vel-y (meters 0.0) (meters 0.006666667) 1.0) - (sp-rnd-flt spt-rotvel-z (degrees -2.4) (degrees 3.4666667) 1.0) - (sp-flt spt-accel-y -5.4613333) - (sp-int spt-timer 150) - (sp-cpuinfo-flags bit2 bit12) - (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 30.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1930) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 19 + (sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2)) + (sp-rnd-flt spt-num 1.0 2.0 1.0) + (sp-rnd-flt spt-x (meters -0.25) (meters 0.5) 1.0) + (sp-rnd-flt spt-z -1024.0 2048.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.1) 1.0) + (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-rnd-flt spt-a 64.0 64.0 1.0) + (sp-rnd-flt spt-vel-y (meters 0.0) (meters 0.006666667) 1.0) + (sp-rnd-flt spt-rotvel-z (degrees -2.4) (degrees 3.4666667) 1.0) + (sp-flt spt-accel-y -5.4613333) + (sp-int spt-timer 150) + (sp-cpuinfo-flags bit2 bit12) + (sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 30.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(defbehavior - yeti-slave-default-event-handler yeti-slave - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('attack) +(defbehavior yeti-slave-default-event-handler yeti-slave ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('attack) (nav-enemy-set-hit-from-direction arg0) (go-virtual nav-enemy-die) ) - (('touch) - (nav-enemy-send-attack - arg0 - (the-as touching-shapes-entry (-> arg3 param 0)) - 'generic + (('touch) + (nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg3 param 0)) 'generic) ) ) - ) ) (defstate yeti-slave-appear-jump-up (yeti-slave) @@ -258,97 +243,61 @@ yeti-slave-default-event-handler :enter (behavior () - (nav-enemy-neck-control-inactive) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (if (-> self nav-info move-to-ground) - (dummy-60 (-> self collide-info) 40960.0 40960.0 #t (the-as uint 1)) + (nav-enemy-neck-control-inactive) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (if (-> self nav-info move-to-ground) + (dummy-60 (-> self collide-info) 40960.0 40960.0 #t (the-as uint 1)) + ) + (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) + (set! (-> self state-timeout) 300) + (set! (-> self ground-y) (-> self collide-info trans y)) + (spawn (-> self part) (-> self collide-info trans)) + (set! (-> self collide-info trans y) (+ -12288.0 (-> self collide-info trans y))) + (set! (-> self collide-info transv quad) (-> *null-vector* quad)) + (set! (-> self collide-info transv y) (rand-vu-float-range 102400.0 114688.0)) + (none) ) - (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) - (set! (-> self state-timeout) 300) - (set! (-> self ground-y) (-> self collide-info trans y)) - (spawn (-> self part) (-> self collide-info trans)) - (set! - (-> self collide-info trans y) - (+ -12288.0 (-> self collide-info trans y)) - ) - (set! (-> self collide-info transv quad) (-> *null-vector* quad)) - (set! - (-> self collide-info transv y) - (rand-vu-float-range 102400.0 114688.0) - ) - (none) - ) :trans (behavior () - (when - (and - (< (-> self collide-info trans y) (-> self ground-y)) - (< (-> self collide-info transv y) 0.0) - ) - (set! (-> self collide-info trans y) (-> self ground-y)) - (set! (-> self collide-info transv quad) (-> *null-vector* quad)) - (go yeti-slave-appear-land) + (when (and (< (-> self collide-info trans y) (-> self ground-y)) (< (-> self collide-info transv y) 0.0)) + (set! (-> self collide-info trans y) (-> self ground-y)) + (set! (-> self collide-info transv quad) (-> *null-vector* quad)) + (go yeti-slave-appear-land) + ) + (let* ((s5-0 (-> self node-list)) + (a0-2 (-> s5-0 length)) + (gp-0 (new 'stack-no-clear 'vector)) + ) + (vector<-cspace! gp-0 (-> s5-0 data (nav-enemy-rnd-int-count a0-2))) + (spawn (-> self part2) gp-0) + ) + (none) ) - (let* ((s5-0 (-> self node-list)) - (a0-2 (-> s5-0 length)) - (gp-0 (new 'stack-no-clear 'vector)) - ) - (vector<-cspace! gp-0 (-> s5-0 data (nav-enemy-rnd-int-count a0-2))) - (spawn (-> self part2) gp-0) - ) - (none) - ) :code (behavior () - (ja-channel-push! 1 22) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> gp-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length + (ja-channel-push! 1 22) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> gp-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 10.0 0)) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1))) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) (ja-aframe 10.0 0)) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 param 0) - (the float (+ (-> a0-3 frame-group data 0 length) -1)) + (while #t + (suspend) ) - (set! (-> a0-3 param 1) 1.0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) + (none) ) - (while #t - (suspend) - ) - (none) - ) :post (the-as (function none :behavior yeti-slave) nav-enemy-falling-post) ) @@ -358,71 +307,39 @@ yeti-slave-default-event-handler :code (behavior () - (ja-channel-push! 1 15) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 11)) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 11)) - data - 0 - length + (ja-channel-push! 1 15) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) + (set! (-> a0-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 11)) data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 0.5) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 11)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 0.5) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-1 param 1) 0.5) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as art-joint-anim (-> self draw art-group data 11)) - num-func-seek! - ) + (if (TODO-RENAME-46 self (-> self nav-info notice-distance)) + (go-virtual nav-enemy-chase) + (go-virtual nav-enemy-idle) + ) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) - ) - (set! (-> a0-2 param 1) 0.5) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (if (TODO-RENAME-46 self (-> self nav-info notice-distance)) - (go-virtual nav-enemy-chase) - (go-virtual nav-enemy-idle) - ) - (none) - ) :post (the-as (function none :behavior yeti-slave) ja-post) ) (defstate yeti-slave-show-anims (yeti-slave) :trans - (behavior () - 0 - (none) - ) + (behavior () 0 (none)) :code - (behavior () - 0 - (none) - ) + (behavior () 0 (none)) :post (the-as (function none :behavior yeti-slave) transform-post) ) @@ -431,730 +348,424 @@ :virtual #t :code (behavior () - (cond - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 7) - ) - (ja-channel-push! 1 45) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! - (-> gp-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 3)) - data - 0 - length + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 7) ) - -1 + (ja-channel-push! 1 45) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> gp-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1)) + ) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 12.0 0)) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) - ) - ) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) (ja-aframe 12.0 0)) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) - ) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group-eval! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (else - (ja-channel-push! 1 60) - ) - ) - (while #t - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! - (-> a0-10 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 3)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-10 param 1) 1.0) - (set! (-> a0-10 frame-num) 0.0) - (joint-control-channel-group! - a0-10 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 param 0) - (the float (+ (-> a0-11 frame-group data 0 length) -1)) - ) - (set! (-> a0-11 param 1) 1.0) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (when (nav-enemy-rnd-percent? 0.2) - (let ((a0-14 (-> self skel root-channel 0))) - (set! (-> a0-14 param 0) 1.0) - (joint-control-channel-group! - a0-14 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (ja-channel-push! 1 180) - (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) - (let ((gp-1 (nav-enemy-rnd-int-range 2 6))) - (dotimes (s5-0 gp-1) - (let ((a0-18 (-> self skel root-channel 0))) - (set! - (-> a0-18 frame-group) - (the-as art-joint-anim (-> self draw art-group data 2)) - ) - (set! - (-> a0-18 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-18 param 1) 1.0) - (set! (-> a0-18 frame-num) 0.0) - (joint-control-channel-group! - a0-18 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-seek! - ) - ) (until (ja-done? 0) - (ja-blend-eval) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (ja-channel-push! 1 60) + ) + ) + (while #t + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> a0-10 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1)) + ) + (set! (-> a0-10 param 1) 1.0) + (set! (-> a0-10 frame-num) 0.0) + (joint-control-channel-group! a0-10 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) + ) + (until (ja-done? 0) (suspend) - (let ((a0-19 (-> self skel root-channel 0))) - (set! - (-> a0-19 param 0) - (the float (+ (-> a0-19 frame-group data 0 length) -1)) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) (the float (+ (-> a0-11 frame-group data 0 length) -1))) + (set! (-> a0-11 param 1) 1.0) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-seek!) ) - (set! (-> a0-19 param 1) 1.0) - (joint-control-channel-group-eval! - a0-19 - (the-as art-joint-anim #f) - num-func-seek! + ) + (when (nav-enemy-rnd-percent? 0.2) + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 param 0) 1.0) + (joint-control-channel-group! a0-14 (the-as art-joint-anim #f) num-func-loop!) ) - ) - ) - ) - ) - (logior! (-> self nav-enemy-flags) 8) - (let ((a0-21 (-> self skel root-channel 0))) - (set! (-> a0-21 param 0) 1.0) - (joint-control-channel-group! - a0-21 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (ja-channel-push! 1 180) - (let ((a0-23 (-> self skel root-channel 0))) - (set! - (-> a0-23 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! - (-> a0-23 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 3)) - data - 0 - length + (ja-channel-push! 1 180) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (let ((gp-1 (nav-enemy-rnd-int-range 2 6))) + (dotimes (s5-0 gp-1) + (let ((a0-18 (-> self skel root-channel 0))) + (set! (-> a0-18 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) + (set! (-> a0-18 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) + ) + (set! (-> a0-18 param 1) 1.0) + (set! (-> a0-18 frame-num) 0.0) + (joint-control-channel-group! a0-18 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-19 (-> self skel root-channel 0))) + (set! (-> a0-19 param 0) (the float (+ (-> a0-19 frame-group data 0 length) -1))) + (set! (-> a0-19 param 1) 1.0) + (joint-control-channel-group-eval! a0-19 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + ) + (logior! (-> self nav-enemy-flags) 8) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) 1.0) + (joint-control-channel-group! a0-21 (the-as art-joint-anim #f) num-func-loop!) + ) + (ja-channel-push! 1 180) + (let ((a0-23 (-> self skel root-channel 0))) + (set! (-> a0-23 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> a0-23 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1)) + ) + (set! (-> a0-23 param 1) 1.0) + (set! (-> a0-23 frame-num) 0.0) + (joint-control-channel-group! a0-23 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-24 (-> self skel root-channel 0))) + (set! (-> a0-24 param 0) (the float (+ (-> a0-24 frame-group data 0 length) -1))) + (set! (-> a0-24 param 1) 1.0) + (joint-control-channel-group-eval! a0-24 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-23 param 1) 1.0) - (set! (-> a0-23 frame-num) 0.0) - (joint-control-channel-group! - a0-23 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) ) - (until (ja-done? 0) - (ja-blend-eval) - (suspend) - (let ((a0-24 (-> self skel root-channel 0))) - (set! - (-> a0-24 param 0) - (the float (+ (-> a0-24 frame-group data 0 length) -1)) - ) - (set! (-> a0-24 param 1) 1.0) - (joint-control-channel-group-eval! - a0-24 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-chase (yeti-slave) :virtual #t :code (behavior () - (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) - (cond - ((= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 11) - ) - (let ((a0-5 (-> self skel root-channel 0))) - (set! - (-> a0-5 param 0) - (the float (+ (-> a0-5 frame-group data 0 length) -1)) - ) - (set! (-> a0-5 param 1) 1.0) - (joint-control-channel-group! - a0-5 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (ja-channel-push! 1 51) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) - ) - ) - (set! - (-> a0-7 param 0) - (the - float - (+ - (-> - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) + (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 11) ) - data - 0 - length + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group data 0 length) -1))) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group! a0-5 (the-as art-joint-anim #f) num-func-seek!) ) - -1 + (ja-channel-push! 1 51) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 frame-group) (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim)))) + (set! (-> a0-7 param 0) + (the float + (+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim))) data 0 length) -1) + ) + ) + (set! (-> a0-7 param 1) f30-0) + (set! (-> a0-7 frame-num) 0.0) + (joint-control-channel-group! + a0-7 + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim))) + num-func-seek! + ) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-8 (-> self skel root-channel 0))) + (set! (-> a0-8 param 0) (the float (+ (-> a0-8 frame-group data 0 length) -1))) + (set! (-> a0-8 param 1) f30-0) + (joint-control-channel-group-eval! a0-8 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (ja-channel-push! 1 60) + (let ((v1-42 (-> self skel root-channel 0))) + (set! (-> v1-42 frame-group) + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info run-anim))) + ) + ) + (let ((v1-45 (-> self skel root-channel 0))) + (set! (-> v1-45 num-func) num-func-identity) + (set! (-> v1-45 frame-num) 0.0) + ) ) - ) ) - (set! (-> a0-7 param 1) f30-0) - (set! (-> a0-7 frame-num) 0.0) - (joint-control-channel-group! - a0-7 - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) - ) - num-func-seek! + (while #t + (suspend) + (let ((a0-17 (-> self skel root-channel 0))) + (set! (-> a0-17 param 0) f30-0) + (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-loop!) + ) ) - ) - (until (ja-done? 0) - (ja-blend-eval) - (suspend) - (let ((a0-8 (-> self skel root-channel 0))) - (set! - (-> a0-8 param 0) - (the float (+ (-> a0-8 frame-group data 0 length) -1)) - ) - (set! (-> a0-8 param 1) f30-0) - (joint-control-channel-group-eval! - a0-8 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) ) - (else - (ja-channel-push! 1 60) - (let ((v1-42 (-> self skel root-channel 0))) - (set! - (-> v1-42 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info run-anim)) - ) - ) - ) - (let ((v1-45 (-> self skel root-channel 0))) - (set! (-> v1-45 num-func) num-func-identity) - (set! (-> v1-45 frame-num) 0.0) - ) - ) - ) - (while #t - (suspend) - (let ((a0-17 (-> self skel root-channel 0))) - (set! (-> a0-17 param 0) f30-0) - (joint-control-channel-group-eval! - a0-17 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-stare (yeti-slave) :virtual #t :code (behavior () - (set! (-> self turn-time) 60) - (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) - (when - (or - (logtest? (-> self nav-enemy-flags) 256) - (and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5)) - ) - (ja-channel-push! 1 30) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - (set! (-> gp-0 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-0 param 1) f30-0) - (set! (-> gp-0 frame-num) 0.0) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-1 param 1) f30-0) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (while #t - (when (not (nav-enemy-facing-player? 2730.6667)) - (logior! (-> self nav-enemy-flags) 16) - (let ((a0-9 (-> self skel root-channel 0))) - (set! (-> a0-9 param 0) 1.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (ja-channel-push! 1 60) - (let ((v1-25 (-> self skel root-channel 0))) - (set! - (-> v1-25 frame-group) - (the-as art-joint-anim (-> self draw art-group data 12)) - ) - ) - (let ((v1-28 (-> self skel root-channel 0))) - (set! (-> v1-28 num-func) num-func-identity) - (set! (-> v1-28 frame-num) 0.0) - ) - (until (nav-enemy-facing-player? 1820.4445) - (ja-blend-eval) - (suspend) - (let ((a0-15 (-> self skel root-channel 0))) - (set! (-> a0-15 param 0) 0.75) - (joint-control-channel-group-eval! - a0-15 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) - (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) - ) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 2) - ) + (set! (-> self turn-time) 60) + (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) + (when (or + (logtest? (-> self nav-enemy-flags) 256) + (and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5)) + ) + (ja-channel-push! 1 30) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + (set! (-> gp-0 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-0 param 1) f30-0) + (set! (-> gp-0 frame-num) 0.0) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 8)) num-func-seek!) ) - (ja-channel-push! 1 60) - ) - (let ((a0-23 (-> self skel root-channel 0))) - (set! - (-> a0-23 frame-group) - (the-as art-joint-anim (-> self draw art-group data 2)) - ) - (set! - (-> a0-23 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length + (until (ja-done? 0) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-1 param 1) f30-0) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (while #t + (when (not (nav-enemy-facing-player? 2730.6667)) + (logior! (-> self nav-enemy-flags) 16) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) 1.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim #f) num-func-loop!) + ) + (ja-channel-push! 1 60) + (let ((v1-25 (-> self skel root-channel 0))) + (set! (-> v1-25 frame-group) (the-as art-joint-anim (-> self draw art-group data 12))) + ) + (let ((v1-28 (-> self skel root-channel 0))) + (set! (-> v1-28 num-func) num-func-identity) + (set! (-> v1-28 frame-num) 0.0) + ) + (until (nav-enemy-facing-player? 1820.4445) + (ja-blend-eval) + (suspend) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 param 0) 0.75) + (joint-control-channel-group-eval! a0-15 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) + ) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 2) + ) + ) + (ja-channel-push! 1 60) + ) + (let ((a0-23 (-> self skel root-channel 0))) + (set! (-> a0-23 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) + (set! (-> a0-23 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) + ) + (set! (-> a0-23 param 1) f30-0) + (set! (-> a0-23 frame-num) 0.0) + (joint-control-channel-group! a0-23 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-24 (-> self skel root-channel 0))) + (set! (-> a0-24 param 0) (the float (+ (-> a0-24 frame-group data 0 length) -1))) + (set! (-> a0-24 param 1) f30-0) + (joint-control-channel-group-eval! a0-24 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (when (nav-enemy-rnd-percent? 0.3) + (ja-channel-push! 1 30) + (let ((gp-2 (-> self skel root-channel 0))) + (set! (-> gp-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + (set! (-> gp-2 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-2 param 1) f30-0) + (set! (-> gp-2 frame-num) 0.0) + (joint-control-channel-group! gp-2 (the-as art-joint-anim (-> self draw art-group data 8)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((gp-3 (-> self skel root-channel 0))) + (set! (-> gp-3 param 0) (ja-aframe 68.0 0)) + (set! (-> gp-3 param 1) f30-0) + (joint-control-channel-group-eval! gp-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - -1 - ) ) - ) - (set! (-> a0-23 param 1) f30-0) - (set! (-> a0-23 frame-num) 0.0) - (joint-control-channel-group! - a0-23 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-seek! - ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-24 (-> self skel root-channel 0))) - (set! - (-> a0-24 param 0) - (the float (+ (-> a0-24 frame-group data 0 length) -1)) - ) - (set! (-> a0-24 param 1) f30-0) - (joint-control-channel-group-eval! - a0-24 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (when (nav-enemy-rnd-percent? 0.3) - (ja-channel-push! 1 30) - (let ((gp-2 (-> self skel root-channel 0))) - (set! - (-> gp-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - (set! (-> gp-2 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-2 param 1) f30-0) - (set! (-> gp-2 frame-num) 0.0) - (joint-control-channel-group! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((gp-3 (-> self skel root-channel 0))) - (set! (-> gp-3 param 0) (ja-aframe 68.0 0)) - (set! (-> gp-3 param 1) f30-0) - (joint-control-channel-group-eval! - gp-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-give-up (yeti-slave) :virtual #t :code (behavior () - (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) - (ja-channel-push! 1 45) - (let ((s4-0 (-> self collide-info)) - (s5-0 (target-pos 0)) - ) - (when - (< - (fabs - (deg-diff - (y-angle s4-0) - (vector-y-angle - (vector-! (new 'stack-no-clear 'vector) s5-0 (-> s4-0 trans)) - ) - ) - ) - 12743.111 - ) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 frame-group) - (the-as art-joint-anim (-> self draw art-group data 6)) - ) - (set! - (-> a0-6 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 6)) - data - 0 - length + (set! (-> self rotate-speed) 218453.33) + (set! (-> self turn-time) 150) + (ja-channel-push! 1 45) + (let ((s4-0 (-> self collide-info)) + (s5-0 (target-pos 0)) + ) + (when (< (fabs + (deg-diff (y-angle s4-0) (vector-y-angle (vector-! (new 'stack-no-clear 'vector) s5-0 (-> s4-0 trans)))) + ) + 12743.111 + ) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> self draw art-group data 6))) + (set! (-> a0-6 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 6)) data 0 length) -1)) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-6 param 1) 1.0) - (set! (-> a0-6 frame-num) 0.0) - (joint-control-channel-group! - a0-6 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-seek! - ) ) - (until (ja-done? 0) + (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) + (nav-enemy-get-new-patrol-point) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 7))) + (set! (-> a0-12 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 7)) data 0 length) -1)) + ) + (set! (-> a0-12 param 1) 1.0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! a0-12 (the-as art-joint-anim (-> self draw art-group data 7)) num-func-seek!) + ) + (until (ja-done? 0) + (seek-to-point-toward-point! + (-> self collide-info) + (-> self nav destination-pos) + (-> self rotate-speed) + (-> self turn-time) + ) (suspend) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 param 0) (the float (+ (-> a0-14 frame-group data 0 length) -1))) + (set! (-> a0-14 param 1) 1.0) + (joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-seek!) ) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group-eval! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) ) - ) + (go-virtual nav-enemy-patrol) + (none) ) - (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) - (nav-enemy-get-new-patrol-point) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 frame-group) - (the-as art-joint-anim (-> self draw art-group data 7)) - ) - (set! - (-> a0-12 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 7)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-12 param 1) 1.0) - (set! (-> a0-12 frame-num) 0.0) - (joint-control-channel-group! - a0-12 - (the-as art-joint-anim (-> self draw art-group data 7)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (seek-to-point-toward-point! - (-> self collide-info) - (-> self nav destination-pos) - (-> self rotate-speed) - (-> self turn-time) - ) - (suspend) - (let ((a0-14 (-> self skel root-channel 0))) - (set! - (-> a0-14 param 0) - (the float (+ (-> a0-14 frame-group data 0 length) -1)) - ) - (set! (-> a0-14 param 1) 1.0) - (joint-control-channel-group-eval! - a0-14 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go-virtual nav-enemy-patrol) - (none) - ) ) (defstate nav-enemy-jump-land (yeti-slave) :virtual #t :code (behavior () - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 param 0) - (the float (+ (-> a0-0 frame-group data 0 length) -1)) - ) - (set! (-> a0-0 param 1) 1.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (ja-channel-push! 1 22) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info jump-land-anim)) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 param 0) (the float (+ (-> a0-0 frame-group data 0 length) -1))) + (set! (-> a0-0 param 1) 1.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim #f) num-func-seek!) ) - ) - (set! (-> gp-0 param 0) (ja-aframe 32.0 0)) - (set! (-> gp-0 param 1) 0.5) - (set! (-> gp-0 frame-num) 0.0) - (joint-control-channel-group! - gp-0 - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info jump-land-anim)) + (ja-channel-push! 1 22) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info jump-land-anim))) + ) + (set! (-> gp-0 param 0) (ja-aframe 32.0 0)) + (set! (-> gp-0 param 1) 0.5) + (set! (-> gp-0 frame-num) 0.0) + (joint-control-channel-group! + gp-0 + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info jump-land-anim))) + num-func-seek! + ) ) - num-func-seek! - ) - ) - (until (ja-done? 0) - (ja-blend-eval) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 32.0 0)) - (set! (-> gp-1 param 1) 0.5) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 32.0 0)) + (set! (-> gp-1 param 1) 0.5) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) + (go-virtual nav-enemy-chase) + (none) ) - (go-virtual nav-enemy-chase) - (none) - ) ) (defmethod initialize-collision yeti-slave ((obj yeti-slave)) - (let - ((s5-0 - (new - 'process - 'collide-shape-moving - obj - (collide-list-enum usually-hit-by-player) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 12288.0) + (set-root-prim! s5-0 s4-0) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 3072.0) + (append-prim s4-0 s3-0) + ) + (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 1) + (set-vector! (-> s3-1 local-sphere) 0.0 9830.4 0.0 3072.0) + (append-prim s4-0 s3-1) + ) + (let ((s3-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1)))) + (set! (-> s3-2 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-2 collide-with) (the-as uint 16)) + (set! (-> s3-2 prim-core offense) 2) + (set! (-> s3-2 transform-index) 6) + (set-vector! (-> s3-2 local-sphere) 0.0 0.0 0.0 2048.0) + (append-prim s4-0 s3-2) + ) ) - ) + (set! (-> s5-0 nav-radius) 6144.0) + (backup-collide-with-as s5-0) + (set! (-> s5-0 max-iteration-count) (the-as uint 2)) + (set! (-> obj collide-info) s5-0) ) - (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) default-collision-reaction) - (set! - (-> s5-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) - (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 12288.0) - (set-root-prim! s5-0 s4-0) - (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set! (-> s3-0 prim-core offense) 1) - (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 3072.0) - (append-prim s4-0 s3-0) - ) - (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) - (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-1 collide-with) (the-as uint 16)) - (set! (-> s3-1 prim-core action) (the-as uint 1)) - (set! (-> s3-1 prim-core offense) 1) - (set-vector! (-> s3-1 local-sphere) 0.0 9830.4 0.0 3072.0) - (append-prim s4-0 s3-1) - ) - (let ((s3-2 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 1)))) - (set! (-> s3-2 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-2 collide-with) (the-as uint 16)) - (set! (-> s3-2 prim-core offense) 2) - (set! (-> s3-2 transform-index) 6) - (set-vector! (-> s3-2 local-sphere) 0.0 0.0 0.0 2048.0) - (append-prim s4-0 s3-2) - ) - ) - (set! (-> s5-0 nav-radius) 6144.0) - (backup-collide-with-as s5-0) - (set! (-> s5-0 max-iteration-count) (the-as uint 2)) - (set! (-> obj collide-info) s5-0) - ) 0 (none) ) @@ -1172,39 +783,22 @@ (defmethod deactivate yeti-slave ((obj yeti-slave)) (if (nonzero? (-> obj part2)) - (kill-and-free-particles (-> obj part2)) - ) + (kill-and-free-particles (-> obj part2)) + ) ((method-of-type process-drawable deactivate) obj) (none) ) (defmethod relocate yeti-slave ((obj yeti-slave) (arg0 int)) (if (nonzero? (-> obj part2)) - (&+! (-> obj part2) arg0) - ) - (the-as - yeti-slave - ((the-as - (function nav-enemy int nav-enemy) - (find-parent-method yeti-slave 7) - ) - obj - arg0 - ) - ) + (&+! (-> obj part2) arg0) + ) + (the-as yeti-slave ((the-as (function nav-enemy int nav-enemy) (find-parent-method yeti-slave 7)) obj arg0)) ) -(defbehavior - yeti-slave-init-by-other yeti-slave - ((arg0 entity) (arg1 yeti) (arg2 vector) (arg3 vector) (arg4 symbol)) - (set! - (-> self part) - (create-launch-control (-> *part-group-id-table* 538) self) - ) - (set! - (-> self part2) - (create-launch-control (-> *part-group-id-table* 539) self) - ) +(defbehavior yeti-slave-init-by-other yeti-slave ((arg0 entity) (arg1 yeti) (arg2 vector) (arg3 vector) (arg4 symbol)) + (set! (-> self part) (create-launch-control (-> *part-group-id-table* 538) self)) + (set! (-> self part2) (create-launch-control (-> *part-group-id-table* 539) self)) (initialize-collision self) (set! (-> self collide-info trans quad) (-> arg2 quad)) (vector-identity! (-> self collide-info scale)) @@ -1212,208 +806,163 @@ (set! (-> self entity) (-> arg1 entity)) (TODO-RENAME-48 self) (if arg4 - (go-virtual nav-enemy-idle) - (go yeti-slave-appear-jump-up) - ) + (go-virtual nav-enemy-idle) + (go yeti-slave-appear-jump-up) + ) (none) ) (defmethod aggro? yeti ((obj yeti) (arg0 vector)) (let ((s5-0 (the-as (pointer process-tree) (-> obj child-process)))) - (while s5-0 - (if - (< - (vector-vector-xz-distance-squared - arg0 - (-> (the-as (pointer yeti-slave) s5-0) 0 collide-info trans) - ) - 603979800.0 + (while s5-0 + (if (< (vector-vector-xz-distance-squared arg0 (-> (the-as (pointer yeti-slave) s5-0) 0 collide-info trans)) + 603979800.0 + ) + (return #f) + ) + (set! s5-0 (-> s5-0 0 brother)) ) - (return #f) - ) - (set! s5-0 (-> s5-0 0 brother)) ) - ) (when *target* - (if (< (vector-vector-xz-distance-squared arg0 (target-pos 0)) 603979800.0) - (return #f) + (if (< (vector-vector-xz-distance-squared arg0 (target-pos 0)) 603979800.0) + (return #f) + ) ) - ) #t ) (defmethod TODO-RENAME-20 yeti ((obj yeti) (arg0 vector) (arg1 vector)) (let ((s3-0 (-> obj path curve num-cverts))) - (if (<= s3-0 0) - (return #f) - ) - (let ((s1-0 (rand-vu-int-count s3-0)) - (s2-0 s3-0) - ) - (while (> s2-0 0) - (eval-path-curve-div! (-> obj path) arg0 (the float s1-0) 'interp) - (when (aggro? obj arg0) - (cond - (*target* - (vector-! arg1 (target-pos 0) arg0) - (set! (-> arg1 y) 0.0) + (if (<= s3-0 0) + (return #f) ) - (else - (set-vector! - arg1 - (rand-vu-float-range -4096.0 4096.0) - 0.0 - (rand-vu-float-range -4096.0 4096.0) - 1.0 - ) - (set! (-> arg1 x) (+ 409.6 (-> arg1 x))) + (let ((s1-0 (rand-vu-int-count s3-0)) + (s2-0 s3-0) + ) + (while (> s2-0 0) + (eval-path-curve-div! (-> obj path) arg0 (the float s1-0) 'interp) + (when (aggro? obj arg0) + (cond + (*target* + (vector-! arg1 (target-pos 0) arg0) + (set! (-> arg1 y) 0.0) + ) + (else + (set-vector! arg1 (rand-vu-float-range -4096.0 4096.0) 0.0 (rand-vu-float-range -4096.0 4096.0) 1.0) + (set! (-> arg1 x) (+ 409.6 (-> arg1 x))) + ) + ) + (vector-normalize! arg1 1.0) + (return #t) + ) + (set! s1-0 (mod (+ s1-0 1) s3-0)) + (+! s2-0 -1) ) - ) - (vector-normalize! arg1 1.0) - (return #t) ) - (set! s1-0 (mod (+ s1-0 1) s3-0)) - (+! s2-0 -1) - ) ) - ) #f ) (defstate yeti-first-time-start (yeti) :code (behavior () - (while #t - (when *target* - (when - (>= - (-> self first-time-spawn-dist) - (vector-vector-xz-distance (target-pos 0) (-> self root trans)) - ) - (process-entity-status! self (entity-perm-status complete) #t) - (go yeti-idle) + (while #t + (when *target* + (when (>= (-> self first-time-spawn-dist) (vector-vector-xz-distance (target-pos 0) (-> self root trans))) + (process-entity-status! self (entity-perm-status complete) #t) + (go yeti-idle) + ) + ) + (suspend) ) - ) - (suspend) + (none) ) - (none) - ) ) (defstate yeti-resuming-start (yeti) :code (behavior () - (let ((gp-0 0)) - (let ((v1-0 (the-as (pointer process-tree) (-> self child-process)))) - (while v1-0 - (+! gp-0 1) - (set! v1-0 (-> v1-0 0 brother)) - (nop!) - (nop!) - ) - ) - (while (< gp-0 (-> self desired-num-children)) - (let ((s5-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (if (not (TODO-RENAME-20 self s5-0 s4-0)) - (go yeti-idle) - ) - (let ((s3-0 (get-process *default-dead-pool* yeti-slave #x4000))) - (when s3-0 - (let ((t9-3 (method-of-type yeti-slave activate))) - (t9-3 - (the-as yeti-slave s3-0) - self - 'yeti-slave - (the-as pointer #x70004000) + (let ((gp-0 0)) + (let ((v1-0 (the-as (pointer process-tree) (-> self child-process)))) + (while v1-0 + (+! gp-0 1) + (set! v1-0 (-> v1-0 0 brother)) + (nop!) + (nop!) ) - ) - (run-now-in-process - s3-0 - yeti-slave-init-by-other - (-> self entity) - self - s5-0 - s4-0 - #t - ) - (-> s3-0 ppointer) ) - ) + (while (< gp-0 (-> self desired-num-children)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (if (not (TODO-RENAME-20 self s5-0 s4-0)) + (go yeti-idle) + ) + (let ((s3-0 (get-process *default-dead-pool* yeti-slave #x4000))) + (when s3-0 + (let ((t9-3 (method-of-type yeti-slave activate))) + (t9-3 (the-as yeti-slave s3-0) self 'yeti-slave (the-as pointer #x70004000)) + ) + (run-now-in-process s3-0 yeti-slave-init-by-other (-> self entity) self s5-0 s4-0 #t) + (-> s3-0 ppointer) + ) + ) + ) + (+! gp-0 1) + ) ) - (+! gp-0 1) - ) + (go yeti-idle) + (none) ) - (go yeti-idle) - (none) - ) ) (defstate yeti-idle (yeti) :code (behavior () - (while #t - (cond - ((zero? (-> self spawn-delay)) - (let ((v1-1 0)) - (let ((a0-0 (the-as (pointer process-tree) (-> self child-process)))) - (while a0-0 - (+! v1-1 1) - (set! a0-0 (-> a0-0 0 brother)) - (nop!) - (nop!) - ) - ) - (when (< v1-1 (-> self desired-num-children)) - (set! (-> self spawn-delay) (rand-vu-int-range 150 1200)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - ) - ) - ) - (else - (when - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - (-> self spawn-delay) - ) - (let ((gp-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) + (while #t + (cond + ((zero? (-> self spawn-delay)) + (let ((v1-1 0)) + (let ((a0-0 (the-as (pointer process-tree) (-> self child-process)))) + (while a0-0 + (+! v1-1 1) + (set! a0-0 (-> a0-0 0 brother)) + (nop!) + (nop!) + ) ) - (when (TODO-RENAME-20 self gp-0 s5-0) - (let ((s4-0 (get-process *default-dead-pool* yeti-slave #x4000))) - (when s4-0 - (let ((t9-3 (method-of-type yeti-slave activate))) - (t9-3 - (the-as yeti-slave s4-0) - self - 'yeti-slave - (the-as pointer #x70004000) + (when (< v1-1 (-> self desired-num-children)) + (set! (-> self spawn-delay) (rand-vu-int-range 150 1200)) + (set! (-> self state-time) (-> *display* base-frame-counter)) ) - ) - (run-now-in-process - s4-0 - yeti-slave-init-by-other - (-> self entity) - self - gp-0 - s5-0 - #f - ) - (-> s4-0 ppointer) ) - ) - (set! (-> self spawn-delay) 0) - 0 ) + (else + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self spawn-delay)) + (let ((gp-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (when (TODO-RENAME-20 self gp-0 s5-0) + (let ((s4-0 (get-process *default-dead-pool* yeti-slave #x4000))) + (when s4-0 + (let ((t9-3 (method-of-type yeti-slave activate))) + (t9-3 (the-as yeti-slave s4-0) self 'yeti-slave (the-as pointer #x70004000)) + ) + (run-now-in-process s4-0 yeti-slave-init-by-other (-> self entity) self gp-0 s5-0 #f) + (-> s4-0 ppointer) + ) + ) + (set! (-> self spawn-delay) 0) + 0 + ) + ) + ) + ) ) - ) + (suspend) ) - ) - (suspend) + (none) ) - (none) - ) ) (defmethod init-from-entity! yeti ((obj yeti) (arg0 entity-actor)) @@ -1421,28 +970,14 @@ (set! (-> obj root) (new 'process 'trsqv)) (set! (-> obj path) (new 'process 'path-control obj 'path 0.0)) (process-drawable-from-entity! obj arg0) - (set! - (-> obj desired-num-children) - (res-lump-value - arg0 - 'num-lurkers - int - :default - (the-as uint128 (-> obj path curve num-cverts)) - ) - ) - (set! - (-> obj first-time-spawn-dist) - (res-lump-float arg0 'notice-dist :default 204800.0) - ) - (if - (and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) - ) - (go yeti-resuming-start) - (go yeti-first-time-start) - ) + (set! (-> obj desired-num-children) + (res-lump-value arg0 'num-lurkers int :default (the-as uint128 (-> obj path curve num-cverts))) + ) + (set! (-> obj first-time-spawn-dist) (res-lump-float arg0 'notice-dist :default 204800.0)) + (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) + (go yeti-resuming-start) + (go yeti-first-time-start) + ) (none) ) diff --git a/goal_src/levels/sunken/puffer.gc b/goal_src/levels/sunken/puffer.gc index cb4be8db8d..0cc06c70c9 100644 --- a/goal_src/levels/sunken/puffer.gc +++ b/goal_src/levels/sunken/puffer.gc @@ -10,10 +10,6 @@ (declare-type puffer process-drawable) -(define-extern puffer-idle (state puffer)) ;; unknown type -(define-extern puffer-patrol (state puffer)) ;; unknown type -(define-extern puffer-attack (state puffer)) ;; unknown type -(define-extern puffer-die (state puffer)) ;; unknown type ;; DECOMP BEGINS @@ -66,6 +62,12 @@ (dummy-30 (_type_) vector 30) (dummy-31 (_type_) vector 31) ) + (:states + puffer-attack + puffer-die + puffer-idle + puffer-patrol + ) ) @@ -155,7 +157,7 @@ (defmethod dummy-28 puffer ((obj puffer)) (cond - ((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) 8)) + ((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) (draw-status drwf03))) (let ((s5-0 (new 'stack-no-clear 'collide-tri-result)) (a1-0 (new 'stack-no-clear 'vector)) (a2-0 (new 'stack-no-clear 'vector)) @@ -513,7 +515,7 @@ (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) ) ) - (logtest? (-> self draw status) 8) + (logtest? (-> self draw status) (draw-status drwf03)) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) ) (go puffer-patrol) @@ -556,7 +558,7 @@ (go puffer-idle) ) (cond - ((logtest? (-> self draw status) 8) + ((logtest? (-> self draw status) (draw-status drwf03)) (set! (-> self last-on-screen-time) (the-as uint (-> *display* base-frame-counter))) ) (else @@ -668,14 +670,14 @@ (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((v1-0 arg2)) (the-as - object + uint (cond ((= v1-0 'death-start) (the-as uint (drop-pickup (-> self fact-info-override) #t *entity-pool* (-> self fact-info-override) 0)) ) ((= v1-0 'death-end) - (let ((v0-0 (logior (-> self draw status) 2))) - (set! (-> self draw status) v0-0) + (let ((v0-0 (the-as uint (logior (-> self draw status) (draw-status drwf01))))) + (set! (-> self draw status) (the-as draw-status v0-0)) v0-0 ) ) diff --git a/goal_src/levels/sunken/qbert-plat.gc b/goal_src/levels/sunken/qbert-plat.gc index 07d6e89e8d..424ab14b0f 100644 --- a/goal_src/levels/sunken/qbert-plat.gc +++ b/goal_src/levels/sunken/qbert-plat.gc @@ -7,12 +7,6 @@ (declare-type qbert-plat-master process-drawable) (declare-type qbert-plat rigid-body-platform) -(define-extern qbert-plat-master-wait-for-door (state qbert-plat-master)) ;; unknown type -(define-extern qbert-plat-master-idle (state qbert-plat-master)) ;; unknown type -(define-extern qbert-plat-master-do-door (state symbol qbert-plat-master)) ;; unknown type -(define-extern qbert-plat-wait-for-master (state qbert-plat)) ;; unknown type -(define-extern qbert-plat-on-mimic (state qbert-plat)) ;; unknown type -(define-extern qbert-plat-on-die (state qbert-plat)) ;; unknown type ;; DECOMP BEGINS @@ -44,6 +38,11 @@ :method-count-assert 35 :size-assert #x300 :flag-assert #x2302900300 + (:states + qbert-plat-on-die + qbert-plat-on-mimic + qbert-plat-wait-for-master + ) ) @@ -101,6 +100,11 @@ (:methods (plat-state-set? (_type_ uint) symbol 20) ) + (:states + (qbert-plat-master-do-door symbol) + qbert-plat-master-idle + qbert-plat-master-wait-for-door + ) ) diff --git a/goal_src/levels/sunken/square-platform.gc b/goal_src/levels/sunken/square-platform.gc index 10746deb4e..e4d0188022 100644 --- a/goal_src/levels/sunken/square-platform.gc +++ b/goal_src/levels/sunken/square-platform.gc @@ -6,13 +6,7 @@ ;; dgos: L1, SUN, SUNKEN (declare-type square-platform baseplat) -(define-extern square-platform-lowered (state square-platform)) ;; unknown type -(define-extern square-platform-rising (state square-platform)) ;; unknown type -(define-extern square-platform-lowering (state square-platform)) ;; unknown type -(define-extern square-platform-raised (state square-platform)) ;; unknown type (declare-type square-platform-master process-drawable) -(define-extern square-platform-master-idle (state square-platform-master)) ;; unknown type -(define-extern square-platform-master-activate (state square-platform-master)) ;; unknown type ;; DECOMP BEGINS @@ -35,6 +29,12 @@ (:methods (TODO-RENAME-27 (_type_ symbol) none 27) ) + (:states + square-platform-lowered + square-platform-lowering + square-platform-raised + square-platform-rising + ) ) @@ -70,361 +70,298 @@ :method-count-assert 20 :size-assert #x100 :flag-assert #x1400900100 - ) - - -(set! - (-> *part-group-id-table* 437) - (new 'static 'sparticle-launch-group - :length 2 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-square-platform-breach-splash" - :launcher - (new 'static 'inline-array sparticle-group-item 2 - (sp-item 2222 :flags (is-3d)) - (sp-item 2315 :flags (is-3d)) + (:states + square-platform-master-activate + square-platform-master-idle ) - :bounds (new 'static 'sphere :w 32768.0) - ) ) -(set! - (-> *part-id-table* 2222) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) - (sp-flt spt-num 8.0) - (sp-rnd-flt spt-x (meters 0.0) (meters 3.0) 1.0) - (sp-rnd-flt spt-scale-x (meters 3.5) (meters 3.5) 1.0) - (sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 128.0 64.0 1.0) - (sp-rnd-flt spt-g 128.0 64.0 1.0) - (sp-rnd-flt spt-b 128.0 64.0 1.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.013333334) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a 3.2) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2) - (sp-int-plain-rnd spt-next-time 10 29 1) - (sp-launcher-by-id spt-next-launcher 2316) - (sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 20.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) -(set! - (-> *part-id-table* 2316) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a -0.17066666) - (sp-end) - ) - ) - ) +(set! (-> *part-group-id-table* 437) + (new 'static 'sparticle-launch-group + :length 2 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-square-platform-breach-splash" + :launcher + (new 'static 'inline-array sparticle-group-item 2 (sp-item 2222 :flags (is-3d)) (sp-item 2315 :flags (is-3d))) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) -(set! - (-> *part-id-table* 2315) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) - (sp-flt spt-num 8.0) - (sp-rnd-flt spt-x (meters 3.0) (meters 1.5) 1.0) - (sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0) - (sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-r 128.0 64.0 1.0) - (sp-rnd-flt spt-g 128.0 64.0 1.0) - (sp-rnd-flt spt-b 128.0 64.0 1.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.013333334) 1.0) - (sp-copy-from-other spt-scalevel-y -4) - (sp-flt spt-fade-a 3.2) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2) - (sp-int-plain-rnd spt-next-time 10 29 1) - (sp-launcher-by-id spt-next-launcher 2316) - (sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 20.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2222) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) + (sp-flt spt-num 8.0) + (sp-rnd-flt spt-x (meters 0.0) (meters 3.0) 1.0) + (sp-rnd-flt spt-scale-x (meters 3.5) (meters 3.5) 1.0) + (sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 128.0 64.0 1.0) + (sp-rnd-flt spt-g 128.0 64.0 1.0) + (sp-rnd-flt spt-b 128.0 64.0 1.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.013333334) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a 3.2) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2) + (sp-int-plain-rnd spt-next-time 10 29 1) + (sp-launcher-by-id spt-next-launcher 2316) + (sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 20.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-group-id-table* 438) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name - "group-square-platform-submerge-bubbles" - :launcher - (new 'static 'inline-array sparticle-group-item 1 (sp-item 2223)) - :bounds (new 'static 'sphere :w 32768.0) - ) - ) +(set! (-> *part-id-table* 2316) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.17066666) (sp-end)) + ) + ) -(set! - (-> *part-id-table* 2223) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 20 - (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) - (sp-flt spt-num 2.0) - (sp-rnd-flt spt-x (meters -4.0) (meters 8.0) 1.0) - (sp-rnd-flt spt-z -16384.0 32768.0 1.0) - (sp-rnd-flt spt-scale-x (meters 0.15) (meters 0.05) 1.0) - (sp-rnd-flt spt-scale-y (meters 0.125) (meters 0.025) 1.0) - (sp-flt spt-r 255.0) - (sp-flt spt-g 255.0) - (sp-flt spt-b 255.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.006666667) 1.0) - (sp-flt spt-fade-a 0.8) - (sp-int spt-timer 900) - (sp-cpuinfo-flags bit2 bit3 bit14) - (sp-flt spt-userdata -663298.44) - (sp-func spt-func 'check-water-level-above-and-die) - (sp-int-plain-rnd spt-next-time 30 29 1) - (sp-launcher-by-id spt-next-launcher 2317) - (sp-flt spt-rotate-y (degrees 0.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2315) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2)) + (sp-flt spt-num 8.0) + (sp-rnd-flt spt-x (meters 3.0) (meters 1.5) 1.0) + (sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0) + (sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-r 128.0 64.0 1.0) + (sp-rnd-flt spt-g 128.0 64.0 1.0) + (sp-rnd-flt spt-b 128.0 64.0 1.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-scalevel-x (meters 0.013333334) (meters 0.013333334) 1.0) + (sp-copy-from-other spt-scalevel-y -4) + (sp-flt spt-fade-a 3.2) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2) + (sp-int-plain-rnd spt-next-time 10 29 1) + (sp-launcher-by-id spt-next-launcher 2316) + (sp-rnd-flt spt-conerot-x (degrees 70.0) (degrees 20.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 2317) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 2 - (sp-flt spt-fade-a 0.0) - (sp-end) - ) - ) - ) +(set! (-> *part-group-id-table* 438) (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name + "group-square-platform-submerge-bubbles" + :launcher + (new 'static 'inline-array sparticle-group-item 1 (sp-item 2223)) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) -(set! - (-> *part-group-id-table* 439) - (new 'static 'sparticle-launch-group - :length 2 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-square-platform-submerge-splash" - :launcher - (new 'static 'inline-array sparticle-group-item 2 - (sp-item 2222 :flags (is-3d)) - (sp-item 2315 :flags (is-3d)) - ) - :bounds (new 'static 'sphere :w 32768.0) - ) - ) +(set! (-> *part-id-table* 2223) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2)) + (sp-flt spt-num 2.0) + (sp-rnd-flt spt-x (meters -4.0) (meters 8.0) 1.0) + (sp-rnd-flt spt-z -16384.0 32768.0 1.0) + (sp-rnd-flt spt-scale-x (meters 0.15) (meters 0.05) 1.0) + (sp-rnd-flt spt-scale-y (meters 0.125) (meters 0.025) 1.0) + (sp-flt spt-r 255.0) + (sp-flt spt-g 255.0) + (sp-flt spt-b 255.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.006666667) 1.0) + (sp-flt spt-fade-a 0.8) + (sp-int spt-timer 900) + (sp-cpuinfo-flags bit2 bit3 bit14) + (sp-flt spt-userdata -663298.44) + (sp-func spt-func 'check-water-level-above-and-die) + (sp-int-plain-rnd spt-next-time 30 29 1) + (sp-launcher-by-id spt-next-launcher 2317) + (sp-flt spt-rotate-y (degrees 0.0)) + (sp-end) + ) + ) + ) + +(set! (-> *part-id-table* 2317) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a 0.0) (sp-end)) + ) + ) + +(set! (-> *part-group-id-table* 439) + (new 'static 'sparticle-launch-group + :length 2 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-square-platform-submerge-splash" + :launcher + (new 'static 'inline-array sparticle-group-item 2 (sp-item 2222 :flags (is-3d)) (sp-item 2315 :flags (is-3d))) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) (defmethod TODO-RENAME-27 square-platform ((obj square-platform) (arg0 symbol)) (local-vars (v0-3 sound-id) (sv-48 int)) (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> obj root-override trans quad)) - (set! (-> s4-0 y) (+ -20480.0 (-> s4-0 y))) - (let* ((v1-1 (-> obj water-entity)) - (a0-4 (if v1-1 - (-> v1-1 extra process) + (set! (-> s4-0 quad) (-> obj root-override trans quad)) + (set! (-> s4-0 y) (+ -20480.0 (-> s4-0 y))) + (let* ((v1-1 (-> obj water-entity)) + (a0-4 (if v1-1 + (-> v1-1 extra process) + ) ) ) - ) - (when (not a0-4) - (set! - (-> obj water-entity) - (entity-actor-lookup (-> obj entity) 'alt-actor 0) - ) - (let ((v1-4 (-> obj water-entity))) - (set! a0-4 (if v1-4 - (-> v1-4 extra process) - ) - ) - ) - ) - (when (the-as water-vol a0-4) - (let ((f0-2 (get-ripple-height (the-as water-vol a0-4) s4-0)) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s3-0 quad) (-> s4-0 quad)) - (set! (-> s3-0 y) f0-2) - (if (zero? (-> obj start-splash-time)) - (set! v0-3 (cond - (arg0 - (if (>= (-> s4-0 y) f0-2) - (set! - (-> obj start-splash-time) - (the-as uint (-> *display* base-frame-counter)) - ) - ) - v0-3 - ) - (else - (when (>= f0-2 (-> s4-0 y)) - (set! - (-> obj start-splash-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (let ((s2-0 sound-play-by-name) - (s1-0 - (make-u128 - #x6873616c - (the-as uint #x70732d656772616c) - ) - ) - (s0-0 (new-sound-id)) - ) - (set! sv-48 1024) - (let - ((a3-0 - (the int (* 1524.0 (rand-vu-float-range -0.8 0.8))) + (when (not a0-4) + (set! (-> obj water-entity) (entity-actor-lookup (-> obj entity) 'alt-actor 0)) + (let ((v1-4 (-> obj water-entity))) + (set! a0-4 (if v1-4 + (-> v1-4 extra process) ) - (t0-0 0) - (t1-0 1) - (t2-0 #t) - ) - (s2-0 - (the-as sound-name s1-0) - s0-0 - sv-48 - a3-0 - t0-0 - t1-0 - t2-0 - ) - ) - ) - ) - ) - ) - ) - ) - (when (nonzero? (-> obj start-splash-time)) - (cond - (arg0 - (let ((v1-21 (-> obj splash-counter))) - (when (< v1-21 2) - (set! (-> obj splash-counter) (+ v1-21 1)) - (spawn (-> obj part2) s3-0) - ) + ) ) - ) - (else - (spawn (-> obj part3) s4-0) - ) ) - ) - (when (not arg0) - (let ((v1-25 (-> obj splash-counter))) - (when (< v1-25 2) - (set! (-> obj splash-counter) (+ v1-25 1)) - (spawn (-> obj part4) s3-0) - ) + (when (the-as water-vol a0-4) + (let ((f0-2 (get-ripple-height (the-as water-vol a0-4) s4-0)) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-0 quad) (-> s4-0 quad)) + (set! (-> s3-0 y) f0-2) + (if (zero? (-> obj start-splash-time)) + (set! v0-3 (cond + (arg0 + (if (>= (-> s4-0 y) f0-2) + (set! (-> obj start-splash-time) (the-as uint (-> *display* base-frame-counter))) + ) + v0-3 + ) + (else + (when (>= f0-2 (-> s4-0 y)) + (set! (-> obj start-splash-time) (the-as uint (-> *display* base-frame-counter))) + (let ((s2-0 sound-play-by-name) + (s1-0 (make-u128 #x6873616c (the-as uint #x70732d656772616c))) + (s0-0 (new-sound-id)) + ) + (set! sv-48 1024) + (let ((a3-0 (the int (* 1524.0 (rand-vu-float-range -0.8 0.8)))) + (t0-0 0) + (t1-0 1) + (t2-0 #t) + ) + (s2-0 (the-as sound-name s1-0) s0-0 sv-48 a3-0 t0-0 t1-0 t2-0) + ) + ) + ) + ) + ) + ) + ) + (when (nonzero? (-> obj start-splash-time)) + (cond + (arg0 + (let ((v1-21 (-> obj splash-counter))) + (when (< v1-21 2) + (set! (-> obj splash-counter) (+ v1-21 1)) + (spawn (-> obj part2) s3-0) + ) + ) + ) + (else + (spawn (-> obj part3) s4-0) + ) + ) + ) + (when (not arg0) + (let ((v1-25 (-> obj splash-counter))) + (when (< v1-25 2) + (set! (-> obj splash-counter) (+ v1-25 1)) + (spawn (-> obj part4) s3-0) + ) + ) + ) + ) ) - ) ) - ) ) - ) (none) ) (defstate square-platform-lowered (square-platform) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('trigger) - (if - (and - (= (-> arg0 type) square-platform-master) - (= (-> (the-as square-platform-master arg0) plat-id) (-> self plat-id)) - ) - (go square-platform-rising) + (case arg2 + (('trigger) + (if (and + (= (-> arg0 type) square-platform-master) + (= (-> (the-as square-platform-master arg0) plat-id) (-> self plat-id)) + ) + (go square-platform-rising) + ) ) ) ) - ) :code (behavior () - (set! (-> self pos-u) 0.0) - (while #t - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) + (set! (-> self pos-u) 0.0) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) ) (defstate square-platform-rising (square-platform) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (cond - ((or (= v1-0 'bonk) (= v1-0 'bounce)) - (dummy-22 self) - ) - ((= v1-0 'untrigger) - (go square-platform-lowering) - ) - ) - ) + (let ((v1-0 arg2)) + (the-as object (cond + ((or (= v1-0 'bonk) (= v1-0 'bounce)) + (dummy-22 self) + ) + ((= v1-0 'untrigger) + (go square-platform-lowering) + ) + ) + ) + ) ) - ) :enter - (behavior () - (set! (-> self start-splash-time) (the-as uint 0)) - (set! (-> self splash-counter) 0) - 0 - (none) - ) + (behavior () (set! (-> self start-splash-time) (the-as uint 0)) (set! (-> self splash-counter) 0) 0 (none)) :trans (behavior () - (set! - (-> self pos-u) - (seek-with-smooth - (-> self pos-u) - 1.0 - (/ 1.0 (* 0.75 (-> *display* frames-per-second))) - 0.8 - 0.01 - ) + (set! (-> self pos-u) + (seek-with-smooth (-> self pos-u) 1.0 (/ 1.0 (* 0.75 (-> *display* frames-per-second))) 0.8 0.01) + ) + (vector-lerp! (-> self basetrans) (-> self down-pos) (-> self up-pos) (-> self pos-u)) + (plat-trans) + (when (= (-> self pos-u) 1.0) + (plat-post) + (go square-platform-raised) + ) + (TODO-RENAME-27 self #t) + (none) ) - (vector-lerp! - (-> self basetrans) - (-> self down-pos) - (-> self up-pos) - (-> self pos-u) - ) - (plat-trans) - (when (= (-> self pos-u) 1.0) - (plat-post) - (go square-platform-raised) - ) - (TODO-RENAME-27 self #t) - (none) - ) :code (behavior () - (while #t - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior square-platform) plat-post) ) @@ -432,29 +369,29 @@ (defstate square-platform-raised (square-platform) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (cond - ((or (= v1-0 'bonk) (= v1-0 'bounce)) - (dummy-22 self) - ) - ((= v1-0 'untrigger) - (go square-platform-lowering) - ) - ) - ) + (let ((v1-0 arg2)) + (the-as object (cond + ((or (= v1-0 'bonk) (= v1-0 'bounce)) + (dummy-22 self) + ) + ((= v1-0 'untrigger) + (go square-platform-lowering) + ) + ) + ) + ) ) - ) :trans (the-as (function none :behavior square-platform) plat-trans) :code (behavior () - (set! (-> self pos-u) 1.0) - (while #t - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) + (set! (-> self pos-u) 1.0) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior square-platform) plat-post) ) @@ -462,147 +399,103 @@ (defstate square-platform-lowering (square-platform) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (cond - ((or (= v1-0 'bonk) (= v1-0 'bounce)) - (dummy-22 self) - ) - ((= v1-0 'trigger) - (go square-platform-rising) - ) - ((= v1-0 'touch) - (send-event arg0 'no-look-around 450) - #f - ) - ) - ) + (let ((v1-0 arg2)) + (the-as object (cond + ((or (= v1-0 'bonk) (= v1-0 'bounce)) + (dummy-22 self) + ) + ((= v1-0 'trigger) + (go square-platform-rising) + ) + ((= v1-0 'touch) + (send-event arg0 'no-look-around 450) + #f + ) + ) + ) + ) ) - ) :enter - (behavior () - (set! (-> self start-splash-time) (the-as uint 0)) - (set! (-> self splash-counter) 0) - 0 - (none) - ) + (behavior () (set! (-> self start-splash-time) (the-as uint 0)) (set! (-> self splash-counter) 0) 0 (none)) :trans (behavior () - (set! - (-> self pos-u) - (seek-with-smooth - (-> self pos-u) - 0.0 - (/ 1.0 (* 0.75 (-> *display* frames-per-second))) - 0.8 - 0.01 - ) + (set! (-> self pos-u) + (seek-with-smooth (-> self pos-u) 0.0 (/ 1.0 (* 0.75 (-> *display* frames-per-second))) 0.8 0.01) + ) + (vector-lerp! (-> self basetrans) (-> self down-pos) (-> self up-pos) (-> self pos-u)) + (plat-trans) + (when (= (-> self pos-u) 0.0) + (plat-post) + (go square-platform-lowered) + ) + (TODO-RENAME-27 self #f) + (none) ) - (vector-lerp! - (-> self basetrans) - (-> self down-pos) - (-> self up-pos) - (-> self pos-u) - ) - (plat-trans) - (when (= (-> self pos-u) 0.0) - (plat-post) - (go square-platform-lowered) - ) - (TODO-RENAME-27 self #f) - (none) - ) :code (behavior () - (while #t - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior square-platform) plat-post) ) (defmethod deactivate square-platform ((obj square-platform)) (if (nonzero? (-> obj part2)) - (kill-and-free-particles (-> obj part2)) - ) + (kill-and-free-particles (-> obj part2)) + ) (if (nonzero? (-> obj part3)) - (kill-and-free-particles (-> obj part3)) - ) + (kill-and-free-particles (-> obj part3)) + ) (if (nonzero? (-> obj part4)) - (kill-and-free-particles (-> obj part4)) - ) + (kill-and-free-particles (-> obj part4)) + ) ((method-of-type process-drawable deactivate) obj) (none) ) (defmethod relocate square-platform ((obj square-platform) (arg0 int)) (if (nonzero? (-> obj part2)) - (&+! (-> obj part2) arg0) - ) + (&+! (-> obj part2) arg0) + ) (if (nonzero? (-> obj part3)) - (&+! (-> obj part3) arg0) - ) + (&+! (-> obj part3) arg0) + ) (if (nonzero? (-> obj part4)) - (&+! (-> obj part4) arg0) - ) + (&+! (-> obj part4) arg0) + ) (the-as - square-platform - ((the-as - (function baseplat int baseplat) - (find-parent-method square-platform 7) - ) - obj - arg0 + square-platform + ((the-as (function baseplat int baseplat) (find-parent-method square-platform 7)) obj arg0) ) - ) ) -(defmethod - init-from-entity! - square-platform - ((obj square-platform) (arg0 entity-actor)) +(defmethod init-from-entity! square-platform ((obj square-platform) (arg0 entity-actor)) (local-vars (sv-16 res-tag) (sv-32 res-tag)) (set! (-> obj pos-u) 0.0) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 -24576.0 0.0 32768.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 -24576.0 0.0 32768.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (set! (-> obj link) (new 'process 'actor-link-info obj)) (set! (-> obj plat-id) (actor-count-before (-> obj link))) @@ -610,53 +503,40 @@ (dummy-21 obj) (ja-channel-set! 1) (let ((s4-1 (-> obj skel root-channel 0))) - (joint-control-channel-group-eval! - s4-1 - (the-as art-joint-anim (-> obj draw art-group data 3)) - num-func-identity + (joint-control-channel-group-eval! + s4-1 + (the-as art-joint-anim (-> obj draw art-group data 3)) + num-func-identity + ) + (set! (-> s4-1 frame-num) 0.0) ) - (set! (-> s4-1 frame-num) 0.0) - ) (set! sv-16 (new 'static 'res-tag)) - (let* - ((v1-32 (res-lump-data (-> obj entity) 'distance pointer :tag-ptr (& sv-16))) - (f30-0 (if (and v1-32 (> (the-as int (-> sv-16 elt-count)) 0)) - (-> (the-as (pointer float) v1-32)) - -8192.0 - ) - ) - ) - (set! sv-32 (new 'static 'res-tag)) - (let* - ((v1-35 - (res-lump-data (-> obj entity) 'distance pointer :tag-ptr (& sv-32)) + (let* ((v1-32 (res-lump-data (-> obj entity) 'distance pointer :tag-ptr (& sv-16))) + (f30-0 (if (and v1-32 (> (the-as int (-> sv-16 elt-count)) 0)) + (-> (the-as (pointer float) v1-32)) + -8192.0 + ) + ) + ) + (set! sv-32 (new 'static 'res-tag)) + (let* ((v1-35 (res-lump-data (-> obj entity) 'distance pointer :tag-ptr (& sv-32))) + (f0-10 (if (and v1-35 (< 1 (the-as int (-> sv-32 elt-count)))) + (-> (the-as (pointer float) v1-35) 1) + 16384.0 + ) + ) + ) + (set! (-> obj down-pos quad) (-> obj root-override trans quad)) + (+! (-> obj down-pos y) f30-0) + (set! (-> obj up-pos quad) (-> obj root-override trans quad)) + (+! (-> obj up-pos y) f0-10) ) - (f0-10 (if (and v1-35 (< 1 (the-as int (-> sv-32 elt-count)))) - (-> (the-as (pointer float) v1-35) 1) - 16384.0 - ) - ) - ) - (set! (-> obj down-pos quad) (-> obj root-override trans quad)) - (+! (-> obj down-pos y) f30-0) - (set! (-> obj up-pos quad) (-> obj root-override trans quad)) - (+! (-> obj up-pos y) f0-10) ) - ) (set! (-> obj basetrans quad) (-> obj down-pos quad)) (set! (-> obj root-override trans quad) (-> obj basetrans quad)) - (set! - (-> obj part2) - (create-launch-control (-> *part-group-id-table* 437) obj) - ) - (set! - (-> obj part3) - (create-launch-control (-> *part-group-id-table* 438) obj) - ) - (set! - (-> obj part4) - (create-launch-control (-> *part-group-id-table* 439) obj) - ) + (set! (-> obj part2) (create-launch-control (-> *part-group-id-table* 437) obj)) + (set! (-> obj part3) (create-launch-control (-> *part-group-id-table* 438) obj)) + (set! (-> obj part4) (create-launch-control (-> *part-group-id-table* 439) obj)) (set! (-> obj water-entity) (entity-actor-lookup arg0 'alt-actor 0)) (ja-post) (dummy-47 (-> obj root-override)) @@ -667,252 +547,203 @@ (defstate square-platform-master-idle (square-platform-master) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('trigger) - (when (= (-> arg0 type) square-platform-button) - (set! - (-> self button-id) - (-> (the-as square-platform-button arg0) button-id) - ) - (logclear! (-> self mask) (process-mask actor-pause)) - (process-entity-status! self (entity-perm-status bit-3) #t) - (go square-platform-master-activate) + (case arg2 + (('trigger) + (when (= (-> arg0 type) square-platform-button) + (set! (-> self button-id) (-> (the-as square-platform-button arg0) button-id)) + (logclear! (-> self mask) (process-mask actor-pause)) + (process-entity-status! self (entity-perm-status bit-3) #t) + (go square-platform-master-activate) + ) ) ) ) - ) :code - (behavior () - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) - 0 - (none) - ) + (behavior () (logior! (-> self mask) (process-mask sleep-code)) (suspend) 0 (none)) ) (defstate square-platform-master-activate (square-platform-master) :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self wiggled?) #f) - (sleep (-> self ticker) (-> self timeout)) - (set! (-> self plat-id) -1) - (send-to-all (-> self link) 'trigger) - (set! (-> self plat-id) 0) - (let ((gp-0 1)) - (let ((v1-7 (-> self button-id))) - (cond - ((zero? v1-7) - (let* ((s5-0 (get-process *default-dead-pool* sunkencam #x4000)) - (a0-4 (when s5-0 - (let ((t9-3 (method-of-type sunkencam activate))) - (t9-3 - (the-as sunkencam s5-0) - self - 'sunkencam - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - s5-0 - pov-camera-init-by-other - (-> self root trans) - *sunkencam-sg* - "qbert-show-door-open" - 0 - #f - '() - ) - (-> s5-0 ppointer) - ) - ) - ) - (set! (-> (the-as sunkencam (-> a0-4 0)) seq) (the-as uint 3)) - ) - ) - ((= v1-7 1) - (let* ((gp-1 (get-process *default-dead-pool* sunkencam #x4000)) - (v1-13 (when gp-1 - (let ((t9-6 (method-of-type sunkencam activate))) - (t9-6 - (the-as sunkencam gp-1) - self - 'sunkencam - (the-as pointer #x70004000) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self wiggled?) #f) + (sleep (-> self ticker) (-> self timeout)) + (set! (-> self plat-id) -1) + (send-to-all (-> self link) 'trigger) + (set! (-> self plat-id) 0) + (let ((gp-0 1)) + (let ((v1-7 (-> self button-id))) + (cond + ((zero? v1-7) + (let* ((s5-0 (get-process *default-dead-pool* sunkencam #x4000)) + (a0-4 + (when s5-0 + (let ((t9-3 (method-of-type sunkencam activate))) + (t9-3 (the-as sunkencam s5-0) self 'sunkencam (the-as pointer #x70004000)) ) - ) (run-now-in-process - gp-1 - pov-camera-init-by-other - (-> self root trans) - *sunkencam-sg* - "qbert-show-door-open" - 0 - #f - '() - ) + s5-0 + pov-camera-init-by-other + (-> self root trans) + *sunkencam-sg* + "qbert-show-door-open" + 0 + #f + '() + ) + (-> s5-0 ppointer) + ) + ) + ) + (set! (-> (the-as sunkencam (-> a0-4 0)) seq) (the-as uint 3)) + ) + ) + ((= v1-7 1) + (let* ((gp-1 (get-process *default-dead-pool* sunkencam #x4000)) + (v1-13 + (when gp-1 + (let ((t9-6 (method-of-type sunkencam activate))) + (t9-6 (the-as sunkencam gp-1) self 'sunkencam (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-1 + pov-camera-init-by-other + (-> self root trans) + *sunkencam-sg* + "qbert-show-door-open" + 0 + #f + '() + ) (-> gp-1 ppointer) ) - ) - ) - (set! (-> (the-as sunkencam (-> v1-13 0)) seq) (the-as uint 4)) - ) - (set! gp-0 -1) - ) - ((= v1-7 2) - (let* ((s5-1 (get-process *default-dead-pool* sunkencam #x4000)) - (a0-17 (when s5-1 + ) + ) + (set! (-> (the-as sunkencam (-> v1-13 0)) seq) (the-as uint 4)) + ) + (set! gp-0 -1) + ) + ((= v1-7 2) + (let* ((s5-1 (get-process *default-dead-pool* sunkencam #x4000)) + (a0-17 + (when s5-1 (let ((t9-9 (method-of-type sunkencam activate))) - (t9-9 - (the-as sunkencam s5-1) - self - 'sunkencam - (the-as pointer #x70004000) + (t9-9 (the-as sunkencam s5-1) self 'sunkencam (the-as pointer #x70004000)) ) - ) (run-now-in-process - s5-1 - pov-camera-init-by-other - (-> self root trans) - *sunkencam-sg* - "qbert-show-door-open" - 0 - #f - '() - ) + s5-1 + pov-camera-init-by-other + (-> self root trans) + *sunkencam-sg* + "qbert-show-door-open" + 0 + #f + '() + ) (-> s5-1 ppointer) ) - ) - ) - (set! (-> (the-as sunkencam (-> a0-17 0)) seq) (the-as uint 5)) - ) - ) - ((= v1-7 3) - (let* ((gp-2 (get-process *default-dead-pool* sunkencam #x4000)) - (v1-24 (when gp-2 + ) + ) + (set! (-> (the-as sunkencam (-> a0-17 0)) seq) (the-as uint 5)) + ) + ) + ((= v1-7 3) + (let* ((gp-2 (get-process *default-dead-pool* sunkencam #x4000)) + (v1-24 + (when gp-2 (let ((t9-12 (method-of-type sunkencam activate))) - (t9-12 - (the-as sunkencam gp-2) - self - 'sunkencam - (the-as pointer #x70004000) + (t9-12 (the-as sunkencam gp-2) self 'sunkencam (the-as pointer #x70004000)) ) - ) (run-now-in-process - gp-2 - pov-camera-init-by-other - (-> self root trans) - *sunkencam-sg* - "qbert-show-door-open" - 0 - #f - '() - ) + gp-2 + pov-camera-init-by-other + (-> self root trans) + *sunkencam-sg* + "qbert-show-door-open" + 0 + #f + '() + ) (-> gp-2 ppointer) ) - ) - ) - (set! (-> (the-as sunkencam (-> v1-24 0)) seq) (the-as uint 6)) + ) + ) + (set! (-> (the-as sunkencam (-> v1-24 0)) seq) (the-as uint 6)) + ) + (set! gp-0 -1) + ) + ) ) - (set! gp-0 -1) - ) + (if (< gp-0 0) + (set! (-> self plat-id) 32) + ) + (set! (-> self plat-id-dir) gp-0) ) - ) - (if (< gp-0 0) - (set! (-> self plat-id) 32) - ) - (set! (-> self plat-id-dir) gp-0) + (none) ) - (none) - ) :exit (behavior () - (logior! (-> self mask) (process-mask actor-pause)) - (process-entity-status! self (entity-perm-status bit-3) #f) - (none) - ) + (logior! (-> self mask) (process-mask actor-pause)) + (process-entity-status! self (entity-perm-status bit-3) #f) + (none) + ) :trans (behavior () - (when (completed? (-> self ticker)) - (send-to-all (-> self link) 'untrigger) - (go square-platform-master-idle) - ) - (when (reached-delay? (-> self ticker) (-> self delay-til-wiggle)) - (when (not (-> self wiggled?)) - (set! (-> self wiggled?) #t) - (send-to-all (-> self link) 'bounce) - ) - ) - (when - (>= - (- - (-> *display* base-frame-counter) - (the-as int (-> self last-plat-activated-time)) + (when (completed? (-> self ticker)) + (send-to-all (-> self link) 'untrigger) + (go square-platform-master-idle) ) - 90 - ) - (set! - (-> self last-plat-activated-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (let ((v1-20 (-> self plat-id)) - (a0-5 (-> self plat-id-dir)) - (a1-3 (-> self plat-mask)) + (when (reached-delay? (-> self ticker) (-> self delay-til-wiggle)) + (when (not (-> self wiggled?)) + (set! (-> self wiggled?) #t) + (send-to-all (-> self link) 'bounce) + ) + ) + (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-plat-activated-time))) 90) + (set! (-> self last-plat-activated-time) (the-as uint (-> *display* base-frame-counter))) + (let ((v1-20 (-> self plat-id)) + (a0-5 (-> self plat-id-dir)) + (a1-3 (-> self plat-mask)) + ) + (while #t + (+! v1-20 a0-5) + (cond + ((<= v1-20 0) + (set! (-> self plat-id) 0) + (return #f) + ) + ((>= v1-20 32) + (set! (-> self plat-id) 32) + (return #f) + ) + (else + (when (logtest? a1-3 (ash 1 v1-20)) + (set! (-> self plat-id) v1-20) + (send-to-all (-> self link) 'trigger) + (return #f) + ) + ) + ) ) - (while #t - (+! v1-20 a0-5) - (cond - ((<= v1-20 0) - (set! (-> self plat-id) 0) - (return #f) ) - ((>= v1-20 32) - (set! (-> self plat-id) 32) - (return #f) - ) - (else - (when (logtest? a1-3 (ash 1 v1-20)) - (set! (-> self plat-id) v1-20) - (send-to-all (-> self link) 'trigger) - (return #f) - ) - ) - ) ) - ) + (none) ) - (none) - ) :code - (behavior () - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) - 0 - (none) - ) + (behavior () (logior! (-> self mask) (process-mask sleep-code)) (suspend) 0 (none)) ) -(defmethod - init-from-entity! - square-platform-master - ((obj square-platform-master) (arg0 entity-actor)) +(defmethod init-from-entity! square-platform-master ((obj square-platform-master) (arg0 entity-actor)) (set! (-> obj button-id) -1) (set! (-> obj plat-id) -1) (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) - (set! - (-> obj timeout) - (the-as - uint - (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 10.0))) - ) - ) + (set! (-> obj timeout) + (the-as uint (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 10.0)))) + ) (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) -120)) (set! (-> obj link) (new 'process 'actor-link-info obj)) - (set! - (-> obj plat-mask) - (the-as uint (get-matching-actor-type-mask (-> obj link) square-platform)) - ) + (set! (-> obj plat-mask) (the-as uint (get-matching-actor-type-mask (-> obj link) square-platform))) (go square-platform-master-idle) (none) ) diff --git a/goal_src/levels/sunken/sunken-fish.gc b/goal_src/levels/sunken/sunken-fish.gc index 105b6fe051..ac497f8602 100644 --- a/goal_src/levels/sunken/sunken-fish.gc +++ b/goal_src/levels/sunken/sunken-fish.gc @@ -37,6 +37,9 @@ (TODO-RENAME-26 (_type_) float 26) (TODO-RENAME-27 (_type_) float 27) ) + (:states + sunkenfisha-idle + ) ) @@ -69,21 +72,18 @@ (none) ) -(defmethod - TODO-RENAME-orbit?-21 - sunkenfisha - ((obj sunkenfisha) (arg0 vector) (arg1 float) (arg2 vector)) +(defmethod TODO-RENAME-orbit?-21 sunkenfisha ((obj sunkenfisha) (arg0 vector) (arg1 float) (arg2 vector)) (eval-path-curve! (-> obj path) arg0 arg1 'interp) (vector+! arg0 arg0 (-> obj path-trans-offset)) (let ((s2-0 (new 'stack-no-clear 'vector))) - (TODO-RENAME-14 (-> obj path) s2-0 arg1) - (let ((f0-2 (atan (-> s2-0 x) (-> s2-0 z))) - (s4-1 (new 'stack-no-clear 'vector)) - ) - (vector-rotate-around-y! s4-1 arg2 f0-2) - (vector+! arg0 arg0 s4-1) + (TODO-RENAME-14 (-> obj path) s2-0 arg1) + (let ((f0-2 (atan (-> s2-0 x) (-> s2-0 z))) + (s4-1 (new 'stack-no-clear 'vector)) + ) + (vector-rotate-around-y! s4-1 arg2 f0-2) + (vector+! arg0 arg0 s4-1) + ) ) - ) ) (defmethod TODO-RENAME-24 sunkenfisha ((obj sunkenfisha)) @@ -91,250 +91,160 @@ (s3-0 (new 'stack-no-clear 'matrix)) (gp-0 (new 'stack-no-clear 'vector)) ) - (vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset)) - (when (>= (* 4096.0 (-> *display* seconds-per-frame)) (vector-length s4-0)) - (until (< (* 16384.0 (-> *display* seconds-per-frame)) (vector-length s4-0)) - (set! - (-> obj targ-local-path-offset x) - (rand-vu-float-range - (- (-> obj max-local-path-offset x)) - (-> obj max-local-path-offset x) - ) + (vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset)) + (when (>= (* 4096.0 (-> *display* seconds-per-frame)) (vector-length s4-0)) + (until (< (* 16384.0 (-> *display* seconds-per-frame)) (vector-length s4-0)) + (set! (-> obj targ-local-path-offset x) + (rand-vu-float-range (- (-> obj max-local-path-offset x)) (-> obj max-local-path-offset x)) + ) + (set! (-> obj targ-local-path-offset y) + (rand-vu-float-range (- (-> obj max-local-path-offset y)) (-> obj max-local-path-offset y)) + ) + (vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset)) + ) ) - (set! - (-> obj targ-local-path-offset y) - (rand-vu-float-range - (- (-> obj max-local-path-offset y)) - (-> obj max-local-path-offset y) - ) + (vector-normalize! s4-0 1.0) + (matrix-from-two-vectors-max-angle-partial! + s3-0 + (-> obj local-path-offset-dir) + s4-0 + (* 16384.0 (-> *display* seconds-per-frame)) + 0.1 ) - (vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset)) - ) + (vector-matrix*! (-> obj local-path-offset-dir) (-> obj local-path-offset-dir) s3-0) + (vector-normalize! (-> obj local-path-offset-dir) 1.0) + (vector-float*! gp-0 (-> obj local-path-offset-dir) (* 4096.0 (-> *display* seconds-per-frame))) + (vector+! (-> obj local-path-offset) (-> obj local-path-offset) gp-0) ) - (vector-normalize! s4-0 1.0) - (matrix-from-two-vectors-max-angle-partial! - s3-0 - (-> obj local-path-offset-dir) - s4-0 - (* 16384.0 (-> *display* seconds-per-frame)) - 0.1 - ) - (vector-matrix*! - (-> obj local-path-offset-dir) - (-> obj local-path-offset-dir) - s3-0 - ) - (vector-normalize! (-> obj local-path-offset-dir) 1.0) - (vector-float*! - gp-0 - (-> obj local-path-offset-dir) - (* 4096.0 (-> *display* seconds-per-frame)) - ) - (vector+! (-> obj local-path-offset) (-> obj local-path-offset) gp-0) - ) ) (defmethod dummy-25 sunkenfisha ((obj sunkenfisha)) (let* ((f0-0 (-> obj path-speed)) (f1-1 - (seek - f0-0 - (-> obj targ-path-speed) - (* (-> obj path-speed-seek-speed) (-> *display* seconds-per-frame)) + (seek f0-0 (-> obj targ-path-speed) (* (-> obj path-speed-seek-speed) (-> *display* seconds-per-frame))) ) - ) ) - (set! (-> obj path-speed) f1-1) - (let - ((f30-0 - (+ - (-> obj path-u) - (* (-> obj path-dir) f1-1 (-> *display* seconds-per-frame)) - ) + (set! (-> obj path-speed) f1-1) + (let ((f30-0 (+ (-> obj path-u) (* (-> obj path-dir) f1-1 (-> *display* seconds-per-frame))))) + (cond + ((< f30-0 0.0) + (set! f30-0 (- f30-0)) + (TODO-RENAME-20 obj) + ) + ((< 1.0 f30-0) + (+! f30-0 (* 2.0 (- 1.0 f30-0))) + (TODO-RENAME-20 obj) + ) + ) + (set! (-> obj path-u) f30-0) ) - ) - (cond - ((< f30-0 0.0) - (set! f30-0 (- f30-0)) - (TODO-RENAME-20 obj) - ) - ((< 1.0 f30-0) - (+! f30-0 (* 2.0 (- 1.0 f30-0))) - (TODO-RENAME-20 obj) - ) - ) - (set! (-> obj path-u) f30-0) ) - ) (none) ) (defmethod TODO-RENAME-23 sunkenfisha ((obj sunkenfisha)) (let ((s5-0 (new 'stack-no-clear 'vector))) - (set-vector! - s5-0 - (- (vector-x-angle (-> obj root transv))) - (vector-y-angle (-> obj root transv)) - 0.0 - 1.0 + (set-vector! s5-0 (- (vector-x-angle (-> obj root transv))) (vector-y-angle (-> obj root transv)) 0.0 1.0) + (set! (-> obj facing-rot x) + (deg-seek-smooth (-> obj facing-rot x) (-> s5-0 x) (* 16384.0 (-> *display* seconds-per-frame)) 0.1) + ) + (set! (-> obj facing-rot y) + (deg-seek-smooth (-> obj facing-rot y) (-> s5-0 y) (* 32768.0 (-> *display* seconds-per-frame)) 0.1) + ) ) - (set! - (-> obj facing-rot x) - (deg-seek-smooth - (-> obj facing-rot x) - (-> s5-0 x) - (* 16384.0 (-> *display* seconds-per-frame)) - 0.1 - ) - ) - (set! - (-> obj facing-rot y) - (deg-seek-smooth - (-> obj facing-rot y) - (-> s5-0 y) - (* 32768.0 (-> *display* seconds-per-frame)) - 0.1 - ) - ) - ) (quaternion-zxy! (-> obj root quat) (-> obj facing-rot)) ) (defmethod TODO-RENAME-20 sunkenfisha ((obj sunkenfisha)) (set! (-> obj path-dir) (- (-> obj path-dir))) (set! (-> obj path-speed) 0.0) - (set! - (-> obj targ-path-speed) - (rand-vu-float-range - (-> obj path-normal-speed-lo) - (-> obj path-normal-speed-hi) - ) - ) - (set! - (-> obj change-path-dir-time) - (the-as - uint - (+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400)) - ) - ) - (set! - (-> obj targ-local-path-offset y) - (* 0.5 (+ (-> obj targ-local-path-offset y) (-> obj local-path-offset y))) - ) + (set! (-> obj targ-path-speed) + (rand-vu-float-range (-> obj path-normal-speed-lo) (-> obj path-normal-speed-hi)) + ) + (set! (-> obj change-path-dir-time) + (the-as uint (+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400))) + ) + (set! (-> obj targ-local-path-offset y) + (* 0.5 (+ (-> obj targ-local-path-offset y) (-> obj local-path-offset y))) + ) (let* ((f0-8 (-> obj local-path-offset x)) (f1-3 (- (-> obj targ-local-path-offset x) f0-8)) ) - (when (< (fabs f1-3) 12288.0) - (cond - ((>= f1-3 0.0) - (let ((f0-10 (fmin (+ 12288.0 f0-8) (-> obj max-local-path-offset x)))) - (set! (-> obj targ-local-path-offset x) f0-10) - f0-10 - ) + (when (< (fabs f1-3) 12288.0) + (cond + ((>= f1-3 0.0) + (let ((f0-10 (fmin (+ 12288.0 f0-8) (-> obj max-local-path-offset x)))) + (set! (-> obj targ-local-path-offset x) f0-10) + f0-10 + ) + ) + (else + (let ((f0-12 (fmax (+ -12288.0 f0-8) (- (-> obj max-local-path-offset x))))) + (set! (-> obj targ-local-path-offset x) f0-12) + f0-12 + ) + ) + ) ) - (else - (let - ((f0-12 (fmax (+ -12288.0 f0-8) (- (-> obj max-local-path-offset x))))) - (set! (-> obj targ-local-path-offset x) f0-12) - f0-12 - ) - ) - ) ) - ) ) (defstate sunkenfisha-idle (sunkenfisha) :trans (behavior () - (local-vars (at-0 int)) - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) + (local-vars (at-0 int)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (if (>= (-> *display* base-frame-counter) (the-as int (-> self change-path-dir-time))) + (TODO-RENAME-20 self) ) - (init-vf0-vector) - (if - (>= - (-> *display* base-frame-counter) - (the-as int (-> self change-path-dir-time)) + (TODO-RENAME-24 self) + (dummy-25 self) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (TODO-RENAME-orbit?-21 self gp-0 (-> self path-u) (-> self local-path-offset)) + (vector-! (-> self root transv) gp-0 (-> self root trans)) + (set! (-> self root trans quad) (-> gp-0 quad)) + ) + (let ((v1-16 (-> self root transv))) + (.lvf vf1 (&-> (-> self root transv) quad)) + (let ((f0-1 (-> *display* frames-per-second))) + (.mov at-0 f0-1) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> v1-16 quad) vf1) + ) + (TODO-RENAME-23 self) + (none) ) - (TODO-RENAME-20 self) - ) - (TODO-RENAME-24 self) - (dummy-25 self) - (let ((gp-0 (new 'stack-no-clear 'vector))) - (TODO-RENAME-orbit?-21 - self - gp-0 - (-> self path-u) - (-> self local-path-offset) - ) - (vector-! (-> self root transv) gp-0 (-> self root trans)) - (set! (-> self root trans quad) (-> gp-0 quad)) - ) - (let ((v1-16 (-> self root transv))) - (.lvf vf1 (&-> (-> self root transv) quad)) - (let ((f0-1 (-> *display* frames-per-second))) - (.mov at-0 f0-1) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> v1-16 quad) vf1) - ) - (TODO-RENAME-23 self) - (none) ) - ) :code (behavior () - (while #t - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 6)) - ) - (set! - (-> a0-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 6)) - data - 0 - length - ) - -1 + (while #t + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 6))) + (set! (-> a0-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 6)) data 0 length) -1)) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1))) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) ) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 param 0) - (the float (+ (-> a0-1 frame-group data 0 length) -1)) - ) - (set! (-> a0-1 param 1) 1.0) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior sunkenfisha) ja-post) ) @@ -344,30 +254,30 @@ (process-drawable-from-entity! obj (the-as entity-actor (-> obj entity))) (set-vector! (-> obj root scale) 6.0 6.0 6.0 1.0) (let ((v1-3 (rand-vu-int-count 3))) - (cond - ((zero? v1-3) - (initialize-skeleton obj *sunkenfisha-red-yellow-sg* '()) - ) - ((= v1-3 1) - (initialize-skeleton obj *sunkenfisha-yellow-blue-sg* '()) - ) - ((= v1-3 2) - (initialize-skeleton obj *sunkenfisha-yellow-eye-sg* '()) - ) + (cond + ((zero? v1-3) + (initialize-skeleton obj *sunkenfisha-red-yellow-sg* '()) + ) + ((= v1-3 1) + (initialize-skeleton obj *sunkenfisha-yellow-blue-sg* '()) + ) + ((= v1-3 2) + (initialize-skeleton obj *sunkenfisha-yellow-eye-sg* '()) + ) + ) ) - ) (ja-channel-set! 1) (let ((s5-0 (-> obj skel root-channel 0))) - (joint-control-channel-group-eval! - s5-0 - (the-as art-joint-anim (-> obj draw art-group data 6)) - num-func-identity + (joint-control-channel-group-eval! + s5-0 + (the-as art-joint-anim (-> obj draw art-group data 6)) + num-func-identity + ) + (let ((f0-4 0.0)) + (set! (-> s5-0 frame-num) f0-4) + f0-4 + ) ) - (let ((f0-4 0.0)) - (set! (-> s5-0 frame-num) f0-4) - f0-4 - ) - ) ) (defmethod TODO-RENAME-27 sunkenfisha ((obj sunkenfisha)) @@ -375,137 +285,77 @@ (vector-reset! (-> obj path-trans-offset)) (set! (-> obj path-u) (rand-vu-float-range 0.0 1.0)) (if (zero? (rand-vu-int-count 2)) - (set! (-> obj path-dir) 1.0) - (set! (-> obj path-dir) -1.0) - ) + (set! (-> obj path-dir) 1.0) + (set! (-> obj path-dir) -1.0) + ) (set-vector! (-> obj max-local-path-offset) 16384.0 28672.0 0.0 1.0) (set! sv-16 (new 'static 'res-tag)) - (let - ((v1-5 - (res-lump-data - (-> obj entity) - 'path-max-offset - (pointer float) - :tag-ptr - (& sv-16) + (let ((v1-5 (res-lump-data (-> obj entity) 'path-max-offset (pointer float) :tag-ptr (& sv-16)))) + (when v1-5 + (set! (-> obj max-local-path-offset x) (-> v1-5 0)) + (set! (-> obj max-local-path-offset y) (-> v1-5 1)) ) - ) ) - (when v1-5 - (set! (-> obj max-local-path-offset x) (-> v1-5 0)) - (set! (-> obj max-local-path-offset y) (-> v1-5 1)) - ) - ) (set-vector! (-> obj local-path-offset) 0.0 0.0 0.0 1.0) - (set! - (-> obj local-path-offset x) - (rand-vu-float-range - (- (-> obj max-local-path-offset x)) - (-> obj max-local-path-offset x) - ) - ) - (set! - (-> obj local-path-offset y) - (rand-vu-float-range - (- (-> obj max-local-path-offset y)) - (-> obj max-local-path-offset y) - ) - ) + (set! (-> obj local-path-offset x) + (rand-vu-float-range (- (-> obj max-local-path-offset x)) (-> obj max-local-path-offset x)) + ) + (set! (-> obj local-path-offset y) + (rand-vu-float-range (- (-> obj max-local-path-offset y)) (-> obj max-local-path-offset y)) + ) (set! (-> obj targ-local-path-offset quad) (-> obj local-path-offset quad)) - (set! - (-> obj targ-local-path-offset x) - (rand-vu-float-range - (- (-> obj max-local-path-offset x)) - (-> obj max-local-path-offset x) - ) - ) - (set! - (-> obj targ-local-path-offset y) - (rand-vu-float-range - (- (-> obj max-local-path-offset y)) - (-> obj max-local-path-offset y) - ) - ) - (vector-! - (-> obj local-path-offset-dir) - (-> obj targ-local-path-offset) - (-> obj local-path-offset) - ) + (set! (-> obj targ-local-path-offset x) + (rand-vu-float-range (- (-> obj max-local-path-offset x)) (-> obj max-local-path-offset x)) + ) + (set! (-> obj targ-local-path-offset y) + (rand-vu-float-range (- (-> obj max-local-path-offset y)) (-> obj max-local-path-offset y)) + ) + (vector-! (-> obj local-path-offset-dir) (-> obj targ-local-path-offset) (-> obj local-path-offset)) (vector-normalize! (-> obj local-path-offset-dir) 1.0) - (set! - (-> obj change-path-dir-time) - (the-as - uint - (+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400)) - ) - ) + (set! (-> obj change-path-dir-time) + (the-as uint (+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400))) + ) (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) - (logior! - (-> obj path flags) - (path-control-flag display draw-line draw-point draw-text) - ) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) (set! sv-32 (new 'static 'res-tag)) - (let - ((v1-16 - (res-lump-data - (-> obj entity) - 'path-trans-offset - (pointer float) - :tag-ptr - (& sv-32) + (let ((v1-16 (res-lump-data (-> obj entity) 'path-trans-offset (pointer float) :tag-ptr (& sv-32)))) + (when v1-16 + (+! (-> obj path-trans-offset x) (-> v1-16 0)) + (+! (-> obj path-trans-offset y) (-> v1-16 1)) + (+! (-> obj path-trans-offset z) (-> v1-16 2)) ) - ) ) - (when v1-16 - (+! (-> obj path-trans-offset x) (-> v1-16 0)) - (+! (-> obj path-trans-offset y) (-> v1-16 1)) - (+! (-> obj path-trans-offset z) (-> v1-16 2)) - ) - ) (if (< (-> obj path curve num-cverts) 2) - (go process-drawable-art-error "bad path") - ) + (go process-drawable-art-error "bad path") + ) (let ((f28-0 8192.0) (f30-0 26624.0) ) - (set! sv-48 (new 'static 'res-tag)) - (let - ((v1-23 - (res-lump-data (-> obj entity) 'speed (pointer float) :tag-ptr (& sv-48)) + (set! sv-48 (new 'static 'res-tag)) + (let ((v1-23 (res-lump-data (-> obj entity) 'speed (pointer float) :tag-ptr (& sv-48)))) + (when v1-23 + (set! f28-0 (-> v1-23 0)) + (set! f30-0 (-> v1-23 1)) + ) + ) + (let ((f0-35 (path-distance (-> obj path)))) + (set! (-> obj path-normal-speed-lo) (/ f28-0 f0-35)) + (set! (-> obj path-normal-speed-hi) (/ f30-0 f0-35)) ) - ) - (when v1-23 - (set! f28-0 (-> v1-23 0)) - (set! f30-0 (-> v1-23 1)) - ) ) - (let ((f0-35 (path-distance (-> obj path)))) - (set! (-> obj path-normal-speed-lo) (/ f28-0 f0-35)) - (set! (-> obj path-normal-speed-hi) (/ f30-0 f0-35)) - ) - ) - (set! - (-> obj path-speed-seek-speed) - (* 2.0 (- (-> obj path-normal-speed-hi) (-> obj path-normal-speed-lo))) - ) - (set! - (-> obj path-speed) - (rand-vu-float-range - (-> obj path-normal-speed-lo) - (-> obj path-normal-speed-hi) - ) - ) + (set! (-> obj path-speed-seek-speed) (* 2.0 (- (-> obj path-normal-speed-hi) (-> obj path-normal-speed-lo)))) + (set! (-> obj path-speed) (rand-vu-float-range (-> obj path-normal-speed-lo) (-> obj path-normal-speed-hi))) (set! (-> obj targ-path-speed) (-> obj path-speed)) (let ((s4-0 (new 'stack-no-clear 'vector))) - (TODO-RENAME-14 (-> obj path) s4-0 (-> obj path-u)) - (set-vector! (-> obj facing-rot) 0.0 (atan (-> s4-0 x) (-> s4-0 z)) 0.0 1.0) - ) - (when (< (-> obj path-dir) 0.0) - (let ((f0-52 (- (-> obj facing-rot y)))) - (set! (-> obj facing-rot y) f0-52) - f0-52 + (TODO-RENAME-14 (-> obj path) s4-0 (-> obj path-u)) + (set-vector! (-> obj facing-rot) 0.0 (atan (-> s4-0 x) (-> s4-0 z)) 0.0 1.0) + ) + (when (< (-> obj path-dir) 0.0) + (let ((f0-52 (- (-> obj facing-rot y)))) + (set! (-> obj facing-rot y) f0-52) + f0-52 + ) ) - ) ) (defbehavior sunkenfisha-init-by-other sunkenfisha ((arg0 entity)) @@ -519,38 +369,20 @@ (defmethod init-from-entity! sunkenfisha ((obj sunkenfisha) (arg0 entity-actor)) (TODO-RENAME-26 obj) (TODO-RENAME-27 obj) - (let - ((s5-0 - (+ - (res-lump-value - (-> obj entity) - 'count - uint128 - :default - (the-as uint128 1) - ) - -1 - ) - ) - ) - (while (> (the-as int s5-0) 0) - (let ((s4-0 (get-process *default-dead-pool* sunkenfisha #x4000))) - (when s4-0 - (let ((t9-4 (method-of-type sunkenfisha activate))) - (t9-4 - (the-as sunkenfisha s4-0) - obj - 'sunkenfisha - (the-as pointer #x70004000) + (let ((s5-0 (+ (res-lump-value (-> obj entity) 'count uint128 :default (the-as uint128 1)) -1))) + (while (> (the-as int s5-0) 0) + (let ((s4-0 (get-process *default-dead-pool* sunkenfisha #x4000))) + (when s4-0 + (let ((t9-4 (method-of-type sunkenfisha activate))) + (t9-4 (the-as sunkenfisha s4-0) obj 'sunkenfisha (the-as pointer #x70004000)) + ) + (run-now-in-process s4-0 sunkenfisha-init-by-other (-> obj entity)) + (-> s4-0 ppointer) + ) ) - ) - (run-now-in-process s4-0 sunkenfisha-init-by-other (-> obj entity)) - (-> s4-0 ppointer) + (+! s5-0 -1) ) - ) - (+! s5-0 -1) ) - ) (go sunkenfisha-idle) (none) ) diff --git a/goal_src/levels/sunken/sunken-obs.gc b/goal_src/levels/sunken/sunken-obs.gc index fa8ee77a22..52555e1bb6 100644 --- a/goal_src/levels/sunken/sunken-obs.gc +++ b/goal_src/levels/sunken/sunken-obs.gc @@ -37,162 +37,128 @@ :longest-edge (meters 0) ) -(set! - (-> *part-group-id-table* 436) - (new 'static 'sparticle-launch-group - :length 2 - :duration #xbb8 - :linger-duration #x5dc - :flags (sp-group-flag use-local-clock) - :name "group-side-to-side-plat" - :launcher - (new 'static 'inline-array sparticle-group-item 2 - (sp-item 1713 :fade-after (meters 60.0) :falloff-to (meters 60.0)) - (sp-item 1714 :fade-after (meters 160.0) :falloff-to (meters 160.0)) - ) - :bounds (new 'static 'sphere :w 32768.0) - ) - ) +(set! (-> *part-group-id-table* 436) (new 'static 'sparticle-launch-group + :length 2 + :duration #xbb8 + :linger-duration #x5dc + :flags (sp-group-flag use-local-clock) + :name "group-side-to-side-plat" + :launcher + (new 'static 'inline-array sparticle-group-item 2 + (sp-item 1713 :fade-after (meters 60.0) :falloff-to (meters 60.0)) + (sp-item 1714 :fade-after (meters 160.0) :falloff-to (meters 160.0)) + ) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) -(set! - (-> *part-id-table* 1713) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 16 - (sp-flt spt-num 4.0) - (sp-rnd-flt spt-x (meters -11.0) (meters 22.0) 1.0) - (sp-flt spt-y (meters 1.0)) - (sp-int spt-rot-x 5) - (sp-flt spt-r 5324.8) - (sp-flt spt-g 4096.0) - (sp-flt spt-b 3686.4) - (sp-flt spt-vel-y (meters 0.0033333334)) - (sp-flt spt-fade-b -16.383999) - (sp-int spt-timer 25) - (sp-cpuinfo-flags aux-list) - (sp-rnd-flt spt-conerot-x (degrees 140.0) (degrees 40.0) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-flt spt-conerot-radius (meters 3.0)) - (sp-flt spt-rotate-y (degrees 18.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1713) + (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 16 + (sp-flt spt-num 4.0) + (sp-rnd-flt spt-x (meters -11.0) (meters 22.0) 1.0) + (sp-flt spt-y (meters 1.0)) + (sp-int spt-rot-x 5) + (sp-flt spt-r 5324.8) + (sp-flt spt-g 4096.0) + (sp-flt spt-b 3686.4) + (sp-flt spt-vel-y (meters 0.0033333334)) + (sp-flt spt-fade-b -16.383999) + (sp-int spt-timer 25) + (sp-cpuinfo-flags aux-list) + (sp-rnd-flt spt-conerot-x (degrees 140.0) (degrees 40.0) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-flt spt-conerot-radius (meters 3.0)) + (sp-flt spt-rotate-y (degrees 18.0)) + (sp-end) + ) + ) + ) -(set! - (-> *part-id-table* 1714) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) - (sp-flt spt-num 6.0) - (sp-rnd-flt spt-x (meters -11.0) (meters 22.0) 1.0) - (sp-flt spt-y (meters 1.5)) - (sp-rnd-flt spt-scale-x (meters 2.0) (meters 1.0) 1.0) - (sp-copy-from-other spt-scale-y -4) - (sp-rnd-flt spt-g 0.0 64.0 1.0) - (sp-rnd-flt spt-b 128.0 128.0 1.0) - (sp-rnd-flt spt-a 16.0 32.0 1.0) - (sp-flt spt-vel-y (meters 0.01)) - (sp-flt spt-fade-g -0.42666668) - (sp-flt spt-fade-a -0.32) - (sp-flt spt-accel-y -0.13653333) - (sp-flt spt-friction 0.96) - (sp-int spt-timer 150) - (sp-cpuinfo-flags bit2 bit3) - (sp-rnd-flt spt-conerot-x (degrees 130.0) (degrees 100.00001) 1.0) - (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) - (sp-flt spt-conerot-radius (meters 3.0)) - (sp-flt spt-rotate-y (degrees 18.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 1714) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2)) + (sp-flt spt-num 6.0) + (sp-rnd-flt spt-x (meters -11.0) (meters 22.0) 1.0) + (sp-flt spt-y (meters 1.5)) + (sp-rnd-flt spt-scale-x (meters 2.0) (meters 1.0) 1.0) + (sp-copy-from-other spt-scale-y -4) + (sp-rnd-flt spt-g 0.0 64.0 1.0) + (sp-rnd-flt spt-b 128.0 128.0 1.0) + (sp-rnd-flt spt-a 16.0 32.0 1.0) + (sp-flt spt-vel-y (meters 0.01)) + (sp-flt spt-fade-g -0.42666668) + (sp-flt spt-fade-a -0.32) + (sp-flt spt-accel-y -0.13653333) + (sp-flt spt-friction 0.96) + (sp-int spt-timer 150) + (sp-cpuinfo-flags bit2 bit3) + (sp-rnd-flt spt-conerot-x (degrees 130.0) (degrees 100.00001) 1.0) + (sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0) + (sp-flt spt-conerot-radius (meters 3.0)) + (sp-flt spt-rotate-y (degrees 18.0)) + (sp-end) + ) + ) + ) (defmethod get-unlit-skel side-to-side-plat ((obj side-to-side-plat)) *side-to-side-plat-sg* ) (defmethod dummy-24 side-to-side-plat ((obj side-to-side-plat)) - (let - ((s5-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) default-collision-reaction) - (set! - (-> s5-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s5-0 1) - (let - ((s4-0 - (new - 'process - 'collide-shape-prim-mesh - s5-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s5-0 1) + (let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 3)) + (set! (-> s4-0 prim-core offense) 4) + (set! (-> s4-0 transform-index) 0) + (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 57344.0) + (set-root-prim! s5-0 s4-0) ) - ) - (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 3)) - (set! (-> s4-0 prim-core offense) 4) - (set! (-> s4-0 transform-index) 0) - (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 57344.0) - (set-root-prim! s5-0 s4-0) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (backup-collide-with-as s5-0) + (set! (-> obj root-override) s5-0) ) - (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) - (backup-collide-with-as s5-0) - (set! (-> obj root-override) s5-0) - ) 0 (none) ) (defmethod dummy-26 side-to-side-plat ((obj side-to-side-plat)) - (set! - (-> obj part-ry) - (+ 16384.0 (quaternion-y-angle (-> obj root-override quat))) - ) + (set! (-> obj part-ry) (+ 16384.0 (quaternion-y-angle (-> obj root-override quat)))) (none) ) (defmethod TODO-RENAME-25 side-to-side-plat ((obj side-to-side-plat)) (let ((v0-0 (create-launch-control (-> *part-group-id-table* 436) obj))) - (set! (-> obj part) v0-0) - (the-as sparticle-launch-group v0-0) - ) + (set! (-> obj part) v0-0) + (the-as sparticle-launch-group v0-0) + ) ) (defmethod dummy-20 side-to-side-plat ((obj side-to-side-plat)) (when (nonzero? (-> obj part)) - (set! - (-> *part-id-table* 1713 init-specs 14 initial-valuef) - (-> obj part-ry) + (set! (-> *part-id-table* 1713 init-specs 14 initial-valuef) (-> obj part-ry)) + (set! (-> *part-id-table* 1714 init-specs 19 initial-valuef) (-> obj part-ry)) + (spawn (-> obj part) (-> obj root-override trans)) ) - (set! - (-> *part-id-table* 1714 init-specs 19 initial-valuef) - (-> obj part-ry) - ) - (spawn (-> obj part) (-> obj root-override trans)) - ) (none) ) (deftype sunkencam (pov-camera) - ((ppointer-override (pointer sunkencam) :score 100 :offset 24) - (seq uint64 :offset-assert 224) + ((ppointer-override (pointer sunkencam) :offset 24) + (seq uint64 :offset-assert 224) ) + :heap-base #x80 :method-count-assert 30 :size-assert #xe8 - :heap-base #x80 :flag-assert #x1e008000e8 ) @@ -213,491 +179,254 @@ (defstate pov-camera-playing (sunkencam) :virtual #t :exit - (behavior () - (set! (-> *screen-filter* draw?) #f) - (none) - ) + (behavior () (set! (-> *screen-filter* draw?) #f) (none)) :code (behavior () - (let ((v1-0 (-> self seq))) - (cond - ((zero? v1-0) - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (let ((v1-0 (-> self seq))) + (cond + ((zero? v1-0) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) ) - -1 - ) - ) - ) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 param 0) - (the float (+ (-> a0-1 frame-group data 0 length) -1)) - ) - (set! (-> a0-1 param 1) 1.0) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 frame-group) - (the-as art-joint-anim (-> self draw art-group data 6)) - ) - (set! - (-> a0-3 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 6)) - data - 0 - length + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1))) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) - ) - ) - (set! (-> a0-3 param 1) 1.0) - (set! (-> a0-3 frame-num) 0.0) - (joint-control-channel-group! - a0-3 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 param 0) - (the float (+ (-> a0-4 frame-group data 0 length) -1)) - ) - (set! (-> a0-4 param 1) 1.0) - (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((v1-45 *screen-filter*)) - (set! (-> v1-45 draw?) #t) - (set! (-> v1-45 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) - ) - (set-blackout-frames 30) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 frame-group) - (the-as art-joint-anim (-> self draw art-group data 7)) - ) - (set! - (-> a0-9 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 7)) - data - 0 - length + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 6))) + (set! (-> a0-3 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 6)) data 0 length) -1)) + ) + (set! (-> a0-3 param 1) 1.0) + (set! (-> a0-3 frame-num) 0.0) + (joint-control-channel-group! a0-3 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!) ) - -1 - ) - ) - ) - (set! (-> a0-9 param 1) 1.0) - (set! (-> a0-9 frame-num) 0.0) - (joint-control-channel-group! - a0-9 - (the-as art-joint-anim (-> self draw art-group data 7)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 param 0) - (the float (+ (-> a0-10 frame-group data 0 length) -1)) - ) - (set! (-> a0-10 param 1) 1.0) - (joint-control-channel-group-eval! - a0-10 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (set-blackout-frames 150) - (let ((gp-0 2)) - (let ((a0-13 (-> self skel root-channel 0))) - (set! - (-> a0-13 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - (set! - (-> a0-13 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 8)) - data - 0 - length - ) - -1 + (until (ja-done? 0) + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-seek!) + ) ) + (let ((v1-45 *screen-filter*)) + (set! (-> v1-45 draw?) #t) + (set! (-> v1-45 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) + ) + (set-blackout-frames 30) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 7))) + (set! (-> a0-9 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 7)) data 0 length) -1)) + ) + (set! (-> a0-9 param 1) 1.0) + (set! (-> a0-9 frame-num) 0.0) + (joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 7)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1))) + (set! (-> a0-10 param 1) 1.0) + (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (set-blackout-frames 150) + (let ((gp-0 2)) + (let ((a0-13 (-> self skel root-channel 0))) + (set! (-> a0-13 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + (set! (-> a0-13 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 8)) data 0 length) -1)) + ) + (set! (-> a0-13 param 1) 1.0) + (set! (-> a0-13 frame-num) 0.0) + (joint-control-channel-group! a0-13 (the-as art-joint-anim (-> self draw art-group data 8)) num-func-seek!) + ) + (until (ja-done? 0) + (+! gp-0 -1) + (if (zero? gp-0) + (set! (-> *screen-filter* draw?) #f) + ) + (suspend) + (let ((a0-14 (-> self skel root-channel 0))) + (set! (-> a0-14 param 0) (the float (+ (-> a0-14 frame-group data 0 length) -1))) + (set! (-> a0-14 param 1) 1.0) + (joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (set-blackout-frames 30) + ) + ((= v1-0 1) + (let ((a0-18 (-> self skel root-channel 0))) + (set! (-> a0-18 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + (set! (-> a0-18 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1)) + ) + (set! (-> a0-18 param 1) 1.0) + (set! (-> a0-18 frame-num) 0.0) + (joint-control-channel-group! a0-18 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-19 (-> self skel root-channel 0))) + (set! (-> a0-19 param 0) (the float (+ (-> a0-19 frame-group data 0 length) -1))) + (set! (-> a0-19 param 1) 1.0) + (joint-control-channel-group-eval! a0-19 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((v1-116 *screen-filter*)) + (set! (-> v1-116 draw?) #t) + (set! (-> v1-116 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) + ) + (set-blackout-frames 30) + (let ((a0-24 (-> self skel root-channel 0))) + (set! (-> a0-24 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> a0-24 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> a0-24 param 1) 1.0) + (set! (-> a0-24 frame-num) 0.0) + (joint-control-channel-group! a0-24 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-25 (-> self skel root-channel 0))) + (set! (-> a0-25 param 0) (the float (+ (-> a0-25 frame-group data 0 length) -1))) + (set! (-> a0-25 param 1) 1.0) + (joint-control-channel-group-eval! a0-25 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (set-blackout-frames 30) + (let ((gp-1 2)) + (let ((a0-28 (-> self skel root-channel 0))) + (set! (-> a0-28 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) + (set! (-> a0-28 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 11)) data 0 length) -1)) + ) + (set! (-> a0-28 param 1) 1.0) + (set! (-> a0-28 frame-num) 0.0) + (joint-control-channel-group! a0-28 (the-as art-joint-anim (-> self draw art-group data 11)) num-func-seek!) + ) + (until (ja-done? 0) + (+! gp-1 -1) + (if (zero? gp-1) + (set! (-> *screen-filter* draw?) #f) + ) + (suspend) + (let ((a0-29 (-> self skel root-channel 0))) + (set! (-> a0-29 param 0) (the float (+ (-> a0-29 frame-group data 0 length) -1))) + (set! (-> a0-29 param 1) 1.0) + (joint-control-channel-group-eval! a0-29 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (let ((gp-2 *camera*)) + (send-event gp-2 'teleport) + (send-event gp-2 'change-state cam-fixed 0) + (send-event gp-2 'change-state *camera-base-mode* 0) + ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (suspend) + ) + ) + ((= v1-0 2) + (let ((a0-36 (-> self skel root-channel 0))) + (set! (-> a0-36 frame-group) (the-as art-joint-anim (-> self draw art-group data 16))) + (set! (-> a0-36 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 16)) data 0 length) -1)) + ) + (set! (-> a0-36 param 1) 1.0) + (set! (-> a0-36 frame-num) 0.0) + (joint-control-channel-group! a0-36 (the-as art-joint-anim (-> self draw art-group data 16)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-37 (-> self skel root-channel 0))) + (set! (-> a0-37 param 0) (the float (+ (-> a0-37 frame-group data 0 length) -1))) + (set! (-> a0-37 param 1) 1.0) + (joint-control-channel-group-eval! a0-37 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-39 (-> self skel root-channel 0))) + (set! (-> a0-39 frame-group) (the-as art-joint-anim (-> self draw art-group data 17))) + (set! (-> a0-39 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 17)) data 0 length) -1)) + ) + (set! (-> a0-39 param 1) 0.67) + (set! (-> a0-39 frame-num) 0.0) + (joint-control-channel-group! a0-39 (the-as art-joint-anim (-> self draw art-group data 17)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-40 (-> self skel root-channel 0))) + (set! (-> a0-40 param 0) (the float (+ (-> a0-40 frame-group data 0 length) -1))) + (set! (-> a0-40 param 1) 0.67) + (joint-control-channel-group-eval! a0-40 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (pov-camera-play-and-reposition + (the-as joint-anim-compressed (-> self draw art-group data 18)) + (new 'static 'vector :x 2449408.0 :y -1822720.0 :z -7299072.0) + 0.67 + ) + ) + ((= v1-0 3) + (ambient-hint-spawn "gamcam34" (the-as vector #f) *entity-pool* 'camera) + (pov-camera-play-and-reposition + (the-as joint-anim-compressed (-> self draw art-group data 12)) + (new 'static 'vector :x 2707456.0 :y -630784.0 :z -6635520.0) + 1.0 + ) + ) + ((= v1-0 4) + (ambient-hint-spawn "gamcam35" (the-as vector #f) *entity-pool* 'camera) + (pov-camera-play-and-reposition + (the-as joint-anim-compressed (-> self draw art-group data 13)) + (new 'static 'vector :x 2834432.0 :y -634880.0 :z -6811648.0) + 1.3 + ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (suspend) + ) + ) + ((= v1-0 5) + (ambient-hint-spawn "gamcam37" (the-as vector #f) *entity-pool* 'camera) + (pov-camera-play-and-reposition + (the-as joint-anim-compressed (-> self draw art-group data 14)) + (new 'static 'vector :x 2695168.0 :y -544768.0 :z -7077888.0) + 1.0 + ) + ) + ((= v1-0 6) + (ambient-hint-spawn "gamcam36" (the-as vector #f) *entity-pool* 'camera) + (pov-camera-play-and-reposition + (the-as joint-anim-compressed (-> self draw art-group data 15)) + (new 'static 'vector :x 2482176.0 :y -516096.0 :z -6922240.0) + 1.0 + ) + ) + (else + (suspend) + 0 ) - ) - (set! (-> a0-13 param 1) 1.0) - (set! (-> a0-13 frame-num) 0.0) - (joint-control-channel-group! - a0-13 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-seek! - ) ) - (until (ja-done? 0) - (+! gp-0 -1) - (if (zero? gp-0) - (set! (-> *screen-filter* draw?) #f) - ) - (suspend) - (let ((a0-14 (-> self skel root-channel 0))) - (set! - (-> a0-14 param 0) - (the float (+ (-> a0-14 frame-group data 0 length) -1)) - ) - (set! (-> a0-14 param 1) 1.0) - (joint-control-channel-group-eval! - a0-14 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (set-blackout-frames 30) ) - ((= v1-0 1) - (let ((a0-18 (-> self skel root-channel 0))) - (set! - (-> a0-18 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - (set! - (-> a0-18 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 9)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-18 param 1) 1.0) - (set! (-> a0-18 frame-num) 0.0) - (joint-control-channel-group! - a0-18 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-19 (-> self skel root-channel 0))) - (set! - (-> a0-19 param 0) - (the float (+ (-> a0-19 frame-group data 0 length) -1)) - ) - (set! (-> a0-19 param 1) 1.0) - (joint-control-channel-group-eval! - a0-19 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((v1-116 *screen-filter*)) - (set! (-> v1-116 draw?) #t) - (set! (-> v1-116 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) - ) - (set-blackout-frames 30) - (let ((a0-24 (-> self skel root-channel 0))) - (set! - (-> a0-24 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> a0-24 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-24 param 1) 1.0) - (set! (-> a0-24 frame-num) 0.0) - (joint-control-channel-group! - a0-24 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-25 (-> self skel root-channel 0))) - (set! - (-> a0-25 param 0) - (the float (+ (-> a0-25 frame-group data 0 length) -1)) - ) - (set! (-> a0-25 param 1) 1.0) - (joint-control-channel-group-eval! - a0-25 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (set-blackout-frames 30) - (let ((gp-1 2)) - (let ((a0-28 (-> self skel root-channel 0))) - (set! - (-> a0-28 frame-group) - (the-as art-joint-anim (-> self draw art-group data 11)) - ) - (set! - (-> a0-28 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 11)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-28 param 1) 1.0) - (set! (-> a0-28 frame-num) 0.0) - (joint-control-channel-group! - a0-28 - (the-as art-joint-anim (-> self draw art-group data 11)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (+! gp-1 -1) - (if (zero? gp-1) - (set! (-> *screen-filter* draw?) #f) - ) - (suspend) - (let ((a0-29 (-> self skel root-channel 0))) - (set! - (-> a0-29 param 0) - (the float (+ (-> a0-29 frame-group data 0 length) -1)) - ) - (set! (-> a0-29 param 1) 1.0) - (joint-control-channel-group-eval! - a0-29 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (let ((gp-2 *camera*)) - (send-event gp-2 'teleport) - (send-event gp-2 'change-state cam-fixed 0) - (send-event gp-2 'change-state *camera-base-mode* 0) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) - (suspend) - ) - ) - ((= v1-0 2) - (let ((a0-36 (-> self skel root-channel 0))) - (set! - (-> a0-36 frame-group) - (the-as art-joint-anim (-> self draw art-group data 16)) - ) - (set! - (-> a0-36 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 16)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-36 param 1) 1.0) - (set! (-> a0-36 frame-num) 0.0) - (joint-control-channel-group! - a0-36 - (the-as art-joint-anim (-> self draw art-group data 16)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-37 (-> self skel root-channel 0))) - (set! - (-> a0-37 param 0) - (the float (+ (-> a0-37 frame-group data 0 length) -1)) - ) - (set! (-> a0-37 param 1) 1.0) - (joint-control-channel-group-eval! - a0-37 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-39 (-> self skel root-channel 0))) - (set! - (-> a0-39 frame-group) - (the-as art-joint-anim (-> self draw art-group data 17)) - ) - (set! - (-> a0-39 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 17)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-39 param 1) 0.67) - (set! (-> a0-39 frame-num) 0.0) - (joint-control-channel-group! - a0-39 - (the-as art-joint-anim (-> self draw art-group data 17)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-40 (-> self skel root-channel 0))) - (set! - (-> a0-40 param 0) - (the float (+ (-> a0-40 frame-group data 0 length) -1)) - ) - (set! (-> a0-40 param 1) 0.67) - (joint-control-channel-group-eval! - a0-40 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (pov-camera-play-and-reposition - (the-as joint-anim-compressed (-> self draw art-group data 18)) - (new 'static 'vector :x 2449408.0 :y -1822720.0 :z -7299072.0) - 0.67 - ) - ) - ((= v1-0 3) - (ambient-hint-spawn "gamcam34" (the-as vector #f) *entity-pool* 'camera) - (pov-camera-play-and-reposition - (the-as joint-anim-compressed (-> self draw art-group data 12)) - (new 'static 'vector :x 2707456.0 :y -630784.0 :z -6635520.0) - 1.0 - ) - ) - ((= v1-0 4) - (ambient-hint-spawn "gamcam35" (the-as vector #f) *entity-pool* 'camera) - (pov-camera-play-and-reposition - (the-as joint-anim-compressed (-> self draw art-group data 13)) - (new 'static 'vector :x 2834432.0 :y -634880.0 :z -6811648.0) - 1.3 - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) - (suspend) - ) - ) - ((= v1-0 5) - (ambient-hint-spawn "gamcam37" (the-as vector #f) *entity-pool* 'camera) - (pov-camera-play-and-reposition - (the-as joint-anim-compressed (-> self draw art-group data 14)) - (new 'static 'vector :x 2695168.0 :y -544768.0 :z -7077888.0) - 1.0 - ) - ) - ((= v1-0 6) - (ambient-hint-spawn "gamcam36" (the-as vector #f) *entity-pool* 'camera) - (pov-camera-play-and-reposition - (the-as joint-anim-compressed (-> self draw art-group data 15)) - (new 'static 'vector :x 2482176.0 :y -516096.0 :z -6922240.0) - 1.0 - ) - ) - (else - (suspend) - 0 - ) - ) + (go-virtual pov-camera-done-playing) + (none) ) - (go-virtual pov-camera-done-playing) - (none) - ) ) (deftype seaweed (process-drawable) @@ -707,6 +436,9 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + seaweed-idle + ) ) ;; NOTE - manually added @@ -723,69 +455,36 @@ (defstate seaweed-idle (seaweed) :code (behavior () - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 param 0) - (the float (+ (-> a0-0 frame-group data 0 length) -1)) - ) - (set! (-> a0-0 param 1) (-> self anim-speed)) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (while (not (ja-done? 0)) - (suspend) - (ja-eval) - ) - (while #t - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 2)) + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 param 0) (the float (+ (-> a0-0 frame-group data 0 length) -1))) + (set! (-> a0-0 param 1) (-> self anim-speed)) + (joint-control-channel-group! a0-0 (the-as art-joint-anim #f) num-func-seek!) ) - (set! - (-> a0-2 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 2)) - data - 0 - length - ) - -1 + (while (not (ja-done? 0)) + (suspend) + (ja-eval) + ) + (while #t + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) + (set! (-> a0-2 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) + ) + (set! (-> a0-2 param 1) (-> self anim-speed)) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1))) + (set! (-> a0-3 param 1) (-> self anim-speed)) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) ) - (set! (-> a0-2 param 1) (-> self anim-speed)) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 2)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 param 0) - (the float (+ (-> a0-3 frame-group data 0 length) -1)) - ) - (set! (-> a0-3 param 1) (-> self anim-speed)) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior seaweed) ja-post) ) @@ -796,28 +495,25 @@ (initialize-skeleton obj *seaweed-sg* '()) (ja-channel-set! 1) (let ((s5-1 (-> obj skel root-channel 0))) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim (-> obj draw art-group data 2)) - num-func-identity - ) - (set! - (-> s5-1 frame-num) - (rand-vu-float-range - 0.0 - (the float (+ (-> (if (> (-> obj skel active-channels) 0) - (-> obj skel root-channel 0 frame-group) - ) - data - 0 - length - ) - -1 - ) + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> obj draw art-group data 2)) + num-func-identity ) - ) + (set! (-> s5-1 frame-num) + (rand-vu-float-range 0.0 (the float (+ (-> (if (> (-> obj skel active-channels) 0) + (-> obj skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + ) ) - ) (set! (-> obj anim-speed) (rand-vu-float-range 0.2 0.4)) (set! *seaweed* obj) (go seaweed-idle) diff --git a/goal_src/levels/sunken/target-tube.gc b/goal_src/levels/sunken/target-tube.gc index 3d3328d4fb..24fd29f165 100644 --- a/goal_src/levels/sunken/target-tube.gc +++ b/goal_src/levels/sunken/target-tube.gc @@ -7,10 +7,6 @@ (define-extern *tube-surface* surface) ;; unknown type -(define-extern target-tube-hit (state handle attack-info target)) ;; unknown type -(define-extern target-tube-jump (state float float target)) ;; unknown type -(define-extern target-tube-death (state symbol target)) ;; unknown type -(define-extern target-tube (state target)) ;; unknown type ;; DECOMP BEGINS diff --git a/goal_src/levels/sunken/wall-plat.gc b/goal_src/levels/sunken/wall-plat.gc index b13764ad9c..0a8344a048 100644 --- a/goal_src/levels/sunken/wall-plat.gc +++ b/goal_src/levels/sunken/wall-plat.gc @@ -6,11 +6,6 @@ ;; dgos: L1, SUN, SUNKEN (declare-type wall-plat process-drawable) -(define-extern wall-plat-sync-idle (state wall-plat)) ;; unknown type -(define-extern wall-plat-retracted (state wall-plat)) ;; unknown type -(define-extern wall-plat-retracting (state wall-plat)) ;; unknown type -(define-extern wall-plat-extended (state wall-plat)) ;; unknown type -(define-extern wall-plat-extending (state wall-plat)) ;; unknown type ;; DECOMP BEGINS @@ -26,6 +21,13 @@ :method-count-assert 20 :size-assert #xf0 :flag-assert #x14008000f0 + (:states + wall-plat-extended + wall-plat-extending + wall-plat-retracted + wall-plat-retracting + wall-plat-sync-idle + ) ) @@ -39,162 +41,114 @@ (defstate wall-plat-retracted (wall-plat) :event - (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('trigger) - (go wall-plat-extending) - ) - ) - ) + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 + (('trigger) + (go wall-plat-extending) + ) + ) + ) :code (behavior () - (set! (-> self extended-amount) 0.0) - (TODO-RENAME-30 (-> self root-override) (-> self in-trans)) - (transform-post) - (clear-collide-with-as (-> self root-override)) - (while #t - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) + (set! (-> self extended-amount) 0.0) + (TODO-RENAME-30 (-> self root-override) (-> self in-trans)) + (transform-post) + (clear-collide-with-as (-> self root-override)) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) ) (defstate wall-plat-extending (wall-plat) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (when (= v1-0 'touch) - (send-event arg0 'no-look-around 450) - #f - ) - ) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'touch) + (send-event arg0 'no-look-around 450) + #f + ) + ) + ) ) - ) :enter - (behavior () - (sound-play-by-name - (static-sound-name "wall-plat") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (none) - ) + (behavior () (sound-play-by-name (static-sound-name "wall-plat") (new-sound-id) 1024 0 0 1 #t) (none)) :trans (the-as (function none :behavior wall-plat) rider-trans) :code (behavior () - (restore-collide-with-as (-> self root-override)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while #t - (set! - (-> self extended-amount) - (seek - (-> self extended-amount) - 1.0 - (* 2.5 (-> *display* seconds-per-frame)) + (restore-collide-with-as (-> self root-override)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (while #t + (set! (-> self extended-amount) (seek (-> self extended-amount) 1.0 (* 2.5 (-> *display* seconds-per-frame)))) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector-lerp! gp-0 (-> self in-trans) (-> self out-trans) (-> self extended-amount)) + (TODO-RENAME-30 (-> self root-override) gp-0) + ) + (suspend) + (if (= (-> self extended-amount) 1.0) + (go wall-plat-extended) + ) ) - ) - (let ((gp-0 (new 'stack-no-clear 'vector))) - (vector-lerp! - gp-0 - (-> self in-trans) - (-> self out-trans) - (-> self extended-amount) - ) - (TODO-RENAME-30 (-> self root-override) gp-0) - ) - (suspend) - (if (= (-> self extended-amount) 1.0) - (go wall-plat-extended) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior wall-plat) rider-post) ) (defstate wall-plat-extended (wall-plat) :event - (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('untrigger) - (go wall-plat-retracting) - ) - ) - ) + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 + (('untrigger) + (go wall-plat-retracting) + ) + ) + ) :code (behavior () - (set! (-> self extended-amount) 1.0) - (TODO-RENAME-30 (-> self root-override) (-> self out-trans)) - (transform-post) - (while #t - (logior! (-> self mask) (process-mask sleep-code)) - (suspend) + (set! (-> self extended-amount) 1.0) + (TODO-RENAME-30 (-> self root-override) (-> self out-trans)) + (transform-post) + (while #t + (logior! (-> self mask) (process-mask sleep-code)) + (suspend) + ) + (none) ) - (none) - ) ) (defstate wall-plat-retracting (wall-plat) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (when (= v1-0 'touch) - (send-event arg0 'no-look-around 450) - #f - ) - ) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'touch) + (send-event arg0 'no-look-around 450) + #f + ) + ) + ) ) - ) :enter - (behavior () - (sound-play-by-name - (static-sound-name "wall-plat") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t - ) - (none) - ) + (behavior () (sound-play-by-name (static-sound-name "wall-plat") (new-sound-id) 1024 0 0 1 #t) (none)) :trans (the-as (function none :behavior wall-plat) rider-trans) :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while #t - (set! - (-> self extended-amount) - (seek - (-> self extended-amount) - 0.0 - (* 2.5 (-> *display* seconds-per-frame)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (while #t + (set! (-> self extended-amount) (seek (-> self extended-amount) 0.0 (* 2.5 (-> *display* seconds-per-frame)))) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector-lerp! gp-0 (-> self in-trans) (-> self out-trans) (-> self extended-amount)) + (TODO-RENAME-30 (-> self root-override) gp-0) + ) + (suspend) + (if (= (-> self extended-amount) 0.0) + (go wall-plat-retracted) + ) ) - ) - (let ((gp-0 (new 'stack-no-clear 'vector))) - (vector-lerp! - gp-0 - (-> self in-trans) - (-> self out-trans) - (-> self extended-amount) - ) - (TODO-RENAME-30 (-> self root-override) gp-0) - ) - (suspend) - (if (= (-> self extended-amount) 0.0) - (go wall-plat-retracted) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior wall-plat) rider-post) ) @@ -202,66 +156,52 @@ (defstate wall-plat-sync-idle (wall-plat) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (when (= v1-0 'touch) - (send-event arg0 'no-look-around 450) - #f - ) - ) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'touch) + (send-event arg0 'no-look-around 450) + #f + ) + ) + ) ) - ) :enter - (behavior () - (logclear! (-> self mask) (process-mask actor-pause)) - (none) - ) + (behavior () (logclear! (-> self mask) (process-mask actor-pause)) (none)) :exit - (behavior () - (logior! (-> self mask) (process-mask actor-pause)) - (none) - ) + (behavior () (logior! (-> self mask) (process-mask actor-pause)) (none)) :trans (the-as (function none :behavior wall-plat) rider-trans) :code (behavior () - (let ((gp-0 #f)) - (while #t - (let ((f30-0 (get-current-phase-with-mirror (-> self sync)))) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (vector-lerp! s5-0 (-> self in-trans) (-> self out-trans) f30-0) - (TODO-RENAME-30 (-> self root-override) s5-0) - ) - (cond - ((= f30-0 0.0) - (set! gp-0 #f) - (clear-collide-with-as (-> self root-override)) - ) - ((= f30-0 1.0) - (set! gp-0 #f) - (restore-collide-with-as (-> self root-override)) - ) - (else - (when (not gp-0) - (sound-play-by-name - (static-sound-name "wall-plat") - (new-sound-id) - 1024 - 0 - 0 - 1 - #t + (let ((gp-0 #f)) + (while #t + (let ((f30-0 (get-current-phase-with-mirror (-> self sync)))) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (vector-lerp! s5-0 (-> self in-trans) (-> self out-trans) f30-0) + (TODO-RENAME-30 (-> self root-override) s5-0) + ) + (cond + ((= f30-0 0.0) + (set! gp-0 #f) + (clear-collide-with-as (-> self root-override)) + ) + ((= f30-0 1.0) + (set! gp-0 #f) + (restore-collide-with-as (-> self root-override)) + ) + (else + (when (not gp-0) + (sound-play-by-name (static-sound-name "wall-plat") (new-sound-id) 1024 0 0 1 #t) + (set! gp-0 #t) + ) + (restore-collide-with-as (-> self root-override)) + ) + ) ) - (set! gp-0 #t) - ) - (restore-collide-with-as (-> self root-override)) + (suspend) ) - ) ) - (suspend) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior wall-plat) rider-post) ) @@ -269,81 +209,60 @@ (defmethod init-from-entity! wall-plat ((obj wall-plat) (arg0 entity-actor)) (set! (-> obj extended-amount) 0.0) (set! (-> obj mask) (logior (process-mask platform) (-> obj mask))) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 19)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 2) + (set-vector! (-> s3-0 local-sphere) 0.0 -6144.0 -12288.0 19456.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 19)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 2) - (set-vector! (-> s3-0 local-sphere) 0.0 -6144.0 -12288.0 19456.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *wall-plat-sg* '()) (logior! (-> obj skel status) 1) - (set! - (-> obj use-sync?) - (load-params! (-> obj sync) obj (the-as uint 1500) 0.0 0.2 0.2) - ) + (set! (-> obj use-sync?) (load-params! (-> obj sync) obj (the-as uint 1500) 0.0 0.2 0.2)) (let ((f30-0 (quaternion-y-angle (-> obj root-override quat))) (s4-1 (new 'stack-no-clear 'vector)) ) - (set-vector! s4-1 0.0 0.0 (+ 1638.4 (res-lump-float arg0 'tunemeters)) 1.0) - (vector-rotate-around-y! s4-1 s4-1 f30-0) - (vector+! (-> obj out-trans) (-> obj root-override trans) s4-1) - (set-vector! s4-1 0.0 0.0 20480.0 1.0) - (vector-rotate-around-y! s4-1 s4-1 f30-0) - (vector+! (-> obj in-trans) (-> obj out-trans) s4-1) - ) + (set-vector! s4-1 0.0 0.0 (+ 1638.4 (res-lump-float arg0 'tunemeters)) 1.0) + (vector-rotate-around-y! s4-1 s4-1 f30-0) + (vector+! (-> obj out-trans) (-> obj root-override trans) s4-1) + (set-vector! s4-1 0.0 0.0 20480.0 1.0) + (vector-rotate-around-y! s4-1 s4-1 f30-0) + (vector+! (-> obj in-trans) (-> obj out-trans) s4-1) + ) (ja-channel-push! 1 0) (let ((s5-1 (-> obj skel root-channel 0))) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim (-> obj draw art-group data 2)) - num-func-identity + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> obj draw art-group data 2)) + num-func-identity + ) + (set! (-> s5-1 frame-num) 0.0) ) - (set! (-> s5-1 frame-num) 0.0) - ) (ja-post) (dummy-47 (-> obj root-override)) (cond - ((-> obj use-sync?) - (logclear! (-> obj mask) (process-mask actor-pause)) - (go wall-plat-sync-idle) + ((-> obj use-sync?) + (logclear! (-> obj mask) (process-mask actor-pause)) + (go wall-plat-sync-idle) + ) + (else + (go wall-plat-retracted) + ) ) - (else - (go wall-plat-retracted) - ) - ) (none) ) diff --git a/goal_src/levels/sunken/wedge-plats.gc b/goal_src/levels/sunken/wedge-plats.gc index 8aeecc206e..826b0c2e32 100644 --- a/goal_src/levels/sunken/wedge-plats.gc +++ b/goal_src/levels/sunken/wedge-plats.gc @@ -8,11 +8,6 @@ (declare-type wedge-plat-outer process) (declare-type wedge-plat-master process) (declare-type wedge-plat process) -(define-extern wedge-plat-outer-idle (state wedge-plat-outer)) ;; unknown type -(define-extern wedge-plat-outer-tip (state wedge-plat-outer)) ;; unknown type -(define-extern wedge-plat-idle (state wedge-plat)) ;; unknown type -(define-extern wedge-plat-tip (state wedge-plat)) ;; unknown type -(define-extern wedge-plat-master-idle (state wedge-plat-master)) ;; unknown type ;; DECOMP BEGINS @@ -26,61 +21,33 @@ :method-count-assert 14 :size-assert #x8c :flag-assert #xe0020008c + (:states + wedge-plat-master-idle + ) ) (defstate wedge-plat-master-idle (wedge-plat-master) :code (behavior () - (while #t - (set! - (-> self rotate-inner) - (the - float - (sar - (shl - (the - int - (+ - (-> self rotate-inner) - (* (-> self rotspeed) (-> *display* seconds-per-frame)) - ) - ) - 48 - ) - 48 - ) + (while #t + (set! (-> self rotate-inner) + (the float + (sar (shl (the int (+ (-> self rotate-inner) (* (-> self rotspeed) (-> *display* seconds-per-frame)))) 48) 48) + ) + ) + (set! (-> self rotate-outer) + (the float + (sar (shl (the int (- (-> self rotate-outer) (* (-> self rotspeed) (-> *display* seconds-per-frame)))) 48) 48) + ) + ) + (suspend) ) - ) - (set! - (-> self rotate-outer) - (the - float - (sar - (shl - (the - int - (- - (-> self rotate-outer) - (* (-> self rotspeed) (-> *display* seconds-per-frame)) - ) - ) - 48 - ) - 48 - ) - ) - ) - (suspend) + (none) ) - (none) - ) ) -(defmethod - init-from-entity! - wedge-plat-master - ((obj wedge-plat-master) (arg0 entity-actor)) +(defmethod init-from-entity! wedge-plat-master ((obj wedge-plat-master) (arg0 entity-actor)) (set! (-> obj mask) (logior (process-mask platform) (-> obj mask))) (set! (-> obj center quad) (-> arg0 extra trans quad)) (set! (-> obj center y) (+ 819.2 (-> obj center y))) @@ -104,6 +71,10 @@ (:methods (dummy-27 (_type_) symbol 27) ) + (:states + wedge-plat-idle + wedge-plat-tip + ) ) @@ -118,77 +89,63 @@ (defmethod dummy-27 wedge-plat ((obj wedge-plat)) (let* ((a0-1 (-> obj master)) (v1-0 (if a0-1 - (-> (the-as process-drawable (-> a0-1 ppointer)) brother) - ) - ) + (-> (the-as process-drawable (-> a0-1 ppointer)) brother) + ) + ) ) - (when v1-0 - (let ((s4-0 (&-> v1-0 27)) - (f30-0 (-> obj distance)) - (f28-0 - (the - float - (sar - (shl (the int (+ (the-as float (-> v1-0 32)) (-> obj offset))) 48) - 48 - ) + (when v1-0 + (let ((s4-0 (&-> v1-0 27)) + (f30-0 (-> obj distance)) + (f28-0 (the float (sar (shl (the int (+ (the-as float (-> v1-0 32)) (-> obj offset))) 48) 48))) + (s5-0 #f) ) - ) - (s5-0 #f) + (quaternion-axis-angle! + (-> obj root-override quat) + 0.0 + 1.0 + 0.0 + (the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48)) ) - (quaternion-axis-angle! - (-> obj root-override quat) - 0.0 - 1.0 - 0.0 - (the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48)) + (set! (-> obj basetrans x) (+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0)))) + (set! (-> obj basetrans y) (the-as float (-> s4-0 1))) + (set! (-> obj basetrans z) (+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0)))) + (let ((f0-16 (cos f28-0))) + (if (or (< 0.95 f0-16) (< f0-16 -0.95)) + (set! s5-0 #t) + ) + ) + s5-0 + ) ) - (set! - (-> obj basetrans x) - (+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0))) - ) - (set! (-> obj basetrans y) (the-as float (-> s4-0 1))) - (set! - (-> obj basetrans z) - (+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0))) - ) - (let ((f0-16 (cos f28-0))) - (if (or (< 0.95 f0-16) (< f0-16 -0.95)) - (set! s5-0 #t) - ) - ) - s5-0 - ) ) - ) ) (defstate wedge-plat-idle (wedge-plat) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (if (= v1-0 'bonk) - (dummy-22 self) - ) - ) + (let ((v1-0 arg2)) + (the-as object (if (= v1-0 'bonk) + (dummy-22 self) + ) + ) + ) ) - ) :trans (the-as (function none :behavior wedge-plat) plat-trans) :code (behavior () - (let ((gp-0 (-> self skel root-channel 0))) - (set! (-> gp-0 num-func) num-func-identity) - (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 num-func) num-func-identity) + (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) + ) + (while #t + (if (dummy-27 self) + (go wedge-plat-tip) + ) + (suspend) + ) + (none) ) - (while #t - (if (dummy-27 self) - (go wedge-plat-tip) - ) - (suspend) - ) - (none) - ) :post (the-as (function none :behavior wedge-plat) plat-post) ) @@ -196,169 +153,115 @@ (defstate wedge-plat-tip (wedge-plat) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'bonk) - (dummy-22 self) - ) - ((= v1-0 'touch) - (send-event arg0 'no-look-around 450) - #f - ) - ) - ) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'bonk) + (dummy-22 self) + ) + ((= v1-0 'touch) + (send-event arg0 'no-look-around 450) + #f + ) + ) + ) + ) ) - ) :trans (the-as (function none :behavior wedge-plat) plat-trans) :code (behavior () - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! (-> gp-0 param 0) (ja-aframe 60.0 0)) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (dummy-27 self) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 60.0 0)) - (set! (-> gp-1 param 1) 1.0) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> gp-0 param 0) (ja-aframe 60.0 0)) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) - ) - ) - (let ((gp-2 (-> self skel root-channel 0))) - (set! - (-> gp-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! (-> gp-2 param 0) (ja-aframe 100.0 0)) - (set! (-> gp-2 param 1) 1.0) - (set! (-> gp-2 frame-num) (ja-aframe 60.0 0)) - (joint-control-channel-group! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (dummy-27 self) - (suspend) - (let ((gp-3 (-> self skel root-channel 0))) - (set! (-> gp-3 param 0) (ja-aframe 100.0 0)) - (set! (-> gp-3 param 1) 1.0) - (joint-control-channel-group-eval! - gp-3 - (the-as art-joint-anim #f) - num-func-seek! + (until (ja-done? 0) + (dummy-27 self) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 60.0 0)) + (set! (-> gp-1 param 1) 1.0) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) - (let ((gp-4 (-> self skel root-channel 0))) - (set! (-> gp-4 num-func) num-func-identity) - (set! (-> gp-4 frame-num) (ja-aframe 100.0 0)) - ) - (dummy-27 self) - (suspend) - ) - (let ((gp-5 (-> self skel root-channel 0))) - (set! - (-> gp-5 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! (-> gp-5 param 0) (ja-aframe 153.0 0)) - (set! (-> gp-5 param 1) 1.0) - (set! (-> gp-5 frame-num) (ja-aframe 100.0 0)) - (joint-control-channel-group! - gp-5 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (dummy-27 self) - (suspend) - (let ((gp-6 (-> self skel root-channel 0))) - (set! (-> gp-6 param 0) (ja-aframe 153.0 0)) - (set! (-> gp-6 param 1) 1.0) - (joint-control-channel-group-eval! - gp-6 - (the-as art-joint-anim #f) - num-func-seek! + (let ((gp-2 (-> self skel root-channel 0))) + (set! (-> gp-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> gp-2 param 0) (ja-aframe 100.0 0)) + (set! (-> gp-2 param 1) 1.0) + (set! (-> gp-2 frame-num) (ja-aframe 60.0 0)) + (joint-control-channel-group! gp-2 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) - ) + (until (ja-done? 0) + (dummy-27 self) + (suspend) + (let ((gp-3 (-> self skel root-channel 0))) + (set! (-> gp-3 param 0) (ja-aframe 100.0 0)) + (set! (-> gp-3 param 1) 1.0) + (joint-control-channel-group-eval! gp-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (let ((gp-4 (-> self skel root-channel 0))) + (set! (-> gp-4 num-func) num-func-identity) + (set! (-> gp-4 frame-num) (ja-aframe 100.0 0)) + ) + (dummy-27 self) + (suspend) + ) + (let ((gp-5 (-> self skel root-channel 0))) + (set! (-> gp-5 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> gp-5 param 0) (ja-aframe 153.0 0)) + (set! (-> gp-5 param 1) 1.0) + (set! (-> gp-5 frame-num) (ja-aframe 100.0 0)) + (joint-control-channel-group! gp-5 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) + ) + (until (ja-done? 0) + (dummy-27 self) + (suspend) + (let ((gp-6 (-> self skel root-channel 0))) + (set! (-> gp-6 param 0) (ja-aframe 153.0 0)) + (set! (-> gp-6 param 1) 1.0) + (joint-control-channel-group-eval! gp-6 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (go wedge-plat-idle) + (none) ) - (go wedge-plat-idle) - (none) - ) :post (the-as (function none :behavior wedge-plat) plat-post) ) (defmethod init-from-entity! wedge-plat ((obj wedge-plat) (arg0 entity-actor)) (set! (-> obj mask) (logior (process-mask platform) (-> obj mask))) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 24576.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 24576.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *wedge-plat-sg* '()) (logior! (-> obj skel status) 1) (dummy-47 (-> obj root-override)) (dummy-21 obj) - (set! - (-> obj master) - (the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0)) - ) + (set! (-> obj master) (the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0))) (set! (-> obj offset) (res-lump-float arg0 'rotoffset)) (set! (-> obj distance) (res-lump-float arg0 'distance :default 36864.0)) (logclear! (-> obj mask) (process-mask actor-pause)) @@ -372,6 +275,10 @@ :method-count-assert 28 :size-assert #xf0 :flag-assert #x1c008000f0 + (:states + wedge-plat-outer-idle + wedge-plat-outer-tip + ) ) @@ -386,77 +293,63 @@ (defmethod dummy-27 wedge-plat-outer ((obj wedge-plat-outer)) (let* ((a0-1 (-> obj master)) (v1-0 (if a0-1 - (-> (the-as process-drawable (-> a0-1 ppointer)) brother) - ) - ) + (-> (the-as process-drawable (-> a0-1 ppointer)) brother) + ) + ) ) - (when v1-0 - (let ((s4-0 (&-> v1-0 27)) - (f30-0 (-> obj distance)) - (f28-0 - (the - float - (sar - (shl (the int (+ (the-as float (-> v1-0 33)) (-> obj offset))) 48) - 48 - ) + (when v1-0 + (let ((s4-0 (&-> v1-0 27)) + (f30-0 (-> obj distance)) + (f28-0 (the float (sar (shl (the int (+ (the-as float (-> v1-0 33)) (-> obj offset))) 48) 48))) + (s5-0 #f) ) - ) - (s5-0 #f) + (quaternion-axis-angle! + (-> obj root-override quat) + 0.0 + 1.0 + 0.0 + (the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48)) ) - (quaternion-axis-angle! - (-> obj root-override quat) - 0.0 - 1.0 - 0.0 - (the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48)) + (set! (-> obj basetrans x) (+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0)))) + (set! (-> obj basetrans y) (the-as float (-> s4-0 1))) + (set! (-> obj basetrans z) (+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0)))) + (let ((f0-16 (sin f28-0))) + (if (or (< 0.95 f0-16) (< f0-16 -0.95)) + (set! s5-0 #t) + ) + ) + s5-0 + ) ) - (set! - (-> obj basetrans x) - (+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0))) - ) - (set! (-> obj basetrans y) (the-as float (-> s4-0 1))) - (set! - (-> obj basetrans z) - (+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0))) - ) - (let ((f0-16 (sin f28-0))) - (if (or (< 0.95 f0-16) (< f0-16 -0.95)) - (set! s5-0 #t) - ) - ) - s5-0 - ) ) - ) ) (defstate wedge-plat-outer-idle (wedge-plat-outer) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (if (= v1-0 'bonk) - (dummy-22 self) - ) - ) + (let ((v1-0 arg2)) + (the-as object (if (= v1-0 'bonk) + (dummy-22 self) + ) + ) + ) ) - ) :trans (the-as (function none :behavior wedge-plat-outer) plat-trans) :code (behavior () - (while #t - (let ((gp-0 (-> self skel root-channel 0))) - (set! (-> gp-0 num-func) num-func-identity) - (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) - ) - (if (dummy-27 self) - (go wedge-plat-outer-tip) - ) - (suspend) + (while #t + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 num-func) num-func-identity) + (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) + ) + (if (dummy-27 self) + (go wedge-plat-outer-tip) + ) + (suspend) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior wedge-plat-outer) plat-post) ) @@ -464,171 +357,114 @@ (defstate wedge-plat-outer-tip (wedge-plat-outer) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'bonk) - (dummy-22 self) - ) - ((= v1-0 'touch) - (send-event arg0 'no-look-around 450) - ) - ) - ) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'bonk) + (dummy-22 self) + ) + ((= v1-0 'touch) + (send-event arg0 'no-look-around 450) + ) + ) + ) + ) ) - ) :trans (the-as (function none :behavior wedge-plat-outer) plat-trans) :code (behavior () - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! (-> gp-0 param 0) (ja-aframe 60.0 0)) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (dummy-27 self) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 60.0 0)) - (set! (-> gp-1 param 1) 1.0) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> gp-0 param 0) (ja-aframe 60.0 0)) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 0.0 0)) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) - ) - ) - (let ((gp-2 (-> self skel root-channel 0))) - (set! - (-> gp-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! (-> gp-2 param 0) (ja-aframe 100.0 0)) - (set! (-> gp-2 param 1) 1.0) - (set! (-> gp-2 frame-num) (ja-aframe 60.0 0)) - (joint-control-channel-group! - gp-2 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (dummy-27 self) - (suspend) - (let ((gp-3 (-> self skel root-channel 0))) - (set! (-> gp-3 param 0) (ja-aframe 100.0 0)) - (set! (-> gp-3 param 1) 1.0) - (joint-control-channel-group-eval! - gp-3 - (the-as art-joint-anim #f) - num-func-seek! + (until (ja-done? 0) + (dummy-27 self) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 60.0 0)) + (set! (-> gp-1 param 1) 1.0) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) - (let ((gp-4 (-> self skel root-channel 0))) - (set! (-> gp-4 num-func) num-func-identity) - (set! (-> gp-4 frame-num) (ja-aframe 100.0 0)) - ) - (dummy-27 self) - (suspend) - ) - (let ((gp-5 (-> self skel root-channel 0))) - (set! - (-> gp-5 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - (set! (-> gp-5 param 0) (ja-aframe 153.0 0)) - (set! (-> gp-5 param 1) 1.0) - (set! (-> gp-5 frame-num) (ja-aframe 100.0 0)) - (joint-control-channel-group! - gp-5 - (the-as art-joint-anim (-> self draw art-group data 3)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (dummy-27 self) - (suspend) - (let ((gp-6 (-> self skel root-channel 0))) - (set! (-> gp-6 param 0) (ja-aframe 153.0 0)) - (set! (-> gp-6 param 1) 1.0) - (joint-control-channel-group-eval! - gp-6 - (the-as art-joint-anim #f) - num-func-seek! + (let ((gp-2 (-> self skel root-channel 0))) + (set! (-> gp-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> gp-2 param 0) (ja-aframe 100.0 0)) + (set! (-> gp-2 param 1) 1.0) + (set! (-> gp-2 frame-num) (ja-aframe 60.0 0)) + (joint-control-channel-group! gp-2 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) - ) + (until (ja-done? 0) + (dummy-27 self) + (suspend) + (let ((gp-3 (-> self skel root-channel 0))) + (set! (-> gp-3 param 0) (ja-aframe 100.0 0)) + (set! (-> gp-3 param 1) 1.0) + (joint-control-channel-group-eval! gp-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (let ((gp-4 (-> self skel root-channel 0))) + (set! (-> gp-4 num-func) num-func-identity) + (set! (-> gp-4 frame-num) (ja-aframe 100.0 0)) + ) + (dummy-27 self) + (suspend) + ) + (let ((gp-5 (-> self skel root-channel 0))) + (set! (-> gp-5 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + (set! (-> gp-5 param 0) (ja-aframe 153.0 0)) + (set! (-> gp-5 param 1) 1.0) + (set! (-> gp-5 frame-num) (ja-aframe 100.0 0)) + (joint-control-channel-group! gp-5 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) + ) + (until (ja-done? 0) + (dummy-27 self) + (suspend) + (let ((gp-6 (-> self skel root-channel 0))) + (set! (-> gp-6 param 0) (ja-aframe 153.0 0)) + (set! (-> gp-6 param 1) 1.0) + (joint-control-channel-group-eval! gp-6 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (go wedge-plat-outer-idle) + (none) ) - (go wedge-plat-outer-idle) - (none) - ) :post (the-as (function none :behavior wedge-plat-outer) plat-post) ) -(defmethod - init-from-entity! - wedge-plat-outer - ((obj wedge-plat-outer) (arg0 entity-actor)) +(defmethod init-from-entity! wedge-plat-outer ((obj wedge-plat-outer) (arg0 entity-actor)) (set! (-> obj mask) (logior (process-mask platform) (-> obj mask))) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) - ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s4-0 1) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s4-0 - (the-as uint 0) - (the-as uint 0) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s4-0 1) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 19)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 32768.0) + (set-root-prim! s4-0 s3-0) ) - ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 19)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 32768.0) - (set-root-prim! s4-0 s3-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *wedge-plat-sg* '()) (logior! (-> obj skel status) 1) (dummy-47 (-> obj root-override)) (dummy-21 obj) - (set! - (-> obj master) - (the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0)) - ) + (set! (-> obj master) (the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0))) (set! (-> obj offset) (res-lump-float arg0 'rotoffset)) (set! (-> obj distance) (res-lump-float arg0 'distance :default 69632.0)) (logclear! (-> obj mask) (process-mask actor-pause)) diff --git a/goal_src/levels/swamp/swamp-bat.gc b/goal_src/levels/swamp/swamp-bat.gc index 1ec3e7a5d1..492bdd37ef 100644 --- a/goal_src/levels/swamp/swamp-bat.gc +++ b/goal_src/levels/swamp/swamp-bat.gc @@ -6,15 +6,7 @@ ;; dgos: L1, SWA (declare-type swamp-bat-slave process-drawable) -(define-extern swamp-bat-slave-idle (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-return (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-strafe (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-swoop (state swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-die (state handle swamp-bat-slave)) ;; unknown type -(define-extern swamp-bat-slave-launch (state swamp-bat-slave)) ;; unknown type (declare-type swamp-bat process-drawable) -(define-extern swamp-bat-idle (state swamp-bat)) ;; unknown type -(define-extern swamp-bat-launch-slaves (state swamp-bat)) ;; unknown type ;; DECOMP BEGINS @@ -32,15 +24,12 @@ ) -(defmethod - TODO-RENAME-9 - swamp-bat-idle-path - ((obj swamp-bat-idle-path) (arg0 vector) (arg1 float)) +(defmethod TODO-RENAME-9 swamp-bat-idle-path ((obj swamp-bat-idle-path) (arg0 vector) (arg1 float)) (let ((f30-0 (* 65536.0 arg1))) - (set! (-> arg0 quad) (-> obj origin quad)) - (vector+*! arg0 arg0 (-> obj x-axis) (cos f30-0)) - (vector+*! arg0 arg0 (-> obj y-axis) (sin f30-0)) - ) + (set! (-> arg0 quad) (-> obj origin quad)) + (vector+*! arg0 arg0 (-> obj x-axis) (cos f30-0)) + (vector+*! arg0 arg0 (-> obj y-axis) (sin f30-0)) + ) arg0 ) @@ -60,25 +49,23 @@ :method-count-assert 20 :size-assert #x10b :flag-assert #x1400a0010b + (:states + swamp-bat-idle + swamp-bat-launch-slaves + ) ) (defmethod relocate swamp-bat ((obj swamp-bat) (arg0 int)) (dotimes (v1-0 2) - (if (nonzero? (-> obj path-list v1-0)) - (&+! (-> obj path-list v1-0) arg0) + (if (nonzero? (-> obj path-list v1-0)) + (&+! (-> obj path-list v1-0) arg0) + ) ) - ) (the-as - swamp-bat - ((the-as - (function process-drawable int process-drawable) - (find-parent-method swamp-bat 7) - ) - obj - arg0 + swamp-bat + ((the-as (function process-drawable int process-drawable) (find-parent-method swamp-bat 7)) obj arg0) ) - ) ) (deftype swamp-bat-slave (process-drawable) @@ -102,33 +89,33 @@ (:methods (dummy-20 (_type_) float 20) ) + (:states + (swamp-bat-slave-die handle) + swamp-bat-slave-idle + swamp-bat-slave-launch + swamp-bat-slave-return + swamp-bat-slave-strafe + swamp-bat-slave-swoop + ) ) -(defbehavior - swamp-bat-slave-event-handler swamp-bat-slave - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('attack) +(defbehavior swamp-bat-slave-event-handler swamp-bat-slave ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('attack) (logclear! (-> self mask) (process-mask actor-pause)) (go swamp-bat-slave-die (process->handle arg0)) ) - (('touch) - (level-hint-spawn - (game-text-id swamp-bats-hint) - "sksp0156" - (the-as entity #f) - *entity-pool* - (game-task none) + (('touch) + (level-hint-spawn (game-text-id swamp-bats-hint) "sksp0156" (the-as entity #f) *entity-pool* (game-task none)) + (send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info)) ) - (send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info)) - ) - (('launch) - (if (-> self launch-ready) - (go swamp-bat-slave-launch) + (('launch) + (if (-> self launch-ready) + (go swamp-bat-slave-launch) + ) ) ) - ) ) swamp-bat-slave-event-handler @@ -149,34 +136,25 @@ swamp-bat-slave-event-handler (f30-0 (dummy-20 self)) (s3-0 (new 'static 'vector :y 1.0 :w 1.0)) ) - (eval-path-curve-div! s2-0 s5-0 f30-0 'interp) - (TODO-RENAME-12 s2-0 gp-0 f30-0) - (vector-cross! s4-0 gp-0 s3-0) - (vector-normalize! s4-0 1.0) - (let - ((f0-4 - (fmax - (fmin - (- (vector-dot (target-pos 0) s4-0) (vector-dot s5-0 s4-0)) - (-> self strafe-envelope) - ) - (- (-> self strafe-envelope)) - ) + (eval-path-curve-div! s2-0 s5-0 f30-0 'interp) + (TODO-RENAME-12 s2-0 gp-0 f30-0) + (vector-cross! s4-0 gp-0 s3-0) + (vector-normalize! s4-0 1.0) + (let ((f0-4 + (fmax + (fmin (- (vector-dot (target-pos 0) s4-0) (vector-dot s5-0 s4-0)) (-> self strafe-envelope)) + (- (-> self strafe-envelope)) + ) + ) + ) + (set! (-> self strafe-distance) + (seek (-> self strafe-distance) f0-4 (* 20480.0 (-> *display* seconds-per-frame))) + ) ) - ) - (set! - (-> self strafe-distance) - (seek - (-> self strafe-distance) - f0-4 - (* 20480.0 (-> *display* seconds-per-frame)) - ) - ) + (vector-float*! s4-0 s4-0 (-> self strafe-distance)) + (vector+! (-> self root-override trans) s5-0 s4-0) + (forward-up->quaternion (-> self root-override quat) gp-0 s3-0) ) - (vector-float*! s4-0 s4-0 (-> self strafe-distance)) - (vector+! (-> self root-override trans) s5-0 s4-0) - (forward-up->quaternion (-> self root-override quat) gp-0 s3-0) - ) (swamp-bat-slave-post) ) @@ -190,62 +168,28 @@ swamp-bat-slave-event-handler (defbehavior swamp-bat-slave-get-new-path swamp-bat-slave () (set! (-> self path-select) (-> self parent-process 0 path-select)) - (set! - (-> self idle-path origin quad) - (-> self parent-process 0 path-origin quad) - ) - (let* - ((f28-0 - (-> - self - parent-process - 0 - idle-position-angle - (-> self idle-position-index) + (set! (-> self idle-path origin quad) (-> self parent-process 0 path-origin quad)) + (let* ((f28-0 (-> self parent-process 0 idle-position-angle (-> self idle-position-index))) + (f30-0 (cos f28-0)) + (f26-0 (sin f28-0)) + (f28-1 (cos 8192.0)) + ) + (let ((f0-0 (sin 8192.0))) + (set! (-> self idle-path x-axis x) (* 12288.0 f30-0)) + (set! (-> self idle-path x-axis y) 0.0) + (set! (-> self idle-path x-axis z) (* 12288.0 f26-0)) + (set! (-> self idle-path x-axis w) 1.0) + (set! (-> self idle-path y-axis x) (* -12288.0 f26-0 f28-1)) + (set! (-> self idle-path y-axis y) (* 12288.0 f0-0)) ) - ) - (f30-0 (cos f28-0)) - (f26-0 (sin f28-0)) - (f28-1 (cos 8192.0)) + (set! (-> self idle-path y-axis z) (* 12288.0 f30-0 f28-1)) ) - (let ((f0-0 (sin 8192.0))) - (set! (-> self idle-path x-axis x) (* 12288.0 f30-0)) - (set! (-> self idle-path x-axis y) 0.0) - (set! (-> self idle-path x-axis z) (* 12288.0 f26-0)) - (set! (-> self idle-path x-axis w) 1.0) - (set! (-> self idle-path y-axis x) (* -12288.0 f26-0 f28-1)) - (set! (-> self idle-path y-axis y) (* 12288.0 f0-0)) - ) - (set! (-> self idle-path y-axis z) (* 12288.0 f30-0 f28-1)) - ) (set! (-> self idle-path y-axis w) 1.0) - (vector+! - (-> self idle-position) - (the-as vector (-> self idle-path)) - (-> self idle-path x-axis) - ) - (let - ((f0-8 - (the - float - (+ - (-> - self - parent-process - 0 - path-list - (-> self path-select) - curve - num-cverts - ) - -1 - ) - ) - ) + (vector+! (-> self idle-position) (the-as vector (-> self idle-path)) (-> self idle-path x-axis)) + (let ((f0-8 (the float (+ (-> self parent-process 0 path-list (-> self path-select) curve num-cverts) -1)))) + (set! (-> self path-point-count) f0-8) + f0-8 ) - (set! (-> self path-point-count) f0-8) - f0-8 - ) ) (defstate swamp-bat-slave-idle (swamp-bat-slave) @@ -253,132 +197,77 @@ swamp-bat-slave-event-handler swamp-bat-slave-event-handler :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self launch-ready) #f) - (ja-channel-push! 1 49) - (let ((v1-4 (-> self skel root-channel 0))) - (set! - (-> v1-4 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - ) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> self root-override trans quad)) - (let - ((s4-0 - (quaternion-copy! - (new 'stack-no-clear 'quaternion) - (-> self root-override quat) - ) - ) - (gp-0 (new-stack-quaternion0)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self launch-ready) #f) + (ja-channel-push! 1 49) + (let ((v1-4 (-> self skel root-channel 0))) + (set! (-> v1-4 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) ) - (let - ((s2-0 - (TODO-RENAME-12 - (-> self parent-process 0 path-list (-> self path-select)) - (new 'stack-no-clear 'vector) - 0.1 - ) - ) - ) - 0 - (let* ((f0-0 300.0) - (f1-0 32768.0) - (s3-0 - (the - int - (* - f0-0 - (/ 1.0 f1-0) - (vector-vector-distance s5-0 (-> self idle-position)) - ) - ) - ) - ) - (forward-up->quaternion gp-0 s2-0 (new 'static 'vector :y 1.0 :w 1.0)) - (while #t - (let - ((v1-17 (- (-> *display* base-frame-counter) (-> self state-time)))) - (when (>= v1-17 s3-0) - 0 - (goto cfg-10) - ) - (let ((f30-1 (/ (the float v1-17) (the float s3-0)))) - (when *run-time-assert-enable* - (set-pos - *__private-assert-info* - "swamp-bat" - (the-as uint 283) - (the-as uint 20) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> self root-override trans quad)) + (let ((s4-0 (quaternion-copy! (new 'stack-no-clear 'quaternion) (-> self root-override quat))) + (gp-0 (new-stack-quaternion0)) + ) + (let ((s2-0 + (TODO-RENAME-12 (-> self parent-process 0 path-list (-> self path-select)) (new 'stack-no-clear 'vector) 0.1) + ) + ) + 0 + (let* ((f0-0 300.0) + (f1-0 32768.0) + (s3-0 (the int (* f0-0 (/ 1.0 f1-0) (vector-vector-distance s5-0 (-> self idle-position))))) + ) + (forward-up->quaternion gp-0 s2-0 (new 'static 'vector :y 1.0 :w 1.0)) + (while #t + (let ((v1-17 (- (-> *display* base-frame-counter) (-> self state-time)))) + (when (>= v1-17 s3-0) + 0 + (goto cfg-10) + ) + (let ((f30-1 (/ (the float v1-17) (the float s3-0)))) + (when *run-time-assert-enable* + (set-pos *__private-assert-info* "swamp-bat" (the-as uint 283) (the-as uint 20)) + (__assert (< f30-1 1.0) "(< interp 1.0)") + ) + (vector-lerp! (-> self root-override trans) s5-0 (-> self idle-position) f30-1) + (quaternion-slerp! (-> self root-override quat) s4-0 gp-0 f30-1) + ) + ) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) (-> self idle-anim-speed)) + (joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) + 0 + ) ) - (__assert (< f30-1 1.0) "(< interp 1.0)") - ) - (vector-lerp! - (-> self root-override trans) - s5-0 - (-> self idle-position) - f30-1 - ) - (quaternion-slerp! (-> self root-override quat) s4-0 gp-0 f30-1) ) - ) - (let ((a0-16 (-> self skel root-channel 0))) - (set! (-> a0-16 param 0) (-> self idle-anim-speed)) - (joint-control-channel-group-eval! - a0-16 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (suspend) - 0 + (label cfg-10) + (set! (-> self root-override trans quad) (-> self idle-position quad)) + (quaternion-copy! (-> self root-override quat) gp-0) ) - ) ) - (label cfg-10) - (set! (-> self root-override trans quad) (-> self idle-position quad)) - (quaternion-copy! (-> self root-override quat) gp-0) - ) + (set! (-> self launch-ready) #t) + (logior! (-> self mask) (process-mask actor-pause)) + (let ((f30-2 0.0)) + (while #t + (let ((f26-0 (cos f30-2)) + (f28-0 (sin f30-2)) + ) + (set! (-> self root-override trans quad) (-> self idle-path origin quad)) + (vector+*! (-> self root-override trans) (-> self root-override trans) (-> self idle-path x-axis) f26-0) + (vector+*! (-> self root-override trans) (-> self root-override trans) (-> self idle-path y-axis) f28-0) + ) + (let ((a0-26 (-> self skel root-channel 0))) + (set! (-> a0-26 param 0) (-> self idle-anim-speed)) + (joint-control-channel-group-eval! a0-26 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) + (+! f30-2 (* 32768.0 (-> *display* seconds-per-frame) (-> self idle-anim-speed))) + ) + ) + (none) ) - (set! (-> self launch-ready) #t) - (logior! (-> self mask) (process-mask actor-pause)) - (let ((f30-2 0.0)) - (while #t - (let ((f26-0 (cos f30-2)) - (f28-0 (sin f30-2)) - ) - (set! (-> self root-override trans quad) (-> self idle-path origin quad)) - (vector+*! - (-> self root-override trans) - (-> self root-override trans) - (-> self idle-path x-axis) - f26-0 - ) - (vector+*! - (-> self root-override trans) - (-> self root-override trans) - (-> self idle-path y-axis) - f28-0 - ) - ) - (let ((a0-26 (-> self skel root-channel 0))) - (set! (-> a0-26 param 0) (-> self idle-anim-speed)) - (joint-control-channel-group-eval! - a0-26 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (suspend) - (+! - f30-2 - (* 32768.0 (-> *display* seconds-per-frame) (-> self idle-anim-speed)) - ) - ) - ) - (none) - ) :post (the-as (function none :behavior swamp-bat-slave) swamp-bat-slave-post) ) @@ -388,48 +277,36 @@ swamp-bat-slave-event-handler swamp-bat-slave-event-handler :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self launch-ready) #f) - (ja-channel-push! 1 30) - (let ((gp-0 (new-stack-vector0))) - (set! (-> gp-0 quad) (-> self root-override trans quad)) - (let ((s5-0 (new-stack-vector0))) - (eval-path-curve-div! - (-> self parent-process 0 path-list (-> self path-select)) - s5-0 - 0.0 - 'interp - ) - (let ((v1-12 (-> self skel root-channel 0))) - (set! - (-> v1-12 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - ) - (while #t - (let ((s4-0 (- (-> *display* base-frame-counter) (-> self state-time)))) - (if (>= s4-0 90) - (go swamp-bat-slave-swoop) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self launch-ready) #f) + (ja-channel-push! 1 30) + (let ((gp-0 (new-stack-vector0))) + (set! (-> gp-0 quad) (-> self root-override trans quad)) + (let ((s5-0 (new-stack-vector0))) + (eval-path-curve-div! (-> self parent-process 0 path-list (-> self path-select)) s5-0 0.0 'interp) + (let ((v1-12 (-> self skel root-channel 0))) + (set! (-> v1-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + ) + (while #t + (let ((s4-0 (- (-> *display* base-frame-counter) (-> self state-time)))) + (if (>= s4-0 90) + (go swamp-bat-slave-swoop) + ) + (let ((f0-1 (* 0.011111111 (the float s4-0)))) + (vector-lerp! (-> self root-override trans) gp-0 s5-0 f0-1) + ) + ) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (-> self idle-anim-speed)) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) + 0 + ) ) - (let ((f0-1 (* 0.011111111 (the float s4-0)))) - (vector-lerp! (-> self root-override trans) gp-0 s5-0 f0-1) - ) - ) - (let ((a0-9 (-> self skel root-channel 0))) - (set! (-> a0-9 param 0) (-> self idle-anim-speed)) - (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (suspend) - 0 ) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior swamp-bat-slave) swamp-bat-slave-post) ) @@ -439,58 +316,44 @@ swamp-bat-slave-event-handler swamp-bat-slave-event-handler :code (behavior () - (set! (-> self strafe-envelope) 0.0) - (ja-channel-push! 1 30) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (until (ja-done? 0) - (if (< (ja-aframe-num 0) 10.0) - (sync-now! (-> self sync) 0.0) - ) - (suspend) - (let ((a0-4 (-> self skel root-channel 0))) - (set! - (-> a0-4 param 0) - (the float (+ (-> a0-4 frame-group data 0 length) -1)) + (set! (-> self strafe-envelope) 0.0) + (ja-channel-push! 1 30) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) ) - (set! (-> a0-4 param 1) 1.0) - (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-seek! + (until (ja-done? 0) + (if (< (ja-aframe-num 0) 10.0) + (sync-now! (-> self sync) 0.0) + ) + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-seek!) + ) ) - ) - ) - (set! (-> self strafe-envelope) 20480.0) - (ja-channel-push! 1 30) - (let ((v1-18 (-> self skel root-channel 0))) - (set! - (-> v1-18 frame-group) - (the-as art-joint-anim (-> self draw art-group data 6)) - ) - ) - (while #t - (if (>= (dummy-20 self) 2.0) - (go swamp-bat-slave-strafe) - ) - (let ((a0-11 (-> self skel root-channel 0))) - (set! (-> a0-11 param 0) 1.0) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-loop! + (set! (-> self strafe-envelope) 20480.0) + (ja-channel-push! 1 30) + (let ((v1-18 (-> self skel root-channel 0))) + (set! (-> v1-18 frame-group) (the-as art-joint-anim (-> self draw art-group data 6))) ) - ) - (suspend) + (while #t + (if (>= (dummy-20 self) 2.0) + (go swamp-bat-slave-strafe) + ) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) 1.0) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior swamp-bat-slave) swamp-bat-slave-path-post) ) @@ -500,30 +363,23 @@ swamp-bat-slave-event-handler swamp-bat-slave-event-handler :code (behavior () - (set! (-> self strafe-envelope) 20480.0) - (ja-channel-push! 1 30) - (let ((v1-2 (-> self skel root-channel 0))) - (set! - (-> v1-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 7)) - ) - ) - (while #t - (if (>= (dummy-20 self) 6.0) - (go swamp-bat-slave-return) - ) - (let ((a0-5 (-> self skel root-channel 0))) - (set! (-> a0-5 param 0) 1.0) - (joint-control-channel-group-eval! - a0-5 - (the-as art-joint-anim #f) - num-func-loop! + (set! (-> self strafe-envelope) 20480.0) + (ja-channel-push! 1 30) + (let ((v1-2 (-> self skel root-channel 0))) + (set! (-> v1-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 7))) ) - ) - (suspend) + (while #t + (if (>= (dummy-20 self) 6.0) + (go swamp-bat-slave-return) + ) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) 1.0) + (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) + ) + (none) ) - (none) - ) :post (the-as (function none :behavior swamp-bat-slave) swamp-bat-slave-path-post) ) @@ -533,43 +389,36 @@ swamp-bat-slave-event-handler swamp-bat-slave-event-handler :code (behavior () - (set! (-> self strafe-envelope) 0.0) - (ja-channel-push! 1 22) - (let ((v1-2 (-> self skel root-channel 0))) - (set! - (-> v1-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 7)) - ) - ) - (let ((f30-0 (+ -1.0 (-> self path-point-count))) - (gp-0 #t) - ) - (while #t - (let ((f28-0 (dummy-20 self))) - (if (>= f28-0 f30-0) - (go swamp-bat-slave-idle) - ) - (when (and gp-0 (>= f28-0 7.0) (< f28-0 8.0)) - (set! gp-0 #f) - (when (!= (-> self path-select) (-> self parent-process 0 path-select)) - (swamp-bat-slave-get-new-path) - (go swamp-bat-slave-idle) + (set! (-> self strafe-envelope) 0.0) + (ja-channel-push! 1 22) + (let ((v1-2 (-> self skel root-channel 0))) + (set! (-> v1-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 7))) + ) + (let ((f30-0 (+ -1.0 (-> self path-point-count))) + (gp-0 #t) + ) + (while #t + (let ((f28-0 (dummy-20 self))) + (if (>= f28-0 f30-0) + (go swamp-bat-slave-idle) + ) + (when (and gp-0 (>= f28-0 7.0) (< f28-0 8.0)) + (set! gp-0 #f) + (when (!= (-> self path-select) (-> self parent-process 0 path-select)) + (swamp-bat-slave-get-new-path) + (go swamp-bat-slave-idle) + ) + ) + ) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) 1.0) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) ) - ) ) - (let ((a0-6 (-> self skel root-channel 0))) - (set! (-> a0-6 param 0) 1.0) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (suspend) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior swamp-bat-slave) swamp-bat-slave-path-post) ) @@ -577,114 +426,75 @@ swamp-bat-slave-event-handler (defstate swamp-bat-slave-die (swamp-bat-slave) :event (the-as - (function process int symbol event-message-block object :behavior swamp-bat-slave) - process-drawable-death-event-handler - ) + (function process int symbol event-message-block object :behavior swamp-bat-slave) + process-drawable-death-event-handler + ) :code (behavior ((arg0 handle)) - (ja-channel-push! 1 21) - (let ((gp-0 (new-stack-vector0))) - (let ((v1-1 (handle->process arg0))) - (if v1-1 - (vector-! - gp-0 - (-> self root-override trans) - (-> (the-as swamp-bat v1-1) root-override trans) - ) + (ja-channel-push! 1 21) + (let ((gp-0 (new-stack-vector0))) + (let ((v1-1 (handle->process arg0))) + (if v1-1 + (vector-! gp-0 (-> self root-override trans) (-> (the-as swamp-bat v1-1) root-override trans)) + ) + ) + (set! (-> gp-0 y) (+ -6144.0 (-> gp-0 y))) + (vector-normalize! gp-0 98304.0) + (let ((v1-8 (-> self skel root-channel 0))) + (set! (-> v1-8 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + ) + (until (ja-done? 0) + (vector-v++! (-> self root-override trans) gp-0) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 0.5) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) + (suspend) + ) ) - ) - (set! (-> gp-0 y) (+ -6144.0 (-> gp-0 y))) - (vector-normalize! gp-0 98304.0) - (let ((v1-8 (-> self skel root-channel 0))) - (set! - (-> v1-8 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - ) - (until (ja-done? 0) - (vector-v++! (-> self root-override trans) gp-0) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 param 0) - (the float (+ (-> a0-12 frame-group data 0 length) -1)) - ) - (set! (-> a0-12 param 1) 0.5) - (joint-control-channel-group-eval! - a0-12 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (suspend) - ) + (dummy-18 self) + (none) ) - (dummy-18 self) - (none) - ) :post (the-as (function none :behavior swamp-bat-slave) swamp-bat-slave-post) ) -(defbehavior - swamp-bat-slave-init-by-other swamp-bat-slave - ((arg0 swamp-bat-slave) (arg1 int)) +(defbehavior swamp-bat-slave-init-by-other swamp-bat-slave ((arg0 swamp-bat-slave) (arg1 int)) (set! (-> self mask) (logior (process-mask enemy) (-> self mask))) - (let - ((s4-0 - (new - 'process - 'collide-shape-moving - self - (collide-list-enum usually-hit-by-player) + (let ((s4-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 1) 0))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 6144.0) + (set-root-prim! s4-0 s3-0) + (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s2-0 collide-with) (the-as uint 16)) + (set! (-> s2-0 prim-core action) (the-as uint 1)) + (set! (-> s2-0 prim-core offense) 4) + (set! (-> s2-0 transform-index) 3) + (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 4096.0) + (append-prim s3-0 s2-0) + ) ) - ) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> self root-override) s4-0) ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 1) 0))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 1)) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 6144.0) - (set-root-prim! s4-0 s3-0) - (let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s2-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s2-0 collide-with) (the-as uint 16)) - (set! (-> s2-0 prim-core action) (the-as uint 1)) - (set! (-> s2-0 prim-core offense) 4) - (set! (-> s2-0 transform-index) 3) - (set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 4096.0) - (append-prim s3-0 s2-0) - ) - ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> self root-override) s4-0) - ) (set! (-> self root-override trans quad) (-> arg0 root-override trans quad)) - (set! - (-> self root-override quat vec quad) - (-> arg0 root-override quat vec quad) - ) + (set! (-> self root-override quat vec quad) (-> arg0 root-override quat vec quad)) (vector-float*! (-> self root-override scale) *identity-vector* 2.0) (set! (-> self root-override pause-adjust-distance) 286720.0) - (set! - (-> self fact) - (new - 'process - 'fact-info-enemy - self - (pickup-type eco-pill-random) - (-> *FACT-bank* default-pill-inc) - ) - ) + (set! (-> self fact) + (new 'process 'fact-info-enemy self (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)) + ) (set! (-> self idle-anim-speed) (rand-vu-float-range 0.9 1.1)) (set! (-> self strafe-distance) 0.0) (set! (-> self strafe-envelope) 0.0) @@ -700,83 +510,54 @@ swamp-bat-slave-event-handler (defbehavior swamp-bat-setup-new-path swamp-bat ((arg0 int)) (when *run-time-assert-enable* - (set-pos - *__private-assert-info* - "swamp-bat" - (the-as uint 520) - (the-as uint 2) + (set-pos *__private-assert-info* "swamp-bat" (the-as uint 520) (the-as uint 2)) + (__assert-zero-lim-range-int arg0 (-> self path-count) "path-index" "(-> self path-count)") ) - (__assert-zero-lim-range-int - arg0 - (-> self path-count) - "path-index" - "(-> self path-count)" - ) - ) (when (< 0.0 (the float (+ (-> self path-list arg0 curve num-cverts) -1))) - (set! (-> self path-select) arg0) - (let ((f30-0 0.0) - (f28-0 (/ 65536.0 (the float (-> self slave-count)))) - ) - (eval-path-curve-div! - (-> self path-list arg0) - (-> self path-origin) - 0.0 - 'interp - ) - (dotimes (v1-16 (-> self slave-count)) - (set! (-> self idle-position-angle v1-16) f30-0) - (+! f30-0 f28-0) - ) + (set! (-> self path-select) arg0) + (let ((f30-0 0.0) + (f28-0 (/ 65536.0 (the float (-> self slave-count)))) + ) + (eval-path-curve-div! (-> self path-list arg0) (-> self path-origin) 0.0 'interp) + (dotimes (v1-16 (-> self slave-count)) + (set! (-> self idle-position-angle v1-16) f30-0) + (+! f30-0 f28-0) + ) + ) + #f ) - #f - ) ) (defbehavior swamp-bat-make-path-select-plane swamp-bat ((arg0 int)) (when *run-time-assert-enable* - (set-pos - *__private-assert-info* - "swamp-bat" - (the-as uint 538) - (the-as uint 2) + (set-pos *__private-assert-info* "swamp-bat" (the-as uint 538) (the-as uint 2)) + (__assert-zero-lim-range-int arg0 (-> self path-count) "path-index" "(-> self path-count)") ) - (__assert-zero-lim-range-int - arg0 - (-> self path-count) - "path-index" - "(-> self path-count)" - ) - ) (let* ((s5-0 (-> self path-list arg0)) (gp-1 (TODO-RENAME-12 s5-0 (-> self path-select-plane arg0) 5.0)) - (s5-1 - (eval-path-curve-div! s5-0 (new 'stack-no-clear 'vector) 5.0 'interp) - ) + (s5-1 (eval-path-curve-div! s5-0 (new 'stack-no-clear 'vector) 5.0 'interp)) ) - (set! (-> gp-1 y) 0.0) - (vector-normalize! gp-1 1.0) - (let ((f0-3 (- (vector-dot s5-1 gp-1)))) - (set! (-> gp-1 w) f0-3) - f0-3 + (set! (-> gp-1 y) 0.0) + (vector-normalize! gp-1 1.0) + (let ((f0-3 (- (vector-dot s5-1 gp-1)))) + (set! (-> gp-1 w) f0-3) + f0-3 + ) ) - ) ) (defbehavior swamp-bat-update-path swamp-bat () (dotimes (gp-0 (-> self path-count)) - (when (!= (-> self path-select) gp-0) - (let* ((s5-0 (-> self path-select-plane gp-0)) - (f0-2 - (+ (vector-dot (target-pos 0) (the-as vector s5-0)) (-> s5-0 w)) + (when (!= (-> self path-select) gp-0) + (let* ((s5-0 (-> self path-select-plane gp-0)) + (f0-2 (+ (vector-dot (target-pos 0) (the-as vector s5-0)) (-> s5-0 w))) + ) + (if (< 0.0 f0-2) + (swamp-bat-setup-new-path gp-0) ) - ) - (if (< 0.0 f0-2) - (swamp-bat-setup-new-path gp-0) + ) ) - ) ) - ) (none) ) @@ -787,17 +568,16 @@ swamp-bat-slave-event-handler (defbehavior swamp-bat-check-slave-paths-match? swamp-bat ((arg0 int)) (let ((v1-0 (the-as (pointer process-tree) (-> self child-process)))) - (while v1-0 - (if - (and - (-> (the-as swamp-bat-slave (-> v1-0 0)) launch-ready) - (!= (-> (the-as swamp-bat-slave (-> v1-0 0)) path-select) arg0) + (while v1-0 + (if (and + (-> (the-as swamp-bat-slave (-> v1-0 0)) launch-ready) + (!= (-> (the-as swamp-bat-slave (-> v1-0 0)) path-select) arg0) + ) + (return #f) + ) + (set! v1-0 (-> v1-0 0 brother)) ) - (return #f) - ) - (set! v1-0 (-> v1-0 0 brother)) ) - ) #t ) @@ -806,44 +586,35 @@ swamp-bat-slave-event-handler swamp-bat-debug :code (behavior () - (when (zero? (-> self path-count)) - (process-entity-status! self (entity-perm-status dead) #t) - (deactivate self) - ) - (while #t - (when - (and - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) - *target* - (>= - (-> self fact-override idle-distance) - (vector-vector-distance - (-> self root-override trans) - (-> *target* control trans) - ) - ) - ) - (when (not (-> self child-process)) + (when (zero? (-> self path-count)) (process-entity-status! self (entity-perm-status dead) #t) (deactivate self) ) - (swamp-bat-update-path) - (if - (or - (dummy-10 (-> self vol) (target-pos 5)) - (not (swamp-bat-check-slave-paths-match? (-> self path-select))) - ) - (go swamp-bat-launch-slaves) + (while #t + (when (and + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + *target* + (>= (-> self fact-override idle-distance) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + ) + (when (not (-> self child-process)) + (process-entity-status! self (entity-perm-status dead) #t) + (deactivate self) + ) + (swamp-bat-update-path) + (if (or (dummy-10 (-> self vol) (target-pos 5)) (not (swamp-bat-check-slave-paths-match? (-> self path-select)))) + (go swamp-bat-launch-slaves) + ) + ) + (let ((gp-1 (new 'static 'matrix))) + (quaternion->matrix gp-1 (-> self root-override quat)) + (set! (-> gp-1 vector 3 quad) (-> self root-override trans quad)) + ) + (suspend) ) - ) - (let ((gp-1 (new 'static 'matrix))) - (quaternion->matrix gp-1 (-> self root-override quat)) - (set! (-> gp-1 vector 3 quad) (-> self root-override trans quad)) - ) - (suspend) + (none) ) - (none) - ) :post (the-as (function none :behavior swamp-bat) #f) ) @@ -852,17 +623,17 @@ swamp-bat-slave-event-handler (let ((gp-0 (the-as (pointer process-tree) (-> self child-process))) (v0-0 (the-as object #f)) ) - (while (and gp-0 (not v0-0)) - (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 0) - (set! (-> a1-0 message) 'launch) - (set! v0-0 (send-event-function (ppointer->process gp-0) a1-0)) - ) - (set! gp-0 (-> gp-0 0 brother)) + (while (and gp-0 (not v0-0)) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 0) + (set! (-> a1-0 message) 'launch) + (set! v0-0 (send-event-function (ppointer->process gp-0) a1-0)) + ) + (set! gp-0 (-> gp-0 0 brother)) + ) + v0-0 ) - v0-0 - ) ) (defstate swamp-bat-launch-slaves (swamp-bat) @@ -870,102 +641,73 @@ swamp-bat-slave-event-handler swamp-bat-debug :code (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while #t - (swamp-bat-update-path) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (if (not (swamp-bat-launch-slave)) - (go swamp-bat-idle) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (while #t + (swamp-bat-update-path) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (if (not (swamp-bat-launch-slave)) + (go swamp-bat-idle) + ) + ) + (suspend) ) - ) - (suspend) + (none) ) - (none) - ) :post (the-as (function none :behavior swamp-bat) #f) ) (defmethod init-from-entity! swamp-bat ((obj swamp-bat) (arg0 entity-actor)) - (let - ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) - (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 0.0) - (set-root-prim! s4-0 s3-0) + (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 0.0) + (set-root-prim! s4-0 s3-0) + ) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (logclear! (-> obj mask) (process-mask actor-pause)) (set! (-> obj mask) (logior (process-mask enemy) (-> obj mask))) (set! (-> obj vol) (new 'process 'vol-control obj)) (logior! (-> obj vol flags) 3) - (set! - (-> obj path-list 0) - (new 'process 'curve-control obj 'path -1000000000.0) - ) - (set! - (-> obj path-list 1) - (new 'process 'curve-control obj 'pathb -1000000000.0) - ) - (logior! - (-> obj path-list 0 flags) - (path-control-flag display draw-line draw-point draw-text) - ) - (logior! - (-> obj path-list 1 flags) - (path-control-flag display draw-line draw-point draw-text) - ) + (set! (-> obj path-list 0) (new 'process 'curve-control obj 'path -1000000000.0)) + (set! (-> obj path-list 1) (new 'process 'curve-control obj 'pathb -1000000000.0)) + (logior! (-> obj path-list 0 flags) (path-control-flag display draw-line draw-point draw-text)) + (logior! (-> obj path-list 1 flags) (path-control-flag display draw-line draw-point draw-text)) (set! (-> obj path-count) 0) (when (< 0.0 (the float (+ (-> obj path-list 0 curve num-cverts) -1))) - (+! (-> obj path-count) 1) - (swamp-bat-make-path-select-plane 0) - ) + (+! (-> obj path-count) 1) + (swamp-bat-make-path-select-plane 0) + ) (when (< 0.0 (the float (+ (-> obj path-list 1 curve num-cverts) -1))) - (+! (-> obj path-count) 1) - (swamp-bat-make-path-select-plane 1) - ) + (+! (-> obj path-count) 1) + (swamp-bat-make-path-select-plane 1) + ) (if (!= (-> obj path-count) 2) - (go process-drawable-art-error "need 2 paths") - ) - (set! - (-> obj fact-override) - (new - 'process - 'fact-info-enemy - obj - (pickup-type eco-pill-random) - (-> *FACT-bank* default-pill-inc) + (go process-drawable-art-error "need 2 paths") + ) + (set! (-> obj fact-override) + (new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)) + ) + (let ((a1-10 (res-lump-value arg0 'num-lurkers uint128 :default (the-as uint128 6)))) + (set! (-> obj slave-count) (max 2 (min 8 (the-as int a1-10)))) ) - ) - (let - ((a1-10 - (res-lump-value arg0 'num-lurkers uint128 :default (the-as uint128 6)) - ) - ) - (set! (-> obj slave-count) (max 2 (min 8 (the-as int a1-10)))) - ) (swamp-bat-setup-new-path 0) (swamp-bat-update-path) (dotimes (s5-1 (-> obj slave-count)) - (let ((s4-1 (get-process *default-dead-pool* swamp-bat-slave 4512))) - (when s4-1 - (let ((t9-16 (method-of-type swamp-bat-slave activate))) - (t9-16 - (the-as swamp-bat-slave s4-1) - obj - 'swamp-bat-slave - (the-as pointer #x70004000) - ) + (let ((s4-1 (get-process *default-dead-pool* swamp-bat-slave 4512))) + (when s4-1 + (let ((t9-16 (method-of-type swamp-bat-slave activate))) + (t9-16 (the-as swamp-bat-slave s4-1) obj 'swamp-bat-slave (the-as pointer #x70004000)) + ) + (run-now-in-process s4-1 swamp-bat-slave-init-by-other obj s5-1) + (-> s4-1 ppointer) + ) ) - (run-now-in-process s4-1 swamp-bat-slave-init-by-other obj s5-1) - (-> s4-1 ppointer) - ) ) - ) (go swamp-bat-idle) (none) ) diff --git a/goal_src/levels/swamp/swamp-obs.gc b/goal_src/levels/swamp/swamp-obs.gc index e5e669c27c..e3c48535d0 100644 --- a/goal_src/levels/swamp/swamp-obs.gc +++ b/goal_src/levels/swamp/swamp-obs.gc @@ -16,12 +16,7 @@ (declare-type swamp-spike process-drawable) (declare-type swampgate swamp-spike) -(define-extern swamp-rock-idle (state swamp-rock)) ;; unknown type -(define-extern swamp-rock-break (state swamp-rock)) ;; unknown type -(define-extern balance-plat-idle (state balance-plat)) ;; unknown type -(define-extern swamp-spike-gate-down (state swampgate)) ;; unknown type -(define-extern swamp-spike-gate-up (state swampgate)) ;; unknown type -(define-extern swamp-spike-idle (state swamp-spike)) ;; unknown type +(define-extern swamp-spike-gate-down (state swampgate)) ;; DECOMP BEGINS @@ -162,6 +157,9 @@ (:methods (init! (_type_) symbol 20) ) + (:states + swamp-spike-idle + ) ) @@ -271,7 +269,7 @@ (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) ) ) - (when (logtest? (-> self draw status) 8) + (when (logtest? (-> self draw status) (draw-status drwf03)) (let ((s5-3 (get-process *default-dead-pool* part-tracker #x4000))) (when s5-3 (let ((t9-11 (method-of-type part-tracker activate))) @@ -318,7 +316,7 @@ (until (< (get-current-phase (-> self sync)) 0.5) (suspend) ) - (when (logtest? (-> self draw status) 8) + (when (logtest? (-> self draw status) (draw-status drwf03)) (let ((s5-4 (get-process *default-dead-pool* part-tracker #x4000))) (when s5-4 (let ((t9-18 (method-of-type part-tracker activate))) @@ -493,6 +491,10 @@ :method-count-assert 21 :size-assert #xc0 :flag-assert #x15005000c0 + (:states + swamp-spike-gate-down + swamp-spike-gate-up + ) ) @@ -518,6 +520,9 @@ :method-count-assert 20 :size-assert #xc8 :flag-assert #x14006000c8 + (:states + balance-plat-idle + ) ) @@ -631,6 +636,10 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + swamp-rock-break + swamp-rock-idle + ) ) diff --git a/goal_src/levels/swamp/swamp-rat-nest.gc b/goal_src/levels/swamp/swamp-rat-nest.gc index 47121e9a67..ee12529133 100644 --- a/goal_src/levels/swamp/swamp-rat-nest.gc +++ b/goal_src/levels/swamp/swamp-rat-nest.gc @@ -8,15 +8,6 @@ (declare-type swamp-rat-nest-dummy process-drawable) (declare-type swamp-rat-nest process-drawable) -(define-extern swamp-rat-nest-idle (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-active (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-gestate (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-die (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-victory (state swamp-rat-nest)) ;; unknown type -(define-extern swamp-rat-nest-dummy-idle (state swamp-rat-nest-dummy)) ;; unknown type -(define-extern swamp-rat-nest-dummy-hit (state swamp-rat-nest-dummy)) ;; unknown type -(define-extern swamp-rat-nest-dummy-die (state swamp-rat-nest-dummy)) ;; unknown type -(define-extern swamp-rat-nest-dummy-shake (state swamp-rat-nest-dummy)) ;; unknown type ;; DECOMP BEGINS @@ -726,6 +717,13 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + swamp-rat-nest-active + swamp-rat-nest-die + swamp-rat-nest-gestate + swamp-rat-nest-idle + swamp-rat-nest-victory + ) ) @@ -746,6 +744,12 @@ (dummy-20 (_type_) none 20) (dummy-21 (_type_) int 21) ) + (:states + swamp-rat-nest-dummy-die + swamp-rat-nest-dummy-hit + swamp-rat-nest-dummy-idle + swamp-rat-nest-dummy-shake + ) ) diff --git a/goal_src/levels/swamp/swamp-rat.gc b/goal_src/levels/swamp/swamp-rat.gc index 03344fea64..a184f34017 100644 --- a/goal_src/levels/swamp/swamp-rat.gc +++ b/goal_src/levels/swamp/swamp-rat.gc @@ -27,6 +27,9 @@ :method-count-assert 76 :size-assert #x1f0 :flag-assert #x4c018001f0 + (:states + swamp-rat-spawn + ) ) @@ -38,93 +41,64 @@ :longest-edge (meters 1) ) -(defmethod - dummy-44 - swamp-rat - ((obj swamp-rat) (arg0 process) (arg1 event-message-block)) - (when - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg1 param 0)) - (-> obj collide-info) - (the-as uint 1) - ) - (when - (nav-enemy-send-attack - arg0 - (the-as touching-shapes-entry (-> arg1 param 0)) - 'generic - ) - (let* ((s5-1 (-> obj parent)) - (a0-4 (if (and (nonzero? s5-1) (type-type? pointer process-drawable)) - s5-1 - ) +(defmethod dummy-44 swamp-rat ((obj swamp-rat) (arg0 process) (arg1 event-message-block)) + (when ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg1 param 0)) + (-> obj collide-info) + (the-as uint 1) + ) + (when (nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic) + (let* ((s5-1 (-> obj parent)) + (a0-4 (if (and (nonzero? s5-1) (type-type? pointer process-drawable)) + s5-1 + ) + ) + ) + (if a0-4 + (send-event (the-as process-tree a0-4) 'victory) + (go (method-of-object obj nav-enemy-victory)) ) - ) - (if a0-4 - (send-event (the-as process-tree a0-4) 'victory) - (go (method-of-object obj nav-enemy-victory)) + ) ) - ) ) - ) ) ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 7] -(defbehavior - swamp-rat-default-event-handler swamp-rat - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) +(defbehavior swamp-rat-default-event-handler swamp-rat ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((v1-0 arg2)) - (the-as object (if (= v1-0 'victory) - (go-virtual nav-enemy-victory) - (nav-enemy-default-event-handler arg0 arg1 arg2 arg3) - ) + (the-as object (if (= v1-0 'victory) + (go-virtual nav-enemy-victory) + (nav-enemy-default-event-handler arg0 arg1 arg2 arg3) + ) + ) ) - ) ) swamp-rat-default-event-handler (defmethod common-post swamp-rat ((obj swamp-rat)) (when (logtest? (-> obj collide-info status) 1) - (vector-deg-seek - (-> obj up-vector) - (-> obj up-vector) - (-> obj collide-info surface-normal) - 910.2222 + (vector-deg-seek (-> obj up-vector) (-> obj up-vector) (-> obj collide-info surface-normal) 910.2222) + (vector-normalize! (-> obj up-vector) 1.0) ) - (vector-normalize! (-> obj up-vector) 1.0) - ) (forward-up-nopitch->quaternion - (-> obj collide-info quat) - (vector-z-quaternion! (new-stack-vector0) (-> obj collide-info quat)) - (-> obj up-vector) - ) + (-> obj collide-info quat) + (vector-z-quaternion! (new-stack-vector0) (-> obj collide-info quat)) + (-> obj up-vector) + ) ((the-as (function nav-enemy none) (find-parent-method swamp-rat 39)) obj) (none) ) (defmethod TODO-RENAME-38 swamp-rat ((obj swamp-rat)) - (dummy-59 - (-> obj collide-info) - (-> obj collide-info transv) - (the-as uint 1) - 8192.0 - #t - #f - #f - ) + (dummy-59 (-> obj collide-info) (-> obj collide-info transv) (the-as uint 1) 8192.0 #t #f #f) (when (< (-> obj collide-info trans y) (-> obj min-height)) - (let ((a1-1 (new 'stack-no-clear 'vector))) - (set! (-> a1-1 quad) (-> obj collide-info trans quad)) - (set! (-> a1-1 y) (-> obj min-height)) - (TODO-RENAME-61 - (-> obj collide-info) - a1-1 - (-> obj collide-info transv) - *y-vector* - ) + (let ((a1-1 (new 'stack-no-clear 'vector))) + (set! (-> a1-1 quad) (-> obj collide-info trans quad)) + (set! (-> a1-1 y) (-> obj min-height)) + (TODO-RENAME-61 (-> obj collide-info) a1-1 (-> obj collide-info transv) *y-vector*) + ) ) - ) 0 (none) ) @@ -134,10 +108,7 @@ swamp-rat-default-event-handler :event swamp-rat-default-event-handler :post - (behavior () - (ja-post) - (none) - ) + (behavior () (ja-post) (none)) ) (defstate nav-enemy-patrol (swamp-rat) @@ -146,64 +117,37 @@ swamp-rat-default-event-handler swamp-rat-default-event-handler :code (behavior () - (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) - (while #t - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info walk-anim)) - ) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info walk-anim)) - ) - data - 0 - length + (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) + (while #t + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info walk-anim))) + ) + (set! (-> a0-1 param 0) + (the float + (+ (-> (the-as art-joint-anim (-> self draw art-group data (-> self nav-info walk-anim))) data 0 length) -1) + ) + ) + (set! (-> a0-1 param 1) f30-0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data (-> self nav-info walk-anim))) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) f30-0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-1 param 1) f30-0) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as - art-joint-anim - (-> self draw art-group data (-> self nav-info walk-anim)) - ) - num-func-seek! - ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) - ) - (set! (-> a0-2 param 1) f30-0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-notice (swamp-rat) @@ -212,57 +156,35 @@ swamp-rat-default-event-handler swamp-rat-default-event-handler :code (behavior () - (let ((a0-0 (-> self skel root-channel 0))) - (set! (-> a0-0 param 0) 1.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (ja-channel-push! 1 51) - (let ((gp-0 (-> self skel root-channel 0))) - (set! - (-> gp-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - (set! (-> gp-0 param 0) (ja-aframe 30.0 0)) - (set! (-> gp-0 param 1) 1.0) - (set! (-> gp-0 frame-num) 0.0) - (joint-control-channel-group! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 8)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (ja-blend-eval) - (suspend) - (let ((gp-1 (-> self skel root-channel 0))) - (set! (-> gp-1 param 0) (ja-aframe 30.0 0)) - (set! (-> gp-1 param 1) 1.0) - (joint-control-channel-group-eval! - gp-1 - (the-as art-joint-anim #f) - num-func-seek! + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 param 0) 1.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim #f) num-func-loop!) ) - ) + (ja-channel-push! 1 51) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) + (set! (-> gp-0 param 0) (ja-aframe 30.0 0)) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) 0.0) + (joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 8)) num-func-seek!) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((gp-1 (-> self skel root-channel 0))) + (set! (-> gp-1 param 0) (ja-aframe 30.0 0)) + (set! (-> gp-1 param 1) 1.0) + (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) + (go-virtual nav-enemy-chase) + (none) ) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) - ) - (set! (-> a0-7 param 1) 1.0) - (joint-control-channel-group! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - (go-virtual nav-enemy-chase) - (none) - ) ) (defbehavior swamp-rat-update-wiggle-params swamp-rat () @@ -272,38 +194,31 @@ swamp-rat-default-event-handler (f2-4 (/ 1.0 f2-2)) (f0-2 (+ 1.0 (* 0.2 f0-0))) ) - (set! (-> self delta-wiggle-angle) (* 910.2222 f1-1)) - (set! (-> self wiggle-factor) (* 1.5 f2-4)) - (let ((f0-3 (* 28672.0 f0-2))) - (set! (-> self target-speed) f0-3) - f0-3 + (set! (-> self delta-wiggle-angle) (* 910.2222 f1-1)) + (set! (-> self wiggle-factor) (* 1.5 f2-4)) + (let ((f0-3 (* 28672.0 f0-2))) + (set! (-> self target-speed) f0-3) + f0-3 + ) ) - ) ) (defbehavior swamp-rat-update-wiggle-target swamp-rat ((arg0 vector)) (+! (-> self wiggle-angle) (-> self delta-wiggle-angle)) (if (< 65536.0 (-> self wiggle-angle)) - (set! (-> self wiggle-angle) (+ -65536.0 (-> self wiggle-angle))) - ) + (set! (-> self wiggle-angle) (+ -65536.0 (-> self wiggle-angle))) + ) (let* ((v1-3 (-> self collide-info trans)) (a1-1 (vector-! (new 'stack-no-clear 'vector) v1-3 arg0)) - (s3-0 - (vector-rotate-around-y! (new 'stack-no-clear 'vector) a1-1 16384.0) - ) + (s3-0 (vector-rotate-around-y! (new 'stack-no-clear 'vector) a1-1 16384.0)) (v1-4 - (vector+*! - (new 'stack-no-clear 'vector) - arg0 - s3-0 - (* (-> self wiggle-factor) (sin (-> self wiggle-angle))) + (vector+*! (new 'stack-no-clear 'vector) arg0 s3-0 (* (-> self wiggle-factor) (sin (-> self wiggle-angle)))) ) - ) (v0-3 (-> self nav target-pos)) ) - (set! (-> v0-3 quad) (-> v1-4 quad)) - v0-3 - ) + (set! (-> v0-3 quad) (-> v1-4 quad)) + v0-3 + ) ) (defstate nav-enemy-chase (swamp-rat) @@ -312,67 +227,42 @@ swamp-rat-default-event-handler swamp-rat-default-event-handler :trans (behavior () - (if - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - (the-as int (-> self chase-rest-time)) - ) - (go-virtual nav-enemy-victory) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self chase-rest-time))) + (go-virtual nav-enemy-victory) + ) + ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) + (none) ) - ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) - (none) - ) :code (behavior () - (set! - (-> self target-nav-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (set! - (-> self wiggle-time) - (the-as uint (+ (-> *display* base-frame-counter) -3000)) - ) - (set! (-> self wiggle-angle) 0.0) - (set! (-> self chase-rest-time) (the-as uint (rand-vu-int-range 300 1200))) - (ja-channel-push! 1 51) - (let ((gp-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - gp-0 - (the-as art-joint-anim (-> self draw art-group data 9)) - num-func-identity - ) - (set! (-> gp-0 frame-num) 0.0) - ) - (while #t - (when - (>= - (- (-> *display* base-frame-counter) (the-as int (-> self wiggle-time))) - 300 + (set! (-> self target-nav-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wiggle-time) (the-as uint (+ (-> *display* base-frame-counter) -3000))) + (set! (-> self wiggle-angle) 0.0) + (set! (-> self chase-rest-time) (the-as uint (rand-vu-int-range 300 1200))) + (ja-channel-push! 1 51) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 9)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) ) - (set! - (-> self wiggle-time) - (the-as uint (-> *display* base-frame-counter)) + (while #t + (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wiggle-time))) 300) + (set! (-> self wiggle-time) (the-as uint (-> *display* base-frame-counter))) + (swamp-rat-update-wiggle-params) + ) + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-loop!) + ) ) - (swamp-rat-update-wiggle-params) - ) - (suspend) - (let ((a0-4 (-> self skel root-channel 0))) - (set! (-> a0-4 param 0) 1.0) - (joint-control-channel-group-eval! - a0-4 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) + (none) ) - (none) - ) :post - (behavior () - (swamp-rat-update-wiggle-target (target-pos 0)) - (nav-enemy-travel-post) - (none) - ) + (behavior () (swamp-rat-update-wiggle-target (target-pos 0)) (nav-enemy-travel-post) (none)) ) (defstate nav-enemy-stop-chase (swamp-rat) @@ -389,81 +279,51 @@ swamp-rat-default-event-handler swamp-rat-default-event-handler :code (behavior () - (set! (-> self rotate-speed) 1456355.5) - (set! (-> self turn-time) 22) - (let ((f30-0 (rand-vu-float-range 0.8 1.2))) - (while #t - (logior! (-> self nav-enemy-flags) 16) - (ja-channel-push! 1 30) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - (set! - (-> a0-2 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 10)) - data - 0 - length + (set! (-> self rotate-speed) 1456355.5) + (set! (-> self turn-time) 22) + (let ((f30-0 (rand-vu-float-range 0.8 1.2))) + (while #t + (logior! (-> self nav-enemy-flags) 16) + (ja-channel-push! 1 30) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + (set! (-> a0-2 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1)) + ) + (set! (-> a0-2 param 1) f30-0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1))) + (set! (-> a0-3 param 1) f30-0) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 param 0) 1.0) + (joint-control-channel-group! a0-5 (the-as art-joint-anim #f) num-func-loop!) + ) + (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) + (let ((gp-0 (rand-vu-int-range 300 600)) + (s5-0 (-> *display* base-frame-counter)) + ) + (until (>= (- (-> *display* base-frame-counter) s5-0) gp-0) + (let ((v1-33 (-> self skel root-channel 0))) + (set! (-> v1-33 num-func) num-func-identity) + (set! (-> v1-33 frame-num) 0.0) + ) + (ja-blend-eval) + (suspend) + (suspend) + ) ) - -1 - ) ) - ) - (set! (-> a0-2 param 1) f30-0) - (set! (-> a0-2 frame-num) 0.0) - (joint-control-channel-group! - a0-2 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-seek! - ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-3 (-> self skel root-channel 0))) - (set! - (-> a0-3 param 0) - (the float (+ (-> a0-3 frame-group data 0 length) -1)) - ) - (set! (-> a0-3 param 1) f30-0) - (joint-control-channel-group-eval! - a0-3 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (let ((a0-5 (-> self skel root-channel 0))) - (set! (-> a0-5 param 0) 1.0) - (joint-control-channel-group! - a0-5 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) - (let ((gp-0 (rand-vu-int-range 300 600)) - (s5-0 (-> *display* base-frame-counter)) - ) - (until (>= (- (-> *display* base-frame-counter) s5-0) gp-0) - (let ((v1-33 (-> self skel root-channel 0))) - (set! (-> v1-33 num-func) num-func-identity) - (set! (-> v1-33 frame-num) 0.0) - ) - (ja-blend-eval) - (suspend) - (suspend) - ) - ) - ) + (none) ) - (none) - ) ) (defstate nav-enemy-give-up (swamp-rat) @@ -472,104 +332,52 @@ swamp-rat-default-event-handler swamp-rat-default-event-handler :code (behavior () - (ja-channel-push! 1 22) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length + (ja-channel-push! 1 22) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-1 param 1) 1.0) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) + (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) + (nav-enemy-get-new-patrol-point) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-7 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-7 param 1) 1.0) + (set! (-> a0-7 frame-num) 0.0) + (joint-control-channel-group! a0-7 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) ) - (set! (-> a0-2 param 1) 1.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (logclear! (-> self nav flags) (nav-control-flags bit17 bit19)) - (nav-enemy-get-new-patrol-point) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-7 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length + (until (ja-done? 0) + (seek-to-point-toward-point! + (-> self collide-info) + (-> self nav destination-pos) + (-> self rotate-speed) + (-> self turn-time) + ) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1))) + (set! (-> a0-9 param 1) 1.0) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-7 param 1) 1.0) - (set! (-> a0-7 frame-num) 0.0) - (joint-control-channel-group! - a0-7 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) + (go-virtual nav-enemy-patrol) + (none) ) - (until (ja-done? 0) - (seek-to-point-toward-point! - (-> self collide-info) - (-> self nav destination-pos) - (-> self rotate-speed) - (-> self turn-time) - ) - (suspend) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 param 0) - (the float (+ (-> a0-9 frame-group data 0 length) -1)) - ) - (set! (-> a0-9 param 1) 1.0) - (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go-virtual nav-enemy-patrol) - (none) - ) ) (defstate nav-enemy-attack (swamp-rat) @@ -578,53 +386,27 @@ swamp-rat-default-event-handler swamp-rat-default-event-handler :code (behavior () - (ja-channel-push! 1 22) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-1 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length + (ja-channel-push! 1 22) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-1 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1))) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-1 param 1) 1.0) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! - a0-1 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) + (go-virtual nav-enemy-victory) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-2 (-> self skel root-channel 0))) - (set! - (-> a0-2 param 0) - (the float (+ (-> a0-2 frame-group data 0 length) -1)) - ) - (set! (-> a0-2 param 1) 1.0) - (joint-control-channel-group-eval! - a0-2 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go-virtual nav-enemy-victory) - (none) - ) ) (defstate nav-enemy-victory (swamp-rat) @@ -640,203 +422,149 @@ swamp-rat-default-event-handler swamp-rat-default-event-handler :code (behavior () - (let ((gp-0 (new-stack-vector0))) - (set! (-> gp-0 x) 0.0) - (set! (-> gp-0 y) (- (-> *standard-dynamics* gravity-length))) - (set! (-> gp-0 z) 0.0) - (set! (-> gp-0 w) 1.0) - (let ((f30-0 0.125)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (let ((s5-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s5-0 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-identity - ) - (set! (-> s5-0 frame-num) 0.0) + (let ((gp-0 (new-stack-vector0))) + (set! (-> gp-0 x) 0.0) + (set! (-> gp-0 y) (- (-> *standard-dynamics* gravity-length))) + (set! (-> gp-0 z) 0.0) + (set! (-> gp-0 w) 1.0) + (let ((f30-0 0.125)) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (let ((s5-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s5-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> s5-0 frame-num) 0.0) + ) + (while #t + (set! f30-0 (seek f30-0 1.5 0.1)) + (vector-v++! (-> self collide-info transv) gp-0) + (dummy-59 (-> self collide-info) (-> self collide-info transv) (the-as uint 1) 8192.0 #t #f #f) + (when (or + (logtest? (-> self collide-info status) 4) + (or + (< (-> self collide-info trans y) (-> self min-height)) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + ) + ) + 0 + (goto cfg-13) + ) + (vector-float*! (-> self collide-info scale) *identity-vector* f30-0) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) 1.0) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-loop!) + ) + (suspend) + ) + ) ) - (while #t - (set! f30-0 (seek f30-0 1.5 0.1)) - (vector-v++! (-> self collide-info transv) gp-0) - (dummy-59 - (-> self collide-info) - (-> self collide-info transv) - (the-as uint 1) - 8192.0 - #t - #f - #f - ) - (when - (or - (logtest? (-> self collide-info status) 4) - (or - (< (-> self collide-info trans y) (-> self min-height)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) - ) + (label cfg-13) + (if (< (-> self collide-info trans y) (-> self min-height)) + (set! (-> self collide-info trans y) (-> self min-height)) ) - 0 - (goto cfg-13) - ) - (vector-float*! (-> self collide-info scale) *identity-vector* f30-0) - (let ((a0-6 (-> self skel root-channel 0))) - (set! (-> a0-6 param 0) 1.0) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) + (set! (-> self collide-info transv quad) (-> *null-vector* quad)) + (vector-float*! (-> self collide-info scale) *identity-vector* 1.5) + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 frame-group) (the-as art-joint-anim (-> self draw art-group data 6))) + (set! (-> a0-10 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 6)) data 0 length) -1)) + ) + (set! (-> a0-10 param 1) 1.0) + (set! (-> a0-10 frame-num) 0.0) + (joint-control-channel-group! a0-10 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!) + ) + (until (ja-done? 0) (suspend) - ) - ) - ) - (label cfg-13) - (if (< (-> self collide-info trans y) (-> self min-height)) - (set! (-> self collide-info trans y) (-> self min-height)) - ) - (set! (-> self collide-info transv quad) (-> *null-vector* quad)) - (vector-float*! (-> self collide-info scale) *identity-vector* 1.5) - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 frame-group) - (the-as art-joint-anim (-> self draw art-group data 6)) - ) - (set! - (-> a0-10 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 6)) - data - 0 - length + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) (the float (+ (-> a0-11 frame-group data 0 length) -1))) + (set! (-> a0-11 param 1) 1.0) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-10 param 1) 1.0) - (set! (-> a0-10 frame-num) 0.0) - (joint-control-channel-group! - a0-10 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-seek! - ) + (if (TODO-RENAME-46 self (-> self nav-info stop-chase-distance)) + (go-virtual nav-enemy-chase) + (go-virtual nav-enemy-idle) + ) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 param 0) - (the float (+ (-> a0-11 frame-group data 0 length) -1)) - ) - (set! (-> a0-11 param 1) 1.0) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (if (TODO-RENAME-46 self (-> self nav-info stop-chase-distance)) - (go-virtual nav-enemy-chase) - (go-virtual nav-enemy-idle) - ) - (none) - ) :post (the-as (function none :behavior swamp-rat) nav-enemy-simple-post) ) -(define - *swamp-rat-nav-enemy-info* - (new 'static 'nav-enemy-info - :idle-anim 4 - :walk-anim 7 - :turn-anim 7 - :notice-anim 8 - :run-anim 9 - :jump-anim 9 - :jump-land-anim 6 - :victory-anim 10 - :taunt-anim 10 - :die-anim 11 - :neck-joint 7 - :run-travel-speed (meters 7.0) - :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) - :run-turn-time (seconds 0.07333333) - :walk-travel-speed (meters 2.0) - :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) - :walk-turn-time (seconds 0.07333333) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 1.0) - :notice-nav-radius (meters 1.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 30.0) - :stop-chase-distance (meters 40.0) - :frustration-distance (meters 3.0) - :frustration-time #x1c2 - :die-anim-hold-frame 20.0 - :jump-anim-start-frame 19.0 - :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) - :jump-height-factor 0.5 - :jump-start-anim-speed 1.0 - :shadow-max-y (meters 1.0) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) - :use-align #f - :draw-shadow #f - :move-to-ground #t - :hover-if-no-ground #f - :use-momentum #f - :use-flee #f - :use-proximity-notice #f - :use-jump-blocked #f - :use-jump-patrol #f - :gnd-collide-with #x1 - :debug-draw-neck #f - :debug-draw-jump #f - ) - ) +(define *swamp-rat-nav-enemy-info* (new 'static 'nav-enemy-info + :idle-anim 4 + :walk-anim 7 + :turn-anim 7 + :notice-anim 8 + :run-anim 9 + :jump-anim 9 + :jump-land-anim 6 + :victory-anim 10 + :taunt-anim 10 + :die-anim 11 + :neck-joint 7 + :run-travel-speed (meters 7.0) + :run-rotate-speed (degrees 7999.9995) + :run-acceleration (meters 1.0) + :run-turn-time (seconds 0.07333333) + :walk-travel-speed (meters 2.0) + :walk-rotate-speed (degrees 7999.9995) + :walk-acceleration (meters 1.0) + :walk-turn-time (seconds 0.07333333) + :attack-shove-back (meters 3.0) + :attack-shove-up (meters 2.0) + :shadow-size (meters 1.0) + :notice-nav-radius (meters 1.0) + :nav-nearest-y-threshold (meters 10.0) + :notice-distance (meters 30.0) + :stop-chase-distance (meters 40.0) + :frustration-distance (meters 3.0) + :frustration-time #x1c2 + :die-anim-hold-frame 20.0 + :jump-anim-start-frame 19.0 + :jump-land-anim-end-frame 10000000000.0 + :jump-height-min (meters 1.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #f + :draw-shadow #f + :move-to-ground #t + :hover-if-no-ground #f + :use-momentum #f + :use-flee #f + :use-proximity-notice #f + :use-jump-blocked #f + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #f + ) + ) (defmethod initialize-collision swamp-rat ((obj swamp-rat)) - (let - ((s5-0 - (new - 'process - 'collide-shape-moving - obj - (collide-list-enum usually-hit-by-player) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s4-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set! (-> s4-0 prim-core offense) 2) + (set-vector! (-> s4-0 local-sphere) 0.0 3686.4001 0.0 3686.4001) + (set-root-prim! s5-0 s4-0) ) - ) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (backup-collide-with-as s5-0) + (set! (-> obj collide-info) s5-0) ) - (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) default-collision-reaction) - (set! - (-> s5-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s4-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) - (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 1)) - (set! (-> s4-0 prim-core offense) 2) - (set-vector! (-> s4-0 local-sphere) 0.0 3686.4001 0.0 3686.4001) - (set-root-prim! s5-0 s4-0) - ) - (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) - (backup-collide-with-as s5-0) - (set! (-> obj collide-info) s5-0) - ) 0 (none) ) @@ -863,14 +591,12 @@ swamp-rat-default-event-handler (none) ) -(defbehavior - swamp-rat-init-by-other swamp-rat - ((arg0 billy) (arg1 vector) (arg2 vector) (arg3 pickup-type) (arg4 symbol)) +(defbehavior swamp-rat-init-by-other swamp-rat ((arg0 billy) (arg1 vector) (arg2 vector) (arg3 pickup-type) (arg4 symbol)) (initialize-collision self) (if arg4 - (logclear! (-> self mask) (process-mask actor-pause)) - (logior! (-> self mask) (process-mask actor-pause)) - ) + (logclear! (-> self mask) (process-mask actor-pause)) + (logior! (-> self mask) (process-mask actor-pause)) + ) (set! (-> self collide-info trans quad) (-> arg1 quad)) (forward-up->quaternion (-> self collide-info quat) arg2 *up-vector*) (vector-float*! (-> self collide-info scale) *identity-vector* 1.5) diff --git a/goal_src/levels/village1/fishermans-boat.gc b/goal_src/levels/village1/fishermans-boat.gc index 93d3e3338b..19de330aeb 100644 --- a/goal_src/levels/village1/fishermans-boat.gc +++ b/goal_src/levels/village1/fishermans-boat.gc @@ -6,46 +6,36 @@ ;; dgos: L1, VI1 (declare-type fishermans-boat rigid-body-platform) -(define-extern fishermans-boat-player-control (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-entering-village (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-entering-misty (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-ride-to-village1 (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-ride-to-misty (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-leaving-village (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-leaving-misty (state fishermans-boat)) ;; unknown type -(define-extern fishermans-boat-measurements (state fishermans-boat)) ;; unknown type ;; DECOMP BEGINS -(define - *fishermans-boat-constants* - (new 'static 'rigid-body-platform-constants - :drag-factor 2.0 - :buoyancy-factor 1.5 - :max-buoyancy-depth (meters 1.0) - :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 40.0) - :player-bonk-factor 1.0 - :player-dive-factor 1.0 - :player-force-distance (meters 10.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) - :linear-damping 1.0 - :angular-damping 1.0 - :control-point-count 6 - :mass 2.0 - :inertial-tensor-x (meters 4.0) - :inertial-tensor-y (meters 10.0) - :inertial-tensor-z (meters 15.0) - :cm-joint-y (meters 3.0) - :cm-joint-z (meters 1.0) - :idle-distance (meters 50.0) - :platform #t - :sound-name #f - ) - ) +(define *fishermans-boat-constants* (new 'static 'rigid-body-platform-constants + :drag-factor 2.0 + :buoyancy-factor 1.5 + :max-buoyancy-depth (meters 1.0) + :gravity-factor 1.0 + :gravity (meters 80.0) + :player-weight (meters 40.0) + :player-bonk-factor 1.0 + :player-dive-factor 1.0 + :player-force-distance (meters 10.0) + :player-force-clamp (meters 1000000.0) + :player-force-timeout #x1e + :explosion-force (meters 1000.0) + :linear-damping 1.0 + :angular-damping 1.0 + :control-point-count 6 + :mass 2.0 + :inertial-tensor-x (meters 4.0) + :inertial-tensor-y (meters 10.0) + :inertial-tensor-z (meters 15.0) + :cm-joint-y (meters 3.0) + :cm-joint-z (meters 1.0) + :idle-distance (meters 50.0) + :platform #t + :sound-name #f + ) + ) (deftype boat-stabilizer (structure) ((local-pos vector :inline :offset-assert 0) @@ -83,31 +73,25 @@ arg1 ) -(defmethod - distance-to-next-point - vehicle-path - ((obj vehicle-path) (arg0 int) (arg1 vector)) +(defmethod distance-to-next-point vehicle-path ((obj vehicle-path) (arg0 int) (arg1 vector)) (let ((a2-1 (+ arg0 1))) - (if (>= a2-1 (-> obj point-count)) - (set! a2-1 0) + (if (>= a2-1 (-> obj point-count)) + (set! a2-1 0) + ) + (vector-! arg1 (-> obj point-array a2-1) (-> obj point-array arg0)) ) - (vector-! arg1 (-> obj point-array a2-1) (-> obj point-array arg0)) - ) (set! (-> arg1 y) 0.0) (vector-normalize! arg1 1.0) arg1 ) -(defmethod - add-point! - vehicle-path - ((obj vehicle-path) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) +(defmethod add-point! vehicle-path ((obj vehicle-path) (arg0 float) (arg1 float) (arg2 float) (arg3 float)) (let ((v1-0 (-> obj point-count))) - (when (< v1-0 10) - (set-vector! (-> obj point-array v1-0) arg0 arg1 arg2 arg3) - (+! (-> obj point-count) 1) + (when (< v1-0 10) + (set-vector! (-> obj point-array v1-0) arg0 arg1 arg2 arg3) + (+! (-> obj point-count) 1) + ) ) - ) 0 (none) ) @@ -118,146 +102,135 @@ (s4-0 (new 'stack-no-clear 'vector)) (s3-0 (new 'stack-no-clear 'vector)) ) - (set! (-> s5-0 y) 0.0) - (set! (-> s5-0 w) 1.0) - (dotimes (s2-0 (-> obj point-count)) - (let ((v1-1 (mod (+ s2-0 1) (-> obj point-count)))) - (set! (-> s4-0 quad) (-> obj point-array s2-0 quad)) - (set! (-> s3-0 quad) (-> obj point-array v1-1 quad)) - ) - (let ((f30-0 (-> s4-0 y)) - (f28-0 (-> s4-0 w)) + (set! (-> s5-0 y) 0.0) + (set! (-> s5-0 w) 1.0) + (dotimes (s2-0 (-> obj point-count)) + (let ((v1-1 (mod (+ s2-0 1) (-> obj point-count)))) + (set! (-> s4-0 quad) (-> obj point-array s2-0 quad)) + (set! (-> s3-0 quad) (-> obj point-array v1-1 quad)) + ) + (let ((f30-0 (-> s4-0 y)) + (f28-0 (-> s4-0 w)) + ) + (set! (-> s5-0 x) (* f30-0 (cos f28-0))) + (set! (-> s5-0 z) (* f30-0 (sin f28-0))) + ) + (set! (-> s4-0 y) 0.0) + (set! (-> s4-0 w) 1.0) + (set! (-> s3-0 y) 0.0) + (set! (-> s3-0 w) 1.0) + (add-debug-line + #t + (bucket-id debug-draw1) + s4-0 + s3-0 + (new 'static 'rgba :r #xff :g #xff :a #x80) + #f + (the-as rgba -1) + ) + (add-debug-vector + #t + (bucket-id debug-draw1) + s4-0 + s5-0 + (meters 0.00024414062) + (new 'static 'rgba :r #xff :a #x80) + ) + (let ((s1-0 add-debug-text-3d) + (s0-0 #t) + ) + (set! sv-64 68) + (set! sv-80 format) + (let ((a0-9 (clear *temp-string*)) + (a1-6 "~D") + (a2-2 s2-0) + ) + (sv-80 a0-9 a1-6 a2-2) ) - (set! (-> s5-0 x) (* f30-0 (cos f28-0))) - (set! (-> s5-0 z) (* f30-0 (sin f28-0))) - ) - (set! (-> s4-0 y) 0.0) - (set! (-> s4-0 w) 1.0) - (set! (-> s3-0 y) 0.0) - (set! (-> s3-0 w) 1.0) - (add-debug-line - #t - (bucket-id debug-draw1) - s4-0 - s3-0 - (new 'static 'rgba :r #xff :g #xff :a #x80) - #f - (the-as rgba -1) - ) - (add-debug-vector - #t - (bucket-id debug-draw1) - s4-0 - s5-0 - (meters 0.00024414062) - (new 'static 'rgba :r #xff :a #x80) - ) - (let ((s1-0 add-debug-text-3d) - (s0-0 #t) + (let ((a2-3 *temp-string*) + (a3-2 s4-0) + (t0-2 4) + (t1-2 #f) + ) + (s1-0 s0-0 (the-as bucket-id sv-64) a2-3 a3-2 (the-as font-color t0-2) (the-as vector2h t1-2)) ) - (set! sv-64 68) - (set! sv-80 format) - (let ((a0-9 (clear *temp-string*)) - (a1-6 "~D") - (a2-2 s2-0) - ) - (sv-80 a0-9 a1-6 a2-2) + ) ) - (let ((a2-3 *temp-string*) - (a3-2 s4-0) - (t0-2 4) - (t1-2 #f) - ) - (s1-0 - s0-0 - (the-as bucket-id sv-64) - a2-3 - a3-2 - (the-as font-color t0-2) - (the-as vector2h t1-2) - ) - ) - ) ) - ) #f ) -(define - *boat-turning-radius-table* - (new 'static 'array float 32 - 409600.0 - 90931.2 - 94699.52 - 95600.64 - 100802.56 - 97566.72 - 99246.08 - 98713.6 - 95846.4 - 100474.88 - 88842.24 - 105472.0 - 95436.8 - 97525.76 - 102481.92 - 96501.76 - 97198.08 - 93102.08 - 98631.68 - 100270.08 - 96788.48 - 100884.48 - 97402.88 - 98590.72 - 97280.0 - 100065.28 - 104079.36 - 92610.56 - 97034.24 - 88309.76 - 0.0 - 0.0 - ) - ) +(define *boat-turning-radius-table* (new 'static 'array float 32 + 409600.0 + 90931.2 + 94699.52 + 95600.64 + 100802.56 + 97566.72 + 99246.08 + 98713.6 + 95846.4 + 100474.88 + 88842.24 + 105472.0 + 95436.8 + 97525.76 + 102481.92 + 96501.76 + 97198.08 + 93102.08 + 98631.68 + 100270.08 + 96788.48 + 100884.48 + 97402.88 + 98590.72 + 97280.0 + 100065.28 + 104079.36 + 92610.56 + 97034.24 + 88309.76 + 0.0 + 0.0 + ) + ) -(define - *boat-throttle-control-table* - (new 'static 'array float 32 - 0.0 - 0.031 - 0.0646 - 0.0952 - 0.1237 - 0.1508 - 0.1753 - 0.2018 - 0.2231 - 0.2473 - 0.2695 - 0.2904 - 0.3119 - 0.3312 - 0.3514 - 0.3701 - 0.3906 - 0.4148 - 0.4272 - 0.4483 - 0.4686 - 0.4856 - 0.5096 - 0.5203 - 0.5507 - 0.5697 - 0.5856 - 0.6184 - 0.6366 - 0.6694 - 0.0 - 0.0 - ) - ) +(define *boat-throttle-control-table* (new 'static 'array float 32 + 0.0 + 0.031 + 0.0646 + 0.0952 + 0.1237 + 0.1508 + 0.1753 + 0.2018 + 0.2231 + 0.2473 + 0.2695 + 0.2904 + 0.3119 + 0.3312 + 0.3514 + 0.3701 + 0.3906 + 0.4148 + 0.4272 + 0.4483 + 0.4686 + 0.4856 + 0.5096 + 0.5203 + 0.5507 + 0.5697 + 0.5856 + 0.6184 + 0.6366 + 0.6694 + 0.0 + 0.0 + ) + ) (deftype vehicle-controller (structure) ((path vehicle-path :offset-assert 0) @@ -296,242 +269,176 @@ (defmethod relocate vehicle-controller ((obj vehicle-controller) (arg0 int)) (if (nonzero? (-> obj path)) - (&+! (-> obj path) arg0) - ) + (&+! (-> obj path) arg0) + ) (the-as vehicle-controller 0) ) -(defmethod - TODO-RENAME-12 - vehicle-controller - ((obj vehicle-controller) (arg0 int) (arg1 vector)) +(defmethod TODO-RENAME-12 vehicle-controller ((obj vehicle-controller) (arg0 int) (arg1 vector)) (when (< arg0 (get-point-count (-> obj path))) - (set! (-> obj path-dest-index) arg0) - (nth-point (-> obj path) arg0 (-> obj path-dest-point)) - (let ((f30-0 (-> obj path-dest-point y)) - (f28-0 (-> obj path-dest-point w)) - ) - (set! (-> obj path-dest-velocity x) (* f30-0 (cos f28-0))) - (set! (-> obj path-dest-velocity z) (* f30-0 (sin f28-0))) - ) - (set! (-> obj path-dest-velocity y) 0.0) - (set! (-> obj path-dest-velocity w) 1.0) - (set! (-> obj path-dest-point y) 0.0) - (set! (-> obj path-dest-point w) 1.0) - (let ((s5-1 (new 'stack-no-clear 'vector))) - (let ((s3-0 (new 'stack-no-clear 'vector))) - (vector-! s3-0 (-> obj path-dest-point) arg1) - (set! (-> s5-1 quad) (-> obj path-dest-velocity quad)) - (set! (-> s5-1 x) (-> obj path-dest-velocity z)) - (set! (-> s5-1 z) (- (-> obj path-dest-velocity x))) - (vector-xz-normalize! s5-1 1.0) - (set! (-> obj left-circle) 1) - (when (< 0.0 (vector-dot s3-0 s5-1)) - (set! (-> obj left-circle) 0) - (vector-float*! s5-1 s5-1 -1.0) + (set! (-> obj path-dest-index) arg0) + (nth-point (-> obj path) arg0 (-> obj path-dest-point)) + (let ((f30-0 (-> obj path-dest-point y)) + (f28-0 (-> obj path-dest-point w)) + ) + (set! (-> obj path-dest-velocity x) (* f30-0 (cos f28-0))) + (set! (-> obj path-dest-velocity z) (* f30-0 (sin f28-0))) ) - ) - (vector+*! - (-> obj dest-circle) - (-> obj path-dest-point) - s5-1 - (-> obj circle-radius) - ) + (set! (-> obj path-dest-velocity y) 0.0) + (set! (-> obj path-dest-velocity w) 1.0) + (set! (-> obj path-dest-point y) 0.0) + (set! (-> obj path-dest-point w) 1.0) + (let ((s5-1 (new 'stack-no-clear 'vector))) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (vector-! s3-0 (-> obj path-dest-point) arg1) + (set! (-> s5-1 quad) (-> obj path-dest-velocity quad)) + (set! (-> s5-1 x) (-> obj path-dest-velocity z)) + (set! (-> s5-1 z) (- (-> obj path-dest-velocity x))) + (vector-xz-normalize! s5-1 1.0) + (set! (-> obj left-circle) 1) + (when (< 0.0 (vector-dot s3-0 s5-1)) + (set! (-> obj left-circle) 0) + (vector-float*! s5-1 s5-1 -1.0) + ) + ) + (vector+*! (-> obj dest-circle) (-> obj path-dest-point) s5-1 (-> obj circle-radius)) + ) + (set! (-> obj dest-circle w) (-> obj circle-radius)) ) - (set! (-> obj dest-circle w) (-> obj circle-radius)) - ) 0 (none) ) -(defmethod - move-to-next-point - vehicle-controller - ((obj vehicle-controller) (arg0 vector)) +(defmethod move-to-next-point vehicle-controller ((obj vehicle-controller) (arg0 vector)) (let ((s4-0 (+ (-> obj path-dest-index) 1))) - (if (>= s4-0 (get-point-count (-> obj path))) - (set! s4-0 0) + (if (>= s4-0 (get-point-count (-> obj path))) + (set! s4-0 0) + ) + (TODO-RENAME-12 obj s4-0 arg0) ) - (TODO-RENAME-12 obj s4-0 arg0) - ) 0 (none) ) -(defmethod - TODO-RENAME-14 - vehicle-controller - ((obj vehicle-controller) (arg0 vector) (arg1 vector)) +(defmethod TODO-RENAME-14 vehicle-controller ((obj vehicle-controller) (arg0 vector) (arg1 vector)) (let ((s5-0 (new 'stack-no-clear 'vector)) (s3-0 (new 'stack-no-clear 'vector)) ) - (vector-! s5-0 (-> obj dest-circle) arg0) - (let ((f30-0 (vector-xz-length s5-0)) - (f28-0 (-> obj dest-circle w)) - ) - (if (< f30-0 f28-0) - (set! f28-0 (* 0.9 f30-0)) - ) - (vector-normalize! s5-0 1.0) - (set! (-> s3-0 x) (-> s5-0 z)) - (set! (-> s3-0 z) (- (-> s5-0 x))) - (if (= (-> obj left-circle) 1) - (vector-float*! s3-0 s3-0 -1.0) - ) - (let* ((f0-5 f30-0) - (f0-7 (* f0-5 f0-5)) - (f1-0 f28-0) - (f0-9 (sqrtf (- f0-7 (* f1-0 f1-0)))) - (f28-1 (/ (* f28-0 f0-9) f30-0)) - ) - (let ((f0-12 (/ (* f0-9 f0-9) f30-0))) - (set! (-> arg1 quad) (-> arg0 quad)) - (vector+*! arg1 (-> obj target-point) s5-0 f0-12) + (vector-! s5-0 (-> obj dest-circle) arg0) + (let ((f30-0 (vector-xz-length s5-0)) + (f28-0 (-> obj dest-circle w)) + ) + (if (< f30-0 f28-0) + (set! f28-0 (* 0.9 f30-0)) + ) + (vector-normalize! s5-0 1.0) + (set! (-> s3-0 x) (-> s5-0 z)) + (set! (-> s3-0 z) (- (-> s5-0 x))) + (if (= (-> obj left-circle) 1) + (vector-float*! s3-0 s3-0 -1.0) + ) + (let* ((f0-5 f30-0) + (f0-7 (* f0-5 f0-5)) + (f1-0 f28-0) + (f0-9 (sqrtf (- f0-7 (* f1-0 f1-0)))) + (f28-1 (/ (* f28-0 f0-9) f30-0)) + ) + (let ((f0-12 (/ (* f0-9 f0-9) f30-0))) + (set! (-> arg1 quad) (-> arg0 quad)) + (vector+*! arg1 (-> obj target-point) s5-0 f0-12) + ) + (vector+*! arg1 (-> obj target-point) s3-0 f28-1) + ) ) - (vector+*! arg1 (-> obj target-point) s3-0 f28-1) - ) ) - ) 0 (none) ) -(defmethod - dummy-15 - vehicle-controller - ((obj vehicle-controller) (arg0 collide-shape-moving)) +(defmethod dummy-15 vehicle-controller ((obj vehicle-controller) (arg0 collide-shape-moving)) (TODO-RENAME-14 obj (-> arg0 trans) (-> obj target-point)) (let ((s3-0 (new 'stack-no-clear 'vector)) (s4-0 (new 'stack-no-clear 'vector)) ) - (set! (-> s3-0 quad) (-> obj path-dest-velocity quad)) - (vector-xz-normalize! s3-0 1.0) - (vector-! s4-0 (-> obj path-dest-point) (-> arg0 trans)) - (let ((f30-0 (vector-dot s3-0 s4-0))) - (if (and (< (vector-xz-length s4-0) (-> obj circle-radius)) (< f30-0 0.0)) - (move-to-next-point obj (-> arg0 trans)) - ) - ) - ) - (let - ((s4-2 - (max - 0 - (min - (the - int - (/ (vector-xz-length (-> obj path-dest-velocity)) (-> obj table-step)) - ) - (+ (-> obj table-length) -1) - ) + (set! (-> s3-0 quad) (-> obj path-dest-velocity quad)) + (vector-xz-normalize! s3-0 1.0) + (vector-! s4-0 (-> obj path-dest-point) (-> arg0 trans)) + (let ((f30-0 (vector-dot s3-0 s4-0))) + (if (and (< (vector-xz-length s4-0) (-> obj circle-radius)) (< f30-0 0.0)) + (move-to-next-point obj (-> arg0 trans)) + ) ) - ) ) - (set! (-> obj throttle) (-> obj throttle-control-table s4-2)) - ) + (let ((s4-2 (max 0 (min + (the int (/ (vector-xz-length (-> obj path-dest-velocity)) (-> obj table-step))) + (+ (-> obj table-length) -1) + ) + ) + ) + ) + (set! (-> obj throttle) (-> obj throttle-control-table s4-2)) + ) (let ((s3-1 (new 'stack-no-clear 'vector)) (s4-3 (new 'stack-no-clear 'vector)) ) - (vector-z-quaternion! s3-1 (-> arg0 quat)) - (vector-x-quaternion! s4-3 (-> arg0 quat)) - (let* ((v1-16 (-> arg0 trans)) - (f0-9 - (- (vector-dot s3-1 (-> obj target-point)) (vector-dot s3-1 v1-16)) + (vector-z-quaternion! s3-1 (-> arg0 quat)) + (vector-x-quaternion! s4-3 (-> arg0 quat)) + (let* ((v1-16 (-> arg0 trans)) + (f0-9 (- (vector-dot s3-1 (-> obj target-point)) (vector-dot s3-1 v1-16))) + (f3-0 (- (vector-dot s4-3 (-> obj target-point)) (vector-dot s4-3 v1-16))) ) - (f3-0 - (- (vector-dot s4-3 (-> obj target-point)) (vector-dot s4-3 v1-16)) - ) - ) - (set! - (-> obj steering) - (fmax -1.0 (fmin 1.0 (/ (* 4.0 f3-0) (fmax 4096.0 f0-9)))) - ) + (set! (-> obj steering) (fmax -1.0 (fmin 1.0 (/ (* 4.0 f3-0) (fmax 4096.0 f0-9))))) + ) ) - ) 0 0 (none) ) (defmethod dummy-11 vehicle-controller ((obj vehicle-controller)) - (format - #t - "(define *turning-radius-table* (new 'static 'inline-array 'float 0~%" - ) + (format #t "(define *turning-radius-table* (new 'static 'inline-array 'float 0~%") (dotimes (s5-0 (-> obj table-length)) - (format #t " (meters ~4,,2M)~%" (-> obj turning-radius-table s5-0)) - ) + (format #t " (meters ~4,,2M)~%" (-> obj turning-radius-table s5-0)) + ) (format #t " )~%") (format #t " )~%") - (format - #t - "(define *throttle-control-table* (new 'static 'inline-array 'float 0~%" - ) + (format #t "(define *throttle-control-table* (new 'static 'inline-array 'float 0~%") (dotimes (s5-1 (-> obj table-length)) - (format #t " ~f~%" (-> obj throttle-control-table s5-1)) - ) + (format #t " ~f~%" (-> obj throttle-control-table s5-1)) + ) (format #t " )~%") (format #t " )~%") 0 (none) ) -(defmethod - TODO-RENAME-10 - vehicle-controller - ((obj vehicle-controller) (arg0 vector) (arg1 float) (arg2 int)) +(defmethod TODO-RENAME-10 vehicle-controller ((obj vehicle-controller) (arg0 vector) (arg1 float) (arg2 int)) (let ((s3-0 (new 'stack-no-clear 'vector))) - (set! (-> s3-0 quad) (-> arg0 quad)) - (set! (-> s3-0 y) 0.0) - (vector-xz-normalize! s3-0 1.0) - (cond - ((= arg2 (-> obj sample-index)) - (let* - ((f30-0 - (* - 0.0033333334 - (the - float - (- - (-> *display* base-frame-counter) - (the-as int (-> obj sample-time)) + (set! (-> s3-0 quad) (-> arg0 quad)) + (set! (-> s3-0 y) 0.0) + (vector-xz-normalize! s3-0 1.0) + (cond + ((= arg2 (-> obj sample-index)) + (let* ((f30-0 (* 0.0033333334 (the float (- (-> *display* base-frame-counter) (the-as int (-> obj sample-time)))))) + (f28-0 (* (-> obj table-step) (the float arg2))) + (f0-4 (acos-rad (vector-dot s3-0 (-> obj sample-dir)))) + (f26-0 (/ (* f28-0 f30-0) f0-4)) + ) + (when (and (>= arg2 0) (< arg2 (-> obj table-length))) + (set! (-> obj turning-radius-table arg2) f26-0) + (set! (-> obj throttle-control-table arg2) arg1) + (format #t "sample ~d (~M m/s) angle ~f deg, time ~f sec~%" arg2 f28-0 (* 57.29747 f0-4) f30-0) + (format #t "sample ~d (~M m/s) radius ~M throttle ~f~%" arg2 f28-0 f26-0 arg1) ) - ) ) - ) - (f28-0 (* (-> obj table-step) (the float arg2))) - (f0-4 (acos-rad (vector-dot s3-0 (-> obj sample-dir)))) - (f26-0 (/ (* f28-0 f30-0) f0-4)) ) - (when (and (>= arg2 0) (< arg2 (-> obj table-length))) - (set! (-> obj turning-radius-table arg2) f26-0) - (set! (-> obj throttle-control-table arg2) arg1) - (format - #t - "sample ~d (~M m/s) angle ~f deg, time ~f sec~%" - arg2 - f28-0 - (* 57.29747 f0-4) - f30-0 + (else + (set! (-> obj sample-index) arg2) + (set! (-> obj sample-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj sample-dir quad) (-> s3-0 quad)) ) - (format - #t - "sample ~d (~M m/s) radius ~M throttle ~f~%" - arg2 - f28-0 - f26-0 - arg1 - ) - ) ) - ) - (else - (set! (-> obj sample-index) arg2) - (set! (-> obj sample-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj sample-dir quad) (-> s3-0 quad)) - ) ) - ) 0 (none) ) @@ -539,32 +446,29 @@ (defmethod dummy-16 vehicle-controller ((obj vehicle-controller)) (debug-draw (-> obj path)) (add-debug-sphere - #t - (bucket-id debug-draw1) - (-> obj dest-circle) - (-> obj dest-circle w) - (new 'static 'rgba :g #xff :a #x80) - ) + #t + (bucket-id debug-draw1) + (-> obj dest-circle) + (-> obj dest-circle w) + (new 'static 'rgba :g #xff :a #x80) + ) (add-debug-x - #t - (bucket-id debug-draw1) - (-> obj target-point) - (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - ) + #t + (bucket-id debug-draw1) + (-> obj target-point) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) 0 (none) ) -(defmethod - init! - vehicle-controller - ((obj vehicle-controller) - (arg0 vehicle-path) - (arg1 (pointer float)) - (arg2 (pointer float)) - (arg3 int) - (arg4 float) - ) +(defmethod init! vehicle-controller ((obj vehicle-controller) + (arg0 vehicle-path) + (arg1 (pointer float)) + (arg2 (pointer float)) + (arg3 int) + (arg4 float) + ) (set! (-> obj path) arg0) (set! (-> obj turning-radius-table) arg1) (set! (-> obj throttle-control-table) arg2) @@ -607,6 +511,18 @@ :method-count-assert 35 :size-assert #x520 :flag-assert #x2304b00520 + (:states + fishermans-boat-docked-misty + fishermans-boat-docked-village + fishermans-boat-entering-misty + fishermans-boat-entering-village + fishermans-boat-leaving-misty + fishermans-boat-leaving-village + fishermans-boat-measurements + fishermans-boat-player-control + fishermans-boat-ride-to-misty + fishermans-boat-ride-to-village1 + ) ) @@ -635,12 +551,7 @@ ) (defmethod TODO-RENAME-23 fishermans-boat ((obj fishermans-boat) (arg0 float)) - (local-vars - (sv-128 int) - (sv-144 rigid-body-control-point) - (sv-160 int) - (sv-176 vector) - ) + (local-vars (sv-128 int) (sv-144 rigid-body-control-point) (sv-160 int) (sv-176 vector)) (let ((s4-0 (new 'stack-no-clear 'vector)) (s1-0 (new 'stack-no-clear 'vector)) (s5-0 (new 'stack-no-clear 'vector)) @@ -648,84 +559,80 @@ (s2-0 (new 'stack-no-clear 'vector)) (s3-0 (-> obj rbody matrix)) ) - (set! (-> s2-0 quad) (-> s3-0 vector 2 quad)) - (set! sv-128 0) - (while (< sv-128 6) - (set! sv-144 (-> obj control-point-array data sv-128)) - (vector-matrix*! s5-0 (-> sv-144 local-pos) s3-0) - (set! (-> sv-144 world-pos quad) (-> s5-0 quad)) - (TODO-RENAME-17 (-> obj rbody) s5-0 s1-0) - (set! (-> sv-144 velocity quad) (-> s1-0 quad)) - (set! (-> sv-144 world-pos w) (ocean-get-height s5-0)) - (let* ((f0-2 (- (-> sv-144 world-pos w) (-> s5-0 y))) - (f30-0 (fmin 1.0 (/ f0-2 (-> obj info max-buoyancy-depth)))) - ) - (when (< 0.0 f0-2) - (vector-float*! s4-0 *y-vector* (* 20.0 f0-2 (-> obj rbody mass))) + (set! (-> s2-0 quad) (-> s3-0 vector 2 quad)) + (set! sv-128 0) + (while (< sv-128 6) + (set! sv-144 (-> obj control-point-array data sv-128)) + (vector-matrix*! s5-0 (-> sv-144 local-pos) s3-0) + (set! (-> sv-144 world-pos quad) (-> s5-0 quad)) + (TODO-RENAME-17 (-> obj rbody) s5-0 s1-0) + (set! (-> sv-144 velocity quad) (-> s1-0 quad)) + (set! (-> sv-144 world-pos w) (ocean-get-height s5-0)) + (let* ((f0-2 (- (-> sv-144 world-pos w) (-> s5-0 y))) + (f30-0 (fmin 1.0 (/ f0-2 (-> obj info max-buoyancy-depth)))) + ) + (when (< 0.0 f0-2) + (vector-float*! s4-0 *y-vector* (* 20.0 f0-2 (-> obj rbody mass))) + (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) + (vector-float*! s4-0 *y-vector* (* 1.6 f30-0 (fmax 0.0 (vector-dot s2-0 s1-0)))) + (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) + (vector-float*! s4-0 s1-0 (* -1.0 (-> obj info drag-factor) f30-0)) + (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) + (vector-float*! + s4-0 + (the-as vector (-> s3-0 vector)) + (* -0.5 (vector-dot (the-as vector (-> s3-0 vector)) s1-0)) + ) + (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) + ) + ) + 0 + (set! sv-128 (+ sv-128 1)) + ) + (set! sv-160 0) + (while (< sv-160 2) + (set! sv-176 (-> obj stabilizer-array sv-160 local-pos)) + (vector-matrix*! s5-0 (the-as vector (&-> sv-176 x)) s3-0) + (vector-rotate*! s0-0 (&+ sv-176 16) s3-0) + (TODO-RENAME-17 (-> obj rbody) s5-0 s1-0) + (vector-float*! s4-0 s0-0 (* -1.0 (vector-dot s0-0 s1-0))) (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) - (vector-float*! - s4-0 - *y-vector* - (* 1.6 f30-0 (fmax 0.0 (vector-dot s2-0 s1-0))) - ) - (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) - (vector-float*! s4-0 s1-0 (* -1.0 (-> obj info drag-factor) f30-0)) - (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) - (vector-float*! - s4-0 - (the-as vector (-> s3-0 vector)) - (* -0.5 (vector-dot (the-as vector (-> s3-0 vector)) s1-0)) - ) + 0 + (set! sv-160 (+ sv-160 1)) + ) + (when (-> obj anchored) + (let ((s1-1 (new 'stack-no-clear 'vector))) + (vector+*! s5-0 (-> s3-0 vector 3) s2-0 24576.0) + (vector+*! s1-1 (-> obj dock-point) (-> obj dest-dir) 24576.0) + (vector-! s4-0 s1-1 s5-0) + (set! (-> s4-0 y) 0.0) + (vector-float*! s4-0 s4-0 10.0) + (if (< 81920.0 (vector-length s4-0)) + (vector-normalize! s4-0 81920.0) + ) + (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) + (vector+*! s5-0 (-> s3-0 vector 3) s2-0 -24576.0) + (vector+*! s1-1 (-> obj dock-point) (-> obj dest-dir) -24576.0) + (vector-! s4-0 s1-1 s5-0) + ) + (set! (-> s4-0 y) 0.0) + (vector-float*! s4-0 s4-0 10.0) + (if (< 81920.0 (vector-length s4-0)) + (vector-normalize! s4-0 81920.0) + ) (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) ) - ) - 0 - (set! sv-128 (+ sv-128 1)) - ) - (set! sv-160 0) - (while (< sv-160 2) - (set! sv-176 (-> obj stabilizer-array sv-160 local-pos)) - (vector-matrix*! s5-0 (the-as vector (&-> sv-176 x)) s3-0) - (vector-rotate*! s0-0 (&+ sv-176 16) s3-0) - (TODO-RENAME-17 (-> obj rbody) s5-0 s1-0) - (vector-float*! s4-0 s0-0 (* -1.0 (vector-dot s0-0 s1-0))) - (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) - 0 - (set! sv-160 (+ sv-160 1)) - ) - (when (-> obj anchored) - (let ((s1-1 (new 'stack-no-clear 'vector))) - (vector+*! s5-0 (-> s3-0 vector 3) s2-0 24576.0) - (vector+*! s1-1 (-> obj dock-point) (-> obj dest-dir) 24576.0) - (vector-! s4-0 s1-1 s5-0) - (set! (-> s4-0 y) 0.0) - (vector-float*! s4-0 s4-0 10.0) - (if (< 81920.0 (vector-length s4-0)) - (vector-normalize! s4-0 81920.0) + (when (-> obj ignition) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (vector-matrix*! s5-0 (-> obj engine-thrust-local-pos) s3-0) + (set-vector! s2-1 (- (-> obj controller steering)) 0.0 2.0 1.0) + (vector-rotate*! s2-1 s2-1 s3-0) + (vector-normalize! s2-1 1.0) + (vector-float*! s4-0 s2-1 (-> obj engine-thrust)) + ) + (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) ) - (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) - (vector+*! s5-0 (-> s3-0 vector 3) s2-0 -24576.0) - (vector+*! s1-1 (-> obj dock-point) (-> obj dest-dir) -24576.0) - (vector-! s4-0 s1-1 s5-0) - ) - (set! (-> s4-0 y) 0.0) - (vector-float*! s4-0 s4-0 10.0) - (if (< 81920.0 (vector-length s4-0)) - (vector-normalize! s4-0 81920.0) - ) - (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) ) - (when (-> obj ignition) - (let ((s2-1 (new 'stack-no-clear 'vector))) - (vector-matrix*! s5-0 (-> obj engine-thrust-local-pos) s3-0) - (set-vector! s2-1 (- (-> obj controller steering)) 0.0 2.0 1.0) - (vector-rotate*! s2-1 s2-1 s3-0) - (vector-normalize! s2-1 1.0) - (vector-float*! s4-0 s2-1 (-> obj engine-thrust)) - ) - (TODO-RENAME-13 (-> obj rbody) s5-0 s4-0) - ) - ) (TODO-RENAME-26 obj) (TODO-RENAME-25 obj) 0 @@ -740,86 +647,64 @@ ) (defbehavior fishermans-boat-set-path-point fishermans-boat ((arg0 vector)) - (TODO-RENAME-12 - (-> self controller) - (the-as int arg0) - (-> self root-overlay trans) - ) - (vector-normalize-copy! - (-> self dest-dir) - (-> self controller path-dest-velocity) - 1.0 - ) + (TODO-RENAME-12 (-> self controller) (the-as int arg0) (-> self root-overlay trans)) + (vector-normalize-copy! (-> self dest-dir) (-> self controller path-dest-velocity) 1.0) 0 (none) ) (defbehavior fishermans-boat-next-path-point fishermans-boat () (move-to-next-point (-> self controller) (-> self root-overlay trans)) - (vector-normalize-copy! - (-> self dest-dir) - (-> self controller path-dest-velocity) - 1.0 - ) + (vector-normalize-copy! (-> self dest-dir) (-> self controller path-dest-velocity) 1.0) 0 (none) ) -(set! - (-> *part-id-table* 2896) - (new 'static 'sparticle-launcher - :init-specs - (new 'static 'inline-array sp-field-init-spec 21 - (sp-tex spt-texture (new 'static 'texture-id :index #xa :page #x2)) - (sp-flt spt-num 0.06) - (sp-flt spt-x (meters 10.0)) - (sp-rnd-flt spt-scale-x (meters 1.5) (meters 3.0) 1.0) - (sp-flt spt-rot-y (degrees 0.0)) - (sp-rnd-flt spt-scale-y (meters 1.5) (meters 3.0) 1.0) - (sp-flt spt-r 128.0) - (sp-flt spt-g 128.0) - (sp-flt spt-b 128.0) - (sp-flt spt-a 0.0) - (sp-rnd-flt spt-vel-x (meters 0.01) (meters 0.006666667) 1.0) - (sp-rnd-flt spt-scalevel-x (meters 0.006666667) (meters 0.008666666) 1.0) - (sp-rnd-flt spt-scalevel-y (meters 0.006666667) (meters 0.008666666) 1.0) - (sp-flt spt-fade-a 0.7111111) - (sp-flt spt-friction 0.94) - (sp-int spt-timer 600) - (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) - (sp-int spt-next-time 90) - (sp-launcher-by-id spt-next-launcher 119) - (sp-flt spt-rotate-y (degrees 0.0)) - (sp-end) - ) - ) - ) +(set! (-> *part-id-table* 2896) (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (sp-tex spt-texture (new 'static 'texture-id :index #xa :page #x2)) + (sp-flt spt-num 0.06) + (sp-flt spt-x (meters 10.0)) + (sp-rnd-flt spt-scale-x (meters 1.5) (meters 3.0) 1.0) + (sp-flt spt-rot-y (degrees 0.0)) + (sp-rnd-flt spt-scale-y (meters 1.5) (meters 3.0) 1.0) + (sp-flt spt-r 128.0) + (sp-flt spt-g 128.0) + (sp-flt spt-b 128.0) + (sp-flt spt-a 0.0) + (sp-rnd-flt spt-vel-x (meters 0.01) (meters 0.006666667) 1.0) + (sp-rnd-flt spt-scalevel-x (meters 0.006666667) (meters 0.008666666) 1.0) + (sp-rnd-flt spt-scalevel-y (meters 0.006666667) (meters 0.008666666) 1.0) + (sp-flt spt-fade-a 0.7111111) + (sp-flt spt-friction 0.94) + (sp-int spt-timer 600) + (sp-cpuinfo-flags bit2 bit3 left-multiply-quat) + (sp-int spt-next-time 90) + (sp-launcher-by-id spt-next-launcher 119) + (sp-flt spt-rotate-y (degrees 0.0)) + (sp-end) + ) + ) + ) -(defbehavior - fishermans-boat-wave fishermans-boat - ((arg0 vector) (arg1 float) (arg2 float)) +(defbehavior fishermans-boat-wave fishermans-boat ((arg0 vector) (arg1 float) (arg2 float)) (let ((gp-0 (new 'stack-no-clear 'vector))) - (set! (-> gp-0 quad) (-> arg0 quad)) - (set! (-> gp-0 y) (ocean-get-height arg0)) - (set! (-> *part-id-table* 2896 init-specs 4 initial-valuef) (+ 24576.0 arg1)) - (set! - (-> *part-id-table* 2896 init-specs 19 initial-valuef) - (+ 49152.0 arg1) + (set! (-> gp-0 quad) (-> arg0 quad)) + (set! (-> gp-0 y) (ocean-get-height arg0)) + (set! (-> *part-id-table* 2896 init-specs 4 initial-valuef) (+ 24576.0 arg1)) + (set! (-> *part-id-table* 2896 init-specs 19 initial-valuef) (+ 49152.0 arg1)) + (set! (-> *part-id-table* 2896 init-specs 1 initial-valuef) (* 0.0000036621095 arg2)) + (set! (-> *part-id-table* 2896 init-specs 2 initial-valuef) (* 0.1 arg2)) + (sp-launch-particles-var + *sp-particle-system-3d* + (-> *part-id-table* 2896) + gp-0 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) ) - (set! - (-> *part-id-table* 2896 init-specs 1 initial-valuef) - (* 0.0000036621095 arg2) - ) - (set! (-> *part-id-table* 2896 init-specs 2 initial-valuef) (* 0.1 arg2)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2896) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) 0 (none) ) @@ -829,218 +714,155 @@ (s4-0 (new 'stack-no-clear 'vector)) (f30-0 (vector-y-angle (-> s5-0 vector 2))) ) - (vector-matrix*! s4-0 (new 'static 'vector :z 40960.0 :w 1.0) s5-0) - (fishermans-boat-wave s4-0 f30-0 arg0) - (vector-matrix*! - s4-0 - (new 'static 'vector :x 20480.0 :z -8192.0 :w 1.0) - s5-0 + (vector-matrix*! s4-0 (new 'static 'vector :z 40960.0 :w 1.0) s5-0) + (fishermans-boat-wave s4-0 f30-0 arg0) + (vector-matrix*! s4-0 (new 'static 'vector :x 20480.0 :z -8192.0 :w 1.0) s5-0) + (fishermans-boat-wave s4-0 f30-0 arg0) + (vector-matrix*! s4-0 (new 'static 'vector :x -20480.0 :z -8192.0 :w 1.0) s5-0) + (fishermans-boat-wave s4-0 f30-0 arg0) ) - (fishermans-boat-wave s4-0 f30-0 arg0) - (vector-matrix*! - s4-0 - (new 'static 'vector :x -20480.0 :z -8192.0 :w 1.0) - s5-0 - ) - (fishermans-boat-wave s4-0 f30-0 arg0) - ) 0 (none) ) (defbehavior fishermans-boat-play-sounds fishermans-boat () (if (-> self ignition) - (set! - (-> self engine-sound-envelope) - (seek - (-> self engine-sound-envelope) - 1.0 - (* 2.0 (-> *display* seconds-per-frame)) - ) - ) - (set! - (-> self engine-sound-envelope) - (seek (-> self engine-sound-envelope) 0.0 (-> *display* seconds-per-frame)) - ) - ) - (cond - ((< 0.0 (-> self engine-sound-envelope)) - (if (zero? (-> self engine-sound-id)) - (set! (-> self engine-sound-id) (new-sound-id)) - ) - (* 0.0000008138021 (-> self engine-thrust)) - (let ((f30-0 (* 100.0 (-> self engine-sound-envelope))) - (f28-0 (+ -1.0 (* 2.0 (-> self engine-sound-envelope)))) - (gp-0 (new 'stack-no-clear 'vector)) - ) - (vector<-cspace! gp-0 (-> self node-list data 4)) - (sound-play-by-name - (static-sound-name "boat-engine") - (-> self engine-sound-id) - (the int (* 10.24 f30-0)) - (the int (* 1524.0 f28-0)) - 0 - 1 - (the-as symbol gp-0) + (set! (-> self engine-sound-envelope) + (seek (-> self engine-sound-envelope) 1.0 (* 2.0 (-> *display* seconds-per-frame))) + ) + (set! (-> self engine-sound-envelope) + (seek (-> self engine-sound-envelope) 0.0 (-> *display* seconds-per-frame)) + ) ) + (cond + ((< 0.0 (-> self engine-sound-envelope)) + (if (zero? (-> self engine-sound-id)) + (set! (-> self engine-sound-id) (new-sound-id)) + ) + (* 0.0000008138021 (-> self engine-thrust)) + (let ((f30-0 (* 100.0 (-> self engine-sound-envelope))) + (f28-0 (+ -1.0 (* 2.0 (-> self engine-sound-envelope)))) + (gp-0 (new 'stack-no-clear 'vector)) + ) + (vector<-cspace! gp-0 (-> self node-list data 4)) + (sound-play-by-name + (static-sound-name "boat-engine") + (-> self engine-sound-id) + (the int (* 10.24 f30-0)) + (the int (* 1524.0 f28-0)) + 0 + 1 + (the-as symbol gp-0) + ) + ) ) + (else + (when (nonzero? (-> self engine-sound-id)) + (sound-stop (-> self engine-sound-id)) + (set! (-> self engine-sound-id) (new 'static 'sound-id)) + 0 + ) + ) ) - (else - (when (nonzero? (-> self engine-sound-id)) - (sound-stop (-> self engine-sound-id)) - (set! (-> self engine-sound-id) (new 'static 'sound-id)) - 0 - ) - ) - ) (none) ) (defbehavior fishermans-boat-post fishermans-boat () (when (and *target* (-> self kill-player)) - (set! (-> self kill-player) #f) - (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 2) - (set! (-> a1-0 message) 'attack) - (set! (-> a1-0 param 0) (the-as uint #f)) - (let ((a0-0 (new 'static 'attack-info :mask #x20))) - (set! (-> a0-0 mode) 'endlessfall) - (set! (-> a1-0 param 1) (the-as uint a0-0)) - ) - (when (send-event-function *target* a1-0) - ) - ) - ) - (when (and *target* (-> self ignition)) - (cond - ((-> self auto-pilot) - (dummy-15 (-> self controller) (-> self root-overlay)) - (vector-normalize-copy! - (-> self dest-dir) - (-> self controller path-dest-velocity) - 1.0 + (set! (-> self kill-player) #f) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 2) + (set! (-> a1-0 message) 'attack) + (set! (-> a1-0 param 0) (the-as uint #f)) + (let ((a0-0 (new 'static 'attack-info :mask #x20))) + (set! (-> a0-0 mode) 'endlessfall) + (set! (-> a1-0 param 1) (the-as uint a0-0)) + ) + (when (send-event-function *target* a1-0) + ) ) + ) + (when (and *target* (-> self ignition)) + (cond + ((-> self auto-pilot) + (dummy-15 (-> self controller) (-> self root-overlay)) + (vector-normalize-copy! (-> self dest-dir) (-> self controller path-dest-velocity) 1.0) + ) + (else + (when (not (-> self measure-parameters)) + (let ((f0-0 (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 48.0 110.0 -1.0))) + (set! (-> self controller steering) + (seek (-> self controller steering) (fmax -1.0 (fmin 1.0 f0-0)) (-> *display* seconds-per-frame)) + ) + ) + (if (cpad-hold? 0 x) + (set! (-> self controller throttle) (seek (-> self controller throttle) 0.8 (-> *display* seconds-per-frame))) + (set! (-> self controller throttle) + (seek (-> self controller throttle) 0.0 (* 0.25 (-> *display* seconds-per-frame))) + ) + ) + 0 + ) + ) + ) + (when (and + (-> self player-riding) + (and + (zero? (-> self root-overlay riders num-riders)) + (or + (not *target*) + (< 32768.0 (vector-vector-distance (-> self root-overlay trans) (-> *target* control trans))) + ) + ) + ) + (if (process-release? *target*) + (set! (-> self kill-player) #t) + ) + (set! (-> self controller throttle) 0.0) + (set! (-> self controller steering) 0.0) + ) + ) + (if (-> self ignition) + (set! (-> self engine-thrust) + (seek (-> self engine-thrust) (* 1228800.0 (-> self controller throttle)) 6144.0) + ) + (set! (-> self engine-thrust) 0.0) + ) + (cond + ((-> self ignition) + (let ((f0-20 60.0) + (f1-4 1820.4445) + (f2-1 6735.6445) + (f3-0 1228800.0) + ) + (set! (-> self propeller spin-rate) (* f0-20 (+ f1-4 (* f2-1 (/ 1.0 f3-0) (-> self engine-thrust))))) + ) ) (else - (when (not (-> self measure-parameters)) - (let - ((f0-0 - (analog-input - (the-as int (-> *cpad-list* cpads 0 leftx)) - 128.0 - 48.0 - 110.0 - -1.0 - ) - ) - ) - (set! - (-> self controller steering) - (seek - (-> self controller steering) - (fmax -1.0 (fmin 1.0 f0-0)) - (-> *display* seconds-per-frame) - ) - ) - ) - (if (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x)) - (set! - (-> self controller throttle) - (seek - (-> self controller throttle) - 0.8 - (-> *display* seconds-per-frame) - ) - ) - (set! - (-> self controller throttle) - (seek - (-> self controller throttle) - 0.0 - (* 0.25 (-> *display* seconds-per-frame)) - ) - ) - ) - 0 + (set! (-> self propeller spin-rate) (seek (-> self propeller spin-rate) 0.0 218.45334)) ) - ) ) - (when - (and - (-> self player-riding) - (and - (zero? (-> self root-overlay riders num-riders)) - (or - (not *target*) - (< - 32768.0 - (vector-vector-distance - (-> self root-overlay trans) - (-> *target* control trans) - ) - ) - ) - ) - ) - (if (process-release? *target*) - (set! (-> self kill-player) #t) - ) - (set! (-> self controller throttle) 0.0) - (set! (-> self controller steering) 0.0) - ) - ) - (if (-> self ignition) - (set! - (-> self engine-thrust) - (seek - (-> self engine-thrust) - (* 1228800.0 (-> self controller throttle)) - 6144.0 - ) - ) - (set! (-> self engine-thrust) 0.0) - ) - (cond - ((-> self ignition) - (let ((f0-20 60.0) - (f1-4 1820.4445) - (f2-1 6735.6445) - (f3-0 1228800.0) - ) - (set! - (-> self propeller spin-rate) - (* f0-20 (+ f1-4 (* f2-1 (/ 1.0 f3-0) (-> self engine-thrust)))) - ) - ) - ) - (else - (set! - (-> self propeller spin-rate) - (seek (-> self propeller spin-rate) 0.0 218.45334) - ) - ) - ) (TODO-RENAME-28 self) (quaternion-copy! (-> self root-overlay quat) (-> self rbody rotation)) (TODO-RENAME-18 (-> self rbody) (-> self root-overlay trans)) (when (-> self debug-draw) - (dummy-16 (-> self controller)) - (add-debug-sphere - #t - (bucket-id debug-draw1) - (the-as vector (-> self boat-path)) - 614400.0 - (new 'static 'rgba :b #xff :a #x80) + (dummy-16 (-> self controller)) + (add-debug-sphere + #t + (bucket-id debug-draw1) + (the-as vector (-> self boat-path)) + 614400.0 + (new 'static 'rgba :b #xff :a #x80) + ) + (add-debug-sphere + #t + (bucket-id debug-draw1) + (the-as vector (&-> self stack 848)) + 409600.0 + (new 'static 'rgba :b #xff :a #x80) + ) ) - (add-debug-sphere - #t - (bucket-id debug-draw1) - (the-as vector (&-> self stack 848)) - 409600.0 - (new 'static 'rgba :b #xff :a #x80) - ) - ) (fishermans-boat-spawn-particles 8192.0) (fishermans-boat-play-sounds) (rider-post) @@ -1049,194 +871,108 @@ (defbehavior fishermans-boat-leave-dock? fishermans-boat () (let ((gp-0 #f)) - (when - (and - (< (vector-vector-distance (target-pos 0) (-> self rbody position)) 6144.0) - (or - (task-complete? *game-info* (game-task jungle-fishgame)) - (and - *cheat-mode* - (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3)) - ) - ) - (not (level-hint-displayed?)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) - (file-status *art-control* (-> self anim name) 0) - ) - (hide-hud) - (level-hint-surpress!) - (kill-current-level-hint '() '(sidekick voicebox) 'exit) - (when - (and - (hud-hidden?) - (can-grab-display? (the-as process-taskable self)) - (= *kernel-boot-message* 'play) - ) - (let - ((s5-1 - (new - 'stack - 'font-context - *font-default-matrix* - 32 - 160 - 0.0 - (font-color default) - (font-flags shadow kerning) - ) + (when (and + (< (vector-vector-distance (target-pos 0) (-> self rbody position)) 6144.0) + (or (task-complete? *game-info* (game-task jungle-fishgame)) (and *cheat-mode* (cpad-hold? 0 l3))) + (not (level-hint-displayed?)) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (file-status *art-control* (-> self anim name) 0) + ) + (hide-hud) + (level-hint-surpress!) + (kill-current-level-hint '() '(sidekick voicebox) 'exit) + (when (and (hud-hidden?) (can-grab-display? (the-as process-taskable self)) (= *kernel-boot-message* 'play)) + (let ((s5-1 + (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning)) + ) + ) + (let ((v1-17 s5-1)) + (set! (-> v1-17 width) (the float 440)) + ) + (let ((v1-18 s5-1)) + (set! (-> v1-18 height) (the float 80)) + ) + (set! (-> s5-1 flags) (font-flags shadow kerning large)) + (print-game-text (lookup-text! *common-text* (game-text-id press-to-use) #f) s5-1 #f 128 22) + ) + (when (and (cpad-pressed? 0 circle) (process-grab? *target*)) + (set! (-> self waiting-for-player) #f) + (set! (-> self player-riding) #t) + (set! (-> self auto-pilot) #t) + (set! (-> self ignition) #t) + (set! (-> self anchored) #f) + (set! gp-0 #t) + ) ) - ) - (let ((v1-17 s5-1)) - (set! (-> v1-17 width) (the float 440)) - ) - (let ((v1-18 s5-1)) - (set! (-> v1-18 height) (the float 80)) - ) - (set! (-> s5-1 flags) (font-flags shadow kerning large)) - (print-game-text - (lookup-text! *common-text* (game-text-id press-to-use) #f) - s5-1 - #f - 128 - 22 - ) ) - (when - (and - (logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle)) - (process-grab? *target*) - ) - (set! (-> self waiting-for-player) #f) - (set! (-> self player-riding) #t) - (set! (-> self auto-pilot) #t) - (set! (-> self ignition) #t) - (set! (-> self anchored) #f) - (set! gp-0 #t) - ) - ) + gp-0 ) - gp-0 - ) ) (defbehavior fishermans-boat-enter-dock? fishermans-boat () - (when - (and - (-> self player-riding) - (= (-> self controller path-dest-index) (-> self dock-point-index)) + (when (and (-> self player-riding) (= (-> self controller path-dest-index) (-> self dock-point-index))) + (if (process-release? *target*) + (set! (-> self player-riding) #f) + ) ) - (if (process-release? *target*) - (set! (-> self player-riding) #f) - ) - ) - (let - ((f0-0 - (vector-vector-xz-distance - (-> self root-overlay trans) - (-> self dock-point) + (let ((f0-0 (vector-vector-xz-distance (-> self root-overlay trans) (-> self dock-point)))) + (when (and + (= (-> self controller path-dest-index) (-> self dock-point-index)) + (not (-> self anchored)) + (< f0-0 81920.0) + ) + (set! (-> self ignition) #f) + (set! (-> self anchored) #t) ) - ) + (< f0-0 28672.0) ) - (when - (and - (= (-> self controller path-dest-index) (-> self dock-point-index)) - (not (-> self anchored)) - (< f0-0 81920.0) - ) - (set! (-> self ignition) #f) - (set! (-> self anchored) #t) - ) - (< f0-0 28672.0) - ) ) (defstate fishermans-boat-docked-village (fishermans-boat) :event (the-as - (function process int symbol event-message-block object :behavior fishermans-boat) - rigid-body-platform-event-handler - ) + (function process int symbol event-message-block object :behavior fishermans-boat) + rigid-body-platform-event-handler + ) :enter - (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) + (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) (none)) :trans (behavior () - (if (fishermans-boat-leave-dock?) - (go fishermans-boat-ride-to-misty) + (if (fishermans-boat-leave-dock?) + (go fishermans-boat-ride-to-misty) + ) + (rider-trans) + (if (nonzero? (-> self anim)) + (spool-push *art-control* (-> self anim name) 0 self -99.0) + ) + (none) ) - (rider-trans) - (if (nonzero? (-> self anim)) - (spool-push *art-control* (-> self anim name) 0 self -99.0) - ) - (none) - ) :code (behavior () - (set! - (-> self anim) - (new 'static 'spool-anim - :name "fishermans-boat-ride-to-misty" - :index 15 - :parts 3 - :command-list - '( - (0 - want-levels - village1 - misty - ) - (0 - shadow - target - #f - ) - (0 - shadow - sidekick - #f - ) - ((the binteger 250) - display-level - misty - display - ) - ((the binteger 250) - display-level - village1 - special - ) - ((the binteger 250) - want-vis - mis - ) - ((the binteger 250) - want-force-vis - misty - #t - ) - ((the binteger 459) - want-force-vis - misty - #f - ) - ((the binteger 459) - save - ) - ((the binteger 459) - blackout - (the binteger 20) - ) - ((the binteger 459) shadow target #t) - ) - ) + (set! (-> self anim) (new 'static 'spool-anim + :name "fishermans-boat-ride-to-misty" + :index 15 + :parts 3 + :command-list + '((0 want-levels village1 misty) + (0 shadow target #f) + (0 shadow sidekick #f) + (250 display-level misty display) + (250 display-level village1 special) + (250 want-vis mis) + (250 want-force-vis misty #t) + (459 want-force-vis misty #f) + (459 save) + (459 blackout 20) + (459 shadow target #t) + ) + ) + ) + (fishermans-boat-set-dock-point 0) + (fishermans-boat-set-path-point (the-as vector 0)) + (anim-loop) + (none) ) - (fishermans-boat-set-dock-point 0) - (fishermans-boat-set-path-point (the-as vector 0)) - (anim-loop) - (none) - ) :post fishermans-boat-post ) @@ -1244,97 +980,53 @@ (defstate fishermans-boat-leaving-village (fishermans-boat) :trans (behavior () - (when - (< - 614400.0 - (vector-vector-xz-distance - (-> self root-overlay trans) - (-> self dock-point) + (when (< 614400.0 (vector-vector-xz-distance (-> self root-overlay trans) (-> self dock-point))) + (load-state-want-display-level 'village1 'special) + (load-state-want-display-level 'misty 'display) + (load-state-want-vis 'mis) + (load-state-want-force-vis 'misty #t) + (go fishermans-boat-player-control) ) - ) - (load-state-want-display-level 'village1 'special) - (load-state-want-display-level 'misty 'display) - (load-state-want-vis 'mis) - (load-state-want-force-vis 'misty #t) - (go fishermans-boat-player-control) + (rider-trans) + (none) ) - (rider-trans) - (none) - ) :code (behavior () - (load-state-want-levels 'village1 'misty) - (let ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))) - (set! (-> self cam-tracker) (ppointer->handle (when gp-0 - (let - ((t9-2 - (method-of-type - camera-tracker - activate - ) - ) - ) - (t9-2 - (the-as - camera-tracker - gp-0 - ) - self - 'camera-tracker - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-0 - camera-tracker-init - (lambda :behavior fishermans-boat - () - (camera-change-to - "camera-282" - 0 - #f - ) - (while - (!= - (-> - self - rbody - lin-momentum-damping-factor - ) - 'release - ) - (suspend) - ) - (set! - (-> - self - rbody - lin-momentum-damping-factor - ) - (the-as float #f) - ) - (camera-change-to - (the-as string 'base) - 0 - #f - ) - (none) - ) - ) - (-> gp-0 ppointer) - ) - ) - ) + (load-state-want-levels 'village1 'misty) + (let ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))) + (set! (-> self cam-tracker) + (ppointer->handle (when gp-0 + (let ((t9-2 (method-of-type camera-tracker activate))) + (t9-2 (the-as camera-tracker gp-0) self 'camera-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-0 + camera-tracker-init + (lambda :behavior fishermans-boat + () + (camera-change-to "camera-282" 0 #f) + (while (!= (-> self rbody lin-momentum-damping-factor) 'release) + (suspend) + ) + (set! (-> self rbody lin-momentum-damping-factor) (the-as float #f)) + (camera-change-to (the-as string 'base) 0 #f) + (none) + ) + ) + (-> gp-0 ppointer) + ) + ) + ) + ) + (send-event (handle->process (-> self cam-tracker)) 'border #t) + (send-event (handle->process (-> self cam-tracker)) 'mask #x20800) + (fishermans-boat-set-path-point (the-as vector 0)) + (fishermans-boat-next-path-point) + (while #t + (suspend) + ) + (none) ) - (send-event (handle->process (-> self cam-tracker)) 'border #t) - (send-event (handle->process (-> self cam-tracker)) 'mask #x20800) - (fishermans-boat-set-path-point (the-as vector 0)) - (fishermans-boat-next-path-point) - (while #t - (suspend) - ) - (none) - ) :post fishermans-boat-post ) @@ -1342,29 +1034,29 @@ (defstate fishermans-boat-entering-village (fishermans-boat) :trans (behavior () - (when (fishermans-boat-enter-dock?) - (set! (-> self waiting-for-player) #f) - (when #t - (set! (-> *camera* cam-entity) (the-as entity #t)) - (send-event *camera* 'clear-entity) - (load-commands-set! *level* '()) - (load-state-want-display-level 'village1 'display) - (load-state-want-force-vis 'village1 #f) - (go fishermans-boat-docked-village) - ) + (when (fishermans-boat-enter-dock?) + (set! (-> self waiting-for-player) #f) + (when #t + (set! (-> *camera* cam-entity) (the-as entity #t)) + (send-event *camera* 'clear-entity) + (load-commands-set! *level* '()) + (load-state-want-display-level 'village1 'display) + (load-state-want-force-vis 'village1 #f) + (go fishermans-boat-docked-village) + ) + ) + (rider-trans) + (none) ) - (rider-trans) - (none) - ) :code (behavior () - (load-state-want-levels 'village1 'beach) - (load-state-want-vis 'vi1) - (fishermans-boat-set-dock-point 0) - (fishermans-boat-set-path-point (the-as vector 5)) - (anim-loop) - (none) - ) + (load-state-want-levels 'village1 'beach) + (load-state-want-vis 'vi1) + (fishermans-boat-set-dock-point 0) + (fishermans-boat-set-path-point (the-as vector 5)) + (anim-loop) + (none) + ) :post fishermans-boat-post ) @@ -1372,175 +1064,75 @@ (defstate fishermans-boat-docked-misty (fishermans-boat) :event (the-as - (function process int symbol event-message-block object :behavior fishermans-boat) - rigid-body-platform-event-handler - ) + (function process int symbol event-message-block object :behavior fishermans-boat) + rigid-body-platform-event-handler + ) :enter - (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) + (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) (none)) :trans (behavior () - (if (fishermans-boat-leave-dock?) - (go fishermans-boat-ride-to-village1) + (if (fishermans-boat-leave-dock?) + (go fishermans-boat-ride-to-village1) + ) + (rider-trans) + (if (nonzero? (-> self anim)) + (spool-push *art-control* (-> self anim name) 0 self -99.0) + ) + (none) ) - (rider-trans) - (if (nonzero? (-> self anim)) - (spool-push *art-control* (-> self anim name) 0 self -99.0) - ) - (none) - ) :code (behavior () - (if #t - (set! - (-> self anim) - (new 'static 'spool-anim - :name "fishermans-boat-ride-to-village1" - :index 16 - :parts 3 - :command-list - '( - (0 - want-levels - village1 - misty - ) - (0 - shadow - target - #f - ) - (0 - shadow - sidekick - #f - ) - ((the binteger 250) - display-level - village1 - display - ) - ((the binteger 250) - display-level - misty - #f - ) - ((the binteger 250) - want-vis - vi1 - ) - ((the binteger 250) - want-force-vis - village1 - #t - ) - ((the binteger 459) - want-force-vis - village1 - #f - ) - ((the binteger 459) - save - ) - ((the binteger 459) - blackout - (the binteger 20) - ) - ((the binteger 459) shadow target #t) + (if #t + (set! (-> self anim) (new 'static 'spool-anim + :name "fishermans-boat-ride-to-village1" + :index 16 + :parts 3 + :command-list + '((0 want-levels village1 misty) + (0 shadow target #f) + (0 shadow sidekick #f) + (250 display-level village1 display) + (250 display-level misty #f) + (250 want-vis vi1) + (250 want-force-vis village1 #t) + (459 want-force-vis village1 #f) + (459 save) + (459 blackout 20) + (459 shadow target #t) + ) + ) + ) + (set! (-> self anim) (new 'static 'spool-anim + :name "fishermans-boat-ride-to-village1-alt" + :index 17 + :parts 12 + :command-list + '((0 want-levels village1 misty) + (105 want-levels village1 intro) + (150 display-level intro display) + (150 want-vis int) + (150 kill "med-res-level-3") + (150 want-force-vis intro #t) + (151 send-event self evilbro) + (1199 send-event self evilsis) + (1200 want-force-vis intro #f) + (1200 want-levels village1 beach) + (1200 display-level village1 display) + (1200 want-vis vi1) + (1200 want-force-vis village1 #t) + (1349 want-force-vis village1 #f) + (1349 save) + (1349 blackout 20) + ) + ) + ) ) - ) - ) - (set! - (-> self anim) - (new 'static 'spool-anim - :name "fishermans-boat-ride-to-village1-alt" - :index 17 - :parts 12 - :command-list - '( - (0 - want-levels - village1 - misty - ) - ((the binteger 105) - want-levels - village1 - intro - ) - ((the binteger 150) - display-level - intro - display - ) - ((the binteger 150) - want-vis - int - ) - ((the binteger 150) - kill - "med-res-level-3" - ) - ((the binteger 150) - want-force-vis - intro - #t - ) - ((the binteger 151) - send-event - self - evilbro - ) - ((the binteger 1199) - send-event - self - evilsis - ) - ((the binteger 1200) - want-force-vis - intro - #f - ) - ((the binteger 1200) - want-levels - village1 - beach - ) - ((the binteger 1200) - display-level - village1 - display - ) - ((the binteger 1200) - want-vis - vi1 - ) - ((the binteger 1200) - want-force-vis - village1 - #t - ) - ((the binteger 1349) - want-force-vis - village1 - #f - ) - ((the binteger 1349) - save - ) - ((the binteger 1349) blackout (the binteger 20)) - ) - ) - ) + (load-state-want-force-vis 'misty #f) + (fishermans-boat-set-dock-point 4) + (fishermans-boat-set-path-point (the-as vector 4)) + (anim-loop) + (none) ) - (load-state-want-force-vis 'misty #f) - (fishermans-boat-set-dock-point 4) - (fishermans-boat-set-path-point (the-as vector 4)) - (anim-loop) - (none) - ) :post fishermans-boat-post ) @@ -1548,96 +1140,52 @@ (defstate fishermans-boat-leaving-misty (fishermans-boat) :trans (behavior () - (when - (< - 409600.0 - (vector-vector-xz-distance - (-> self root-overlay trans) - (-> self dock-point) + (when (< 409600.0 (vector-vector-xz-distance (-> self root-overlay trans) (-> self dock-point))) + (load-state-want-force-vis 'village1 #t) + (load-state-want-display-level 'village1 'display) + (set-continue! *game-info* "village1-hut") + (load-commands-set! *level* (load-command-get-index *level* 'village1 2)) + (go fishermans-boat-player-control) ) - ) - (load-state-want-force-vis 'village1 #t) - (load-state-want-display-level 'village1 'display) - (set-continue! *game-info* "village1-hut") - (load-commands-set! *level* (load-command-get-index *level* 'village1 2)) - (go fishermans-boat-player-control) + (rider-trans) + (none) ) - (rider-trans) - (none) - ) :code (behavior () - (let ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))) - (set! (-> self cam-tracker) (ppointer->handle (when gp-0 - (let - ((t9-1 - (method-of-type - camera-tracker - activate - ) - ) - ) - (t9-1 - (the-as - camera-tracker - gp-0 - ) - self - 'camera-tracker - (the-as pointer #x70004000) - ) - ) - (run-now-in-process - gp-0 - camera-tracker-init - (lambda :behavior fishermans-boat - () - (camera-change-to - "camera-287" - 0 - #f - ) - (while - (!= - (-> - self - rbody - lin-momentum-damping-factor - ) - 'release - ) - (suspend) - ) - (set! - (-> - self - rbody - lin-momentum-damping-factor - ) - (the-as float #f) - ) - (camera-change-to - (the-as string 'base) - 0 - #f - ) - (none) - ) - ) - (-> gp-0 ppointer) - ) - ) - ) + (let ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))) + (set! (-> self cam-tracker) + (ppointer->handle (when gp-0 + (let ((t9-1 (method-of-type camera-tracker activate))) + (t9-1 (the-as camera-tracker gp-0) self 'camera-tracker (the-as pointer #x70004000)) + ) + (run-now-in-process + gp-0 + camera-tracker-init + (lambda :behavior fishermans-boat + () + (camera-change-to "camera-287" 0 #f) + (while (!= (-> self rbody lin-momentum-damping-factor) 'release) + (suspend) + ) + (set! (-> self rbody lin-momentum-damping-factor) (the-as float #f)) + (camera-change-to (the-as string 'base) 0 #f) + (none) + ) + ) + (-> gp-0 ppointer) + ) + ) + ) + ) + (send-event (handle->process (-> self cam-tracker)) 'border #t) + (send-event (handle->process (-> self cam-tracker)) 'mask #x20800) + (fishermans-boat-set-path-point (the-as vector 4)) + (fishermans-boat-next-path-point) + (while #t + (suspend) + ) + (none) ) - (send-event (handle->process (-> self cam-tracker)) 'border #t) - (send-event (handle->process (-> self cam-tracker)) 'mask #x20800) - (fishermans-boat-set-path-point (the-as vector 4)) - (fishermans-boat-next-path-point) - (while #t - (suspend) - ) - (none) - ) :post fishermans-boat-post ) @@ -1645,79 +1193,69 @@ (defstate fishermans-boat-entering-misty (fishermans-boat) :trans (behavior () - (when (fishermans-boat-enter-dock?) - (set! (-> self waiting-for-player) #f) - (level-hint-spawn - (game-text-id misty-daxter-scared) - "sksp0060" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (when #t - (set! (-> *camera* cam-entity) (the-as entity #t)) - (send-event *camera* 'clear-entity) - (go fishermans-boat-docked-misty) - ) + (when (fishermans-boat-enter-dock?) + (set! (-> self waiting-for-player) #f) + (level-hint-spawn + (game-text-id misty-daxter-scared) + "sksp0060" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (when #t + (set! (-> *camera* cam-entity) (the-as entity #t)) + (send-event *camera* 'clear-entity) + (go fishermans-boat-docked-misty) + ) + ) + (rider-trans) + (none) ) - (rider-trans) - (none) - ) :code (behavior () - (set-continue! *game-info* "misty-start") - (fishermans-boat-set-dock-point 4) - (fishermans-boat-set-path-point (the-as vector 2)) - (while #t - (suspend) + (set-continue! *game-info* "misty-start") + (fishermans-boat-set-dock-point 4) + (fishermans-boat-set-path-point (the-as vector 2)) + (while #t + (suspend) + ) + (none) ) - (none) - ) :post fishermans-boat-post ) (defstate fishermans-boat-player-control (fishermans-boat) :exit - (behavior () - (send-event *camera* 'change-state *camera-base-mode* 0) - (set! (-> self auto-pilot) #t) - (none) - ) + (behavior () (send-event *camera* 'change-state *camera-base-mode* 0) (set! (-> self auto-pilot) #t) (none)) :trans (behavior () - (let ((gp-0 (new 'stack-no-clear 'vector))) - (nth-point (-> self boat-path) 0 gp-0) - (if - (< (vector-vector-xz-distance (-> self root-overlay trans) gp-0) 614400.0) - (go fishermans-boat-entering-village) - ) - (nth-point (-> self boat-path) 4 gp-0) - (if - (< (vector-vector-xz-distance (-> self root-overlay trans) gp-0) 409600.0) - (go fishermans-boat-entering-misty) - ) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (nth-point (-> self boat-path) 0 gp-0) + (if (< (vector-vector-xz-distance (-> self root-overlay trans) gp-0) 614400.0) + (go fishermans-boat-entering-village) + ) + (nth-point (-> self boat-path) 4 gp-0) + (if (< (vector-vector-xz-distance (-> self root-overlay trans) gp-0) 409600.0) + (go fishermans-boat-entering-misty) + ) + ) + 0 + (none) ) - 0 - (none) - ) :code (behavior () - (send-event (handle->process (-> self cam-tracker)) 'message 'release) - (suspend) - (send-event *camera* 'change-state cam-stick 0) - (while #t - (if - (and - (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle)) - ) - (set! (-> self auto-pilot) #f) - ) + (send-event (handle->process (-> self cam-tracker)) 'message 'release) (suspend) + (send-event *camera* 'change-state cam-stick 0) + (while #t + (if (and (= *cheat-mode* 'debug) (cpad-pressed? 0 triangle)) + (set! (-> self auto-pilot) #f) + ) + (suspend) + ) + (none) ) - (none) - ) :post fishermans-boat-post ) @@ -1727,91 +1265,62 @@ (f1-2 (/ (- arg0 f0-0) arg0)) (f30-0 (* 0.005 f1-2)) ) - (format - *stdcon* - "current ~M target ~M throttle ~f~%" - f0-0 - arg0 - (-> self controller throttle) + (format *stdcon* "current ~M target ~M throttle ~f~%" f0-0 arg0 (-> self controller throttle)) + (set! (-> self controller throttle) (fmax 0.0 (fmin 1.0 (+ (-> self controller throttle) f30-0)))) ) - (set! - (-> self controller throttle) - (fmax 0.0 (fmin 1.0 (+ (-> self controller throttle) f30-0))) - ) - ) 0 (none) ) (defstate fishermans-boat-measurements (fishermans-boat) :exit - (behavior () - (set! (-> self measure-parameters) #f) - (none) - ) + (behavior () (set! (-> self measure-parameters) #f) (none)) :trans (behavior () - (if (logtest? (-> *cpad-list* cpads 1 button0-rel 0) (pad-buttons square)) - (go fishermans-boat-player-control) + (if (cpad-pressed? 1 square) + (go fishermans-boat-player-control) + ) + (none) ) - (none) - ) :code (behavior () - (set! (-> self auto-pilot) #f) - (let ((gp-0 (new 'stack-no-clear 'vector)) - (s5-0 1) - (s4-0 (+ (-> self controller table-length) -1)) - ) - (while (>= s4-0 s5-0) - (let ((f30-0 (* (the float s5-0) (-> self controller table-step)))) - (set! (-> self measure-parameters) #t) - (set! (-> self controller steering) 1.0) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) - (let - ((f0-6 - (/ - (fabs (- f30-0 (vector-xz-length (-> self rbody lin-velocity)))) - f30-0 - ) + (set! (-> self auto-pilot) #f) + (let ((gp-0 (new 'stack-no-clear 'vector)) + (s5-0 1) + (s4-0 (+ (-> self controller table-length) -1)) ) - ) - (if (< 0.05 f0-6) - (set! (-> self state-time) (-> *display* base-frame-counter)) - ) + (while (>= s4-0 s5-0) + (let ((f30-0 (* (the float s5-0) (-> self controller table-step)))) + (set! (-> self measure-parameters) #t) + (set! (-> self controller steering) 1.0) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (let ((f0-6 (/ (fabs (- f30-0 (vector-xz-length (-> self rbody lin-velocity)))) f30-0))) + (if (< 0.05 f0-6) + (set! (-> self state-time) (-> *display* base-frame-counter)) + ) + ) + (fishermans-boat-set-throttle-by-speed f30-0) + (suspend) + ) + (vector-z-quaternion! gp-0 (-> self root-overlay quat)) + (TODO-RENAME-10 (-> self controller) gp-0 (-> self controller throttle) s5-0) + (let ((s3-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) s3-0) 300) + (fishermans-boat-set-throttle-by-speed f30-0) + (suspend) + (suspend) + ) + ) + ) + (vector-z-quaternion! gp-0 (-> self root-overlay quat)) + (TODO-RENAME-10 (-> self controller) gp-0 (-> self controller throttle) s5-0) + (+! s5-0 1) ) - (fishermans-boat-set-throttle-by-speed f30-0) - (suspend) - ) - (vector-z-quaternion! gp-0 (-> self root-overlay quat)) - (TODO-RENAME-10 - (-> self controller) - gp-0 - (-> self controller throttle) - s5-0 - ) - (let ((s3-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s3-0) 300) - (fishermans-boat-set-throttle-by-speed f30-0) - (suspend) - (suspend) - ) - ) ) - (vector-z-quaternion! gp-0 (-> self root-overlay quat)) - (TODO-RENAME-10 - (-> self controller) - gp-0 - (-> self controller throttle) - s5-0 - ) - (+! s5-0 1) - ) + (go fishermans-boat-player-control) + (none) ) - (go fishermans-boat-player-control) - (none) - ) :post fishermans-boat-post ) @@ -1819,67 +1328,46 @@ (defmethod relocate fishermans-boat ((obj fishermans-boat) (arg0 int)) (relocate (-> obj controller) arg0) (if (nonzero? (-> obj propeller)) - (&+! (-> obj propeller) arg0) - ) + (&+! (-> obj propeller) arg0) + ) (the-as - fishermans-boat - ((the-as - (function rigid-body-platform int rigid-body-platform) - (find-parent-method fishermans-boat 7) + fishermans-boat + ((the-as (function rigid-body-platform int rigid-body-platform) (find-parent-method fishermans-boat 7)) + obj + arg0 ) - obj - arg0 ) - ) ) (defmethod TODO-RENAME-30 fishermans-boat ((obj fishermans-boat)) - (let - ((s5-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)) - ) - ) - (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) default-collision-reaction) - (set! - (-> s5-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (dummy-29 s5-0 1) - (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 1) 0))) - (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s4-0 collide-with) (the-as uint 16)) - (set! (-> s4-0 prim-core action) (the-as uint 3)) - (set! (-> s4-0 prim-core offense) 4) - (set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 61440.0) - (set-root-prim! s5-0 s4-0) - (let - ((s3-0 - (new - 'process - 'collide-shape-prim-mesh - s5-0 - (the-as uint 0) - (the-as uint 0) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (dummy-29 s5-0 1) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 1) 0))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 3)) + (set! (-> s4-0 prim-core offense) 4) + (set-vector! (-> s4-0 local-sphere) 0.0 8192.0 0.0 61440.0) + (set-root-prim! s5-0 s4-0) + (let ((s3-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 3) + (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 61440.0) + (append-prim s4-0 s3-0) ) - ) ) - (set! (-> s3-0 prim-core collide-as) (the-as uint 2048)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3)) - (set! (-> s3-0 prim-core offense) 4) - (set! (-> s3-0 transform-index) 3) - (set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 61440.0) - (append-prim s4-0 s3-0) - ) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (backup-collide-with-as s5-0) + (set! (-> obj root-overlay) s5-0) ) - (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) - (backup-collide-with-as s5-0) - (set! (-> obj root-overlay) s5-0) - ) 0 (none) ) @@ -1891,10 +1379,7 @@ (process-entity-status! obj (entity-perm-status bit-3) #t) (process-entity-status! obj (entity-perm-status bit-7) #t) (set! (-> obj path) (new 'process 'path-control obj 'path 0.0)) - (logior! - (-> obj path flags) - (path-control-flag display draw-line draw-point draw-text) - ) + (logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text)) (set! (-> obj boat-path point-count) 0) (add-point! (-> obj boat-path) -88473.6 28672.0 425984.0 16384.0) (add-point! (-> obj boat-path) 18432.0 69632.0 1014169.6 14563.556) @@ -1904,24 +1389,14 @@ (add-point! (-> obj boat-path) 175718.4 122880.0 626688.0 -18204.445) (add-point! (-> obj boat-path) 50790.4 40960.0 197427.2 32768.0) (init! - (-> obj controller) - (-> obj boat-path) - *boat-turning-radius-table* - *boat-throttle-control-table* - 30 - 4096.0 - ) - (set! - (-> obj propeller) - (new - 'process - 'joint-mod-spinner - obj - 4 - (new 'static 'vector :z -1.0 :w 1.0) - 0.0 + (-> obj controller) + (-> obj boat-path) + *boat-turning-radius-table* + *boat-throttle-control-table* + 30 + 4096.0 ) - ) + (set! (-> obj propeller) (new 'process 'joint-mod-spinner obj 4 (new 'static 'vector :z -1.0 :w 1.0) 0.0)) (set! (-> obj ignition) #f) (set! (-> obj anchored) #t) (set! (-> obj player-riding) #f) @@ -1930,68 +1405,58 @@ (set! (-> obj cam-tracker) (the-as handle #f)) (set! (-> obj auto-pilot) #f) (if (= (-> *game-info* current-continue level) 'misty) - (fishermans-boat-set-dock-point 4) - (fishermans-boat-set-dock-point 0) - ) + (fishermans-boat-set-dock-point 4) + (fishermans-boat-set-dock-point 0) + ) (fishermans-boat-set-path-point (the-as vector (-> obj dock-point-index))) (fishermans-boat-next-path-point) (set! (-> obj root-overlay trans quad) (-> obj dock-point quad)) (set! (-> obj root-overlay trans y) 0.0) - (forward-up-nopitch->quaternion - (-> obj root-overlay quat) - (-> obj dest-dir) - *up-vector* - ) + (forward-up-nopitch->quaternion (-> obj root-overlay quat) (-> obj dest-dir) *up-vector*) (TODO-RENAME-29 obj *fishermans-boat-constants*) (let ((v1-39 (-> obj control-point-array data))) - (set! (-> v1-39 0 local-pos x) 0.0) - (set! (-> v1-39 0 local-pos y) 0.0) - (set! (-> v1-39 0 local-pos z) 24576.0) - (set! (-> v1-39 0 local-pos w) 1.0) - ) + (set! (-> v1-39 0 local-pos x) 0.0) + (set! (-> v1-39 0 local-pos y) 0.0) + (set! (-> v1-39 0 local-pos z) 24576.0) + (set! (-> v1-39 0 local-pos w) 1.0) + ) (let ((v1-41 (-> obj control-point-array data 1))) - (set! (-> v1-41 local-pos x) 22528.0) - (set! (-> v1-41 local-pos y) 0.0) - (set! (-> v1-41 local-pos z) -20480.0) - (set! (-> v1-41 local-pos w) 1.0) - ) + (set! (-> v1-41 local-pos x) 22528.0) + (set! (-> v1-41 local-pos y) 0.0) + (set! (-> v1-41 local-pos z) -20480.0) + (set! (-> v1-41 local-pos w) 1.0) + ) (let ((v1-43 (-> obj control-point-array data 2))) - (set! (-> v1-43 local-pos x) -22528.0) - (set! (-> v1-43 local-pos y) 0.0) - (set! (-> v1-43 local-pos z) -20480.0) - (set! (-> v1-43 local-pos w) 1.0) - ) + (set! (-> v1-43 local-pos x) -22528.0) + (set! (-> v1-43 local-pos y) 0.0) + (set! (-> v1-43 local-pos z) -20480.0) + (set! (-> v1-43 local-pos w) 1.0) + ) (let ((v1-45 (-> obj control-point-array data 3))) - (set! (-> v1-45 local-pos x) 0.0) - (set! (-> v1-45 local-pos y) 0.0) - (set! (-> v1-45 local-pos z) 49152.0) - (set! (-> v1-45 local-pos w) 1.0) - ) + (set! (-> v1-45 local-pos x) 0.0) + (set! (-> v1-45 local-pos y) 0.0) + (set! (-> v1-45 local-pos z) 49152.0) + (set! (-> v1-45 local-pos w) 1.0) + ) (let ((v1-47 (-> obj control-point-array data 4))) - (set! (-> v1-47 local-pos x) 22528.0) - (set! (-> v1-47 local-pos y) 0.0) - (set! (-> v1-47 local-pos z) 12288.0) - (set! (-> v1-47 local-pos w) 1.0) - ) + (set! (-> v1-47 local-pos x) 22528.0) + (set! (-> v1-47 local-pos y) 0.0) + (set! (-> v1-47 local-pos z) 12288.0) + (set! (-> v1-47 local-pos w) 1.0) + ) (let ((v1-49 (-> obj control-point-array data 5))) - (set! (-> v1-49 local-pos x) -22528.0) - (set! (-> v1-49 local-pos y) 0.0) - (set! (-> v1-49 local-pos z) 12288.0) - (set! (-> v1-49 local-pos w) 1.0) - ) + (set! (-> v1-49 local-pos x) -22528.0) + (set! (-> v1-49 local-pos y) 0.0) + (set! (-> v1-49 local-pos z) 12288.0) + (set! (-> v1-49 local-pos w) 1.0) + ) (let ((v1-50 (-> obj stabilizer-array))) - (set! (-> v1-50 0 local-pos x) 16384.0) - (set! (-> v1-50 0 local-pos y) 20480.0) - (set! (-> v1-50 0 local-pos z) -32768.0) - (set! (-> v1-50 0 local-pos w) 1.0) - ) - (set-vector! - (-> obj stabilizer-array 1 local-pos) - -16384.0 - 20480.0 - -32768.0 - 1.0 - ) + (set! (-> v1-50 0 local-pos x) 16384.0) + (set! (-> v1-50 0 local-pos y) 20480.0) + (set! (-> v1-50 0 local-pos z) -32768.0) + (set! (-> v1-50 0 local-pos w) 1.0) + ) + (set-vector! (-> obj stabilizer-array 1 local-pos) -16384.0 20480.0 -32768.0 1.0) (set-vector! (-> obj stabilizer-array 0 normal) 0.0 0.75 0.2 1.0) (set-vector! (-> obj stabilizer-array 1 normal) 0.0 0.75 0.2 1.0) (set-vector! (-> obj engine-thrust-local-pos) 0.0 12288.0 -20480.0 1.0) @@ -2003,43 +1468,40 @@ (set! (-> obj measure-parameters) #f) (set! (-> obj draw origin-joint-index) (the-as uint 3)) (let ((a0-29 (-> obj entity))) - (if (when a0-29 - (let ((a0-30 (-> a0-29 extra perm task))) - (if a0-30 - (= a0-30 (game-task none)) - ) - ) + (if (when a0-29 + (let ((a0-30 (-> a0-29 extra perm task))) + (if a0-30 + (= a0-30 (game-task none)) + ) + ) + ) + (set! (-> obj entity extra perm task) (game-task complete)) ) - (set! (-> obj entity extra perm task) (game-task complete)) ) - ) (none) ) -(defmethod - init-from-entity! - fishermans-boat - ((obj fishermans-boat) (arg0 entity-actor)) +(defmethod init-from-entity! fishermans-boat ((obj fishermans-boat) (arg0 entity-actor)) (stack-size-set! (-> obj main-thread) 512) (set! (-> obj mask) (logior (process-mask platform) (-> obj mask))) (TODO-RENAME-30 obj) (process-drawable-from-entity! obj arg0) (TODO-RENAME-31 obj) (if (= (-> *game-info* current-continue level) 'misty) - (go fishermans-boat-docked-misty) - (go fishermans-boat-docked-village) - ) + (go fishermans-boat-docked-misty) + (go fishermans-boat-docked-village) + ) (none) ) (defbehavior fishermans-boat-reset-physics fishermans-boat () (TODO-RENAME-22 - (-> self rbody) - (-> self root-overlay trans) - (-> self root-overlay quat) - (-> self info linear-damping) - (-> self info angular-damping) - ) + (-> self rbody) + (-> self root-overlay trans) + (-> self root-overlay quat) + (-> self info linear-damping) + (-> self info angular-damping) + ) (vector-reset! (-> self player-force)) (set! (-> self player-impulse) #f) (set! (-> self player-contact) #f) @@ -2050,397 +1512,244 @@ (defstate fishermans-boat-ride-to-misty (fishermans-boat) :code (behavior () - (set! (-> self propeller enable) #f) - (quaternion-identity! (-> self root-overlay quat)) - (set! (-> self root-overlay trans quad) (-> self entity extra trans quad)) - (set! (-> self player-riding) #f) - (set! (-> self auto-pilot) #f) - (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 1) - (set! (-> a1-0 message) 'clone-anim) - (set! (-> a1-0 param 0) (the-as uint self)) - (when (send-event-function *target* a1-0) - (send-event (ppointer->process (-> *target* sidekick)) 'matrix 'play-anim) - (send-event *target* 'blend-shape #t) - (let* ((gp-0 (get-process *default-dead-pool* othercam #x4000)) - (v1-20 (when gp-0 - (let ((t9-5 (method-of-type othercam activate))) - (t9-5 - (the-as othercam gp-0) - self - 'othercam - (the-as pointer #x70004000) + (set! (-> self propeller enable) #f) + (quaternion-identity! (-> self root-overlay quat)) + (set! (-> self root-overlay trans quad) (-> self entity extra trans quad)) + (set! (-> self player-riding) #f) + (set! (-> self auto-pilot) #f) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'clone-anim) + (set! (-> a1-0 param 0) (the-as uint self)) + (when (send-event-function *target* a1-0) + (send-event (ppointer->process (-> *target* sidekick)) 'matrix 'play-anim) + (send-event *target* 'blend-shape #t) + (let* ((gp-0 (get-process *default-dead-pool* othercam #x4000)) + (v1-20 (when gp-0 + (let ((t9-5 (method-of-type othercam activate))) + (t9-5 (the-as othercam gp-0) self 'othercam (the-as pointer #x70004000)) + ) + (run-now-in-process gp-0 othercam-init-by-other self 5 #f #t) + (-> gp-0 ppointer) + ) ) - ) - (run-now-in-process - gp-0 - othercam-init-by-other - self - 5 - #f - #t - ) - (-> gp-0 ppointer) - ) - ) - ) - (send-event (ppointer->process v1-20) 'mask 2048) + ) + (send-event (ppointer->process v1-20) 'mask 2048) + ) + (set! (-> self draw force-lod) 0) + (ja-play-spooled-anim + (-> self anim) + (the-as art-joint-anim (-> self draw art-group data 3)) + (the-as art-joint-anim #f) + (the-as (function process-drawable symbol) false-func) + ) + (set! (-> self draw force-lod) -1) + (send-event *target* 'blend-shape #f) + (ja-channel-set! 1) + (let ((v1-33 (-> self skel root-channel 0))) + (set! (-> v1-33 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + ) + (vector<-cspace! (-> self root-overlay trans) (-> self node-list data 3)) + (matrix->quaternion (-> self root-overlay quat) (-> self node-list data 3 bone transform)) + (fishermans-boat-reset-physics) + (transform-post) + (when *target* + (vector<-cspace! (the-as vector (-> self old-target-pos)) (-> *target* node-list data 3)) + (send-event *target* 'trans 'restore (-> self old-target-pos)) + (send-event *target* 'end-mode) + (dummy-47 (-> self root-overlay)) + (dummy-60 (-> *target* control) 4096.0 40960.0 #t (-> *target* control root-prim collide-with)) + (logior! (-> *target* control status) 7) + (suspend) + (send-event *camera* 'teleport-to-other-start-string) + ) + (set-continue! *game-info* "misty-start") + ) ) - (set! (-> self draw force-lod) 0) - (ja-play-spooled-anim - (-> self anim) - (the-as art-joint-anim (-> self draw art-group data 3)) - (the-as art-joint-anim #f) - (the-as (function process-drawable symbol) false-func) + (set! (-> self waiting-for-player) #t) + (set! (-> self ignition) #f) + (set! (-> self anchored) #t) + (set! (-> self propeller enable) #t) + (fishermans-boat-play-sounds) + (copy-settings-from-target! *setting-control*) + (let ((gp-1 (get-process *default-dead-pool* process #x4000))) + (when gp-1 + (let ((t9-25 (method-of-type process activate))) + (t9-25 gp-1 self 'process (the-as pointer #x70004000)) + ) + (run-next-time-in-process gp-1 (lambda :behavior fishermans-boat + () + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 300) + (suspend) + ) + ) + (while (or + (-> *setting-control* current ambient) + (-> *setting-control* current hint) + (-> *setting-control* current movie) + ) + (suspend) + ) + (suspend) + (level-hint-spawn + (game-text-id misty-daxter-scared) + "sksp0060" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (none) + ) + ) + (-> gp-1 ppointer) + ) ) - (set! (-> self draw force-lod) -1) - (send-event *target* 'blend-shape #f) - (ja-channel-set! 1) - (let ((v1-33 (-> self skel root-channel 0))) - (set! - (-> v1-33 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - ) - (vector<-cspace! (-> self root-overlay trans) (-> self node-list data 3)) - (matrix->quaternion - (-> self root-overlay quat) - (-> self node-list data 3 bone transform) - ) - (fishermans-boat-reset-physics) - (transform-post) - (when *target* - (vector<-cspace! - (the-as vector (-> self old-target-pos)) - (-> *target* node-list data 3) - ) - (send-event *target* 'trans 'restore (-> self old-target-pos)) - (send-event *target* 'end-mode) - (dummy-47 (-> self root-overlay)) - (dummy-60 - (-> *target* control) - 4096.0 - 40960.0 - #t - (-> *target* control root-prim collide-with) - ) - (logior! (-> *target* control status) 7) - (suspend) - (send-event *camera* 'teleport-to-other-start-string) - ) - (set-continue! *game-info* "misty-start") - ) + (go fishermans-boat-docked-misty) + (none) ) - (set! (-> self waiting-for-player) #t) - (set! (-> self ignition) #f) - (set! (-> self anchored) #t) - (set! (-> self propeller enable) #t) - (fishermans-boat-play-sounds) - (copy-settings-from-target! *setting-control*) - (let ((gp-1 (get-process *default-dead-pool* process #x4000))) - (when gp-1 - (let ((t9-25 (method-of-type process activate))) - (t9-25 gp-1 self 'process (the-as pointer #x70004000)) - ) - (run-next-time-in-process - gp-1 - (lambda :behavior fishermans-boat - () - (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 300) - (suspend) - ) - ) - (while - (or - (-> *setting-control* current ambient) - (-> *setting-control* current hint) - (-> *setting-control* current movie) - ) - (suspend) - ) - (suspend) - (level-hint-spawn - (game-text-id misty-daxter-scared) - "sksp0060" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (none) - ) - ) - (-> gp-1 ppointer) - ) - ) - (go fishermans-boat-docked-misty) - (none) - ) :post - (behavior () - (ja-post) - (fishermans-boat-spawn-particles 81920.0) - (fishermans-boat-play-sounds) - (none) - ) + (behavior () (ja-post) (fishermans-boat-spawn-particles 81920.0) (fishermans-boat-play-sounds) (none)) ) (defstate fishermans-boat-ride-to-village1 (fishermans-boat) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'evilbro) - (when (= (level-status *level* 'intro) 'active) - (let ((gp-1 (entity-by-name "evilbro-2"))) - (when gp-1 - (let - ((s5-0 (get-process *default-dead-pool* manipy #x4000)) - ) - (set! (-> self evilbro) (ppointer->handle (when s5-0 - (let - ((t9-3 - (method-of-type - manipy - activate - ) - ) - ) - (t9-3 - (the-as - manipy - s5-0 - ) - self - 'manipy - (the-as - pointer - #x70004000 - ) - ) - ) - (run-now-in-process - s5-0 - manipy-init - (-> - self - root-overlay - trans - ) - gp-1 - *fb-evilbro-sg* - #f - ) - (-> - s5-0 - ppointer - ) - ) - ) - ) + (let ((v1-0 arg2)) + (the-as + object + (cond + ((= v1-0 'evilbro) + (when (= (level-status *level* 'intro) 'active) + (let ((gp-1 (entity-by-name "evilbro-2"))) + (when gp-1 + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> self evilbro) + (ppointer->handle + (when s5-0 + (let ((t9-3 (method-of-type manipy activate))) + (t9-3 (the-as manipy s5-0) self 'manipy (the-as pointer #x70004000)) + ) + (run-now-in-process s5-0 manipy-init (-> self root-overlay trans) gp-1 *fb-evilbro-sg* #f) + (-> s5-0 ppointer) + ) + ) ) - (send-event - (handle->process (-> self evilbro)) - 'anim-mode - 'clone-anim + ) + (send-event (handle->process (-> self evilbro)) 'anim-mode 'clone-anim) + (send-event (handle->process (-> self evilbro)) 'blend-shape #t) + (send-event (handle->process (-> self evilbro)) 'center-joint 3) + ) + ) + (let ((gp-2 (entity-by-name "evilsis-2"))) + (when gp-2 + (let ((s5-1 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> self evilsis) + (ppointer->handle + (when s5-1 + (let ((t9-10 (method-of-type manipy activate))) + (t9-10 (the-as manipy s5-1) self 'manipy (the-as pointer #x70004000)) + ) + (run-now-in-process s5-1 manipy-init (-> self root-overlay trans) gp-2 *fb-evilsis-sg* #f) + (-> s5-1 ppointer) + ) + ) ) - (send-event - (handle->process (-> self evilbro)) - 'blend-shape - #t - ) - (send-event - (handle->process (-> self evilbro)) - 'center-joint - 3 - ) - ) - ) - (let ((gp-2 (entity-by-name "evilsis-2"))) - (when gp-2 - (let - ((s5-1 (get-process *default-dead-pool* manipy #x4000)) - ) - (set! (-> self evilsis) (ppointer->handle (when s5-1 - (let - ((t9-10 - (method-of-type - manipy - activate - ) - ) - ) - (t9-10 - (the-as - manipy - s5-1 - ) - self - 'manipy - (the-as - pointer - #x70004000 - ) - ) - ) - (run-now-in-process - s5-1 - manipy-init - (-> - self - root-overlay - trans - ) - gp-2 - *fb-evilsis-sg* - #f - ) - (-> - s5-1 - ppointer - ) - ) - ) - ) - ) - (send-event - (handle->process (-> self evilsis)) - 'anim-mode - 'clone-anim - ) - (send-event - (handle->process (-> self evilsis)) - 'blend-shape - #t - ) - (send-event - (handle->process (-> self evilsis)) - 'center-joint - 3 - ) - ) - ) - ) - ) - ((= v1-0 'evilsis) - (let ((a0-44 (handle->process (-> self evilbro)))) - (if a0-44 - (deactivate a0-44) - ) - ) - (let ((a0-48 (handle->process (-> self evilsis)))) - (if a0-48 - (deactivate a0-48) - ) - ) - ) - ) - ) + ) + (send-event (handle->process (-> self evilsis)) 'anim-mode 'clone-anim) + (send-event (handle->process (-> self evilsis)) 'blend-shape #t) + (send-event (handle->process (-> self evilsis)) 'center-joint 3) + ) + ) + ) + ) + ((= v1-0 'evilsis) + (let ((a0-44 (handle->process (-> self evilbro)))) + (if a0-44 + (deactivate a0-44) + ) + ) + (let ((a0-48 (handle->process (-> self evilsis)))) + (if a0-48 + (deactivate a0-48) + ) + ) + ) + ) + ) + ) ) - ) :code (behavior () - (set! (-> self propeller enable) #f) - (set! (-> self evilbro) (the-as handle #f)) - (set! (-> self evilsis) (the-as handle #f)) - (quaternion-identity! (-> self root-overlay quat)) - (set! (-> self root-overlay trans quad) (-> self entity extra trans quad)) - (set! (-> self player-riding) #f) - (set! (-> self auto-pilot) #f) - (let ((a1-0 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-0 from) self) - (set! (-> a1-0 num-params) 1) - (set! (-> a1-0 message) 'clone-anim) - (set! (-> a1-0 param 0) (the-as uint self)) - (when (send-event-function *target* a1-0) - (send-event (ppointer->process (-> *target* sidekick)) 'matrix 'play-anim) - (send-event *target* 'blend-shape #t) - (let* ((gp-0 (get-process *default-dead-pool* othercam #x4000)) - (v1-20 (when gp-0 - (let ((t9-5 (method-of-type othercam activate))) - (t9-5 - (the-as othercam gp-0) - self - 'othercam - (the-as pointer #x70004000) + (set! (-> self propeller enable) #f) + (set! (-> self evilbro) (the-as handle #f)) + (set! (-> self evilsis) (the-as handle #f)) + (quaternion-identity! (-> self root-overlay quat)) + (set! (-> self root-overlay trans quad) (-> self entity extra trans quad)) + (set! (-> self player-riding) #f) + (set! (-> self auto-pilot) #f) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'clone-anim) + (set! (-> a1-0 param 0) (the-as uint self)) + (when (send-event-function *target* a1-0) + (send-event (ppointer->process (-> *target* sidekick)) 'matrix 'play-anim) + (send-event *target* 'blend-shape #t) + (let* ((gp-0 (get-process *default-dead-pool* othercam #x4000)) + (v1-20 (when gp-0 + (let ((t9-5 (method-of-type othercam activate))) + (t9-5 (the-as othercam gp-0) self 'othercam (the-as pointer #x70004000)) + ) + (run-now-in-process gp-0 othercam-init-by-other self 5 #f #t) + (-> gp-0 ppointer) + ) ) - ) - (run-now-in-process - gp-0 - othercam-init-by-other - self - 5 - #f - #t - ) - (-> gp-0 ppointer) - ) - ) - ) - (send-event (ppointer->process v1-20) 'mask 2048) + ) + (send-event (ppointer->process v1-20) 'mask 2048) + ) + (set! (-> self draw force-lod) 0) + (ja-play-spooled-anim + (-> self anim) + (the-as art-joint-anim (-> self draw art-group data 3)) + (the-as art-joint-anim #f) + (the-as (function process-drawable symbol) false-func) + ) + (set! (-> self draw force-lod) -1) + (send-event *target* 'blend-shape #f) + (ja-channel-set! 1) + (let ((v1-33 (-> self skel root-channel 0))) + (set! (-> v1-33 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) + ) + (vector<-cspace! (-> self root-overlay trans) (-> self node-list data 3)) + (matrix->quaternion (-> self root-overlay quat) (-> self node-list data 3 bone transform)) + (fishermans-boat-reset-physics) + (transform-post) + (when *target* + (vector<-cspace! (the-as vector (-> self old-target-pos)) (-> *target* node-list data 3)) + (send-event *target* 'trans 'restore (-> self old-target-pos)) + (send-event *target* 'end-mode) + (dummy-47 (-> self root-overlay)) + (dummy-60 (-> *target* control) 4096.0 40960.0 #t (-> *target* control root-prim collide-with)) + (logior! (-> *target* control status) 7) + (suspend) + (send-event *camera* 'teleport-to-other-start-string) + ) + (set-continue! *game-info* "village1-hut") + ) ) - (set! (-> self draw force-lod) 0) - (ja-play-spooled-anim - (-> self anim) - (the-as art-joint-anim (-> self draw art-group data 3)) - (the-as art-joint-anim #f) - (the-as (function process-drawable symbol) false-func) - ) - (set! (-> self draw force-lod) -1) - (send-event *target* 'blend-shape #f) - (ja-channel-set! 1) - (let ((v1-33 (-> self skel root-channel 0))) - (set! - (-> v1-33 frame-group) - (the-as art-joint-anim (-> self draw art-group data 3)) - ) - ) - (vector<-cspace! (-> self root-overlay trans) (-> self node-list data 3)) - (matrix->quaternion - (-> self root-overlay quat) - (-> self node-list data 3 bone transform) - ) - (fishermans-boat-reset-physics) - (transform-post) - (when *target* - (vector<-cspace! - (the-as vector (-> self old-target-pos)) - (-> *target* node-list data 3) - ) - (send-event *target* 'trans 'restore (-> self old-target-pos)) - (send-event *target* 'end-mode) - (dummy-47 (-> self root-overlay)) - (dummy-60 - (-> *target* control) - 4096.0 - 40960.0 - #t - (-> *target* control root-prim collide-with) - ) - (logior! (-> *target* control status) 7) - (suspend) - (send-event *camera* 'teleport-to-other-start-string) - ) - (set-continue! *game-info* "village1-hut") - ) + (set! (-> self waiting-for-player) #t) + (set! (-> self ignition) #f) + (set! (-> self anchored) #t) + (set! (-> self propeller enable) #t) + (fishermans-boat-play-sounds) + (process-entity-status! self (entity-perm-status complete) #t) + (go fishermans-boat-docked-village) + (none) ) - (set! (-> self waiting-for-player) #t) - (set! (-> self ignition) #f) - (set! (-> self anchored) #t) - (set! (-> self propeller enable) #t) - (fishermans-boat-play-sounds) - (process-entity-status! self (entity-perm-status complete) #t) - (go fishermans-boat-docked-village) - (none) - ) :post - (behavior () - (ja-post) - (fishermans-boat-spawn-particles 81920.0) - (fishermans-boat-play-sounds) - (none) - ) + (behavior () (ja-post) (fishermans-boat-spawn-particles 81920.0) (fishermans-boat-play-sounds) (none)) ) diff --git a/goal_src/levels/village1/village-obs-VI1.gc b/goal_src/levels/village1/village-obs-VI1.gc index 571c4d9bc1..2a4a816ef8 100644 --- a/goal_src/levels/village1/village-obs-VI1.gc +++ b/goal_src/levels/village1/village-obs-VI1.gc @@ -39,17 +39,6 @@ (declare-type village-fish process-drawable) (declare-type villa-starfish process-drawable) -(define-extern windmill-sail-idle (state windmill-sail)) ;; unknown type -(define-extern sagesail-idle (state sagesail)) ;; unknown type -(define-extern windspinner-idle (state windspinner)) ;; unknown type -(define-extern mayorgears-idle (state mayorgears)) ;; unknown type -(define-extern reflector-middle-idle (state reflector-middle)) ;; unknown type -(define-extern starfish-patrol (state starfish)) ;; unknown type -(define-extern reflector-end-idle (state reflector-end)) ;; unknown type -(define-extern hutlamp-idle (state hutlamp)) ;; unknown type -(define-extern village-fish-idle (state village-fish)) ;; unknown type -(define-extern villa-starfish-idle (state villa-starfish)) ;; unknown type -(define-extern starfish-idle (state starfish)) ;; unknown type ;; DECOMP BEGINS @@ -276,6 +265,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + windmill-sail-idle + ) ) @@ -416,6 +408,9 @@ :method-count-assert 20 :size-assert #xe0 :flag-assert #x14007000e0 + (:states + sagesail-idle + ) ) @@ -473,6 +468,9 @@ :method-count-assert 20 :size-assert #xd8 :flag-assert #x14007000d8 + (:states + windspinner-idle + ) ) @@ -567,6 +565,9 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + mayorgears-idle + ) ) @@ -622,6 +623,9 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + reflector-middle-idle + ) ) @@ -673,6 +677,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + reflector-end-idle + ) ) @@ -695,6 +702,9 @@ :method-count-assert 20 :size-assert #xb1 :flag-assert #x14005000b1 + (:states + villa-starfish-idle + ) ) @@ -712,6 +722,10 @@ :method-count-assert 76 :size-assert #x190 :flag-assert #x4c01200190 + (:states + starfish-idle + starfish-patrol + ) ) @@ -954,6 +968,9 @@ :method-count-assert 20 :size-assert #xb1 :flag-assert #x14005000b1 + (:states + village-fish-idle + ) ) @@ -1028,6 +1045,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + hutlamp-idle + ) ) diff --git a/goal_src/levels/village1/yakow.gc b/goal_src/levels/village1/yakow.gc index 631ce735d7..4555f799ef 100644 --- a/goal_src/levels/village1/yakow.gc +++ b/goal_src/levels/village1/yakow.gc @@ -6,14 +6,6 @@ ;; dgos: L1, VI1 (declare-type yakow process-drawable) -(define-extern yakow-graze (state yakow)) -(define-extern yakow-idle (state yakow)) -(define-extern yakow-run-away (state yakow)) -(define-extern yakow-graze-kicked (state yakow)) -(define-extern yakow-walk-to (state vector yakow)) -(define-extern yakow-notice (state yakow)) -(define-extern yakow-kicked (state yakow)) -(define-extern yakow-die (state yakow)) ;; DECOMP BEGINS @@ -27,35 +19,21 @@ (defun yakow-cam () (with-pp - (let ((gp-0 (entity-actor-lookup (-> pp entity) 'alt-actor 0))) - (when gp-0 - (let ((s5-0 (get-process *default-dead-pool* pov-camera #x4000))) - (when s5-0 - (let ((t9-2 (method-of-type pov-camera activate))) - (t9-2 - (the-as pov-camera s5-0) - pp - 'pov-camera - (the-as pointer #x70004000) - ) + (let ((gp-0 (entity-actor-lookup (-> pp entity) 'alt-actor 0))) + (when gp-0 + (let ((s5-0 (get-process *default-dead-pool* pov-camera #x4000))) + (when s5-0 + (let ((t9-2 (method-of-type pov-camera activate))) + (t9-2 (the-as pov-camera s5-0) pp 'pov-camera (the-as pointer #x70004000)) + ) + (run-now-in-process s5-0 pov-camera-init-by-other (-> gp-0 extra trans) *village1cam-sg* "anim" 0 #f '()) + (-> s5-0 ppointer) + ) + ) ) - (run-now-in-process - s5-0 - pov-camera-init-by-other - (-> gp-0 extra trans) - *village1cam-sg* - "anim" - 0 - #f - '() - ) - (-> s5-0 ppointer) - ) ) - ) + (none) ) - (none) - ) ) (deftype yakow-bank (basic) @@ -91,36 +69,34 @@ ) -(define - *YAKOW-bank* - (new 'static 'yakow-bank - :walk-cycle-frame-count 16.0 - :run-cycle-frame-count 16.0 - :walk-speed (meters 2.13) - :run-speed (meters 6.0) - :walk-anim-speed 1.0 - :run-anim-speed 2.0 - :walk-away-dist (meters 10.0) - :run-away-dist (meters 6.0) - :walk-rotate-speed 131072.0 - :run-rotate-speed 131072.0 - :walk-turn-time #x96 - :run-turn-time #x3c - :max-walk-speed 16384.0 - :min-run-speed 15155.2 - :walk-run-blend-rate 6.0 - :walk-turn-blend-rate 4.0 - :max-run-speed 61440.0 - :acceleration (meters 3.0) - :default-patrol-time #x12c - :default-idle-distance (meters 10.0) - :safe-distance (meters 20.0) - :min-run-anim-speed 0.5 - :max-run-anim-speed 1.5 - :min-walk-anim-speed 0.5 - :speed-boost-impulse (meters 4.0) - ) - ) +(define *YAKOW-bank* (new 'static 'yakow-bank + :walk-cycle-frame-count 16.0 + :run-cycle-frame-count 16.0 + :walk-speed (meters 2.13) + :run-speed (meters 6.0) + :walk-anim-speed 1.0 + :run-anim-speed 2.0 + :walk-away-dist (meters 10.0) + :run-away-dist (meters 6.0) + :walk-rotate-speed 131072.0 + :run-rotate-speed 131072.0 + :walk-turn-time #x96 + :run-turn-time #x3c + :max-walk-speed 16384.0 + :min-run-speed 15155.2 + :walk-run-blend-rate 6.0 + :walk-turn-blend-rate 4.0 + :max-run-speed 61440.0 + :acceleration (meters 3.0) + :default-patrol-time #x12c + :default-idle-distance (meters 10.0) + :safe-distance (meters 20.0) + :min-run-anim-speed 0.5 + :max-run-anim-speed 1.5 + :min-walk-anim-speed 0.5 + :speed-boost-impulse (meters 4.0) + ) + ) (deftype yakow (process-drawable) ((root-override collide-shape-moving :offset 112) @@ -147,6 +123,16 @@ :method-count-assert 20 :size-assert #x120 :flag-assert #x1400b00120 + (:states + yakow-die + yakow-graze + yakow-graze-kicked + yakow-idle + yakow-kicked + yakow-notice + yakow-run-away + (yakow-walk-to vector) + ) ) @@ -161,138 +147,90 @@ ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 52] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 54] -(defbehavior - yakow-default-event-handler yakow - ((arg0 process-drawable) (arg1 int) (arg2 symbol) (arg3 event-message-block)) +(defbehavior yakow-default-event-handler yakow ((arg0 process-drawable) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((v1-0 arg2)) - (the-as object (cond - ((= v1-0 'touch) - (let* ((s4-0 arg0) - (v1-2 - (if - (and - (nonzero? s4-0) - (type-type? (-> s4-0 type) process-drawable) - ) - s4-0 - ) - ) - ) - (when - (and - v1-2 - (< - 8192.0 - (- - (-> v1-2 root trans y) - (-> self root-override trans y) - ) - ) - ) - (dummy-45 (-> self root-override)) - (dummy-55 - (-> self root-override) - arg0 - (the-as touching-shapes-entry (-> arg3 param 0)) - 0.7 - 6144.0 - 16384.0 - ) + (the-as + object + (cond + ((= v1-0 'touch) + (let* ((s4-0 arg0) + (v1-2 (if (and (nonzero? s4-0) (type-type? (-> s4-0 type) process-drawable)) + s4-0 + ) ) - ) - ) - ((= v1-0 'attack) - (let ((v1-9 (-> arg3 param 2))) - (cond - ((!= v1-9 (-> self player-attack-id)) - (set! (-> self player-attack-id) (the-as int v1-9)) - (if (-> self vulnerable) - (go yakow-kicked) - ) - ) - (else - 'push - ) - ) - ) - ) - ) + ) + (when (and v1-2 (< 8192.0 (- (-> v1-2 root trans y) (-> self root-override trans y)))) + (dummy-45 (-> self root-override)) + (dummy-55 (-> self root-override) arg0 (the-as touching-shapes-entry (-> arg3 param 0)) 0.7 6144.0 16384.0) + ) + ) + ) + ((= v1-0 'attack) + (let ((v1-9 (-> arg3 param 2))) + (cond + ((!= v1-9 (-> self player-attack-id)) + (set! (-> self player-attack-id) (the-as int v1-9)) + (if (-> self vulnerable) + (go yakow-kicked) + ) + ) + (else + 'push + ) + ) + ) + ) + ) + ) ) - ) ) yakow-default-event-handler (defbehavior yakow-task-complete? yakow ((arg0 symbol)) (local-vars (sv-16 symbol) (sv-20 (pointer process-tree))) - (let - ((gp-0 - (not - (and - (-> self entity) - (logtest? - (-> self entity extra perm status) - (entity-perm-status complete) + (let ((gp-0 + (not (and (-> self entity) (logtest? (-> self entity extra perm status) (entity-perm-status complete)))) + ) ) - ) + (if arg0 + (process-entity-status! self (entity-perm-status complete) #t) + (process-entity-status! self (entity-perm-status complete) #f) + ) + (when (or (-> self link prev) (-> self link next)) + (set! sv-16 (the-as symbol #f)) + (set! sv-20 (-> self child)) + (apply-all (-> self link) actor-link-subtask-complete-hook (& sv-16)) + (cond + (sv-16 + (close-specific-task! (-> self entity extra perm task) (task-status need-hint)) + (close-specific-task! (-> self entity extra perm task) (task-status need-introduction)) + (close-specific-task! (-> self entity extra perm task) (task-status need-reminder)) + (if gp-0 + (yakow-cam) + ) + (level-hint-spawn + (game-text-id yakow-owed-powercell) + "sksp018a" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + ) + (else + (open-specific-task! (-> self entity extra perm task) (task-status need-reminder)) + ) + ) + sv-16 ) - ) ) - (if arg0 - (process-entity-status! self (entity-perm-status complete) #t) - (process-entity-status! self (entity-perm-status complete) #f) - ) - (when (or (-> self link prev) (-> self link next)) - (set! sv-16 (the-as symbol #f)) - (set! sv-20 (-> self child)) - (apply-all (-> self link) actor-link-subtask-complete-hook (& sv-16)) - (cond - (sv-16 - (close-specific-task! - (-> self entity extra perm task) - (task-status need-hint) - ) - (close-specific-task! - (-> self entity extra perm task) - (task-status need-introduction) - ) - (close-specific-task! - (-> self entity extra perm task) - (task-status need-reminder) - ) - (if gp-0 - (yakow-cam) - ) - (level-hint-spawn - (game-text-id yakow-owed-powercell) - "sksp018a" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - (else - (open-specific-task! - (-> self entity extra perm task) - (task-status need-reminder) - ) - ) - ) - sv-16 - ) - ) ) (defbehavior yakow-common-post yakow () (dummy-14 (-> self draw shadow-ctrl)) (if *target* - (look-at-enemy! - (-> *target* neck) - (the-as vector (-> self root-override root-prim prim-core)) - #f - self - ) - ) + (look-at-enemy! (-> *target* neck) (the-as vector (-> self root-override root-prim prim-core)) #f self) + ) (ja-post) (none) ) @@ -307,159 +245,89 @@ yakow-default-event-handler (dummy-11 (-> self nav) (-> self nav target-pos)) (set! (-> self rotating) #f) (let ((f30-0 0.0)) - (when (< 40.96 (vector-length (-> self nav travel))) - (let ((s5-0 (new 'stack-no-clear 'vector)) - (gp-0 (new 'stack-no-clear 'vector)) + (when (< 40.96 (vector-length (-> self nav travel))) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (gp-0 (new 'stack-no-clear 'vector)) + ) + (vector-z-quaternion! s5-0 (-> self root-override quat)) + (seek-toward-heading-vec! + (-> self root-override) + (-> self nav travel) + (-> self rotate-speed) + (the-as int (-> self turn-time)) ) - (vector-z-quaternion! s5-0 (-> self root-override quat)) - (seek-toward-heading-vec! - (-> self root-override) - (-> self nav travel) - (-> self rotate-speed) - (the-as int (-> self turn-time)) + (vector-z-quaternion! gp-0 (-> self root-override quat)) + (set! (-> self rotating) (< (vector-dot gp-0 s5-0) (cos (* 8192.0 (-> *display* seconds-per-frame))))) + (when (-> self rotating) + (let ((v1-16 (new 'stack-no-clear 'vector))) + (vector-cross! v1-16 gp-0 s5-0) + (set! f30-0 (sign (-> v1-16 y))) + ) + ) + ) ) - (vector-z-quaternion! gp-0 (-> self root-override quat)) - (set! - (-> self rotating) - (< - (vector-dot gp-0 s5-0) - (cos (* 8192.0 (-> *display* seconds-per-frame))) - ) - ) - (when (-> self rotating) - (let ((v1-16 (new 'stack-no-clear 'vector))) - (vector-cross! v1-16 gp-0 s5-0) - (set! f30-0 (sign (-> v1-16 y))) - ) - ) - ) + (set! (-> self walk-turn-blend) + (seek + (-> self walk-turn-blend) + f30-0 + (* (-> *YAKOW-bank* walk-turn-blend-rate) (-> *display* seconds-per-frame)) + ) + ) ) - (set! - (-> self walk-turn-blend) - (seek - (-> self walk-turn-blend) - f30-0 - (* (-> *YAKOW-bank* walk-turn-blend-rate) (-> *display* seconds-per-frame)) - ) + (set! (-> self final-speed) + (fmin (-> self travel-speed) (* (vector-length (-> self nav travel)) (-> *display* frames-per-second))) + ) + (let ((v1-24 (vector-normalize-copy! (new-stack-vector0) (-> self nav travel) (-> self final-speed)))) + (set! (-> self root-override transv x) (-> v1-24 x)) + (set! (-> self root-override transv z) (-> v1-24 z)) ) - ) - (set! - (-> self final-speed) - (fmin - (-> self travel-speed) - (* (vector-length (-> self nav travel)) (-> *display* frames-per-second)) - ) - ) - (let - ((v1-24 - (vector-normalize-copy! - (new-stack-vector0) - (-> self nav travel) - (-> self final-speed) - ) - ) - ) - (set! (-> self root-override transv x) (-> v1-24 x)) - (set! (-> self root-override transv z) (-> v1-24 z)) - ) - (vector-v++! - (-> self root-override transv) - (dummy-62 (-> self root-override) (new-stack-vector0) 0.0) - ) + (vector-v++! (-> self root-override transv) (dummy-62 (-> self root-override) (new-stack-vector0) 0.0)) (let ((gp-2 (new 'stack-no-clear 'vector))) - (set! (-> gp-2 quad) (-> self root-override trans quad)) - (dummy-59 - (-> self root-override) - (-> self root-override transv) - (the-as uint 1) - 8192.0 - #t - #f - #f + (set! (-> gp-2 quad) (-> self root-override trans quad)) + (dummy-59 (-> self root-override) (-> self root-override transv) (the-as uint 1) 8192.0 #t #f #f) + (set! (-> self final-speed) + (* (vector-vector-xz-distance gp-2 (-> self root-override trans)) (-> *display* frames-per-second)) + ) ) - (set! - (-> self final-speed) - (* - (vector-vector-xz-distance gp-2 (-> self root-override trans)) - (-> *display* frames-per-second) - ) - ) - ) - (set! - (-> self travel-speed) - (fmin (-> self travel-speed) (-> self final-speed)) - ) + (set! (-> self travel-speed) (fmin (-> self travel-speed) (-> self final-speed))) (dummy-10 (-> self water)) - (when - (and - (logtest? (-> self nav current-poly pat) 2) - (not - (and - (-> self entity) - (logtest? - (-> self entity extra perm status) - (entity-perm-status complete) - ) - ) - ) + (when (and + (logtest? (-> self nav current-poly pat) 2) + (not (and (-> self entity) (logtest? (-> self entity extra perm status) (entity-perm-status complete)))) + ) + (set! (-> self in-pen) #t) + (set! (-> self nav destination-pos quad) (-> self dest-base quad)) + (yakow-task-complete? #t) ) - (set! (-> self in-pen) #t) - (set! (-> self nav destination-pos quad) (-> self dest-base quad)) - (yakow-task-complete? #t) - ) (yakow-common-post) (none) ) (defbehavior yakow-generate-travel-vector yakow () - (let - ((gp-1 - (vector-! - (new 'stack-no-clear 'vector) - (-> self root-override trans) - (target-pos 0) - ) - ) - (s5-1 - (vector-z-quaternion! - (new 'stack-no-clear 'vector) - (-> self root-override quat) - ) - ) - ) - 0.0 - 0.0 - (set! (-> gp-1 y) 0.0) - (set! (-> self nav travel quad) (-> gp-1 quad)) - (vector-normalize! (-> self nav travel) 409600.0) - (dummy-24 - (-> self nav) - 204.8 - (the-as clip-travel-vector-to-mesh-return-info #f) - ) - (when (not (-> self enable-turn-around)) - (set! (-> gp-1 quad) (-> self nav travel quad)) - (let ((f30-0 (vector-length gp-1))) - (vector-normalize! gp-1 1.0) - (if (and (< 409.6 f30-0) (>= (vector-dot s5-1 gp-1) (cos 10922.667))) - (set! (-> s5-1 quad) (-> gp-1 quad)) - ) - ) - (set! (-> self nav travel quad) (-> s5-1 quad)) + (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) (-> self root-override trans) (target-pos 0))) + (s5-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root-override quat))) + ) + 0.0 + 0.0 + (set! (-> gp-1 y) 0.0) + (set! (-> self nav travel quad) (-> gp-1 quad)) (vector-normalize! (-> self nav travel) 409600.0) - (dummy-24 - (-> self nav) - 204.8 - (the-as clip-travel-vector-to-mesh-return-info #f) - ) - (vector-length (-> self nav travel)) + (dummy-24 (-> self nav) 204.8 (the-as clip-travel-vector-to-mesh-return-info #f)) + (when (not (-> self enable-turn-around)) + (set! (-> gp-1 quad) (-> self nav travel quad)) + (let ((f30-0 (vector-length gp-1))) + (vector-normalize! gp-1 1.0) + (if (and (< 409.6 f30-0) (>= (vector-dot s5-1 gp-1) (cos 10922.667))) + (set! (-> s5-1 quad) (-> gp-1 quad)) + ) + ) + (set! (-> self nav travel quad) (-> s5-1 quad)) + (vector-normalize! (-> self nav travel) 409600.0) + (dummy-24 (-> self nav) 204.8 (the-as clip-travel-vector-to-mesh-return-info #f)) + (vector-length (-> self nav travel)) + ) ) - ) - (vector+! - (-> self nav target-pos) - (-> self root-override trans) - (-> self nav travel) - ) + (vector+! (-> self nav target-pos) (-> self root-override trans) (-> self nav travel)) ) (defbehavior yakow-run-post yakow () @@ -470,207 +338,160 @@ yakow-default-event-handler (defbehavior yakow-blend-walk-run yakow () (let ((gp-0 (-> *display* base-frame-counter))) - (while #t - (let ((f30-0 (-> self final-speed))) - (cond - ((and (>= 409.6 (-> self final-speed)) (not (-> self rotating))) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 4) - ) - ) - (ja-channel-push! 1 45) - ) - (let ((s5-0 (-> self skel root-channel 0))) - (joint-control-channel-group-eval! - s5-0 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-identity - ) - (set! (-> s5-0 frame-num) 0.0) - ) - (while - (or - (< (- (-> *display* base-frame-counter) gp-0) 60) - (< (-> self final-speed) 409.6) - ) - (suspend) - (let ((a0-6 (-> self skel root-channel 0))) - (set! (-> a0-6 param 0) 1.0) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-loop! - ) - ) - ) - ) - (else - (set! gp-0 (-> *display* base-frame-counter)) - ) - ) - (when (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 6) - ) - ) - (ja-channel-push! 3 22) - (let ((s5-1 (-> self skel root-channel 0))) - (set! (-> s5-1 frame-interp) 0.0) - (joint-control-channel-group-eval! - s5-1 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-identity - ) - (set! (-> s5-1 frame-num) 0.0) - ) - (let ((s5-2 (-> self skel root-channel 1))) - (set! (-> s5-2 frame-interp) 0.0) - (joint-control-channel-group-eval! - s5-2 - (the-as art-joint-anim (-> self draw art-group data 10)) - num-func-identity - ) - (set! (-> s5-2 frame-num) 0.0) - ) - (let ((s5-3 (-> self skel root-channel 2))) - (set! (-> s5-3 frame-interp) 0.0) - (joint-control-channel-group-eval! - s5-3 - (the-as art-joint-anim (-> self draw art-group data 7)) - num-func-identity - ) - (set! (-> s5-3 frame-num) 0.0) - ) - ) - (cond - ((< (-> self walk-turn-blend) 0.0) - (let ((v1-49 (-> self skel root-channel 1))) - (set! - (-> v1-49 frame-group) - (the-as art-joint-anim (-> self draw art-group data 10)) - ) - ) - ) - (else - (let ((v1-52 (-> self skel root-channel 1))) - (set! - (-> v1-52 frame-group) - (the-as art-joint-anim (-> self draw art-group data 9)) - ) - ) - ) - ) - (cond - ((< f30-0 (-> *YAKOW-bank* min-run-speed)) - (set! (-> self run-mode) #f) - ) - ((< (-> *YAKOW-bank* max-walk-speed) f30-0) - (set! (-> self run-mode) #t) - ) - ) - (if (-> self run-mode) - (set! - (-> self walk-run-blend) - (seek - (-> self walk-run-blend) - 1.0 - (* - (-> *YAKOW-bank* walk-run-blend-rate) - (-> *display* seconds-per-frame) - ) - ) - ) - (set! - (-> self walk-run-blend) - (seek - (-> self walk-run-blend) - 0.0 - (* - (-> *YAKOW-bank* walk-run-blend-rate) - (-> *display* seconds-per-frame) - ) - ) - ) - ) - (let ((v1-68 (-> self skel root-channel 1))) - (set! (-> v1-68 frame-interp) (fabs (-> self walk-turn-blend))) - ) - (let ((v1-72 (-> self skel root-channel 2))) - (set! (-> v1-72 frame-interp) (-> self walk-run-blend)) - ) - (let* ((f0-25 (* (-> *YAKOW-bank* walk-anim-speed) f30-0)) - (f1-5 (-> *YAKOW-bank* walk-speed)) - (f0-26 (* f0-25 (/ 1.0 f1-5))) - ) - (let* ((f1-9 (* (-> *YAKOW-bank* run-anim-speed) f30-0)) - (f2-1 (-> *YAKOW-bank* run-speed)) - (f1-12 - (fmax - (fmin (* f1-9 (/ 1.0 f2-1)) (-> *YAKOW-bank* max-run-anim-speed)) - (-> *YAKOW-bank* min-run-anim-speed) + (while #t + (let ((f30-0 (-> self final-speed))) + (cond + ((and (>= 409.6 (-> self final-speed)) (not (-> self rotating))) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 4) + ) + ) + (ja-channel-push! 1 45) ) - ) + (let ((s5-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + s5-0 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-identity + ) + (set! (-> s5-0 frame-num) 0.0) ) - (if (-> self run-mode) - (set! f0-26 f1-12) + (while (or (< (- (-> *display* base-frame-counter) gp-0) 60) (< (-> self final-speed) 409.6)) + (suspend) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) 1.0) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + ) + (else + (set! gp-0 (-> *display* base-frame-counter)) + ) + ) + (when (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 6) + ) + ) + (ja-channel-push! 3 22) + (let ((s5-1 (-> self skel root-channel 0))) + (set! (-> s5-1 frame-interp) 0.0) + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-identity + ) + (set! (-> s5-1 frame-num) 0.0) + ) + (let ((s5-2 (-> self skel root-channel 1))) + (set! (-> s5-2 frame-interp) 0.0) + (joint-control-channel-group-eval! + s5-2 + (the-as art-joint-anim (-> self draw art-group data 10)) + num-func-identity + ) + (set! (-> s5-2 frame-num) 0.0) + ) + (let ((s5-3 (-> self skel root-channel 2))) + (set! (-> s5-3 frame-interp) 0.0) + (joint-control-channel-group-eval! + s5-3 + (the-as art-joint-anim (-> self draw art-group data 7)) + num-func-identity + ) + (set! (-> s5-3 frame-num) 0.0) + ) + ) + (cond + ((< (-> self walk-turn-blend) 0.0) + (let ((v1-49 (-> self skel root-channel 1))) + (set! (-> v1-49 frame-group) (the-as art-joint-anim (-> self draw art-group data 10))) + ) + ) + (else + (let ((v1-52 (-> self skel root-channel 1))) + (set! (-> v1-52 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) + ) + ) + ) + (cond + ((< f30-0 (-> *YAKOW-bank* min-run-speed)) + (set! (-> self run-mode) #f) + ) + ((< (-> *YAKOW-bank* max-walk-speed) f30-0) + (set! (-> self run-mode) #t) + ) + ) + (if (-> self run-mode) + (set! (-> self walk-run-blend) + (seek (-> self walk-run-blend) 1.0 (* (-> *YAKOW-bank* walk-run-blend-rate) (-> *display* seconds-per-frame))) + ) + (set! (-> self walk-run-blend) + (seek (-> self walk-run-blend) 0.0 (* (-> *YAKOW-bank* walk-run-blend-rate) (-> *display* seconds-per-frame))) + ) + ) + (let ((v1-68 (-> self skel root-channel 1))) + (set! (-> v1-68 frame-interp) (fabs (-> self walk-turn-blend))) + ) + (let ((v1-72 (-> self skel root-channel 2))) + (set! (-> v1-72 frame-interp) (-> self walk-run-blend)) + ) + (let* ((f0-25 (* (-> *YAKOW-bank* walk-anim-speed) f30-0)) + (f1-5 (-> *YAKOW-bank* walk-speed)) + (f0-26 (* f0-25 (/ 1.0 f1-5))) + ) + (let* ((f1-9 (* (-> *YAKOW-bank* run-anim-speed) f30-0)) + (f2-1 (-> *YAKOW-bank* run-speed)) + (f1-12 + (fmax (fmin (* f1-9 (/ 1.0 f2-1)) (-> *YAKOW-bank* max-run-anim-speed)) (-> *YAKOW-bank* min-run-anim-speed)) + ) + ) + (if (-> self run-mode) + (set! f0-26 f1-12) + ) + ) + (if (-> self rotating) + (set! f0-26 (fmax (-> *YAKOW-bank* min-walk-anim-speed) f0-26)) + ) + (let ((a0-24 (-> self skel root-channel 0))) + (set! (-> a0-24 param 0) f0-26) + (joint-control-channel-group-eval! a0-24 (the-as art-joint-anim #f) num-func-loop!) + ) + ) ) - ) - (if (-> self rotating) - (set! f0-26 (fmax (-> *YAKOW-bank* min-walk-anim-speed) f0-26)) - ) - (let ((a0-24 (-> self skel root-channel 0))) - (set! (-> a0-24 param 0) f0-26) - (joint-control-channel-group-eval! - a0-24 - (the-as art-joint-anim #f) - num-func-loop! + (let ((s5-4 (-> self skel root-channel 1))) + (set! (-> s5-4 num-func) num-func-identity) + (set! (-> s5-4 frame-num) (ja-frame-num 0)) ) - ) + (let ((s5-5 (-> self skel root-channel 2))) + (set! (-> s5-5 num-func) num-func-identity) + (set! (-> s5-5 frame-num) (ja-frame-num 0)) + ) + (suspend) + 0 ) - ) - (let ((s5-4 (-> self skel root-channel 1))) - (set! (-> s5-4 num-func) num-func-identity) - (set! (-> s5-4 frame-num) (ja-frame-num 0)) - ) - (let ((s5-5 (-> self skel root-channel 2))) - (set! (-> s5-5 num-func) num-func-identity) - (set! (-> s5-5 frame-num) (ja-frame-num 0)) - ) - (suspend) - 0 ) - ) (none) ) (defbehavior yakow-facing-direction? yakow ((arg0 vector) (arg1 float)) - (let - ((s4-0 - (vector-z-quaternion! - (new 'stack-no-clear 'vector) - (-> self root-override quat) - ) - ) - (s5-0 (new 'stack-no-clear 'vector)) + (let ((s4-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self root-override quat))) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s5-0 quad) (-> arg0 quad)) + (set! (-> s5-0 y) 0.0) + (vector-normalize! s5-0 1.0) + (>= (vector-dot s4-0 s5-0) (cos arg1)) ) - (set! (-> s5-0 quad) (-> arg0 quad)) - (set! (-> s5-0 y) 0.0) - (vector-normalize! s5-0 1.0) - (>= (vector-dot s4-0 s5-0) (cos arg1)) - ) ) (defbehavior yakow-facing-point? yakow ((arg0 vector) (arg1 float)) - (let - ((v1-1 - (vector-! (new 'stack-no-clear 'vector) arg0 (-> self root-override trans)) - ) + (let ((v1-1 (vector-! (new 'stack-no-clear 'vector) arg0 (-> self root-override trans)))) + (yakow-facing-direction? v1-1 arg1) ) - (yakow-facing-direction? v1-1 arg1) - ) ) (defbehavior yakow-facing-player? yakow ((arg0 float)) @@ -682,141 +503,81 @@ yakow-default-event-handler yakow-default-event-handler :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self travel-speed) 0.0) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self travel-speed) 0.0) + (none) + ) :trans (behavior () - (if - (and - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - (the-as int (-> *YAKOW-bank* default-patrol-time)) - ) - (and - *target* - (>= - (-> self fact-override idle-distance) - (vector-vector-distance - (-> self root-override trans) - (-> *target* control trans) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self state-time)) + (the-as int (-> *YAKOW-bank* default-patrol-time)) + ) + (and *target* (>= (-> self fact-override idle-distance) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + ) + (not (yakow-facing-player? 21845.334)) + ) + (go yakow-notice) ) - ) - ) - (not (yakow-facing-player? 21845.334)) - ) - (go yakow-notice) + (none) ) - (none) - ) :code (behavior () - (ja-channel-push! 1 45) - (while #t - (cond - ((rand-vu-percent? 0.2) - (dummy-10 (-> self skel effect) 'yakow-1 0.0 -1) - ) - ((rand-vu-percent? 0.2) - (dummy-10 (-> self skel effect) 'yakow-2 0.0 -1) - ) - ) - (let ((f30-0 (rand-vu-float-range 0.9 1.1))) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-6 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length - ) - -1 + (ja-channel-push! 1 45) + (while #t + (cond + ((rand-vu-percent? 0.2) + (dummy-10 (-> self skel effect) 'yakow-1 0.0 -1) + ) + ((rand-vu-percent? 0.2) + (dummy-10 (-> self skel effect) 'yakow-2 0.0 -1) ) ) - ) - (set! (-> a0-6 param 1) f30-0) - (set! (-> a0-6 frame-num) 0.0) - (joint-control-channel-group! - a0-6 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-7 (-> self skel root-channel 0))) - (set! - (-> a0-7 param 0) - (the float (+ (-> a0-7 frame-group data 0 length) -1)) - ) - (set! (-> a0-7 param 1) f30-0) - (joint-control-channel-group-eval! - a0-7 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (when (rand-vu-percent? 0.25) - (ja-channel-push! 1 30) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-11 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (let ((f30-0 (rand-vu-float-range 0.9 1.1))) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-6 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-6 param 1) f30-0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! a0-6 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) f30-0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) ) - -1 - ) ) - ) - (set! (-> a0-11 param 1) 1.0) - (set! (-> a0-11 frame-num) 0.0) - (joint-control-channel-group! - a0-11 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) + (when (rand-vu-percent? 0.25) + (ja-channel-push! 1 30) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-11 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-11 param 1) 1.0) + (set! (-> a0-11 frame-num) 0.0) + (joint-control-channel-group! a0-11 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1))) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (ja-channel-push! 1 30) + ) ) - (until (ja-done? 0) - (suspend) - (let ((a0-12 (-> self skel root-channel 0))) - (set! - (-> a0-12 param 0) - (the float (+ (-> a0-12 frame-group data 0 length) -1)) - ) - (set! (-> a0-12 param 1) 1.0) - (joint-control-channel-group-eval! - a0-12 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (ja-channel-push! 1 30) - ) + (none) ) - (none) - ) :post (the-as (function none :behavior yakow) ja-post) ) @@ -826,15 +587,12 @@ yakow-default-event-handler yakow-default-event-handler :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self travel-speed) 0.0) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self travel-speed) 0.0) + (none) + ) :code - (behavior () - (go yakow-run-away) - (none) - ) + (behavior () (go yakow-run-away) (none)) :post yakow-simple-post ) @@ -844,81 +602,64 @@ yakow-default-event-handler yakow-default-event-handler :enter (behavior ((arg0 vector)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logior! (-> self nav flags) (nav-control-flags bit10)) - (set! (-> self nav destination-pos quad) (-> arg0 quad)) - (set! (-> self rotate-speed) (-> *YAKOW-bank* walk-rotate-speed)) - (set! (-> self turn-time) (-> *YAKOW-bank* walk-turn-time)) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (logior! (-> self nav flags) (nav-control-flags bit10)) + (set! (-> self nav destination-pos quad) (-> arg0 quad)) + (set! (-> self rotate-speed) (-> *YAKOW-bank* walk-rotate-speed)) + (set! (-> self turn-time) (-> *YAKOW-bank* walk-turn-time)) + (none) + ) :trans (behavior () - (if - (and - (>= - (- (-> *display* base-frame-counter) (-> self state-time)) - (the-as int (-> *YAKOW-bank* default-patrol-time)) - ) - (not (-> self in-pen)) - (and - *target* - (>= - (-> self fact-override idle-distance) - (vector-vector-distance - (-> self root-override trans) - (-> *target* control trans) + (if (and + (>= (- (-> *display* base-frame-counter) (-> self state-time)) + (the-as int (-> *YAKOW-bank* default-patrol-time)) + ) + (not (-> self in-pen)) + (and *target* (>= (-> self fact-override idle-distance) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + ) + (not (yakow-facing-player? 21845.334)) + ) + (go yakow-notice) ) - ) - ) - (not (yakow-facing-player? 21845.334)) - ) - (go yakow-notice) - ) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) - (when - (or - (logtest? (nav-control-flags bit19) (-> self nav flags)) - (< - (vector-vector-xz-distance - (-> self root-override trans) - (-> self nav destination-pos) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (when (or + (logtest? (nav-control-flags bit19) (-> self nav flags)) + (< (vector-vector-xz-distance (-> self root-override trans) (-> self nav destination-pos)) 4096.0) + ) + (if (-> self in-pen) + (go yakow-graze) + (go yakow-idle) + ) ) - 4096.0 - ) ) - (if (-> self in-pen) - (go yakow-graze) - (go yakow-idle) - ) - ) + (set! (-> self travel-speed) (seek + (-> self travel-speed) + (-> *YAKOW-bank* walk-speed) + (* (-> *YAKOW-bank* acceleration) (-> *display* seconds-per-frame)) + ) + ) + (none) ) - (set! - (-> self travel-speed) - (seek - (-> self travel-speed) - (-> *YAKOW-bank* walk-speed) - (* (-> *YAKOW-bank* acceleration) (-> *display* seconds-per-frame)) - ) - ) - (none) - ) :code (the-as (function vector none :behavior yakow) yakow-blend-walk-run) :post (behavior () - (dummy-19 - (-> self nav) - (-> self nav target-pos) - (-> self root-override) - (-> self nav destination-pos) - 131072.0 + (dummy-19 + (-> self nav) + (-> self nav target-pos) + (-> self root-override) + (-> self nav destination-pos) + 131072.0 + ) + (if (logtest? (nav-control-flags bit21) (-> self nav flags)) + (logclear! (-> self nav flags) (nav-control-flags bit10)) + ) + (yakow-post) + (none) ) - (if (logtest? (nav-control-flags bit21) (-> self nav flags)) - (logclear! (-> self nav flags) (nav-control-flags bit10)) - ) - (yakow-post) - (none) - ) ) (defstate yakow-graze (yakow) @@ -926,206 +667,114 @@ yakow-default-event-handler yakow-default-event-handler :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self travel-speed) 0.0) - (set! (-> self grazing) #t) - (let ((v1-3 (entity-actor-lookup (-> self entity) 'alt-actor 0))) - (send-event (if v1-3 - (-> v1-3 extra process) - ) - 'update - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (set! (-> self travel-speed) 0.0) + (set! (-> self grazing) #t) + (let ((v1-3 (entity-actor-lookup (-> self entity) 'alt-actor 0))) + (send-event + (if v1-3 + (-> v1-3 extra process) + ) + 'update + ) + ) + (none) ) - (none) - ) :code (behavior () - (while - (< - 546.13336 - (fabs (deg-diff (-> self dest-rot) (y-angle (-> self root-override)))) - ) - (if (not (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) + (while (< 546.13336 (fabs (deg-diff (-> self dest-rot) (y-angle (-> self root-override))))) + (if (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 6) + ) ) - (-> self draw art-group data 6) - ) - ) - (ja-channel-push! 1 22) - ) - (seek-toward-yaw-angle! - (-> self root-override) - (-> self dest-rot) - 16384.0 - 150 - ) - (let ((a0-6 (-> self skel root-channel 0))) - (set! - (-> a0-6 frame-group) - (the-as art-joint-anim (-> self draw art-group data 6)) - ) - (set! (-> a0-6 param 0) 1.0) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim (-> self draw art-group data 6)) - num-func-loop! - ) - ) - (suspend) - ) - (ja-channel-push! 1 45) - (while #t - (let ((a0-10 (-> self skel root-channel 0))) - (set! - (-> a0-10 frame-group) - (the-as art-joint-anim (-> self draw art-group data 4)) - ) - (set! - (-> a0-10 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 4)) - data - 0 - length - ) - -1 - ) - ) - ) - (set! (-> a0-10 param 1) 1.0) - (set! (-> a0-10 frame-num) 0.0) - (joint-control-channel-group! - a0-10 - (the-as art-joint-anim (-> self draw art-group data 4)) - num-func-seek! - ) - ) - (until (ja-done? 0) - (suspend) - (let ((a0-11 (-> self skel root-channel 0))) - (set! - (-> a0-11 param 0) - (the float (+ (-> a0-11 frame-group data 0 length) -1)) - ) - (set! (-> a0-11 param 1) 1.0) - (joint-control-channel-group-eval! - a0-11 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (when (rand-vu-percent? 0.5) - (ja-channel-push! 1 30) - (let ((a0-15 (-> self skel root-channel 0))) - (set! - (-> a0-15 frame-group) - (the-as art-joint-anim (-> self draw art-group data 5)) - ) - (set! - (-> a0-15 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 5)) - data - 0 - length + (ja-channel-push! 1 22) + ) + (seek-toward-yaw-angle! (-> self root-override) (-> self dest-rot) 16384.0 150) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 frame-group) (the-as art-joint-anim (-> self draw art-group data 6))) + (set! (-> a0-6 param 0) 1.0) + (joint-control-channel-group-eval! + a0-6 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-loop! ) - -1 - ) ) - ) - (set! (-> a0-15 param 1) 1.0) - (set! (-> a0-15 frame-num) 0.0) - (joint-control-channel-group! - a0-15 - (the-as art-joint-anim (-> self draw art-group data 5)) - num-func-seek! - ) - ) - (until (ja-done? 0) (suspend) - (let ((a0-16 (-> self skel root-channel 0))) - (set! - (-> a0-16 param 0) - (the float (+ (-> a0-16 frame-group data 0 length) -1)) - ) - (set! (-> a0-16 param 1) 1.0) - (joint-control-channel-group-eval! - a0-16 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) ) - (ja-channel-push! 1 30) - ) + (ja-channel-push! 1 45) + (while #t + (let ((a0-10 (-> self skel root-channel 0))) + (set! (-> a0-10 frame-group) (the-as art-joint-anim (-> self draw art-group data 4))) + (set! (-> a0-10 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1)) + ) + (set! (-> a0-10 param 1) 1.0) + (set! (-> a0-10 frame-num) 0.0) + (joint-control-channel-group! a0-10 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-11 (-> self skel root-channel 0))) + (set! (-> a0-11 param 0) (the float (+ (-> a0-11 frame-group data 0 length) -1))) + (set! (-> a0-11 param 1) 1.0) + (joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (when (rand-vu-percent? 0.5) + (ja-channel-push! 1 30) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 frame-group) (the-as art-joint-anim (-> self draw art-group data 5))) + (set! (-> a0-15 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1)) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! a0-15 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1))) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (ja-channel-push! 1 30) + ) + ) + (none) ) - (none) - ) :post yakow-simple-post ) (defstate yakow-graze-kicked (yakow) :event - (the-as - (function process int symbol event-message-block object :behavior yakow) - #f - ) + (the-as (function process int symbol event-message-block object :behavior yakow) #f) :code (behavior () - (let ((a0-0 (-> self skel root-channel 0))) - (set! - (-> a0-0 frame-group) - (the-as art-joint-anim (-> self draw art-group data 11)) - ) - (set! - (-> a0-0 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 11)) - data - 0 - length + (let ((a0-0 (-> self skel root-channel 0))) + (set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) + (set! (-> a0-0 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 11)) data 0 length) -1)) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 11)) num-func-seek!) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1))) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!) ) - -1 - ) ) - ) - (set! (-> a0-0 param 1) 1.0) - (set! (-> a0-0 frame-num) 0.0) - (joint-control-channel-group! - a0-0 - (the-as art-joint-anim (-> self draw art-group data 11)) - num-func-seek! - ) + (go yakow-graze) + (none) ) - (until (ja-done? 0) - (suspend) - (let ((a0-1 (-> self skel root-channel 0))) - (set! - (-> a0-1 param 0) - (the float (+ (-> a0-1 frame-group data 0 length) -1)) - ) - (set! (-> a0-1 param 1) 1.0) - (joint-control-channel-group-eval! - a0-1 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - (go yakow-graze) - (none) - ) :post yakow-simple-post ) @@ -1135,65 +784,50 @@ yakow-default-event-handler yakow-default-event-handler :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logior! (-> self nav flags) (nav-control-flags bit10)) - (set! (-> self rotate-speed) (-> *YAKOW-bank* run-rotate-speed)) - (set! (-> self turn-time) (-> *YAKOW-bank* run-turn-time)) - (none) - ) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (logior! (-> self nav flags) (nav-control-flags bit10)) + (set! (-> self rotate-speed) (-> *YAKOW-bank* run-rotate-speed)) + (set! (-> self turn-time) (-> *YAKOW-bank* run-turn-time)) + (none) + ) :trans (behavior () - (when - (or - (not *target*) - (< - (-> *YAKOW-bank* safe-distance) - (vector-vector-distance - (-> self root-override trans) - (-> *target* control trans) - ) - ) - ) - (if (-> self in-pen) - (go yakow-walk-to (-> self dest-base)) - (go yakow-walk-to (-> self home-base)) - ) - ) - (let* ((f0-2 (* (if (-> self run-mode) - 0.5 - 1.0 - ) - (vector-vector-distance - (-> self root-override trans) - (target-pos 0) - ) - ) - ) - (f30-2 - (lerp-scale - (-> *YAKOW-bank* run-speed) - (-> *YAKOW-bank* walk-speed) - f0-2 - (-> *YAKOW-bank* run-away-dist) - (-> *YAKOW-bank* walk-away-dist) - ) - ) + (when (or (not *target*) (< (-> *YAKOW-bank* safe-distance) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + ) + (if (-> self in-pen) + (go yakow-walk-to (-> self dest-base)) + (go yakow-walk-to (-> self home-base)) ) - (if (yakow-facing-player? 21845.334) - (set! f30-2 0.0) - ) - (set! (-> self enable-turn-around) (< (-> *YAKOW-bank* run-speed) f30-2)) - (set! - (-> self travel-speed) - (seek - (-> self travel-speed) - f30-2 - (* (-> *YAKOW-bank* acceleration) (-> *display* seconds-per-frame)) ) - ) + (let* ((f0-2 (* (if (-> self run-mode) + 0.5 + 1.0 + ) + (vector-vector-distance (-> self root-override trans) (target-pos 0)) + ) + ) + (f30-2 + (lerp-scale + (-> *YAKOW-bank* run-speed) + (-> *YAKOW-bank* walk-speed) + f0-2 + (-> *YAKOW-bank* run-away-dist) + (-> *YAKOW-bank* walk-away-dist) + ) + ) + ) + (if (yakow-facing-player? 21845.334) + (set! f30-2 0.0) + ) + (set! (-> self enable-turn-around) (< (-> *YAKOW-bank* run-speed) f30-2)) + (set! (-> self travel-speed) + (seek (-> self travel-speed) f30-2 (* (-> *YAKOW-bank* acceleration) (-> *display* seconds-per-frame))) + ) + ) + (none) ) - (none) - ) :code yakow-blend-walk-run :post @@ -1202,247 +836,149 @@ yakow-default-event-handler (defstate yakow-kicked (yakow) :event - (the-as - (function process int symbol event-message-block object :behavior yakow) - #f - ) + (the-as (function process int symbol event-message-block object :behavior yakow) #f) :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (if (-> self grazing) - (go yakow-graze-kicked) + (set! (-> self state-time) (-> *display* base-frame-counter)) + (if (-> self grazing) + (go yakow-graze-kicked) + ) + (set! (-> self travel-speed) + (fmax + (fmin (+ (-> self travel-speed) (-> *YAKOW-bank* speed-boost-impulse)) (-> *YAKOW-bank* max-run-speed)) + (-> *YAKOW-bank* run-speed) + ) + ) + (none) ) - (set! - (-> self travel-speed) - (fmax - (fmin - (+ (-> self travel-speed) (-> *YAKOW-bank* speed-boost-impulse)) - (-> *YAKOW-bank* max-run-speed) - ) - (-> *YAKOW-bank* run-speed) - ) - ) - (none) - ) :exit - (behavior () - '() - (none) - ) + (behavior () '() (none)) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) - (set! - (-> self travel-speed) - (seek - (-> self travel-speed) - (-> *YAKOW-bank* run-speed) - (* (-> *YAKOW-bank* acceleration) (-> *display* seconds-per-frame)) - ) - ) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (set! (-> self travel-speed) (seek + (-> self travel-speed) + (-> *YAKOW-bank* run-speed) + (* (-> *YAKOW-bank* acceleration) (-> *display* seconds-per-frame)) + ) + ) + ) + 0 + (none) ) - 0 - (none) - ) :code (behavior () - (set! (-> self enable-turn-around) #t) - 1.0 - (suspend) - (ja-channel-push! 1 15) - (cond - ((< 40.96 (vector-length (-> self nav travel))) - (let ((v1-4 (-> self skel root-channel 0))) - (set! - (-> v1-4 frame-group) - (the-as art-joint-anim (-> self draw art-group data 8)) - ) - ) - (let ((v1-7 (-> self skel root-channel 0))) - (set! (-> v1-7 num-func) num-func-identity) - (set! (-> v1-7 frame-num) 0.0) - ) - (until (ja-done? 0) - (suspend) - (let* ((f0-3 0.75) - (f1-0 0.25) - (f2-0 (-> *YAKOW-bank* run-speed)) - (f0-4 - (fmax - f0-3 - (fmin - (* - f1-0 - (/ 1.0 f2-0) - (-> self final-speed) - (-> *YAKOW-bank* run-anim-speed) - ) - (-> *YAKOW-bank* max-run-anim-speed) - ) - ) - ) - (a0-6 (-> self skel root-channel 0)) - ) - (set! - (-> a0-6 param 0) - (the float (+ (-> a0-6 frame-group data 0 length) -1)) - ) - (set! (-> a0-6 param 1) f0-4) - (joint-control-channel-group-eval! - a0-6 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) - (else - (let ((a0-8 (-> self skel root-channel 0))) - (set! - (-> a0-8 frame-group) - (the-as art-joint-anim (-> self draw art-group data 11)) - ) - (set! - (-> a0-8 param 0) - (the - float - (+ - (-> - (the-as art-joint-anim (-> self draw art-group data 11)) - data - 0 - length - ) - -1 + (set! (-> self enable-turn-around) #t) + 1.0 + (suspend) + (ja-channel-push! 1 15) + (cond + ((< 40.96 (vector-length (-> self nav travel))) + (let ((v1-4 (-> self skel root-channel 0))) + (set! (-> v1-4 frame-group) (the-as art-joint-anim (-> self draw art-group data 8))) ) + (let ((v1-7 (-> self skel root-channel 0))) + (set! (-> v1-7 num-func) num-func-identity) + (set! (-> v1-7 frame-num) 0.0) + ) + (until (ja-done? 0) + (suspend) + (let* ((f0-3 0.75) + (f1-0 0.25) + (f2-0 (-> *YAKOW-bank* run-speed)) + (f0-4 (fmax f0-3 (fmin + (* f1-0 (/ 1.0 f2-0) (-> self final-speed) (-> *YAKOW-bank* run-anim-speed)) + (-> *YAKOW-bank* max-run-anim-speed) + ) + ) + ) + (a0-6 (-> self skel root-channel 0)) + ) + (set! (-> a0-6 param 0) (the float (+ (-> a0-6 frame-group data 0 length) -1))) + (set! (-> a0-6 param 1) f0-4) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + ) + (else + (let ((a0-8 (-> self skel root-channel 0))) + (set! (-> a0-8 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) + (set! (-> a0-8 param 0) + (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 11)) data 0 length) -1)) + ) + (set! (-> a0-8 param 1) 1.0) + (set! (-> a0-8 frame-num) 0.0) + (joint-control-channel-group! a0-8 (the-as art-joint-anim (-> self draw art-group data 11)) num-func-seek!) + ) + (until (ja-done? 0) + (if (< 40.96 (-> self final-speed)) + (go yakow-run-away) + ) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1))) + (set! (-> a0-9 param 1) 1.0) + (joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!) + ) + ) ) - ) - (set! (-> a0-8 param 1) 1.0) - (set! (-> a0-8 frame-num) 0.0) - (joint-control-channel-group! - a0-8 - (the-as art-joint-anim (-> self draw art-group data 11)) - num-func-seek! - ) ) - (until (ja-done? 0) - (if (< 40.96 (-> self final-speed)) - (go yakow-run-away) - ) - (suspend) - (let ((a0-9 (-> self skel root-channel 0))) - (set! - (-> a0-9 param 0) - (the float (+ (-> a0-9 frame-group data 0 length) -1)) - ) - (set! (-> a0-9 param 1) 1.0) - (joint-control-channel-group-eval! - a0-9 - (the-as art-joint-anim #f) - num-func-seek! - ) - ) - ) - ) + (go yakow-run-away) + (none) ) - (go yakow-run-away) - (none) - ) :post yakow-run-post ) (defstate yakow-die (yakow) :event - (the-as - (function process int symbol event-message-block object :behavior yakow) - #f - ) + (the-as (function process int symbol event-message-block object :behavior yakow) #f) :code (behavior () - (let ((v1-1 (-> self root-override root-prim))) - (set! (-> v1-1 collide-with) (the-as uint 0)) - (set! (-> v1-1 prim-core collide-as) (the-as uint 0)) - ) - 0 - (drop-pickup - (-> self fact-override) - #t - *entity-pool* - (-> self fact-override) + (let ((v1-1 (-> self root-override root-prim))) + (set! (-> v1-1 collide-with) (the-as uint 0)) + (set! (-> v1-1 prim-core collide-as) (the-as uint 0)) + ) 0 + (drop-pickup (-> self fact-override) #t *entity-pool* (-> self fact-override) 0) + (process-entity-status! self (entity-perm-status dead) #t) + (none) ) - (process-entity-status! self (entity-perm-status dead) #t) - (none) - ) ) (defmethod init-from-entity! yakow ((obj yakow) (arg0 entity-actor)) (stack-size-set! (-> obj main-thread) 512) - (let - ((s4-0 - (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) - ) + (let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) + (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) + ) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 3073)) + (set! (-> s3-0 prim-core offense) 4) + (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 10240.0) + (set-root-prim! s4-0 s3-0) + ) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (backup-collide-with-as s4-0) + (set! (-> obj root-override) s4-0) ) - (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s4-0 reaction) default-collision-reaction) - (set! - (-> s4-0 no-reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - nothing - ) - ) - (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) - (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) - (set! (-> s3-0 collide-with) (the-as uint 16)) - (set! (-> s3-0 prim-core action) (the-as uint 3073)) - (set! (-> s3-0 prim-core offense) 4) - (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 10240.0) - (set-root-prim! s4-0 s3-0) - ) - (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) - (backup-collide-with-as s4-0) - (set! (-> obj root-override) s4-0) - ) (process-drawable-from-entity! obj arg0) (set! (-> obj align) (new 'process 'align-control obj)) - (set! - (-> obj nav) - (new 'process 'nav-control (-> obj root-override) 16 40960.0) - ) - (logior! - (-> obj nav flags) - (nav-control-flags display-marks bit3 bit5 bit6 bit7) - ) + (set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0)) + (logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7)) (set! (-> obj nav nearest-y-threshold) 409600.0) - (set! - (-> obj fact-override) - (new - 'process - 'fact-info-enemy - obj - (pickup-type eco-pill-random) - (-> *FACT-bank* default-pill-inc) - ) - ) - (set! - (-> obj fact-override idle-distance) - (-> *YAKOW-bank* default-idle-distance) - ) + (set! (-> obj fact-override) + (new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)) + ) + (set! (-> obj fact-override idle-distance) (-> *YAKOW-bank* default-idle-distance)) (initialize-skeleton obj *yakow-sg* '()) - (set! - (-> obj draw shadow-ctrl) - (new - 'process - 'shadow-control - -4096.0 - 4096.0 - 614400.0 - (the-as float 24) - 245760.0 - ) - ) + (set! (-> obj draw shadow-ctrl) + (new 'process 'shadow-control -4096.0 4096.0 614400.0 (the-as float 24) 245760.0) + ) (set! (-> obj link) (new 'process 'actor-link-info obj)) (set! (-> obj water) (new 'process 'water-control obj 6 0.0 8192.0 2048.0)) (set! (-> obj water flags) (the-as uint 2)) @@ -1450,33 +986,29 @@ yakow-default-event-handler (set! (-> obj water ripple-size) 12288.0) (set! (-> obj home-base quad) (-> obj root-override trans quad)) (let ((v1-40 (res-lump-struct (-> obj entity) 'alt-vector vector))) - (when v1-40 - (set! (-> obj dest-base quad) (-> v1-40 quad)) - (set! (-> obj dest-rot) (-> v1-40 w)) - (set! (-> obj dest-base w) 1.0) + (when v1-40 + (set! (-> obj dest-base quad) (-> v1-40 quad)) + (set! (-> obj dest-rot) (-> v1-40 w)) + (set! (-> obj dest-base w) 1.0) + ) ) - ) (set! (-> obj vulnerable) #t) (set! (-> obj grazing) #f) (set! (-> obj enable-turn-around) #f) - (set! - (-> obj in-pen) - (and - (-> obj entity) - (logtest? (-> obj entity extra perm status) (entity-perm-status complete)) - ) - ) + (set! (-> obj in-pen) + (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) + ) (cond - ((-> obj in-pen) - (set! (-> obj root-override trans quad) (-> obj dest-base quad)) - (set-yaw-angle-clear-roll-pitch! (-> obj root-override) (-> obj dest-rot)) - (go yakow-graze) + ((-> obj in-pen) + (set! (-> obj root-override trans quad) (-> obj dest-base quad)) + (set-yaw-angle-clear-roll-pitch! (-> obj root-override) (-> obj dest-rot)) + (go yakow-graze) + ) + (else + (yakow-task-complete? #f) + (go yakow-idle) + ) ) - (else - (yakow-task-complete? #f) - (go yakow-idle) - ) - ) (none) ) diff --git a/goal_src/levels/village2/assistant-village2.gc b/goal_src/levels/village2/assistant-village2.gc index 64cf0f8709..06874715fc 100644 --- a/goal_src/levels/village2/assistant-village2.gc +++ b/goal_src/levels/village2/assistant-village2.gc @@ -15,6 +15,9 @@ :method-count-assert 53 :size-assert #x190 :flag-assert #x3501200190 + (:states + just-particles + ) ) @@ -78,7 +81,7 @@ (defmethod draw-npc-shadow assistant-levitator ((obj assistant-levitator)) (-> obj draw shadow-ctrl) (cond - ((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) 8)) + ((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) (draw-status drwf03))) (let ((v1-9 (-> obj draw shadow-ctrl))) (set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags))) ) @@ -117,156 +120,156 @@ :command-list '((0 send-event target draw #f) (0 kill "villageb-part-33") - ((the binteger 95) send-event target draw #t) - ((the binteger 95) joint "cameraB") - ((the binteger 131) send-event target draw #f) - ((the binteger 131) joint "camera") - ((the binteger 190) setting-reset ocean-off #t) - ((the binteger 190) kill "pontoonten-20") - ((the binteger 190) kill "pontoonten-19") - ((the binteger 190) kill "pontoonten-18") - ((the binteger 190) kill "pontoonten-17") - ((the binteger 190) kill "pontoonten-16") - ((the binteger 190) kill "pontoonten-15") - ((the binteger 190) kill "pontoonten-14") - ((the binteger 190) kill "pontoonten-13") - ((the binteger 190) kill "pontoonten-12") - ((the binteger 190) kill "pontoonten-11") - ((the binteger 190) kill "pontoonten-10") - ((the binteger 190) kill "pontoonten-9") - ((the binteger 190) kill "pontoonten-8") - ((the binteger 190) kill "pontoonten-7") - ((the binteger 190) kill "pontoonten-6") - ((the binteger 190) kill "pontoonfive-3") - ((the binteger 190) kill "pontoonfive-4") - ((the binteger 190) kill "pontoonfive-5") - ((the binteger 190) kill "pontoonfive-6") - ((the binteger 190) kill "pontoonfive-7") - ((the binteger 190) kill "pontoonfive-8") - ((the binteger 190) kill "pontoonfive-12") - ((the binteger 190) kill "pontoonfive-13") - ((the binteger 190) kill "pontoonfive-14") - ((the binteger 190) kill "pontoonfive-15") - ((the binteger 190) kill "pontoonfive-16") - ((the binteger 190) kill "pontoonfive-17") - ((the binteger 190) kill "pontoonfive-18") - ((the binteger 190) kill "pontoonfive-19") - ((the binteger 190) kill "pontoonfive-20") - ((the binteger 190) kill "allpontoons-1") - ((the binteger 190) kill "med-res-level-12") - ((the binteger 190) kill "med-res-level-13") - ((the binteger 190) kill "med-res-level-15") - ((the binteger 190) kill "swamp-blimp-3") - ((the binteger 190) kill "barrel-85") - ((the binteger 190) kill "barrel-86") - ((the binteger 190) kill "money-2844") - ((the binteger 190) kill "money-2845") - ((the binteger 190) kill "money-2846") - ((the binteger 190) kill "money-2847") - ((the binteger 190) kill "money-2848") - ((the binteger 190) kill "money-2849") - ((the binteger 190) kill "money-4923") - ((the binteger 190) kill "money-4924") - ((the binteger 190) kill "money-4925") - ((the binteger 190) kill "money-4926") - ((the binteger 190) kill "money-4927") - ((the binteger 190) kill "eco-27") - ((the binteger 190) kill "sharkey-25") - ((the binteger 190) kill "barrel-117") - ((the binteger 190) kill "barrel-118") - ((the binteger 190) kill "barrel-119") - ((the binteger 190) kill "barrel-120") - ((the binteger 190) kill "barrel-121") - ((the binteger 190) kill "barrel-122") - ((the binteger 190) kill "crate-3129") - ((the binteger 190) kill "crate-3132") - ((the binteger 190) kill "crate-3133") - ((the binteger 190) kill "villageb-part-32") - ((the binteger 190) kill "villageb-part-30") - ((the binteger 190) kill "exit-chamber-dummy-1") - ((the binteger 190) kill "villageb-part-34") - ((the binteger 191) send-event target draw #t) - ((the binteger 191) joint "cameraB") - ((the binteger 241) joint "camera") - ((the binteger 241) send-event target draw #f) - ((the binteger 241) setting-unset ocean-off) - ((the binteger 241) dead "pontoonten-20") - ((the binteger 241) dead "pontoonten-19") - ((the binteger 241) dead "pontoonten-18") - ((the binteger 241) dead "pontoonten-17") - ((the binteger 241) dead "pontoonten-16") - ((the binteger 241) dead "pontoonten-15") - ((the binteger 241) dead "pontoonten-14") - ((the binteger 241) dead "pontoonten-13") - ((the binteger 241) dead "pontoonten-12") - ((the binteger 241) dead "pontoonten-11") - ((the binteger 241) dead "pontoonten-10") - ((the binteger 241) dead "pontoonten-9") - ((the binteger 241) dead "pontoonten-8") - ((the binteger 241) dead "pontoonten-7") - ((the binteger 241) dead "pontoonten-6") - ((the binteger 241) dead "pontoonfive-3") - ((the binteger 241) dead "pontoonfive-4") - ((the binteger 241) dead "pontoonfive-5") - ((the binteger 241) dead "pontoonfive-6") - ((the binteger 241) dead "pontoonfive-7") - ((the binteger 241) dead "pontoonfive-8") - ((the binteger 241) dead "pontoonfive-12") - ((the binteger 241) dead "pontoonfive-13") - ((the binteger 241) dead "pontoonfive-14") - ((the binteger 241) dead "pontoonfive-15") - ((the binteger 241) dead "pontoonfive-16") - ((the binteger 241) dead "pontoonfive-17") - ((the binteger 241) dead "pontoonfive-18") - ((the binteger 241) dead "pontoonfive-19") - ((the binteger 241) dead "pontoonfive-20") - ((the binteger 241) dead "allpontoons-1") - ((the binteger 241) dead "med-res-level-12") - ((the binteger 241) dead "med-res-level-13") - ((the binteger 241) dead "med-res-level-15") - ((the binteger 241) dead "swamp-blimp-3") - ((the binteger 241) dead "barrel-85") - ((the binteger 241) dead "barrel-86") - ((the binteger 241) dead "money-2844") - ((the binteger 241) dead "money-2845") - ((the binteger 241) dead "money-2846") - ((the binteger 241) dead "money-2847") - ((the binteger 241) dead "money-2848") - ((the binteger 241) dead "money-2849") - ((the binteger 241) dead "money-4923") - ((the binteger 241) dead "money-4924") - ((the binteger 241) dead "money-4925") - ((the binteger 241) dead "money-4926") - ((the binteger 241) dead "money-4927") - ((the binteger 241) dead "eco-27") - ((the binteger 241) dead "sharkey-25") - ((the binteger 241) dead "barrel-117") - ((the binteger 241) dead "barrel-118") - ((the binteger 241) dead "barrel-119") - ((the binteger 241) dead "barrel-120") - ((the binteger 241) dead "barrel-121") - ((the binteger 241) dead "barrel-122") - ((the binteger 241) dead "crate-3129") - ((the binteger 241) dead "crate-3132") - ((the binteger 241) dead "crate-3133") - ((the binteger 241) dead "villageb-part-32") - ((the binteger 241) dead "villageb-part-30") - ((the binteger 321) joint "cameraB") - ((the binteger 352) joint "camera") - ((the binteger 383) joint "cameraB") - ((the binteger 411) joint "camera") - ((the binteger 501) joint "cameraB") - ((the binteger 501) send-event target draw #t) - ((the binteger 567) joint "camera") - ((the binteger 634) alive "fireboulder-6") - ((the binteger 635) joint "cameraB") - ((the binteger 701) joint "camera") - ((the binteger 741) joint "cameraB") - ((the binteger 784) joint "camera") - ((the binteger 936) joint "cameraB") - ((the binteger 1065) joint "camera") - ((the binteger 1145) joint "cameraB") - ((the binteger 1241) joint "camera") + (95 send-event target draw #t) + (95 joint "cameraB") + (131 send-event target draw #f) + (131 joint "camera") + (190 setting-reset ocean-off #t) + (190 kill "pontoonten-20") + (190 kill "pontoonten-19") + (190 kill "pontoonten-18") + (190 kill "pontoonten-17") + (190 kill "pontoonten-16") + (190 kill "pontoonten-15") + (190 kill "pontoonten-14") + (190 kill "pontoonten-13") + (190 kill "pontoonten-12") + (190 kill "pontoonten-11") + (190 kill "pontoonten-10") + (190 kill "pontoonten-9") + (190 kill "pontoonten-8") + (190 kill "pontoonten-7") + (190 kill "pontoonten-6") + (190 kill "pontoonfive-3") + (190 kill "pontoonfive-4") + (190 kill "pontoonfive-5") + (190 kill "pontoonfive-6") + (190 kill "pontoonfive-7") + (190 kill "pontoonfive-8") + (190 kill "pontoonfive-12") + (190 kill "pontoonfive-13") + (190 kill "pontoonfive-14") + (190 kill "pontoonfive-15") + (190 kill "pontoonfive-16") + (190 kill "pontoonfive-17") + (190 kill "pontoonfive-18") + (190 kill "pontoonfive-19") + (190 kill "pontoonfive-20") + (190 kill "allpontoons-1") + (190 kill "med-res-level-12") + (190 kill "med-res-level-13") + (190 kill "med-res-level-15") + (190 kill "swamp-blimp-3") + (190 kill "barrel-85") + (190 kill "barrel-86") + (190 kill "money-2844") + (190 kill "money-2845") + (190 kill "money-2846") + (190 kill "money-2847") + (190 kill "money-2848") + (190 kill "money-2849") + (190 kill "money-4923") + (190 kill "money-4924") + (190 kill "money-4925") + (190 kill "money-4926") + (190 kill "money-4927") + (190 kill "eco-27") + (190 kill "sharkey-25") + (190 kill "barrel-117") + (190 kill "barrel-118") + (190 kill "barrel-119") + (190 kill "barrel-120") + (190 kill "barrel-121") + (190 kill "barrel-122") + (190 kill "crate-3129") + (190 kill "crate-3132") + (190 kill "crate-3133") + (190 kill "villageb-part-32") + (190 kill "villageb-part-30") + (190 kill "exit-chamber-dummy-1") + (190 kill "villageb-part-34") + (191 send-event target draw #t) + (191 joint "cameraB") + (241 joint "camera") + (241 send-event target draw #f) + (241 setting-unset ocean-off) + (241 dead "pontoonten-20") + (241 dead "pontoonten-19") + (241 dead "pontoonten-18") + (241 dead "pontoonten-17") + (241 dead "pontoonten-16") + (241 dead "pontoonten-15") + (241 dead "pontoonten-14") + (241 dead "pontoonten-13") + (241 dead "pontoonten-12") + (241 dead "pontoonten-11") + (241 dead "pontoonten-10") + (241 dead "pontoonten-9") + (241 dead "pontoonten-8") + (241 dead "pontoonten-7") + (241 dead "pontoonten-6") + (241 dead "pontoonfive-3") + (241 dead "pontoonfive-4") + (241 dead "pontoonfive-5") + (241 dead "pontoonfive-6") + (241 dead "pontoonfive-7") + (241 dead "pontoonfive-8") + (241 dead "pontoonfive-12") + (241 dead "pontoonfive-13") + (241 dead "pontoonfive-14") + (241 dead "pontoonfive-15") + (241 dead "pontoonfive-16") + (241 dead "pontoonfive-17") + (241 dead "pontoonfive-18") + (241 dead "pontoonfive-19") + (241 dead "pontoonfive-20") + (241 dead "allpontoons-1") + (241 dead "med-res-level-12") + (241 dead "med-res-level-13") + (241 dead "med-res-level-15") + (241 dead "swamp-blimp-3") + (241 dead "barrel-85") + (241 dead "barrel-86") + (241 dead "money-2844") + (241 dead "money-2845") + (241 dead "money-2846") + (241 dead "money-2847") + (241 dead "money-2848") + (241 dead "money-2849") + (241 dead "money-4923") + (241 dead "money-4924") + (241 dead "money-4925") + (241 dead "money-4926") + (241 dead "money-4927") + (241 dead "eco-27") + (241 dead "sharkey-25") + (241 dead "barrel-117") + (241 dead "barrel-118") + (241 dead "barrel-119") + (241 dead "barrel-120") + (241 dead "barrel-121") + (241 dead "barrel-122") + (241 dead "crate-3129") + (241 dead "crate-3132") + (241 dead "crate-3133") + (241 dead "villageb-part-32") + (241 dead "villageb-part-30") + (321 joint "cameraB") + (352 joint "camera") + (383 joint "cameraB") + (411 joint "camera") + (501 joint "cameraB") + (501 send-event target draw #t) + (567 joint "camera") + (634 alive "fireboulder-6") + (635 joint "cameraB") + (701 joint "camera") + (741 joint "cameraB") + (784 joint "camera") + (936 joint "cameraB") + (1065 joint "camera") + (1145 joint "cameraB") + (1241 joint "camera") ) ) ) @@ -311,14 +314,14 @@ :index 21 :parts 10 :command-list - '(((the binteger 197) joint "cameraB") - ((the binteger 351) joint "camera") - ((the binteger 431) joint "cameraB") - ((the binteger 553) joint "camera") - ((the binteger 631) joint "cameraB") - ((the binteger 842) joint "camera") - ((the binteger 900) joint "cameraB") - ((the binteger 1069) joint "camera") + '((197 joint "cameraB") + (351 joint "camera") + (431 joint "cameraB") + (553 joint "camera") + (631 joint "cameraB") + (842 joint "camera") + (900 joint "cameraB") + (1069 joint "camera") ) ) ) @@ -343,11 +346,7 @@ :index 17 :parts 6 :command-list - '(((the binteger 55) joint "cameraB") - ((the binteger 145) joint "camera") - ((the binteger 207) joint "cameraB") - ((the binteger 363) joint "camera") - ) + '((55 joint "cameraB") (145 joint "camera") (207 joint "cameraB") (363 joint "camera")) ) ) (else @@ -361,12 +360,7 @@ :index 19 :parts 8 :command-list - '(((the binteger 71) joint "cameraB") - ((the binteger 308) joint "camera") - ((the binteger 426) joint "cameraB") - ((the binteger 550) joint "camera") - ((the binteger 644) joint "cameraB") - ) + '((71 joint "cameraB") (308 joint "camera") (426 joint "cameraB") (550 joint "camera") (644 joint "cameraB")) ) ) ) @@ -1590,14 +1584,14 @@ :index 16 :parts 7 :command-list - '(((the binteger 196) joint "cameraB") - ((the binteger 241) joint "camera") - ((the binteger 286) joint "cameraB") - ((the binteger 436) joint "camera") - ((the binteger 526) joint "cameraB") - ((the binteger 581) joint "camera") - ((the binteger 639) joint "cameraB") - ((the binteger 715) joint "camera") + '((196 joint "cameraB") + (241 joint "camera") + (286 joint "cameraB") + (436 joint "camera") + (526 joint "cameraB") + (581 joint "camera") + (639 joint "cameraB") + (715 joint "camera") ) ) ) diff --git a/goal_src/levels/village2/swamp-blimp.gc b/goal_src/levels/village2/swamp-blimp.gc index 8dfa4ef591..ce6183bf1c 100644 --- a/goal_src/levels/village2/swamp-blimp.gc +++ b/goal_src/levels/village2/swamp-blimp.gc @@ -16,18 +16,6 @@ (declare-type swamp-tetherrock process-drawable) (declare-type precursor-arm process-drawable) -(define-extern swamp-blimp-idle (state swamp-blimp)) ;; unknown type -(define-extern swamp-blimp-bye-bye (state swamp-blimp)) ;; unknown type -(define-extern swamp-rope-idle-rock (state swamp-rope)) ;; unknown type -(define-extern swamp-rope-idle-arm (state swamp-rope)) ;; unknown type -(define-extern swamp-rope-break (state swamp-rope)) ;; unknown type -(define-extern precursor-arm-idle (state precursor-arm)) ;; unknown type -(define-extern precursor-arm-die (state precursor-arm)) ;; unknown type -(define-extern precursor-arm-sink (state precursor-arm)) ;; unknown type -(define-extern swamp-tetherrock-die (state swamp-tetherrock)) ;; unknown type -(define-extern swamp-tetherrock-hide (state swamp-tetherrock)) ;; unknown type -(define-extern swamp-tetherrock-idle (state swamp-tetherrock)) ;; unknown type -(define-extern swamp-tetherrock-break (state swamp-tetherrock)) ;; unknown type ;; DECOMP BEGINS @@ -561,6 +549,12 @@ :method-count-assert 20 :size-assert #xf4 :flag-assert #x14009000f4 + (:states + swamp-tetherrock-break + swamp-tetherrock-die + swamp-tetherrock-hide + swamp-tetherrock-idle + ) ) @@ -579,6 +573,11 @@ :method-count-assert 20 :size-assert #x114 :flag-assert #x1400b00114 + (:states + precursor-arm-die + precursor-arm-idle + precursor-arm-sink + ) ) @@ -604,6 +603,11 @@ (:methods (dummy-20 (_type_) basic 20) ) + (:states + swamp-rope-break + swamp-rope-idle-arm + swamp-rope-idle-rock + ) ) @@ -637,6 +641,10 @@ :method-count-assert 20 :size-assert #x260 :flag-assert #x1401f00260 + (:states + swamp-blimp-bye-bye + swamp-blimp-idle + ) ) @@ -662,7 +670,7 @@ :code (behavior () (clear-collide-with-as (-> self root-override)) - (logior! (-> self draw status) 2) + (logior! (-> self draw status) (draw-status drwf01)) (while #t (when (= (get-task-status (-> self entity extra perm task)) (task-status invalid)) (if (not (-> self child)) @@ -764,7 +772,7 @@ (-> s4-1 ppointer) ) ) - (logior! (-> self draw status) 32) + (logior! (-> self draw status) (draw-status drwf05)) (let* ((s4-2 (get-process *default-dead-pool* manipy #x4000)) (s4-3 (ppointer->handle (when s4-2 (let ((t9-24 (method-of-type manipy activate))) diff --git a/goal_src/levels/village2/village2-obs.gc b/goal_src/levels/village2/village2-obs.gc index 8596bde523..7bb7c890e6 100644 --- a/goal_src/levels/village2/village2-obs.gc +++ b/goal_src/levels/village2/village2-obs.gc @@ -26,18 +26,6 @@ (declare-type exit-chamber-dummy process-drawable) (declare-type ogreboss-village2 process-drawable) -(define-extern pontoon-die (state pontoon)) ;; unknown type -(define-extern pontoon-hidden (state pontoon)) ;; unknown type -(define-extern allpontoons-idle (state allpontoons)) ;; unknown type -(define-extern allpontoons-be-clone (state handle allpontoons)) ;; unknown type -(define-extern ceilingflag-idle (state ceilingflag)) ;; unknown type -(define-extern fireboulder-idle (state fireboulder)) ;; unknown type -(define-extern fireboulder-hover (state fireboulder)) ;; unknown type -(define-extern fireboulder-be-clone (state handle fireboulder)) ;; unknown type -(define-extern exit-chamber-dummy-wait-to-appear (state exit-chamber-dummy)) ;; unknown type -(define-extern exit-chamber-dummy-idle (state exit-chamber-dummy)) ;; unknown type -(define-extern ogreboss-village2-idle (state ogreboss-village2)) ;; unknown type -(define-extern ogreboss-village2-throw (state ogreboss-village2)) ;; unknown type ;; DECOMP BEGINS @@ -159,6 +147,10 @@ :method-count-assert 35 :size-assert #x2f2 :flag-assert #x23029002f2 + (:states + pontoon-die + pontoon-hidden + ) ) @@ -559,6 +551,10 @@ :method-count-assert 20 :size-assert #xb1 :flag-assert #x14005000b1 + (:states + (allpontoons-be-clone handle) + allpontoons-idle + ) ) @@ -649,6 +645,11 @@ :method-count-assert 20 :size-assert #xb9 :flag-assert #x14005000b9 + (:states + (fireboulder-be-clone handle) + fireboulder-hover + fireboulder-idle + ) ) @@ -996,6 +997,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + ceilingflag-idle + ) ) @@ -1071,6 +1075,10 @@ (:methods (skip-reminder? (_type_) symbol 20) ) + (:states + exit-chamber-dummy-idle + exit-chamber-dummy-wait-to-appear + ) ) @@ -1185,6 +1193,10 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + ogreboss-village2-idle + ogreboss-village2-throw + ) ) diff --git a/goal_src/levels/village_common/villagep-obs.gc b/goal_src/levels/village_common/villagep-obs.gc index c12378f355..b4a6cd3a43 100644 --- a/goal_src/levels/village_common/villagep-obs.gc +++ b/goal_src/levels/village_common/villagep-obs.gc @@ -5,7 +5,6 @@ ;; name in dgo: villagep-obs ;; dgos: CIT, L1, VI1, VI2, VI3, VILLAGEP -(define-extern target-warp-out (state vector vector target)) ;; DECOMP BEGINS diff --git a/test/decompiler/reference/engine/camera/cam-layout_REF.gc b/test/decompiler/reference/engine/camera/cam-layout_REF.gc index d270f0e876..e1765252e5 100644 --- a/test/decompiler/reference/engine/camera/cam-layout_REF.gc +++ b/test/decompiler/reference/engine/camera/cam-layout_REF.gc @@ -227,6 +227,9 @@ :method-count-assert 14 :size-assert #x90 :flag-assert #xe02000090 + (:states + cam-layout-active + ) ) ;; definition for method 3 of type cam-layout diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 9ea602d22e..350e7a1990 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -403,6 +403,9 @@ :method-count-assert 14 :size-assert #x1e0 :flag-assert #xe017001e0 + (:states + cam-combiner-active + ) ) ;; definition for method 3 of type camera-combiner @@ -483,6 +486,34 @@ :method-count-assert 14 :size-assert #xa04 :flag-assert #xe09a00a04 + (:states + *camera-base-mode* + cam-bike + cam-billy + cam-circular + cam-decel + cam-endlessfall + cam-eye + cam-fixed + cam-fixed-read-entity + cam-free-floating + cam-launcher-longfall + cam-launcher-shortfall + cam-lookat + cam-mistycannon + cam-orbit + cam-periscope + cam-point-watch + cam-pov + cam-pov-track + cam-pov180 + cam-robotboss + cam-spline + cam-standoff + cam-standoff-read-entity + cam-stick + cam-string + ) ) ;; definition for method 3 of type camera-slave @@ -603,6 +634,10 @@ :method-count-assert 14 :size-assert #x964 :flag-assert #xe09000964 + (:states + cam-master-active + list-keeper-active + ) ) ;; definition for method 3 of type camera-master diff --git a/test/decompiler/reference/engine/debug/part-tester_REF.gc b/test/decompiler/reference/engine/debug/part-tester_REF.gc index 45942e713e..97c4de2d05 100644 --- a/test/decompiler/reference/engine/debug/part-tester_REF.gc +++ b/test/decompiler/reference/engine/debug/part-tester_REF.gc @@ -27,6 +27,9 @@ :method-count-assert 14 :size-assert #x7c :flag-assert #xe0100007c + (:states + part-tester-idle + ) ) ;; definition for method 3 of type part-tester diff --git a/test/decompiler/reference/engine/debug/viewer_REF.gc b/test/decompiler/reference/engine/debug/viewer_REF.gc index c2c8930d9b..9a47fb99a7 100644 --- a/test/decompiler/reference/engine/debug/viewer_REF.gc +++ b/test/decompiler/reference/engine/debug/viewer_REF.gc @@ -17,6 +17,9 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + viewer-process + ) ) ;; definition for method 3 of type viewer diff --git a/test/decompiler/reference/engine/game/collectables_REF.gc b/test/decompiler/reference/engine/game/collectables_REF.gc index ee006067eb..d9bf78b4b0 100644 --- a/test/decompiler/reference/engine/game/collectables_REF.gc +++ b/test/decompiler/reference/engine/game/collectables_REF.gc @@ -31,6 +31,9 @@ (initialize (_type_) _type_ 20) (initialize-params (_type_ int float) none 21) ) + (:states + (hud-collecting handle) + ) ) ;; definition for method 3 of type collectable @@ -1511,6 +1514,10 @@ :method-count-assert 31 :size-assert #x19c :flag-assert #x1f0130019c + (:states + (fuel-cell-clone-anim handle) + (fuel-cell-spline-slider handle float float) + ) ) ;; definition for method 3 of type fuel-cell @@ -3011,6 +3018,9 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + ecovalve-idle + ) ) ;; definition for method 3 of type ecovalve diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index 89c91ea670..6cf5764dd1 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -31,6 +31,10 @@ (dummy-18 (_type_) none 18) (dummy-19 (_type_) none 19) ) + (:states + (process-drawable-art-error string) + process-drawable-idle + ) ) ;; definition for method 3 of type process-drawable diff --git a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc index 0a1121ec2d..91e58346c1 100644 --- a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc @@ -23,6 +23,9 @@ :method-count-assert 20 :size-assert #x114 :flag-assert #x1400b00114 + (:states + manipy-idle + ) ) ;; definition for method 3 of type manipy @@ -62,6 +65,9 @@ (:methods (dummy-20 (_type_) none 20) ) + (:states + part-spawner-active + ) ) ;; definition for method 3 of type part-spawner @@ -96,6 +102,9 @@ :method-count-assert 14 :size-assert #xf8 :flag-assert #xe009000f8 + (:states + part-tracker-process + ) ) ;; definition for method 3 of type part-tracker @@ -149,6 +158,9 @@ (:methods (dummy-14 (_type_ pair) process 14) ) + (:states + camera-tracker-process + ) ) ;; definition for method 3 of type camera-tracker @@ -193,6 +205,9 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + touch-tracker-idle + ) ) ;; definition for method 3 of type touch-tracker @@ -220,6 +235,10 @@ :method-count-assert 14 :size-assert #x98 :flag-assert #xe00300098 + (:states + swingpole-active + swingpole-stance + ) ) ;; definition for method 3 of type swingpole @@ -285,6 +304,9 @@ :method-count-assert 14 :size-assert #xc4 :flag-assert #xe006000c4 + (:states + othercam-running + ) ) ;; definition for method 3 of type othercam diff --git a/test/decompiler/reference/engine/game/generic-obs_REF.gc b/test/decompiler/reference/engine/game/generic-obs_REF.gc index f278a74403..597234acd2 100644 --- a/test/decompiler/reference/engine/game/generic-obs_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs_REF.gc @@ -510,6 +510,80 @@ ((-> self cur-trans-hook)) (none) ) + :code + (behavior () + (logclear! (-> self mask) (process-mask heap-shrunk)) + (while #t + ((-> self cur-post-hook)) + (if (!= (-> self anim-mode) 'clone-anim) + (ja-post) + ) + (suspend) + (case (-> self anim-mode) + (('loop) + (let ((a0-4 (-> self skel root-channel 0))) + (set! (-> a0-4 param 0) 1.0) + (joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-loop!) + ) + ) + (('play) + (let ((a0-7 (-> self skel root-channel 0))) + (set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1))) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!) + ) + ) + (('copy-parent) + (let ((v1-18 (-> self skel root-channel 0))) + (set! (-> v1-18 num-func) num-func-identity) + (set! (-> v1-18 frame-num) + (-> (the-as process-drawable (ppointer->process (-> self parent))) skel root-channel 0 frame-num) + ) + ) + ) + (('clone-parent) + (let ((gp-0 (ppointer->process (-> self parent)))) + (set! (-> self post-hook) #f) + (joint-control-copy! (-> self skel) (-> (the-as process-drawable gp-0) skel)) + (joint-control-remap! + (-> self skel) + (-> self draw art-group) + (-> (the-as process-drawable gp-0) draw art-group) + '() + 0 + "" + ) + ) + (dummy-17 self) + ) + (('clone-anim) + (clone-anim-once + (the-as handle (if (handle->process (-> self cur-target-handle)) + (the-as int (-> self cur-target-handle)) + (ppointer->handle (-> self parent)) + ) + ) + (the-as int (-> self draw origin-joint-index)) + (the-as symbol (-> self clone-copy-trans)) + "" + ) + ) + (('still) + ) + (('play1) + (let ((a0-33 (-> self skel root-channel 0))) + (set! (-> a0-33 param 0) (the float (+ (-> a0-33 frame-group data 0 length) -1))) + (set! (-> a0-33 param 1) 1.0) + (joint-control-channel-group-eval! a0-33 (the-as art-joint-anim #f) num-func-seek!) + ) + (if (ja-done? 0) + (deactivate self) + ) + ) + ) + ) + (none) + ) ) ;; definition for function manipy-init @@ -1274,6 +1348,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + med-res-level-idle + ) ) ;; definition for method 3 of type med-res-level @@ -1545,6 +1622,11 @@ :method-count-assert 20 :size-assert #xe4 :flag-assert #x14008000e4 + (:states + launcher-active + launcher-deactivated + launcher-idle + ) ) ;; definition for method 3 of type launcher diff --git a/test/decompiler/reference/engine/game/voicebox_REF.gc b/test/decompiler/reference/engine/game/voicebox_REF.gc index 3ef78cb0f4..26fe7c232d 100644 --- a/test/decompiler/reference/engine/game/voicebox_REF.gc +++ b/test/decompiler/reference/engine/game/voicebox_REF.gc @@ -8,6 +8,9 @@ :method-count-assert 14 :size-assert #xa04 :flag-assert #xe09a00a04 + (:states + cam-voicebox + ) ) ;; definition for method 3 of type camera-voicebox diff --git a/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc b/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc index 2d6ae9ab56..0ab827ba99 100644 --- a/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc @@ -69,6 +69,9 @@ :method-count-assert 14 :size-assert #xb8 :flag-assert #xe005000b8 + (:states + time-of-day-tick + ) ) ;; definition for method 3 of type time-of-day-proc diff --git a/test/decompiler/reference/engine/target/target-h_REF.gc b/test/decompiler/reference/engine/target/target-h_REF.gc index 34f20f0729..b892a67284 100644 --- a/test/decompiler/reference/engine/target/target-h_REF.gc +++ b/test/decompiler/reference/engine/target/target-h_REF.gc @@ -38,10 +38,67 @@ (dummy-20 (_type_ collide-cache) object 20) ) (:states + target-attack + (target-attack-air symbol) + (target-attack-uppercut float float) + (target-attack-uppercut-jump float float) + target-billy-game (target-clone-anim handle) + (target-continue continue-point) (target-death symbol) target-demo + (target-double-jump float float) + (target-duck-high-jump float float symbol) + (target-duck-high-jump-jump float float symbol) + target-duck-stance + target-duck-walk + (target-eco-powerup object float) + target-edge-grab + (target-edge-grab-jump float float) + target-edge-grab-off + (target-falling symbol) + (target-final-door basic handle) + (target-fishing handle) + (target-flop float float float) + (target-flop-hit-ground symbol) + (target-flut-air-attack float) + target-flut-air-attack-hit-ground + (target-flut-clone-anim handle) + (target-flut-death symbol) + (target-flut-double-jump float float) + target-flut-falling + (target-flut-get-off handle) + (target-flut-get-off-hit-ground symbol) + (target-flut-get-off-jump handle) + (target-flut-get-on handle) + target-flut-grab + (target-flut-hit symbol attack-info) + target-flut-hit-ground + (target-flut-jump float float) + target-flut-running-attack + target-flut-stance + (target-flut-start handle) + target-flut-walk + target-grab + (target-high-jump float float basic) + (target-hit symbol attack-info) (target-hit-ground symbol) + (target-hit-ground-hard float) + target-ice-stance + target-ice-walk + (target-jump float float surface) + (target-jump-forward float float) + (target-launch float symbol vector int) + target-load-wait + target-look-around + (target-periscope handle) + (target-play-anim string handle) + (target-pole-cycle handle) + (target-pole-flip-forward float float float) + (target-pole-flip-forward-jump float float) + (target-pole-flip-up object object float) + (target-pole-flip-up-jump float float) + target-racing (target-racing-bounce float float symbol) (target-racing-clone-anim handle) (target-racing-death symbol) @@ -53,10 +110,40 @@ target-racing-grab (target-racing-hit handle attack-info) (target-racing-jump float float symbol) + (target-racing-smack float symbol) + (target-racing-start handle) + target-running-attack + target-slide-down + target-snowball + (target-snowball-start handle) + target-stance + target-stance-ambient + target-stance-look-around + target-startup + target-swim-down + (target-swim-jump float float) + (target-swim-jump-jump float float surface) + target-swim-stance + target-swim-up + target-swim-walk target-title target-title-play target-title-wait + target-tube + (target-tube-death symbol) + (target-tube-hit handle attack-info) + (target-tube-jump float float) + (target-tube-start handle) + target-turn-around + target-wade-stance + target-wade-walk + target-walk (target-warp-in vector vector) + (target-warp-out vector vector) + target-wheel + (target-wheel-flip float float) + target-yellow-blast + target-yellow-jump-blast ) ) @@ -106,6 +193,9 @@ :method-count-assert 20 :size-assert #xcc :flag-assert #x14006000cc + (:states + sidekick-clone + ) ) ;; definition for method 3 of type sidekick diff --git a/test/decompiler/reference/engine/target/target2_REF.gc b/test/decompiler/reference/engine/target/target2_REF.gc index b39ce0d348..0d2364cb61 100644 --- a/test/decompiler/reference/engine/target/target2_REF.gc +++ b/test/decompiler/reference/engine/target/target2_REF.gc @@ -223,6 +223,12 @@ (:methods (dumb-15 (_type_) none 14) ) + (:states + hud-coming-in + hud-going-out + hud-normal + hud-waiting + ) ) ;; definition for method 3 of type first-person-hud diff --git a/test/decompiler/reference/engine/ui/hud-h_REF.gc b/test/decompiler/reference/engine/ui/hud-h_REF.gc index 8f1ad72da9..4891ec9b16 100644 --- a/test/decompiler/reference/engine/ui/hud-h_REF.gc +++ b/test/decompiler/reference/engine/ui/hud-h_REF.gc @@ -97,6 +97,12 @@ (inc-value (_type_) float 25) (dec-value (_type_) float 26) ) + (:states + hud-arriving + hud-hidden + hud-in + (hud-leaving int) + ) ) ;; definition for method 3 of type hud diff --git a/test/decompiler/reference/engine/ui/progress-h_REF.gc b/test/decompiler/reference/engine/ui/progress-h_REF.gc index 955c49229d..36a0f0255a 100644 --- a/test/decompiler/reference/engine/ui/progress-h_REF.gc +++ b/test/decompiler/reference/engine/ui/progress-h_REF.gc @@ -220,8 +220,10 @@ ) (:states progress-coming-in + progress-debug progress-going-out progress-gone + progress-normal progress-waiting ) ) diff --git a/test/decompiler/reference/levels/beach/beach-part_REF.gc b/test/decompiler/reference/levels/beach/beach-part_REF.gc index 2977377378..4bede34cb8 100644 --- a/test/decompiler/reference/levels/beach/beach-part_REF.gc +++ b/test/decompiler/reference/levels/beach/beach-part_REF.gc @@ -8,6 +8,9 @@ :method-count-assert 21 :size-assert #xd0 :flag-assert #x15006000d0 + (:states + beach-part-grotto-1 + ) ) ;; definition for method 3 of type beach-part diff --git a/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc b/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc index f84d554f14..5f2e2b7509 100644 --- a/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc +++ b/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc @@ -477,6 +477,9 @@ (init! (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + citb-disc-idle + ) ) ;; definition for method 3 of type citb-disc @@ -1005,6 +1008,10 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + citb-robotboss-die + citb-robotboss-idle + ) ) ;; definition for method 3 of type citb-robotboss @@ -1324,6 +1331,11 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + citb-coil-break + citb-coil-broken + citb-coil-idle + ) ) ;; definition for method 3 of type citb-coil @@ -1508,6 +1520,11 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + citb-hose-die + citb-hose-idle + citb-hose-spawn + ) ) ;; definition for method 3 of type citb-hose @@ -1720,6 +1737,11 @@ (init! (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + citb-generator-break + citb-generator-broken + citb-generator-idle + ) ) ;; definition for method 3 of type citb-generator @@ -2106,6 +2128,10 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + citadelcam-idle + citadelcam-stair-plats + ) ) ;; definition for method 3 of type citadelcam diff --git a/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc b/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc index e1afd85922..478b912cdd 100644 --- a/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc +++ b/test/decompiler/reference/levels/citadel/citb-drop-plat-CIT_REF.gc @@ -65,6 +65,13 @@ (TODO-RENAME-20 (_type_) none 20) (dummy-21 (_type_) none 21) ) + (:states + drop-plat-die + drop-plat-drop + drop-plat-idle + (drop-plat-rise draw-control) + drop-plat-spawn + ) ) ;; definition for method 3 of type drop-plat @@ -402,6 +409,10 @@ :method-count-assert 20 :size-assert #x120 :flag-assert #x1400b00120 + (:states + citb-drop-plat-active + citb-drop-plat-idle + ) ) ;; definition for method 3 of type citb-drop-plat diff --git a/test/decompiler/reference/levels/citadel/citb-plat_REF.gc b/test/decompiler/reference/levels/citadel/citb-plat_REF.gc index e98cfa6d07..6001107a60 100644 --- a/test/decompiler/reference/levels/citadel/citb-plat_REF.gc +++ b/test/decompiler/reference/levels/citadel/citb-plat_REF.gc @@ -497,6 +497,9 @@ :method-count-assert 35 :size-assert #x318 :flag-assert #x2302b00318 + (:states + citb-chain-plat-settle + ) ) ;; definition for method 3 of type citb-chain-plat @@ -1060,6 +1063,11 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + citb-firehose-active + citb-firehose-blast + citb-firehose-idle + ) ) ;; definition for method 3 of type citb-firehose @@ -1322,6 +1330,10 @@ :method-count-assert 33 :size-assert #xfc :flag-assert #x21009000fc + (:states + citb-exit-plat-idle + citb-exit-plat-rise + ) ) ;; definition for method 3 of type citb-exit-plat diff --git a/test/decompiler/reference/levels/common/babak-with-cannon_REF.gc b/test/decompiler/reference/levels/common/babak-with-cannon_REF.gc index aba1f7d9e7..902ccd3565 100644 --- a/test/decompiler/reference/levels/common/babak-with-cannon_REF.gc +++ b/test/decompiler/reference/levels/common/babak-with-cannon_REF.gc @@ -10,6 +10,11 @@ :method-count-assert 76 :size-assert #x198 :flag-assert #x4c01300198 + (:states + babak-with-cannon-jump-off-cannon + babak-with-cannon-jump-onto-cannon + babak-with-cannon-shooting + ) ) ;; definition for method 3 of type babak-with-cannon diff --git a/test/decompiler/reference/levels/common/babak_REF.gc b/test/decompiler/reference/levels/common/babak_REF.gc index e0343de78f..a8b2585400 100644 --- a/test/decompiler/reference/levels/common/babak_REF.gc +++ b/test/decompiler/reference/levels/common/babak_REF.gc @@ -8,6 +8,9 @@ :method-count-assert 76 :size-assert #x190 :flag-assert #x4c01200190 + (:states + babak-run-to-cannon + ) ) ;; definition for method 3 of type babak diff --git a/test/decompiler/reference/levels/common/blocking-plane_REF.gc b/test/decompiler/reference/levels/common/blocking-plane_REF.gc index a6afdbf580..0452bc50dd 100644 --- a/test/decompiler/reference/levels/common/blocking-plane_REF.gc +++ b/test/decompiler/reference/levels/common/blocking-plane_REF.gc @@ -8,6 +8,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + blocking-plane-idle + ) ) ;; definition for method 3 of type blocking-plane diff --git a/test/decompiler/reference/levels/common/joint-exploder_REF.gc b/test/decompiler/reference/levels/common/joint-exploder_REF.gc index 9ffeed4e9a..233934623d 100644 --- a/test/decompiler/reference/levels/common/joint-exploder_REF.gc +++ b/test/decompiler/reference/levels/common/joint-exploder_REF.gc @@ -174,6 +174,9 @@ (TODO-RENAME-27 (_type_ joint-exploder-list int) joint-exploder-list 27) (TODO-RENAME-28 (_type_ joint-exploder-list) none 28) ) + (:states + joint-exploder-shatter + ) ) ;; definition for method 3 of type joint-exploder diff --git a/test/decompiler/reference/levels/common/launcherdoor_REF.gc b/test/decompiler/reference/levels/common/launcherdoor_REF.gc index 7cab9c300d..a8ac8b96da 100644 --- a/test/decompiler/reference/levels/common/launcherdoor_REF.gc +++ b/test/decompiler/reference/levels/common/launcherdoor_REF.gc @@ -14,6 +14,10 @@ :method-count-assert 20 :size-assert #xc4 :flag-assert #x14006000c4 + (:states + (launcherdoor-closed symbol) + (launcherdoor-open symbol) + ) ) ;; definition for method 3 of type launcherdoor diff --git a/test/decompiler/reference/levels/common/orb-cache_REF.gc b/test/decompiler/reference/levels/common/orb-cache_REF.gc index f6e8bfcae4..2eb9e82f88 100644 --- a/test/decompiler/reference/levels/common/orb-cache_REF.gc +++ b/test/decompiler/reference/levels/common/orb-cache_REF.gc @@ -24,6 +24,7 @@ (:states (orb-cache-top-activate symbol) (orb-cache-top-complete symbol) + (orb-cache-top-idle symbol) ) ) diff --git a/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc b/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc index 7258e1c898..4fb1723547 100644 --- a/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc +++ b/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc @@ -18,6 +18,8 @@ (:states green-eco-lurker-appear green-eco-lurker-appear-land + green-eco-lurker-tune-spheres + green-eco-lurker-wait-to-appear ) ) @@ -43,6 +45,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + spawn-minions + ) ) ;; definition for method 3 of type green-eco-lurker-gen diff --git a/test/decompiler/reference/levels/finalboss/light-eco_REF.gc b/test/decompiler/reference/levels/finalboss/light-eco_REF.gc index d19f93d6e1..95f3453b51 100644 --- a/test/decompiler/reference/levels/finalboss/light-eco_REF.gc +++ b/test/decompiler/reference/levels/finalboss/light-eco_REF.gc @@ -20,6 +20,7 @@ (common-trans (_type_) none 20) ) (:states + light-eco-child-appear light-eco-child-die light-eco-child-grabbed light-eco-child-hit-ground @@ -61,6 +62,7 @@ ) (:states light-eco-mother-active + light-eco-mother-appear light-eco-mother-discipate ) ) diff --git a/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc index 6b1c0e2a36..b871673b57 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc @@ -79,6 +79,25 @@ (:methods (ease-loc-t (_type_) float 20) ) + (:states + robotboss-blue-dark-bomb + robotboss-blue-dark-bomb-wait + robotboss-blue-wait + robotboss-daxter-sacrifice-movie + robotboss-green + robotboss-green-dark-bomb + robotboss-green-dark-bomb-wait + robotboss-green-wait + robotboss-red + robotboss-red-dark-bomb + robotboss-red-dark-bomb-wait + robotboss-red-wait + robotboss-white-eco-movie + robotboss-yellow + robotboss-yellow-dark-bomb + robotboss-yellow-dark-bomb-wait + robotboss-yellow-wait + ) ) ;; definition for method 3 of type robotboss diff --git a/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc index b5bc133964..148bc1254e 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc @@ -114,6 +114,10 @@ :method-count-assert 20 :size-assert #x110 :flag-assert #x1400a00110 + (:states + ecoclaw-activate + ecoclaw-idle + ) ) ;; definition for method 3 of type ecoclaw diff --git a/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc index abd60403a5..988d3a05e9 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc @@ -173,6 +173,9 @@ :method-count-assert 20 :size-assert #xe0 :flag-assert #x14007000e0 + (:states + arcing-shot-debug-trajectory + ) ) ;; definition for method 3 of type arcing-shot @@ -266,6 +269,12 @@ :method-count-assert 20 :size-assert #xf4 :flag-assert #x14009000f4 + (:states + darkecobomb-countdown + (darkecobomb-explode symbol) + darkecobomb-idle + darkecobomb-land + ) ) ;; definition for method 3 of type darkecobomb @@ -660,6 +669,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + greenshot-idle + ) ) ;; definition for method 3 of type greenshot @@ -789,6 +801,11 @@ :method-count-assert 20 :size-assert #x130 :flag-assert #x1400c00130 + (:states + redshot-explode + redshot-idle + redshot-wait + ) ) ;; definition for method 3 of type redshot @@ -1088,6 +1105,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + yellowshot-idle + ) ) ;; definition for method 3 of type yellowshot diff --git a/test/decompiler/reference/levels/finalboss/sage-finalboss-FIN_REF.gc b/test/decompiler/reference/levels/finalboss/sage-finalboss-FIN_REF.gc index 70c55e7851..e35c1c4a36 100644 --- a/test/decompiler/reference/levels/finalboss/sage-finalboss-FIN_REF.gc +++ b/test/decompiler/reference/levels/finalboss/sage-finalboss-FIN_REF.gc @@ -241,6 +241,9 @@ :method-count-assert 53 :size-assert #x270 :flag-assert #x3502000270 + (:states + sage-finalboss-credits + ) ) ;; definition for method 3 of type sage-finalboss diff --git a/test/decompiler/reference/levels/firecanyon/firecanyon-obs_REF.gc b/test/decompiler/reference/levels/firecanyon/firecanyon-obs_REF.gc index 9b4c2b8ce3..8d5ca650f3 100644 --- a/test/decompiler/reference/levels/firecanyon/firecanyon-obs_REF.gc +++ b/test/decompiler/reference/levels/firecanyon/firecanyon-obs_REF.gc @@ -9,6 +9,10 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + balloon-idle + balloon-popping + ) ) ;; definition for method 3 of type balloon @@ -225,6 +229,11 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + spike-down + spike-idle + spike-up + ) ) ;; definition for method 3 of type spike diff --git a/test/decompiler/reference/levels/jungle/bouncer_REF.gc b/test/decompiler/reference/levels/jungle/bouncer_REF.gc index a034f5aa3a..6633396c02 100644 --- a/test/decompiler/reference/levels/jungle/bouncer_REF.gc +++ b/test/decompiler/reference/levels/jungle/bouncer_REF.gc @@ -10,6 +10,11 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + bouncer-fire + bouncer-smush + bouncer-wait + ) ) ;; definition for method 3 of type springbox diff --git a/test/decompiler/reference/levels/jungle/darkvine_REF.gc b/test/decompiler/reference/levels/jungle/darkvine_REF.gc index ba55d4a589..48f791a0d4 100644 --- a/test/decompiler/reference/levels/jungle/darkvine_REF.gc +++ b/test/decompiler/reference/levels/jungle/darkvine_REF.gc @@ -16,6 +16,11 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + (darkvine-die symbol) + darkvine-idle + darkvine-retreat + ) ) ;; definition for method 3 of type darkvine diff --git a/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc b/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc index 91eac625cd..900eeb4985 100644 --- a/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc +++ b/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc @@ -814,6 +814,10 @@ :method-count-assert 53 :size-assert #x260 :flag-assert #x3501f00260 + (:states + fisher-done + fisher-playing + ) ) ;; definition for method 3 of type fisher @@ -860,6 +864,11 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + fisher-fish-caught + fisher-fish-die + fisher-fish-fall + ) ) ;; definition for method 3 of type fisher-fish diff --git a/test/decompiler/reference/levels/jungle/jungle-obs_REF.gc b/test/decompiler/reference/levels/jungle/jungle-obs_REF.gc index b7855dd079..383a8fc143 100644 --- a/test/decompiler/reference/levels/jungle/jungle-obs_REF.gc +++ b/test/decompiler/reference/levels/jungle/jungle-obs_REF.gc @@ -137,6 +137,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + towertop-idle + ) ) ;; definition for method 3 of type towertop @@ -207,6 +210,9 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + lurkerm-tall-sail-idle + ) ) ;; definition for method 3 of type lurkerm-tall-sail @@ -332,6 +338,9 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + lurkerm-short-sail-idle + ) ) ;; definition for method 3 of type lurkerm-short-sail @@ -477,6 +486,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + lurkerm-piston-idle + ) ) ;; definition for method 3 of type lurkerm-piston @@ -625,6 +637,9 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + accordian-idle + ) ) ;; definition for method 3 of type accordian @@ -830,6 +845,11 @@ :method-count-assert 20 :size-assert #x110 :flag-assert #x1400a00110 + (:states + precurbridge-activate + (precurbridge-active symbol) + precurbridge-idle + ) ) ;; definition for method 3 of type precurbridge @@ -1280,6 +1300,10 @@ :method-count-assert 20 :size-assert #xc0 :flag-assert #x14005000c0 + (:states + (maindoor-closed symbol) + (maindoor-open symbol) + ) ) ;; definition for method 3 of type maindoor @@ -1499,6 +1523,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + jngpusher-idle + ) ) ;; definition for method 3 of type jngpusher diff --git a/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc b/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc index 7c89e61cd1..cccfb8184c 100644 --- a/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc +++ b/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc @@ -11,6 +11,10 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + (eggtop-close symbol) + eggtop-idle + ) ) ;; definition for method 3 of type eggtop diff --git a/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc b/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc index ea3ff83fc5..25f198d87e 100644 --- a/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc +++ b/test/decompiler/reference/levels/jungleb/plat-flip_REF.gc @@ -18,6 +18,9 @@ :method-count-assert 20 :size-assert #x100 :flag-assert #x1400900100 + (:states + plat-flip-idle + ) ) ;; definition for method 3 of type plat-flip diff --git a/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc b/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc index 6c6a3cf9b4..b3ac0ff153 100644 --- a/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc +++ b/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc @@ -8,6 +8,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavabase-idle + ) ) ;; definition for method 3 of type lavabase @@ -90,6 +93,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavafall-idle + ) ) ;; definition for method 3 of type lavafall @@ -172,6 +178,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavashortcut-idle + ) ) ;; definition for method 3 of type lavashortcut @@ -566,6 +575,10 @@ :method-count-assert 20 :size-assert #x1b0 :flag-assert #x14014001b0 + (:states + darkecobarrel-mover-die + darkecobarrel-mover-move + ) ) ;; definition for method 3 of type darkecobarrel-mover @@ -593,6 +606,9 @@ :method-count-assert 20 :size-assert #xc8 :flag-assert #x14006000c8 + (:states + darkecobarrel-spawner + ) ) ;; definition for method 3 of type darkecobarrel @@ -1090,6 +1106,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavafallsewera-idle + ) ) ;; definition for method 3 of type lavafallsewera @@ -1172,6 +1191,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavafallsewerb-idle + ) ) ;; definition for method 3 of type lavafallsewerb @@ -1918,6 +1940,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + lavayellowtarp-idle + ) ) ;; definition for method 3 of type lavayellowtarp diff --git a/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc b/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc index 97e6a5708a..5d34c74289 100644 --- a/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc +++ b/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc @@ -20,6 +20,12 @@ (dummy-20 (_type_) none 20) (dummy-21 (_type_) symbol 21) ) + (:states + dark-crystal-activate + dark-crystal-explode + dark-crystal-idle + dark-crystal-spawn-fuel-cell + ) ) ;; definition for method 3 of type dark-crystal diff --git a/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc b/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc index 06918fd25d..d0372c39f4 100644 --- a/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc +++ b/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc @@ -43,6 +43,16 @@ (dummy-26 (_type_) symbol 26) (dummy-27 (_type_) object 27) ) + (:states + driller-lurker-attack + (driller-lurker-chase symbol) + driller-lurker-debug-play-anims + driller-lurker-die + driller-lurker-idle-drilling + driller-lurker-jammed-standing + driller-lurker-patrol + driller-lurker-patrol-pause + ) ) ;; definition for method 3 of type driller-lurker diff --git a/test/decompiler/reference/levels/maincave/gnawer_REF.gc b/test/decompiler/reference/levels/maincave/gnawer_REF.gc index bc67370fcf..b8babc2251 100644 --- a/test/decompiler/reference/levels/maincave/gnawer_REF.gc +++ b/test/decompiler/reference/levels/maincave/gnawer_REF.gc @@ -141,6 +141,16 @@ (dummy-29 (_type_ int vector vector) float 29) (dummy-30 (_type_ process-drawable) uint 30) ) + (:states + gnawer-chewing-on-post + gnawer-die + gnawer-dying-give-pickups + gnawer-give-fuel-cell + gnawer-put-items-at-dest + gnawer-retreat-into-post + gnawer-run + gnawer-wait-to-run + ) ) ;; definition for method 3 of type gnawer diff --git a/test/decompiler/reference/levels/misty/bonelurker_REF.gc b/test/decompiler/reference/levels/misty/bonelurker_REF.gc index 42272344d5..6fd93a7d45 100644 --- a/test/decompiler/reference/levels/misty/bonelurker_REF.gc +++ b/test/decompiler/reference/levels/misty/bonelurker_REF.gc @@ -9,6 +9,9 @@ :method-count-assert 76 :size-assert #x198 :flag-assert #x4c01300198 + (:states + bonelurker-stun + ) ) ;; definition for method 3 of type bonelurker diff --git a/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc b/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc index f06d9a446d..de4dcd0129 100644 --- a/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc @@ -65,6 +65,9 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + keg-conveyor-idle + ) ) ;; definition for method 3 of type keg-conveyor @@ -87,6 +90,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + keg-conveyor-paddle-idle + ) ) ;; definition for method 3 of type keg-conveyor-paddle @@ -113,6 +119,13 @@ :method-count-assert 20 :size-assert #x104 :flag-assert #x1400a00104 + (:states + keg-die + keg-in-chute + keg-on-paddle + keg-on-path + keg-paddle-to-path + ) ) ;; definition for method 3 of type keg diff --git a/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc b/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc index 8f353f2ed8..32f4d2a4ec 100644 --- a/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc @@ -11,6 +11,11 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + teetertotter-bend + teetertotter-idle + teetertotter-launch + ) ) ;; definition for method 3 of type teetertotter diff --git a/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc b/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc index 1c78c123ed..3398a78025 100644 --- a/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc @@ -10,6 +10,11 @@ :method-count-assert 20 :size-assert #xc0 :flag-assert #x14005000c0 + (:states + silostep-camera + silostep-idle + (silostep-rise symbol) + ) ) ;; definition for method 3 of type silostep diff --git a/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc b/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc index 300e3418ff..0e9f04b8fc 100644 --- a/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc +++ b/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc @@ -362,6 +362,7 @@ :size-assert #xb0 :flag-assert #x14004000b0 (:states + quicksandlurker-missile-idle quicksandlurker-missile-impact ) ) @@ -590,10 +591,12 @@ quicksandlurker-attack quicksandlurker-die quicksandlurker-hide + quicksandlurker-idle quicksandlurker-popup quicksandlurker-track quicksandlurker-victory quicksandlurker-wait + quicksandlurker-yawn ) ) diff --git a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc index 6dfbca0f1b..81c1453fcc 100644 --- a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc +++ b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc @@ -19,6 +19,12 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + plunger-lurker-die + plunger-lurker-flee + plunger-lurker-idle + plunger-lurker-plunge + ) ) ;; definition for method 3 of type plunger-lurker @@ -417,6 +423,14 @@ (:methods (dummy-20 (_type_) none 20) ) + (:states + (flying-lurker-clone handle string) + flying-lurker-die + flying-lurker-fly + flying-lurker-idle + flying-lurker-sleep + flying-lurker-start + ) ) ;; definition for method 3 of type flying-lurker diff --git a/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc b/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc index 4eb7b9cd8f..753f9741ed 100644 --- a/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc +++ b/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc @@ -1129,6 +1129,12 @@ :method-count-assert 20 :size-assert #xd1 :flag-assert #x14007000d1 + (:states + ogre-bridge-activate + ogre-bridge-activated + ogre-bridge-break + ogre-bridge-idle + ) ) ;; definition for method 3 of type ogre-bridge @@ -1570,6 +1576,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + ogre-bridgeend-idle + ) ) ;; definition for method 3 of type ogre-bridgeend @@ -1769,6 +1778,10 @@ :method-count-assert 20 :size-assert #xd1 :flag-assert #x14007000d1 + (:states + shortcut-boulder-break + shortcut-boulder-idle + ) ) ;; definition for method 3 of type shortcut-boulder diff --git a/test/decompiler/reference/levels/robocave/spider-egg_REF.gc b/test/decompiler/reference/levels/robocave/spider-egg_REF.gc index 58f0fa3eee..05c1e4b242 100644 --- a/test/decompiler/reference/levels/robocave/spider-egg_REF.gc +++ b/test/decompiler/reference/levels/robocave/spider-egg_REF.gc @@ -11,6 +11,11 @@ :method-count-assert 20 :size-assert #xd5 :flag-assert #x14007000d5 + (:states + spider-egg-die + spider-egg-hatch + (spider-egg-idle symbol) + ) ) ;; definition for method 3 of type spider-egg diff --git a/test/decompiler/reference/levels/snow/snow-bumper_REF.gc b/test/decompiler/reference/levels/snow/snow-bumper_REF.gc index ea5a8b1d28..0ec7ce4066 100644 --- a/test/decompiler/reference/levels/snow/snow-bumper_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-bumper_REF.gc @@ -17,6 +17,13 @@ (dummy-20 (_type_) none 20) (shove-player (_type_ process-drawable) none 21) ) + (:states + snow-bumper-active-close-idle + snow-bumper-active-far-idle + snow-bumper-deactivate + snow-bumper-inactive-idle + snow-bumper-spawn-fuel-cell + ) ) ;; definition for method 3 of type snow-bumper diff --git a/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc b/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc index 44d967e575..19c2ecca0a 100644 --- a/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc @@ -20,6 +20,15 @@ :method-count-assert 33 :size-assert #x180 :flag-assert #x2101100180 + (:states + elevator-idle-at-cave + elevator-idle-at-fort + elevator-travel-to-cave + elevator-travel-to-fort + flutflut-plat-appear + flutflut-plat-hidden-idle + flutflut-plat-hide + ) ) ;; definition for method 3 of type flutflut-plat @@ -55,6 +64,11 @@ :method-count-assert 20 :size-assert #xf0 :flag-assert #x14008000f0 + (:states + snow-button-activate + snow-button-deactivate + snow-button-up-idle + ) ) ;; definition for method 3 of type snow-button diff --git a/test/decompiler/reference/levels/snow/snow-ram-h_REF.gc b/test/decompiler/reference/levels/snow/snow-ram-h_REF.gc index fc290cd5bc..97595fb997 100644 --- a/test/decompiler/reference/levels/snow/snow-ram-h_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-ram-h_REF.gc @@ -20,6 +20,11 @@ (dummy-21 (_type_) object 21) (dummy-22 (_type_) symbol 22) ) + (:states + ram-fun-idle + ram-give-fuel-cell + ram-idle + ) ) ;; definition for method 3 of type ram diff --git a/test/decompiler/reference/levels/snow/yeti_REF.gc b/test/decompiler/reference/levels/snow/yeti_REF.gc index 35815f94eb..9edc8ce3b4 100644 --- a/test/decompiler/reference/levels/snow/yeti_REF.gc +++ b/test/decompiler/reference/levels/snow/yeti_REF.gc @@ -10,6 +10,11 @@ :method-count-assert 76 :size-assert #x198 :flag-assert #x4c01300198 + (:states + yeti-slave-appear-jump-up + yeti-slave-appear-land + yeti-slave-show-anims + ) ) ;; definition for method 3 of type yeti-slave @@ -40,6 +45,11 @@ (TODO-RENAME-20 (_type_ vector vector) symbol 20) (aggro? (_type_ vector) symbol 21) ) + (:states + yeti-first-time-start + yeti-idle + yeti-resuming-start + ) ) ;; definition for method 3 of type yeti diff --git a/test/decompiler/reference/levels/sunken/puffer_REF.gc b/test/decompiler/reference/levels/sunken/puffer_REF.gc index 29b3af4fe9..d7c091c769 100644 --- a/test/decompiler/reference/levels/sunken/puffer_REF.gc +++ b/test/decompiler/reference/levels/sunken/puffer_REF.gc @@ -51,6 +51,12 @@ (dummy-30 (_type_) vector 30) (dummy-31 (_type_) vector 31) ) + (:states + puffer-attack + puffer-die + puffer-idle + puffer-patrol + ) ) ;; definition for method 3 of type puffer diff --git a/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc b/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc index 287ac9620c..34f98bcf12 100644 --- a/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc +++ b/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc @@ -39,6 +39,11 @@ :method-count-assert 35 :size-assert #x300 :flag-assert #x2302900300 + (:states + qbert-plat-on-die + qbert-plat-on-mimic + qbert-plat-wait-for-master + ) ) ;; definition for method 3 of type qbert-plat @@ -111,6 +116,11 @@ (:methods (plat-state-set? (_type_ uint) symbol 20) ) + (:states + (qbert-plat-master-do-door symbol) + qbert-plat-master-idle + qbert-plat-master-wait-for-door + ) ) ;; definition for method 3 of type qbert-plat-master diff --git a/test/decompiler/reference/levels/sunken/square-platform_REF.gc b/test/decompiler/reference/levels/sunken/square-platform_REF.gc index 6bc58c0529..cbaa912abf 100644 --- a/test/decompiler/reference/levels/sunken/square-platform_REF.gc +++ b/test/decompiler/reference/levels/sunken/square-platform_REF.gc @@ -21,6 +21,12 @@ (:methods (TODO-RENAME-27 (_type_ symbol) none 27) ) + (:states + square-platform-lowered + square-platform-lowering + square-platform-raised + square-platform-rising + ) ) ;; definition for method 3 of type square-platform @@ -83,6 +89,10 @@ :method-count-assert 20 :size-assert #x100 :flag-assert #x1400900100 + (:states + square-platform-master-activate + square-platform-master-idle + ) ) ;; definition for method 3 of type square-platform-master diff --git a/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc b/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc index c468301bb9..4c12c373db 100644 --- a/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc +++ b/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc @@ -32,6 +32,9 @@ (TODO-RENAME-26 (_type_) float 26) (TODO-RENAME-27 (_type_) float 27) ) + (:states + sunkenfisha-idle + ) ) ;; definition for method 3 of type sunkenfisha diff --git a/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc b/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc index ae4f5a9d18..1668997e84 100644 --- a/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc +++ b/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc @@ -496,6 +496,9 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + seaweed-idle + ) ) ;; definition for method 3 of type seaweed diff --git a/test/decompiler/reference/levels/sunken/wall-plat_REF.gc b/test/decompiler/reference/levels/sunken/wall-plat_REF.gc index 996c7299c9..1fda2dfd44 100644 --- a/test/decompiler/reference/levels/sunken/wall-plat_REF.gc +++ b/test/decompiler/reference/levels/sunken/wall-plat_REF.gc @@ -14,6 +14,13 @@ :method-count-assert 20 :size-assert #xf0 :flag-assert #x14008000f0 + (:states + wall-plat-extended + wall-plat-extending + wall-plat-retracted + wall-plat-retracting + wall-plat-sync-idle + ) ) ;; definition for method 3 of type wall-plat diff --git a/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc b/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc index 39312aed8e..8b2658f912 100644 --- a/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc +++ b/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc @@ -12,6 +12,9 @@ :method-count-assert 14 :size-assert #x8c :flag-assert #xe0020008c + (:states + wedge-plat-master-idle + ) ) ;; definition for method 3 of type wedge-plat-master @@ -75,6 +78,10 @@ (:methods (dummy-27 (_type_) symbol 27) ) + (:states + wedge-plat-idle + wedge-plat-tip + ) ) ;; definition for method 3 of type wedge-plat @@ -292,6 +299,10 @@ :method-count-assert 28 :size-assert #xf0 :flag-assert #x1c008000f0 + (:states + wedge-plat-outer-idle + wedge-plat-outer-tip + ) ) ;; definition for method 3 of type wedge-plat-outer diff --git a/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc b/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc index 434b4932e4..ed539768ff 100644 --- a/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc @@ -52,6 +52,10 @@ :method-count-assert 20 :size-assert #x10b :flag-assert #x1400a0010b + (:states + swamp-bat-idle + swamp-bat-launch-slaves + ) ) ;; definition for method 3 of type swamp-bat @@ -105,6 +109,14 @@ (:methods (dummy-20 (_type_) float 20) ) + (:states + (swamp-bat-slave-die handle) + swamp-bat-slave-idle + swamp-bat-slave-launch + swamp-bat-slave-return + swamp-bat-slave-strafe + swamp-bat-slave-swoop + ) ) ;; definition for method 3 of type swamp-bat-slave diff --git a/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc b/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc index 2f44eac289..bcfffc626e 100644 --- a/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc @@ -145,6 +145,9 @@ (:methods (init! (_type_) symbol 20) ) + (:states + swamp-spike-idle + ) ) ;; definition for method 3 of type swamp-spike @@ -501,6 +504,10 @@ :method-count-assert 21 :size-assert #xc0 :flag-assert #x15005000c0 + (:states + swamp-spike-gate-down + swamp-spike-gate-up + ) ) ;; definition for method 3 of type swampgate @@ -536,6 +543,9 @@ :method-count-assert 20 :size-assert #xc8 :flag-assert #x14006000c8 + (:states + balance-plat-idle + ) ) ;; definition for method 3 of type balance-plat @@ -667,6 +677,10 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + swamp-rock-break + swamp-rock-idle + ) ) ;; definition for method 3 of type swamp-rock diff --git a/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc b/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc index fbc099c116..fd7e7495bf 100644 --- a/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc @@ -736,6 +736,13 @@ :method-count-assert 20 :size-assert #xd4 :flag-assert #x14007000d4 + (:states + swamp-rat-nest-active + swamp-rat-nest-die + swamp-rat-nest-gestate + swamp-rat-nest-idle + swamp-rat-nest-victory + ) ) ;; definition for method 3 of type swamp-rat-nest @@ -774,6 +781,12 @@ (dummy-20 (_type_) none 20) (dummy-21 (_type_) int 21) ) + (:states + swamp-rat-nest-dummy-die + swamp-rat-nest-dummy-hit + swamp-rat-nest-dummy-idle + swamp-rat-nest-dummy-shake + ) ) ;; definition for method 3 of type swamp-rat-nest-dummy diff --git a/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc b/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc index 4ae1b010e0..b26a896791 100644 --- a/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc @@ -19,6 +19,9 @@ :method-count-assert 76 :size-assert #x1f0 :flag-assert #x4c018001f0 + (:states + swamp-rat-spawn + ) ) ;; definition for method 3 of type swamp-rat diff --git a/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc b/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc index 989aef3557..f5cf99b98c 100644 --- a/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc +++ b/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc @@ -576,6 +576,18 @@ :method-count-assert 35 :size-assert #x520 :flag-assert #x2304b00520 + (:states + fishermans-boat-docked-misty + fishermans-boat-docked-village + fishermans-boat-entering-misty + fishermans-boat-entering-village + fishermans-boat-leaving-misty + fishermans-boat-leaving-village + fishermans-boat-measurements + fishermans-boat-player-control + fishermans-boat-ride-to-misty + fishermans-boat-ride-to-village1 + ) ) ;; definition for method 3 of type fishermans-boat diff --git a/test/decompiler/reference/levels/village1/village-obs-VI1_REF.gc b/test/decompiler/reference/levels/village1/village-obs-VI1_REF.gc index 04a26d5984..26d808e7bb 100644 --- a/test/decompiler/reference/levels/village1/village-obs-VI1_REF.gc +++ b/test/decompiler/reference/levels/village1/village-obs-VI1_REF.gc @@ -241,6 +241,9 @@ :method-count-assert 20 :size-assert #xe8 :flag-assert #x14008000e8 + (:states + windmill-sail-idle + ) ) ;; definition for method 3 of type windmill-sail @@ -403,6 +406,9 @@ :method-count-assert 20 :size-assert #xe0 :flag-assert #x14007000e0 + (:states + sagesail-idle + ) ) ;; definition for method 3 of type sagesail @@ -475,6 +481,9 @@ :method-count-assert 20 :size-assert #xd8 :flag-assert #x14007000d8 + (:states + windspinner-idle + ) ) ;; definition for method 3 of type windspinner @@ -583,6 +592,9 @@ :method-count-assert 20 :size-assert #xb4 :flag-assert #x14005000b4 + (:states + mayorgears-idle + ) ) ;; definition for method 3 of type mayorgears @@ -651,6 +663,9 @@ :method-count-assert 20 :size-assert #xd0 :flag-assert #x14006000d0 + (:states + reflector-middle-idle + ) ) ;; definition for method 3 of type reflector-middle @@ -717,6 +732,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + reflector-end-idle + ) ) ;; definition for method 3 of type reflector-end @@ -750,6 +768,9 @@ :method-count-assert 20 :size-assert #xb1 :flag-assert #x14005000b1 + (:states + villa-starfish-idle + ) ) ;; definition for method 3 of type villa-starfish @@ -777,6 +798,10 @@ :method-count-assert 76 :size-assert #x190 :flag-assert #x4c01200190 + (:states + starfish-idle + starfish-patrol + ) ) ;; definition for method 3 of type starfish @@ -1045,6 +1070,9 @@ :method-count-assert 20 :size-assert #xb1 :flag-assert #x14005000b1 + (:states + village-fish-idle + ) ) ;; definition for method 3 of type village-fish @@ -1157,6 +1185,9 @@ :method-count-assert 20 :size-assert #xbc :flag-assert #x14005000bc + (:states + hutlamp-idle + ) ) ;; definition for method 3 of type hutlamp diff --git a/test/decompiler/reference/levels/village1/yakow_REF.gc b/test/decompiler/reference/levels/village1/yakow_REF.gc index f3df82a15e..812dae976b 100644 --- a/test/decompiler/reference/levels/village1/yakow_REF.gc +++ b/test/decompiler/reference/levels/village1/yakow_REF.gc @@ -151,6 +151,16 @@ :method-count-assert 20 :size-assert #x120 :flag-assert #x1400b00120 + (:states + yakow-die + yakow-graze + yakow-graze-kicked + yakow-idle + yakow-kicked + yakow-notice + yakow-run-away + (yakow-walk-to vector) + ) ) ;; definition for method 3 of type yakow diff --git a/test/decompiler/reference/levels/village2/assistant-village2_REF.gc b/test/decompiler/reference/levels/village2/assistant-village2_REF.gc index 15e1aca41d..0e85bd9d77 100644 --- a/test/decompiler/reference/levels/village2/assistant-village2_REF.gc +++ b/test/decompiler/reference/levels/village2/assistant-village2_REF.gc @@ -10,6 +10,9 @@ :method-count-assert 53 :size-assert #x190 :flag-assert #x3501200190 + (:states + just-particles + ) ) ;; definition for method 3 of type assistant-levitator diff --git a/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc b/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc index f53b1bd202..097e0c85b8 100644 --- a/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc +++ b/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc @@ -635,6 +635,12 @@ :method-count-assert 20 :size-assert #xf4 :flag-assert #x14009000f4 + (:states + swamp-tetherrock-break + swamp-tetherrock-die + swamp-tetherrock-hide + swamp-tetherrock-idle + ) ) ;; definition for method 3 of type swamp-tetherrock @@ -666,6 +672,11 @@ :method-count-assert 20 :size-assert #x114 :flag-assert #x1400b00114 + (:states + precursor-arm-die + precursor-arm-idle + precursor-arm-sink + ) ) ;; definition for method 3 of type precursor-arm @@ -707,6 +718,11 @@ (:methods (dummy-20 (_type_) basic 20) ) + (:states + swamp-rope-break + swamp-rope-idle-arm + swamp-rope-idle-rock + ) ) ;; definition for method 3 of type swamp-rope @@ -760,6 +776,10 @@ :method-count-assert 20 :size-assert #x260 :flag-assert #x1401f00260 + (:states + swamp-blimp-bye-bye + swamp-blimp-idle + ) ) ;; definition for method 3 of type swamp-blimp diff --git a/test/decompiler/reference/levels/village2/village2-obs_REF.gc b/test/decompiler/reference/levels/village2/village2-obs_REF.gc index ed329f1406..3b843eaf83 100644 --- a/test/decompiler/reference/levels/village2/village2-obs_REF.gc +++ b/test/decompiler/reference/levels/village2/village2-obs_REF.gc @@ -135,6 +135,10 @@ :method-count-assert 35 :size-assert #x2f2 :flag-assert #x23029002f2 + (:states + pontoon-die + pontoon-hidden + ) ) ;; definition for method 3 of type pontoon @@ -591,6 +595,10 @@ :method-count-assert 20 :size-assert #xb1 :flag-assert #x14005000b1 + (:states + (allpontoons-be-clone handle) + allpontoons-idle + ) ) ;; definition for method 3 of type allpontoons @@ -706,6 +714,11 @@ :method-count-assert 20 :size-assert #xb9 :flag-assert #x14005000b9 + (:states + (fireboulder-be-clone handle) + fireboulder-hover + fireboulder-idle + ) ) ;; definition for method 3 of type fireboulder @@ -1084,6 +1097,9 @@ :method-count-assert 20 :size-assert #xb0 :flag-assert #x14004000b0 + (:states + ceilingflag-idle + ) ) ;; definition for method 3 of type ceilingflag @@ -1171,6 +1187,10 @@ (:methods (skip-reminder? (_type_) symbol 20) ) + (:states + exit-chamber-dummy-idle + exit-chamber-dummy-wait-to-appear + ) ) ;; definition for method 3 of type exit-chamber-dummy @@ -1302,6 +1322,10 @@ :method-count-assert 20 :size-assert #xb8 :flag-assert #x14005000b8 + (:states + ogreboss-village2-idle + ogreboss-village2-throw + ) ) ;; definition for method 3 of type ogreboss-village2 diff --git a/test/offline/config.jsonc b/test/offline/config.jsonc index 9b93b41d0a..264e77be23 100644 --- a/test/offline/config.jsonc +++ b/test/offline/config.jsonc @@ -203,9 +203,6 @@ "cam-master-active": [ "event" ], - "manipy-idle": [ - "code" // handle casts - ], "plant-boss-intro": [ "code" // cfg ], @@ -214,9 +211,6 @@ ], "orbit-plat-rotating": [ "code" - ], - "slide-control-ride": [ - "exit" // asm code ] } }