From 24578b64b9bf28b9af473a53e351aa2b476489ed Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Sat, 12 Feb 2022 17:26:19 +0000 Subject: [PATCH] proper support for hardcoded "time" types (#1141) * hardcode `time-frame`things * Update cam-states_REF.gc * Update level-info_REF.gc * update refs 1 * update refs 2 * update refs 3 * update refs 4 * update refs 5 * update detection and casting * Update FormExpressionAnalysis.cpp * update refs 6 * update mood decomp * update refs 7 * update refs 8 * remove temp entity birth code * update time-frame casts * fix compiler * hardcode stuff and fix some types * fix some bitfield detection being wrong * bug fixes * detect seconds on adds with immediate * update refs 9 * fix casts and rand-vu-int-range bugs (update refs 10) * update refs 11 * update 12 * update 13 * update 14 * Update game-info_REF.gc * improve cpad macros detection * remove unused code * update refs * clang * update source code * Update cam-states.gc * `lavatube-energy` finish * update refs * fix actor bank stuff * Update navigate.gc * reduce entity default stack size * Update transformq-h.gc * oops forgot these * fix code and tests * fix mood sound stuff * Update load-dgo.gc * Update README.md --- .vs/launch.vs.json | 3 +- README.md | 6 +- common/type_system/TypeSystem.cpp | 29 +- common/type_system/TypeSystem.h | 7 +- decompiler/IR2/AtomicOpForm.cpp | 3 +- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 2 +- decompiler/IR2/Form.h | 5 +- decompiler/IR2/FormExpressionAnalysis.cpp | 242 +- decompiler/IR2/GenericElementMatcher.cpp | 28 +- decompiler/IR2/GenericElementMatcher.h | 18 +- decompiler/config/all-types.gc | 717 +-- .../anonymous_function_types.jsonc | 2 +- .../config/jak1_ntsc_black_label/hacks.jsonc | 3 +- .../jak1_ntsc_black_label/label_types.jsonc | 5 +- .../stack_structures.jsonc | 10 +- .../jak1_ntsc_black_label/type_casts.jsonc | 29 +- .../jak1_ntsc_black_label/var_names.jsonc | 36 + decompiler/util/data_decompile.cpp | 9 +- goal_src/engine/ambient/ambient.gc | 27 +- goal_src/engine/ambient/mood.gc | 5237 +++++++---------- goal_src/engine/ambient/weather-part.gc | 2 +- goal_src/engine/camera/cam-layout.gc | 6 +- goal_src/engine/camera/cam-master.gc | 30 +- goal_src/engine/camera/cam-states-dbg.gc | 38 +- goal_src/engine/camera/cam-states.gc | 65 +- goal_src/engine/camera/camera-h.gc | 32 +- goal_src/engine/camera/pov-camera-h.gc | 2 +- goal_src/engine/camera/pov-camera.gc | 8 +- goal_src/engine/collide/collide-shape-h.gc | 2 +- .../engine/collide/collide-shape-rider.gc | 2 +- goal_src/engine/collide/collide-target-h.gc | 36 +- goal_src/engine/debug/default-menu.gc | 15 +- goal_src/engine/draw/drawable-ambient-h.gc | 6 +- goal_src/engine/draw/drawable.gc | 2 +- goal_src/engine/draw/process-drawable.gc | 2 +- goal_src/engine/engine/connect.gc | 2 +- goal_src/engine/entity/entity.gc | 46 +- goal_src/engine/game/collectables-part.gc | 2 +- goal_src/engine/game/collectables.gc | 69 +- goal_src/engine/game/crates.gc | 8 +- goal_src/engine/game/fact-h.gc | 18 +- goal_src/engine/game/game-h.gc | 32 +- goal_src/engine/game/game-info-h.gc | 30 +- goal_src/engine/game/game-info.gc | 18 +- goal_src/engine/game/game-save.gc | 1364 ++--- goal_src/engine/game/generic-obs-h.gc | 16 +- goal_src/engine/game/generic-obs.gc | 35 +- goal_src/engine/game/main-h.gc | 4 +- goal_src/engine/game/main.gc | 15 +- goal_src/engine/game/powerups.gc | 31 +- goal_src/engine/game/projectiles-h.gc | 2 +- goal_src/engine/game/projectiles.gc | 14 +- goal_src/engine/game/task/hint-control-h.gc | 10 +- goal_src/engine/game/task/process-taskable.gc | 29 +- goal_src/engine/game/task/task-control-h.gc | 10 +- goal_src/engine/game/voicebox.gc | 11 +- goal_src/engine/geometry/vol-h.gc | 4 +- goal_src/engine/gfx/hw/display-h.gc | 37 +- goal_src/engine/gfx/hw/display.gc | 2 +- goal_src/engine/gfx/water/water-h.gc | 12 +- goal_src/engine/gfx/water/water.gc | 32 +- goal_src/engine/load/load-dgo.gc | 2 +- goal_src/engine/math/transformq-h.gc | 8 +- goal_src/engine/math/transformq.gc | 6 +- goal_src/engine/nav/navigate-h.gc | 2 +- goal_src/engine/nav/navigate.gc | 26 +- goal_src/engine/pc/pckernel.gc | 9 +- goal_src/engine/ps2/pad.gc | 10 +- goal_src/engine/ps2/timer-h.gc | 6 +- goal_src/engine/ps2/timer.gc | 6 +- goal_src/engine/sound/gsound-h.gc | 6 +- goal_src/engine/target/joint-mod-h.gc | 2 +- goal_src/engine/target/logic-target.gc | 58 +- goal_src/engine/target/target-death.gc | 120 +- goal_src/engine/target/target-h.gc | 6 +- goal_src/engine/target/target-handler.gc | 30 +- goal_src/engine/target/target-part.gc | 2 +- goal_src/engine/target/target-util.gc | 273 +- goal_src/engine/target/target.gc | 329 +- goal_src/engine/target/target2.gc | 118 +- goal_src/engine/ui/hud-classes.gc | 56 +- goal_src/engine/ui/hud-h.gc | 8 +- goal_src/engine/ui/hud.gc | 39 +- goal_src/engine/ui/progress-h.gc | 4 +- goal_src/engine/ui/progress/progress-draw.gc | 2 +- goal_src/engine/ui/progress/progress.gc | 55 +- goal_src/engine/util/smush-control-h.gc | 2 +- goal_src/engine/util/sync-info-h.gc | 4 +- goal_src/goal-lib.gc | 7 + goal_src/levels/beach/beach-obs.gc | 20 +- goal_src/levels/beach/beach-rocks.gc | 4 +- goal_src/levels/beach/bird-lady.gc | 2 +- goal_src/levels/beach/lurkercrab.gc | 42 +- goal_src/levels/beach/lurkerpuppy.gc | 36 +- goal_src/levels/beach/lurkerworm.gc | 4 +- goal_src/levels/beach/mayor.gc | 2 +- goal_src/levels/beach/pelican.gc | 26 +- goal_src/levels/beach/sculptor.gc | 2 +- goal_src/levels/beach/seagull.gc | 26 +- goal_src/levels/citadel/citadel-obs.gc | 2 +- goal_src/levels/citadel/citadel-sages.gc | 8 +- goal_src/levels/citadel/citb-bunny.gc | 24 +- goal_src/levels/citadel/citb-drop-plat-CIT.gc | 56 +- goal_src/levels/citadel/citb-plat.gc | 43 +- goal_src/levels/common/babak.gc | 40 +- goal_src/levels/common/basebutton.gc | 6 +- goal_src/levels/common/battlecontroller.gc | 36 +- goal_src/levels/common/joint-exploder.gc | 26 +- goal_src/levels/common/nav-enemy-h.gc | 118 +- goal_src/levels/common/nav-enemy.gc | 47 +- goal_src/levels/common/plat-button.gc | 5 +- goal_src/levels/common/rigid-body.gc | 78 +- goal_src/levels/common/ropebridge.gc | 37 +- goal_src/levels/common/sharkey.gc | 76 +- goal_src/levels/common/ticky.gc | 18 +- goal_src/levels/darkcave/darkcave-obs.gc | 20 +- goal_src/levels/demo/static-screen.gc | 23 +- goal_src/levels/finalboss/final-door.gc | 50 +- goal_src/levels/finalboss/green-eco-lurker.gc | 30 +- goal_src/levels/finalboss/light-eco.gc | 12 +- goal_src/levels/finalboss/robotboss-h.gc | 4 +- goal_src/levels/finalboss/robotboss-misc.gc | 2 +- goal_src/levels/finalboss/robotboss-weapon.gc | 48 +- goal_src/levels/finalboss/robotboss.gc | 90 +- .../levels/finalboss/sage-finalboss-FIN.gc | 22 +- .../levels/firecanyon/assistant-firecanyon.gc | 2 +- goal_src/levels/flut_common/flutflut.gc | 10 +- goal_src/levels/flut_common/target-flut.gc | 124 +- goal_src/levels/intro/evilbro.gc | 4 +- goal_src/levels/jungle/bouncer.gc | 4 +- goal_src/levels/jungle/darkvine.gc | 10 +- goal_src/levels/jungle/fisher-JUN.gc | 62 +- goal_src/levels/jungle/hopper.gc | 38 +- goal_src/levels/jungle/jungle-elevator.gc | 4 +- goal_src/levels/jungle/jungle-mirrors.gc | 12 +- goal_src/levels/jungle/junglefish.gc | 30 +- goal_src/levels/jungle/junglesnake.gc | 2 +- goal_src/levels/jungleb/aphid.gc | 34 +- goal_src/levels/jungleb/jungleb-obs.gc | 91 +- goal_src/levels/jungleb/plant-boss.gc | 20 +- .../levels/lavatube/assistant-lavatube.gc | 2 +- goal_src/levels/lavatube/lavatube-energy.gc | 32 +- goal_src/levels/lavatube/lavatube-obs.gc | 51 +- goal_src/levels/maincave/baby-spider.gc | 144 +- goal_src/levels/maincave/cavecrystal-light.gc | 2 +- goal_src/levels/maincave/dark-crystal.gc | 6 +- goal_src/levels/maincave/driller-lurker.gc | 40 +- goal_src/levels/maincave/gnawer.gc | 34 +- goal_src/levels/maincave/maincave-obs.gc | 12 +- goal_src/levels/maincave/mother-spider-egg.gc | 24 +- goal_src/levels/maincave/mother-spider-h.gc | 14 +- .../levels/maincave/mother-spider-proj.gc | 2 +- goal_src/levels/maincave/mother-spider.gc | 48 +- goal_src/levels/misty/babak-with-cannon.gc | 8 +- goal_src/levels/misty/balloonlurker.gc | 28 +- goal_src/levels/misty/bonelurker.gc | 48 +- goal_src/levels/misty/misty-conveyor.gc | 4 +- goal_src/levels/misty/misty-obs.gc | 30 +- goal_src/levels/misty/misty-warehouse.gc | 69 +- goal_src/levels/misty/mistycannon.gc | 28 +- goal_src/levels/misty/muse.gc | 38 +- goal_src/levels/misty/quicksandlurker.gc | 8 +- goal_src/levels/misty/sidekick-human.gc | 2 +- goal_src/levels/ogre/flying-lurker.gc | 12 +- goal_src/levels/ogre/ogre-obs.gc | 54 +- goal_src/levels/ogre/ogreboss.gc | 56 +- .../racer_common/collide-reaction-racer.gc | 2 +- .../racer-states-FIC-LAV-MIS-OGR-ROL.gc | 122 +- .../target-racer-FIC-LAV-MIS-OGR-ROL.gc | 76 +- .../target-racer-h-FIC-LAV-MIS-OGR-ROL.gc | 24 +- goal_src/levels/robocave/cave-trap.gc | 26 +- .../levels/rolling/rolling-lightning-mole.gc | 60 +- goal_src/levels/rolling/rolling-obs.gc | 12 +- goal_src/levels/rolling/rolling-race-ring.gc | 10 +- goal_src/levels/rolling/rolling-robber.gc | 45 +- goal_src/levels/snow/ice-cube.gc | 48 +- goal_src/levels/snow/snow-ball.gc | 12 +- goal_src/levels/snow/snow-bumper.gc | 10 +- goal_src/levels/snow/snow-bunny.gc | 86 +- goal_src/levels/snow/snow-flutflut-obs.gc | 10 +- goal_src/levels/snow/snow-obs.gc | 6 +- goal_src/levels/snow/snow-ram-boss.gc | 102 +- goal_src/levels/snow/target-ice.gc | 16 +- goal_src/levels/snow/yeti.gc | 40 +- goal_src/levels/sunken/bully.gc | 30 +- goal_src/levels/sunken/double-lurker.gc | 92 +- goal_src/levels/sunken/helix-water.gc | 12 +- goal_src/levels/sunken/puffer.gc | 44 +- goal_src/levels/sunken/qbert-plat.gc | 26 +- goal_src/levels/sunken/shover.gc | 2 +- goal_src/levels/sunken/square-platform.gc | 36 +- goal_src/levels/sunken/sun-exit-chamber.gc | 16 +- goal_src/levels/sunken/sun-iris-door.gc | 2 +- goal_src/levels/sunken/sunken-fish.gc | 34 +- goal_src/levels/sunken/sunken-obs.gc | 14 +- goal_src/levels/sunken/sunken-pipegame.gc | 32 +- goal_src/levels/sunken/target-tube.gc | 43 +- goal_src/levels/sunken/wedge-plats.gc | 4 +- goal_src/levels/swamp/billy.gc | 64 +- goal_src/levels/swamp/kermit.gc | 50 +- goal_src/levels/swamp/swamp-bat.gc | 6 +- goal_src/levels/swamp/swamp-obs.gc | 26 +- goal_src/levels/swamp/swamp-rat-nest.gc | 10 +- goal_src/levels/swamp/swamp-rat.gc | 76 +- goal_src/levels/title/title-obs.gc | 22 +- goal_src/levels/training/training-obs.gc | 36 +- goal_src/levels/village1/assistant.gc | 2 +- goal_src/levels/village1/explorer.gc | 14 +- goal_src/levels/village1/farmer.gc | 2 +- goal_src/levels/village1/fishermans-boat.gc | 42 +- goal_src/levels/village1/sage.gc | 2 +- .../levels/village1/sequence-a-village1.gc | 4 +- goal_src/levels/village1/village-obs-VI1.gc | 38 +- goal_src/levels/village1/yakow.gc | 90 +- .../levels/village2/assistant-village2.gc | 6 +- goal_src/levels/village2/flutflut-bluehut.gc | 4 +- goal_src/levels/village2/gambler.gc | 2 +- goal_src/levels/village2/geologist.gc | 2 +- goal_src/levels/village2/sage-bluehut.gc | 2 +- goal_src/levels/village2/swamp-blimp.gc | 35 +- goal_src/levels/village2/village2-obs.gc | 46 +- goal_src/levels/village2/warrior.gc | 2 +- .../levels/village3/assistant-village3.gc | 6 +- goal_src/levels/village3/miners.gc | 2 +- goal_src/levels/village3/sage-village3.gc | 2 +- goal_src/levels/village3/village3-obs.gc | 2 +- .../levels/village_common/villagep-obs.gc | 30 +- goalc/compiler/Compiler.cpp | 2 +- .../reference/engine/ambient/ambient_REF.gc | 19 +- .../reference/engine/ambient/mood_REF.gc | 113 +- .../engine/ambient/weather-part_REF.gc | 2 +- .../reference/engine/camera/cam-layout_REF.gc | 6 +- .../reference/engine/camera/cam-master_REF.gc | 28 +- .../engine/camera/cam-states-dbg_REF.gc | 38 +- .../reference/engine/camera/cam-states_REF.gc | 56 +- .../reference/engine/camera/camera-h_REF.gc | 32 +- .../engine/camera/math-camera_REF.gc | 20 +- .../engine/camera/pov-camera-h_REF.gc | 2 +- .../reference/engine/camera/pov-camera_REF.gc | 8 +- .../engine/collide/collide-shape-h_REF.gc | 2 +- .../engine/collide/collide-target-h_REF.gc | 36 +- .../engine/draw/drawable-ambient-h_REF.gc | 6 +- .../reference/engine/draw/drawable_REF.gc | 6 +- .../engine/draw/process-drawable_REF.gc | 2 +- .../reference/engine/engine/connect_REF.gc | 2 +- .../reference/engine/entity/entity_REF.gc | 8 +- .../engine/game/collectables-part_REF.gc | 2 +- .../reference/engine/game/collectables_REF.gc | 60 +- .../reference/engine/game/crates_REF.gc | 8 +- .../engine/game/effect-control_REF.gc | 10 +- .../reference/engine/game/fact-h_REF.gc | 40 +- .../reference/engine/game/game-h_REF.gc | 32 +- .../reference/engine/game/game-info-h_REF.gc | 41 +- .../reference/engine/game/game-info_REF.gc | 59 +- .../reference/engine/game/game-save_REF.gc | 36 +- .../engine/game/generic-obs-h_REF.gc | 12 +- .../reference/engine/game/generic-obs_REF.gc | 32 +- .../reference/engine/game/main-h_REF.gc | 4 +- .../reference/engine/game/main_REF.gc | 69 +- .../reference/engine/game/powerups_REF.gc | 31 +- .../engine/game/projectiles-h_REF.gc | 2 +- .../reference/engine/game/projectiles_REF.gc | 14 +- .../engine/game/task/hint-control-h_REF.gc | 20 +- .../engine/game/task/hint-control_REF.gc | 311 +- .../engine/game/task/process-taskable_REF.gc | 16 +- .../engine/game/task/task-control-h_REF.gc | 10 +- .../reference/engine/game/voicebox_REF.gc | 11 +- .../reference/engine/gfx/hw/display-h_REF.gc | 34 +- .../reference/engine/gfx/hw/display_REF.gc | 16 +- .../reference/engine/gfx/water/water-h_REF.gc | 12 +- .../reference/engine/gfx/water/water_REF.gc | 32 +- .../reference/engine/level/level-info_REF.gc | 52 +- .../reference/engine/level/level_REF.gc | 6 +- .../engine/level/load-boundary_REF.gc | 2 +- .../reference/engine/load/load-dgo_REF.gc | 4 +- .../reference/engine/load/loader_REF.gc | 10 +- .../reference/engine/math/transformq-h_REF.gc | 8 +- .../reference/engine/math/transformq_REF.gc | 35 +- .../reference/engine/nav/navigate-h_REF.gc | 2 +- .../reference/engine/nav/navigate_REF.gc | 2 +- .../engine/physics/dynamics-h_REF.gc | 8 +- .../reference/engine/ps2/pad_REF.gc | 8 +- .../reference/engine/ps2/timer-h_REF.gc | 8 +- .../reference/engine/ps2/timer_REF.gc | 19 +- .../reference/engine/sound/gsound-h_REF.gc | 6 +- .../reference/engine/sound/gsound_REF.gc | 8 +- .../sparticle/sparticle-launcher_REF.gc | 11 +- .../engine/sparticle/sparticle_REF.gc | 24 +- .../engine/target/joint-mod-h_REF.gc | 2 +- .../engine/target/logic-target_REF.gc | 52 +- .../engine/target/target-death_REF.gc | 91 +- .../reference/engine/target/target-h_REF.gc | 6 +- .../engine/target/target-handler_REF.gc | 34 +- .../engine/target/target-part_REF.gc | 2 +- .../engine/target/target-util_REF.gc | 253 +- .../reference/engine/target/target2_REF.gc | 118 +- .../reference/engine/target/target_REF.gc | 293 +- .../reference/engine/ui/hud-classes_REF.gc | 56 +- .../reference/engine/ui/hud-h_REF.gc | 8 +- .../decompiler/reference/engine/ui/hud_REF.gc | 37 +- .../reference/engine/ui/progress-h_REF.gc | 4 +- .../engine/ui/progress/progress-draw_REF.gc | 2 +- .../engine/ui/progress/progress_REF.gc | 18 +- .../engine/util/smush-control-h_REF.gc | 14 +- .../reference/engine/util/sync-info-h_REF.gc | 26 +- .../reference/levels/beach/beach-obs_REF.gc | 20 +- .../reference/levels/beach/beach-rocks_REF.gc | 4 +- .../reference/levels/beach/bird-lady_REF.gc | 2 +- .../reference/levels/beach/lurkercrab_REF.gc | 42 +- .../reference/levels/beach/lurkerpuppy_REF.gc | 36 +- .../reference/levels/beach/lurkerworm_REF.gc | 4 +- .../reference/levels/beach/mayor_REF.gc | 2 +- .../reference/levels/beach/pelican_REF.gc | 26 +- .../reference/levels/beach/sculptor_REF.gc | 2 +- .../reference/levels/beach/seagull_REF.gc | 28 +- .../levels/citadel/citadel-obs_REF.gc | 2 +- .../levels/citadel/citadel-sages_REF.gc | 8 +- .../levels/citadel/citb-bunny_REF.gc | 24 +- .../levels/citadel/citb-drop-plat-CIT_REF.gc | 56 +- .../reference/levels/citadel/citb-plat_REF.gc | 42 +- .../reference/levels/common/babak_REF.gc | 40 +- .../reference/levels/common/basebutton_REF.gc | 6 +- .../levels/common/battlecontroller_REF.gc | 36 +- .../levels/common/joint-exploder_REF.gc | 26 +- .../levels/common/nav-enemy-h_REF.gc | 118 +- .../reference/levels/common/nav-enemy_REF.gc | 47 +- .../levels/common/plat-button_REF.gc | 4 +- .../reference/levels/common/rigid-body_REF.gc | 78 +- .../reference/levels/common/ropebridge_REF.gc | 28 +- .../reference/levels/common/sharkey_REF.gc | 76 +- .../reference/levels/common/ticky_REF.gc | 18 +- .../levels/darkcave/darkcave-obs_REF.gc | 20 +- .../levels/demo/static-screen_REF.gc | 27 +- .../levels/finalboss/final-door_REF.gc | 10 +- .../levels/finalboss/green-eco-lurker_REF.gc | 30 +- .../levels/finalboss/light-eco_REF.gc | 12 +- .../levels/finalboss/robotboss-h_REF.gc | 4 +- .../levels/finalboss/robotboss-misc_REF.gc | 2 +- .../levels/finalboss/robotboss-weapon_REF.gc | 49 +- .../levels/finalboss/robotboss_REF.gc | 78 +- .../finalboss/sage-finalboss-FIN_REF.gc | 22 +- .../firecanyon/assistant-firecanyon_REF.gc | 2 +- .../levels/flut_common/flutflut_REF.gc | 8 +- .../levels/flut_common/target-flut_REF.gc | 122 +- .../reference/levels/intro/evilbro_REF.gc | 4 +- .../reference/levels/jungle/bouncer_REF.gc | 4 +- .../reference/levels/jungle/darkvine_REF.gc | 10 +- .../reference/levels/jungle/fisher-JUN_REF.gc | 64 +- .../reference/levels/jungle/hopper_REF.gc | 38 +- .../levels/jungle/jungle-elevator_REF.gc | 4 +- .../levels/jungle/jungle-mirrors_REF.gc | 10 +- .../reference/levels/jungle/junglefish_REF.gc | 30 +- .../levels/jungle/junglesnake_REF.gc | 2 +- .../reference/levels/jungleb/aphid_REF.gc | 34 +- .../levels/jungleb/jungleb-obs_REF.gc | 91 +- .../levels/jungleb/plant-boss_REF.gc | 20 +- .../levels/lavatube/assistant-lavatube_REF.gc | 2 +- .../levels/lavatube/lavatube-energy_REF.gc | 32 + .../levels/lavatube/lavatube-obs_REF.gc | 51 +- .../levels/maincave/baby-spider_REF.gc | 146 +- .../levels/maincave/cavecrystal-light_REF.gc | 2 +- .../levels/maincave/dark-crystal_REF.gc | 6 +- .../levels/maincave/driller-lurker_REF.gc | 40 +- .../reference/levels/maincave/gnawer_REF.gc | 34 +- .../levels/maincave/maincave-obs_REF.gc | 12 +- .../levels/maincave/mother-spider-egg_REF.gc | 24 +- .../levels/maincave/mother-spider-h_REF.gc | 14 +- .../levels/maincave/mother-spider-proj_REF.gc | 2 +- .../levels/maincave/mother-spider_REF.gc | 48 +- .../levels/misty/babak-with-cannon_REF.gc | 12 +- .../levels/misty/balloonlurker_REF.gc | 28 +- .../reference/levels/misty/bonelurker_REF.gc | 48 +- .../levels/misty/misty-conveyor_REF.gc | 4 +- .../reference/levels/misty/misty-obs_REF.gc | 30 +- .../levels/misty/misty-warehouse_REF.gc | 71 +- .../reference/levels/misty/mistycannon_REF.gc | 26 +- .../reference/levels/misty/muse_REF.gc | 38 +- .../levels/misty/quicksandlurker_REF.gc | 8 +- .../levels/misty/sidekick-human_REF.gc | 2 +- .../levels/ogre/flying-lurker_REF.gc | 12 +- .../reference/levels/ogre/ogre-obs_REF.gc | 54 +- .../reference/levels/ogre/ogreboss_REF.gc | 51 +- .../collide-reaction-racer_REF.gc | 2 +- .../racer-states-FIC-LAV-MIS-OGR-ROL_REF.gc | 122 +- .../levels/racer_common/racer_REF.gc | 2 +- .../target-racer-FIC-LAV-MIS-OGR-ROL_REF.gc | 76 +- .../target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc | 24 +- .../levels/robocave/cave-trap_REF.gc | 26 +- .../rolling/rolling-lightning-mole_REF.gc | 60 +- .../levels/rolling/rolling-obs_REF.gc | 12 +- .../levels/rolling/rolling-race-ring_REF.gc | 10 +- .../levels/rolling/rolling-robber_REF.gc | 45 +- .../reference/levels/snow/ice-cube_REF.gc | 52 +- .../reference/levels/snow/snow-ball_REF.gc | 12 +- .../reference/levels/snow/snow-bumper_REF.gc | 12 +- .../reference/levels/snow/snow-bunny_REF.gc | 92 +- .../levels/snow/snow-flutflut-obs_REF.gc | 10 +- .../reference/levels/snow/snow-obs_REF.gc | 6 +- .../levels/snow/snow-ram-boss_REF.gc | 102 +- .../reference/levels/snow/target-ice_REF.gc | 16 +- .../reference/levels/snow/yeti_REF.gc | 40 +- .../reference/levels/sunken/bully_REF.gc | 30 +- .../levels/sunken/double-lurker_REF.gc | 92 +- .../levels/sunken/helix-water_REF.gc | 12 +- .../reference/levels/sunken/puffer_REF.gc | 44 +- .../reference/levels/sunken/qbert-plat_REF.gc | 26 +- .../reference/levels/sunken/shover_REF.gc | 2 +- .../levels/sunken/square-platform_REF.gc | 36 +- .../levels/sunken/sun-exit-chamber_REF.gc | 16 +- .../levels/sunken/sun-iris-door_REF.gc | 2 +- .../levels/sunken/sunken-fish_REF.gc | 34 +- .../reference/levels/sunken/sunken-obs_REF.gc | 14 +- .../levels/sunken/sunken-pipegame_REF.gc | 32 +- .../levels/sunken/target-tube_REF.gc | 43 +- .../levels/sunken/wedge-plats_REF.gc | 4 +- .../reference/levels/swamp/billy_REF.gc | 66 +- .../reference/levels/swamp/kermit_REF.gc | 50 +- .../reference/levels/swamp/swamp-bat_REF.gc | 6 +- .../reference/levels/swamp/swamp-obs_REF.gc | 26 +- .../levels/swamp/swamp-rat-nest_REF.gc | 10 +- .../reference/levels/swamp/swamp-rat_REF.gc | 76 +- .../reference/levels/title/title-obs_REF.gc | 20 +- .../levels/training/training-obs_REF.gc | 36 +- .../levels/village1/assistant_REF.gc | 2 +- .../reference/levels/village1/explorer_REF.gc | 14 +- .../reference/levels/village1/farmer_REF.gc | 2 +- .../levels/village1/fishermans-boat_REF.gc | 40 +- .../reference/levels/village1/sage_REF.gc | 2 +- .../village1/sequence-a-village1_REF.gc | 4 +- .../levels/village1/village-obs-VI1_REF.gc | 38 +- .../reference/levels/village1/yakow_REF.gc | 90 +- .../levels/village2/assistant-village2_REF.gc | 6 +- .../levels/village2/flutflut-bluehut_REF.gc | 4 +- .../reference/levels/village2/gambler_REF.gc | 2 +- .../levels/village2/geologist_REF.gc | 2 +- .../levels/village2/sage-bluehut_REF.gc | 2 +- .../levels/village2/swamp-blimp_REF.gc | 35 +- .../levels/village2/village2-obs_REF.gc | 46 +- .../reference/levels/village2/warrior_REF.gc | 2 +- .../levels/village3/assistant-village3_REF.gc | 6 +- .../reference/levels/village3/miners_REF.gc | 2 +- .../levels/village3/sage-village3_REF.gc | 2 +- .../levels/village_common/villagep-obs_REF.gc | 26 +- test/offline/config.jsonc | 4 +- 444 files changed, 9293 insertions(+), 10998 deletions(-) diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index 966fa0b79d..de4992337d 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -67,8 +67,7 @@ "type" : "default", "project" : "CMakeLists.txt", "projectTarget" : "goalc.exe (bin\\goalc.exe)", - "name" : "Run - REPL", - "args" : [ "-auto-lt" ] + "name" : "Run - REPL" }, { "type" : "default", diff --git a/README.md b/README.md index ad124b2e06..2fbd0302a3 100644 --- a/README.md +++ b/README.md @@ -68,10 +68,10 @@ We don't save any assets from the game - you must bring your own copy of the gam ## What's Next -- Continue decompilation of GOAL code. We've made huge progress recently in decompiling gameplay code. We're finishing that up and also working on the some of the rendering and collision code. Here's our decompilation progress over the past year: ![](./docs/markdown/imgs/code_progress.png) -- Start running gameplay code! We can now spawn simple actors like particle effects and collectables. +- Continue decompilation of GOAL code. We've made huge progress recently in decompiling gameplay code. We're finishing that up and also working on the some of the rendering code. Here's our decompilation progress over the past year: ![](./docs/markdown/imgs/code_progress.png) +- Bug testing! The game can be beaten 100%, but it's possible a few things do not work correctly. - Improve the decompiler. We are always finding new features and macros in the GOAL language. -- Investigate more complicated renderers. We have an in-progress port of the "tfrag" background renderer, shown in the screenshots above. +- Investigate more complicated renderers. We have an in-progress port of the "merc" foreground renderer, shown in the screenshots above. ## Getting Started - Linux (Ubuntu) diff --git a/common/type_system/TypeSystem.cpp b/common/type_system/TypeSystem.cpp index 351da707a7..17dfc90c7e 100644 --- a/common/type_system/TypeSystem.cpp +++ b/common/type_system/TypeSystem.cpp @@ -1309,10 +1309,11 @@ bool TypeSystem::typecheck_and_throw(const TypeSpec& expected, const TypeSpec& actual, const std::string& error_source_name, bool print_on_error, - bool throw_on_error) const { + bool throw_on_error, + bool allow_type_alias) const { bool success = true; // first, typecheck the base types: - if (!typecheck_base_types(expected.base_type(), actual.base_type())) { + if (!typecheck_base_types(expected.base_type(), actual.base_type(), allow_type_alias)) { success = false; } @@ -1375,8 +1376,10 @@ bool TypeSystem::typecheck_and_throw(const TypeSpec& expected, * Is actual of type expected? For base types. */ bool TypeSystem::typecheck_base_types(const std::string& input_expected, - const std::string& actual) const { + const std::string& input_actual, + bool allow_alias) const { std::string expected = input_expected; + std::string actual = input_actual; // the unit types aren't picky. if (expected == "meters") { @@ -1384,16 +1387,28 @@ bool TypeSystem::typecheck_base_types(const std::string& input_expected, } if (expected == "seconds") { - if (actual == "seconds") { - return true; - } - expected = "int"; + expected = "time-frame"; + } + + if (actual == "seconds") { + actual = "time-frame"; } if (expected == "degrees") { expected = "float"; } + // the decompiler prefers no aliasing so it can detect casts properly + if (allow_alias) { + if (expected == "time-frame") { + expected = "int"; + } + + if (actual == "time-frame") { + actual = "int"; + } + } + // just to make sure it exists. lookup_type_allow_partial_def(expected); diff --git a/common/type_system/TypeSystem.h b/common/type_system/TypeSystem.h index 6f10e5c595..b47f90b726 100644 --- a/common/type_system/TypeSystem.h +++ b/common/type_system/TypeSystem.h @@ -211,7 +211,8 @@ class TypeSystem { const TypeSpec& actual, const std::string& error_source_name = "", bool print_on_error = true, - bool throw_on_error = true) const; + bool throw_on_error = true, + bool allow_type_alias = false) const; bool tc(const TypeSpec& expected, const TypeSpec& actual) const; std::vector get_path_up_tree(const std::string& type) const; int get_next_method_id(const Type* type) const; @@ -249,7 +250,9 @@ class TypeSystem { private: std::string lca_base(const std::string& a, const std::string& b) const; - bool typecheck_base_types(const std::string& expected, const std::string& actual) const; + bool typecheck_base_types(const std::string& expected, + const std::string& actual, + bool allow_alias) const; int get_alignment_in_type(const Field& field); Field lookup_field(const std::string& type_name, const std::string& field_name) const; StructureType* add_builtin_structure(const std::string& parent, diff --git a/decompiler/IR2/AtomicOpForm.cpp b/decompiler/IR2/AtomicOpForm.cpp index 7c462ea58b..9b8ec33f85 100644 --- a/decompiler/IR2/AtomicOpForm.cpp +++ b/decompiler/IR2/AtomicOpForm.cpp @@ -168,7 +168,7 @@ std::optional get_typecast_for_atom(const SimpleAtom& atom, if (atom.var().reg().get_kind() == Reg::VF) { return {}; // no casts needed for VF registers. } - auto src_type = env.get_types_before_op(my_idx).get(atom.var().reg()); + auto& src_type = env.get_types_before_op(my_idx).get(atom.var().reg()); if (src_type.requires_cast() || !env.dts->ts.tc(expected_type, src_type.typespec())) { // we fail the typecheck for a normal set!, so add a cast. @@ -179,7 +179,6 @@ std::optional get_typecast_for_atom(const SimpleAtom& atom, } break; case SimpleAtom::Kind::INTEGER_CONSTANT: { - std::optional cast_for_set, cast_for_define; const auto& type_name = expected_type.base_type(); bool sym_int = (type_name == "int8") || (type_name == "int16") || (type_name == "int32") || (type_name == "int64") || (type_name == "int") || (type_name == "integer") || diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index 7f87aaf584..d08dcd6f01 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -364,7 +364,7 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, if (m_args[1].is_int()) { auto bf = dynamic_cast(dts.ts.lookup_type(arg0_type.typespec())); - if (bf) { + if (bf && arg0_type.typespec() != TypeSpec("time-frame")) { int shift_size = 64; int size = shift_size - m_args[1].get_int(); int start_bit = shift_size - size; diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 6b7ba8feb7..055ae21eba 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -430,7 +430,7 @@ class SetFormFormElement : public FormElement { /*! * A wrapper around a single AtomicOp. - * The "important" special AtomicOps have their own Form type, like FuncitonCallElement. + * The "important" special AtomicOps have their own Form type, like FunctionCallElement. */ class AtomicOpElement : public FormElement { public: @@ -1127,6 +1127,8 @@ class DerefToken { bool is_int(int x) const { return m_kind == Kind::INTEGER_CONSTANT && m_int_constant == x; } + bool is_expr() const { return m_kind == Kind::INTEGER_EXPRESSION; } + Kind kind() const { return m_kind; } const std::string& field_name() const { ASSERT(m_kind == Kind::FIELD_NAME); @@ -2000,7 +2002,6 @@ class FormPool { std::optional form_element_as_atom(const FormElement* f); std::optional form_as_atom(const Form* f); -FormElement* make_cast_using_existing(Form* form, const TypeSpec& type, FormPool& pool); FormElement* make_cast_using_existing(FormElement* elt, const TypeSpec& type, FormPool& pool); GenericElement* alloc_generic_token_op(const std::string& name, const std::vector& args, diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 70da6a3bdb..4a8ad2ad47 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -8,6 +8,7 @@ #include "decompiler/IR2/bitfields.h" #include "common/util/BitUtils.h" #include "common/type_system/state.h" +#include "common/util/print_float.h" #include "decompiler/IR2/ExpressionHelpers.h" /* @@ -107,9 +108,7 @@ Form* try_cast_simplify(Form* in, lg::error("Floating point value {} could not be converted to meters.", *fc); } } - } - - if (new_type == TypeSpec("degrees")) { + } else if (new_type == TypeSpec("degrees")) { auto fc = get_goal_float_constant(in); if (fc) { double div = (double)*fc / DEGREES_LENGTH; // GOOS will use doubles here @@ -123,21 +122,75 @@ Form* try_cast_simplify(Form* in, lg::error("Floating point value {} could not be converted to degrees.", *fc); } } - } - - if (new_type == TypeSpec("handle")) { + } else if (new_type == TypeSpec("handle")) { auto in_generic = in->try_as_element(); if (in_generic && (in_generic->op().is_fixed(FixedOperatorKind::PROCESS_TO_HANDLE) || in_generic->op().is_fixed(FixedOperatorKind::PPOINTER_TO_HANDLE))) { return in; } - } - - if (new_type == TypeSpec("process")) { + } else if (new_type == TypeSpec("process")) { auto in_generic = in->try_as_element(); if (in_generic && in_generic->op().is_fixed(FixedOperatorKind::PPOINTER_TO_PROCESS)) { return in; } + } else if (new_type == TypeSpec("time-frame")) { + auto ic = get_goal_integer_constant(in, env); + if (ic) { + s64 value = *ic; + if (std::abs(value) <= 1) { + // if they used a 1 as a time-frame, they likely just want to literally remove 1 + // instead of (seconds 0.0034) or whatever the result would be. + // also 0 is decompiled as just 0. + return pool.alloc_single_element_form( + nullptr, SimpleAtom::make_int_constant(value)); + } + + // only rewrite if exact. + s64 seconds_int = value / (s64)TICKS_PER_SECOND; + if (seconds_int * (s64)TICKS_PER_SECOND == value) { + return pool.alloc_single_element_form( + nullptr, fmt::format("(seconds {})", seconds_int)); + } + double seconds = (double)value / TICKS_PER_SECOND; + if (seconds * TICKS_PER_SECOND == value) { + return pool.alloc_single_element_form( + nullptr, fmt::format("(seconds {})", float_to_string(seconds, false))); + } + } else { + // not a constant like (seconds 2), probably an expression or function call. we pretend that a + // cast to int happened instead. + // TODO hardcode cases for rand-vu-int-range: + // (rand-vu-int-range 1200 2400) -> (rand-vu-int-range (seconds 4) (seconds 8)) + // return try_cast_simplify(in, TypeSpec("int"), pool, env, tc_pass); + auto g = dynamic_cast(in->try_as_single_element()); + if (g && g->op().kind() == GenericOperator::Kind::FUNCTION_EXPR) { + auto f = dynamic_cast(g->op().func()->try_as_single_element()); + if (f->expr().is_identity() && f->expr().get_arg(0).is_sym_val()) { + auto& func_name = f->expr().get_arg(0).get_str(); + if (func_name == "rand-vu-int-range" || func_name == "nav-enemy-rnd-int-range") { + std::vector new_forms; + for (auto& e : g->elts()) { + auto as_atom_expr = + dynamic_cast(e->try_as_single_element()); + if (as_atom_expr && as_atom_expr->expr().is_identity()) { + new_forms.push_back(try_cast_simplify(e, TypeSpec("time-frame"), pool, env, true)); + } else { + new_forms.push_back(e); + } + } + // return a new rand-vu-int-range with casted args, and its own cast is stripped for + // free! + return pool.alloc_single_element_form(in->parent_element, g->op(), + new_forms); + } + } + } + if (tc_pass) { + return in; + } else { + return nullptr; + } + } } auto type_info = env.dts->ts.lookup_type(new_type); @@ -434,10 +487,14 @@ bool is_float_type(const Env& env, int my_idx, RegisterAccess var) { /*! * type == int (exactly)? + * note: time-frame is special. */ +bool is_int_type(const TypeSpec& type) { + return type == TypeSpec("int") || type == TypeSpec("time-frame"); +} bool is_int_type(const Env& env, int my_idx, RegisterAccess var) { auto type = env.get_types_before_op(my_idx).get(var.reg()).typespec(); - return type == TypeSpec("int"); + return is_int_type(type); } bool is_pointer_type(const Env& env, int my_idx, RegisterAccess var) { @@ -448,9 +505,12 @@ bool is_pointer_type(const Env& env, int my_idx, RegisterAccess var) { /*! * type == uint (exactly)? */ +bool is_uint_type(const TypeSpec& type) { + return type == TypeSpec("uint"); +} bool is_uint_type(const Env& env, int my_idx, RegisterAccess var) { auto type = env.get_types_before_op(my_idx).get(var.reg()).typespec(); - return type == TypeSpec("uint"); + return is_uint_type(type); } bool is_ptr_or_child(const Env& env, int my_idx, RegisterAccess var, bool) { @@ -509,6 +569,21 @@ void FormElement::update_from_stack(const Env& env, } namespace { +/*! + * Try to make a pretty looking constant out of value for comparing to something of type. + * If we can't do anything nice, return nullptr. + */ +Form* try_make_constant_for_compare(Form* value, + const TypeSpec& type, + FormPool& pool, + const Env& env) { + if (get_goal_integer_constant(value, env) && + (env.dts->ts.try_enum_lookup(type) || type == TypeSpec("time-frame"))) { + return cast_form(value, type, pool, env); + } + return nullptr; +} + Form* make_cast_if_needed(Form* in, const TypeSpec& in_type, const TypeSpec& out_type, @@ -521,6 +596,12 @@ Form* make_cast_if_needed(Form* in, if (out_type == TypeSpec("float") && env.dts->ts.tc(TypeSpec("float"), in_type)) { return in; } + + if (out_type == TypeSpec("time-frame") && in_type == TypeSpec("int")) { + // we want a time-frame from an int. + return try_cast_simplify(in, TypeSpec("time-frame"), pool, env, true); + } + return cast_form(in, out_type, pool, env); } @@ -530,9 +611,24 @@ std::vector make_casts_if_needed(const std::vector& in, FormPool& pool, const Env& env) { std::vector out; + TypeSpec actual_out = out_type; ASSERT(in.size() == in_types.size()); for (size_t i = 0; i < in_types.size(); i++) { - out.push_back(make_cast_if_needed(in.at(i), in_types.at(i), out_type, pool, env)); + // check if there's variables of aliased types. we will cast to those instead. + if (!get_goal_integer_constant(in.at(i), env) && out_type == TypeSpec("int")) { + if (in_types.at(i) == TypeSpec("time-frame")) { + // if we want int, we can output time-frame as well + actual_out = TypeSpec("time-frame"); + } + } else if (!get_goal_float_constant(in.at(i)) && out_type == TypeSpec("float")) { + if (in_types.at(i) == TypeSpec("meters")) { + // if we want float, we can output meters as well + // actual_out = TypeSpec("meters"); + } + } + } + for (size_t i = 0; i < in_types.size(); i++) { + out.push_back(make_cast_if_needed(in.at(i), in_types.at(i), actual_out, pool, env)); } return out; } @@ -821,15 +917,20 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, FormStack& stack, std::vector* result, bool allow_side_effects) { - auto arg0_i = is_int_type(env, m_my_idx, m_expr.get_arg(0).var()); - auto arg0_u = is_uint_type(env, m_my_idx, m_expr.get_arg(0).var()); + auto& arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); + auto arg0_i = is_int_type(arg0_type.typespec()); + auto arg0_u = is_uint_type(arg0_type.typespec()); bool arg1_reg = m_expr.get_arg(1).is_var(); bool arg1_i = true; bool arg1_u = true; + bool arg1_timeframe = false; if (arg1_reg) { - arg1_i = is_int_type(env, m_my_idx, m_expr.get_arg(1).var()); - arg1_u = is_uint_type(env, m_my_idx, m_expr.get_arg(1).var()); + auto arg1_type = + env.get_types_before_op(m_my_idx).get(m_expr.get_arg(1).var().reg()).typespec(); + arg1_timeframe = arg1_type == TypeSpec("time-frame"); + arg1_i = is_int_type(arg1_type); + arg1_u = is_uint_type(arg1_type); } std::vector args; @@ -850,8 +951,7 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, // in the case, both are vars. if (arg1_reg) { // lookup types. - auto arg1_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(1).var().reg()); - auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); + auto& arg1_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(1).var().reg()); arg1_ptr = is_ptr_or_child(env, m_my_idx, m_expr.get_arg(1).var(), true); // try to find symbol to string stuff @@ -1073,8 +1173,6 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, } } - auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()); - if (env.dts->ts.tc(TypeSpec("structure"), arg0_type.typespec()) && m_expr.get_arg(1).is_int()) { auto type_info = env.dts->ts.lookup_type(arg0_type.typespec()); if (type_info->get_size_in_memory() == m_expr.get_arg(1).get_int()) { @@ -1114,10 +1212,27 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env, arg0_cast = TypeSpec(arg0_i ? "int" : "uint"); } - if (!arg1_i && !arg1_u) { + if (arg0_type.typespec() == TypeSpec("time-frame") && (!arg1_i || !arg1_reg)) { + arg1_cast = TypeSpec("time-frame"); + } else if (!arg1_i && !arg1_u) { arg1_cast = TypeSpec(arg0_i ? "int" : "uint"); } + if (arg0_type.typespec() == TypeSpec("time-frame") && !arg1_timeframe) { + auto as_generic = dynamic_cast(args.at(1)->try_as_single_element()); + if (as_generic && as_generic->op().kind() == GenericOperator::Kind::FUNCTION_EXPR) { + auto as_func_head = dynamic_cast( + as_generic->op().func()->try_as_single_element()); + if (as_func_head && as_func_head->expr().is_identity() && + as_func_head->expr().get_arg(0).is_sym_val()) { + auto& name = as_func_head->expr().get_arg(0).get_str(); + if (name == "rand-vu-int-range") { + arg1_cast = TypeSpec("time-frame"); + } + } + } + } + result->push_back(make_and_compact_math_op(args.at(0), args.at(1), arg0_cast, arg1_cast, pool, env, FixedOperatorKind::ADDITION, true, true)); } @@ -1154,11 +1269,16 @@ void SimpleExpressionElement::update_from_stack_force_si_2(const Env& env, std::vector* result, bool allow_side_effects, bool reverse) { - auto arg0_i = is_int_type(env, m_my_idx, m_expr.get_arg(0).var()); + auto arg0_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(0).var().reg()).typespec(); + bool is_timeframe = arg0_type == TypeSpec("time-frame"); + auto arg0_i = is_int_type(arg0_type); bool arg1_i = true; bool arg1_reg = m_expr.get_arg(1).is_var(); if (arg1_reg) { - arg1_i = is_int_type(env, m_my_idx, m_expr.get_arg(1).var()); + auto arg1_type = + env.get_types_before_op(m_my_idx).get(m_expr.get_arg(1).var().reg()).typespec(); + bool is_timeframe = arg1_type == TypeSpec("time-frame"); + arg1_i = is_int_type(arg1_type); } else { ASSERT(m_expr.get_arg(1).is_int()); } @@ -1181,12 +1301,26 @@ void SimpleExpressionElement::update_from_stack_force_si_2(const Env& env, args.push_back(pool.alloc_single_element_form(nullptr, m_expr.get_arg(1))); } + switch (kind) { + case FixedOperatorKind::MOD: + case FixedOperatorKind::MIN: + case FixedOperatorKind::MAX: + // can use time-frame + break; + default: + // makes little sense to divide by a time most of the time. + is_timeframe = false; + break; + } + if (!arg0_i) { - args.at(0) = pool.alloc_single_element_form(nullptr, TypeSpec("int"), args.at(0)); + args.at(0) = + cast_form(args.at(0), is_timeframe ? TypeSpec("time-frame") : TypeSpec("int"), pool, env); } if (!arg1_i) { - args.at(1) = pool.alloc_single_element_form(nullptr, TypeSpec("int"), args.at(1)); + args.at(1) = + cast_form(args.at(1), is_timeframe ? TypeSpec("time-frame") : TypeSpec("int"), pool, env); } auto new_form = @@ -1360,8 +1494,8 @@ void SimpleExpressionElement::update_from_stack_copy_first_int_2(const Env& env, std::vector* result, bool allow_side_effects) { auto arg0_type = env.get_variable_type(m_expr.get_arg(0).var(), true); - auto arg0_i = is_int_type(env, m_my_idx, m_expr.get_arg(0).var()); - auto arg0_u = is_uint_type(env, m_my_idx, m_expr.get_arg(0).var()); + auto arg0_i = is_int_type(arg0_type); + auto arg0_u = is_uint_type(arg0_type); if (!m_expr.get_arg(1).is_var()) { auto args = pop_to_forms({m_expr.get_arg(0).var()}, env, pool, stack, allow_side_effects); @@ -1389,13 +1523,21 @@ void SimpleExpressionElement::update_from_stack_copy_first_int_2(const Env& env, return; } - auto arg1_i = is_int_type(env, m_my_idx, m_expr.get_arg(1).var()); - auto arg1_u = is_uint_type(env, m_my_idx, m_expr.get_arg(1).var()); + auto arg1_type = env.get_types_before_op(m_my_idx).get(m_expr.get_arg(1).var().reg()).typespec(); + auto arg1_i = is_int_type(arg1_type); + auto arg1_u = is_uint_type(arg1_type); auto args = pop_to_forms({m_expr.get_arg(0).var(), m_expr.get_arg(1).var()}, env, pool, stack, allow_side_effects); if ((arg0_i && arg1_i) || (arg0_u && arg1_u)) { + if (kind == FixedOperatorKind::SUBTRACTION && arg0_i) { + if (arg0_type == TypeSpec("time-frame") && arg1_type != TypeSpec("time-frame")) { + args.at(1) = cast_form(args.at(1), TypeSpec("time-frame"), pool, env); + } else if (arg1_type == TypeSpec("time-frame") && arg0_type != TypeSpec("time-frame")) { + args.at(0) = cast_form(args.at(0), TypeSpec("time-frame"), pool, env); + } + } auto new_form = pool.alloc_element(GenericOperator::make_fixed(kind), args.at(0), args.at(1)); result->push_back(new_form); @@ -1456,7 +1598,7 @@ FormElement* SimpleExpressionElement::update_from_stack_logor_or_logand_helper( } } - if (bitfield_info && m_expr.get_arg(1).is_int()) { + if (bitfield_info && arg0_type.base_type() != "time-frame" && m_expr.get_arg(1).is_int()) { // andi, ori with bitfield. auto base = pop_to_forms({m_expr.get_arg(0).var()}, env, pool, stack, allow_side_effects).at(0); auto read_elt = dynamic_cast(base->try_as_single_element()); @@ -1718,7 +1860,7 @@ void SimpleExpressionElement::update_from_stack_left_shift(const Env& env, auto type_info = env.dts->ts.lookup_type(arg0_type); auto bitfield_info = dynamic_cast(type_info); - if (bitfield_info && m_expr.get_arg(1).is_int()) { + if (arg0_type.base_type() != "time-frame" && bitfield_info && m_expr.get_arg(1).is_int()) { auto base = pop_to_forms({m_expr.get_arg(0).var()}, env, pool, stack, allow_side_effects).at(0); auto read_elt = pool.alloc_element(base, arg0_type); BitfieldManip step(BitfieldManip::Kind::LEFT_SHIFT, m_expr.get_arg(1).get_int()); @@ -1852,7 +1994,7 @@ void SimpleExpressionElement::update_from_stack_right_shift_arith(const Env& env auto arg0_type = env.get_variable_type(m_expr.get_arg(0).var(), true); auto type_info = env.dts->ts.lookup_type(arg0_type); auto bitfield_info = dynamic_cast(type_info); - if (bitfield_info && m_expr.get_arg(1).is_int()) { + if (bitfield_info && arg0_type != TypeSpec("time-frame") && m_expr.get_arg(1).is_int()) { auto base = pop_to_forms({m_expr.get_arg(0).var()}, env, pool, stack, allow_side_effects).at(0); auto read_elt = pool.alloc_element(base, arg0_type); BitfieldManip step(BitfieldManip::Kind::RIGHT_SHIFT_ARITH, m_expr.get_arg(1).get_int()); @@ -3684,20 +3826,6 @@ Matcher make_int_uint_cast_matcher(const Matcher& thing) { /////////////////// namespace { -/*! - * Try to make a pretty looking constant out of value for comparing to something of type. - * If we can't do anything nice, return nullptr. - */ -Form* try_make_constant_for_compare(Form* value, - const TypeSpec& type, - FormPool& pool, - const Env& env) { - if (get_goal_integer_constant(value, env) && env.dts->ts.try_enum_lookup(type)) { - return cast_form(value, type, pool, env); - } - return nullptr; -} - Form* try_make_constant_from_int_for_compare(s64 value, const TypeSpec& type, FormPool& pool, @@ -3823,7 +3951,7 @@ FormElement* try_make_logtest_cpad_macro(Form* in, FormPool& pool) { auto cpad_matcher = Matcher::op( GenericOpMatcher::fixed(FixedOperatorKind::LOGTEST), {Matcher::deref(Matcher::symbol("*cpad-list*"), false, - {DerefTokenMatcher::string("cpads"), DerefTokenMatcher::any_integer(0), + {DerefTokenMatcher::string("cpads"), DerefTokenMatcher::any_expr_or_int(0), DerefTokenMatcher::any_string(2), DerefTokenMatcher::integer(0)}), Matcher::op_with_rest(GenericOpMatcher::func(Matcher::constant_token("pad-buttons")), {})}); auto mr = match(cpad_matcher, in); @@ -3839,11 +3967,16 @@ FormElement* try_make_logtest_cpad_macro(Form* in, FormPool& pool) { auto logtest_elt = dynamic_cast(in->at(0)); if (logtest_elt != nullptr) { auto buttons_form = logtest_elt->elts().at(1); - std::vector v = { - pool.form(SimpleAtom::make_int_constant(mr.maps.ints.at(0)))}; + std::vector v; + if (mr.maps.forms.find(0) != mr.maps.forms.end()) { + v.push_back(mr.maps.forms.at(0)); + } else { + v.push_back( + pool.form(SimpleAtom::make_int_constant(mr.maps.ints.at(0)))); + } GenericElement* butts = dynamic_cast(buttons_form->at(0)); // the form with the buttons itself - if (butts != nullptr) { + if (butts) { v.insert(v.end(), butts->elts().begin(), butts->elts().end()); } @@ -4082,15 +4215,14 @@ FormElement* ConditionElement::make_generic(const Env& env, GenericOperator::make_fixed(FixedOperatorKind::LT), make_casts_if_needed(source_forms, types, TypeSpec("uint"), pool, env)); - case IR2_Condition::Kind::GEQ_UNSIGNED: - return pool.alloc_element( - GenericOperator::make_fixed(FixedOperatorKind::GEQ), - make_casts_if_needed(source_forms, types, TypeSpec("uint"), pool, env)); - case IR2_Condition::Kind::GEQ_SIGNED: return pool.alloc_element( GenericOperator::make_fixed(FixedOperatorKind::GEQ), make_casts_if_needed(source_forms, types, TypeSpec("int"), pool, env)); + case IR2_Condition::Kind::GEQ_UNSIGNED: + return pool.alloc_element( + GenericOperator::make_fixed(FixedOperatorKind::GEQ), + make_casts_if_needed(source_forms, types, TypeSpec("uint"), pool, env)); case IR2_Condition::Kind::LESS_THAN_ZERO_SIGNED: { return make_less_than_zero_signed_check_generic(env, pool, source_forms, types); diff --git a/decompiler/IR2/GenericElementMatcher.cpp b/decompiler/IR2/GenericElementMatcher.cpp index 9084c07356..7a68eb0e09 100644 --- a/decompiler/IR2/GenericElementMatcher.cpp +++ b/decompiler/IR2/GenericElementMatcher.cpp @@ -638,7 +638,21 @@ DerefTokenMatcher DerefTokenMatcher::any_integer(int match_id) { return result; } -bool DerefTokenMatcher::do_match(const DerefToken& input, MatchResult::Maps* maps_out) const { +DerefTokenMatcher DerefTokenMatcher::any_expr(int match_id) { + DerefTokenMatcher result; + result.m_kind = Kind::ANY_EXPR; + result.m_str_out_id = match_id; + return result; +} + +DerefTokenMatcher DerefTokenMatcher::any_expr_or_int(int match_id) { + DerefTokenMatcher result; + result.m_kind = Kind::ANY_EXPR_OR_INT; + result.m_str_out_id = match_id; + return result; +} + +bool DerefTokenMatcher::do_match(DerefToken& input, MatchResult::Maps* maps_out) const { switch (m_kind) { case Kind::STRING: return input.kind() == DerefToken::Kind::FIELD_NAME && input.field_name() == m_str; @@ -652,6 +666,18 @@ bool DerefTokenMatcher::do_match(const DerefToken& input, MatchResult::Maps* map return false; case Kind::CONSTANT_INTEGER: return input.kind() == DerefToken::Kind::INTEGER_CONSTANT && input.is_int(m_int); + case Kind::ANY_EXPR: + case Kind::ANY_EXPR_OR_INT: + if (input.is_expr()) { + if (m_str_out_id != -1) { + maps_out->forms[m_str_out_id] = input.expr(); + } + return true; + } + // NOTE intentional fallthrough + if (m_kind != Kind::ANY_EXPR_OR_INT) { + return false; + } case Kind::ANY_INTEGER: if (input.kind() == DerefToken::Kind::INTEGER_CONSTANT) { if (m_str_out_id != -1) { diff --git a/decompiler/IR2/GenericElementMatcher.h b/decompiler/IR2/GenericElementMatcher.h index 1ed4b9488f..bb71d466cd 100644 --- a/decompiler/IR2/GenericElementMatcher.h +++ b/decompiler/IR2/GenericElementMatcher.h @@ -17,8 +17,8 @@ struct MatchResult { std::vector> regs; std::unordered_map strings; std::unordered_map forms; - std::unordered_map label; - std::unordered_map ints; + std::unordered_map label; + std::unordered_map ints; } maps; }; @@ -105,10 +105,20 @@ class DerefTokenMatcher { static DerefTokenMatcher integer(int value); static DerefTokenMatcher any_string(int match_id = -1); static DerefTokenMatcher any_integer(int match_id = -1); + static DerefTokenMatcher any_expr(int match_id = -1); + static DerefTokenMatcher any_expr_or_int(int match_id = -1); - enum class Kind { STRING, ANY_STRING, CONSTANT_INTEGER, ANY_INTEGER, INVALID }; + enum class Kind { + STRING, + ANY_STRING, + CONSTANT_INTEGER, + ANY_INTEGER, + ANY_EXPR, + ANY_EXPR_OR_INT, + INVALID + }; - bool do_match(const DerefToken& input, MatchResult::Maps* maps_out) const; + bool do_match(DerefToken& input, MatchResult::Maps* maps_out) const; private: Kind m_kind = Kind::INVALID; diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index e187d23b1a..e946e93dcd 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -451,6 +451,7 @@ ) (defenum pickup-type + :type int32 (none) (eco-yellow) (eco-red) @@ -2494,18 +2495,18 @@ (rotv vector :inline :offset-assert 80) (scalev vector :inline :offset-assert 96) (dir-targ quaternion :inline :offset-assert 112) - (angle-change-time int64 :offset-assert 128) + (angle-change-time time-frame :offset-assert 128) (old-y-angle-diff float :offset-assert 136) ) :method-count-assert 28 :size-assert #x8c :flag-assert #x1c0000008c (:methods - (seek-toward-heading-vec! (_type_ vector float int) quaternion 9) + (seek-toward-heading-vec! (_type_ vector float time-frame) quaternion 9) (set-heading-vec! (_type_ vector) quaternion 10) - (seek-to-point-toward-point! (_type_ vector float int) quaternion 11) + (seek-to-point-toward-point! (_type_ vector float time-frame) quaternion 11) (point-toward-point! (_type_ vector) quaternion 12) - (seek-toward-yaw-angle! (_type_ float float int) quaternion 13) + (seek-toward-yaw-angle! (_type_ float float time-frame) quaternion 13) (set-yaw-angle-clear-roll-pitch! (_type_ float) quaternion 14) (set-roll-to-grav! (_type_ float) quaternion 15) (set-roll-to-grav-2! (_type_ float) quaternion 16) @@ -3152,9 +3153,9 @@ (playing-id sound-id :offset-assert 8) (trans vector :inline :offset-assert 16) (name sound-name :offset-assert 32) - (play-time int64 :offset-assert 48) - (time-base int64 :offset-assert 56) - (time-random int64 :offset-assert 64) + (play-time time-frame :offset-assert 48) + (time-base time-frame :offset-assert 56) + (time-random time-frame :offset-assert 64) (volume int32 :offset-assert 72) (pitch int32 :offset-assert 76) (falloff-near int32 :offset-assert 80) @@ -3234,8 +3235,8 @@ ) (deftype stopwatch (basic) - ((prev-time-elapsed uint64 :offset-assert 8) - (start-time uint64 :offset-assert 16) + ((prev-time-elapsed time-frame :offset-assert 8) + (start-time time-frame :offset-assert 16) (begin-level int32 :offset-assert 24) ) :method-count-assert 9 @@ -3256,7 +3257,7 @@ (declare-type dma-buffer basic) (deftype profile-bar (basic) ((profile-frame-count int32 :offset-assert 4) - (cache-time uint64 :offset-assert 8) + (cache-time time-frame :offset-assert 8) (data profile-frame 1024 :inline :offset-assert 16) ) :method-count-assert 14 @@ -3289,7 +3290,7 @@ ;; - Functions -(define-extern stopwatch-elapsed-ticks (function stopwatch uint)) +(define-extern stopwatch-elapsed-ticks (function stopwatch time-frame)) (define-extern timer-reset (function timer-bank none)) (define-extern timer-count (function timer-bank uint)) (define-extern disable-irq (function none)) @@ -3297,9 +3298,9 @@ (define-extern stopwatch-init (function stopwatch int)) (define-extern stopwatch-reset (function stopwatch int)) (define-extern stopwatch-start (function stopwatch int)) -(define-extern stopwatch-stop (function stopwatch uint)) +(define-extern stopwatch-stop (function stopwatch none)) (define-extern stopwatch-begin (function stopwatch int)) -(define-extern stopwatch-end (function stopwatch uint)) +(define-extern stopwatch-end (function stopwatch none)) (define-extern stopwatch-elapsed-seconds (function stopwatch float)) @@ -3880,10 +3881,10 @@ (align uint8 6 :offset-assert 88) (direct uint8 6 :offset-assert 94) (buzz-val uint8 2 :offset-assert 100) - (buzz-time int64 2 :offset-assert 104) + (buzz-time time-frame 2 :offset-assert 104) (buzz basic :offset-assert 120) (buzz-act int32 :offset-assert 124) - (change-time int64 :offset-assert 128) + (change-time time-frame :offset-assert 128) ) (:methods (new (symbol type int) _type_ 0) @@ -3906,10 +3907,10 @@ ;; - Functions -(define-extern cpad-set-buzz! (function cpad-info int int int none)) +(define-extern cpad-set-buzz! (function cpad-info int int time-frame none)) (define-extern cpad-get-data (function cpad-info cpad-info)) -(define-extern get-current-time (function int)) -(define-extern get-integral-current-time (function int)) +(define-extern get-current-time (function time-frame)) +(define-extern get-integral-current-time (function time-frame)) (define-extern cpad-invalid! (function cpad-info cpad-info)) ;; in the kernel. (define-extern cpad-open (function cpad-info int cpad-info)) @@ -4614,7 +4615,7 @@ (bucket-group (inline-array dma-bucket) :offset 44) (buffer dma-buffer 11 :offset 4) (profile-bar profile-bar 2 :offset 48) - (run-time uint64 :offset 56) + (run-time int64 :offset 56) ) (:methods (new (symbol type) _type_ 0) @@ -4651,22 +4652,22 @@ (last-screen int32 :offset-assert 564) (frames virtual-frame 6 :inline :offset-assert 568) (bg-clear-color rgba 4 :offset-assert 760) - (real-frame-counter int64 :offset-assert 776) - (base-frame-counter int64 :offset-assert 784);; todo, change to signed? - (game-frame-counter int64 :offset-assert 792) - (integral-frame-counter int64 :offset-assert 800) - (real-integral-frame-counter int64 :offset-assert 808) - (actual-frame-counter int64 :offset-assert 816) - (real-actual-frame-counter int64 :offset-assert 824) - (part-frame-counter int64 :offset-assert 832) - (old-real-frame-counter int64 :offset-assert 840) - (old-base-frame-counter int64 :offset-assert 848) - (old-game-frame-counter int64 :offset-assert 856) - (old-integral-frame-counter int64 :offset-assert 864) - (old-real-integral-frame-counter int64 :offset-assert 872) - (old-actual-frame-counter int64 :offset-assert 880) - (old-real-actual-frame-counter int64 :offset-assert 888) - (old-part-frame-counter int64 :offset-assert 896) + (real-frame-counter time-frame :offset-assert 776) + (base-frame-counter time-frame :offset-assert 784) + (game-frame-counter time-frame :offset-assert 792) + (integral-frame-counter time-frame :offset-assert 800) + (real-integral-frame-counter time-frame :offset-assert 808) + (actual-frame-counter time-frame :offset-assert 816) + (real-actual-frame-counter time-frame :offset-assert 824) + (part-frame-counter time-frame :offset-assert 832) + (old-real-frame-counter time-frame :offset-assert 840) + (old-base-frame-counter time-frame :offset-assert 848) + (old-game-frame-counter time-frame :offset-assert 856) + (old-integral-frame-counter time-frame :offset-assert 864) + (old-real-integral-frame-counter time-frame :offset-assert 872) + (old-actual-frame-counter time-frame :offset-assert 880) + (old-real-actual-frame-counter time-frame :offset-assert 888) + (old-part-frame-counter time-frame :offset-assert 896) (time-ratio float :offset-assert 904) (seconds-per-frame float :offset-assert 908) (frames-per-second float :offset-assert 912) @@ -5780,7 +5781,7 @@ ((name basic :offset-assert 4) (length int16 :offset-assert 8) ;; in use elts of the data array (allocated-length int16 :offset-assert 10) ;; size of the data array - (engine-time int64 :offset-assert 16) ;; frame that we last executed + (engine-time time-frame :offset-assert 16) ;; frame that we last executed ;; terminating nodes for the next0/prev0 linked lists (alive-list connectable :inline :offset-assert 32) (alive-list-end connectable :inline :offset-assert 48) @@ -6115,7 +6116,7 @@ ;; - Types (deftype frame-stats (structure) - ((field-time int64 2 :offset-assert 0) + ((field-time time-frame 2 :offset-assert 0) (field int32 :offset-assert 16) ) :method-count-assert 9 @@ -6524,9 +6525,9 @@ (trans vector :offset-assert 120) (sound-id sound-id :offset-assert 124) (mode symbol :offset-assert 128) - (total-time int64 :offset-assert 136) - (total-off-time int64 :offset-assert 144) - (last-time int64 :offset-assert 152) + (total-time time-frame :offset-assert 136) + (total-off-time time-frame :offset-assert 144) + (last-time time-frame :offset-assert 152) (voicebox handle :offset-assert 160) ) :heap-base #x40 @@ -6566,14 +6567,14 @@ ;; - Types (deftype level-hint-control (structure) - ((delay-before-playing uint64 :offset-assert 0) - (id uint32 :offset-assert 8) + ((delay-before-playing time-frame :offset-assert 0) + (id game-text-id :offset-assert 8) (num-attempts-before-playing int8 :offset-assert 12) (num-success-before-killing int8 :offset-assert 13) (num-attempts int8 :offset-assert 14) (num-success int8 :offset-assert 15) - (start-time int64 :offset-assert 16) - (last-time-called int64 :offset-assert 24) + (start-time time-frame :offset-assert 16) + (last-time-called time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -6582,7 +6583,7 @@ (deftype task-hint-control (structure) ((task game-task :offset-assert 0) - (delay int64 :offset-assert 8) + (delay time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -7676,7 +7677,7 @@ (itimes vector4w 4 :inline :offset-assert 1856) (state uint8 16 :offset-assert 1920) (num-stars float :offset-assert 1936) - (some-byte uint8 :offset 1939) + (some-byte uint8 :offset 1939) ;; cant cast on update-mood-lavatube ) (:methods (new (symbol type) _type_ 0) @@ -9383,18 +9384,18 @@ (total-deaths int32 :offset-assert 156) (continue-deaths int32 :offset-assert 160) (fuel-cell-deaths int32 :offset-assert 164) - (game-start-time int64 :offset-assert 168) - (continue-time int64 :offset-assert 176) - (death-time int64 :offset-assert 184) - (hit-time int64 :offset-assert 192) - (fuel-cell-pickup-time int64 :offset-assert 200) - (fuel-cell-time (array int64) :offset-assert 208) - (enter-level-time (array int64) :offset-assert 212) - (in-level-time (array int64) :offset-assert 216) - (blackout-time int64 :offset-assert 224) - (letterbox-time int64 :offset-assert 232) - (hint-play-time int64 :offset-assert 240) - (display-text-time int64 :offset-assert 248) + (game-start-time time-frame :offset-assert 168) + (continue-time time-frame :offset-assert 176) + (death-time time-frame :offset-assert 184) + (hit-time time-frame :offset-assert 192) + (fuel-cell-pickup-time time-frame :offset-assert 200) + (fuel-cell-time (array time-frame) :offset-assert 208) + (enter-level-time (array time-frame) :offset-assert 212) + (in-level-time (array time-frame) :offset-assert 216) + (blackout-time time-frame :offset-assert 224) + (letterbox-time time-frame :offset-assert 232) + (hint-play-time time-frame :offset-assert 240) + (display-text-time time-frame :offset-assert 248) (display-text-handle handle :offset-assert 256) (death-movie-tick int32 :offset-assert 264) (want-auto-save symbol :offset-assert 268) @@ -10182,7 +10183,7 @@ (pickup-amount float :offset-assert 12) (pickup-spawn-amount float :offset-assert 16) (options fact-options :offset-assert 24) - (fade-time int64 :offset-assert 32) + (fade-time time-frame :offset-assert 32) ) :method-count-assert 12 :size-assert #x28 @@ -10196,9 +10197,9 @@ ) (deftype fact-info-target (fact-info) - ((eco-type int32 :offset-assert 40) + ((eco-type pickup-type :offset-assert 40) (eco-level float :offset-assert 44) - (eco-pickup-time uint64 :offset-assert 48) + (eco-pickup-time time-frame :offset-assert 48) (eco-timeout seconds :offset-assert 56) (health float :offset-assert 64) (health-max float :offset-assert 68) @@ -10206,13 +10207,13 @@ (buzzer-max float :offset-assert 76) (eco-pill float :offset-assert 80) (eco-pill-max float :offset-assert 84) - (health-pickup-time uint64 :offset-assert 88) + (health-pickup-time time-frame :offset-assert 88) (eco-source handle :offset-assert 96) - (eco-source-time uint64 :offset-assert 104) - (money-pickup-time uint64 :offset-assert 112) - (buzzer-pickup-time uint64 :offset-assert 120) - (fuel-cell-pickup-time uint64 :offset-assert 128) - (eco-pill-pickup-time uint64 :offset-assert 136) + (eco-source-time time-frame :offset-assert 104) + (money-pickup-time time-frame :offset-assert 112) + (buzzer-pickup-time time-frame :offset-assert 120) + (fuel-cell-pickup-time time-frame :offset-assert 128) + (eco-pill-pickup-time time-frame :offset-assert 136) ) :method-count-assert 12 :size-assert #x90 @@ -10312,7 +10313,7 @@ (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time int64 :offset-assert 168) + (state-time time-frame :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 @@ -10391,7 +10392,7 @@ (vector vector :inline :offset-assert 16) (intersection vector :inline :offset-assert 32) (attacker handle :offset-assert 48) - (invinc-time seconds :offset-assert 56) + (invinc-time time-frame :offset-assert 56) (mask uint32 :offset-assert 64) (mode symbol :offset-assert 68) (shove-back meters :offset-assert 72) @@ -10486,12 +10487,12 @@ (target handle :offset-assert 120) (callback (function part-tracker vector) :offset-assert 128) (linger-callback (function part-tracker vector) :offset-assert 132) - (duration uint64 :offset-assert 136) - (linger-duration uint64 :offset-assert 144) - (start-time uint64 :offset-assert 152) + (duration time-frame :offset-assert 136) + (linger-duration time-frame :offset-assert 144) + (start-time time-frame :offset-assert 152) (offset vector :inline :offset-assert 160) (userdata uint64 :offset-assert 176) - (user-time int64 2 :offset-assert 184) + (user-time time-frame 2 :offset-assert 184) (user-vector vector 2 :inline :offset-assert 208) (user-handle uint32 2 :offset-assert 240) ) @@ -10515,7 +10516,7 @@ (pov-target handle :offset-assert 160) (work-process handle :offset-assert 168) (anim-process handle :offset-assert 176) - (start-time int64 :offset-assert 184) + (start-time time-frame :offset-assert 184) (callback basic :offset-assert 192) (userdata basic :offset-assert 196) (message basic :offset-assert 200) @@ -10539,7 +10540,7 @@ (declare-type collide-shape-moving basic) (deftype touch-tracker (process-drawable) ((root-override collide-shape-moving :score 100 :offset 112) - (duration uint64 :offset-assert 176) + (duration time-frame :offset-assert 176) (target handle :offset-assert 184) (event symbol :offset-assert 192) (run-function (function object) :offset-assert 196) @@ -10631,7 +10632,7 @@ (deftype pov-camera (process-drawable) ((cspace-array cspace-array :offset 112) (flags int32 :offset-assert 176) - (debounce-start-time uint64 :offset-assert 184) + (debounce-start-time time-frame :offset-assert 184) (notify-handle handle :offset-assert 192) (anim-name string :offset-assert 200) (command-list pair :offset-assert 204) ;; not a basic atleast! @@ -10716,7 +10717,7 @@ (max-time int32 :offset-assert 4) (max-val float :offset-assert 8) (timer int32 :offset-assert 12) - (start-time int64 :offset-assert 16) + (start-time time-frame :offset-assert 16) (value float :offset-assert 24) ) :pack-me @@ -10772,7 +10773,7 @@ (xz-max float :offset-assert 8) (y-max float :offset-assert 12) (timer int32 :offset-assert 16) - (start-time int64 :offset-assert 24) + (start-time time-frame :offset-assert 24) (value vector :inline :offset-assert 32) ) :method-count-assert 13 @@ -10813,7 +10814,7 @@ ;; - Types (deftype smush-control (structure) - ((start-time int64 :offset-assert 0) + ((start-time time-frame :offset-assert 0) (period float :offset-assert 8) (duration float :offset-assert 12) (amp float :offset-assert 16) @@ -10922,7 +10923,7 @@ (trans vector :inline :offset-assert 64) (quat quaternion :inline :offset-assert 80) (scale vector :inline :offset-assert 96) - (notice-time int64 :offset-assert 112) + (notice-time time-frame :offset-assert 112) (flex-blend float :offset-assert 120) (blend float :offset-assert 124) (max-dist meters :offset-assert 128) @@ -11493,7 +11494,7 @@ ) (deftype collide-shape-moving (collide-shape) - ((rider-time uint64 :offset-assert 184) + ((rider-time time-frame :offset-assert 184) (rider-last-move vector :inline :offset-assert 192) (trans-old vector 3 :inline :offset-assert 208) (poly-pat pat-surface :offset-assert 256) @@ -11560,7 +11561,7 @@ (transv-out vector :inline :offset-assert 48) (local-normal vector :inline :offset-assert 64) (surface-normal vector :inline :offset-assert 80) - (time int64 :offset-assert 96) + (time time-frame :offset-assert 96) (status uint64 :offset-assert 104) (pat pat-surface :offset-assert 112) (reaction-flag uint32 :offset-assert 116) @@ -11625,15 +11626,15 @@ (unknown-vector53 vector :inline :offset 1232) (last-known-safe-ground vector :inline :offset 1248) (unknown-vector55 vector :inline :offset 1264) - (unknown-dword10 int64 :offset 1280) ;; from - collide-reaction-target::target-collision-reaction - (unknown-dword11 int64 :offset 1288) ;; from - target-util::can-jump? + (unknown-dword10 time-frame :offset 1280) ;; from - collide-reaction-target::target-collision-reaction + (unknown-dword11 time-frame :offset 1288) ;; from - target-util::can-jump? (unknown-float60 float :offset 1300) ;; from - target-util::can-duck? (unknown-float61 float :offset 1304) ;; from - target-util::target-align-vel-z-adjust (unknown-float62 float :offset 1308) ;; from - target-util::target-print-stats (unknown-float63 float :offset 1312) ;; from - logic-target::target-compute-slopes (unknown-float64 float :offset 1316) ;; from - logic-target::target-compute-slopes - (unknown-dword20 int64 :offset 1320) ;; from target-util::turn-around? - TODO - (unknown-dword21 int64 :offset 1328) ;; from target-util::turn-around? - TODO + (unknown-dword20 time-frame :offset 1320) ;; from target-util::turn-around? - TODO + (unknown-dword21 time-frame :offset 1328) ;; from target-util::turn-around? - TODO (unknown-dword-coverage int64 :offset 1336) (unknown-float-coverage-0 float :offset 1344) (unknown-float-coverage-1 float :offset 1348) @@ -11657,13 +11658,13 @@ (unknown-sphere01 collide-shape-prim-sphere :offset 1636) ;; from target-util::target-danger-set! (unknown-sphere02 collide-shape-prim-sphere :offset 1640) ;; from target-util::target-danger-set! (unknown-int50 int32 :offset 1656) ;; from target::(enter target-wheel) - (unknown-dword30 int64 :offset 1664) ;; from target::(trans target-walk) - (unknown-dword31 int64 :offset 1672) ;; from target-util::can-hands? - (unknown-dword32 int64 :offset 1680) ;; from target-util::can-hands? - (unknown-dword33 int64 :offset 1688) ;; from target-util::can-feet? - (unknown-dword34 int64 :offset 1696) ;; from target-util::can-feet? - (unknown-dword35 int64 :offset 1704) ;; from target::(exit target-slide-down) - (unknown-dword36 int64 :offset 1712) ;; from target::(trans target-jump) + (unknown-dword30 time-frame :offset 1664) ;; from target::(trans target-walk) + (unknown-dword31 time-frame :offset 1672) ;; from target-util::can-hands? + (unknown-dword32 time-frame :offset 1680) ;; from target-util::can-hands? + (unknown-dword33 time-frame :offset 1688) ;; from target-util::can-feet? + (unknown-dword34 time-frame :offset 1696) ;; from target-util::can-feet? + (unknown-dword35 time-frame :offset 1704) ;; from target::(exit target-slide-down) + (unknown-dword36 time-frame :offset 1712) ;; from target::(trans target-jump) (unknown-float80 float :offset 1724) ;; from logic-target::bend-gravity (unknown-float81 float :offset 1728) ;; from logic-target::bend-gravity (unknown-float82 float :offset 1732) ;; from logic-target::bend-gravity @@ -11682,8 +11683,8 @@ (unknown-float110 float :offset 2120) ;; from logic-target::target-compute-edge (unknown-vector100 vector :inline :offset 2128) ;; from logic-target::target-compute-edge (unknown-vector101 vector :inline :offset 2144) ;; from logic-target::target-compute-edge - (unknown-dword40 int64 :offset 2160) ;; from logic-target::target-compute-edge - (unknown-dword41 int64 :offset 2168) ;; from logic-target::target-compute-edge + (unknown-dword40 time-frame :offset 2160) ;; from logic-target::target-compute-edge + (unknown-dword41 time-frame :offset 2168) ;; from logic-target::target-compute-edge (unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole (unknown-uint20 uint32 :offset 2184) ;; from target::(trans target-running-attack) (unknown-spoolanim00 spool-anim :offset 2184) ;; from target2::(trans target-stance-ambient) @@ -11719,13 +11720,13 @@ (history-length int16 :offset 2490) (history-data collide-history 128 :inline :offset-assert 2496) (unknown-float140 float :offset 18944) - (unknown-dword70 int64 :offset 18952) ;; from logic-target::add-thrust + (unknown-dword70 time-frame :offset 18952) ;; from logic-target::add-thrust (unknown-int40 int32 :offset 18880) ;; from logic-target::flag-setup - (unknown-dword80 int64 :offset 18888) ;; from logic-target::post-flag-setup - (unknown-dword81 int64 :offset 18896) ;; from logic-target::post-flag-setup + (unknown-dword80 time-frame :offset 18888) ;; from logic-target::post-flag-setup + (unknown-dword81 time-frame :offset 18896) ;; from logic-target::post-flag-setup (unknown-float130 float :offset 18904) ;; from target2::target-swim-tilt (unknown-float131 float :offset 18908) ;; from target2::target-swim-tilt - (unknown-dword82 int64 :offset 18912) ;; from logic-target::reset-target-state + (unknown-dword82 time-frame :offset 18912) ;; from logic-target::reset-target-state (unknown-vector120 vector :inline :offset 18928) ;; from target::(code target-running-attack) (unknown-float150 float :offset 18944) ;; from target::(code target-wheel-flip) (unknown-vector121 vector :inline :offset 18960) ;; from target collide response @@ -12105,7 +12106,7 @@ (parent-base vector :inline :offset-assert 224) (parent-quat vector :inline :offset-assert 240) (base-vector vector :inline :offset-assert 256) - (timeout uint64 :offset-assert 272) + (timeout time-frame :offset-assert 272) (options uint64 :offset-assert 280) (last-target handle :offset-assert 288) (notify-handle handle :offset-assert 296) @@ -12183,7 +12184,7 @@ (racer racer-info :offset-assert 180) (game game-info :offset-assert 184) (neck joint-mod :offset-assert 188) - (state-hook-time uint64 :offset-assert 192) + (state-hook-time time-frame :offset-assert 192) (state-hook (function none :behavior target) :offset-assert 200) (cam-user-mode symbol :offset-assert 204) (sidekick (pointer sidekick) :offset-assert 208) @@ -12200,8 +12201,8 @@ (saved-owner uint64 :offset-assert 528) (alt-neck-pos vector :inline :offset-assert 544) (fp-hud handle :offset-assert 560) - (no-load-wait uint64 :offset-assert 568) - (no-look-around-wait uint64 :offset-assert 576) + (no-load-wait time-frame :offset-assert 568) + (no-look-around-wait time-frame :offset-assert 576) ;;(burn-proc handle :offset-assert 584) ;; PAL only ) :heap-base #x1e0 @@ -14496,7 +14497,7 @@ ((collide-move-rad float :offset-assert 4) (joypad uint32 :offset-assert 8) (min-detectable-velocity float :offset-assert 12) - (attack-timeout seconds :offset-assert 16) + (attack-timeout time-frame :offset-assert 16) (default-string-max-y meters :offset-assert 24) (default-string-min-y meters :offset-assert 28) (default-string-max-z meters :offset-assert 32) @@ -14768,7 +14769,7 @@ (pov-handle handle :offset-assert 336) (pov-bone int32 :offset-assert 344) (being-attacked symbol :offset-assert 348) - (attack-start uint64 :offset-assert 352) + (attack-start time-frame :offset-assert 352) (on-ground symbol :offset-assert 360) (under-water int32 :offset-assert 364) (on-pole symbol :offset-assert 368) @@ -14793,7 +14794,7 @@ (outro-t float :offset-assert 2372) (outro-t-step float :offset-assert 2376) (outro-exit-value float :offset-assert 2380) - (water-drip-time uint64 :offset-assert 2384) + (water-drip-time time-frame :offset-assert 2384) (water-drip sparticle-launch-control :offset-assert 2392) (water-drip-mult float :offset-assert 2396) (water-drip-speed float :offset-assert 2400) @@ -14949,8 +14950,8 @@ ((value int32 :offset-assert 112) (value2 int32 :offset-assert 116) (target-value int32 :offset-assert 120) - (last-increment-time int64 :offset-assert 128) - (last-target-equal-time int64 :offset-assert 136) + (last-increment-time time-frame :offset-assert 128) + (last-target-equal-time time-frame :offset-assert 136) (offset int32 :offset-assert 144) (y-offset int32 :offset-assert 148) (next-y-offset int32 :offset-assert 152) @@ -14965,8 +14966,8 @@ (disable symbol :offset-assert 188) (force-on-screen symbol :offset-assert 192) (deactivate-when-hidden symbol :offset-assert 196) - (trigger-time uint64 :offset-assert 200) - (last-hide-time uint64 :offset-assert 208) + (trigger-time time-frame :offset-assert 200) + (last-hide-time time-frame :offset-assert 208) (nb-of-icons int32 :offset-assert 216) (icons hud-icon 6 :offset-assert 220) (max-nb-of-particles int32 :offset-assert 244) @@ -14981,7 +14982,7 @@ (:methods (dummy-14 (_type_) symbol 14) (dummy-15 (_type_) none 15) - (TODO-RENAME-16 (_type_ int int) none 16) ;; first int seen as a fixed point from racer-info 'heat' + (TODO-RENAME-16 (_type_ int int) none 16) (dummy-17 (_type_) none 17) (dummy-18 (_type_) none 18) (TODO-RENAME-19 (_type_) none 19) @@ -15179,8 +15180,8 @@ (total-nb-of-orbs int32 :offset-assert 284) (total-nb-of-buzzers int32 :offset-assert 288) (card-info mc-slot-info :offset-assert 292) - (last-option-index-change int64 :offset-assert 296) - (video-mode-timeout int64 :offset-assert 304) + (last-option-index-change time-frame :offset-assert 296) + (video-mode-timeout time-frame :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) @@ -15578,7 +15579,7 @@ (travel vector :inline :offset-assert 144) (target-pos vector :inline :offset-assert 160) (destination-pos vector :inline :offset-assert 176) - (block-time uint64 :offset-assert 192) + (block-time time-frame :offset-assert 192) (block-count float :offset-assert 200) (user-poly nav-poly :offset-assert 204) (nav-cull-radius float :offset-assert 208) @@ -15705,7 +15706,7 @@ (define-extern *dgo-name* string) (define-extern *load-dgo-rpc* rpc-buffer-pair) -(define-extern *dgo-time* int) +(define-extern *dgo-time* time-frame) (define-extern *play-str-rpc* rpc-buffer-pair) (define-extern *que-str-lock* symbol) (define-extern *load-str-lock* symbol) @@ -17481,7 +17482,7 @@ ) (deftype ambient-control (structure) - ((last-ambient-time int64 :offset-assert 0) + ((last-ambient-time time-frame :offset-assert 0) (last-ambient string :offset-assert 8) (last-ambient-id sound-id :offset-assert 12) ) @@ -17491,7 +17492,7 @@ :pack-me (:methods (dummy-9 (_type_) none 9) - (TODO-RENAME-10 (_type_ vector int float process-drawable) vector 10) + (TODO-RENAME-10 (_type_ vector time-frame float process-drawable) vector 10) (play-ambient (_type_ string symbol vector) symbol 11) ) ) @@ -17509,7 +17510,7 @@ (camera handle :offset-assert 288) (will-talk symbol :offset-assert 296) (talk-message game-text-id :offset-assert 300) - (last-talk int64 :offset-assert 304) + (last-talk time-frame :offset-assert 304) (bounce-away symbol :offset-assert 312) (ambient ambient-control :inline :offset-assert 320) (center-joint-index int32 :offset-assert 336) @@ -17581,7 +17582,7 @@ (define-extern close-specific-task! (function game-task task-status game-task)) (define-extern reset-all-hint-controls (function none)) (define-extern reset-actors (function symbol none)) -(define-extern set-blackout-frames (function int int)) +(define-extern set-blackout-frames (function time-frame none)) (define-extern set-master-mode (function symbol none)) (define-extern stop (function symbol int)) (define-extern start (function symbol continue-point target)) @@ -17715,7 +17716,7 @@ (save game-save :offset-assert 136) (info mc-slot-info :inline :offset-assert 140) (notify handle :offset-assert 440) - (state-time int64 :offset-assert 448) + (state-time time-frame :offset-assert 448) (part sparticle-launch-control :offset-assert 456) ) :heap-base #x160 @@ -18083,8 +18084,8 @@ ) (deftype finalboss-states (structure) - ((start-time uint64 :offset-assert 0) - (secret-time uint64 :offset-assert 8) + ((start-time time-frame :offset-assert 0) + (secret-time time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -18120,8 +18121,8 @@ (define-extern update-mood-lava (function mood-context int int symbol none)) (define-extern update-light-kit (function light-group light float float)) (define-extern set-target-light-index (function int int)) -(define-extern update-mood-caustics (function mood-context int int float)) ;; TODO - double check -(define-extern update-mood-jungleb-blue (function mood-context float int vector)) +(define-extern update-mood-caustics (function mood-context int int none)) +(define-extern update-mood-jungleb-blue (function mood-context float int none)) (define-extern update-mood-prt-color (function mood-context vector)) (define-extern update-mood-default (function mood-context float int none)) (define-extern update-mood-misty (function mood-context float float none)) @@ -18137,7 +18138,7 @@ (define-extern update-mood-maincave (function mood-context float int none)) (define-extern update-mood-darkcave (function mood-context float int none)) (define-extern update-mood-robocave (function mood-context float int none)) -(define-extern update-mood-snow (function mood-context float int none)) ;; TODO - weirdness with `state` on `mood-context` +(define-extern update-mood-snow (function mood-context float int none)) (define-extern update-mood-village3 (function mood-context float int none)) (define-extern update-mood-lavatube (function mood-context float int none)) (define-extern update-mood-ogre (function mood-context float int none)) @@ -18433,7 +18434,7 @@ (define-extern load-state-want-force-vis (function symbol symbol int)) (define-extern command-get-param (function object object object)) (define-extern entity-birth-no-kill (function entity none)) -(define-extern part-tracker-init (function sparticle-launch-group int (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker)) +(define-extern part-tracker-init (function sparticle-launch-group time-frame (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker)) (define-extern command-list-get-process (function object process)) (define-extern command-get-quoted-param (function object object object)) (define-extern command-get-int (function object int int)) @@ -18831,11 +18832,11 @@ (joint-index int32 :offset-assert 12) (top-y-offset float :offset-assert 16) (ripple-size meters :offset-assert 20) - (enter-water-time uint64 :offset-assert 24) - (wade-time uint64 :offset-assert 32) - (on-water-time uint64 :offset-assert 40) - (enter-swim-time uint64 :offset-assert 48) - (swim-time uint64 :offset-assert 56) + (enter-water-time time-frame :offset-assert 24) + (wade-time time-frame :offset-assert 32) + (on-water-time time-frame :offset-assert 40) + (enter-swim-time time-frame :offset-assert 48) + (swim-time time-frame :offset-assert 56) (base-height meters :offset-assert 64) (wade-height meters :offset-assert 68) (swim-height meters :offset-assert 72) @@ -18856,7 +18857,7 @@ (drip-old-pos vector :inline :offset-assert 240) (drip-joint-index int32 :offset-assert 256) (drip-wetness float :offset-assert 260) - (drip-time uint64 :offset-assert 264) + (drip-time time-frame :offset-assert 264) (drip-speed float :offset-assert 272) (drip-height meters :offset-assert 276) (drip-mult float :offset-assert 280) @@ -19734,7 +19735,7 @@ (define-extern rider-trans (function int :behavior process-drawable)) (define-extern rider-post (function int :behavior process-drawable)) (define-extern pusher-post (function int :behavior process-drawable)) -(define-extern process-drawable-delay-player (function int int :behavior process-drawable)) +(define-extern process-drawable-delay-player (function time-frame int :behavior process-drawable)) (define-extern process-drawable-fuel-cell-handler (function process int symbol event-message-block none :behavior process-drawable)) (define-extern process-drawable-birth-fuel-cell (function entity vector symbol none :behavior process-drawable)) (define-extern process-drawable-valid? (function process-drawable symbol)) @@ -19877,7 +19878,7 @@ (spring-height meters :offset-assert 176) (camera state :offset-assert 180) (active-distance float :offset-assert 184) - (seek-time uint64 :offset-assert 192) + (seek-time time-frame :offset-assert 192) (dest vector :inline :offset-assert 208) (sound-id sound-id :offset-assert 224) ) @@ -19915,7 +19916,7 @@ (define-extern camera-tracker-init (function object object :behavior camera-tracker)) ;; TODO - nested SC (define-extern cam-launcher-joystick (function vector :behavior camera-slave)) (define-extern launcher-init-by-other (function vector float int float none :behavior launcher)) -(define-extern touch-tracker-init (function vector float uint none :behavior touch-tracker)) ;; last arg is a handle to `target` +(define-extern touch-tracker-init (function vector float time-frame none :behavior touch-tracker)) (define-extern process-drawable-pair-random-point! (function process-drawable process-drawable vector float vector)) (define-extern birth-func-set-quat (function int sparticle-cpuinfo sparticle-launchinfo none)) (define-extern draw-eco-beam (function vector vector none)) @@ -19954,13 +19955,13 @@ (swim-jump-height-max meters :offset-assert 68) (tube-jump-height-min meters :offset-assert 72) (tube-jump-height-max meters :offset-assert 76) - (wheel-duration seconds :offset-assert 80) - (wheel-jump-pre-window seconds :offset-assert 88) - (wheel-jump-post-window seconds :offset-assert 96) - (wheel-timeout seconds :offset-assert 104) + (wheel-duration time-frame :offset-assert 80) + (wheel-jump-pre-window time-frame :offset-assert 88) + (wheel-jump-post-window time-frame :offset-assert 96) + (wheel-timeout time-frame :offset-assert 104) (wheel-speed-min meters :offset-assert 112) (wheel-speed-inc meters :offset-assert 116) - (wheel-flip-duration seconds :offset-assert 120) + (wheel-flip-duration time-frame :offset-assert 120) (wheel-flip-height meters :offset-assert 128) (wheel-flip-dist meters :offset-assert 132) (wheel-flip-art-height meters :offset-assert 136) @@ -19968,13 +19969,13 @@ (duck-slide-distance meters :offset-assert 144) (fall-far meters :offset-assert 148) (fall-far-inc meters :offset-assert 152) - (attack-timeout seconds :offset-assert 160) - (ground-timeout seconds :offset-assert 168) - (slide-down-timeout seconds :offset-assert 176) - (fall-timeout seconds :offset-assert 184) + (attack-timeout time-frame :offset-assert 160) + (ground-timeout time-frame :offset-assert 168) + (slide-down-timeout time-frame :offset-assert 176) + (fall-timeout time-frame :offset-assert 184) (fall-stumble-threshold meters :offset-assert 192) (yellow-projectile-speed meters :offset-assert 196) - (hit-invulnerable-timeout seconds :offset-assert 200) + (hit-invulnerable-timeout time-frame :offset-assert 200) (run-cycle-length float :offset-assert 208) (walk-cycle-dist meters :offset-assert 212) (walk-up-cycle-dist meters :offset-assert 216) @@ -20016,7 +20017,7 @@ (stuck-distance meters :offset-assert 576) (tongue-pull-speed-min float :offset-assert 580) (tongue-pull-speed-max float :offset-assert 584) - (yellow-attack-timeout seconds :offset-assert 592) + (yellow-attack-timeout time-frame :offset-assert 592) ) :method-count-assert 9 :size-assert #x258 @@ -20047,7 +20048,7 @@ (define-extern set-forward-vel (function float vector :behavior target)) (define-extern delete-back-vel (function none :behavior target)) (define-extern set-side-vel (function float vector :behavior target)) -(define-extern target-timed-invulnerable (function seconds target none)) +(define-extern target-timed-invulnerable (function time-frame target none)) (define-extern target-timed-invulnerable-off (function target none)) (define-extern ground-tween-initialize (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target)) ;; TODO - dealing with inline-array issues (define-extern ground-tween-update (function ground-tween-info float float none :behavior target)) ;; TODO - inline array issues as well @@ -20073,7 +20074,7 @@ (define-extern birth-func-target-orient (function int sparticle-cpuinfo sparticle-launchinfo none)) (define-extern birth-func-vector-orient (function int sparticle-cpuinfo sparticle-launchinfo none)) (define-extern part-tracker-track-target-joint (function int sparticle-cpuinfo sparticle-launchinfo none)) ;; 3rd arg could also be a vector -(define-extern process-drawable-burn-effect (function int rgbaf :behavior target)) +(define-extern process-drawable-burn-effect (function time-frame rgbaf :behavior target)) ;; ---------------------- @@ -20133,7 +20134,7 @@ (define-extern print-history (function control-info none)) (define-extern local-pad-angle (function float :behavior target)) (define-extern turn-around? (function symbol :behavior target)) -(define-extern target-move-dist (function int float :behavior target)) +(define-extern target-move-dist (function time-frame float :behavior target)) (define-extern target-compute-edge-rider (function none :behavior target)) (define-extern target-post (function none)) (define-extern target-swim-post (function none :behavior target)) @@ -20248,8 +20249,8 @@ (define-extern target-hit-ground-anim (function symbol symbol :behavior target)) (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? -(define-extern target-falling-anim (function int int symbol :behavior target)) -(define-extern target-falling-trans (function basic cpad-list none :behavior target)) ;; todo - power of 2 array access issue (fixed in another PR?) +(define-extern target-falling-anim (function time-frame int symbol :behavior target)) +(define-extern target-falling-trans (function basic time-frame none :behavior target)) (define-extern target-falling-anim-trans (function none :behavior target)) ;; unconfirmed ;; - Unknowns @@ -20612,7 +20613,7 @@ (define-extern pause-allowed? (function symbol)) (define-extern menu-respond-to-pause (function symbol)) (define-extern hide-progress-screen (function none)) -(define-extern set-letterbox-frames (function int int)) +(define-extern set-letterbox-frames (function time-frame none)) (define-extern letterbox (function none)) (define-extern blackout (function none)) (define-extern main-cheats (function int)) @@ -20957,9 +20958,9 @@ (extra-trans vector :inline :offset-assert 224) (jump-pos vector :inline :offset-assert 240) (flags collectable-flags :offset-assert 256) - (birth-time int64 :offset-assert 264) - (collect-timeout int64 :offset-assert 272) - (fadeout-timeout int64 :offset-assert 280) + (birth-time time-frame :offset-assert 264) + (collect-timeout time-frame :offset-assert 272) + (fadeout-timeout time-frame :offset-assert 280) (bob-offset int64 :offset-assert 288) (bob-amount float :offset-assert 296) (pickup-handle handle :offset-assert 304) ;; not sure it's a handle @@ -20971,7 +20972,7 @@ :flag-assert #x1600d0013c (:methods (initialize (_type_) _type_ 20) - (initialize-params (_type_ int float) none 21) + (initialize-params (_type_ time-frame float) none 21) ) (:states (hud-collecting handle)) @@ -20981,11 +20982,11 @@ ((eco-effect sparticle-launch-group :offset-assert 316) (collect-effect sparticle-launch-group :offset-assert 320) (collect-effect2 sparticle-launch-group :offset-assert 324) - (collect-effect-time seconds :offset-assert 328) - (respawn-delay int64 :offset-assert 336) + (collect-effect-time time-frame :offset-assert 328) + (respawn-delay time-frame :offset-assert 336) (sound-name sound-spec :offset-assert 344) (target handle :offset-assert 352) - (suck-time int64 :offset-assert 360) + (suck-time time-frame :offset-assert 360) (suck-y-offset float :offset-assert 368) (speed vector :inline :offset-assert 384) (movie-pos-index int32 :offset-assert 400) @@ -21105,7 +21106,7 @@ (show-particles symbol :offset-assert 176) (collect-effect sparticle-launch-group :offset-assert 180) (collect-effect2 sparticle-launch-group :offset-assert 184) - (collect-effect-time uint64 :offset-assert 192) + (collect-effect-time time-frame :offset-assert 192) (blocker entity-actor :offset-assert 200) (block-func (function vent symbol) :offset-assert 204) (pickup-handle handle :offset-assert 208) @@ -21265,7 +21266,7 @@ ;; - Functions (define-extern eco-blue-glow (function vector none)) -(define-extern cloud-track (function process-tree process-tree (function vector none) int int int none :behavior process)) +(define-extern cloud-track (function process-tree process-tree (function vector none) time-frame time-frame time-frame none :behavior process)) ;; ---------------------- @@ -21415,7 +21416,7 @@ (y-pos int32 :offset-assert 288) (total-orbs int32 :offset-assert 292) (level-index int32 :offset-assert 296) - (start-time uint64 :offset-assert 304) + (start-time time-frame :offset-assert 304) ) :method-count-assert 27 :size-assert #x138 @@ -21583,7 +21584,7 @@ (center-x-backup int32 :offset-assert 52) (center-y-backup int32 :offset-assert 56) (aspect-ratio-backup symbol :offset-assert 60) - (last-slider-sound int64 :offset-assert 64) + (last-slider-sound time-frame :offset-assert 64) ) :method-count-assert 9 :size-assert #x48 @@ -21637,7 +21638,7 @@ (deftype search-info (structure) ((point vector :inline :offset-assert 0) (best-point vector :inline :offset-assert 16) - (match-handle uint64 :offset-assert 32) + (match-handle handle :offset-assert 32) (match projectile :offset-assert 40) (best float :offset-assert 44) (radius float :offset-assert 48) @@ -22484,7 +22485,7 @@ (player-dive-factor float :offset-assert 28) (player-force-distance meters :offset-assert 32) (player-force-clamp meters :offset-assert 36) - (player-force-timeout uint64 :offset-assert 40) + (player-force-timeout time-frame :offset-assert 40) (explosion-force meters :offset-assert 48) (linear-damping float :offset-assert 52) (angular-damping float :offset-assert 56) @@ -22525,7 +22526,7 @@ (sim-time-remaining float :offset-assert 688) (float-height-offset float :offset-assert 692) (player-attack-id int32 :offset-assert 696) - (player-bonk-timeout int64 :offset-assert 704) + (player-bonk-timeout time-frame :offset-assert 704) (water-anim water-anim :offset-assert 712) (player-contact basic :offset-assert 716) ; not a basic (player-impulse collide-shape-prim-mesh :offset-assert 720) @@ -22604,7 +22605,7 @@ (proximity-notice-distance meters :offset-assert 120) (stop-chase-distance meters :offset-assert 124) (frustration-distance meters :offset-assert 128) - (frustration-time uint64 :offset-assert 136) + (frustration-time time-frame :offset-assert 136) (die-anim-hold-frame float :offset-assert 144) (jump-anim-start-frame float :offset-assert 148) (jump-land-anim-end-frame float :offset-assert 152) @@ -22640,21 +22641,21 @@ (frustration-point vector :inline :offset-assert 208) (jump-dest vector :inline :offset-assert 224) (jump-trajectory trajectory :inline :offset-assert 240) - (jump-time int64 :offset-assert 280) + (jump-time time-frame :offset-assert 280) (nav-info nav-enemy-info :offset-assert 288) (target-speed float :offset-assert 292) (momentum-speed float :offset-assert 296) (acceleration float :offset-assert 300) (rotate-speed float :offset-assert 304) - (turn-time int64 :offset-assert 312) - (frustration-time int64 :offset-assert 320) + (turn-time time-frame :offset-assert 312) + (frustration-time time-frame :offset-assert 320) (speed-scale float :offset-assert 328) (neck joint-mod :offset-assert 332) - (reaction-time int64 :offset-assert 336) - (notice-time int64 :offset-assert 344) - (state-timeout int64 :offset-assert 352) - (free-time int64 :offset-assert 360) - (touch-time int64 :offset-assert 368) + (reaction-time time-frame :offset-assert 336) + (notice-time time-frame :offset-assert 344) + (state-timeout time-frame :offset-assert 352) + (free-time time-frame :offset-assert 360) + (touch-time time-frame :offset-assert 368) (nav-enemy-flags uint32 :offset-assert 376) (incomming-attack-id handle :offset-assert 384) (jump-return-state (state process) :offset-assert 392) @@ -22966,7 +22967,7 @@ (deftype joint-exploder-tuning (structure) ((explosion uint64 :offset-assert 0) - (duration uint64 :offset-assert 8) + (duration time-frame :offset-assert 8) (gravity float :offset-assert 16) (rot-speed float :offset-assert 20) (fountain-rand-transv-lo vector :inline :offset-assert 32) @@ -23118,7 +23119,7 @@ (y-max meters :offset-assert 440) (y-min meters :offset-assert 444) (attack-time float :offset-assert 448) - (player-water-time uint64 :offset-assert 456) + (player-water-time time-frame :offset-assert 456) (player-in-water basic :offset-assert 464) (last-y float :offset-assert 468) (spawn-distance meters :offset-assert 472) @@ -23356,9 +23357,9 @@ ((root-override collide-shape :score 100 :offset 112) (subtype uint64 :offset-assert 176) (subtype-name string :offset-assert 184) - (agitated-time-stamp uint64 :offset-assert 192) - (bonk-time-stamp uint64 :offset-assert 200) - (attack-flop-time-stamp uint64 :offset-assert 208) + (agitated-time-stamp time-frame :offset-assert 192) + (bonk-time-stamp time-frame :offset-assert 200) + (attack-flop-time-stamp time-frame :offset-assert 208) (player-attack-id uint64 :offset-assert 216) (sleep-dist float :offset-assert 224) (do-physics? basic :offset-assert 228) @@ -23415,17 +23416,17 @@ ;; - Types (deftype ticky (structure) - ((delay-til-ramp int64 :offset-assert 0) - (delay-til-timeout int64 :offset-assert 8) - (starting-time int64 :offset-assert 16) - (last-tick-time int64 :offset-assert 24) + ((delay-til-ramp time-frame :offset-assert 0) + (delay-til-timeout time-frame :offset-assert 8) + (starting-time time-frame :offset-assert 16) + (last-tick-time time-frame :offset-assert 24) ) :method-count-assert 12 :size-assert #x20 :flag-assert #xc00000020 (:methods - (sleep (_type_ int) none 9) - (reached-delay? (_type_ int) symbol 10) + (sleep (_type_ time-frame) none 9) + (reached-delay? (_type_ time-frame) symbol 10) (completed? (_type_) symbol 11) ) ) @@ -23458,7 +23459,7 @@ (water-height float :offset-assert 212) (sfx uint32 :offset-assert 216) (part2 sparticle-launch-control :offset-assert 220) - (ground-time uint64 :offset-assert 224) + (ground-time time-frame :offset-assert 224) ) :method-count-assert 21 :size-assert #xe8 @@ -23494,7 +23495,7 @@ (front-wheel float :offset-assert 208) (rear-wheel float :offset-assert 212) (last-known-rotation float :offset-assert 216) - (part-timer uint64 :offset-assert 224) + (part-timer time-frame :offset-assert 224) (hellmouth vector :inline :offset-assert 240) (postbindinfo-ok symbol :offset-assert 256) (launch-origin vector :inline :offset-assert 272) @@ -24003,7 +24004,7 @@ (path-to-nest1 curve-control :offset 248) (path-to-nest2 curve-control :offset 252) (path-cache curve-control :offset-assert 256) - (time-cache uint64 :offset-assert 264) + (time-cache time-frame :offset-assert 264) (path-pos float :offset-assert 272) (path-speed float :offset-assert 276) (path-max float :offset-assert 280) @@ -24022,11 +24023,11 @@ (pelican-wait-at-end symbol) (pelican-wait-at-nest symbol) pelican-circle - (pelican-dive path-control curve-control uint) + (pelican-dive path-control curve-control time-frame) pelican-from-nest (pelican-explode symbol) pelican-spit - (pelican-fly-to-end path-control int) + (pelican-fly-to-end path-control time-frame) (pelican-to-nest path-control int)) ) @@ -24155,7 +24156,7 @@ (deftype beach-rock (process-drawable) ((root-override collide-shape-moving :score 100 :offset 112) (trigger basic :offset-assert 176) - (movie-start uint64 :offset-assert 184) + (movie-start time-frame :offset-assert 184) (part-falling sparticle-launch-control :offset-assert 192) (part-landing sparticle-launch-control :offset-assert 196) (prev-frame float :offset-assert 200) @@ -24206,7 +24207,7 @@ (scared int32 :offset-assert 204) (temp-heading float :offset-assert 208) (temp-heading-time int32 :offset-assert 212) - (part-time uint64 :offset-assert 216) + (part-time time-frame :offset-assert 216) (thrust float :offset-assert 224) (teleport symbol :offset-assert 228) ) @@ -24243,10 +24244,10 @@ (birds-at-waterfall int32 :offset-assert 416) (target vector :inline :offset-assert 432) (targetnum int32 :offset-assert 448) - (alert-time uint64 :offset-assert 456) + (alert-time time-frame :offset-assert 456) (teleport-frames int32 :offset-assert 464) (cam-tracker uint64 :offset-assert 472) - (state-time uint64 :offset-assert 480) + (state-time time-frame :offset-assert 480) (squall ambient-sound :offset-assert 488) (max-lift float :offset-assert 492) ) @@ -24333,7 +24334,7 @@ ((root-override trsq :score 100 :offset-assert 112) (range meters :offset-assert 116) (index int32 :offset-assert 120) - (state-time uint64 :offset-assert 128) + (state-time time-frame :offset-assert 128) ) :method-count-assert 15 :size-assert #x88 @@ -24407,7 +24408,7 @@ ((type2 type :offset-assert 0) ; a guess (percent float :offset-assert 4) (pickup-percent float :offset-assert 8) - (pickup-type int32 :offset-assert 12) + (pickup-type pickup-type :offset-assert 12) (max-pickup-count int8 :offset-assert 16) (pickup-count int8 :offset-assert 17) ) @@ -24427,7 +24428,7 @@ (spawner-count int8 :offset-assert 203) (creature-type-count int8 :offset-assert 204) (spawner-array battlecontroller-spawner 8 :inline :offset-assert 208) - (spawn-period uint64 :offset-assert 464) + (spawn-period time-frame :offset-assert 464) (path-spawn path-control :offset-assert 472) (creature-type-array battlecontroller-creature-type 4 :inline :offset-assert 476) (final-pickup-type pickup-type :offset-assert 604) @@ -24837,7 +24838,7 @@ (deftype citb-stair-plat (citb-base-plat) ((idle-height float :offset-assert 180) (rise-height float :offset-assert 184) - (delay uint64 :offset-assert 192) + (delay time-frame :offset-assert 192) (rise symbol :offset-assert 200) ; educated guess ) :method-count-assert 25 @@ -25063,8 +25064,8 @@ (jump-height-factor float :offset-assert 424) (jump-anim-start-frame float :offset-assert 428) (defense uint64 :offset-assert 432) - (retreat-timeout-time int64 :offset-assert 440) - (last-nondangerous-time int64 :offset-assert 448) + (retreat-timeout-time time-frame :offset-assert 440) + (last-nondangerous-time time-frame :offset-assert 448) (patrol-hop-failed? basic :offset-assert 456) (should-retreat? basic :offset-assert 460) (got-jump-event? symbol :offset-assert 464) @@ -25152,8 +25153,8 @@ (spin-angle float :offset-assert 192) (spin-speed float :offset-assert 196) (interp float :offset-assert 200) - (duration int64 :offset-assert 208) - (delay int64 :offset-assert 216) + (duration time-frame :offset-assert 208) + (delay time-frame :offset-assert 216) (color int8 :offset-assert 224) ) :method-count-assert 22 @@ -25192,8 +25193,8 @@ (x-spacing float :offset-assert 256) (z-spacing float :offset-assert 260) (idle-distance float :offset-assert 264) - (duration int64 :offset-assert 272) - (drop-time int64 :offset-assert 280) + (duration time-frame :offset-assert 272) + (drop-time time-frame :offset-assert 280) ) :method-count-assert 20 :size-assert #x120 @@ -25209,7 +25210,7 @@ (define-extern citb-drop-plat-spawn-children (function none :behavior citb-drop-plat)) (define-extern citb-drop-plat-drop-children (function int none :behavior citb-drop-plat)) (define-extern citb-drop-plat-drop-all-children (function symbol :behavior citb-drop-plat)) -(define-extern drop-plat-init-by-other (function vector int int int none :behavior drop-plat)) +(define-extern drop-plat-init-by-other (function vector time-frame time-frame int none :behavior drop-plat)) (define-extern drop-plat-set-fade (function none :behavior drop-plat)) ;; - Unknowns @@ -25257,11 +25258,11 @@ (glow-u float :offset-assert 184) (glow-wf-period int32 :offset-assert 188) (glow-wf-offset int32 :offset-assert 192) - (prev-compute-glow-time int64 :offset-assert 200) - (start-fade-time int64 :offset-assert 208) - (end-fade-time int64 :offset-assert 216) - (activated-time int64 :offset-assert 224) - (last-updated-user-lighting int64 :offset-assert 232) + (prev-compute-glow-time time-frame :offset-assert 200) + (start-fade-time time-frame :offset-assert 208) + (end-fade-time time-frame :offset-assert 216) + (activated-time time-frame :offset-assert 224) + (last-updated-user-lighting time-frame :offset-assert 232) (player-attack-id uint64 :offset-assert 240) (on-color-mult vector :inline :offset-assert 256) (on-color-emissive vector :inline :offset-assert 272) @@ -25309,20 +25310,20 @@ (deftype static-screen (process) ((part sparticle-launch-control 1 :offset-assert 112) - (state-time uint64 :offset-assert 120) + (state-time time-frame :offset-assert 120) ) :method-count-assert 15 :size-assert #x80 :heap-base #x10 :flag-assert #xf00100080 (:methods - (idle (int int symbol) _type_ :state 14) + (idle (int time-frame symbol) _type_ :state 14) ) ) ;; - Functions -(define-extern static-screen-init-by-other (function int int int int int symbol none :behavior static-screen)) +(define-extern static-screen-init-by-other (function int int int int time-frame symbol none :behavior static-screen)) ;; ---------------------- @@ -25359,8 +25360,8 @@ (desired-loc vector :inline :offset-assert 240) (old-loc vector :inline :offset-assert 256) (loc-t float :offset-assert 272) - (loc-t-start int64 :offset-assert 280) - (loc-t-duration int64 :offset-assert 288) + (loc-t-start time-frame :offset-assert 280) + (loc-t-duration time-frame :offset-assert 288) (hits-to-go int32 :offset-assert 296) (took-hit symbol :offset-assert 300) (children-spawned int32 :offset-assert 304) @@ -25441,8 +25442,8 @@ ((root-override collide-shape :score 20 :offset 112) (angle-bit int32 :offset-assert 176) (ground-y float :offset-assert 180) - (falling-start-time int64 :offset-assert 184) - (last-update-time int64 :offset-assert 192) + (falling-start-time time-frame :offset-assert 184) + (last-update-time time-frame :offset-assert 192) (rot vector :inline :offset-assert 208) (rotv vector :inline :offset-assert 224) (traj trajectory :inline :offset-assert 240) @@ -25469,8 +25470,8 @@ (angle-mask int64 :offset-assert 184) (delay-til-spawn int32 :offset-assert 192) (part2 sparticle-launch-control :offset-assert 196) ;; guess - (last-update-time int64 :offset-assert 200) - (last-spawned-time int64 :offset-assert 208) + (last-update-time time-frame :offset-assert 200) + (last-spawned-time time-frame :offset-assert 208) ) :method-count-assert 22 :size-assert #xd8 @@ -25551,7 +25552,7 @@ ) (deftype darkecobomb (arcing-shot) - ((flight-time int64 :offset-assert 224) + ((flight-time time-frame :offset-assert 224) (countdown-time float :offset-assert 232) (anim-speed float :offset-assert 236) (next-tick float :offset-assert 240) @@ -25568,7 +25569,7 @@ ) (deftype greenshot (arcing-shot) - ((flight-time int64 :offset-assert 224) + ((flight-time time-frame :offset-assert 224) ) :method-count-assert 20 :size-assert #xe8 @@ -25579,8 +25580,8 @@ ) (deftype redshot (arcing-shot) - ((flight-time int64 :offset-assert 224) - (stall-time int64 :offset-assert 232) + ((flight-time time-frame :offset-assert 224) + (stall-time time-frame :offset-assert 232) (ring torus :inline :offset-assert 240) (rotation-offset int64 :offset-assert 280) (part-track handle :offset-assert 288) @@ -25598,7 +25599,7 @@ ) (deftype yellowshot (arcing-shot) - ((flight-time int64 :offset-assert 224) + ((flight-time time-frame :offset-assert 224) ) :method-count-assert 20 :size-assert #xe8 @@ -25612,16 +25613,16 @@ (define-extern arcing-shot-setup (function vector vector float float :behavior arcing-shot)) (define-extern arcing-shot-calculate (function vector float float :behavior arcing-shot)) -(define-extern redshot-trans (function int object :behavior redshot)) +(define-extern redshot-trans (function time-frame none :behavior redshot)) (define-extern redshot-particle-callback (function part-tracker none)) (define-extern darkecobomb-explode-if-player-high-enough (function none :behavior darkecobomb)) (define-extern arcing-shot-draw (function symbol :behavior arcing-shot)) (define-extern darkecobomb-handler (function process int symbol event-message-block object :behavior darkecobomb)) -(define-extern darkecobomb-init-by-other (function vector vector float int float none :behavior darkecobomb)) -(define-extern greenshot-init-by-other (function vector vector float int none :behavior greenshot)) +(define-extern darkecobomb-init-by-other (function vector vector float time-frame float none :behavior darkecobomb)) +(define-extern greenshot-init-by-other (function vector vector float time-frame none :behavior greenshot)) (define-extern redshot-handler (function process int symbol event-message-block object :behavior redshot)) -(define-extern redshot-init-by-other (function vector vector float uint uint uint none :behavior redshot)) -(define-extern yellowshot-init-by-other (function vector vector float uint none :behavior yellowshot)) +(define-extern redshot-init-by-other (function vector vector float time-frame time-frame int none :behavior redshot)) +(define-extern yellowshot-init-by-other (function vector vector float time-frame none :behavior yellowshot)) ;; - Unknowns @@ -25759,8 +25760,8 @@ (deftype redshot-launch-info (structure) ((dest vector :inline :offset-assert 0) - (flight-time int64 :offset-assert 16) - (stall-time int64 :offset-assert 24) + (flight-time time-frame :offset-assert 16) + (stall-time time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -25892,7 +25893,7 @@ (targ-dest float :offset-assert 364) (dest float :offset-assert 368) (speed float :offset-assert 372) - (touch-time int64 :offset-assert 376) + (touch-time time-frame :offset-assert 376) ) :method-count-assert 33 :size-assert #x180 @@ -25993,7 +25994,7 @@ (deftype eggtop (process-drawable) ((root-override collide-shape-moving :score 100 :offset 112) - (cam-tracker uint64 :offset-assert 176) + (cam-tracker handle :offset-assert 176) (sound-id sound-id :offset-assert 184) ) :method-count-assert 20 @@ -26113,7 +26114,7 @@ ((root-override collide-shape-moving :score 100 :offset 112) (side int32 :offset-assert 176) (state-object symbol :offset-assert 180) - (state-time-frame int64 :offset-assert 184) + (state-time-frame time-frame :offset-assert 184) ) :method-count-assert 20 :heap-base #x50 @@ -26144,7 +26145,7 @@ (cam-tracker handle :offset-assert 240) (want-aphid-count int32 :offset-assert 248) (aphid-count int32 :offset-assert 252) - (aphid-spawn-time int64 :offset-assert 256) + (aphid-spawn-time time-frame :offset-assert 256) (interp float :offset-assert 264) (try int32 :offset-assert 268) (camera handle :offset-assert 272) @@ -26305,7 +26306,7 @@ (deftype junglesnake (process-drawable) ((root-override collide-shape :score 100 :offset 112) - (state-time2 int64 :offset-assert 176) ;; changed + (state-time2 time-frame :offset-assert 176) ;; changed (hit-player symbol :offset 184) (is-lethal? symbol :offset-assert 188) (refractory-delay int32 :offset-assert 192) @@ -26364,7 +26365,7 @@ (dangerous symbol :offset-assert 184) (vulnerable symbol :offset-assert 188) (hit-player symbol :offset-assert 192) - (touch-time uint64 :offset-assert 200) + (touch-time time-frame :offset-assert 200) (player-attack-id int32 :offset-assert 208) ) :method-count-assert 20 @@ -26595,7 +26596,7 @@ (old-camera-matrix matrix :inline :offset-assert 272) (reflector (pointer reflector) :offset-assert 336) (gauge-rot degrees :offset-assert 340) - (lock-time uint64 :offset-assert 344) + (lock-time time-frame :offset-assert 344) (aligned? symbol :offset-assert 352) (raised? symbol :offset-assert 356) (player-touching-grips? symbol :offset-assert 360) @@ -26728,11 +26729,11 @@ ) (deftype fisher-params (structure) - ((timeout seconds :offset-assert 0) + ((timeout time-frame :offset-assert 0) (vel float :offset-assert 8) - (swing-min seconds :offset-assert 16) - (swing-max seconds :offset-assert 24) - (period seconds :offset-assert 32) + (swing-min time-frame :offset-assert 16) + (swing-max time-frame :offset-assert 24) + (period time-frame :offset-assert 32) (fish-vel float :offset-assert 40) (bad-percent float :offset-assert 44) (deadly-percent float :offset-assert 48) @@ -26751,19 +26752,19 @@ (paddle-vel float :offset-assert 436) (spawner float :offset-assert 440) (spawner-last float :offset-assert 444) - (spawn-time int64 :offset-assert 448) - (turn-time int64 :offset-assert 456) - (swing-time int64 :offset-assert 464) - (block-time int64 :offset-assert 472) + (spawn-time time-frame :offset-assert 448) + (turn-time time-frame :offset-assert 456) + (swing-time time-frame :offset-assert 464) + (block-time time-frame :offset-assert 472) (block int32 :offset-assert 480) (caught int32 :offset-assert 484) (missed int32 :offset-assert 488) (difficulty int32 :offset-assert 492) - (start-time int64 :offset-assert 496) - (ambient-big-one int64 :offset-assert 504) - (ambient-steady int64 :offset-assert 512) - (ambient-sagging int64 :offset-assert 520) - (ambient-almost int64 :offset-assert 528) + (start-time time-frame :offset-assert 496) + (ambient-big-one time-frame :offset-assert 504) + (ambient-steady time-frame :offset-assert 512) + (ambient-sagging time-frame :offset-assert 520) + (ambient-almost time-frame :offset-assert 528) (cheat-temp int32 :offset-assert 536) (hard symbol :offset-assert 540) (training symbol :offset-assert 544) @@ -26908,8 +26909,8 @@ (bob-mult-rot float :offset-assert 300) (bob-mult-trans float :offset-assert 304) (bob-period float :offset-assert 308) - (bob-meta-time uint64 :offset-assert 312) - (bob-hit-ground-time uint64 :offset-assert 320) + (bob-meta-time time-frame :offset-assert 312) + (bob-hit-ground-time time-frame :offset-assert 320) (cur-rotx degrees :offset-assert 328) (targ-rotx degrees :offset-assert 332) (speed-rotx float :offset-assert 336) @@ -26924,16 +26925,16 @@ (tail joint-mod :offset-assert 372) (tail-tilt degrees :offset-assert 376) (transv-max meters :offset-assert 380) - (slide-down-time uint64 2 :offset-assert 384) - (slide-enter-time uint64 :offset-assert 400) + (slide-down-time time-frame 2 :offset-assert 384) + (slide-enter-time time-frame :offset-assert 400) (slide-mode int32 :offset-assert 408) (slide-amp float :offset-assert 412) (slide-grip-mult float :offset-assert 416) (slide-shift-x float :offset-assert 420) (slide-interp float :offset-assert 424) (heat float :offset-assert 428) - (boost-time uint64 :offset-assert 432) - (boost-duration uint64 :offset-assert 440) + (boost-time time-frame :offset-assert 432) + (boost-duration time-frame :offset-assert 440) (boost-curve float :offset-assert 448) (boost-level float :offset-assert 452) (boost-target float :offset-assert 456) @@ -26952,14 +26953,14 @@ (tail-anim-frame float :offset-assert 508) (rudd-anim-vel float :offset-assert 512) (rudd-anim-frame float :offset-assert 516) - (racing-time uint64 :offset-assert 520) + (racing-time time-frame :offset-assert 520) (stick-lock symbol :offset-assert 528) (stick-off symbol :offset-assert 532) (heavy symbol :offset-assert 536) - (unstuck-time int64 :offset-assert 544) + (unstuck-time time-frame :offset-assert 544) (stuck-count int32 :offset-assert 552) (scrape-sound-id sound-id :offset-assert 556) - (heat-sound-time uint64 :offset-assert 560) + (heat-sound-time time-frame :offset-assert 560) ) :method-count-assert 9 :size-assert #x238 @@ -27169,7 +27170,7 @@ (path-data path-control 2 :offset-assert 208) (path-target path-control :offset 208) (path-flut path-control :offset 212) - (touch-time uint64 :offset-assert 216) + (touch-time time-frame :offset-assert 216) ) :pack-me :method-count-assert 24 @@ -27222,7 +27223,7 @@ (double-jump-height-min meters :offset-assert 12) (double-jump-height-max meters :offset-assert 16) (air-attack-speed meters :offset-assert 20) - (ground-timeout int64 :offset-assert 24)) + (ground-timeout time-frame :offset-assert 24)) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 @@ -27357,15 +27358,15 @@ (run-away-dist meters :offset-assert 32) (walk-rotate-speed float :offset-assert 36) (run-rotate-speed float :offset-assert 40) - (walk-turn-time uint64 :offset-assert 48) - (run-turn-time uint64 :offset-assert 56) + (walk-turn-time time-frame :offset-assert 48) + (run-turn-time time-frame :offset-assert 56) (max-walk-speed float :offset-assert 64) (min-run-speed float :offset-assert 68) (walk-run-blend-rate float :offset-assert 72) (walk-turn-blend-rate float :offset-assert 76) (max-run-speed float :offset-assert 80) (acceleration meters :offset-assert 84) - (default-patrol-time uint64 :offset-assert 88) + (default-patrol-time time-frame :offset-assert 88) (default-idle-distance meters :offset-assert 96) (safe-distance meters :offset-assert 100) (min-run-anim-speed float :offset-assert 104) @@ -27388,7 +27389,7 @@ (travel-speed meters :offset-assert 192) (final-speed meters :offset-assert 196) (rotate-speed float :offset-assert 200) - (turn-time uint64 :offset-assert 208) + (turn-time time-frame :offset-assert 208) (vulnerable basic :offset-assert 216) (grazing basic :offset-assert 220) (push-velocity vector :inline :offset-assert 224) @@ -27706,7 +27707,7 @@ (dest-circle vector :inline :offset-assert 80) (target-point vector :inline :offset-assert 96) (sample-dir vector :inline :offset-assert 112) - (sample-time uint64 :offset-assert 128) + (sample-time time-frame :offset-assert 128) (sample-index int32 :offset-assert 136) ) :method-count-assert 17 @@ -27876,7 +27877,7 @@ ((root trsq :offset-assert 112) (range meters :offset-assert 116) (index int32 :offset-assert 120) - (state-time uint64 :offset-assert 128) + (state-time time-frame :offset-assert 128) ) :method-count-assert 15 :size-assert #x88 @@ -28099,7 +28100,7 @@ ;; - Functions (define-extern mis-bone-bridge-event-handler (function process int symbol event-message-block object :behavior mis-bone-bridge)) -(define-extern actor-wait-for-period (function int symbol)) +(define-extern actor-wait-for-period (function time-frame symbol)) (define-extern misty-cam-restore (function symbol)) ;; - Unknowns @@ -28125,7 +28126,7 @@ (deftype silostep (process-drawable) ((anim-limit float :offset-assert 176) - (cam-tracker uint64 :offset-assert 184) + (cam-tracker handle :offset-assert 184) ) :method-count-assert 20 :heap-base #x50 @@ -28148,7 +28149,7 @@ ;; - Functions -(define-extern misty-camera-view (function handle :behavior silostep)) +(define-extern misty-camera-view (function none :behavior silostep)) ;; - Unknowns (define-extern *rounddoor-sg* skeleton-group) @@ -28316,7 +28317,7 @@ ;; - Types (deftype bonelurker (nav-enemy) - ((bump-player-time uint64 :offset-assert 400) + ((bump-player-time time-frame :offset-assert 400) ) :method-count-assert 76 :size-assert #x198 @@ -29463,13 +29464,13 @@ (state-vector vector :inline :offset-assert 432) ;(free-time uint64 :offset-assert 360) (_hack uint64 :offset-assert 448) - (wiggle-time uint64 :offset-assert 456) + (wiggle-time time-frame :offset-assert 456) (wiggle-angle float :offset-assert 464) (delta-wiggle-angle float :offset-assert 468) (wiggle-factor float :offset-assert 472) (min-height float :offset-assert 476) - (chase-rest-time uint64 :offset-assert 480) - (target-nav-time uint64 :offset-assert 488) + (chase-rest-time time-frame :offset-assert 480) + (target-nav-time time-frame :offset-assert 488) ) :method-count-assert 76 :size-assert #x1f0 @@ -29513,7 +29514,7 @@ (defensive-rat-count int8 :offset-assert 187) (spawn-period float :offset-assert 188) (spawn-period-scale float :offset-assert 192) - (test-interval uint64 :offset-assert 200) + (test-interval time-frame :offset-assert 200) (player-attack-id int32 :offset-assert 208) ) :method-count-assert 20 @@ -29729,7 +29730,7 @@ (passed-last-stage symbol :offset-assert 404) (spawn-rats symbol :offset-assert 408) (current-wave int32 :offset-assert 412) - (wave-start-time uint64 :offset-assert 416) + (wave-start-time time-frame :offset-assert 416) (num-snacks int32 :offset-assert 424) (num-rats int32 :offset-assert 428) (max-rats int32 :offset-assert 432) @@ -29812,7 +29813,7 @@ (deftype cavecrystal-light-control (basic) ((active-count int32 :offset-assert 4) (head cavecrystal-light :offset-assert 8) - (last-known-valid-time int64 :offset-assert 16) + (last-known-valid-time time-frame :offset-assert 16) (crystal cavecrystal-light 7 :inline :offset-assert 32) ) :method-count-assert 15 @@ -29933,7 +29934,7 @@ (elev-mode uint64 :offset-assert 176) (elev-type int32 :offset-assert 184) (prev-frame-num float :offset-assert 188) - (last-update-bounce-time uint64 :offset-assert 192) + (last-update-bounce-time time-frame :offset-assert 192) (orig-trans vector :inline :offset-assert 208) (sync sync-info :inline :offset-assert 224) (smush smush-control :inline :offset-assert 232) @@ -30090,14 +30091,14 @@ (pickup int32 :offset-assert 16) (pickup-amount int32 :offset-assert 20) (event-death symbol :offset-assert 24) - (delay-before-dying-if-not-visible int64 :offset-assert 32) + (delay-before-dying-if-not-visible time-frame :offset-assert 32) ) :method-count-assert 11 :size-assert #x28 :flag-assert #xb00000028 (:methods - (init! (_type_ symbol symbol symbol symbol int int symbol) int 9) - (set-delay! (_type_ int) int 10) + (init! (_type_ symbol symbol symbol symbol int int symbol) none 9) + (set-delay! (_type_ time-frame) none 10) ) ) @@ -30109,13 +30110,13 @@ (delta-wiggle-angle float :offset-assert 416) (wiggle-factor float :offset-assert 420) (event-death symbol :offset-assert 424) - (delay-before-dying-if-not-visible int64 :offset-assert 432) - (chase-rest-time int64 :offset-assert 440) - (target-nav-time int64 :offset-assert 448) + (delay-before-dying-if-not-visible time-frame :offset-assert 432) + (chase-rest-time time-frame :offset-assert 440) + (target-nav-time time-frame :offset-assert 448) (unknown00 basic :offset-assert 456) (unknown01 basic :offset-assert 460) - (wiggle-time int64 :offset-assert 464) - (last-visible-time int64 :offset-assert 472) + (wiggle-time time-frame :offset-assert 464) + (last-visible-time time-frame :offset-assert 472) (up-vector vector :inline :offset-assert 480) (state-vector vector :inline :offset-assert 496) ) @@ -30230,15 +30231,15 @@ (check-z-thresh? symbol :offset-assert 276) (activate-z-thresh float :offset-assert 280) (deactivate-z-thresh float :offset-assert 284) - (spawned-time uint64 :offset-assert 288) - (last-update-time uint64 :offset-assert 296) - (spin-time uint64 :offset-assert 304) - (last-spit-time uint64 :offset-assert 312) - (last-player-in-air-time uint64 :offset-assert 320) - (started-birthing-time uint64 :offset-assert 328) + (spawned-time time-frame :offset-assert 288) + (last-update-time time-frame :offset-assert 296) + (spin-time time-frame :offset-assert 304) + (last-spit-time time-frame :offset-assert 312) + (last-player-in-air-time time-frame :offset-assert 320) + (started-birthing-time time-frame :offset-assert 328) (neck joint-mod :offset-assert 336) (player-attack-id uint64 :offset-assert 344) - (leg-socket-part-time uint64 6 :offset-assert 352) + (leg-socket-part-time time-frame 6 :offset-assert 352) (orient-rot vector :inline :offset-assert 400) (anchor-trans vector :inline :offset-assert 416) (thread-min-trans vector :inline :offset-assert 432) @@ -30293,7 +30294,7 @@ (root-override collide-shape-moving :score 100 :offset 112) (anim-speed float :offset-assert 176) (part2 sparticle-launch-control :offset-assert 180) - (falling-start-time uint64 :offset-assert 184) + (falling-start-time time-frame :offset-assert 184) (fall-dest vector :inline :offset-assert 192) (fall-dest-normal vector :inline :offset-assert 208) (broken-look lod-set :inline :offset-assert 224) @@ -30417,7 +30418,7 @@ (deftype gnawer-route (structure) ((src-pt-index int32 :offset-assert 0) (dest-pt-index int32 :offset-assert 4) - (total-travel-time uint64 :offset-assert 8) + (total-travel-time time-frame :offset-assert 8) (src-ang float :offset-assert 16) (dest-ang float :offset-assert 20) (delta-ang float :offset-assert 24) @@ -30446,7 +30447,7 @@ (anim-speed float :offset-assert 212) (part2 sparticle-launch-control :offset-assert 216) (sound2 ambient-sound :offset-assert 220) - (last-hit-time uint64 :offset-assert 224) + (last-hit-time time-frame :offset-assert 224) (post-trans vector :inline :offset-assert 240) (fall-trans vector :inline :offset-assert 256) (route gnawer-route :inline :offset-assert 272) @@ -30521,10 +30522,10 @@ (neck joint-mod :offset-assert 244) (drill joint-mod :offset-assert 248) (sound2 ambient-sound :offset-assert 252) - (last-update-time uint64 :offset-assert 256) - (last-player-path-u-time uint64 :offset-assert 264) - (started-chasing-time uint64 :offset-assert 272) - (hit-player-time uint64 :offset-assert 280) + (last-update-time time-frame :offset-assert 256) + (last-player-path-u-time time-frame :offset-assert 264) + (started-chasing-time time-frame :offset-assert 272) + (hit-player-time time-frame :offset-assert 280) (player-attack-id uint64 :offset-assert 288) ) :method-count-assert 28 @@ -30598,7 +30599,7 @@ (old-transv vector :inline :offset-assert 96) (mod-x float :offset-assert 112) (mod-y float :offset-assert 116) - (start-time uint64 :offset-assert 120) + (start-time time-frame :offset-assert 120) (turn-anim-targ float :offset-assert 128) (turn-anim-frame float :offset-assert 132) (turn-anim-vel float :offset-assert 136) @@ -30744,7 +30745,7 @@ (pos-u float :offset-assert 232) (water-entity entity-actor :offset-assert 236) (splash-counter int32 :offset-assert 240) - (start-splash-time uint64 :offset-assert 248) + (start-splash-time time-frame :offset-assert 248) (part2 sparticle-launch-control :offset-assert 256) ; these arent basics (part3 sparticle-launch-control :offset-assert 260) ; these arent basics (part4 sparticle-launch-control :offset-assert 264) ; these arent basics @@ -30779,9 +30780,9 @@ (plat-mask uint32 :offset-assert 184) (plat-id-dir int32 :offset-assert 188) (wiggled? symbol :offset-assert 192) - (timeout int64 :offset-assert 200) - (last-plat-activated-time int64 :offset-assert 208) - (delay-til-wiggle int64 :offset-assert 216) + (timeout time-frame :offset-assert 200) + (last-plat-activated-time time-frame :offset-assert 208) + (delay-til-wiggle time-frame :offset-assert 216) (ticker ticky :inline :offset-assert 224) ) :method-count-assert 20 @@ -31336,9 +31337,9 @@ ) (deftype sunken-pipegame-prize (structure) - ((puzzle-delay int64 :offset-assert 0) - (pipe-travel-time-to-far int64 :offset-assert 8) - (pipe-travel-time-to-jar int64 :offset-assert 16) + ((puzzle-delay time-frame :offset-assert 0) + (pipe-travel-time-to-far time-frame :offset-assert 8) + (pipe-travel-time-to-jar time-frame :offset-assert 16) (actor-handle handle :offset-assert 24) (jar-pos vector :inline :offset-assert 32) (far-pos vector :inline :offset-assert 48) @@ -31415,10 +31416,10 @@ (speed-u float :offset-assert 196) (spin-vel float :offset-assert 200) (travel-speed float :offset-assert 204) - (reaction-delay uint64 :offset-assert 208) - (start-spin-time uint64 :offset-assert 216) - (slow-down uint64 :offset-assert 224) - (hit-player-time uint64 :offset-assert 232) + (reaction-delay time-frame :offset-assert 208) + (start-spin-time time-frame :offset-assert 216) + (slow-down time-frame :offset-assert 224) + (hit-player-time time-frame :offset-assert 232) (neck joint-mod :offset-assert 240) ) :method-count-assert 21 @@ -31620,11 +31621,11 @@ (look-mean? symbol :offset-assert 232) (cprims-type uint64 :offset-assert 240) (neck joint-mod :offset-assert 248) - (hit-player-time uint64 :offset-assert 256) - (reaction-delay uint64 :offset-assert 264) - (picked-point-time uint64 :offset-assert 272) - (pick-new-point-delay uint64 :offset-assert 280) - (last-on-screen-time uint64 :offset-assert 288) + (hit-player-time time-frame :offset-assert 256) + (reaction-delay time-frame :offset-assert 264) + (picked-point-time time-frame :offset-assert 272) + (pick-new-point-delay time-frame :offset-assert 280) + (last-on-screen-time time-frame :offset-assert 288) (buddy process-drawable :offset-assert 296) ;; what is this, its very likely wrong! (nice-look lod-set :inline :offset-assert 300) (mean-look lod-set :inline :offset-assert 336) @@ -31696,7 +31697,7 @@ (path-normal-speed-lo float :offset-assert 192) (path-normal-speed-hi float :offset-assert 196) (path-dir float :offset-assert 200) - (change-path-dir-time uint64 :offset-assert 208) + (change-path-dir-time time-frame :offset-assert 208) (local-path-offset vector :inline :offset-assert 224) (targ-local-path-offset vector :inline :offset-assert 240) (local-path-offset-dir vector :inline :offset-assert 256) @@ -31911,8 +31912,8 @@ (define-extern gorge-trans (function none)) (define-extern gorge-start-draw-time (function symbol symbol none :behavior gorge-start)) (define-extern gorge-behind (function gorge symbol)) -(define-extern seconds->race-time (function race-time int int)) -(define-extern race-time-read (function race-time int task-control int symbol)) +(define-extern seconds->race-time (function race-time time-frame int)) +(define-extern race-time-read (function race-time int task-control time-frame symbol)) (define-extern rolling-start-init-by-other (function vector float none :behavior rolling-start)) (define-extern gorge-finish-init-by-other (function vector vector float none :behavior gorge-finish)) (define-extern gorge-abort-init-by-other (function vector vector float none :behavior gorge-abort)) @@ -31974,7 +31975,7 @@ ) (deftype fleeing-nav-enemy (nav-enemy) - ((last-reflection-time uint64 :offset-assert 400) + ((last-reflection-time time-frame :offset-assert 400) (run-blend-interp float :offset-assert 408) (desired-travel vector :inline :offset-assert 416) (saved-travel vector :inline :offset-assert 432) @@ -32058,14 +32059,14 @@ (tangent vector :inline :offset-assert 208) (run-blend-interp float :offset-assert 224) (near-timer int32 :offset-assert 228) - (far-time uint64 :offset-assert 232) + (far-time time-frame :offset-assert 232) (y-offset float :offset-assert 240) (y-offset-desired float :offset-assert 244) (y-vel float :offset-assert 248) (water-height float :offset-assert 252) - (timeout uint64 :offset-assert 256) - (last-ambient-time uint64 :offset-assert 264) - (time-to-next-ambient uint64 :offset-assert 272) + (timeout time-frame :offset-assert 256) + (last-ambient-time time-frame :offset-assert 264) + (time-to-next-ambient time-frame :offset-assert 272) ) :method-count-assert 20 :size-assert #x118 @@ -32112,7 +32113,7 @@ (face-vec vector :inline :offset-assert 192) (part-track handle :offset-assert 208) (keep-part-track-alive symbol :offset-assert 216) - (timeout uint64 :offset-assert 224) + (timeout time-frame :offset-assert 224) (alt-actor entity-actor :offset-assert 232) (alt-task uint8 :offset-assert 236) (cyl cylinder-flat :inline :offset-assert 240) @@ -32268,7 +32269,7 @@ (trajectory trajectory :inline :offset-assert 176) (src-pos vector :inline :offset-assert 224) (dest-pos vector :inline :offset-assert 240) - (start-time int64 :offset-assert 256) + (start-time time-frame :offset-assert 256) (tumble-quat quaternion :inline :offset-assert 272) (blast-radius float :offset-assert 288) (pickup-type pickup-type :offset-assert 292) @@ -32286,7 +32287,7 @@ (deftype ogreboss-missile-init-data (structure) ((src vector :offset-assert 0) (dest vector :offset-assert 4) - (duration int64 :offset-assert 8) + (duration time-frame :offset-assert 8) (xz-speed float :offset-assert 16) (blast-radius float :offset-assert 20) (pickup-type pickup-type :offset-assert 24) @@ -32318,7 +32319,7 @@ (max-hit-count int8 :offset-assert 398) (roll-boulder int8 :offset-assert 399) (try-count uint8 :offset-assert 400) - (hit-time int64 :offset-assert 408) + (hit-time time-frame :offset-assert 408) (grow-time float :offset-assert 416) (lava entity-actor :offset-assert 420) (vulnerable symbol :offset-assert 424) @@ -32349,20 +32350,20 @@ (define-extern ogreboss-get-targets (function none :behavior ogreboss)) (define-extern ogreboss-reset-camera (function none)) (define-extern ogreboss-trigger-steps (function symbol :behavior ogreboss)) -(define-extern ogreboss-submerge (function int float none :behavior ogreboss)) +(define-extern ogreboss-submerge (function time-frame float none :behavior ogreboss)) (define-extern ogreboss-post (function none :behavior ogreboss)) (define-extern ogreboss-spawn-super-boulder (function none :behavior ogreboss)) (define-extern ogreboss-update-shuffling (function none :behavior ogreboss)) (define-extern ogreboss-player-inside-range? (function float symbol :behavior ogreboss)) (define-extern ogreboss-super-boulder-init-by-other (function vector float entity none :behavior ogreboss-super-boulder)) (define-extern ogreboss-set-stage2-camera (function none)) -(define-extern ogreboss-move-far (function int float none :behavior ogreboss)) +(define-extern ogreboss-move-far (function time-frame float none :behavior ogreboss)) (define-extern ogreboss-roll-boulder (function none :behavior ogreboss)) (define-extern ogreboss-update-super-boulder (function none :behavior ogreboss)) (define-extern ogreboss-blend-hit-anim (function none :behavior ogreboss)) (define-extern ogreboss-bounce-boulder-init-by-other (function int entity none :behavior ogreboss-bounce-boulder)) (define-extern ogreboss-set-stage1-camera (function none)) -(define-extern ogreboss-move-near (function basic float none :behavior ogreboss)) +(define-extern ogreboss-move-near (function time-frame float none :behavior ogreboss)) (define-extern ogreboss-shoot-boulder (function int none :behavior ogreboss)) (define-extern ogreboss-inc-try-count (function none :behavior ogreboss)) (define-extern ogreboss-emerge (function float none :behavior ogreboss)) @@ -32416,7 +32417,7 @@ ((anchor-point vector :inline :offset-assert 736) (idle-y-offset float :offset-assert 752) (float-y-offset float :offset-assert 756) - (delay uint64 :offset-assert 760) + (delay time-frame :offset-assert 760) (active symbol :offset-assert 768) (triggered entity-actor :offset-assert 772) ) @@ -32603,11 +32604,11 @@ (y-offset float :offset-assert 212) (y-offset-desired float :offset-assert 216) (y-vel float :offset-assert 220) - (last-look-time int64 :offset-assert 224) - (time-to-next-look int64 :offset-assert 232) + (last-look-time time-frame :offset-assert 224) + (time-to-next-look time-frame :offset-assert 232) (take-off symbol :offset-assert 240) (race-seconds float :offset-assert 244) - (race-start-time int64 :offset-assert 248) + (race-start-time time-frame :offset-assert 248) (rank int32 :offset-assert 256) (alt-actor entity-actor :offset-assert 260) (alt-trans vector :offset-assert 264) @@ -32873,8 +32874,8 @@ ((root-override collide-shape :score 100 :offset 112) (spider-count int32 :offset-assert 176) (alt-actors (array entity-actor) :offset-assert 180) - (spawn-delay uint64 :offset-assert 184) - (last-spawn-time uint64 :offset-assert 192) + (spawn-delay time-frame :offset-assert 184) + (last-spawn-time time-frame :offset-assert 192) (debug-targ-pos vector :inline :offset-assert 208) ) :method-count-assert 21 @@ -32891,7 +32892,7 @@ ) (deftype spider-vent (process-drawable) - ((last-spawn-time uint64 :offset-assert 176) + ((last-spawn-time time-frame :offset-assert 176) ) :method-count-assert 20 :size-assert #xb8 @@ -33023,7 +33024,7 @@ (charge-angle float :offset-assert 440) (ground-y float :offset-assert 444) (cprims-type uint64 :offset-assert 448) - (next-skid-sound-time uint64 :offset-assert 456) + (next-skid-sound-time time-frame :offset-assert 456) (starting-pos vector :inline :offset-assert 464) (target-pt vector :inline :offset-assert 480) ) @@ -33079,8 +33080,8 @@ ) (deftype snow-ball-junction (structure) - ((enter-time int64 :offset-assert 0) - (exit-time int64 :offset-assert 8) + ((enter-time time-frame :offset-assert 0) + (exit-time time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -33108,8 +33109,8 @@ (delay-til-bounce int32 :offset-assert 204) (rolling-sound-id sound-id :offset-assert 208) (rolling-sound-enabled? symbol :offset-assert 212) - (last-bounce-time int64 :offset-assert 216) - (hit-player-time int64 :offset-assert 224) + (last-bounce-time time-frame :offset-assert 216) + (hit-player-time time-frame :offset-assert 224) (path-info snow-ball-path-info :inline :offset-assert 240) (junctions snow-ball-junction 4 :inline :offset-assert 272) ) @@ -33128,7 +33129,7 @@ (deftype snow-ball (process) ((child-override (pointer snow-ball-roller) :score 100 :offset 20) - (state-time int64 :offset-assert 112) + (state-time time-frame :offset-assert 112) (last-path-picked int32 :offset-assert 120) (same-path-picked-count int32 :offset-assert 124) (delay-til-next int32 :offset-assert 128) @@ -33354,8 +33355,8 @@ (deftype snow-button (process-drawable) ((root-override collide-shape-moving :score 100 :offset 112) (wiggled? symbol :offset-assert 176) - (timeout int64 :offset-assert 184) - (delay-til-wiggle int64 :offset-assert 192) + (timeout time-frame :offset-assert 184) + (delay-til-wiggle time-frame :offset-assert 192) (prev-button entity-actor :offset-assert 200) (ticker ticky :inline :offset-assert 208) ) @@ -33414,7 +33415,7 @@ (base-shove-ry float :offset-assert 180) (max-shove-diff-ry float :offset-assert 184) (part2 sparticle-launch-control :offset-assert 188) - (last-shoved-player-time uint64 :offset-assert 192) + (last-shoved-player-time time-frame :offset-assert 192) ) :method-count-assert 22 :size-assert #xc8 @@ -33485,7 +33486,7 @@ (launched? symbol :offset-assert 416) (growth float :offset-assert 420) (charge-sound-id sound-id :offset-assert 424) - (launch-time uint64 :offset-assert 432) + (launch-time time-frame :offset-assert 432) (facing-dir vector :inline :offset-assert 448) ) :method-count-assert 29 @@ -33508,8 +33509,8 @@ (proj-stoked basic :offset-assert 424) (proj-status uint64 :offset-assert 432) (part2 sparticle-launch-control :offset-assert 440) - (proj-last-thrown-time uint64 :offset-assert 448) - (nav-enemy-patrol-timeout uint64 :offset-assert 456) + (proj-last-thrown-time time-frame :offset-assert 448) + (nav-enemy-patrol-timeout time-frame :offset-assert 456) (proj-launch-vec vector :inline :offset-assert 464) (local-throw-point vector :inline :offset-assert 480) (shield-jmod joint-mod-set-local :offset-assert 496) @@ -33689,7 +33690,7 @@ (deftype darkecobarrel-base (process-drawable) ((root-override collide-shape-moving :score 100 :offset 112) (speed float :offset-assert 176) - (sync uint64 :offset-assert 184) + (sync time-frame :offset-assert 184) ) :method-count-assert 20 :size-assert #xc0 @@ -33698,7 +33699,7 @@ ) (deftype darkecobarrel-mover (darkecobarrel-base) - ((start-time uint64 :offset-assert 192) + ((start-time time-frame :offset-assert 192) (hits int32 :offset-assert 200) (leak darkecobarrel-leak 1 :inline :offset-assert 208) (y-offset bouncing-float :inline :offset-assert 240) @@ -33795,12 +33796,12 @@ ;; - Functions (define-extern darkecobarrel-base-init (function res-lump path-control-flag :behavior darkecobarrel-base)) -(define-extern darkecobarrel-base-time (function int :behavior darkecobarrel-base)) +(define-extern darkecobarrel-base-time (function time-frame :behavior darkecobarrel-base)) (define-extern darkecobarrel-cycle-time (function int :behavior darkecobarrel)) ;; likely to darkecobarrels (define-extern darkecobarrel-advance-curspawn (function none :behavior darkecobarrel)) -(define-extern darkecobarrel-mover-init-by-other (function res-lump float uint uint none :behavior darkecobarrel-mover)) +(define-extern darkecobarrel-mover-init-by-other (function res-lump float time-frame time-frame none :behavior darkecobarrel-mover)) (define-extern darkecobarrel-base-done? (function float symbol :behavior darkecobarrel-base)) -(define-extern darkecobarrel-base-pos (function int float :behavior darkecobarrel-base)) +(define-extern darkecobarrel-base-pos (function time-frame float :behavior darkecobarrel-base)) (define-extern darkecobarrel-mover-pos (function none :behavior darkecobarrel-mover)) ;; - Unknowns diff --git a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc index 145d1c8cd9..544c060ef3 100644 --- a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc @@ -886,7 +886,7 @@ ], "target2": [ - [11, "(function vector int float symbol :behavior target)"], + [11, "(function vector time-frame float symbol :behavior target)"], [99, "(function symbol)"] ], diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index 97310f7b3c..7a48eab9aa 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -498,7 +498,8 @@ "(method 55 ram-boss)": [5], "(method 60 ice-cube)": [8], "(anon-function 2 snow-ball)": [22], - "draw-bones-merc": [1, 3, 5, 7, 8, 10, 11, 12, 13] + "draw-bones-merc": [1, 3, 5, 7, 8, 10, 11, 12, 13], + "(anon-function 48 lavatube-energy)": [13] }, // Sometimes the game might use format strings that are fetched dynamically, diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index 0138fe96ac..fb345acd7e 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -556,7 +556,10 @@ ["L323", "vector2h"] ], - "hint-control": [["L45", "(array task-hint-control-group)"]], + "hint-control": [ + ["L45", "(array task-hint-control-group)"], + ["L100", "(array level-hint-control)"] + ], "cam-master": [ ["L356", "vector"], diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 6ea971a1be..8b2e465569 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -1508,7 +1508,7 @@ ], "(code cam-endlessfall)": [ - [16, "matrix"], + [16, "cam-vector-seeker"], [80, "vector"], [96, "vector"] ], @@ -1551,7 +1551,7 @@ [208, "vector"], [224, "vector"], [240, "vector"], - [256, "vector"] + [256, "matrix"] ], "cam-string-joystick": [ @@ -6186,7 +6186,7 @@ [16, "event-message-block"], [96, "vector"], [112, "vector"], - [128, "vector"], + [128, "collide-tri-result"], [224, "vector"] ], @@ -6400,6 +6400,10 @@ [16, "event-message-block"] ], + "(trans energydoor-opened)": [ + [16, "event-message-block"] + ], + "snow-bunny-default-event-handler": [ [16, "event-message-block"] ], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 351b2159eb..82b2ad75b1 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1503,11 +1503,7 @@ ], "update-mood-village3": [ - [[236, 245], "s0", "(array float)"], - [245, "s0", "(array int8)"], - [[246, 297], "s0", "(array float)"], - [[297, 309], "s0", "(array uint8)"], - [[309, 314], "s0", "matrix"] // TODO - there is no way this is correct lol + [[245, 311], "s0", "village3-states"] ], "update-mood-citadel": [ @@ -1541,8 +1537,15 @@ ], "update-mood-snow": [ - [93, "s5", "vector"], - [110, "s5", "vector"] + [[30, 111], "s5", "snow-states"] + ], + + "update-mood-ogre": [ + [[53, 145], "s4", "ogre-states"] + ], + + "update-mood-finalboss": [ + [[40, 348], "s4", "finalboss-states"] ], "ocean-trans-add-upload-table": [ @@ -1670,8 +1673,6 @@ "(code teetertotter-bend)": [[10, "v1", "art-joint-anim"]], - "misty-camera-view": [[25, "v1", "handle"]], - "(method 11 silostep)": [[100, "v1", "art-joint-anim"]], "(enter plat-button-pressed sunken-elevator)": [ @@ -6425,7 +6426,7 @@ ], "ram-boss-on-ground-event-handler": [ - [260, "v1", "ram-boss"] + [260, "v1", "ram-boss-proj"] ], "(method 52 ram-boss)": [ @@ -7919,6 +7920,14 @@ [65, "a1", "(pointer int32)"] ], + "update-mood-flames": [ + [[6, 88], "s5", "flames-state"] + ], + + "update-mood-lava": [ + [[4, 81], "s4", "lava-state"] + ], + "(method 27 ropebridge)": [ [101, "a0", "(inline-array vector)"], [102, "a0", "(inline-array vector)"], diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index 673e535040..f7e4b8e92d 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -3986,5 +3986,41 @@ } }, + "update-mood-flames": { + "vars": { + "s5-0": ["s5-0", "flames-state"] + } + }, + + "update-mood-lava": { + "vars": { + "s4-0": ["s4-0", "lava-state"] + } + }, + + "update-mood-snow": { + "vars": { + "s5-1": ["s5-1", "snow-states"] + } + }, + + "update-mood-village3": { + "vars": { + "s0-2": ["s0-2", "village3-states"] + } + }, + + "update-mood-ogre": { + "vars": { + "s4-1": ["s4-1", "ogre-states"] + } + }, + + "update-mood-finalboss": { + "vars": { + "s4-0": ["s4-0", "finalboss-states"] + } + }, + "aaaaaaaaaaaaaaaaaaaaaaa": {} } diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index b93dbcdd35..94812ba011 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -6,6 +6,7 @@ #include "common/goos/PrettyPrinter.h" #include "common/util/math_util.h" #include "common/log/log.h" +#include "common/util/print_float.h" #include "decompiler/ObjectFile/LinkedObjectFile.h" #include "decompiler/IR2/Form.h" #include "decompiler/analysis/final_output.h" @@ -1056,7 +1057,7 @@ goos::Object decompile_value(const TypeSpec& type, } } return pretty_print::to_symbol(fmt::format("(static-sound-name \"{}\")", name)); - } else { + } else if (as_bitfield->get_name() != "time-frame") { // time-frame has a special case below ASSERT((int)bytes.size() == as_bitfield->get_load_size()); ASSERT(bytes.size() <= 8); u64 value = 0; @@ -1104,7 +1105,7 @@ goos::Object decompile_value(const TypeSpec& type, } else { return pretty_print::to_symbol(fmt::format("{}", value)); } - } else if (type == TypeSpec("seconds")) { + } else if (type == TypeSpec("seconds") || type == TypeSpec("time-frame")) { ASSERT(bytes.size() == 8); s64 value; memcpy(&value, bytes.data(), 8); @@ -1116,7 +1117,7 @@ goos::Object decompile_value(const TypeSpec& type, } double seconds = (double)value / TICKS_PER_SECOND; if (seconds * TICKS_PER_SECOND == value) { - return pretty_print::build_list("seconds", pretty_print::float_representation(seconds)); + return pretty_print::to_symbol(fmt::format("(seconds {})", float_to_string(seconds, false))); } return pretty_print::to_symbol(fmt::format("#x{:x}", value)); } else if (ts.tc(TypeSpec("uint64"), type)) { @@ -1143,7 +1144,7 @@ goos::Object decompile_value(const TypeSpec& type, return rep; // return pretty_print::build_list("the-as", "meters", rep); } else { - return pretty_print::build_list("meters", rep); + return pretty_print::to_symbol(fmt::format("(meters {})", meters_to_string(value))); } } else if (type == TypeSpec("degrees")) { ASSERT(bytes.size() == 4); diff --git a/goal_src/engine/ambient/ambient.gc b/goal_src/engine/ambient/ambient.gc index cbae1e044d..7fbba76bf1 100644 --- a/goal_src/engine/ambient/ambient.gc +++ b/goal_src/engine/ambient/ambient.gc @@ -223,7 +223,10 @@ (defun can-grab-display? ((arg0 process)) (let ((v1-2 (handle->process (-> *game-info* display-text-handle)))) - (when (and (or (not v1-2) (= v1-2 arg0) (>= (- (-> *display* base-frame-counter) (-> *game-info* display-text-time)) 30)) + (when (and (or (not v1-2) + (= v1-2 arg0) + (>= (- (-> *display* base-frame-counter) (-> *game-info* display-text-time)) (seconds 0.1)) + ) (and *target* (!= (-> *target* next-state name) 'target-look-around) (zero? (logand (-> *target* state-flags) #x8008)) @@ -399,7 +402,7 @@ ) (defmethod appeared-for-long-enough? level-hint ((obj level-hint)) - (and (!= (-> obj next-state name) 'level-hint-sidekick) (< 1500 (-> obj total-time))) + (and (!= (-> obj next-state name) 'level-hint-sidekick) (< (seconds 5) (-> obj total-time))) ) (defstate level-hint-normal (level-hint) @@ -433,7 +436,7 @@ ) ) (else - (while (>= 2400 (-> self total-time)) + (while (>= (seconds 8) (-> self total-time)) (hide-bottom-hud) (suspend) (cond @@ -450,7 +453,7 @@ ) (else (+! (-> self total-off-time) (- (-> *display* base-frame-counter) (-> self last-time))) - (if (or (< 1800 (-> self total-time)) (< 3000 (-> self total-off-time))) + (if (or (< (seconds 6) (-> self total-time)) (< (seconds 10) (-> self total-off-time))) (go level-hint-exit) ) ) @@ -521,7 +524,7 @@ (let ((s5-2 (s5-1 (s4-1 *temp-string*) (new-sound-id) 1024 0 0 1 #t))) (set! (-> self sound-id) s5-2) (let ((s4-3 (-> *display* base-frame-counter))) - (while (and (!= (current-str-id) s5-2) (< (- (-> *display* base-frame-counter) s4-3) 1500)) + (while (and (!= (current-str-id) s5-2) (< (- (-> *display* base-frame-counter) s4-3) (seconds 5))) (suspend) ) ) @@ -587,7 +590,7 @@ ) ) (let ((s5-2 (-> *display* base-frame-counter))) - (while (and (!= (current-str-id) (-> self sound-id)) (< (- (-> *display* base-frame-counter) s5-2) 1500)) + (while (and (!= (current-str-id) (-> self sound-id)) (< (- (-> *display* base-frame-counter) s5-2) (seconds 5))) (suspend) ) ) @@ -617,7 +620,7 @@ (behavior ((arg0 string) (arg1 string)) (clear-pending-settings-from-process *setting-control* self 'hint) (let ((s4-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s4-0) 300) + (until (>= (- (-> *display* base-frame-counter) s4-0) (seconds 1)) (when (and *debug-segment* (not (paused?)) (not (str-is-playing?)) (bottom-hud-hidden?)) (let ((s3-0 (new 'stack 'font-context *font-default-matrix* 56 160 0.0 (font-color default) (font-flags shadow kerning)) @@ -729,7 +732,7 @@ (let* ((s5-0 (-> arg0 ambient)) (s4-0 (-> s5-0 ambient-data user-uint64 0)) ) - (when (>= (-> *display* base-frame-counter) (the-as int s4-0)) + (when (>= (-> *display* base-frame-counter) (the-as time-frame s4-0)) (let ((v1-5 (res-lump-data s5-0 'cycle-speed pointer))) (set! (-> s5-0 ambient-data user-uint64 0) (the-as uint (+ (-> *display* base-frame-counter) @@ -824,7 +827,7 @@ ) (let ((s3-0 (-> ((method-of-type res-lump lookup-tag-idx) s4-0 'vol 'exact 0.0) lo))) (when (>= (the-as int s3-0) 0) - (let ((s2-0 (the-as uint s3-0)) + (let ((s2-0 (the-as int s3-0)) (s1-0 (-> s4-0 tag s3-0)) ) 0 @@ -867,7 +870,7 @@ ) (let ((s3-0 (-> ((method-of-type res-lump lookup-tag-idx) s4-0 'vol 'exact 0.0) lo))) (when (>= (the-as int s3-0) 0) - (let ((s2-0 (the-as uint s3-0)) + (let ((s2-0 (the-as int s3-0)) (s1-0 (-> s4-0 tag s3-0)) ) 0 @@ -911,7 +914,7 @@ ) (let ((s3-0 (-> ((method-of-type res-lump lookup-tag-idx) s4-0 'vol 'exact 0.0) lo))) (when (>= (the-as int s3-0) 0) - (let ((s2-0 (the-as uint s3-0)) + (let ((s2-0 (the-as int s3-0)) (s1-0 (-> s4-0 tag s3-0)) ) 0 @@ -1018,7 +1021,7 @@ (set! (-> obj ambient-data user-float 2) (the-as float 0)) (let ((s5-1 (-> ((method-of-type res-lump lookup-tag-idx) obj 'effect-name 'exact 0.0) lo))) (when (>= (the-as int s5-1) 0) - (let ((s4-0 (the-as uint s5-1)) + (let ((s4-0 (the-as int s5-1)) (v1-14 (-> obj tag s5-1)) ) 0 diff --git a/goal_src/engine/ambient/mood.gc b/goal_src/engine/ambient/mood.gc index 6af48edfcb..5752fa9fc5 100644 --- a/goal_src/engine/ambient/mood.gc +++ b/goal_src/engine/ambient/mood.gc @@ -5,66 +5,61 @@ ;; name in dgo: mood ;; dgos: GAME, ENGINE -;; definition for function clear-mood-times +;; DECOMP BEGINS + (defun clear-mood-times ((arg0 mood-context)) (dotimes (v1-0 8) - (set! (-> arg0 times v1-0 w) 0.0) - ) + (set! (-> arg0 times v1-0 w) 0.0) + ) #f ) -;; definition for function update-light-kit -;; Used lq/sq (defun update-light-kit ((arg0 light-group) (arg1 light) (arg2 float)) (set! (-> arg0 ambi color quad) (-> arg1 color quad)) (let ((f0-1 (* (-> arg1 levels x) arg2))) - (set! (-> arg0 ambi levels x) f0-1) - f0-1 - ) + (set! (-> arg0 ambi levels x) f0-1) + f0-1 + ) ) -;; definition for function set-target-light-index (defun set-target-light-index ((arg0 int)) (when *target* - (set! (-> *target* draw light-index) (the-as uint arg0)) - (when (-> *target* sidekick) - (set! (-> *target* sidekick 0 draw light-index) (the-as uint arg0)) - arg0 + (set! (-> *target* draw light-index) (the-as uint arg0)) + (when (-> *target* sidekick) + (set! (-> *target* sidekick 0 draw light-index) (the-as uint arg0)) + arg0 + ) ) - ) ) -;; definition for function update-mood-itimes -;; INFO: Return type mismatch int vs none. ;; WARN: Function may read a register that is not set: f31 -;; Used lq/sq (defun update-mood-itimes ((arg0 mood-context)) (local-vars - (r0-0 int) - (r0-1 int) - (r0-2 int) - (v1-0 uint128) - (v1-1 uint128) - (v1-2 uint128) - (v1-3 uint128) - (a1-0 uint128) - (a1-1 uint128) - (a1-2 uint128) - (a1-3 uint128) - (a2-0 uint128) - (a2-1 uint128) - (a3-0 uint128) - (a3-1 uint128) - (t0-0 uint128) - (t0-1 uint128) - (t1-0 uint128) - (t1-1 uint128) - (t2-0 uint128) - (t2-1 uint128) - (t3-0 uint128) - (t3-1 uint128) - (f31-0 none) - ) + (r0-0 int) + (r0-1 int) + (r0-2 int) + (v1-0 uint128) + (v1-1 uint128) + (v1-2 uint128) + (v1-3 uint128) + (a1-0 uint128) + (a1-1 uint128) + (a1-2 uint128) + (a1-3 uint128) + (a2-0 uint128) + (a2-1 uint128) + (a3-0 uint128) + (a3-1 uint128) + (t0-0 uint128) + (t0-1 uint128) + (t1-0 uint128) + (t1-1 uint128) + (t2-0 uint128) + (t2-1 uint128) + (t3-0 uint128) + (t3-1 uint128) + (f31-0 none) + ) (rlet ((vf1 :class vf) (vf2 :class vf) (vf3 :class vf) @@ -74,124 +69,101 @@ (vf7 :class vf) (vf8 :class vf) ) - (nop!) - (nop!) - (.lvf vf1 (&-> arg0 times 0 quad)) - (nop!) - (.lvf vf2 (&-> arg0 times 1 quad)) - (.mul.w.vf vf1 vf1 vf1 :mask #b111) - (.lvf vf3 (&-> arg0 times 2 quad)) - (.mul.w.vf vf2 vf2 vf2 :mask #b111) - (.lvf vf4 (&-> arg0 times 3 quad)) - (.mul.w.vf vf3 vf3 vf3 :mask #b111) - (.lvf vf5 (&-> arg0 times 4 quad)) - (.mul.w.vf vf4 vf4 vf4 :mask #b111) - (.lvf vf6 (&-> arg0 times 5 quad)) - (.mul.w.vf vf5 vf5 vf5 :mask #b111) - (.lvf vf7 (&-> arg0 times 6 quad)) - (.mul.w.vf vf6 vf6 vf6 :mask #b111) - (.lvf vf8 (&-> arg0 times 7 quad)) - (.mul.w.vf vf7 vf7 vf7 :mask #b111) - (nop!) - (.mul.w.vf vf8 vf8 vf8 :mask #b111) - (nop!) - (vftoi12.xyzw vf1 vf1) - (nop!) - (vftoi12.xyzw vf2 vf2) - (nop!) - (vftoi12.xyzw vf3 vf3) - (nop!) - (vftoi12.xyzw vf4 vf4) - (nop!) - (vftoi12.xyzw vf5 vf5) - (nop!) - (vftoi12.xyzw vf6 vf6) - (nop!) - (vftoi12.xyzw vf7 vf7) - (nop!) - (vftoi12.xyzw vf8 vf8) - (nop!) - (.mov v1-0 vf1) - (nop!) - (.mov a1-0 vf2) - (nop!) - (.mov a2-0 vf3) - (.pw.sra v1-1 v1-0 6) - (.mov a3-0 vf4) - (.pw.sra a1-1 a1-0 6) - (.mov t0-0 vf5) - (.pw.sra a2-1 a2-0 6) - (.mov t1-0 vf6) - (.pw.sra a3-1 a3-0 6) - (.mov t2-0 vf7) - (.pw.sra t0-1 t0-0 6) - (.mov t3-0 vf8) - (.pw.sra t1-1 t1-0 6) - (.pw.sra t2-1 t2-0 6) - (.mov r0-0 f31-0) - (.pw.sra t3-1 t3-0 6) - (.mov r0-1 f31-0) - (.ppach v1-2 a1-1 v1-1) - (.mov r0-2 f31-0) - (.ppach a1-2 a3-1 a2-1) - (set! (-> arg0 itimes 0 quad) v1-2) - (.ppach v1-3 t1-1 t0-1) - (set! (-> arg0 itimes 1 quad) a1-2) - (.ppach a1-3 t3-1 t2-1) - (set! (-> arg0 itimes 2 quad) v1-3) - (nop!) - (set! (-> arg0 itimes 3 quad) a1-3) - 0 - (none) - ) + (nop!) + (nop!) + (.lvf vf1 (&-> arg0 times 0 quad)) + (nop!) + (.lvf vf2 (&-> arg0 times 1 quad)) + (.mul.w.vf vf1 vf1 vf1 :mask #b111) + (.lvf vf3 (&-> arg0 times 2 quad)) + (.mul.w.vf vf2 vf2 vf2 :mask #b111) + (.lvf vf4 (&-> arg0 times 3 quad)) + (.mul.w.vf vf3 vf3 vf3 :mask #b111) + (.lvf vf5 (&-> arg0 times 4 quad)) + (.mul.w.vf vf4 vf4 vf4 :mask #b111) + (.lvf vf6 (&-> arg0 times 5 quad)) + (.mul.w.vf vf5 vf5 vf5 :mask #b111) + (.lvf vf7 (&-> arg0 times 6 quad)) + (.mul.w.vf vf6 vf6 vf6 :mask #b111) + (.lvf vf8 (&-> arg0 times 7 quad)) + (.mul.w.vf vf7 vf7 vf7 :mask #b111) + (nop!) + (.mul.w.vf vf8 vf8 vf8 :mask #b111) + (nop!) + (vftoi12.xyzw vf1 vf1) + (nop!) + (vftoi12.xyzw vf2 vf2) + (nop!) + (vftoi12.xyzw vf3 vf3) + (nop!) + (vftoi12.xyzw vf4 vf4) + (nop!) + (vftoi12.xyzw vf5 vf5) + (nop!) + (vftoi12.xyzw vf6 vf6) + (nop!) + (vftoi12.xyzw vf7 vf7) + (nop!) + (vftoi12.xyzw vf8 vf8) + (nop!) + (.mov v1-0 vf1) + (nop!) + (.mov a1-0 vf2) + (nop!) + (.mov a2-0 vf3) + (.pw.sra v1-1 v1-0 6) + (.mov a3-0 vf4) + (.pw.sra a1-1 a1-0 6) + (.mov t0-0 vf5) + (.pw.sra a2-1 a2-0 6) + (.mov t1-0 vf6) + (.pw.sra a3-1 a3-0 6) + (.mov t2-0 vf7) + (.pw.sra t0-1 t0-0 6) + (.mov t3-0 vf8) + (.pw.sra t1-1 t1-0 6) + (.pw.sra t2-1 t2-0 6) + (.mov r0-0 f31-0) + (.pw.sra t3-1 t3-0 6) + (.mov r0-1 f31-0) + (.ppach v1-2 a1-1 v1-1) + (.mov r0-2 f31-0) + (.ppach a1-2 a3-1 a2-1) + (set! (-> arg0 itimes 0 quad) v1-2) + (.ppach v1-3 t1-1 t0-1) + (set! (-> arg0 itimes 1 quad) a1-2) + (.ppach a1-3 t3-1 t2-1) + (set! (-> arg0 itimes 2 quad) v1-3) + (nop!) + (set! (-> arg0 itimes 3 quad) a1-3) + 0 + (none) + ) ) - - -;; definition for function update-mood-prt-color -;; Used lq/sq (defun update-mood-prt-color ((arg0 mood-context)) (let* ((v1-0 (-> arg0 light-group)) (s4-0 (-> v1-0 0 ambi color)) (s5-0 (new 'stack-no-clear 'vector)) ) - (vector4-lerp! - s5-0 - (-> v1-0 0 dir0 color) - (-> v1-0 0 dir1 color) - (-> v1-0 0 dir1 levels x) + (vector4-lerp! s5-0 (-> v1-0 0 dir0 color) (-> v1-0 0 dir1 color) (-> v1-0 0 dir1 levels x)) + (set! (-> arg0 current-prt-color x) (* 0.5 (+ (-> s4-0 x) (* 0.5 (+ (-> s4-0 x) (-> s5-0 x)))))) + (set! (-> arg0 current-prt-color y) (* 0.5 (+ (-> s4-0 y) (* 0.5 (+ (-> s4-0 y) (-> s5-0 y)))))) + (set! (-> arg0 current-prt-color z) (* 0.5 (+ (-> s4-0 z) (* 0.5 (+ (-> s4-0 z) (-> s5-0 z)))))) + (set! (-> arg0 current-prt-color w) (* 0.5 (+ (-> s4-0 w) (* 0.5 (+ (-> s4-0 w) (-> s5-0 w)))))) ) - (set! - (-> arg0 current-prt-color x) - (* 0.5 (+ (-> s4-0 x) (* 0.5 (+ (-> s4-0 x) (-> s5-0 x))))) - ) - (set! - (-> arg0 current-prt-color y) - (* 0.5 (+ (-> s4-0 y) (* 0.5 (+ (-> s4-0 y) (-> s5-0 y))))) - ) - (set! - (-> arg0 current-prt-color z) - (* 0.5 (+ (-> s4-0 z) (* 0.5 (+ (-> s4-0 z) (-> s5-0 z))))) - ) - (set! - (-> arg0 current-prt-color w) - (* 0.5 (+ (-> s4-0 w) (* 0.5 (+ (-> s4-0 w) (-> s5-0 w))))) - ) - ) (let ((v0-1 (-> arg0 current-shadow-color))) - (set! (-> v0-1 quad) (-> arg0 current-prt-color quad)) - v0-1 - ) + (set! (-> v0-1 quad) (-> arg0 current-prt-color quad)) + v0-1 + ) ) -;; definition for function update-mood-palette -;; Used lq/sq (defun update-mood-palette ((arg0 mood-context) (arg1 float) (arg2 int)) (let ((v1-0 (-> arg0 light-group))) - (set! (-> v1-0 0 dir0 levels x) 0.0) - (set! (-> v1-0 0 dir1 levels x) 0.0) - (set! (-> v1-0 0 dir2 levels x) 0.0) - ) + (set! (-> v1-0 0 dir0 levels x) 0.0) + (set! (-> v1-0 0 dir1 levels x) 0.0) + (set! (-> v1-0 0 dir2 levels x) 0.0) + ) 0 0 0.0 @@ -205,124 +177,71 @@ (s2-0 (-> v1-7 snapshot2)) (f30-0 (+ (* f1-3 (-> v1-7 morph-start)) (* f0-7 (-> v1-7 morph-end)))) ) - (cond - ((= s3-0 s2-0) - (let ((v1-12 (-> arg0 mood-lights-table data s3-0))) - (set! (-> arg0 times s3-0 w) 1.0) - (set! (-> arg0 current-prt-color quad) (-> v1-12 prt-color quad)) - (set! (-> s4-0 0 ambi color quad) (-> v1-12 amb-color quad)) - (set! (-> s4-0 0 ambi levels x) 1.0) - (set! (-> arg0 current-shadow quad) (-> v1-12 shadow quad)) - (let - ((f0-14 - (+ - (* 2.0 (-> v1-12 lgt-color x)) - (* 4.0 (-> v1-12 lgt-color y)) - (-> v1-12 lgt-color z) - ) + (cond + ((= s3-0 s2-0) + (let ((v1-12 (-> arg0 mood-lights-table data s3-0))) + (set! (-> arg0 times s3-0 w) 1.0) + (set! (-> arg0 current-prt-color quad) (-> v1-12 prt-color quad)) + (set! (-> s4-0 0 ambi color quad) (-> v1-12 amb-color quad)) + (set! (-> s4-0 0 ambi levels x) 1.0) + (set! (-> arg0 current-shadow quad) (-> v1-12 shadow quad)) + (let ((f0-14 (+ (* 2.0 (-> v1-12 lgt-color x)) (* 4.0 (-> v1-12 lgt-color y)) (-> v1-12 lgt-color z)))) + (set! (-> s4-0 0 dir0 direction quad) (-> v1-12 direction quad)) + (set! (-> s4-0 0 dir0 color quad) (-> v1-12 lgt-color quad)) + (set! (-> s4-0 0 dir0 levels x) 1.0) + (set! (-> s4-0 0 dir0 levels y) f0-14) + ) ) + (set! (-> *time-of-day-context* light-masks-0 arg2) (the-as uint (ash 1 s3-0))) + (set! (-> *time-of-day-context* light-masks-1 arg2) (the-as uint 0)) + (set! (-> *time-of-day-context* light-interp arg2) 0.0) + ) + (else + (let ((s0-0 (-> arg0 mood-lights-table data s3-0)) + (s1-0 (-> arg0 mood-lights-table data s2-0)) + ) + (let ((v1-29 (the int (+ 0.5 (* 64.0 f30-0))))) + (set! (-> arg0 times s3-0 w) (* 0.015625 (the float (- 64 v1-29)))) + (set! (-> arg0 times s2-0 w) (* 0.015625 (the float v1-29))) + ) + (vector4-lerp! (-> arg0 current-prt-color) (-> s0-0 prt-color) (-> s1-0 prt-color) f30-0) + (vector4-lerp! (-> s4-0 0 ambi color) (-> s0-0 amb-color) (-> s1-0 amb-color) f30-0) + (set! (-> s4-0 0 ambi levels x) 1.0) + (vector4-lerp! (-> arg0 current-shadow) (-> s0-0 shadow) (-> s1-0 shadow) f30-0) + (let ((f0-28 + (* (+ (* 2.0 (-> s0-0 lgt-color x)) (* 4.0 (-> s0-0 lgt-color y)) (-> s0-0 lgt-color z)) (- 1.0 f30-0)) + ) + (f1-26 (* (+ (* 2.0 (-> s1-0 lgt-color x)) (* 4.0 (-> s1-0 lgt-color y)) (-> s1-0 lgt-color z)) f30-0)) + ) + (set! (-> s4-0 0 dir0 direction quad) (-> s0-0 direction quad)) + (set! (-> s4-0 0 dir0 color quad) (-> s0-0 lgt-color quad)) + (set! (-> s4-0 0 dir0 levels x) (- 1.0 f30-0)) + (set! (-> s4-0 0 dir0 levels y) f0-28) + (set! (-> s4-0 0 dir1 direction quad) (-> s1-0 direction quad)) + (set! (-> s4-0 0 dir1 color quad) (-> s1-0 lgt-color quad)) + (set! (-> s4-0 0 dir1 levels x) f30-0) + (set! (-> s4-0 0 dir1 levels y) f1-26) + ) + ) + (set! (-> *time-of-day-context* light-masks-0 arg2) (the-as uint (ash 1 s3-0))) + (set! (-> *time-of-day-context* light-masks-1 arg2) (the-as uint (ash 1 s2-0))) + (set! (-> *time-of-day-context* light-interp arg2) f30-0) ) - (set! (-> s4-0 0 dir0 direction quad) (-> v1-12 direction quad)) - (set! (-> s4-0 0 dir0 color quad) (-> v1-12 lgt-color quad)) - (set! (-> s4-0 0 dir0 levels x) 1.0) - (set! (-> s4-0 0 dir0 levels y) f0-14) - ) ) - (set! - (-> *time-of-day-context* light-masks-0 arg2) - (the-as uint (ash 1 s3-0)) - ) - (set! (-> *time-of-day-context* light-masks-1 arg2) (the-as uint 0)) - (set! (-> *time-of-day-context* light-interp arg2) 0.0) - ) - (else - (let ((s0-0 (-> arg0 mood-lights-table data s3-0)) - (s1-0 (-> arg0 mood-lights-table data s2-0)) - ) - (let ((v1-29 (the int (+ 0.5 (* 64.0 f30-0))))) - (set! (-> arg0 times s3-0 w) (* 0.015625 (the float (- 64 v1-29)))) - (set! (-> arg0 times s2-0 w) (* 0.015625 (the float v1-29))) - ) - (vector4-lerp! - (-> arg0 current-prt-color) - (-> s0-0 prt-color) - (-> s1-0 prt-color) - f30-0 - ) - (vector4-lerp! - (-> s4-0 0 ambi color) - (-> s0-0 amb-color) - (-> s1-0 amb-color) - f30-0 - ) - (set! (-> s4-0 0 ambi levels x) 1.0) - (vector4-lerp! - (-> arg0 current-shadow) - (-> s0-0 shadow) - (-> s1-0 shadow) - f30-0 - ) - (let - ((f0-28 - (* - (+ - (* 2.0 (-> s0-0 lgt-color x)) - (* 4.0 (-> s0-0 lgt-color y)) - (-> s0-0 lgt-color z) - ) - (- 1.0 f30-0) - ) - ) - (f1-26 - (* - (+ - (* 2.0 (-> s1-0 lgt-color x)) - (* 4.0 (-> s1-0 lgt-color y)) - (-> s1-0 lgt-color z) - ) - f30-0 - ) - ) + (if (and (= (-> arg0 current-prt-color x) 0.0) + (= (-> arg0 current-prt-color y) 0.0) + (= (-> arg0 current-prt-color z) 0.0) + ) + (update-mood-prt-color arg0) ) - (set! (-> s4-0 0 dir0 direction quad) (-> s0-0 direction quad)) - (set! (-> s4-0 0 dir0 color quad) (-> s0-0 lgt-color quad)) - (set! (-> s4-0 0 dir0 levels x) (- 1.0 f30-0)) - (set! (-> s4-0 0 dir0 levels y) f0-28) - (set! (-> s4-0 0 dir1 direction quad) (-> s1-0 direction quad)) - (set! (-> s4-0 0 dir1 color quad) (-> s1-0 lgt-color quad)) - (set! (-> s4-0 0 dir1 levels x) f30-0) - (set! (-> s4-0 0 dir1 levels y) f1-26) - ) - ) - (set! - (-> *time-of-day-context* light-masks-0 arg2) - (the-as uint (ash 1 s3-0)) - ) - (set! - (-> *time-of-day-context* light-masks-1 arg2) - (the-as uint (ash 1 s2-0)) - ) - (set! (-> *time-of-day-context* light-interp arg2) f30-0) - ) + f30-0 ) - (if - (and - (= (-> arg0 current-prt-color x) 0.0) - (= (-> arg0 current-prt-color y) 0.0) - (= (-> arg0 current-prt-color z) 0.0) - ) - (update-mood-prt-color arg0) - ) - f30-0 - ) ) -;; definition for function update-mood-sky-texture -;; Used lq/sq (defun update-mood-sky-texture ((arg0 mood-context) (arg1 float)) (dotimes (v1-0 8) - (set! (-> arg0 sky-times v1-0) 0.0) - ) + (set! (-> arg0 sky-times v1-0) 0.0) + ) 0 0 0.0 @@ -335,53 +254,37 @@ (s4-0 (-> v1-9 snapshot2)) (f30-0 (+ (* f1-3 (-> v1-9 morph-start)) (* f0-5 (-> v1-9 morph-end)))) ) - (cond - ((= s5-0 s4-0) - (set! (-> arg0 sky-times s5-0) 1.0) - (set! - (-> arg0 current-sun sun-color quad) - (-> arg0 mood-sun-table data s5-0 sun-color quad) - ) - (let ((v0-0 (-> arg0 current-sun env-color))) - (set! - (-> v0-0 quad) - (-> - (the-as - (pointer uint128) - (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* s5-0 32)) + (cond + ((= s5-0 s4-0) + (set! (-> arg0 sky-times s5-0) 1.0) + (set! (-> arg0 current-sun sun-color quad) (-> arg0 mood-sun-table data s5-0 sun-color quad)) + (let ((v0-0 (-> arg0 current-sun env-color))) + (set! (-> v0-0 quad) + (-> (the-as (pointer uint128) (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* s5-0 32)))) + ) + v0-0 ) + ) + (else + (set! (-> arg0 sky-times s5-0) (- 1.0 f30-0)) + (set! (-> arg0 sky-times s4-0) f30-0) + (vector4-lerp! + (the-as vector (-> arg0 current-sun)) + (the-as vector (-> arg0 mood-sun-table data s5-0)) + (the-as vector (-> arg0 mood-sun-table data s4-0)) + f30-0 + ) + (vector4-lerp! + (-> arg0 current-sun env-color) + (the-as vector (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* s5-0 32))) + (the-as vector (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* s4-0 32))) + f30-0 + ) ) - ) - v0-0 ) - ) - (else - (set! (-> arg0 sky-times s5-0) (- 1.0 f30-0)) - (set! (-> arg0 sky-times s4-0) f30-0) - (vector4-lerp! - (the-as vector (-> arg0 current-sun)) - (the-as vector (-> arg0 mood-sun-table data s5-0)) - (the-as vector (-> arg0 mood-sun-table data s4-0)) - f30-0 - ) - (vector4-lerp! - (-> arg0 current-sun env-color) - (the-as - vector - (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* s5-0 32)) - ) - (the-as - vector - (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* s4-0 32)) - ) - f30-0 - ) - ) ) - ) ) -;; definition for function update-mood-fog (defun update-mood-fog ((arg0 mood-context) (arg1 float)) 0 0 @@ -398,279 +301,147 @@ (s5-0 (-> arg0 mood-fog-table data a1-5)) (s4-0 (-> arg0 mood-fog-table data v1-6)) ) - (vector4-lerp! - (-> gp-0 fog-color) - (-> s5-0 fog-color) - (-> s4-0 fog-color) - f30-0 + (vector4-lerp! (-> gp-0 fog-color) (-> s5-0 fog-color) (-> s4-0 fog-color) f30-0) + (vector4-lerp! (-> gp-0 fog-dists) (-> s5-0 fog-dists) (-> s4-0 fog-dists) f30-0) + (vector4-lerp! (-> gp-0 erase-color) (-> s5-0 erase-color) (-> s4-0 erase-color) f30-0) ) - (vector4-lerp! - (-> gp-0 fog-dists) - (-> s5-0 fog-dists) - (-> s4-0 fog-dists) - f30-0 - ) - (vector4-lerp! - (-> gp-0 erase-color) - (-> s5-0 erase-color) - (-> s4-0 erase-color) - f30-0 - ) - ) ) -;; definition for function update-mood-quick -;; Used lq/sq -(defun - update-mood-quick - ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 int)) +(defun update-mood-quick ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 int)) (let ((v1-0 (-> arg0 light-group))) - (set! - (-> arg0 current-fog fog-color quad) - (-> arg0 mood-fog-table data arg1 fog-color quad) - ) - (set! - (-> arg0 current-fog fog-dists quad) - (-> - (the-as - (pointer uint128) - (+ (the-as uint (-> arg0 mood-fog-table data 0 fog-dists)) (* 48 arg1)) - ) - ) - ) - (set! - (-> arg0 current-fog erase-color quad) - (-> - (the-as - (pointer uint128) - (+ (the-as uint (-> arg0 mood-fog-table data 0 erase-color)) (* 48 arg1)) - ) - ) - ) - (set! - (-> arg0 current-prt-color quad) - (-> - (the-as - (pointer uint128) - (+ (the-as uint (-> arg0 mood-lights-table data 0 prt-color)) (* 80 arg3)) - ) - ) - ) - (set! - (-> arg0 current-sun sun-color quad) - (-> arg0 mood-sun-table data arg2 sun-color quad) - ) - (set! - (-> arg0 current-sun env-color quad) - (-> - (the-as - (pointer uint128) - (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* arg2 32)) - ) - ) - ) - (set! - (-> arg0 current-shadow quad) - (-> - (the-as - (pointer uint128) - (+ (the-as uint (-> arg0 mood-lights-table data 0 shadow)) (* 80 arg3)) - ) - ) - ) - (let ((a1-11 (-> arg0 mood-lights-table data arg3))) - (let - ((f0-3 - (+ - (* 2.0 (-> a1-11 lgt-color x)) - (* 4.0 (-> a1-11 lgt-color y)) - (-> a1-11 lgt-color z) + (set! (-> arg0 current-fog fog-color quad) (-> arg0 mood-fog-table data arg1 fog-color quad)) + (set! (-> arg0 current-fog fog-dists quad) + (-> (the-as (pointer uint128) (+ (the-as uint (-> arg0 mood-fog-table data 0 fog-dists)) (* 48 arg1)))) + ) + (set! (-> arg0 current-fog erase-color quad) + (-> (the-as (pointer uint128) (+ (the-as uint (-> arg0 mood-fog-table data 0 erase-color)) (* 48 arg1)))) + ) + (set! (-> arg0 current-prt-color quad) + (-> (the-as (pointer uint128) (+ (the-as uint (-> arg0 mood-lights-table data 0 prt-color)) (* 80 arg3)))) + ) + (set! (-> arg0 current-sun sun-color quad) (-> arg0 mood-sun-table data arg2 sun-color quad)) + (set! (-> arg0 current-sun env-color quad) + (-> (the-as (pointer uint128) (+ (the-as uint (-> arg0 mood-sun-table data 0 env-color)) (* arg2 32)))) + ) + (set! (-> arg0 current-shadow quad) + (-> (the-as (pointer uint128) (+ (the-as uint (-> arg0 mood-lights-table data 0 shadow)) (* 80 arg3)))) + ) + (let ((a1-11 (-> arg0 mood-lights-table data arg3))) + (let ((f0-3 (+ (* 2.0 (-> a1-11 lgt-color x)) (* 4.0 (-> a1-11 lgt-color y)) (-> a1-11 lgt-color z)))) + (set! (-> v1-0 0 dir0 direction quad) (-> a1-11 direction quad)) + (set! (-> v1-0 0 dir0 color quad) (-> a1-11 lgt-color quad)) + (set! (-> v1-0 0 dir0 levels x) 1.0) + (set! (-> v1-0 0 dir0 levels y) f0-3) ) - ) + (set! (-> v1-0 0 dir1 levels x) 0.0) + (set! (-> v1-0 0 dir2 levels x) 0.0) + (set! (-> v1-0 0 ambi color quad) (-> a1-11 amb-color quad)) ) - (set! (-> v1-0 0 dir0 direction quad) (-> a1-11 direction quad)) - (set! (-> v1-0 0 dir0 color quad) (-> a1-11 lgt-color quad)) - (set! (-> v1-0 0 dir0 levels x) 1.0) - (set! (-> v1-0 0 dir0 levels y) f0-3) - ) - (set! (-> v1-0 0 dir1 levels x) 0.0) - (set! (-> v1-0 0 dir2 levels x) 0.0) - (set! (-> v1-0 0 ambi color quad) (-> a1-11 amb-color quad)) + (set! (-> v1-0 0 ambi levels x) 1.0) ) - (set! (-> v1-0 0 ambi levels x) 1.0) - ) - (set! - (-> *time-of-day-context* light-masks-0 arg4) - (the-as uint (ash 1 arg3)) - ) + (set! (-> *time-of-day-context* light-masks-0 arg4) (the-as uint (ash 1 arg3))) (set! (-> *time-of-day-context* light-masks-1 arg4) (the-as uint 0)) (set! (-> *time-of-day-context* light-interp arg4) 0.0) - (if - (and - (= (-> arg0 current-prt-color x) 0.0) - (= (-> arg0 current-prt-color y) 0.0) - (= (-> arg0 current-prt-color z) 0.0) - ) - (update-mood-prt-color arg0) - ) + (if (and (= (-> arg0 current-prt-color x) 0.0) + (= (-> arg0 current-prt-color y) 0.0) + (= (-> arg0 current-prt-color z) 0.0) + ) + (update-mood-prt-color arg0) + ) ) -;; definition for function update-mood-interp -;; Used lq/sq -(defun - update-mood-interp - ((arg0 mood-context) (arg1 mood-context) (arg2 mood-context) (arg3 float)) +(defun update-mood-interp ((arg0 mood-context) (arg1 mood-context) (arg2 mood-context) (arg3 float)) (local-vars (sv-16 light)) (cond - ((= arg3 0.0) - (set! - (-> arg0 current-fog fog-color quad) - (-> arg1 current-fog fog-color quad) + ((= arg3 0.0) + (set! (-> arg0 current-fog fog-color quad) (-> arg1 current-fog fog-color quad)) + (set! (-> arg0 current-fog fog-dists quad) (-> arg1 current-fog fog-dists quad)) + (set! (-> arg0 current-fog erase-color quad) (-> arg1 current-fog erase-color quad)) + (set! (-> arg0 current-prt-color quad) (-> arg1 current-prt-color quad)) + (set! (-> arg0 current-sun sun-color quad) (-> arg1 current-sun sun-color quad)) + (set! (-> arg0 current-sun env-color quad) (-> arg1 current-sun env-color quad)) + (set! (-> arg0 current-shadow quad) (-> arg1 current-shadow quad)) + (set! (-> arg0 current-shadow-color quad) (-> arg1 current-shadow-color quad)) + (quad-copy! (the-as pointer (-> arg0 light-group)) (the-as pointer (-> arg1 light-group)) 12) ) - (set! - (-> arg0 current-fog fog-dists quad) - (-> arg1 current-fog fog-dists quad) + ((= arg3 1.0) + (set! (-> arg0 current-fog fog-color quad) (-> arg2 current-fog fog-color quad)) + (set! (-> arg0 current-fog fog-dists quad) (-> arg2 current-fog fog-dists quad)) + (set! (-> arg0 current-fog erase-color quad) (-> arg2 current-fog erase-color quad)) + (set! (-> arg0 current-prt-color quad) (-> arg2 current-prt-color quad)) + (set! (-> arg0 current-sun sun-color quad) (-> arg2 current-sun sun-color quad)) + (set! (-> arg0 current-sun env-color quad) (-> arg2 current-sun env-color quad)) + (set! (-> arg0 current-shadow quad) (-> arg2 current-shadow quad)) + (set! (-> arg0 current-shadow-color quad) (-> arg2 current-shadow-color quad)) + (quad-copy! (the-as pointer (-> arg0 light-group)) (the-as pointer (-> arg2 light-group)) 12) ) - (set! - (-> arg0 current-fog erase-color quad) - (-> arg1 current-fog erase-color quad) - ) - (set! (-> arg0 current-prt-color quad) (-> arg1 current-prt-color quad)) - (set! - (-> arg0 current-sun sun-color quad) - (-> arg1 current-sun sun-color quad) - ) - (set! - (-> arg0 current-sun env-color quad) - (-> arg1 current-sun env-color quad) - ) - (set! (-> arg0 current-shadow quad) (-> arg1 current-shadow quad)) - (set! - (-> arg0 current-shadow-color quad) - (-> arg1 current-shadow-color quad) - ) - (quad-copy! - (the-as pointer (-> arg0 light-group)) - (the-as pointer (-> arg1 light-group)) - 12 - ) - ) - ((= arg3 1.0) - (set! - (-> arg0 current-fog fog-color quad) - (-> arg2 current-fog fog-color quad) - ) - (set! - (-> arg0 current-fog fog-dists quad) - (-> arg2 current-fog fog-dists quad) - ) - (set! - (-> arg0 current-fog erase-color quad) - (-> arg2 current-fog erase-color quad) - ) - (set! (-> arg0 current-prt-color quad) (-> arg2 current-prt-color quad)) - (set! - (-> arg0 current-sun sun-color quad) - (-> arg2 current-sun sun-color quad) - ) - (set! - (-> arg0 current-sun env-color quad) - (-> arg2 current-sun env-color quad) - ) - (set! (-> arg0 current-shadow quad) (-> arg2 current-shadow quad)) - (set! - (-> arg0 current-shadow-color quad) - (-> arg2 current-shadow-color quad) - ) - (quad-copy! - (the-as pointer (-> arg0 light-group)) - (the-as pointer (-> arg2 light-group)) - 12 - ) - ) - (else - (vector4-lerp! - (the-as vector (-> arg0 current-fog)) - (the-as vector (-> arg1 current-fog)) - (the-as vector (-> arg2 current-fog)) - arg3 - ) - (vector4-lerp! - (-> arg0 current-fog fog-dists) - (-> arg1 current-fog fog-dists) - (-> arg2 current-fog fog-dists) - arg3 - ) - (vector4-lerp! - (-> arg0 current-fog erase-color) - (-> arg1 current-fog erase-color) - (-> arg2 current-fog erase-color) - arg3 - ) - (vector4-lerp! - (-> arg0 current-prt-color) - (-> arg1 current-prt-color) - (-> arg2 current-prt-color) - arg3 - ) - (vector4-lerp! - (the-as vector (-> arg0 current-sun)) - (the-as vector (-> arg1 current-sun)) - (the-as vector (-> arg2 current-sun)) - arg3 - ) - (vector4-lerp! - (-> arg0 current-sun env-color) - (-> arg1 current-sun env-color) - (-> arg2 current-sun env-color) - arg3 - ) - (vector4-lerp! - (-> arg0 current-shadow) - (-> arg1 current-shadow) - (-> arg2 current-shadow) - arg3 - ) - (vector4-lerp! - (-> arg0 current-shadow-color) - (-> arg1 current-shadow-color) - (-> arg2 current-shadow-color) - arg3 - ) - (dotimes (s2-0 3) - (let ((s1-0 (-> arg0 light-group 0 lights s2-0))) - (let ((s0-0 (-> arg1 light-group 0 lights s2-0))) - (set! sv-16 (-> arg2 light-group 0 lights s2-0)) - (vector4-lerp! - (-> s1-0 direction) - (-> s0-0 direction) - (-> sv-16 direction) + (else + (vector4-lerp! + (the-as vector (-> arg0 current-fog)) + (the-as vector (-> arg1 current-fog)) + (the-as vector (-> arg2 current-fog)) + arg3 + ) + (vector4-lerp! + (-> arg0 current-fog fog-dists) + (-> arg1 current-fog fog-dists) + (-> arg2 current-fog fog-dists) + arg3 + ) + (vector4-lerp! + (-> arg0 current-fog erase-color) + (-> arg1 current-fog erase-color) + (-> arg2 current-fog erase-color) + arg3 + ) + (vector4-lerp! (-> arg0 current-prt-color) (-> arg1 current-prt-color) (-> arg2 current-prt-color) arg3) + (vector4-lerp! + (the-as vector (-> arg0 current-sun)) + (the-as vector (-> arg1 current-sun)) + (the-as vector (-> arg2 current-sun)) + arg3 + ) + (vector4-lerp! + (-> arg0 current-sun env-color) + (-> arg1 current-sun env-color) + (-> arg2 current-sun env-color) + arg3 + ) + (vector4-lerp! (-> arg0 current-shadow) (-> arg1 current-shadow) (-> arg2 current-shadow) arg3) + (vector4-lerp! + (-> arg0 current-shadow-color) + (-> arg1 current-shadow-color) + (-> arg2 current-shadow-color) + arg3 + ) + (dotimes (s2-0 3) + (let ((s1-0 (-> arg0 light-group 0 lights s2-0))) + (let ((s0-0 (-> arg1 light-group 0 lights s2-0))) + (set! sv-16 (-> arg2 light-group 0 lights s2-0)) + (vector4-lerp! (-> s1-0 direction) (-> s0-0 direction) (-> sv-16 direction) arg3) + (vector4-lerp! (-> s1-0 color) (-> s0-0 color) (-> sv-16 color) arg3) + (vector4-lerp! (-> s1-0 levels) (-> s0-0 levels) (-> sv-16 levels) arg3) + ) + (vector-normalize! (-> s1-0 direction) 1.0) + ) + ) + (vector4-lerp! + (-> arg0 light-group 0 ambi color) + (-> arg1 light-group 0 ambi color) + (-> arg2 light-group 0 ambi color) + arg3 + ) + (vector4-lerp! + (-> arg0 light-group 0 ambi levels) + (-> arg1 light-group 0 ambi levels) + (-> arg2 light-group 0 ambi levels) arg3 ) - (vector4-lerp! (-> s1-0 color) (-> s0-0 color) (-> sv-16 color) arg3) - (vector4-lerp! (-> s1-0 levels) (-> s0-0 levels) (-> sv-16 levels) arg3) - ) - (vector-normalize! (-> s1-0 direction) 1.0) ) - ) - (vector4-lerp! - (-> arg0 light-group 0 ambi color) - (-> arg1 light-group 0 ambi color) - (-> arg2 light-group 0 ambi color) - arg3 - ) - (vector4-lerp! - (-> arg0 light-group 0 ambi levels) - (-> arg1 light-group 0 ambi levels) - (-> arg2 light-group 0 ambi levels) - arg3 - ) ) - ) (none) ) -;; definition of type flames-state (deftype flames-state (structure) ((index uint8 :offset-assert 0) (time uint8 :offset-assert 1) @@ -682,316 +453,223 @@ :flag-assert #x900000004 ) -;; definition for method 3 of type flames-state -(defmethod inspect flames-state ((obj flames-state)) - (format #t "[~8x] ~A~%" obj 'flames-state) - (format #t "~Tindex: ~D~%" (-> obj index)) - (format #t "~Ttime: ~D~%" (-> obj time)) - (format #t "~Tlength: ~D~%" (-> obj length)) - (format #t "~Theight: ~D~%" (-> obj height)) - obj - ) -;; definition for function update-mood-flames -;; INFO: Return type mismatch number vs none. -(defun - update-mood-flames - ((arg0 mood-context) - (arg1 int) - (arg2 int) - (arg3 int) - (arg4 float) - (arg5 float) - (arg6 float) - ) - (let* ((s5-0 (&-> arg0 state arg3)) - (s4-0 (+ (-> s5-0 0) arg1)) - (a0-1 (-> s5-0 1)) - (v1-2 (-> s5-0 2)) - (s0-0 (-> s5-0 3)) +(defun update-mood-flames ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 float) (arg5 float) (arg6 float)) + (let* ((s5-0 (the-as flames-state (&-> arg0 state arg3))) + (s4-0 (+ (-> s5-0 index) arg1)) + (a0-1 (-> s5-0 time)) + (v1-2 (-> s5-0 length)) + (s0-0 (-> s5-0 height)) ) - (dotimes (a3-1 arg2) - (set! (-> arg0 times (+ arg1 a3-1) w) arg4) - ) - (cond - ((>= a0-1 v1-2) - (set! - (-> s5-0 0) - (the-as - uint - (the int (rand-vu-float-range 0.0 (+ -0.01 (the float arg2)))) + (dotimes (a3-1 arg2) + (set! (-> arg0 times (+ arg1 a3-1) w) arg4) + ) + (cond + ((>= a0-1 v1-2) + (set! (-> s5-0 index) (the-as uint (the int (rand-vu-float-range 0.0 (+ -0.01 (the float arg2)))))) + (set! (-> s5-0 time) (the-as uint 0)) + (set! (-> s5-0 length) (the-as uint (the int (* (rand-vu-float-range 7.0 15.0) arg6)))) + (set! (-> s5-0 height) (the-as uint (the int (rand-vu-float-range 0.0 255.0)))) + (set! (-> arg0 times s4-0 w) arg4) ) + (else + (let ((f0-13 (sin (* 32768.0 (/ (the float a0-1) (the float v1-2)))))) + (set! (-> arg0 times s4-0 w) (+ (* (the float s0-0) f0-13 arg5) arg4)) + ) + (if (not (paused?)) + (+! (-> s5-0 time) 1) + ) + ) ) - (set! (-> s5-0 1) (the-as uint 0)) - (set! - (-> s5-0 2) - (the-as uint (the int (* (rand-vu-float-range 7.0 15.0) arg6))) - ) - (set! (-> s5-0 3) (the-as uint (the int (rand-vu-float-range 0.0 255.0)))) - (set! (-> arg0 times s4-0 w) arg4) - ) - (else - (let ((f0-13 (sin (* 32768.0 (/ (the float a0-1) (the float v1-2)))))) - (set! (-> arg0 times s4-0 w) (+ (* (the float s0-0) f0-13 arg5) arg4)) - ) - (if (not (paused?)) - (+! (-> s5-0 1) 1) - ) - ) ) - ) (none) ) -;; definition for symbol *flash0*, type (array float) -(define - *flash0* - (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 13 :allocated-length 13 - 1.0 - 0.0 - 0.5 - 1.0 - 0.5 - 0.0 - 0.5 - 0.35 - 0.4 - 0.35 - 0.25 - 0.1 - 0.04 - ) - ) - ) +(define *flash0* (the-as (array float) (new + 'static + 'boxed-array + :type float :length 13 :allocated-length 13 + 1.0 + 0.0 + 0.5 + 1.0 + 0.5 + 0.0 + 0.5 + 0.35 + 0.4 + 0.35 + 0.25 + 0.1 + 0.04 + ) + ) + ) -;; definition for symbol *flash1*, type (array float) (define *flash1* (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 9 :allocated-length 9 - 1.0 - 0.8 - 0.0 - 1.0 - 0.5 - 1.0 - 0.4 - 0.2 - 0.1 + (new 'static 'boxed-array :type float :length 9 :allocated-length 9 1.0 0.8 0.0 1.0 0.5 1.0 0.4 0.2 0.1) ) - ) ) -;; definition for symbol *flash2*, type (array float) (define *flash2* (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 10 :allocated-length 10 - 1.0 - 0.9 - 0.8 - 0.7 - 0.0 - 0.0 - 1.0 - 0.0 - 1.0 - 0.5 + (new 'static 'boxed-array :type float :length 10 :allocated-length 10 1.0 0.9 0.8 0.7 0.0 0.0 1.0 0.0 1.0 0.5) ) - ) ) -;; definition for symbol *flash3*, type (array float) -(define - *flash3* - (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 13 :allocated-length 13 - 0.5 - 0.0 - 1.0 - 0.9 - 1.0 - 0.8 - 0.3 - 0.0 - 0.0 - 0.5 - 0.1 - 0.5 - 0.35 - ) - ) - ) +(define *flash3* (the-as (array float) (new + 'static + 'boxed-array + :type float :length 13 :allocated-length 13 + 0.5 + 0.0 + 1.0 + 0.9 + 1.0 + 0.8 + 0.3 + 0.0 + 0.0 + 0.5 + 0.1 + 0.5 + 0.35 + ) + ) + ) -;; definition for symbol *flash4*, type (array float) -(define - *flash4* - (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 18 :allocated-length 18 - 1.0 - 0.0 - 1.0 - 0.0 - 1.0 - 0.9 - 0.8 - 0.7 - 0.6 - 0.5 - 0.4 - 0.3 - 0.2 - 0.5 - 0.4 - 0.3 - 0.2 - 0.1 - ) - ) - ) +(define *flash4* (the-as (array float) (new + 'static + 'boxed-array + :type float :length 18 :allocated-length 18 + 1.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.9 + 0.8 + 0.7 + 0.6 + 0.5 + 0.4 + 0.3 + 0.2 + 0.5 + 0.4 + 0.3 + 0.2 + 0.1 + ) + ) + ) -;; definition for symbol *flash5*, type (array float) -(define - *flash5* - (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 31 :allocated-length 31 - 1.0 - 0.0 - 1.0 - 0.0 - 1.0 - 0.95 - 0.9 - 0.85 - 0.8 - 0.75 - 0.7 - 0.65 - 0.6 - 0.55 - 0.5 - 0.45 - 0.4 - 0.35 - 0.3 - 0.25 - 0.2 - 0.5 - 0.45 - 0.4 - 0.35 - 0.3 - 0.25 - 0.2 - 0.15 - 0.1 - 0.05 - ) - ) - ) +(define *flash5* (the-as (array float) (new + 'static + 'boxed-array + :type float :length 31 :allocated-length 31 + 1.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.95 + 0.9 + 0.85 + 0.8 + 0.75 + 0.7 + 0.65 + 0.6 + 0.55 + 0.5 + 0.45 + 0.4 + 0.35 + 0.3 + 0.25 + 0.2 + 0.5 + 0.45 + 0.4 + 0.35 + 0.3 + 0.25 + 0.2 + 0.15 + 0.1 + 0.05 + ) + ) + ) -;; definition for symbol *flash6*, type (array float) -(define - *flash6* - (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 14 :allocated-length 14 - 1.0 - 0.0 - 1.0 - 0.0 - 0.5 - 0.0 - 0.5 - 0.35 - 0.0 - 0.0 - 1.0 - 0.0 - 0.2 - 0.1 - ) - ) - ) +(define *flash6* (the-as (array float) (new + 'static + 'boxed-array + :type float :length 14 :allocated-length 14 + 1.0 + 0.0 + 1.0 + 0.0 + 0.5 + 0.0 + 0.5 + 0.35 + 0.0 + 0.0 + 1.0 + 0.0 + 0.2 + 0.1 + ) + ) + ) -;; definition for symbol *flash7*, type (array float) -(define - *flash7* - (the-as (array float) - (new - 'static - 'boxed-array - :type float :length 14 :allocated-length 14 - 1.0 - 0.8 - 0.3 - 0.0 - 0.6 - 0.5 - 0.4 - 0.3 - 0.2 - 0.5 - 0.4 - 0.3 - 0.2 - 0.1 - ) - ) - ) +(define *flash7* (the-as (array float) (new + 'static + 'boxed-array + :type float :length 14 :allocated-length 14 + 1.0 + 0.8 + 0.3 + 0.0 + 0.6 + 0.5 + 0.4 + 0.3 + 0.2 + 0.5 + 0.4 + 0.3 + 0.2 + 0.1 + ) + ) + ) -;; definition for symbol *lightning-index*, type int (define *lightning-index* 0) -;; definition for symbol *lightning-time*, type int (define *lightning-time* 0) -;; definition for symbol *lightning-time2*, type int (define *lightning-time2* 0) -;; definition for symbol *lightning-frame-done*, type symbol (define *lightning-frame-done* #f) -;; definition for symbol *lightning-realtime-done*, type symbol (define *lightning-realtime-done* #f) -;; definition for symbol *thunder-id0*, type sound-id (define *thunder-id0* (new-sound-id)) -;; definition for symbol *thunder-id1*, type sound-id (define *thunder-id1* (new-sound-id)) -;; definition for symbol *thunder-id2*, type sound-id (define *thunder-id2* (new-sound-id)) -;; definition for symbol *thunder-id*, type sound-id -(define *thunder-id* (the-as sound-id 0)) +(define *thunder-id* (new 'static 'sound-id)) -;; definition for symbol *thunder-count*, type int (define *thunder-count* 0) -;; definition of type lightning-state (deftype lightning-state (structure) ((val uint8 :offset-assert 0) ) @@ -1001,231 +679,188 @@ :flag-assert #x900000001 ) -;; definition for method 3 of type lightning-state -(defmethod inspect lightning-state ((obj lightning-state)) - (format #t "[~8x] ~A~%" obj 'lightning-state) - (format #t "~Tval: ~D~%" (-> obj val)) - obj - ) -;; definition for function update-mood-lightning -;; INFO: Return type mismatch symbol vs none. -;; Used lq/sq -(defun - update-mood-lightning - ((arg0 mood-context) - (arg1 int) - (arg2 int) - (arg3 int) - (arg4 int) - (arg5 float) - (arg6 symbol) - ) +(defun update-mood-lightning ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 float) (arg6 symbol)) (local-vars (a3-2 (array float))) (with-pp - (set! (-> arg0 light-group 0 dir2 levels x) 0.0) - (let* ((s4-0 (&-> arg0 state arg3)) - (a1-1 (+ *lightning-index* arg1)) - (v1-3 (+ *lightning-index* arg4)) - (a3-1 (-> s4-0 0)) - (a2-2 (/ *lightning-time* 2)) - ) - (cond - ((zero? *lightning-time2*) - (cond - ((zero? a3-1) - (set! a3-2 *flash0*) - ) - ((= a3-1 1) - (set! a3-2 *flash1*) - ) - ((= a3-1 2) - (set! a3-2 *flash2*) - ) - ((= a3-1 3) - (set! a3-2 *flash3*) - ) - ((= a3-1 4) - (set! a3-2 *flash4*) - ) - ((= a3-1 5) - (set! a3-2 *flash5*) - ) - ((= a3-1 6) - (set! a3-2 *flash6*) - ) - (else - (set! a3-2 *flash7*) - ) - ) - (cond - ((< a2-2 (-> a3-2 length)) - (let ((f0-1 (-> a3-2 a2-2))) - (set! (-> arg0 sky-times a1-1) f0-1) - (when (not arg6) - (set! (-> arg0 times v1-3 w) f0-1) - (when (not *lightning-realtime-done*) - (let* ((a1-11 (-> arg0 mood-lights-table data v1-3)) - (v1-6 (-> arg0 light-group 0 dir2)) - (f1-4 - (* - (+ - (* 2.0 (-> a1-11 lgt-color x)) - (* 4.0 (-> a1-11 lgt-color y)) - (-> a1-11 lgt-color z) - ) - f0-1 - ) - ) - ) - (set! (-> v1-6 direction quad) (-> a1-11 direction quad)) - (set! (-> v1-6 color quad) (-> a1-11 lgt-color quad)) - (set! (-> v1-6 levels x) f0-1) - (set! (-> v1-6 levels y) f1-4) - ) - (set! *lightning-realtime-done* #t) + (set! (-> arg0 light-group 0 dir2 levels x) 0.0) + (let* ((s4-0 (&-> arg0 state arg3)) + (a1-1 (+ *lightning-index* arg1)) + (v1-3 (+ *lightning-index* arg4)) + (a3-1 (-> s4-0 0)) + (a2-2 (/ *lightning-time* 2)) ) - ) - ) - (if (not (or (paused?) *lightning-frame-done*)) - (set! *lightning-time* (+ *lightning-time* 1)) - ) - ) - (arg6 - (set! *lightning-time2* (the int (rand-vu-float-range 360.0 960.0))) - ) - (else - (set! *lightning-time2* (the int (rand-vu-float-range 180.0 480.0))) - ) - ) - ) - (else - (when (not (or (paused?) *lightning-frame-done*)) - (set! *lightning-time2* (+ *lightning-time2* -1)) - (when (zero? *lightning-time2*) - (set! *lightning-index* (mod (+ *lightning-index* 1) arg2)) - (set! (-> s4-0 0) (logand (rand-uint31-gen *random-generator*) 7)) - (set! *lightning-time* 0) - (let ((v1-24 *thunder-count*)) + (cond + ((zero? *lightning-time2*) (cond - ((zero? v1-24) - (set! *thunder-id* *thunder-id0*) - (set! *thunder-count* 1) + ((zero? a3-1) + (set! a3-2 *flash0*) + ) + ((= a3-1 1) + (set! a3-2 *flash1*) + ) + ((= a3-1 2) + (set! a3-2 *flash2*) + ) + ((= a3-1 3) + (set! a3-2 *flash3*) + ) + ((= a3-1 4) + (set! a3-2 *flash4*) + ) + ((= a3-1 5) + (set! a3-2 *flash5*) + ) + ((= a3-1 6) + (set! a3-2 *flash6*) + ) + (else + (set! a3-2 *flash7*) + ) ) - ((= v1-24 1) - (set! *thunder-id* *thunder-id1*) - (set! *thunder-count* 2) - ) - (else - (set! *thunder-id* *thunder-id2*) - (set! *thunder-count* 0) - 0 - ) - ) - ) - (when (>= (-> *math-camera* trans y) -81920.0) - (if arg6 - (sound-play-by-name - (static-sound-name "thunder") - *thunder-id* - (the int (* 10.24 (rand-vu-float-range 25.0 75.0))) - (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) - 0 - 1 - #t - ) - (sound-play-by-name - (static-sound-name "thunder") - *thunder-id* - (the int (* 10.24 (rand-vu-float-range 200.0 400.0))) - (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) - 0 - 1 - #t - ) - ) - ) - ) - ) - ) - ) - ) - (when (not *lightning-frame-done*) - (#when PC_DEBUG_SOUND_ENABLE - (let ((gp-3 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> gp-3 command) (sound-command set-param)) - (set! (-> gp-3 id) *thunder-id0*) - (let ((a1-23 (camera-pos))) - (let ((s5-3 pp)) - (when (= a1-23 #t) - (if - (and - s5-3 - (type-type? (-> s5-3 type) process-drawable) - (nonzero? (-> (the-as process-drawable s5-3) root)) - ) - (set! a1-23 (-> (the-as process-drawable s5-3) root trans)) - (set! a1-23 (the-as vector #f)) - ) + (cond + ((< a2-2 (-> a3-2 length)) + (let ((f0-1 (-> a3-2 a2-2))) + (set! (-> arg0 sky-times a1-1) f0-1) + (when (not arg6) + (set! (-> arg0 times v1-3 w) f0-1) + (when (not *lightning-realtime-done*) + (let* ((a1-11 (-> arg0 mood-lights-table data v1-3)) + (v1-6 (-> arg0 light-group 0 dir2)) + (f1-4 (* (+ (* 2.0 (-> a1-11 lgt-color x)) (* 4.0 (-> a1-11 lgt-color y)) (-> a1-11 lgt-color z)) f0-1)) + ) + (set! (-> v1-6 direction quad) (-> a1-11 direction quad)) + (set! (-> v1-6 color quad) (-> a1-11 lgt-color quad)) + (set! (-> v1-6 levels x) f0-1) + (set! (-> v1-6 levels y) f1-4) ) + (set! *lightning-realtime-done* #t) ) - (sound-trans-convert (-> gp-3 parms trans) a1-23) ) - (set! (-> gp-3 parms mask) (the-as uint 32)) - (-> gp-3 id) ) - (let ((gp-4 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> gp-4 command) (sound-command set-param)) - (set! (-> gp-4 id) *thunder-id1*) - (let ((a1-25 (camera-pos))) - (let ((s5-4 pp)) - (when (= a1-25 #t) - (if - (and - s5-4 - (type-type? (-> s5-4 type) process-drawable) - (nonzero? (-> (the-as process-drawable s5-4) root)) - ) - (set! a1-25 (-> (the-as process-drawable s5-4) root trans)) - (set! a1-25 (the-as vector #f)) - ) + (if (not (or (paused?) *lightning-frame-done*)) + (set! *lightning-time* (+ *lightning-time* 1)) + ) + ) + (arg6 + (set! *lightning-time2* (the int (rand-vu-float-range 360.0 960.0))) + ) + (else + (set! *lightning-time2* (the int (rand-vu-float-range 180.0 480.0))) + ) + ) + ) + (else + (when (not (or (paused?) *lightning-frame-done*)) + (set! *lightning-time2* (+ *lightning-time2* -1)) + (when (zero? *lightning-time2*) + (set! *lightning-index* (mod (+ *lightning-index* 1) arg2)) + (set! (-> s4-0 0) (logand (rand-uint31-gen *random-generator*) 7)) + (set! *lightning-time* 0) + (let ((v1-24 *thunder-count*)) + (cond + ((zero? v1-24) + (set! *thunder-id* *thunder-id0*) + (set! *thunder-count* 1) + ) + ((= v1-24 1) + (set! *thunder-id* *thunder-id1*) + (set! *thunder-count* 2) + ) + (else + (set! *thunder-id* *thunder-id2*) + (set! *thunder-count* 0) + 0 ) ) - (sound-trans-convert (-> gp-4 parms trans) a1-25) ) - (set! (-> gp-4 parms mask) (the-as uint 32)) - (-> gp-4 id) - ) - (let ((gp-5 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> gp-5 command) (sound-command set-param)) - (set! (-> gp-5 id) *thunder-id2*) - (let ((a1-27 (camera-pos))) - (let ((s5-5 pp)) - (when (= a1-27 #t) - (if - (and - s5-5 - (type-type? (-> s5-5 type) process-drawable) - (nonzero? (-> (the-as process-drawable s5-5) root)) - ) - (set! a1-27 (-> (the-as process-drawable s5-5) root trans)) - (set! a1-27 (the-as vector #f)) + (when (>= (-> *math-camera* trans y) -81920.0) + (if arg6 + (sound-play-by-name + (static-sound-name "thunder") + *thunder-id* + (the int (* 10.24 (rand-vu-float-range 25.0 75.0))) + (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) + 0 + 1 + #t + ) + (sound-play-by-name + (static-sound-name "thunder") + *thunder-id* + (the int (* 10.24 (rand-vu-float-range 200.0 400.0))) + (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) + 0 + 1 + #t ) ) - ) - (sound-trans-convert (-> gp-5 parms trans) a1-27) ) - (set! (-> gp-5 parms mask) (the-as uint 32)) - (-> gp-5 id) ) ) - ) - (set! *lightning-frame-done* #t) - (none) - ) + ) + ) + ) + (when (not *lightning-frame-done*) + (#when PC_DEBUG_SOUND_ENABLE + (let ((gp-3 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> gp-3 command) (sound-command set-param)) + (set! (-> gp-3 id) *thunder-id0*) + (let ((a1-23 (camera-pos))) + (let ((s5-3 pp)) + (when (= a1-23 #t) + (if (and s5-3 (type-type? (-> s5-3 type) process-drawable) (nonzero? (-> (the-as process-drawable s5-3) root))) + (set! a1-23 (-> (the-as process-drawable s5-3) root trans)) + (set! a1-23 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> gp-3 parms trans) a1-23) + ) + (set! (-> gp-3 parms mask) (the-as uint 32)) + (-> gp-3 id) + ) + (let ((gp-4 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> gp-4 command) (sound-command set-param)) + (set! (-> gp-4 id) *thunder-id1*) + (let ((a1-25 (camera-pos))) + (let ((s5-4 pp)) + (when (= a1-25 #t) + (if (and s5-4 (type-type? (-> s5-4 type) process-drawable) (nonzero? (-> (the-as process-drawable s5-4) root))) + (set! a1-25 (-> (the-as process-drawable s5-4) root trans)) + (set! a1-25 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> gp-4 parms trans) a1-25) + ) + (set! (-> gp-4 parms mask) (the-as uint 32)) + (-> gp-4 id) + ) + (let ((gp-5 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> gp-5 command) (sound-command set-param)) + (set! (-> gp-5 id) *thunder-id2*) + (let ((a1-27 (camera-pos))) + (let ((s5-5 pp)) + (when (= a1-27 #t) + (if (and s5-5 (type-type? (-> s5-5 type) process-drawable) (nonzero? (-> (the-as process-drawable s5-5) root))) + (set! a1-27 (-> (the-as process-drawable s5-5) root trans)) + (set! a1-27 (the-as vector #f)) + ) + ) + ) + (sound-trans-convert (-> gp-5 parms trans) a1-27) + ) + (set! (-> gp-5 parms mask) (the-as uint 32)) + (-> gp-5 id) + ) + ) + ) + (set! *lightning-frame-done* #t) + (none) + ) ) -;; definition of type light-time-state (deftype light-time-state (structure) ((time uint8 :offset-assert 0) ) @@ -1235,14 +870,7 @@ :flag-assert #x900000001 ) -;; definition for method 3 of type light-time-state -(defmethod inspect light-time-state ((obj light-time-state)) - (format #t "[~8x] ~A~%" obj 'light-time-state) - (format #t "~Ttime: ~D~%" (-> obj time)) - obj - ) -;; definition of type light-state (deftype light-state (structure) ((fade uint8 :offset-assert 0) ) @@ -1252,73 +880,54 @@ :flag-assert #x900000001 ) -;; definition for method 3 of type light-state -(defmethod inspect light-state ((obj light-state)) - (format #t "[~8x] ~A~%" obj 'light-state) - (format #t "~Tfade: ~D~%" (-> obj fade)) - obj - ) -;; definition for function update-mood-light -;; INFO: Return type mismatch number vs none. -(defun - update-mood-light - ((arg0 mood-context) - (arg1 int) - (arg2 int) - (arg3 int) - (arg4 float) - (arg5 float) - (arg6 float) - (arg7 int) - ) +(defun update-mood-light ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 float) (arg5 float) (arg6 float) (arg7 int)) (let* ((gp-0 (&-> arg0 state arg2)) (f0-1 (the float (* (logand (+ (-> arg0 state arg3) arg7) 255) 512))) (f0-4 (+ arg4 (* (cos f0-1) arg5))) (f30-1 (* 0.003921569 (the float (-> gp-0 0)))) ) - (cond - ((or (< 19.0 arg6) (< arg6 7.0)) - (cond - ((and (= f30-1 0.0) (= f0-4 (- arg4 arg5))) - (set! (-> arg0 times arg1 w) f0-4) - (set! (-> gp-0 0) (the-as uint 255)) + (cond + ((or (< 19.0 arg6) (< arg6 7.0)) + (cond + ((and (= f30-1 0.0) (= f0-4 (- arg4 arg5))) + (set! (-> arg0 times arg1 w) f0-4) + (set! (-> gp-0 0) (the-as uint 255)) + ) + ((= f30-1 1.0) + (set! (-> arg0 times arg1 w) f0-4) + ) + ) ) ((= f30-1 1.0) - (set! (-> arg0 times arg1 w) f0-4) + (cond + ((= f0-4 (+ arg4 arg5)) + (set! (-> arg0 times arg1 w) f0-4) + (set! (-> gp-0 0) (the-as uint 254)) + ) + (else + (set! (-> arg0 times arg1 w) f0-4) + ) + ) ) - ) - ) - ((= f30-1 1.0) - (cond - ((= f0-4 (+ arg4 arg5)) - (set! (-> arg0 times arg1 w) f0-4) - (set! (-> gp-0 0) (the-as uint 254)) + ((and (!= f30-1 1.0) (!= f30-1 0.0)) + (set! (-> arg0 times arg1 w) f30-1) + (when (not (paused?)) + (if (< 0.75 f30-1) + (+! (-> gp-0 0) -3) + (+! (-> gp-0 0) -1) + ) + ) ) (else - (set! (-> arg0 times arg1 w) f0-4) - ) + (set! (-> arg0 state arg3) (the-as uint 0)) + 0 + ) ) - ) - ((and (!= f30-1 1.0) (!= f30-1 0.0)) - (set! (-> arg0 times arg1 w) f30-1) - (when (not (paused?)) - (if (< 0.75 f30-1) - (+! (-> gp-0 0) -3) - (+! (-> gp-0 0) -1) - ) - ) - ) - (else - (set! (-> arg0 state arg3) (the-as uint 0)) - 0 - ) ) - ) (none) ) -;; definition of type lava-state (deftype lava-state (structure) ((scale float 4 :offset-assert 0) (time uint8 :offset-assert 16) @@ -1330,86 +939,59 @@ :flag-assert #x900000012 ) -;; definition for method 3 of type lava-state -(defmethod inspect lava-state ((obj lava-state)) - (format #t "[~8x] ~A~%" obj 'lava-state) - (format #t "~Tscale[4] @ #x~X~%" (-> obj scale)) - (format #t "~Ttime: ~D~%" (-> obj time)) - (format #t "~Tlast-index: ~D~%" (-> obj last-index)) - obj - ) -;; definition for symbol *lava-time*, type float (define *lava-time* (the-as float 0)) -;; definition for function update-mood-lava -;; INFO: Return type mismatch float vs none. (defun update-mood-lava ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 symbol)) - (let* ((s4-0 (&-> arg0 state arg2)) - (s1-0 (-> s4-0 16)) - (s2-0 (-> s4-0 17)) + (let* ((s4-0 (the-as lava-state (&-> arg0 state arg2))) + (s1-0 (-> s4-0 time)) + (s2-0 (-> s4-0 last-index)) ) - (when (not (paused?)) - (set! (-> s4-0 16) (+ s1-0 4)) - (set! *lava-time* (+ *lava-time* (rand-vu-float-range 64.0 2048.0))) - ) - (let ((s0-0 (-> arg0 light-group 0 dir2)) - (f0-4 (+ 0.875 (* 0.125 (sin *lava-time*)))) - ) - (set-vector! (-> s0-0 direction) 0.0 -1.0 0.0 0.0) - (set-vector! (-> s0-0 color) 1.0 0.364 0.0 1.0) - (set! (-> s0-0 levels x) f0-4) - ) - (let ((s0-1 (shr s1-0 6)) - (f30-2 (* 0.015625 (the float (logand s1-0 63)))) - ) - (when (!= s0-1 s2-0) - (set! - (-> (the-as (pointer float) (+ (* s0-1 4) (the-as uint s4-0)))) - (the float (the int (rand-vu-float-range 128.0 255.0))) + (when (not (paused?)) + (set! (-> s4-0 time) (+ s1-0 4)) + (set! *lava-time* (+ *lava-time* (rand-vu-float-range 64.0 2048.0))) ) - (set! (-> s4-0 17) s0-1) - ) - (when arg3 - (let* ((v1-14 (logand (+ s0-1 -1) 3)) - (f1-11 - (* - 0.0078125 - (-> (the-as (pointer float) (+ (* s0-1 4) (the-as uint s4-0)))) - ) - ) - (f0-11 - (* - 0.0078125 - (-> (the-as (pointer float) (+ (* v1-14 4) (the-as uint s4-0)))) - ) - ) - ) - (set! (-> arg0 times (+ arg1 s0-1) w) (* f30-2 f1-11)) - (set! (-> arg0 times (+ arg1 v1-14) w) (* (- 1.0 f30-2) f0-11)) + (let ((s0-0 (-> arg0 light-group 0 dir2)) + (f0-4 (+ 0.875 (* 0.125 (sin *lava-time*)))) + ) + (set-vector! (-> s0-0 direction) 0.0 -1.0 0.0 0.0) + (set-vector! (-> s0-0 color) 1.0 0.364 0.0 1.0) + (set! (-> s0-0 levels x) f0-4) + ) + (let ((s0-1 (shr s1-0 6)) + (f30-2 (* 0.015625 (the float (logand s1-0 63)))) + ) + (when (!= s0-1 s2-0) + (set! (-> s4-0 scale s0-1) (the float (the int (rand-vu-float-range 128.0 255.0)))) + (set! (-> s4-0 last-index) s0-1) + ) + (when arg3 + (let* ((v1-14 (logand (+ s0-1 -1) 3)) + (f1-11 (* 0.0078125 (-> s4-0 scale s0-1))) + (f0-11 (* 0.0078125 (-> s4-0 scale v1-14))) + ) + (set! (-> arg0 times (+ arg1 s0-1) w) (* f30-2 f1-11)) + (set! (-> arg0 times (+ arg1 v1-14) w) (* (- 1.0 f30-2) f0-11)) + ) + ) ) - ) ) - ) (none) ) -;; definition for function update-mood-caustics (defun update-mood-caustics ((arg0 mood-context) (arg1 int) (arg2 int)) (let* ((a2-1 (-> arg0 state arg2)) (v1-2 (logand (shr a2-1 3) 3)) (f0-1 (* 0.125 (the float (logand a2-1 7)))) ) - (let ((a2-4 (logand (+ v1-2 -1) 3))) - (set! (-> arg0 times (+ arg1 a2-4) w) (- 1.0 f0-1)) + (let ((a2-4 (logand (+ v1-2 -1) 3))) + (set! (-> arg0 times (+ arg1 a2-4) w) (- 1.0 f0-1)) + ) + (set! (-> arg0 times (+ arg1 v1-2) w) f0-1) ) - (set! (-> arg0 times (+ arg1 v1-2) w) f0-1) - f0-1 - ) + (none) ) -;; definition for function update-mood-default -;; INFO: Return type mismatch int vs none. (defun update-mood-default ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) @@ -1420,7 +1002,6 @@ (none) ) -;; definition of type misty-states (deftype misty-states (structure) ((flames flames-state :inline :offset-assert 0) (light0 light-state :inline :offset-assert 4) @@ -1433,68 +1014,54 @@ :flag-assert #x900000008 ) -;; definition for method 3 of type misty-states -(defmethod inspect misty-states ((obj misty-states)) - (format #t "[~8x] ~A~%" obj 'misty-states) - (format #t "~Tflames: #~%" (-> obj flames)) - (format #t "~Tlight0: #~%" (-> obj light0)) - (format #t "~Tlight1: #~%" (-> obj light1)) - (format #t "~Ttime0: #~%" (-> obj time0)) - (format #t "~Ttime1: #~%" (-> obj time1)) - obj - ) -;; definition for function update-mood-misty -;; INFO: Return type mismatch int vs none. (defun update-mood-misty ((arg0 mood-context) (arg1 float) (arg2 float)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 (the-as int arg2)) (when *time-of-day-effects* - (update-mood-flames arg0 2 4 0 0.333 0.001953125 1.0) - (let* ((s4-1 (get-task-control (game-task misty-warehouse))) - (s3-0 (target-pos 0)) - (a1-5 (new 'static 'vector :x -808960.0 :y 110592.0 :z 3928064.0)) - (f30-0 (vector-vector-xz-distance s3-0 a1-5)) - (s5-1 (get-reminder s4-1 0)) + (update-mood-flames arg0 2 4 0 0.333 0.001953125 1.0) + (let* ((s4-1 (get-task-control (game-task misty-warehouse))) + (s3-0 (target-pos 0)) + (a1-5 (new 'static 'vector :x -808960.0 :y 110592.0 :z 3928064.0)) + (f30-0 (vector-vector-xz-distance s3-0 a1-5)) + (s5-1 (get-reminder s4-1 0)) + ) + (cond + ((or (logtest? s5-1 3) (and (< f30-0 180224.0) (< (-> s3-0 y) 118784.0))) + (when (or (logtest? s5-1 1) (and (< f30-0 180224.0) (< (-> s3-0 y) 118784.0))) + (update-mood-light arg0 6 4 6 0.875 0.25 20.0 32) + (save-reminder s4-1 (logior s5-1 1) 0) + (if (not (paused?)) + (+! (-> arg0 state 6) 1) + ) + ) + (when (logtest? s5-1 2) + (update-mood-light arg0 7 5 7 0.875 0.25 20.0 32) + (if (not (paused?)) + (+! (-> arg0 state 7) 1) + ) + ) + ) + (else + (set! (-> arg0 state 6) (the-as uint 0)) + (set! (-> arg0 state 7) (the-as uint 0)) + (set! (-> arg0 state 4) (the-as uint 255)) + (set! (-> arg0 state 5) (the-as uint 255)) ) - (cond - ((or (logtest? s5-1 3) (and (< f30-0 180224.0) (< (-> s3-0 y) 118784.0))) - (when - (or (logtest? s5-1 1) (and (< f30-0 180224.0) (< (-> s3-0 y) 118784.0))) - (update-mood-light arg0 6 4 6 0.875 0.25 20.0 32) - (save-reminder s4-1 (logior s5-1 1) 0) - (if (not (paused?)) - (+! (-> arg0 state 6) 1) ) - ) - (when (logtest? s5-1 2) - (update-mood-light arg0 7 5 7 0.875 0.25 20.0 32) - (if (not (paused?)) - (+! (-> arg0 state 7) 1) - ) - ) ) - (else - (set! (-> arg0 state 6) (the-as uint 0)) - (set! (-> arg0 state 7) (the-as uint 0)) - (set! (-> arg0 state 4) (the-as uint 255)) - (set! (-> arg0 state 5) (the-as uint 255)) - ) - ) ) - ) (let ((s5-2 (-> arg0 light-group 1))) - (update-light-kit s5-2 (-> arg0 light-group 0 ambi) 0.6) - (set! (-> s5-2 dir0 levels x) (+ 1.0 (* 0.333 (-> arg0 times 2 w)))) - ) + (update-light-kit s5-2 (-> arg0 light-group 0 ambi) 0.6) + (set! (-> s5-2 dir0 levels x) (+ 1.0 (* 0.333 (-> arg0 times 2 w)))) + ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type swamp-village2-states (deftype swamp-village2-states (structure) ((flames flames-state :inline :offset-assert 0) (lightning lightning-state :inline :offset-assert 4) @@ -1504,173 +1071,143 @@ :flag-assert #x900000005 ) -;; definition for method 3 of type swamp-village2-states -(defmethod inspect swamp-village2-states ((obj swamp-village2-states)) - (format #t "[~8x] ~A~%" obj 'swamp-village2-states) - (format #t "~Tflames: #~%" (-> obj flames)) - (format #t "~Tlightning: #~%" (-> obj lightning)) - obj - ) -;; definition for function update-mood-village2 -;; INFO: Return type mismatch int vs none. -;; Used lq/sq (defun update-mood-village2 ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) - (update-mood-lightning arg0 2 2 4 2 0.5 #f) - ) - (let ((a0-7 (-> arg0 light-group 1))) - (update-light-kit a0-7 (-> arg0 light-group 0 ambi) 0.9) - ) - (let ((s5-1 (-> arg0 light-group 2))) - (update-light-kit s5-1 (-> arg0 light-group 0 ambi) 1.0) - (set! - (-> s5-1 dir2 direction quad) - (-> arg0 light-group 0 dir2 direction quad) + (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) + (update-mood-lightning arg0 2 2 4 2 0.5 #f) + ) + (let ((a0-7 (-> arg0 light-group 1))) + (update-light-kit a0-7 (-> arg0 light-group 0 ambi) 0.9) + ) + (let ((s5-1 (-> arg0 light-group 2))) + (update-light-kit s5-1 (-> arg0 light-group 0 ambi) 1.0) + (set! (-> s5-1 dir2 direction quad) (-> arg0 light-group 0 dir2 direction quad)) + (set! (-> s5-1 dir2 color quad) (-> arg0 light-group 0 dir2 color quad)) + (set! (-> s5-1 dir2 levels x) (-> arg0 light-group 0 dir2 levels x)) ) - (set! (-> s5-1 dir2 color quad) (-> arg0 light-group 0 dir2 color quad)) - (set! (-> s5-1 dir2 levels x) (-> arg0 light-group 0 dir2 levels x)) - ) (let ((s5-2 (-> arg0 light-group 3))) - (update-light-kit s5-2 (-> arg0 light-group 0 ambi) 1.0) - (set! (-> s5-2 dir0 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) - ) + (update-light-kit s5-2 (-> arg0 light-group 0 ambi) 1.0) + (set! (-> s5-2 dir0 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) + ) (let ((s5-3 (-> arg0 light-group 4))) - (update-light-kit s5-3 (-> arg0 light-group 0 ambi) 1.0) - (set! (-> s5-3 dir0 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) - ) + (update-light-kit s5-3 (-> arg0 light-group 0 ambi) 1.0) + (set! (-> s5-3 dir0 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) + ) (let ((s5-4 (-> arg0 light-group 5))) - (update-light-kit s5-4 (-> arg0 light-group 0 ambi) 0.5) - (set! (-> s5-4 ambi color x) (+ 0.25 (-> s5-4 ambi color x))) - (set! (-> s5-4 dir0 levels x) 1.0) - ) + (update-light-kit s5-4 (-> arg0 light-group 0 ambi) 0.5) + (set! (-> s5-4 ambi color x) (+ 0.25 (-> s5-4 ambi color x))) + (set! (-> s5-4 dir0 levels x) 1.0) + ) (let ((s5-5 (-> arg0 light-group 6)) (s4-1 (new 'stack-no-clear 'vector)) (s3-0 (target-joint-pos)) ) - (update-light-kit s5-5 (-> arg0 light-group 0 ambi) 1.0) - (set-vector! s4-1 1212416.0 110592.0 -6680576.0 0.0) - (vector-! s4-1 s4-1 s3-0) - (vector-normalize! s4-1 1.0) - (set! (-> s5-5 dir0 direction quad) (-> s4-1 quad)) - (set! (-> s5-5 dir0 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) - (set-vector! s4-1 1384448.0 (-> s3-0 y) -6688768.0 0.0) - (let ((f30-0 (vector-vector-distance s4-1 s3-0))) + (update-light-kit s5-5 (-> arg0 light-group 0 ambi) 1.0) + (set-vector! s4-1 1212416.0 110592.0 -6680576.0 0.0) (vector-! s4-1 s4-1 s3-0) (vector-normalize! s4-1 1.0) - (set! (-> s5-5 dir1 direction quad) (-> s4-1 quad)) - (when (< f30-0 180224.0) - (new 'stack-no-clear 'vector) - (let ((f2-3 (* 0.0000110973015 (+ -90112.0 f30-0)))) - (set! (-> s5-5 dir1 levels x) (- 1.0 (fmax 0.0 (fmin 1.0 f2-3)))) + (set! (-> s5-5 dir0 direction quad) (-> s4-1 quad)) + (set! (-> s5-5 dir0 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) + (set-vector! s4-1 1384448.0 (-> s3-0 y) -6688768.0 0.0) + (let ((f30-0 (vector-vector-distance s4-1 s3-0))) + (vector-! s4-1 s4-1 s3-0) + (vector-normalize! s4-1 1.0) + (set! (-> s5-5 dir1 direction quad) (-> s4-1 quad)) + (when (< f30-0 180224.0) + (new 'stack-no-clear 'vector) + (let ((f2-3 (* 0.0000110973015 (+ -90112.0 f30-0)))) + (set! (-> s5-5 dir1 levels x) (- 1.0 (fmax 0.0 (fmin 1.0 f2-3)))) + ) + ) ) - ) - ) - (set-vector! s4-1 1212416.0 (-> s3-0 y) -6680576.0 0.0) - (let ((f0-26 (vector-vector-distance s4-1 s3-0))) - (when (< f0-26 61440.0) - (let ((a2-10 (new 'stack-no-clear 'vector)) - (f0-27 (* 0.000016276043 f0-26)) - ) - (set-vector! a2-10 1.0 0.5 0.0 1.0) - (let ((f0-31 (* 0.5 (- 1.0 (fmax 0.0 (fmin 1.0 f0-27)))))) - (vector+float*! (-> s5-5 ambi color) (-> s5-5 ambi color) a2-10 f0-31) - ) + (set-vector! s4-1 1212416.0 (-> s3-0 y) -6680576.0 0.0) + (let ((f0-26 (vector-vector-distance s4-1 s3-0))) + (when (< f0-26 61440.0) + (let ((a2-10 (new 'stack-no-clear 'vector)) + (f0-27 (* 0.000016276043 f0-26)) + ) + (set-vector! a2-10 1.0 0.5 0.0 1.0) + (let ((f0-31 (* 0.5 (- 1.0 (fmax 0.0 (fmin 1.0 f0-27)))))) + (vector+float*! (-> s5-5 ambi color) (-> s5-5 ambi color) a2-10 f0-31) + ) + ) + ) ) - ) ) - ) (let ((s5-6 (new 'stack-no-clear 'vector)) (s4-2 (target-joint-pos)) ) - 0.0 - (set-vector! s5-6 1570816.0 98304.0 -6322176.0 1.0) - (let ((f0-37 (vector-vector-distance s5-6 s4-2))) - (when (< f0-37 49152.0) - (let ((f30-1 (* 0.000061035156 (+ -32768.0 f0-37)))) - (cond - ((movie?) - (set-target-light-index 1) - (set! (-> *time-of-day-context* target-interp) 1.0) + 0.0 + (set-vector! s5-6 1570816.0 98304.0 -6322176.0 1.0) + (let ((f0-37 (vector-vector-distance s5-6 s4-2))) + (when (< f0-37 49152.0) + (let ((f30-1 (* 0.000061035156 (+ -32768.0 f0-37)))) + (cond + ((movie?) + (set-target-light-index 1) + (set! (-> *time-of-day-context* target-interp) 1.0) + ) + (else + (set-target-light-index 1) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-1)))) + ) + ) + ) ) - (else - (set-target-light-index 1) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-1))) - ) - ) - ) ) - ) - ) - (set-vector! s5-6 1169408.0 61440.0 -6676480.0 1.0) - (let ((f0-46 (vector-vector-distance s5-6 s4-2))) - (when (< f0-46 167936.0) - (let ((f30-2 (* 0.000024414063 (+ -126976.0 f0-46)))) - (cond - ((movie?) - (set-target-light-index 6) - (set! (-> *time-of-day-context* target-interp) 1.0) + (set-vector! s5-6 1169408.0 61440.0 -6676480.0 1.0) + (let ((f0-46 (vector-vector-distance s5-6 s4-2))) + (when (< f0-46 167936.0) + (let ((f30-2 (* 0.000024414063 (+ -126976.0 f0-46)))) + (cond + ((movie?) + (set-target-light-index 6) + (set! (-> *time-of-day-context* target-interp) 1.0) + ) + (else + (set-target-light-index 6) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-2)))) + ) + ) + ) ) - (else - (set-target-light-index 6) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-2))) - ) - ) - ) ) - ) ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition for function update-mood-swamp -;; INFO: Return type mismatch int vs none. (defun update-mood-swamp ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) - (update-mood-lightning arg0 2 2 4 2 0.5 #f) - ) + (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) + (update-mood-lightning arg0 2 2 4 2 0.5 #f) + ) (let ((f30-0 (fmax 0.0 (-> *math-camera* camera-rot vector 1 z)))) - (let ((a2-4 (new 'stack-no-clear 'vector))) - (set-vector! a2-4 0.0 32.0 48.0 128.0) - (vector4-lerp! - (the-as vector (-> arg0 current-fog)) - (the-as vector (-> arg0 current-fog)) - a2-4 - (* 0.5 f30-0) - ) + (let ((a2-4 (new 'stack-no-clear 'vector))) + (set-vector! a2-4 0.0 32.0 48.0 128.0) + (vector4-lerp! (the-as vector (-> arg0 current-fog)) (the-as vector (-> arg0 current-fog)) a2-4 (* 0.5 f30-0)) + ) + (let ((f0-7 (-> arg0 current-fog fog-dists w)) + (f1-1 255.0) + ) + (set! (-> arg0 current-fog fog-dists w) (+ f0-7 (* 0.666 f30-0 (- f1-1 f0-7)))) + ) ) - (let ((f0-7 (-> arg0 current-fog fog-dists w)) - (f1-1 255.0) - ) - (set! - (-> arg0 current-fog fog-dists w) - (+ f0-7 (* 0.666 f30-0 (- f1-1 f0-7))) - ) - ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type village1-states (deftype village1-states (structure) ((flames flames-state :inline :offset-assert 0) ) @@ -1679,23 +1216,15 @@ :flag-assert #x900000004 ) -;; definition for method 3 of type village1-states -(defmethod inspect village1-states ((obj village1-states)) - (format #t "[~8x] ~A~%" obj 'village1-states) - (format #t "~Tflames: #~%" (-> obj flames)) - obj - ) -;; definition for function update-mood-village1 -;; INFO: Return type mismatch int vs none. (defun update-mood-village1 ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (if *time-of-day-effects* - (update-mood-flames arg0 5 1 0 0.5 0.001953125 1.0) - ) + (update-mood-flames arg0 5 1 0 0.5 0.001953125 1.0) + ) (update-light-kit (-> arg0 light-group 1) (-> arg0 light-group 0 ambi) 1.0) (update-light-kit (-> arg0 light-group 2) (-> arg0 light-group 0 ambi) 1.0) (update-light-kit (-> arg0 light-group 3) (-> arg0 light-group 0 ambi) 1.0) @@ -1706,138 +1235,116 @@ (let ((s5-1 (new 'stack-no-clear 'vector)) (s4-1 (target-joint-pos)) ) - 0.0 - (set-vector! s5-1 -524288.0 (-> s4-1 y) 856064.0 1.0) - (let ((f0-5 (vector-vector-distance s5-1 s4-1))) - (when (< f0-5 90112.0) - (let ((f30-0 (* 0.000061035156 (+ -73728.0 f0-5)))) - (cond - ((movie?) - (set-target-light-index 1) - (set! (-> *time-of-day-context* target-interp) 1.0) + 0.0 + (set-vector! s5-1 -524288.0 (-> s4-1 y) 856064.0 1.0) + (let ((f0-5 (vector-vector-distance s5-1 s4-1))) + (when (< f0-5 90112.0) + (let ((f30-0 (* 0.000061035156 (+ -73728.0 f0-5)))) + (cond + ((movie?) + (set-target-light-index 1) + (set! (-> *time-of-day-context* target-interp) 1.0) + ) + (else + (set-target-light-index 1) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-0)))) + ) + ) + ) ) - (else - (set-target-light-index 1) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-0))) - ) - ) - ) ) - ) - ) - (set-vector! s5-1 -253952.0 (-> s4-1 y) -116736.0 1.0) - (let ((f0-14 (vector-vector-distance s5-1 s4-1))) - (when (< f0-14 69632.0) - (let ((f30-1 (* 0.000061035156 (+ -53248.0 f0-14)))) - (cond - ((movie?) - (set-target-light-index 4) - (set! (-> *time-of-day-context* target-interp) 1.0) + (set-vector! s5-1 -253952.0 (-> s4-1 y) -116736.0 1.0) + (let ((f0-14 (vector-vector-distance s5-1 s4-1))) + (when (< f0-14 69632.0) + (let ((f30-1 (* 0.000061035156 (+ -53248.0 f0-14)))) + (cond + ((movie?) + (set-target-light-index 4) + (set! (-> *time-of-day-context* target-interp) 1.0) + ) + (else + (set-target-light-index 4) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-1)))) + ) + ) + ) ) - (else - (set-target-light-index 4) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-1))) - ) - ) - ) ) - ) - ) - (set-vector! s5-1 -518144.0 (-> s4-1 y) -73728.0 1.0) - (let ((f0-23 (vector-vector-distance s5-1 s4-1))) - (when (< f0-23 57344.0) - (let ((f30-2 (* 0.000061035156 (+ -40960.0 f0-23)))) - (cond - ((movie?) - (set-target-light-index 3) - (set! (-> *time-of-day-context* target-interp) 1.0) + (set-vector! s5-1 -518144.0 (-> s4-1 y) -73728.0 1.0) + (let ((f0-23 (vector-vector-distance s5-1 s4-1))) + (when (< f0-23 57344.0) + (let ((f30-2 (* 0.000061035156 (+ -40960.0 f0-23)))) + (cond + ((movie?) + (set-target-light-index 3) + (set! (-> *time-of-day-context* target-interp) 1.0) + ) + (else + (set-target-light-index 3) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-2)))) + ) + ) + ) ) - (else - (set-target-light-index 3) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-2))) - ) - ) - ) ) - ) - ) - (set-vector! s5-1 -450560.0 (-> s4-1 y) 178176.0 1.0) - (let ((f0-32 (vector-vector-distance s5-1 s4-1))) - (when (< f0-32 81920.0) - (let ((f30-3 (* 0.000061035156 (+ -65536.0 f0-32)))) - (cond - ((movie?) - (set-target-light-index 2) - (set! (-> *time-of-day-context* target-interp) 1.0) + (set-vector! s5-1 -450560.0 (-> s4-1 y) 178176.0 1.0) + (let ((f0-32 (vector-vector-distance s5-1 s4-1))) + (when (< f0-32 81920.0) + (let ((f30-3 (* 0.000061035156 (+ -65536.0 f0-32)))) + (cond + ((movie?) + (set-target-light-index 2) + (set! (-> *time-of-day-context* target-interp) 1.0) + ) + (else + (set-target-light-index 2) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-3)))) + ) + ) + ) ) - (else - (set-target-light-index 2) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-3))) - ) + ) + (set-vector! s5-1 -239616.0 (-> s4-1 y) 131072.0 1.0) + (let ((f0-41 (vector-vector-distance s5-1 s4-1))) + (when (< f0-41 57344.0) + (let ((f30-4 (* 0.000061035156 (+ -40960.0 f0-41)))) + (cond + ((movie?) + (set-target-light-index 5) + (set! (-> *time-of-day-context* target-interp) 1.0) + ) + (else + (set-target-light-index 5) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-4)))) + ) + ) + ) ) - ) ) - ) - ) - (set-vector! s5-1 -239616.0 (-> s4-1 y) 131072.0 1.0) - (let ((f0-41 (vector-vector-distance s5-1 s4-1))) - (when (< f0-41 57344.0) - (let ((f30-4 (* 0.000061035156 (+ -40960.0 f0-41)))) - (cond - ((movie?) - (set-target-light-index 5) - (set! (-> *time-of-day-context* target-interp) 1.0) + (set-vector! s5-1 -284672.0 (-> s4-1 y) 288768.0 1.0) + (let ((f0-50 (vector-vector-distance s5-1 s4-1))) + (when (< f0-50 77824.0) + (let ((f30-5 (* 0.000061035156 (+ -61440.0 f0-50)))) + (set-target-light-index 6) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-5)))) + ) ) - (else - (set-target-light-index 5) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-4))) - ) + ) + (set-vector! s5-1 -83968.0 (-> s4-1 y) -305152.0 1.0) + (let ((f0-58 (vector-vector-distance s5-1 s4-1))) + (when (< f0-58 61440.0) + (let ((f30-6 (* 0.000061035156 (+ -45056.0 f0-58)))) + (set-target-light-index 7) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-6)))) + ) ) - ) ) - ) ) - (set-vector! s5-1 -284672.0 (-> s4-1 y) 288768.0 1.0) - (let ((f0-50 (vector-vector-distance s5-1 s4-1))) - (when (< f0-50 77824.0) - (let ((f30-5 (* 0.000061035156 (+ -61440.0 f0-50)))) - (set-target-light-index 6) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-5))) - ) - ) - ) - ) - (set-vector! s5-1 -83968.0 (-> s4-1 y) -305152.0 1.0) - (let ((f0-58 (vector-vector-distance s5-1 s4-1))) - (when (< f0-58 61440.0) - (let ((f30-6 (* 0.000061035156 (+ -45056.0 f0-58)))) - (set-target-light-index 7) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-6))) - ) - ) - ) - ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type jungle-states (deftype jungle-states (structure) ((light light-state :inline :offset-assert 0) (time light-time-state :inline :offset-assert 1) @@ -1848,299 +1355,228 @@ :flag-assert #x900000003 ) -;; definition for method 3 of type jungle-states -(defmethod inspect jungle-states ((obj jungle-states)) - (format #t "[~8x] ~A~%" obj 'jungle-states) - (format #t "~Tlight: #~%" (-> obj light)) - (format #t "~Ttime: #~%" (-> obj time)) - (format #t "~Tone-shot: ~D~%" (-> obj one-shot)) - obj - ) -;; definition for function update-mood-jungle -;; INFO: Return type mismatch int vs none. (defun update-mood-jungle ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (cond - ((task-complete? *game-info* (game-task jungle-eggtop)) - (update-mood-light arg0 5 0 1 0.875 0.25 20.0 32) - (if (not (paused?)) - (+! (-> arg0 state 1) 1) + (cond + ((task-complete? *game-info* (game-task jungle-eggtop)) + (update-mood-light arg0 5 0 1 0.875 0.25 20.0 32) + (if (not (paused?)) + (+! (-> arg0 state 1) 1) + ) + ) + (else + (set! (-> arg0 state 1) (the-as uint 0)) + (set! (-> arg0 state 0) (the-as uint 255)) + ) ) - ) - (else - (set! (-> arg0 state 1) (the-as uint 0)) - (set! (-> arg0 state 0) (the-as uint 255)) - ) ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition for function update-mood-jungleb-blue (defun update-mood-jungleb-blue ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-light arg0 5 0 1 0.875 0.25 20.0 32) (+! (-> arg0 state 1) 1) (let ((v1-3 (-> arg0 mood-fog-table data))) - (set! (-> v1-3 0 fog-color x) 0.0) - (set! (-> v1-3 0 fog-color y) 16.0) - (set! (-> v1-3 0 fog-color z) 64.0) - (set! (-> v1-3 0 fog-color w) 128.0) - ) + (set! (-> v1-3 0 fog-color x) 0.0) + (set! (-> v1-3 0 fog-color y) 16.0) + (set! (-> v1-3 0 fog-color z) 64.0) + (set! (-> v1-3 0 fog-color w) 128.0) + ) (set! (-> arg0 mood-fog-table data 0 fog-dists x) 196608.0) (set-vector! (-> arg0 mood-fog-table data 0 erase-color) 0.0 0.0 0.0 128.0) (let ((v1-8 (-> arg0 mood-sun-table data))) - (set! (-> v1-8 0 sun-color x) 0.0) - (set! (-> v1-8 0 sun-color y) 0.0) - (set! (-> v1-8 0 sun-color z) 0.0) - (set! (-> v1-8 0 sun-color w) 0.0) - ) + (set! (-> v1-8 0 sun-color x) 0.0) + (set! (-> v1-8 0 sun-color y) 0.0) + (set! (-> v1-8 0 sun-color z) 0.0) + (set! (-> v1-8 0 sun-color w) 0.0) + ) (set-vector! (-> arg0 mood-sun-table data 0 env-color) 64.0 80.0 255.0 255.0) (let ((v1-12 (-> arg0 mood-lights-table data))) - (set! (-> v1-12 0 direction x) 0.0) - (set! (-> v1-12 0 direction y) -1.0) - (set! (-> v1-12 0 direction z) 0.0) - (set! (-> v1-12 0 direction w) 0.0) - ) - (set-vector! - (-> arg0 mood-lights-table data 0 lgt-color) - 0.0 - 0.0 - (* 1.5 (-> arg0 times 5 w)) - 1.0 - ) + (set! (-> v1-12 0 direction x) 0.0) + (set! (-> v1-12 0 direction y) -1.0) + (set! (-> v1-12 0 direction z) 0.0) + (set! (-> v1-12 0 direction w) 0.0) + ) + (set-vector! (-> arg0 mood-lights-table data 0 lgt-color) 0.0 0.0 (* 1.5 (-> arg0 times 5 w)) 1.0) (set-vector! (-> arg0 mood-lights-table data 0 amb-color) 0.4 0.433 0.7 1.0) (set-vector! - (-> arg0 mood-lights-table data 0 prt-color) - 0.2 - 0.216 - (+ 0.35 (* 0.375 (-> arg0 times 5 w))) - 1.0 - ) - (let ((v0-1 (-> arg0 mood-lights-table data 0 shadow))) - (set! (-> v0-1 x) 0.0) - (set! (-> v0-1 y) -1.0) - (set! (-> v0-1 z) 0.0) - (set! (-> v0-1 w) 0.0) - v0-1 - ) + (-> arg0 mood-lights-table data 0 prt-color) + 0.2 + 0.216 + (+ 0.35 (* 0.375 (-> arg0 times 5 w))) + 1.0 + ) + (set-vector! (-> arg0 mood-lights-table data 0 shadow) 0.0 -1.0 0.0 0.0) + (none) ) -;; definition for function update-mood-jungleb -;; INFO: Return type mismatch int vs none. -;; Used lq/sq (defun update-mood-jungleb ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (set! (-> arg0 times 0 w) 1.0) (when *time-of-day-effects* - (let ((v1-3 (get-reminder (get-task-control (game-task jungle-eggtop)) 0)) - (s3-0 (-> arg0 state 2)) + (let ((v1-3 (get-reminder (get-task-control (game-task jungle-eggtop)) 0)) + (s3-0 (-> arg0 state 2)) + ) + (cond + ((and (= v1-3 2) (nonzero? s3-0)) + (if (< (the-as uint 60) s3-0) + (set! (-> arg0 times 2 w) 2.0) + (set! (-> arg0 times 2 w) (* 0.033333335 (the float s3-0))) + ) + (if (not (paused?)) + (set! (-> arg0 state 2) (+ s3-0 -1)) + ) + (set! (-> arg0 times 1 w) 1.0) + (update-mood-jungleb-blue arg0 arg1 arg2) ) - (cond - ((and (= v1-3 2) (nonzero? s3-0)) - (if (< (the-as uint 60) s3-0) - (set! (-> arg0 times 2 w) 2.0) - (set! (-> arg0 times 2 w) (* 0.033333335 (the float s3-0))) - ) - (if (not (paused?)) - (set! (-> arg0 state 2) (+ s3-0 -1)) - ) - (set! (-> arg0 times 1 w) 1.0) - (update-mood-jungleb-blue arg0 arg1 arg2) + ((and (nonzero? v1-3) (!= s3-0 180)) + (set! (-> arg0 state 2) (the-as uint 0)) + (set! (-> arg0 times 1 w) 1.0) + (update-mood-jungleb-blue arg0 arg1 arg2) + ) + (else + (set! (-> arg0 state 2) (the-as uint 180)) + (set! (-> arg0 state 1) (the-as uint 0)) + (set! (-> arg0 state 0) (the-as uint 255)) + (let ((v1-15 (-> arg0 mood-fog-table data))) + (set! (-> v1-15 0 fog-color x) 0.0) + (set! (-> v1-15 0 fog-color y) 0.0) + (set! (-> v1-15 0 fog-color z) 0.0) + (set! (-> v1-15 0 fog-color w) 128.0) + ) + (set! (-> arg0 mood-fog-table data 0 fog-dists x) 98304.0) + (set-vector! (-> arg0 mood-fog-table data 0 erase-color) 0.0 0.0 0.0 128.0) + (let ((v1-20 (-> arg0 mood-sun-table data))) + (set! (-> v1-20 0 sun-color x) 0.0) + (set! (-> v1-20 0 sun-color y) 0.0) + (set! (-> v1-20 0 sun-color z) 0.0) + (set! (-> v1-20 0 sun-color w) 0.0) + ) + (set-vector! (-> arg0 mood-sun-table data 0 env-color) 48.0 60.0 96.0 255.0) + (let ((v1-24 (-> arg0 mood-lights-table data))) + (set! (-> v1-24 0 direction x) 0.0) + (set! (-> v1-24 0 direction y) 1.0) + (set! (-> v1-24 0 direction z) 0.0) + (set! (-> v1-24 0 direction w) 0.0) + ) + (set-vector! (-> arg0 mood-lights-table data 0 lgt-color) 0.287 0.283 0.4 1.0) + (set-vector! (-> arg0 mood-lights-table data 0 amb-color) 0.166125 0.2125 0.4 1.0) + (set-vector! (-> arg0 mood-lights-table data 0 prt-color) 0.14235 0.1645 0.2875 1.0) + (set-vector! (-> arg0 mood-lights-table data 0 shadow) 0.0 -1.0 0.0 0.0) + ) + ) ) - ((and (nonzero? v1-3) (!= s3-0 180)) - (set! (-> arg0 state 2) (the-as uint 0)) - (set! (-> arg0 times 1 w) 1.0) - (update-mood-jungleb-blue arg0 arg1 arg2) - ) - (else - (set! (-> arg0 state 2) (the-as uint 180)) - (set! (-> arg0 state 1) (the-as uint 0)) - (set! (-> arg0 state 0) (the-as uint 255)) - (let ((v1-15 (-> arg0 mood-fog-table data))) - (set! (-> v1-15 0 fog-color x) 0.0) - (set! (-> v1-15 0 fog-color y) 0.0) - (set! (-> v1-15 0 fog-color z) 0.0) - (set! (-> v1-15 0 fog-color w) 128.0) - ) - (set! (-> arg0 mood-fog-table data 0 fog-dists x) 98304.0) - (set-vector! - (-> arg0 mood-fog-table data 0 erase-color) - 0.0 - 0.0 - 0.0 - 128.0 - ) - (let ((v1-20 (-> arg0 mood-sun-table data))) - (set! (-> v1-20 0 sun-color x) 0.0) - (set! (-> v1-20 0 sun-color y) 0.0) - (set! (-> v1-20 0 sun-color z) 0.0) - (set! (-> v1-20 0 sun-color w) 0.0) - ) - (set-vector! - (-> arg0 mood-sun-table data 0 env-color) - 48.0 - 60.0 - 96.0 - 255.0 - ) - (let ((v1-24 (-> arg0 mood-lights-table data))) - (set! (-> v1-24 0 direction x) 0.0) - (set! (-> v1-24 0 direction y) 1.0) - (set! (-> v1-24 0 direction z) 0.0) - (set! (-> v1-24 0 direction w) 0.0) - ) - (set-vector! - (-> arg0 mood-lights-table data 0 lgt-color) - 0.287 - 0.283 - 0.4 - 1.0 - ) - (set-vector! - (-> arg0 mood-lights-table data 0 amb-color) - 0.166125 - 0.2125 - 0.4 - 1.0 - ) - (set-vector! - (-> arg0 mood-lights-table data 0 prt-color) - 0.14235 - 0.1645 - 0.2875 - 1.0 - ) - (set-vector! (-> arg0 mood-lights-table data 0 shadow) 0.0 -1.0 0.0 0.0) - ) - ) ) - ) (update-mood-quick arg0 0 0 0 arg2) (let ((s5-1 (-> arg0 light-group 1))) - (quad-copy! (the-as pointer s5-1) (the-as pointer (-> arg0 light-group)) 12) - (set! (-> s5-1 dir2 color quad) (the-as uint128 0)) - (set! (-> s5-1 dir2 levels x) 0.0) - ) - (let ((s5-2 (-> arg0 light-group 2))) - (quad-copy! (the-as pointer s5-2) (the-as pointer (-> arg0 light-group)) 12) - (let ((v1-34 (-> s5-2 dir2))) - (set! (-> v1-34 direction x) 0.0) - (set! (-> v1-34 direction y) 1.0) - (set! (-> v1-34 direction z) 0.0) - (set! (-> v1-34 direction w) 0.0) + (quad-copy! (the-as pointer s5-1) (the-as pointer (-> arg0 light-group)) 12) + (set! (-> s5-1 dir2 color quad) (the-as uint128 0)) + (set! (-> s5-1 dir2 levels x) 0.0) + ) + (let ((s5-2 (-> arg0 light-group 2))) + (quad-copy! (the-as pointer s5-2) (the-as pointer (-> arg0 light-group)) 12) + (let ((v1-34 (-> s5-2 dir2))) + (set! (-> v1-34 direction x) 0.0) + (set! (-> v1-34 direction y) 1.0) + (set! (-> v1-34 direction z) 0.0) + (set! (-> v1-34 direction w) 0.0) + ) + (set-vector! (-> s5-2 dir2 color) 0.0 0.5 0.75 1.0) + (set! (-> s5-2 dir2 levels x) 1.0) ) - (set-vector! (-> s5-2 dir2 color) 0.0 0.5 0.75 1.0) - (set! (-> s5-2 dir2 levels x) 1.0) - ) (let ((s4-1 (-> *jungle-mood* light-group 1)) (s3-1 (-> arg0 light-group 3)) ) - (let ((s5-3 (new 'stack-no-clear 'vector))) - (quad-copy! (the-as pointer s3-1) (the-as pointer (-> arg0 light-group)) 12) - (let ((v1-38 (-> s3-1 dir2))) - (set! (-> v1-38 direction x) 0.0) - (set! (-> v1-38 direction y) 1.0) - (set! (-> v1-38 direction z) 0.0) - (set! (-> v1-38 direction w) 0.0) - ) - (set-vector! (-> s3-1 dir2 color) 0.4 0.25 0.1 1.0) - (set! (-> s3-1 dir2 levels x) 1.0) - (set-vector! s5-3 0.25 0.25 0.25 0.0) - (vector+! - (the-as vector (-> s3-1 ambi color)) - (the-as vector (-> s3-1 ambi color)) - s5-3 - ) + (let ((s5-3 (new 'stack-no-clear 'vector))) + (quad-copy! (the-as pointer s3-1) (the-as pointer (-> arg0 light-group)) 12) + (let ((v1-38 (-> s3-1 dir2))) + (set! (-> v1-38 direction x) 0.0) + (set! (-> v1-38 direction y) 1.0) + (set! (-> v1-38 direction z) 0.0) + (set! (-> v1-38 direction w) 0.0) + ) + (set-vector! (-> s3-1 dir2 color) 0.4 0.25 0.1 1.0) + (set! (-> s3-1 dir2 levels x) 1.0) + (set-vector! s5-3 0.25 0.25 0.25 0.0) + (vector+! (the-as vector (-> s3-1 ambi color)) (the-as vector (-> s3-1 ambi color)) s5-3) + ) + (quad-copy! (the-as pointer s4-1) (the-as pointer s3-1) 12) ) - (quad-copy! (the-as pointer s4-1) (the-as pointer s3-1) 12) - ) (let ((s5-4 (new 'stack-no-clear 'vector)) (s4-2 (target-joint-pos)) ) - (set-vector! s5-4 1482752.0 (-> s4-2 y) -985088.0 1.0) - (let ((f0-70 (vector-vector-distance s5-4 s4-2))) - (when (< f0-70 81920.0) - (let ((f0-72 (* 0.000034877234 (+ -53248.0 f0-70))) - (a2-8 (new 'stack-no-clear 'vector)) - (v1-45 (-> arg0 light-group)) - (a0-19 (-> *jungle-mood* light-group)) - (f2-3 (* 0.0000030517579 (+ 163840.0 (-> s4-2 y)))) - ) - (set! *teleport* #t) - (let* ((f1-6 (- 1.0 (fmax 0.0 (fmin 1.0 f2-3)))) - (f0-76 (* (- 1.0 (fmax 0.0 (fmin 1.0 f0-72))) f1-6)) - ) - (let ((a1-13 (-> v1-45 0 dir2))) - (set! (-> a1-13 direction x) 0.0) - (set! (-> a1-13 direction y) 1.0) - (set! (-> a1-13 direction z) 0.0) - (set! (-> a1-13 direction w) 0.0) + (set-vector! s5-4 1482752.0 (-> s4-2 y) -985088.0 1.0) + (let ((f0-70 (vector-vector-distance s5-4 s4-2))) + (when (< f0-70 81920.0) + (let ((f0-72 (* 0.000034877234 (+ -53248.0 f0-70))) + (a2-8 (new 'stack-no-clear 'vector)) + (v1-45 (-> arg0 light-group)) + (a0-19 (-> *jungle-mood* light-group)) + (f2-3 (* 0.0000030517579 (+ 163840.0 (-> s4-2 y)))) + ) + (set! *teleport* #t) + (let* ((f1-6 (- 1.0 (fmax 0.0 (fmin 1.0 f2-3)))) + (f0-76 (* (- 1.0 (fmax 0.0 (fmin 1.0 f0-72))) f1-6)) + ) + (let ((a1-13 (-> v1-45 0 dir2))) + (set! (-> a1-13 direction x) 0.0) + (set! (-> a1-13 direction y) 1.0) + (set! (-> a1-13 direction z) 0.0) + (set! (-> a1-13 direction w) 0.0) + ) + (set-vector! (-> v1-45 0 dir2 color) 0.4 0.25 0.1 1.0) + (set! (-> v1-45 0 dir2 levels x) f0-76) + (let ((a1-15 (-> a0-19 0 dir2))) + (set! (-> a1-15 direction x) 0.0) + (set! (-> a1-15 direction y) 1.0) + (set! (-> a1-15 direction z) 0.0) + (set! (-> a1-15 direction w) 0.0) + ) + (set-vector! (-> a0-19 0 dir2 color) 0.4 0.25 0.1 1.0) + (set! (-> a0-19 0 dir2 levels x) f0-76) + (set-vector! a2-8 0.25 0.25 0.25 0.0) + (vector+! a2-8 a2-8 (the-as vector (-> v1-45 0 ambi color))) + (vector4-lerp! (-> v1-45 0 ambi color) (-> v1-45 0 ambi color) a2-8 f0-76) + ) + ) ) - (set-vector! (-> v1-45 0 dir2 color) 0.4 0.25 0.1 1.0) - (set! (-> v1-45 0 dir2 levels x) f0-76) - (let ((a1-15 (-> a0-19 0 dir2))) - (set! (-> a1-15 direction x) 0.0) - (set! (-> a1-15 direction y) 1.0) - (set! (-> a1-15 direction z) 0.0) - (set! (-> a1-15 direction w) 0.0) + ) + (set-vector! s5-4 1146880.0 (-> s4-2 y) -1232896.0 1.0) + (if (< (vector-vector-distance s5-4 s4-2) 10240.0) + (set! *teleport* #t) ) - (set-vector! (-> a0-19 0 dir2 color) 0.4 0.25 0.1 1.0) - (set! (-> a0-19 0 dir2 levels x) f0-76) - (set-vector! a2-8 0.25 0.25 0.25 0.0) - (vector+! a2-8 a2-8 (the-as vector (-> v1-45 0 ambi color))) - (vector4-lerp! - (-> v1-45 0 ambi color) - (-> v1-45 0 ambi color) - a2-8 - f0-76 + (set-vector! s5-4 1781760.0 -163840.0 -1038336.0 1.0) + (let ((f0-86 (vector-vector-distance s5-4 s4-2))) + (when (< f0-86 147456.0) + (let ((f30-0 (* 0.000030517578 (+ -114688.0 f0-86)))) + (set-target-light-index 2) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-0)))) + ) ) - ) ) - ) - ) - (set-vector! s5-4 1146880.0 (-> s4-2 y) -1232896.0 1.0) - (if (< (vector-vector-distance s5-4 s4-2) 10240.0) - (set! *teleport* #t) - ) - (set-vector! s5-4 1781760.0 -163840.0 -1038336.0 1.0) - (let ((f0-86 (vector-vector-distance s5-4 s4-2))) - (when (< f0-86 147456.0) - (let ((f30-0 (* 0.000030517578 (+ -114688.0 f0-86)))) - (set-target-light-index 2) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-0))) - ) + (set-vector! s5-4 1105920.0 -188416.0 -1204224.0 1.0) + (let ((f0-94 (vector-vector-distance s5-4 s4-2))) + (when (< f0-94 106496.0) + (let ((f30-1 (* 0.000030517578 (+ -73728.0 f0-94)))) + (set-target-light-index 2) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-1)))) + ) + ) ) - ) ) - (set-vector! s5-4 1105920.0 -188416.0 -1204224.0 1.0) - (let ((f0-94 (vector-vector-distance s5-4 s4-2))) - (when (< f0-94 106496.0) - (let ((f30-1 (* 0.000030517578 (+ -73728.0 f0-94)))) - (set-target-light-index 2) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-1))) - ) - ) - ) - ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type sunken-states (deftype sunken-states (structure) ((light light-state :inline :offset-assert 0) (time light-time-state :inline :offset-assert 1) @@ -2150,118 +1586,95 @@ :flag-assert #x900000002 ) -;; definition for method 3 of type sunken-states -(defmethod inspect sunken-states ((obj sunken-states)) - (format #t "[~8x] ~A~%" obj 'sunken-states) - (format #t "~Tlight: #~%" (-> obj light)) - (format #t "~Ttime: #~%" (-> obj time)) - obj - ) -;; failed to figure out what this is: (set! (-> *sunken-mood* state 0) (the-as uint 255)) -;; definition for function update-mood-sunken -;; INFO: Return type mismatch int vs none. -;; Used lq/sq (defun update-mood-sunken ((arg0 mood-context) (arg1 float) (arg2 int)) (local-vars (sv-80 vector)) (when (not (paused?)) - (update-mood-fog arg0 arg1) - (update-mood-sky-texture arg0 arg1) - (if (not (paused?)) - (+! (-> arg0 state 1) 1) - ) - (let ((f30-0 (update-mood-palette arg0 arg1 arg2)) - (f28-0 (* -0.00000055486504 (-> *math-camera* trans y))) - (s5-1 (-> arg0 light-group)) - ) - (when *time-of-day-effects* - (update-mood-light arg0 2 0 1 0.875 0.25 20.0 32) - (update-mood-caustics arg0 4 1) - (set! (-> arg0 times 3 w) (-> *palette-fade-controls* control 3 fade)) - (let ((a1-6 (new 'static 'vector :x 0.192 :y 0.192 :z 0.24)) - (a2-4 (new 'static 'vector :x 0.124 :y 0.124 :z 0.156)) - (s4-1 (new 'static 'vector :x 0.192 :y 0.192 :z 0.24)) - (s3-0 (new 'static 'vector :x 0.181 :y 0.181 :z 0.226)) - ) - (let ((v1-8 (-> s5-1 0))) - (set! (-> v1-8 dir0 direction x) 0.0) - (set! (-> v1-8 dir0 direction y) 1.0) - (set! (-> v1-8 dir0 direction z) 0.0) - (set! (-> v1-8 dir0 direction w) 1.0) - ) - (vector4-lerp! (-> s5-1 0 dir1 color) a1-6 a2-4 f28-0) - (let ((v1-9 (-> s5-1 0 dir1))) - (set! (-> v1-9 direction x) 0.0) - (set! (-> v1-9 direction y) 1.0) - (set! (-> v1-9 direction z) 0.0) - (set! (-> v1-9 direction w) 1.0) - ) - (vector4-lerp! (-> s5-1 0 dir0 color) s4-1 s3-0 f28-0) - ) - (let ((a1-8 (new 'static 'vector :x 0.104 :y 0.587 :z 1.074)) - (a2-6 (new 'static 'vector :x 0.228 :y 0.3 :z 0.52)) - (s4-2 (new 'static 'vector :x 0.101 :y 0.392 :z 1.064)) - (s3-1 (new 'static 'vector :x 0.132 :y 0.22 :z 0.52)) - (s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - ) - (vector4-lerp! s1-0 a1-8 a2-6 f28-0) - (vector4-lerp! s2-0 s4-2 s3-1 f28-0) - (vector4-lerp! (-> s5-1 0 ambi color) s2-0 s1-0 f30-0) - ) - (let ((s2-1 (new 'static 'vector :x 0.193 :y 0.432 :z 0.721)) - (s1-1 (new 'static 'vector :x 0.193 :y 0.338 :z 0.603)) - (s0-0 (new 'static 'vector :x 0.193 :y 0.336 :z 0.721)) - ) - (set! sv-80 (new 'static 'vector :x 0.215 :y 0.309 :z 0.674)) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (s4-3 (new 'stack-no-clear 'vector)) - (f26-3 - (+ - 0.75 - (* - 0.0625 - (cos (the float (* 4000 (-> *display* integral-frame-counter)))) - ) - (* - 0.0625 - (cos (the float (shl (-> *display* integral-frame-counter) 11))) - ) - (* - 0.125 - (cos (the float (* 1500 (-> *display* integral-frame-counter)))) - ) + (update-mood-fog arg0 arg1) + (update-mood-sky-texture arg0 arg1) + (if (not (paused?)) + (+! (-> arg0 state 1) 1) + ) + (let ((f30-0 (update-mood-palette arg0 arg1 arg2)) + (f28-0 (* -0.00000055486504 (-> *math-camera* trans y))) + (s5-1 (-> arg0 light-group)) + ) + (when *time-of-day-effects* + (update-mood-light arg0 2 0 1 0.875 0.25 20.0 32) + (update-mood-caustics arg0 4 1) + (set! (-> arg0 times 3 w) (-> *palette-fade-controls* control 3 fade)) + (let ((a1-6 (new 'static 'vector :x 0.192 :y 0.192 :z 0.24)) + (a2-4 (new 'static 'vector :x 0.124 :y 0.124 :z 0.156)) + (s4-1 (new 'static 'vector :x 0.192 :y 0.192 :z 0.24)) + (s3-0 (new 'static 'vector :x 0.181 :y 0.181 :z 0.226)) ) - ) + (let ((v1-8 (-> s5-1 0))) + (set! (-> v1-8 dir0 direction x) 0.0) + (set! (-> v1-8 dir0 direction y) 1.0) + (set! (-> v1-8 dir0 direction z) 0.0) + (set! (-> v1-8 dir0 direction w) 1.0) ) - (vector4-lerp! s3-2 s2-1 s1-1 f28-0) - (let ((t9-16 vector4-lerp!) - (a0-19 s4-3) - (a3-7 f28-0) - ) - (t9-16 a0-19 s0-0 sv-80 a3-7) + (vector4-lerp! (-> s5-1 0 dir1 color) a1-6 a2-4 f28-0) + (let ((v1-9 (-> s5-1 0 dir1))) + (set! (-> v1-9 direction x) 0.0) + (set! (-> v1-9 direction y) 1.0) + (set! (-> v1-9 direction z) 0.0) + (set! (-> v1-9 direction w) 1.0) + ) + (vector4-lerp! (-> s5-1 0 dir0 color) s4-1 s3-0 f28-0) + ) + (let ((a1-8 (new 'static 'vector :x 0.104 :y 0.587 :z 1.074)) + (a2-6 (new 'static 'vector :x 0.228 :y 0.3 :z 0.52)) + (s4-2 (new 'static 'vector :x 0.101 :y 0.392 :z 1.064)) + (s3-1 (new 'static 'vector :x 0.132 :y 0.22 :z 0.52)) + (s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + ) + (vector4-lerp! s1-0 a1-8 a2-6 f28-0) + (vector4-lerp! s2-0 s4-2 s3-1 f28-0) + (vector4-lerp! (-> s5-1 0 ambi color) s2-0 s1-0 f30-0) + ) + (let ((s2-1 (new 'static 'vector :x 0.193 :y 0.432 :z 0.721)) + (s1-1 (new 'static 'vector :x 0.193 :y 0.338 :z 0.603)) + (s0-0 (new 'static 'vector :x 0.193 :y 0.336 :z 0.721)) + ) + (set! sv-80 (new 'static 'vector :x 0.215 :y 0.309 :z 0.674)) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (s4-3 (new 'stack-no-clear 'vector)) + (f26-3 (+ 0.75 + (* 0.0625 (cos (the float (* 4000 (-> *display* integral-frame-counter))))) + (* 0.0625 (cos (the float (shl (-> *display* integral-frame-counter) 11)))) + (* 0.125 (cos (the float (* 1500 (-> *display* integral-frame-counter))))) + ) + ) + ) + (vector4-lerp! s3-2 s2-1 s1-1 f28-0) + (let ((t9-16 vector4-lerp!) + (a0-19 s4-3) + (a3-7 f28-0) + ) + (t9-16 a0-19 s0-0 sv-80 a3-7) + ) + (let ((v1-18 (-> s5-1 0 dir2))) + (set! (-> v1-18 direction x) 0.0) + (set! (-> v1-18 direction y) 0.999) + (set! (-> v1-18 direction z) 0.011) + (set! (-> v1-18 direction w) 1.0) + ) + (vector4-lerp! (-> s5-1 0 dir2 color) s4-3 s3-2 f30-0) + (set! (-> s5-1 0 dir2 levels x) f26-3) + ) + ) ) - (let ((v1-18 (-> s5-1 0 dir2))) - (set! (-> v1-18 direction x) 0.0) - (set! (-> v1-18 direction y) 0.999) - (set! (-> v1-18 direction z) 0.011) - (set! (-> v1-18 direction w) 1.0) - ) - (vector4-lerp! (-> s5-1 0 dir2 color) s4-3 s3-2 f30-0) - (set! (-> s5-1 0 dir2 levels x) f26-3) - ) ) - ) + (update-mood-itimes arg0) ) - (update-mood-itimes arg0) - ) 0 (none) ) -;; definition of type rolling-states (deftype rolling-states (structure) ((light0 light-state :inline :offset-assert 0) (light1 light-state :inline :offset-assert 1) @@ -2275,274 +1688,164 @@ :flag-assert #x900000006 ) -;; definition for method 3 of type rolling-states -(defmethod inspect rolling-states ((obj rolling-states)) - (format #t "[~8x] ~A~%" obj 'rolling-states) - (format #t "~Tlight0: #~%" (-> obj light0)) - (format #t "~Tlight1: #~%" (-> obj light1)) - (format #t "~Tlight2: #~%" (-> obj light2)) - (format #t "~Tlight3: #~%" (-> obj light3)) - (format #t "~Ttime: #~%" (-> obj time)) - (format #t "~Tlightning: #~%" (-> obj lightning)) - obj - ) -;; definition for symbol *rolling-spheres-on*, type (inline-array vector) -(define - *rolling-spheres-on* - (new 'static 'inline-array vector 11 - (new 'static 'vector :x -724992.0 :y 204800.0 :z -6635520.0 :w 24576.0) - (new 'static 'vector :x -692224.0 :y 204800.0 :z -6582272.0 :w 24576.0) - (new 'static 'vector :x -688128.0 :y 204800.0 :z -6520832.0 :w 24576.0) - (new 'static 'vector :x -712704.0 :y 204800.0 :z -6455296.0 :w 24576.0) - (new 'static 'vector :x -741376.0 :y 204800.0 :z -6369280.0 :w 24576.0) - (new 'static 'vector :x -774144.0 :y 204800.0 :z -6320128.0 :w 24576.0) - (new 'static 'vector :x -757760.0 :y 204800.0 :z -6234112.0 :w 24576.0) - (new 'static 'vector :x -696320.0 :y 204800.0 :z -6197248.0 :w 24576.0) - (new 'static 'vector :x -638976.0 :y 204800.0 :z -6164480.0 :w 24576.0) - (new 'static 'vector :x -749568.0 :y 110592.0 :z -6832128.0 :w 24576.0) - (new 'static 'vector :x -532480.0 :y 110592.0 :z -6017024.0 :w 24576.0) - ) - ) +(define *rolling-spheres-on* (new 'static 'inline-array vector 11 + (new 'static 'vector :x -724992.0 :y 204800.0 :z -6635520.0 :w 24576.0) + (new 'static 'vector :x -692224.0 :y 204800.0 :z -6582272.0 :w 24576.0) + (new 'static 'vector :x -688128.0 :y 204800.0 :z -6520832.0 :w 24576.0) + (new 'static 'vector :x -712704.0 :y 204800.0 :z -6455296.0 :w 24576.0) + (new 'static 'vector :x -741376.0 :y 204800.0 :z -6369280.0 :w 24576.0) + (new 'static 'vector :x -774144.0 :y 204800.0 :z -6320128.0 :w 24576.0) + (new 'static 'vector :x -757760.0 :y 204800.0 :z -6234112.0 :w 24576.0) + (new 'static 'vector :x -696320.0 :y 204800.0 :z -6197248.0 :w 24576.0) + (new 'static 'vector :x -638976.0 :y 204800.0 :z -6164480.0 :w 24576.0) + (new 'static 'vector :x -749568.0 :y 110592.0 :z -6832128.0 :w 24576.0) + (new 'static 'vector :x -532480.0 :y 110592.0 :z -6017024.0 :w 24576.0) + ) + ) -;; definition for symbol *rolling-spheres-light0*, type vector -(define - *rolling-spheres-light0* - (new 'static 'vector :x -524288.0 :y 110592.0 :z -6356992.0 :w 24576.0) - ) +(define *rolling-spheres-light0* (new 'static 'vector :x -524288.0 :y 110592.0 :z -6356992.0 :w 24576.0)) -;; definition for symbol *rolling-spheres-light1*, type (inline-array vector) -(define - *rolling-spheres-light1* - (new 'static 'inline-array vector 4 - (new 'static 'vector :x -454656.0 :y 114688.0 :z -7081984.0 :w 81920.0) - (new 'static 'vector :x -581632.0 :y 110592.0 :z -6410240.0 :w 24576.0) - (new 'static 'vector :x -1265664.0 :y 106496.0 :z -6492160.0 :w 24576.0) - (new 'static 'vector :x -1302528.0 :y 106496.0 :z -6434816.0 :w 24576.0) - ) - ) +(define *rolling-spheres-light1* (new 'static 'inline-array vector 4 + (new 'static 'vector :x -454656.0 :y 114688.0 :z -7081984.0 :w 81920.0) + (new 'static 'vector :x -581632.0 :y 110592.0 :z -6410240.0 :w 24576.0) + (new 'static 'vector :x -1265664.0 :y 106496.0 :z -6492160.0 :w 24576.0) + (new 'static 'vector :x -1302528.0 :y 106496.0 :z -6434816.0 :w 24576.0) + ) + ) -;; definition for symbol *rolling-spheres-light2*, type light-ellipse (define *rolling-spheres-light2* (new 'static 'light-ellipse - :matrix - (new 'static 'matrix - :vector - (new 'static 'inline-array vector 4 - (new 'static 'vector :x -581632.0 :y 114688.0 :z -6479872.0 :w 24576.0) - (new 'static 'vector :x -737280.0 :y 110592.0 :z -7159808.0 :w 24576.0) - (new 'static 'vector :x -733184.0 :y 110592.0 :z -7266304.0 :w 24576.0) - (new 'static 'vector :x -1363968.0 :y 110592.0 :z -6578176.0 :w 24576.0) - ) + :matrix + (new 'static 'matrix :vector (new 'static 'inline-array vector 4 + (new 'static 'vector :x -581632.0 :y 114688.0 :z -6479872.0 :w 24576.0) + (new 'static 'vector :x -737280.0 :y 110592.0 :z -7159808.0 :w 24576.0) + (new 'static 'vector :x -733184.0 :y 110592.0 :z -7266304.0 :w 24576.0) + (new 'static 'vector :x -1363968.0 :y 110592.0 :z -6578176.0 :w 24576.0) + ) + ) + :color + (new 'static 'rgbaf :x -1404928.0 :y 110592.0 :z -6541312.0 :w 24576.0) ) - :color - (new 'static 'rgbaf :x -1404928.0 :y 110592.0 :z -6541312.0 :w 24576.0) - ) ) -;; definition for symbol *rolling-spheres-light3*, type (inline-array vector) -(define - *rolling-spheres-light3* - (new 'static 'inline-array vector 2 - (new 'static 'vector :x -540672.0 :y 110592.0 :z -6549504.0 :w 24576.0) - (new 'static 'vector :x -774144.0 :y 204800.0 :z -6275072.0 :w 24576.0) - ) - ) +(define *rolling-spheres-light3* (new 'static 'inline-array vector 2 + (new 'static 'vector :x -540672.0 :y 110592.0 :z -6549504.0 :w 24576.0) + (new 'static 'vector :x -774144.0 :y 204800.0 :z -6275072.0 :w 24576.0) + ) + ) -;; definition for symbol *rolling-spheres-light4*, type vector -(define - *rolling-spheres-light4* - (new 'static 'vector :x -688128.0 :y 217088.0 :z -5697536.0 :w 143360.0) - ) +(define *rolling-spheres-light4* (new 'static 'vector :x -688128.0 :y 217088.0 :z -5697536.0 :w 143360.0)) -;; definition for function update-mood-rolling -;; INFO: Return type mismatch int vs none. (defun update-mood-rolling ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (update-mood-light arg0 4 0 4 0.875 0.25 arg1 32) - (update-mood-light arg0 5 1 4 0.875 0.25 arg1 0) - (update-mood-light arg0 6 2 4 0.875 0.25 arg1 96) - (update-mood-light arg0 7 3 4 0.875 0.25 arg1 64) - (if (not (paused?)) - (+! (-> arg0 state 4) 1) + (update-mood-light arg0 4 0 4 0.875 0.25 arg1 32) + (update-mood-light arg0 5 1 4 0.875 0.25 arg1 0) + (update-mood-light arg0 6 2 4 0.875 0.25 arg1 96) + (update-mood-light arg0 7 3 4 0.875 0.25 arg1 64) + (if (not (paused?)) + (+! (-> arg0 state 4) 1) + ) + (update-mood-lightning arg0 2 2 5 2 0.5 #t) ) - (update-mood-lightning arg0 2 2 5 2 0.5 #t) - ) (let ((a0-10 (-> arg0 light-group 1))) - (update-light-kit a0-10 (-> arg0 light-group 0 ambi) 1.0) - ) + (update-light-kit a0-10 (-> arg0 light-group 0 ambi) 1.0) + ) (dotimes (s5-1 4) - (let ((s4-1 (-> arg0 light-group (+ s5-1 2)))) - (update-light-kit s4-1 (-> arg0 light-group 0 ambi) 1.0) - (set! (-> s4-1 dir0 levels x) (-> arg0 times (+ s5-1 4) w)) + (let ((s4-1 (-> arg0 light-group (+ s5-1 2)))) + (update-light-kit s4-1 (-> arg0 light-group 0 ambi) 1.0) + (set! (-> s4-1 dir0 levels x) (-> arg0 times (+ s5-1 4) w)) + ) ) - ) (let ((s5-2 (-> arg0 light-group 6))) - (update-light-kit s5-2 (-> arg0 light-group 0 ambi) 1.0) - (set! - (-> s5-2 dir0 levels x) - (+ - (* 0.25 (-> arg0 times 4 w)) - (* 0.25 (-> arg0 times 5 w)) - (* 0.25 (-> arg0 times 6 w)) - (* 0.25 (-> arg0 times 7 w)) - ) + (update-light-kit s5-2 (-> arg0 light-group 0 ambi) 1.0) + (set! (-> s5-2 dir0 levels x) (+ (* 0.25 (-> arg0 times 4 w)) + (* 0.25 (-> arg0 times 5 w)) + (* 0.25 (-> arg0 times 6 w)) + (* 0.25 (-> arg0 times 7 w)) + ) + ) ) - ) (new 'stack-no-clear 'vector) (let ((s5-3 (target-joint-pos))) - 0.0 - (dotimes (s4-2 11) - (let ((f0-7 (vector-vector-distance (-> *rolling-spheres-on* s4-2) s5-3))) - (when (< f0-7 (-> *rolling-spheres-on* s4-2 w)) - (let - ((f30-0 - (/ - (- f0-7 (* 0.5 (-> *rolling-spheres-on* s4-2 w))) - (* 0.5 (-> *rolling-spheres-on* s4-2 w)) + 0.0 + (dotimes (s4-2 11) + (let ((f0-7 (vector-vector-distance (-> *rolling-spheres-on* s4-2) s5-3))) + (when (< f0-7 (-> *rolling-spheres-on* s4-2 w)) + (let ((f30-0 (/ (- f0-7 (* 0.5 (-> *rolling-spheres-on* s4-2 w))) (* 0.5 (-> *rolling-spheres-on* s4-2 w))))) + (set-target-light-index 1) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-0)))) + ) ) - ) ) - (set-target-light-index 1) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-0))) - ) - ) ) - ) - ) - (let - ((f0-11 - (vector-vector-distance - (the-as vector (&-> *rolling-spheres-light0* x)) - s5-3 - ) - ) - ) - (when (< f0-11 (-> *rolling-spheres-light0* w)) - (let - ((f30-1 - (/ - (- f0-11 (* 0.5 (-> *rolling-spheres-light0* w))) - (* 0.5 (-> *rolling-spheres-light0* w)) - ) - ) - ) - (set-target-light-index 2) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-1))) - ) - ) - ) - ) - (dotimes (s4-3 4) - (let - ((f0-15 (vector-vector-distance (-> *rolling-spheres-light1* s4-3) s5-3))) - (when (< f0-15 (-> *rolling-spheres-light1* s4-3 w)) - (let - ((f30-2 - (/ - (- f0-15 (* 0.5 (-> *rolling-spheres-light1* s4-3 w))) - (* 0.5 (-> *rolling-spheres-light1* s4-3 w)) + (let ((f0-11 (vector-vector-distance (the-as vector (&-> *rolling-spheres-light0* x)) s5-3))) + (when (< f0-11 (-> *rolling-spheres-light0* w)) + (let ((f30-1 (/ (- f0-11 (* 0.5 (-> *rolling-spheres-light0* w))) (* 0.5 (-> *rolling-spheres-light0* w))))) + (set-target-light-index 2) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-1)))) ) - ) ) - (set-target-light-index 3) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-2))) - ) - ) ) - ) - ) - (dotimes (s4-4 5) - (let - ((f0-19 - (vector-vector-distance - (the-as vector (+ (the-as uint *rolling-spheres-light2*) (* s4-4 16))) - s5-3 - ) - ) - ) - (when (< f0-19 (-> *rolling-spheres-light2* matrix vector s4-4 w)) - (let - ((f30-3 - (/ - (- f0-19 (* 0.5 (-> *rolling-spheres-light2* matrix vector s4-4 w))) - (* 0.5 (-> *rolling-spheres-light2* matrix vector s4-4 w)) + (dotimes (s4-3 4) + (let ((f0-15 (vector-vector-distance (-> *rolling-spheres-light1* s4-3) s5-3))) + (when (< f0-15 (-> *rolling-spheres-light1* s4-3 w)) + (let ((f30-2 + (/ (- f0-15 (* 0.5 (-> *rolling-spheres-light1* s4-3 w))) (* 0.5 (-> *rolling-spheres-light1* s4-3 w))) + ) + ) + (set-target-light-index 3) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-2)))) + ) ) - ) ) - (set-target-light-index 4) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-3))) - ) - ) ) - ) - ) - (dotimes (s4-5 2) - (let - ((f0-23 (vector-vector-distance (-> *rolling-spheres-light3* s4-5) s5-3))) - (when (< f0-23 (-> *rolling-spheres-light3* s4-5 w)) - (let - ((f30-4 - (/ - (- f0-23 (* 0.5 (-> *rolling-spheres-light3* s4-5 w))) - (* 0.5 (-> *rolling-spheres-light3* s4-5 w)) + (dotimes (s4-4 5) + (let ((f0-19 (vector-vector-distance (the-as vector (+ (the-as uint *rolling-spheres-light2*) (* s4-4 16))) s5-3))) + (when (< f0-19 (-> *rolling-spheres-light2* matrix vector s4-4 w)) + (let ((f30-3 (/ (- f0-19 (* 0.5 (-> *rolling-spheres-light2* matrix vector s4-4 w))) + (* 0.5 (-> *rolling-spheres-light2* matrix vector s4-4 w)) + ) + ) + ) + (set-target-light-index 4) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-3)))) + ) + ) + ) + ) + (dotimes (s4-5 2) + (let ((f0-23 (vector-vector-distance (-> *rolling-spheres-light3* s4-5) s5-3))) + (when (< f0-23 (-> *rolling-spheres-light3* s4-5 w)) + (let ((f30-4 + (/ (- f0-23 (* 0.5 (-> *rolling-spheres-light3* s4-5 w))) (* 0.5 (-> *rolling-spheres-light3* s4-5 w))) + ) + ) + (set-target-light-index 5) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-4)))) + ) + ) + ) + ) + (let ((f0-27 (vector-vector-distance (the-as vector (&-> *rolling-spheres-light4* x)) s5-3))) + (when (< f0-27 (-> *rolling-spheres-light4* w)) + (let ((f30-5 (/ (- f0-27 (* 0.5 (-> *rolling-spheres-light4* w))) (* 0.5 (-> *rolling-spheres-light4* w))))) + (set-target-light-index 6) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-5)))) ) - ) ) - (set-target-light-index 5) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-4))) - ) - ) ) - ) ) - (let - ((f0-27 - (vector-vector-distance - (the-as vector (&-> *rolling-spheres-light4* x)) - s5-3 - ) - ) - ) - (when (< f0-27 (-> *rolling-spheres-light4* w)) - (let - ((f30-5 - (/ - (- f0-27 (* 0.5 (-> *rolling-spheres-light4* w))) - (* 0.5 (-> *rolling-spheres-light4* w)) - ) - ) - ) - (set-target-light-index 6) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-5))) - ) - ) - ) - ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type firecanyon-states (deftype firecanyon-states (structure) ((lava lava-state :inline :offset-assert 0) ) @@ -2551,29 +1854,20 @@ :flag-assert #x900000012 ) -;; definition for method 3 of type firecanyon-states -(defmethod inspect firecanyon-states ((obj firecanyon-states)) - (format #t "[~8x] ~A~%" obj 'firecanyon-states) - (format #t "~Tlava: #~%" (-> obj lava)) - obj - ) -;; definition for function update-mood-firecanyon -;; INFO: Return type mismatch int vs none. (defun update-mood-firecanyon ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (if *time-of-day-effects* - (update-mood-lava arg0 4 0 #t) - ) + (update-mood-lava arg0 4 0 #t) + ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type training-states (deftype training-states (structure) ((light light-state :inline :offset-assert 0) (time light-time-state :inline :offset-assert 1) @@ -2583,33 +1877,23 @@ :flag-assert #x900000002 ) -;; definition for method 3 of type training-states -(defmethod inspect training-states ((obj training-states)) - (format #t "[~8x] ~A~%" obj 'training-states) - (format #t "~Tlight: #~%" (-> obj light)) - (format #t "~Ttime: #~%" (-> obj time)) - obj - ) -;; definition for function update-mood-training -;; INFO: Return type mismatch int vs none. (defun update-mood-training ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (update-mood-light arg0 5 0 1 0.875 0.25 arg1 32) - (if (not (paused?)) - (+! (-> arg0 state 1) 1) + (update-mood-light arg0 5 0 1 0.875 0.25 arg1 32) + (if (not (paused?)) + (+! (-> arg0 state 1) 1) + ) ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type maincave-states (deftype maincave-states (structure) ((flames flames-state :inline :offset-assert 0) ) @@ -2618,132 +1902,106 @@ :flag-assert #x900000004 ) -;; definition for method 3 of type maincave-states -(defmethod inspect maincave-states ((obj maincave-states)) - (format #t "[~8x] ~A~%" obj 'maincave-states) - (format #t "~Tflames: #~%" (-> obj flames)) - obj - ) -;; definition for function update-mood-maincave -;; INFO: Return type mismatch int vs none. (defun update-mood-maincave ((arg0 mood-context) (arg1 float) (arg2 int)) (when (not (paused?)) - (clear-mood-times arg0) - (set! (-> arg0 times 0 w) 1.0) - (update-mood-quick arg0 0 0 0 arg2) - (when *time-of-day-effects* - (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) - (set! (-> arg0 times 1 w) (-> *palette-fade-controls* control 1 fade)) - (set! (-> arg0 times 2 w) (-> *palette-fade-controls* control 2 fade)) - (set! (-> arg0 times 3 w) 1.0) - (let ((a0-4 (new 'stack-no-clear 'vector)) - (a1-3 (-> *math-camera* trans)) + (clear-mood-times arg0) + (set! (-> arg0 times 0 w) 1.0) + (update-mood-quick arg0 0 0 0 arg2) + (when *time-of-day-effects* + (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) + (set! (-> arg0 times 1 w) (-> *palette-fade-controls* control 1 fade)) + (set! (-> arg0 times 2 w) (-> *palette-fade-controls* control 2 fade)) + (set! (-> arg0 times 3 w) 1.0) + (let ((a0-4 (new 'stack-no-clear 'vector)) + (a1-3 (-> *math-camera* trans)) + ) + (set-vector! a0-4 4417536.0 86016.0 -13250560.0 1.0) + (let ((f0-8 (vector-vector-distance a0-4 a1-3))) + (when (< f0-8 483328.0) + (let ((f1-2 (* 0.0000048828124 (+ -278528.0 f0-8)))) + (set! (-> arg0 times 3 w) (fmax 0.0 (fmin 1.9 f1-2))) + ) + ) ) - (set-vector! a0-4 4417536.0 86016.0 -13250560.0 1.0) - (let ((f0-8 (vector-vector-distance a0-4 a1-3))) - (when (< f0-8 483328.0) - (let ((f1-2 (* 0.0000048828124 (+ -278528.0 f0-8)))) - (set! (-> arg0 times 3 w) (fmax 0.0 (fmin 1.9 f1-2))) ) - ) ) - ) + (update-mood-itimes arg0) ) - (update-mood-itimes arg0) - ) 0 (none) ) -;; definition for function update-mood-darkcave -;; INFO: Return type mismatch int vs none. -;; Used lq/sq (defun update-mood-darkcave ((arg0 mood-context) (arg1 float) (arg2 int)) (when (not (paused?)) - (clear-mood-times arg0) - (set! (-> arg0 times 0 w) 1.0) - (set-vector! (-> arg0 mood-lights-table data 0 prt-color) 0.0 0.0 0.0 0.0) - (when *time-of-day-effects* - (let ((f30-0 0.0) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (let ((s3-0 (new 'stack-no-clear 'vector))) - 0.0 - 0.0 - (set-vector! s4-0 0.0 -1.0 0.0 0.0) - (let ((s2-0 1) - (s1-0 7) + (clear-mood-times arg0) + (set! (-> arg0 times 0 w) 1.0) + (set-vector! (-> arg0 mood-lights-table data 0 prt-color) 0.0 0.0 0.0 0.0) + (when *time-of-day-effects* + (let ((f30-0 0.0) + (s4-0 (new 'stack-no-clear 'vector)) ) - (while (>= s1-0 s2-0) - (let ((f28-0 (-> *palette-fade-controls* control s2-0 fade))) - (set! (-> arg0 times s2-0 w) f28-0) - (vector-! - s3-0 - (the-as vector (-> *palette-fade-controls* control s2-0)) - (-> *target* control trans) - ) - (let* ((f3-0 (vector-length s3-0)) - (f28-1 - (* f28-0 (fmax 0.0 (fmin 1.0 (- 1.0 (* 0.000012207031 f3-0))))) - ) + (let ((s3-0 (new 'stack-no-clear 'vector))) + 0.0 + 0.0 + (set-vector! s4-0 0.0 -1.0 0.0 0.0) + (let ((s2-0 1) + (s1-0 7) ) - (vector-normalize! s3-0 f28-1) - (if (< f30-0 f28-1) - (set! f30-0 f28-1) - ) - ) - ) - (vector+! s4-0 s4-0 s3-0) - (+! s2-0 1) - ) - ) - ) - (let ((f0-14 (fmin 1.0 f30-0)) - (a2-1 (new 'static 'vector :y 1.0 :z 0.5 :w 1.0)) - (a1-8 (new 'static 'vector :x 0.3 :y 0.4 :z 0.5 :w 1.0)) - ) - (vector-lerp! - (-> arg0 mood-lights-table data 0 amb-color) - a1-8 - a2-1 - f0-14 - ) - ) - (set! - (-> arg0 mood-lights-table data 0 prt-color quad) - (-> arg0 mood-lights-table data 0 amb-color quad) - ) - (vector-normalize! s4-0 1.0) - (let ((v1-21 (-> arg0 mood-lights-table data 0 shadow))) - (set! (-> v1-21 x) (- (-> s4-0 x))) - (set! (-> v1-21 y) (- (-> s4-0 y))) - (set! (-> v1-21 z) (- (-> s4-0 z))) - (when (< (-> s4-0 y) 0.9063) - (let* ((f0-22 0.4226) - (f1-3 (-> v1-21 x)) - (f1-5 (* f1-3 f1-3)) - (f2-2 (-> v1-21 z)) - (f0-23 (/ f0-22 (sqrtf (+ f1-5 (* f2-2 f2-2))))) + (while (>= s1-0 s2-0) + (let ((f28-0 (-> *palette-fade-controls* control s2-0 fade))) + (set! (-> arg0 times s2-0 w) f28-0) + (vector-! s3-0 (the-as vector (-> *palette-fade-controls* control s2-0)) (-> *target* control trans)) + (let* ((f3-0 (vector-length s3-0)) + (f28-1 (* f28-0 (fmax 0.0 (fmin 1.0 (- 1.0 (* 0.000012207031 f3-0)))))) + ) + (vector-normalize! s3-0 f28-1) + (if (< f30-0 f28-1) + (set! f30-0 f28-1) + ) + ) + ) + (vector+! s4-0 s4-0 s3-0) + (+! s2-0 1) ) - (set! (-> v1-21 x) (* (-> v1-21 x) f0-23)) - (set! (-> v1-21 y) -0.9063) - (set! (-> v1-21 z) (* (-> v1-21 z) f0-23)) + ) + ) + (let ((f0-14 (fmin 1.0 f30-0)) + (a2-1 (new 'static 'vector :y 1.0 :z 0.5 :w 1.0)) + (a1-8 (new 'static 'vector :x 0.3 :y 0.4 :z 0.5 :w 1.0)) + ) + (vector-lerp! (-> arg0 mood-lights-table data 0 amb-color) a1-8 a2-1 f0-14) + ) + (set! (-> arg0 mood-lights-table data 0 prt-color quad) (-> arg0 mood-lights-table data 0 amb-color quad)) + (vector-normalize! s4-0 1.0) + (let ((v1-21 (-> arg0 mood-lights-table data 0 shadow))) + (set! (-> v1-21 x) (- (-> s4-0 x))) + (set! (-> v1-21 y) (- (-> s4-0 y))) + (set! (-> v1-21 z) (- (-> s4-0 z))) + (when (< (-> s4-0 y) 0.9063) + (let* ((f0-22 0.4226) + (f1-3 (-> v1-21 x)) + (f1-5 (* f1-3 f1-3)) + (f2-2 (-> v1-21 z)) + (f0-23 (/ f0-22 (sqrtf (+ f1-5 (* f2-2 f2-2))))) + ) + (set! (-> v1-21 x) (* (-> v1-21 x) f0-23)) + (set! (-> v1-21 y) -0.9063) + (set! (-> v1-21 z) (* (-> v1-21 z) f0-23)) + ) + ) + ) ) - ) ) - ) + (set! *teleport* #t) + (update-mood-quick arg0 0 0 0 arg2) + (set-vector! (-> arg0 current-shadow-color) 0.25 0.25 0.25 1.0) + (update-mood-itimes arg0) ) - (set! *teleport* #t) - (update-mood-quick arg0 0 0 0 arg2) - (set-vector! (-> arg0 current-shadow-color) 0.25 0.25 0.25 1.0) - (update-mood-itimes arg0) - ) 0 (none) ) -;; definition of type robocave-states (deftype robocave-states (structure) ((flames flames-state :inline :offset-assert 0) ) @@ -2752,28 +2010,19 @@ :flag-assert #x900000004 ) -;; definition for method 3 of type robocave-states -(defmethod inspect robocave-states ((obj robocave-states)) - (format #t "[~8x] ~A~%" obj 'robocave-states) - (format #t "~Tflames: #~%" (-> obj flames)) - obj - ) -;; definition for function update-mood-robocave -;; INFO: Return type mismatch int vs none. (defun update-mood-robocave ((arg0 mood-context) (arg1 float) (arg2 int)) (clear-mood-times arg0) (set! (-> arg0 times 0 w) 1.0) (if *time-of-day-effects* - (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) - ) + (update-mood-flames arg0 4 4 0 0.333 0.001953125 1.0) + ) (update-mood-quick arg0 0 0 0 arg2) (update-mood-itimes arg0) 0 (none) ) -;; definition of type snow-states (deftype snow-states (structure) ((flames flames-state :inline :offset-assert 0) (light light-state :inline :offset-assert 4) @@ -2786,81 +2035,68 @@ :flag-assert #x90000000c ) -;; definition for method 3 of type snow-states -(defmethod inspect snow-states ((obj snow-states)) - (format #t "[~8x] ~A~%" obj 'snow-states) - (format #t "~Tflames: #~%" (-> obj flames)) - (format #t "~Tlight: #~%" (-> obj light)) - (format #t "~Ttime: #~%" (-> obj time)) - (format #t "~Tone-shot: ~D~%" (-> obj one-shot)) - (format #t "~Tinterp: ~f~%" (-> obj interp)) - obj - ) -;; definition for function update-mood-snow -;; INFO: Return type mismatch int vs none. (defun update-mood-snow ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (update-mood-flames arg0 4 3 0 0.45 0.001953125 1.0) - (let ((s5-1 (the-as object (-> arg0 state)))) - (let ((v1-3 (get-reminder (get-task-control (game-task snow-eggtop)) 4)) - (s4-1 (-> (the-as (pointer uint8) s5-1) 6)) - ) - (cond - ((and (= v1-3 2) (nonzero? s4-1)) - (if (< (the-as uint 60) s4-1) - (set! (-> arg0 times 7 w) 2.0) - (set! (-> arg0 times 7 w) (* 0.033333335 (the float s4-1))) - ) - (if (not (paused?)) - (set! (-> (the-as (pointer uint8) s5-1) 6) (+ s4-1 -1)) - ) - ) - ((and (nonzero? v1-3) (!= s4-1 180)) - (set! (-> arg0 state 6) (the-as uint 0)) - (update-mood-light arg0 7 4 5 0.875 0.25 20.0 32) - (if (not (paused?)) - (+! (-> arg0 state 5) 1) - ) - ) - (else - (set! (-> arg0 state 6) (the-as uint 180)) - (set! (-> arg0 state 5) (the-as uint 0)) - (set! (-> arg0 state 4) (the-as uint 255)) - ) - ) - ) - (let ((f30-0 (-> (the-as vector s5-1) z))) - (when (not (paused?)) - (let ((f0-4 (if *weather-off* - (+ 0.1 f30-0) - (+ -0.1 f30-0) - ) - ) + (update-mood-flames arg0 4 3 0 0.45 0.001953125 1.0) + (let ((s5-1 (the-as snow-states (-> arg0 state)))) + (let ((v1-3 (get-reminder (get-task-control (game-task snow-eggtop)) 4)) + (s4-1 (-> s5-1 one-shot)) ) - (set! f30-0 (fmax 0.0 (fmin 1.0 f0-4))) - ) - (set! (-> (the-as vector s5-1) z) f30-0) + (cond + ((and (= v1-3 2) (nonzero? s4-1)) + (if (< (the-as uint 60) s4-1) + (set! (-> arg0 times 7 w) 2.0) + (set! (-> arg0 times 7 w) (* 0.033333335 (the float s4-1))) + ) + (if (not (paused?)) + (set! (-> s5-1 one-shot) (+ s4-1 -1)) + ) + ) + ((and (nonzero? v1-3) (!= s4-1 180)) + (set! (-> arg0 state 6) (the-as uint 0)) + (update-mood-light arg0 7 4 5 0.875 0.25 20.0 32) + (if (not (paused?)) + (+! (-> arg0 state 5) 1) + ) + ) + (else + (set! (-> arg0 state 6) (the-as uint 180)) + (set! (-> arg0 state 5) (the-as uint 0)) + (set! (-> arg0 state 4) (the-as uint 255)) + ) + ) + ) + (let ((f30-0 (-> s5-1 interp))) + (when (not (paused?)) + (let ((f0-4 (if *weather-off* + (+ 0.1 f30-0) + (+ -0.1 f30-0) + ) + ) + ) + (set! f30-0 (fmax 0.0 (fmin 1.0 f0-4))) + ) + (set! (-> s5-1 interp) f30-0) + ) + (vector4-lerp! + (-> arg0 current-sun env-color) + (-> arg0 current-sun env-color) + (-> arg0 mood-sun-table data 6 env-color) + f30-0 + ) + ) ) - (vector4-lerp! - (-> arg0 current-sun env-color) - (-> arg0 current-sun env-color) - (-> arg0 mood-sun-table data 6 env-color) - f30-0 - ) - ) ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type village3-states (deftype village3-states (structure) ((flames flames-state :inline :offset-assert 0) (scale float :offset-assert 4) @@ -2873,270 +2109,206 @@ :flag-assert #x900000021 ) -;; definition for method 3 of type village3-states -(defmethod inspect village3-states ((obj village3-states)) - (format #t "[~8x] ~A~%" obj 'village3-states) - (format #t "~Tflames: #~%" (-> obj flames)) - (format #t "~Tscale: ~f~%" (-> obj scale)) - (format #t "~Tlava: #~%" (-> obj lava)) - (format #t "~Tlava-time: ~f~%" (-> obj lava-time)) - (format #t "~Ttime: ~D~%" (-> obj time)) - obj - ) -;; definition for function update-mood-village3 -;; INFO: Return type mismatch int vs none. (defun update-mood-village3 ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (update-mood-flames arg0 4 3 0 0.5 0.001953125 1.0) - (let ((s3-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - (s5-1 (new 'stack-no-clear 'vector)) - ) - (let ((v1-3 (-> arg0 mood-lights-table data))) - (set! (-> v1-3 0 direction x) -0.067) - (set! (-> v1-3 0 direction y) 0.25) - (set! (-> v1-3 0 direction z) 0.966) - (set! (-> v1-3 0 direction w) 0.0) - ) - (set-vector! (-> arg0 mood-lights-table data 0 lgt-color) 0.0 0.0 0.0 1.0) - (set-vector! - (-> arg0 mood-lights-table data 0 amb-color) - 0.449 - 0.35 - 0.599 - 1.0 - ) - (let ((v1-9 (-> arg0 mood-lights-table data 1))) - (set! (-> v1-9 direction x) 0.259) - (set! (-> v1-9 direction y) 0.966) - (set! (-> v1-9 direction z) 0.0) - (set! (-> v1-9 direction w) 0.0) - ) - (set-vector! - (-> arg0 mood-lights-table data 1 lgt-color) - 0.66 - 0.436 - 0.291 - 1.0 - ) - (set-vector! - (-> arg0 mood-lights-table data 1 amb-color) - 0.358 - 0.575 - 0.716 - 1.0 - ) - (let ((v1-15 (-> arg0 mood-lights-table data 2))) - (set! (-> v1-15 direction x) -0.067) - (set! (-> v1-15 direction y) 0.25) - (set! (-> v1-15 direction z) -0.966) - (set! (-> v1-15 direction w) 0.0) - ) - (set-vector! (-> arg0 mood-lights-table data 2 lgt-color) 0.0 0.0 0.0 1.0) - (set-vector! - (-> arg0 mood-lights-table data 2 amb-color) - 0.383 - 0.366 - 0.599 - 1.0 - ) - (let ((v1-21 (-> arg0 mood-lights-table data 3))) - (set! (-> v1-21 direction x) 0.866) - (set! (-> v1-21 direction y) 0.5) - (set! (-> v1-21 direction z) 0.0) - (set! (-> v1-21 direction w) 0.0) - ) - (set-vector! (-> arg0 mood-lights-table data 3 lgt-color) 0.0 0.0 0.0 1.0) - (set-vector! - (-> arg0 mood-lights-table data 3 amb-color) - 0.304 - 0.409 - 0.76 - 1.0 - ) - (let ((s0-0 (-> arg0 light-group 1))) - (update-light-kit s0-0 (-> arg0 light-group 0 ambi) 1.25) - (set! (-> s0-0 dir2 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) - ) - (let ((s0-1 (-> arg0 light-group 2))) - (update-light-kit s0-1 (-> arg0 light-group 0 ambi) 1.25) - (set! (-> s0-1 dir2 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) - ) - (let ((v1-28 (new 'static 'vector :x 4605890.5 :z -14253220.0 :w 1.0)) - (a0-8 (new 'stack-no-clear 'vector)) + (update-mood-flames arg0 4 3 0 0.5 0.001953125 1.0) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s5-1 (new 'stack-no-clear 'vector)) ) - 0.0 - (vector-! a0-8 (-> *target* control trans) v1-28) - (set! (-> a0-8 y) 0.0) - (let ((f0-54 (vector-length a0-8))) - (set-vector! s3-0 0.19 0.128 0.128 1.0) - (set-vector! s5-1 0.0 1.0 0.0 0.0) - (set-vector! s4-0 0.31 0.372 0.372 0.0) - (cond - ((>= 532480.0 f0-54) - (let* ((f1-18 (* 0.000008138021 (+ -409600.0 f0-54))) - (a1-9 (new 'static 'vector :x 0.66 :y 0.436 :z 0.291)) - (a2-8 (new 'static 'vector :x 0.19 :y 0.128 :z 0.128)) - (f30-0 (fmax 0.0 (fmin 1.0 f1-18))) - ) - (vector-lerp! s2-0 a1-9 a2-8 f30-0) - (let ((s0-2 (the-as structure (-> arg0 state)))) - (when (not (paused?)) - (set! (-> (the-as (array int8) s0-2) 20) (the int (+ 4.0 arg1))) - (+! - (-> (the-as (array float) s0-2) 4) - (rand-vu-float-range 64.0 2048.0) + (let ((v1-3 (-> arg0 mood-lights-table data))) + (set! (-> v1-3 0 direction x) -0.067) + (set! (-> v1-3 0 direction y) 0.25) + (set! (-> v1-3 0 direction z) 0.966) + (set! (-> v1-3 0 direction w) 0.0) + ) + (set-vector! (-> arg0 mood-lights-table data 0 lgt-color) 0.0 0.0 0.0 1.0) + (set-vector! (-> arg0 mood-lights-table data 0 amb-color) 0.449 0.35 0.599 1.0) + (let ((v1-9 (-> arg0 mood-lights-table data 1))) + (set! (-> v1-9 direction x) 0.259) + (set! (-> v1-9 direction y) 0.966) + (set! (-> v1-9 direction z) 0.0) + (set! (-> v1-9 direction w) 0.0) + ) + (set-vector! (-> arg0 mood-lights-table data 1 lgt-color) 0.66 0.436 0.291 1.0) + (set-vector! (-> arg0 mood-lights-table data 1 amb-color) 0.358 0.575 0.716 1.0) + (let ((v1-15 (-> arg0 mood-lights-table data 2))) + (set! (-> v1-15 direction x) -0.067) + (set! (-> v1-15 direction y) 0.25) + (set! (-> v1-15 direction z) -0.966) + (set! (-> v1-15 direction w) 0.0) + ) + (set-vector! (-> arg0 mood-lights-table data 2 lgt-color) 0.0 0.0 0.0 1.0) + (set-vector! (-> arg0 mood-lights-table data 2 amb-color) 0.383 0.366 0.599 1.0) + (let ((v1-21 (-> arg0 mood-lights-table data 3))) + (set! (-> v1-21 direction x) 0.866) + (set! (-> v1-21 direction y) 0.5) + (set! (-> v1-21 direction z) 0.0) + (set! (-> v1-21 direction w) 0.0) + ) + (set-vector! (-> arg0 mood-lights-table data 3 lgt-color) 0.0 0.0 0.0 1.0) + (set-vector! (-> arg0 mood-lights-table data 3 amb-color) 0.304 0.409 0.76 1.0) + (let ((s0-0 (-> arg0 light-group 1))) + (update-light-kit s0-0 (-> arg0 light-group 0 ambi) 1.25) + (set! (-> s0-0 dir2 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) + ) + (let ((s0-1 (-> arg0 light-group 2))) + (update-light-kit s0-1 (-> arg0 light-group 0 ambi) 1.25) + (set! (-> s0-1 dir2 levels x) (+ 0.666 (* 0.333 (-> arg0 times 4 w)))) + ) + (let ((v1-28 (new 'static 'vector :x 4605890.5 :z -14253220.0 :w 1.0)) + (a0-8 (new 'stack-no-clear 'vector)) ) - ) - (-> arg0 mood-lights-table data 7) - (let* ((s1-1 (-> arg0 light-group 0 dir2)) - (f1-21 - (+ 0.875 (* 0.125 (sin (-> (the-as (array float) s0-2) 4)))) - ) - (f0-66 (* 3.52 f1-21)) + 0.0 + (vector-! a0-8 (-> *target* control trans) v1-28) + (set! (-> a0-8 y) 0.0) + (let ((f0-54 (vector-length a0-8))) + (set-vector! s3-0 0.19 0.128 0.128 1.0) + (set-vector! s5-1 0.0 1.0 0.0 0.0) + (set-vector! s4-0 0.31 0.372 0.372 0.0) + (cond + ((>= 532480.0 f0-54) + (let* ((f1-18 (* 0.000008138021 (+ -409600.0 f0-54))) + (a1-9 (new 'static 'vector :x 0.66 :y 0.436 :z 0.291)) + (a2-8 (new 'static 'vector :x 0.19 :y 0.128 :z 0.128)) + (f30-0 (fmax 0.0 (fmin 1.0 f1-18))) + ) + (vector-lerp! s2-0 a1-9 a2-8 f30-0) + (let ((s0-2 (the-as village3-states (-> arg0 state)))) + (when (not (paused?)) + (set! (-> s0-2 time) (the-as uint (the int (+ 4.0 arg1)))) + (+! (-> s0-2 lava-time) (rand-vu-float-range 64.0 2048.0)) + ) + (-> arg0 mood-lights-table data 7) + (let* ((s1-1 (-> arg0 light-group 0 dir2)) + (f1-21 (+ 0.875 (* 0.125 (sin (-> s0-2 lava-time))))) + (f0-66 (* 3.52 f1-21)) + ) + (set-vector! (-> s1-1 direction) 0.0 -1.0 0.0 0.0) + (set-vector! (-> s1-1 color) 1.0 0.38 0.0 1.0) + (set! (-> s1-1 levels x) (* f1-21 (- 1.0 f30-0))) + (set! (-> s1-1 levels y) (* f0-66 (- 1.0 f30-0))) + ) + (let ((f30-1 (* 0.015625 (the float (logand (-> s0-2 time) 63))))) + (set! (-> s0-2 scale) (the float (the int (rand-vu-float-range 128.0 255.0)))) + (set! (-> arg0 times 7 w) (* f30-1 (-> s0-2 scale))) + ) ) - (set-vector! (-> s1-1 direction) 0.0 -1.0 0.0 0.0) - (set-vector! (-> s1-1 color) 1.0 0.38 0.0 1.0) - (set! (-> s1-1 levels x) (* f1-21 (- 1.0 f30-0))) - (set! (-> s1-1 levels y) (* f0-66 (- 1.0 f30-0))) - ) - (let - ((f30-1 - (* - 0.015625 - (the float (logand (-> (the-as (array uint8) s0-2) 20) 63)) - ) + ) ) + (else + (set-vector! s2-0 0.19 0.128 0.128 1.0) + ) ) - (set! - (-> (the-as matrix s0-2) vector 0 y) - (the float (the int (rand-vu-float-range 128.0 255.0))) - ) - (set! - (-> arg0 times 7 w) - (* f30-1 (-> (the-as matrix s0-2) vector 0 y)) - ) - ) ) - ) ) - (else - (set-vector! s2-0 0.19 0.128 0.128 1.0) - ) - ) - ) - ) - (let ((s1-2 (new 'stack-no-clear 'vector)) - (a1-12 (target-joint-pos)) + (let ((s1-2 (new 'stack-no-clear 'vector)) + (a1-12 (target-joint-pos)) + ) + 0.0 + (set-vector! s1-2 4454400.0 196608.0 -14725120.0 1.0) + (let ((f0-83 (vector-vector-distance s1-2 a1-12))) + (when (< f0-83 122880.0) + (let ((f30-2 (* 0.000016276043 (+ -61440.0 f0-83)))) + (set-target-light-index 2) + (set! (-> *time-of-day-context* target-interp) (- 1.0 (fmax 0.0 (fmin 1.0 f30-2)))) + ) + ) + ) + ) + (let* ((f1-33 (* 0.0000044389203 (+ -184320.0 (-> *math-camera* trans y)))) + (f30-3 (fmax 0.0 (fmin 1.0 f1-33))) + ) + (let ((v1-49 (-> arg0 light-group 0 dir2))) + (set! (-> v1-49 levels x) (* (-> v1-49 levels x) (- 1.0 f30-3))) + (set! (-> v1-49 levels y) (* (-> v1-49 levels y) (- 1.0 f30-3))) + ) + (vector-lerp! + (-> arg0 mood-lights-table data 0 lgt-color) + s3-0 + (-> arg0 mood-lights-table data 0 lgt-color) + f30-3 + ) + (vector-lerp! + (-> arg0 mood-lights-table data 1 lgt-color) + s2-0 + (-> arg0 mood-lights-table data 1 lgt-color) + f30-3 + ) + (vector-lerp! + (-> arg0 mood-lights-table data 2 lgt-color) + s3-0 + (-> arg0 mood-lights-table data 2 lgt-color) + f30-3 + ) + (vector-lerp! + (-> arg0 mood-lights-table data 3 lgt-color) + s3-0 + (-> arg0 mood-lights-table data 3 lgt-color) + f30-3 + ) + (vector-lerp! + (-> arg0 mood-lights-table data 0 amb-color) + s4-0 + (-> arg0 mood-lights-table data 0 amb-color) + f30-3 + ) + (vector-lerp! + (-> arg0 mood-lights-table data 1 amb-color) + s4-0 + (-> arg0 mood-lights-table data 1 amb-color) + f30-3 + ) + (vector-lerp! + (-> arg0 mood-lights-table data 2 amb-color) + s4-0 + (-> arg0 mood-lights-table data 2 amb-color) + f30-3 + ) + (vector-lerp! + (-> arg0 mood-lights-table data 3 amb-color) + s4-0 + (-> arg0 mood-lights-table data 3 amb-color) + f30-3 + ) + (vector-lerp! + (the-as vector (-> arg0 mood-lights-table data)) + s5-1 + (the-as vector (-> arg0 mood-lights-table data)) + f30-3 + ) + (vector-lerp! + (the-as vector (-> arg0 mood-lights-table data 1)) + s5-1 + (the-as vector (-> arg0 mood-lights-table data 1)) + f30-3 + ) + (vector-lerp! + (the-as vector (-> arg0 mood-lights-table data 2)) + s5-1 + (the-as vector (-> arg0 mood-lights-table data 2)) + f30-3 + ) + (vector-lerp! + (the-as vector (-> arg0 mood-lights-table data 3)) + s5-1 + (the-as vector (-> arg0 mood-lights-table data 3)) + f30-3 ) - 0.0 - (set-vector! s1-2 4454400.0 196608.0 -14725120.0 1.0) - (let ((f0-83 (vector-vector-distance s1-2 a1-12))) - (when (< f0-83 122880.0) - (let ((f30-2 (* 0.000016276043 (+ -61440.0 f0-83)))) - (set-target-light-index 2) - (set! - (-> *time-of-day-context* target-interp) - (- 1.0 (fmax 0.0 (fmin 1.0 f30-2))) - ) ) - ) ) - ) - (let* ((f1-33 (* 0.0000044389203 (+ -184320.0 (-> *math-camera* trans y)))) - (f30-3 (fmax 0.0 (fmin 1.0 f1-33))) - ) - (let ((v1-49 (-> arg0 light-group 0 dir2))) - (set! (-> v1-49 levels x) (* (-> v1-49 levels x) (- 1.0 f30-3))) - (set! (-> v1-49 levels y) (* (-> v1-49 levels y) (- 1.0 f30-3))) - ) - (vector-lerp! - (-> arg0 mood-lights-table data 0 lgt-color) - s3-0 - (-> arg0 mood-lights-table data 0 lgt-color) - f30-3 - ) - (vector-lerp! - (-> arg0 mood-lights-table data 1 lgt-color) - s2-0 - (-> arg0 mood-lights-table data 1 lgt-color) - f30-3 - ) - (vector-lerp! - (-> arg0 mood-lights-table data 2 lgt-color) - s3-0 - (-> arg0 mood-lights-table data 2 lgt-color) - f30-3 - ) - (vector-lerp! - (-> arg0 mood-lights-table data 3 lgt-color) - s3-0 - (-> arg0 mood-lights-table data 3 lgt-color) - f30-3 - ) - (vector-lerp! - (-> arg0 mood-lights-table data 0 amb-color) - s4-0 - (-> arg0 mood-lights-table data 0 amb-color) - f30-3 - ) - (vector-lerp! - (-> arg0 mood-lights-table data 1 amb-color) - s4-0 - (-> arg0 mood-lights-table data 1 amb-color) - f30-3 - ) - (vector-lerp! - (-> arg0 mood-lights-table data 2 amb-color) - s4-0 - (-> arg0 mood-lights-table data 2 amb-color) - f30-3 - ) - (vector-lerp! - (-> arg0 mood-lights-table data 3 amb-color) - s4-0 - (-> arg0 mood-lights-table data 3 amb-color) - f30-3 - ) - (vector-lerp! - (the-as vector (-> arg0 mood-lights-table data)) - s5-1 - (the-as vector (-> arg0 mood-lights-table data)) - f30-3 - ) - (vector-lerp! - (the-as vector (-> arg0 mood-lights-table data 1)) - s5-1 - (the-as vector (-> arg0 mood-lights-table data 1)) - f30-3 - ) - (vector-lerp! - (the-as vector (-> arg0 mood-lights-table data 2)) - s5-1 - (the-as vector (-> arg0 mood-lights-table data 2)) - f30-3 - ) - (vector-lerp! - (the-as vector (-> arg0 mood-lights-table data 3)) - s5-1 - (the-as vector (-> arg0 mood-lights-table data 3)) - f30-3 - ) - ) ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type lavatube-states (deftype lavatube-states (structure) ((lava lava-state :inline :offset-assert 0) (light light-state :inline :offset-assert 18) @@ -3147,38 +2319,26 @@ :flag-assert #x900000014 ) -;; definition for method 3 of type lavatube-states -(defmethod inspect lavatube-states ((obj lavatube-states)) - (format #t "[~8x] ~A~%" obj 'lavatube-states) - (format #t "~Tlava: #~%" (-> obj lava)) - (format #t "~Tlight: #~%" (-> obj light)) - (format #t "~Ttime: #~%" (-> obj time)) - obj - ) -;; failed to figure out what this is: (set! (-> *lavatube-mood* state 18) (the-as uint 255)) -;; definition for function update-mood-lavatube -;; INFO: Return type mismatch int vs none. (defun update-mood-lavatube ((arg0 mood-context) (arg1 float) (arg2 int)) (clear-mood-times arg0) (set! (-> arg0 times 0 w) 1.0) (when *time-of-day-effects* - (set! (-> arg0 times 2 w) (-> *palette-fade-controls* control 2 fade)) - (update-mood-light arg0 1 18 19 0.875 0.25 20.0 32) - (if (not (paused?)) - (+! (-> arg0 some-byte) 1) + (set! (-> arg0 times 2 w) (-> *palette-fade-controls* control 2 fade)) + (update-mood-light arg0 1 18 19 0.875 0.25 20.0 32) + (if (not (paused?)) + (+! (-> arg0 some-byte) 1) + ) + (update-mood-lava arg0 4 0 #t) ) - (update-mood-lava arg0 4 0 #t) - ) (update-mood-quick arg0 0 0 0 arg2) (update-mood-itimes arg0) 0 (none) ) -;; definition of type ogre-states (deftype ogre-states (structure) ((lava lava-state :inline :offset-assert 0) (lightning lightning-state :inline :offset-assert 18) @@ -3190,597 +2350,367 @@ :flag-assert #x90000001c ) -;; definition for method 3 of type ogre-states -(defmethod inspect ogre-states ((obj ogre-states)) - (format #t "[~8x] ~A~%" obj 'ogre-states) - (format #t "~Tlava: #~%" (-> obj lava)) - (format #t "~Tlightning: #~%" (-> obj lightning)) - (format #t "~Tlava-time: ~f~%" (-> obj lava-time)) - (format #t "~Tlava-fade: ~f~%" (-> obj lava-fade)) - obj - ) -;; definition for function update-mood-ogre -;; INFO: Return type mismatch int vs none. -;; Used lq/sq (defun update-mood-ogre ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) (clear-mood-times arg0) (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* - (let ((s4-0 (new 'stack-no-clear 'vector)) - (s3-0 (-> *math-camera* trans)) - ) - (set-vector! s4-0 868352.0 151552.0 -7720960.0 1.0) - (let ((f30-0 (vector-vector-distance s4-0 s3-0))) - (cond - ((< f30-0 614400.0) - (update-mood-palette *ogre2-mood* arg1 arg2) - (let* ((f1-2 (* 0.0000048828124 (+ -409600.0 f30-0))) - (f30-1 (fmax 0.0 (fmin 1.0 f1-2))) - ) - (let ((s4-1 (the-as (pointer number) (-> arg0 state)))) - (if (not (paused?)) - (+! - (-> (the-as (pointer float) s4-1) 5) - (rand-vu-float-range 64.0 2048.0) - ) + (let ((s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (-> *math-camera* trans)) ) - (if (not (movie?)) - (update-mood-lightning arg0 2 2 18 4 0.5 #f) - ) - (cond - ((or (nonzero? *lightning-time2*) (movie?)) - (if (not (paused?)) - (set! - (-> (the-as (pointer float) s4-1) 6) - (+ 0.2 (-> (the-as (pointer float) s4-1) 6)) - ) - ) - (if (< 1.0 (-> (the-as (pointer float) s4-1) 6)) - (set! (-> (the-as (pointer float) s4-1) 6) 1.0) - ) - (let* ((f28-1 (-> (the-as (pointer float) s4-1) 6)) - (s5-1 (-> arg0 light-group 0 dir2)) - (f1-6 - (+ - 0.875 - (* 0.125 (sin (-> (the-as (pointer float) s4-1) 5))) - ) - ) - (f0-17 (* 3.52 f1-6)) + (set-vector! s4-0 868352.0 151552.0 -7720960.0 1.0) + (let ((f30-0 (vector-vector-distance s4-0 s3-0))) + (cond + ((< f30-0 614400.0) + (update-mood-palette *ogre2-mood* arg1 arg2) + (let* ((f1-2 (* 0.0000048828124 (+ -409600.0 f30-0))) + (f30-1 (fmax 0.0 (fmin 1.0 f1-2))) ) - (set-vector! (-> s5-1 direction) 0.0 -1.0 0.0 0.0) - (set-vector! (-> s5-1 color) 1.0 0.38 0.0 1.0) - (set! (-> s5-1 levels x) (* f1-6 (- 1.0 f30-1) f28-1)) - (set! (-> s5-1 levels y) (* f0-17 (- 1.0 f30-1) f28-1)) - ) + (let ((s4-1 (the-as ogre-states (-> arg0 state)))) + (if (not (paused?)) + (+! (-> s4-1 lava-time) (rand-vu-float-range 64.0 2048.0)) + ) + (if (not (movie?)) + (update-mood-lightning arg0 2 2 18 4 0.5 #f) + ) + (cond + ((or (nonzero? *lightning-time2*) (movie?)) + (if (not (paused?)) + (set! (-> s4-1 lava-fade) (+ 0.2 (-> s4-1 lava-fade))) + ) + (if (< 1.0 (-> s4-1 lava-fade)) + (set! (-> s4-1 lava-fade) 1.0) + ) + (let* ((f28-1 (-> s4-1 lava-fade)) + (s5-1 (-> arg0 light-group 0 dir2)) + (f1-6 (+ 0.875 (* 0.125 (sin (-> s4-1 lava-time))))) + (f0-17 (* 3.52 f1-6)) + ) + (set-vector! (-> s5-1 direction) 0.0 -1.0 0.0 0.0) + (set-vector! (-> s5-1 color) 1.0 0.38 0.0 1.0) + (set! (-> s5-1 levels x) (* f1-6 (- 1.0 f30-1) f28-1)) + (set! (-> s5-1 levels y) (* f0-17 (- 1.0 f30-1) f28-1)) + ) + ) + (else + (set! (-> s4-1 lava-fade) 0.0) + ) + ) + ) + (let ((s5-2 (-> arg0 light-group)) + (s4-2 (-> *ogre2-mood* light-group)) + ) + (cond + ((= f30-1 0.0) + (set! (-> s5-2 0 dir0 direction quad) (-> s4-2 0 dir0 direction quad)) + (set! (-> s5-2 0 dir0 color quad) (-> s4-2 0 dir0 color quad)) + (set! (-> s5-2 0 dir0 levels quad) (-> s4-2 0 dir0 levels quad)) + (set! (-> s5-2 0 dir1 direction quad) (-> s4-2 0 dir1 direction quad)) + (set! (-> s5-2 0 dir1 color quad) (-> s4-2 0 dir1 color quad)) + (set! (-> s5-2 0 dir1 levels quad) (-> s4-2 0 dir1 levels quad)) + (set! (-> s5-2 0 ambi direction quad) (-> s4-2 0 ambi direction quad)) + (set! (-> s5-2 0 ambi color quad) (-> s4-2 0 ambi color quad)) + (set! (-> s5-2 0 ambi levels quad) (-> s4-2 0 ambi levels quad)) + (set! (-> arg0 current-shadow quad) (-> *ogre2-mood* current-shadow quad)) + ) + (else + (vector4-lerp! (the-as vector (-> s5-2 0)) (the-as vector (-> s4-2 0)) (the-as vector (-> s5-2 0)) f30-1) + (vector4-lerp! (-> s5-2 0 dir0 color) (-> s4-2 0 dir0 color) (-> s5-2 0 dir0 color) f30-1) + (vector4-lerp! (-> s5-2 0 dir0 levels) (-> s4-2 0 dir0 levels) (-> s5-2 0 dir0 levels) f30-1) + (vector4-lerp! + (the-as vector (-> s5-2 0 dir1)) + (the-as vector (-> s4-2 0 dir1)) + (the-as vector (-> s5-2 0 dir1)) + f30-1 + ) + (vector4-lerp! (-> s5-2 0 dir1 color) (-> s4-2 0 dir1 color) (-> s5-2 0 dir1 color) f30-1) + (vector4-lerp! (-> s5-2 0 dir1 levels) (-> s4-2 0 dir1 levels) (-> s5-2 0 dir1 levels) f30-1) + (vector4-lerp! + (the-as vector (-> s5-2 0 ambi)) + (the-as vector (-> s4-2 0 ambi)) + (the-as vector (-> s5-2 0 ambi)) + f30-1 + ) + (vector4-lerp! (-> s5-2 0 ambi color) (-> s4-2 0 ambi color) (-> s5-2 0 ambi color) f30-1) + (vector4-lerp! (-> s5-2 0 ambi levels) (-> s4-2 0 ambi levels) (-> s5-2 0 ambi levels) f30-1) + (vector4-lerp! (-> arg0 current-shadow) (-> *ogre2-mood* current-shadow) (-> arg0 current-shadow) f30-1) + ) + ) + ) + ) ) (else - (set! (-> (the-as (pointer float) s4-1) 6) 0.0) - ) - ) - ) - (let ((s5-2 (-> arg0 light-group)) - (s4-2 (-> *ogre2-mood* light-group)) - ) - (cond - ((= f30-1 0.0) - (set! - (-> s5-2 0 dir0 direction quad) - (-> s4-2 0 dir0 direction quad) - ) - (set! (-> s5-2 0 dir0 color quad) (-> s4-2 0 dir0 color quad)) - (set! (-> s5-2 0 dir0 levels quad) (-> s4-2 0 dir0 levels quad)) - (set! - (-> s5-2 0 dir1 direction quad) - (-> s4-2 0 dir1 direction quad) - ) - (set! (-> s5-2 0 dir1 color quad) (-> s4-2 0 dir1 color quad)) - (set! (-> s5-2 0 dir1 levels quad) (-> s4-2 0 dir1 levels quad)) - (set! - (-> s5-2 0 ambi direction quad) - (-> s4-2 0 ambi direction quad) - ) - (set! (-> s5-2 0 ambi color quad) (-> s4-2 0 ambi color quad)) - (set! (-> s5-2 0 ambi levels quad) (-> s4-2 0 ambi levels quad)) - (set! - (-> arg0 current-shadow quad) - (-> *ogre2-mood* current-shadow quad) - ) - ) - (else - (vector4-lerp! - (the-as vector (-> s5-2 0)) - (the-as vector (-> s4-2 0)) - (the-as vector (-> s5-2 0)) - f30-1 - ) - (vector4-lerp! - (-> s5-2 0 dir0 color) - (-> s4-2 0 dir0 color) - (-> s5-2 0 dir0 color) - f30-1 - ) - (vector4-lerp! - (-> s5-2 0 dir0 levels) - (-> s4-2 0 dir0 levels) - (-> s5-2 0 dir0 levels) - f30-1 - ) - (vector4-lerp! - (the-as vector (-> s5-2 0 dir1)) - (the-as vector (-> s4-2 0 dir1)) - (the-as vector (-> s5-2 0 dir1)) - f30-1 - ) - (vector4-lerp! - (-> s5-2 0 dir1 color) - (-> s4-2 0 dir1 color) - (-> s5-2 0 dir1 color) - f30-1 - ) - (vector4-lerp! - (-> s5-2 0 dir1 levels) - (-> s4-2 0 dir1 levels) - (-> s5-2 0 dir1 levels) - f30-1 - ) - (vector4-lerp! - (the-as vector (-> s5-2 0 ambi)) - (the-as vector (-> s4-2 0 ambi)) - (the-as vector (-> s5-2 0 ambi)) - f30-1 - ) - (vector4-lerp! - (-> s5-2 0 ambi color) - (-> s4-2 0 ambi color) - (-> s5-2 0 ambi color) - f30-1 - ) - (vector4-lerp! - (-> s5-2 0 ambi levels) - (-> s4-2 0 ambi levels) - (-> s5-2 0 ambi levels) - f30-1 - ) - (vector4-lerp! - (-> arg0 current-shadow) - (-> *ogre2-mood* current-shadow) - (-> arg0 current-shadow) - f30-1 - ) - ) - ) - ) - ) - ) - (else - (set-vector! s4-0 2973696.0 184320.0 -13414400.0 1.0) - (let ((f30-2 (vector-vector-distance s4-0 s3-0))) - (when (< f30-2 1298432.0) - (update-mood-quick *ogre3-mood* 0 0 0 arg2) - (let* ((f1-13 (* 0.0000048828124 (+ -1093632.0 f30-2))) - (f30-3 (fmax 0.0 (fmin 1.0 f1-13))) - (s5-3 (-> arg0 light-group)) - (s4-3 (-> *ogre3-mood* light-group)) + (set-vector! s4-0 2973696.0 184320.0 -13414400.0 1.0) + (let ((f30-2 (vector-vector-distance s4-0 s3-0))) + (when (< f30-2 1298432.0) + (update-mood-quick *ogre3-mood* 0 0 0 arg2) + (let* ((f1-13 (* 0.0000048828124 (+ -1093632.0 f30-2))) + (f30-3 (fmax 0.0 (fmin 1.0 f1-13))) + (s5-3 (-> arg0 light-group)) + (s4-3 (-> *ogre3-mood* light-group)) + ) + (cond + ((= f30-3 0.0) + (set! (-> s5-3 0 dir0 direction quad) (-> s4-3 0 dir0 direction quad)) + (set! (-> s5-3 0 dir0 color quad) (-> s4-3 0 dir0 color quad)) + (set! (-> s5-3 0 dir0 levels quad) (-> s4-3 0 dir0 levels quad)) + (set! (-> s5-3 0 dir1 direction quad) (-> s4-3 0 dir1 direction quad)) + (set! (-> s5-3 0 dir1 color quad) (-> s4-3 0 dir1 color quad)) + (set! (-> s5-3 0 dir1 levels quad) (-> s4-3 0 dir1 levels quad)) + (set! (-> s5-3 0 dir2 direction quad) (-> s4-3 0 dir2 direction quad)) + (set! (-> s5-3 0 dir2 color quad) (-> s4-3 0 dir2 color quad)) + (set! (-> s5-3 0 dir2 levels quad) (-> s4-3 0 dir2 levels quad)) + (set! (-> s5-3 0 ambi direction quad) (-> s4-3 0 ambi direction quad)) + (set! (-> s5-3 0 ambi color quad) (-> s4-3 0 ambi color quad)) + (set! (-> s5-3 0 ambi levels quad) (-> s4-3 0 ambi levels quad)) + (set! (-> arg0 current-shadow quad) (-> *ogre3-mood* current-shadow quad)) + (set! (-> arg0 current-fog fog-color quad) (-> *ogre3-mood* current-fog fog-color quad)) + (set! (-> arg0 current-fog fog-dists quad) (-> *ogre3-mood* current-fog fog-dists quad)) + (set! (-> arg0 current-fog erase-color quad) (-> *ogre3-mood* current-fog erase-color quad)) + ) + (else + (vector4-lerp! (the-as vector (-> s5-3 0)) (the-as vector (-> s4-3 0)) (the-as vector (-> s5-3 0)) f30-3) + (vector4-lerp! (-> s5-3 0 dir0 color) (-> s4-3 0 dir0 color) (-> s5-3 0 dir0 color) f30-3) + (vector4-lerp! (-> s5-3 0 dir0 levels) (-> s4-3 0 dir0 levels) (-> s5-3 0 dir0 levels) f30-3) + (vector4-lerp! + (the-as vector (-> s5-3 0 dir1)) + (the-as vector (-> s4-3 0 dir1)) + (the-as vector (-> s5-3 0 dir1)) + f30-3 + ) + (vector4-lerp! (-> s5-3 0 dir1 color) (-> s4-3 0 dir1 color) (-> s5-3 0 dir1 color) f30-3) + (vector4-lerp! (-> s5-3 0 dir1 levels) (-> s4-3 0 dir1 levels) (-> s5-3 0 dir1 levels) f30-3) + (vector4-lerp! + (the-as vector (-> s5-3 0 dir2)) + (the-as vector (-> s4-3 0 dir2)) + (the-as vector (-> s5-3 0 dir1)) + f30-3 + ) + (vector4-lerp! (-> s5-3 0 dir2 color) (-> s4-3 0 dir2 color) (-> s5-3 0 dir1 color) f30-3) + (vector4-lerp! (-> s5-3 0 dir2 levels) (-> s4-3 0 dir2 levels) (-> s5-3 0 dir1 levels) f30-3) + (vector4-lerp! + (the-as vector (-> s5-3 0 ambi)) + (the-as vector (-> s4-3 0 ambi)) + (the-as vector (-> s5-3 0 ambi)) + f30-3 + ) + (vector4-lerp! (-> s5-3 0 ambi color) (-> s4-3 0 ambi color) (-> s5-3 0 ambi color) f30-3) + (vector4-lerp! (-> s5-3 0 ambi levels) (-> s4-3 0 ambi levels) (-> s5-3 0 ambi levels) f30-3) + (vector4-lerp! (-> arg0 current-shadow) (-> *ogre3-mood* current-shadow) (-> arg0 current-shadow) f30-3) + (vector4-lerp! + (the-as vector (-> arg0 current-fog)) + (the-as vector (-> *ogre3-mood* current-fog)) + (the-as vector (-> arg0 current-fog)) + f30-3 + ) + (vector4-lerp! + (-> arg0 current-fog fog-dists) + (-> *ogre3-mood* current-fog fog-dists) + (-> arg0 current-fog fog-dists) + f30-3 + ) + (vector4-lerp! + (-> arg0 current-fog erase-color) + (-> *ogre3-mood* current-fog erase-color) + (-> arg0 current-fog erase-color) + f30-3 + ) + ) + ) + ) ) - (cond - ((= f30-3 0.0) - (set! - (-> s5-3 0 dir0 direction quad) - (-> s4-3 0 dir0 direction quad) - ) - (set! (-> s5-3 0 dir0 color quad) (-> s4-3 0 dir0 color quad)) - (set! (-> s5-3 0 dir0 levels quad) (-> s4-3 0 dir0 levels quad)) - (set! - (-> s5-3 0 dir1 direction quad) - (-> s4-3 0 dir1 direction quad) - ) - (set! (-> s5-3 0 dir1 color quad) (-> s4-3 0 dir1 color quad)) - (set! (-> s5-3 0 dir1 levels quad) (-> s4-3 0 dir1 levels quad)) - (set! - (-> s5-3 0 dir2 direction quad) - (-> s4-3 0 dir2 direction quad) - ) - (set! (-> s5-3 0 dir2 color quad) (-> s4-3 0 dir2 color quad)) - (set! (-> s5-3 0 dir2 levels quad) (-> s4-3 0 dir2 levels quad)) - (set! - (-> s5-3 0 ambi direction quad) - (-> s4-3 0 ambi direction quad) - ) - (set! (-> s5-3 0 ambi color quad) (-> s4-3 0 ambi color quad)) - (set! (-> s5-3 0 ambi levels quad) (-> s4-3 0 ambi levels quad)) - (set! - (-> arg0 current-shadow quad) - (-> *ogre3-mood* current-shadow quad) - ) - (set! - (-> arg0 current-fog fog-color quad) - (-> *ogre3-mood* current-fog fog-color quad) - ) - (set! - (-> arg0 current-fog fog-dists quad) - (-> *ogre3-mood* current-fog fog-dists quad) - ) - (set! - (-> arg0 current-fog erase-color quad) - (-> *ogre3-mood* current-fog erase-color quad) - ) + ) ) - (else - (vector4-lerp! - (the-as vector (-> s5-3 0)) - (the-as vector (-> s4-3 0)) - (the-as vector (-> s5-3 0)) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 dir0 color) - (-> s4-3 0 dir0 color) - (-> s5-3 0 dir0 color) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 dir0 levels) - (-> s4-3 0 dir0 levels) - (-> s5-3 0 dir0 levels) - f30-3 - ) - (vector4-lerp! - (the-as vector (-> s5-3 0 dir1)) - (the-as vector (-> s4-3 0 dir1)) - (the-as vector (-> s5-3 0 dir1)) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 dir1 color) - (-> s4-3 0 dir1 color) - (-> s5-3 0 dir1 color) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 dir1 levels) - (-> s4-3 0 dir1 levels) - (-> s5-3 0 dir1 levels) - f30-3 - ) - (vector4-lerp! - (the-as vector (-> s5-3 0 dir2)) - (the-as vector (-> s4-3 0 dir2)) - (the-as vector (-> s5-3 0 dir1)) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 dir2 color) - (-> s4-3 0 dir2 color) - (-> s5-3 0 dir1 color) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 dir2 levels) - (-> s4-3 0 dir2 levels) - (-> s5-3 0 dir1 levels) - f30-3 - ) - (vector4-lerp! - (the-as vector (-> s5-3 0 ambi)) - (the-as vector (-> s4-3 0 ambi)) - (the-as vector (-> s5-3 0 ambi)) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 ambi color) - (-> s4-3 0 ambi color) - (-> s5-3 0 ambi color) - f30-3 - ) - (vector4-lerp! - (-> s5-3 0 ambi levels) - (-> s4-3 0 ambi levels) - (-> s5-3 0 ambi levels) - f30-3 - ) - (vector4-lerp! - (-> arg0 current-shadow) - (-> *ogre3-mood* current-shadow) - (-> arg0 current-shadow) - f30-3 - ) - (vector4-lerp! - (the-as vector (-> arg0 current-fog)) - (the-as vector (-> *ogre3-mood* current-fog)) - (the-as vector (-> arg0 current-fog)) - f30-3 - ) - (vector4-lerp! - (-> arg0 current-fog fog-dists) - (-> *ogre3-mood* current-fog fog-dists) - (-> arg0 current-fog fog-dists) - f30-3 - ) - (vector4-lerp! - (-> arg0 current-fog erase-color) - (-> *ogre3-mood* current-fog erase-color) - (-> arg0 current-fog erase-color) - f30-3 - ) - ) - ) ) - ) ) - ) ) - ) ) - ) (update-mood-itimes arg0) 0 (none) ) -;; definition of type finalboss-states (deftype finalboss-states (structure) - ((start-time uint64 :offset-assert 0) - (secret-time uint64 :offset-assert 8) + ((start-time time-frame :offset-assert 0) + (secret-time time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) -;; definition for method 3 of type finalboss-states -(defmethod inspect finalboss-states ((obj finalboss-states)) - (format #t "[~8x] ~A~%" obj 'finalboss-states) - (format #t "~Tstart-time: ~D~%" (-> obj start-time)) - (format #t "~Tsecret-time: ~D~%" (-> obj secret-time)) - obj - ) -;; definition for function update-mood-finalboss (defun update-mood-finalboss ((arg0 mood-context) (arg1 float) (arg2 int)) (clear-mood-times arg0) (set! (-> arg0 light-group 0 dir2 levels x) 0.0) (set! (-> *finalboss2-mood* light-group 0 dir2 levels x) 0.0) - (let ((s4-0 (the-as (pointer integer) (-> arg0 state)))) - (cond - ((or - (logtest? - (get-reminder (get-task-control (game-task finalboss-movies)) 0) - 1 - ) - (not *time-of-day-effects*) - ) - (when (and *target* (= (-> *target* next-state name) 'target-continue)) - (set! - (-> (the-as (pointer int64) s4-0) 0) - (+ (-> *display* base-frame-counter) -10000) - ) - (set! - (-> (the-as (pointer int64) s4-0) 1) - (+ (-> *display* base-frame-counter) -10000) - ) - ) - (update-mood-fog arg0 arg1) - (update-mood-sky-texture arg0 arg1) - (update-mood-palette arg0 arg1 arg2) - (dotimes (v1-18 8) - (set! (-> *finalboss2-mood* sky-times v1-18) 0.0) - ) - (set! (-> *finalboss2-mood* times 5 w) 1.0) - (set! (-> *finalboss2-mood* sky-times 3) 1.0) - (update-mood-quick *finalboss2-mood* 3 3 5 arg2) - (when (= (-> *time-of-day-proc* 0 hour) 6) - (let ((f30-0 (-> *palette-fade-controls* control 2 fade)) - (s3-1 (-> arg0 light-group)) - ) - (let ((s2-0 (-> arg0 mood-lights-table data 2))) - (set! (-> arg0 times 2 w) f30-0) - (vector+float*! - (the-as vector (-> s3-1 0)) - (the-as vector (-> s3-1 0)) - (-> s2-0 direction) - f30-0 + (let ((s4-0 (the-as finalboss-states (-> arg0 state)))) + (cond + ((or (logtest? (get-reminder (get-task-control (game-task finalboss-movies)) 0) 1) (not *time-of-day-effects*)) + (when (and *target* (= (-> *target* next-state name) 'target-continue)) + (set! (-> s4-0 start-time) (+ (-> *display* base-frame-counter) (seconds -33.333332))) + (set! (-> s4-0 secret-time) (+ (-> *display* base-frame-counter) (seconds -33.333332))) ) - (vector+float*! - (-> s3-1 0 dir0 color) - (-> s3-1 0 dir0 color) - (-> s2-0 lgt-color) - f30-0 + (update-mood-fog arg0 arg1) + (update-mood-sky-texture arg0 arg1) + (update-mood-palette arg0 arg1 arg2) + (dotimes (v1-18 8) + (set! (-> *finalboss2-mood* sky-times v1-18) 0.0) ) - ) - (vector-normalize! (the-as vector (-> s3-1 0)) 1.0) - ) - ) - (let ((a0-17 (new 'stack-no-clear 'vector)) - (a1-10 (-> *math-camera* trans)) - ) - (set-vector! a0-17 12378112.0 1990656.0 -19873792.0 1.0) - (let ((f0-9 (vector-vector-distance a0-17 a1-10))) - (when (< f0-9 819200.0) - (let* ((f2-1 (* 0.0000048828124 (+ -614400.0 f0-9))) - (f0-12 (- 1.0 (fmax 0.0 (fmin 1.0 f2-1)))) + (set! (-> *finalboss2-mood* times 5 w) 1.0) + (set! (-> *finalboss2-mood* sky-times 3) 1.0) + (update-mood-quick *finalboss2-mood* 3 3 5 arg2) + (when (= (-> *time-of-day-proc* 0 hour) 6) + (let ((f30-0 (-> *palette-fade-controls* control 2 fade)) + (s3-1 (-> arg0 light-group)) ) - (let ((v1-32 (-> *finalboss2-mood* light-group 0 dir2))) - (set! (-> v1-32 direction x) 0.0) - (set! (-> v1-32 direction y) -1.0) - (set! (-> v1-32 direction z) 0.0) - (set! (-> v1-32 direction w) 1.0) - ) - (set-vector! - (-> *finalboss2-mood* light-group 0 dir2 color) - 1.0 - 0.8 - 2.0 - 1.0 - ) - (set! (-> *finalboss2-mood* light-group 0 dir2 levels x) f0-12) - ) - ) - ) - ) - (cond - ((logtest? - (get-reminder (get-task-control (game-task finalboss-movies)) 0) - 2 - ) - (let* - ((f1-14 - (* - 0.00055555557 - (the - float - (- - (-> *display* base-frame-counter) - (-> (the-as (pointer int64) s4-0) 1) + (let ((s2-0 (-> arg0 mood-lights-table data 2))) + (set! (-> arg0 times 2 w) f30-0) + (vector+float*! (the-as vector (-> s3-1 0)) (the-as vector (-> s3-1 0)) (-> s2-0 direction) f30-0) + (vector+float*! (-> s3-1 0 dir0 color) (-> s3-1 0 dir0 color) (-> s2-0 lgt-color) f30-0) ) - ) + (vector-normalize! (the-as vector (-> s3-1 0)) 1.0) ) - ) - (f0-15 (fmax 0.0 (fmin 1.0 f1-14))) - (a0-21 (-> arg0 light-group)) ) - (let ((v1-43 (-> a0-21 0 dir2))) - (set! (-> v1-43 direction x) -0.5768) - (set! (-> v1-43 direction y) 0.1697) - (set! (-> v1-43 direction z) -0.799) - (set! (-> v1-43 direction w) 1.0) + (let ((a0-17 (new 'stack-no-clear 'vector)) + (a1-10 (-> *math-camera* trans)) + ) + (set-vector! a0-17 12378112.0 1990656.0 -19873792.0 1.0) + (let ((f0-9 (vector-vector-distance a0-17 a1-10))) + (when (< f0-9 819200.0) + (let* ((f2-1 (* 0.0000048828124 (+ -614400.0 f0-9))) + (f0-12 (- 1.0 (fmax 0.0 (fmin 1.0 f2-1)))) + ) + (let ((v1-32 (-> *finalboss2-mood* light-group 0 dir2))) + (set! (-> v1-32 direction x) 0.0) + (set! (-> v1-32 direction y) -1.0) + (set! (-> v1-32 direction z) 0.0) + (set! (-> v1-32 direction w) 1.0) + ) + (set-vector! (-> *finalboss2-mood* light-group 0 dir2 color) 1.0 0.8 2.0 1.0) + (set! (-> *finalboss2-mood* light-group 0 dir2 levels x) f0-12) + ) + ) + ) ) - (set-vector! (-> a0-21 0 dir2 color) 1.0 1.0 1.0 1.0) - (set! (-> a0-21 0 dir2 levels x) f0-15) - (let ((v1-45 (-> arg0 current-shadow))) - (let ((a0-22 (-> a0-21 0 dir2))) - (set! (-> v1-45 x) (- (-> a0-22 direction x))) - (set! (-> v1-45 y) (- (-> a0-22 direction y))) - (set! (-> v1-45 z) (- (-> a0-22 direction z))) - (when (< (-> a0-22 direction y) 0.9063) - (let* ((f0-23 0.4226) - (f1-25 (-> v1-45 x)) - (f1-27 (* f1-25 f1-25)) - (f2-4 (-> v1-45 z)) - (f0-24 (/ f0-23 (sqrtf (+ f1-27 (* f2-4 f2-4))))) + (cond + ((logtest? (get-reminder (get-task-control (game-task finalboss-movies)) 0) 2) + (let* ((f1-14 (* 0.00055555557 (the float (- (-> *display* base-frame-counter) (-> s4-0 secret-time))))) + (f0-15 (fmax 0.0 (fmin 1.0 f1-14))) + (a0-21 (-> arg0 light-group)) + ) + (let ((v1-43 (-> a0-21 0 dir2))) + (set! (-> v1-43 direction x) -0.5768) + (set! (-> v1-43 direction y) 0.1697) + (set! (-> v1-43 direction z) -0.799) + (set! (-> v1-43 direction w) 1.0) + ) + (set-vector! (-> a0-21 0 dir2 color) 1.0 1.0 1.0 1.0) + (set! (-> a0-21 0 dir2 levels x) f0-15) + (let ((v1-45 (-> arg0 current-shadow))) + (let ((a0-22 (-> a0-21 0 dir2))) + (set! (-> v1-45 x) (- (-> a0-22 direction x))) + (set! (-> v1-45 y) (- (-> a0-22 direction y))) + (set! (-> v1-45 z) (- (-> a0-22 direction z))) + (when (< (-> a0-22 direction y) 0.9063) + (let* ((f0-23 0.4226) + (f1-25 (-> v1-45 x)) + (f1-27 (* f1-25 f1-25)) + (f2-4 (-> v1-45 z)) + (f0-24 (/ f0-23 (sqrtf (+ f1-27 (* f2-4 f2-4))))) + ) + (set! (-> v1-45 x) (* (-> v1-45 x) f0-24)) + (set! (-> v1-45 y) -0.9063) + (set! (-> v1-45 z) (* (-> v1-45 z) f0-24)) + ) ) - (set! (-> v1-45 x) (* (-> v1-45 x) f0-24)) - (set! (-> v1-45 y) -0.9063) - (set! (-> v1-45 z) (* (-> v1-45 z) f0-24)) + ) + (set! (-> *default-shadow-settings* shadow-dir x) (-> v1-45 x)) + (set! (-> *default-shadow-settings* shadow-dir y) (-> v1-45 y)) + (set! (-> *default-shadow-settings* shadow-dir z) (-> v1-45 z)) + ) ) - ) ) - (set! (-> *default-shadow-settings* shadow-dir x) (-> v1-45 x)) - (set! (-> *default-shadow-settings* shadow-dir y) (-> v1-45 y)) - (set! (-> *default-shadow-settings* shadow-dir z) (-> v1-45 z)) + (else + (set! (-> s4-0 secret-time) (-> *display* base-frame-counter)) + ) + ) + (let* ((f1-36 (* 0.00019607843 (the float (- (-> *display* base-frame-counter) (-> s4-0 start-time))))) + (f1-38 (fmax 0.0 (fmin 1.0 f1-36))) + (f0-32 (fmax 0.0 (fmin 1.0 f1-38))) + ) + (set! (-> *level* level arg2 info sun-fade) f0-32) + (set! (-> arg0 num-stars) (* 85.0 f0-32)) + (dotimes (v1-56 8) + (let ((f1-42 (-> *finalboss2-mood* times v1-56 w)) + (f3-1 (-> arg0 times v1-56 w)) + ) + (set! (-> arg0 times v1-56 w) (+ f1-42 (* f0-32 (- f3-1 f1-42)))) + ) + (let ((f1-45 (-> *finalboss2-mood* sky-times v1-56)) + (f3-3 (-> arg0 sky-times v1-56)) + ) + (set! (-> arg0 sky-times v1-56) (+ f1-45 (* f0-32 (- f3-3 f1-45)))) + ) + ) + (update-mood-interp arg0 *finalboss2-mood* arg0 f0-32) ) - ) ) (else - (set! - (-> (the-as (pointer int64) s4-0) 1) - (-> *display* base-frame-counter) - ) - ) - ) - (let* - ((f1-36 - (* - 0.00019607843 - (the - float - (- - (-> *display* base-frame-counter) - (-> (the-as (pointer int64) s4-0) 0) - ) + (set! (-> *level* level arg2 info sun-fade) 0.0) + (set! (-> arg0 num-stars) 0.0) + (set! (-> *time-of-day-proc* 0 hour) 6) + (set! (-> *time-of-day-proc* 0 minute) 0) + (set! (-> *time-of-day-proc* 0 second) 0) + (set! (-> *time-of-day-proc* 0 frame) 0) + (set! (-> s4-0 start-time) (-> *display* base-frame-counter)) + (dotimes (v1-72 8) + (set! (-> arg0 sky-times v1-72) 0.0) ) - ) - ) - (f1-38 (fmax 0.0 (fmin 1.0 f1-36))) - (f0-32 (fmax 0.0 (fmin 1.0 f1-38))) - ) - (set! (-> *level* level arg2 info sun-fade) f0-32) - (set! (-> arg0 num-stars) (* 85.0 f0-32)) - (dotimes (v1-56 8) - (let ((f1-42 (-> *finalboss2-mood* times v1-56 w)) - (f3-1 (-> arg0 times v1-56 w)) - ) - (set! (-> arg0 times v1-56 w) (+ f1-42 (* f0-32 (- f3-1 f1-42)))) - ) - (let ((f1-45 (-> *finalboss2-mood* sky-times v1-56)) - (f3-3 (-> arg0 sky-times v1-56)) - ) - (set! (-> arg0 sky-times v1-56) (+ f1-45 (* f0-32 (- f3-3 f1-45)))) - ) - ) - (update-mood-interp arg0 *finalboss2-mood* arg0 f0-32) - ) - ) - (else - (set! (-> *level* level arg2 info sun-fade) 0.0) - (set! (-> arg0 num-stars) 0.0) - (set! (-> *time-of-day-proc* 0 hour) 6) - (set! (-> *time-of-day-proc* 0 minute) 0) - (set! (-> *time-of-day-proc* 0 second) 0) - (set! (-> *time-of-day-proc* 0 frame) 0) - (set! - (-> (the-as (pointer int64) s4-0) 0) - (-> *display* base-frame-counter) - ) - (dotimes (v1-72 8) - (set! (-> arg0 sky-times v1-72) 0.0) - ) - (set! (-> arg0 times 5 w) 1.0) - (set! (-> arg0 sky-times 3) 1.0) - (update-mood-quick arg0 3 3 5 arg2) - (let ((f30-1 (-> *palette-fade-controls* control 2 fade)) - (s5-1 (-> arg0 light-group)) - ) - (let ((s4-1 (-> arg0 mood-lights-table data 2))) - (set! (-> arg0 times 2 w) f30-1) - (vector+float*! - (the-as vector (-> s5-1 0)) - (the-as vector (-> s5-1 0)) - (-> s4-1 direction) - f30-1 - ) - (vector+float*! - (-> s5-1 0 dir0 color) - (-> s5-1 0 dir0 color) - (-> s4-1 lgt-color) - f30-1 - ) - ) - (vector-normalize! (the-as vector (-> s5-1 0)) 1.0) - ) - (let ((a0-57 (new 'stack-no-clear 'vector)) - (a1-19 (-> *math-camera* trans)) - ) - (set-vector! a0-57 12378112.0 1990656.0 -19873792.0 1.0) - (let ((f0-42 (vector-vector-distance a0-57 a1-19))) - (when (< f0-42 819200.0) - (let* ((f2-14 (* 0.0000048828124 (+ -614400.0 f0-42))) - (v1-81 (-> arg0 light-group)) - (f0-45 (- 1.0 (fmax 0.0 (fmin 1.0 f2-14)))) - ) - (let ((a0-58 (-> v1-81 0 dir2))) - (set! (-> a0-58 direction x) 0.0) - (set! (-> a0-58 direction y) -1.0) - (set! (-> a0-58 direction z) 0.0) - (set! (-> a0-58 direction w) 1.0) + (set! (-> arg0 times 5 w) 1.0) + (set! (-> arg0 sky-times 3) 1.0) + (update-mood-quick arg0 3 3 5 arg2) + (let ((f30-1 (-> *palette-fade-controls* control 2 fade)) + (s5-1 (-> arg0 light-group)) + ) + (let ((s4-1 (-> arg0 mood-lights-table data 2))) + (set! (-> arg0 times 2 w) f30-1) + (vector+float*! (the-as vector (-> s5-1 0)) (the-as vector (-> s5-1 0)) (-> s4-1 direction) f30-1) + (vector+float*! (-> s5-1 0 dir0 color) (-> s5-1 0 dir0 color) (-> s4-1 lgt-color) f30-1) + ) + (vector-normalize! (the-as vector (-> s5-1 0)) 1.0) + ) + (let ((a0-57 (new 'stack-no-clear 'vector)) + (a1-19 (-> *math-camera* trans)) + ) + (set-vector! a0-57 12378112.0 1990656.0 -19873792.0 1.0) + (let ((f0-42 (vector-vector-distance a0-57 a1-19))) + (when (< f0-42 819200.0) + (let* ((f2-14 (* 0.0000048828124 (+ -614400.0 f0-42))) + (v1-81 (-> arg0 light-group)) + (f0-45 (- 1.0 (fmax 0.0 (fmin 1.0 f2-14)))) + ) + (let ((a0-58 (-> v1-81 0 dir2))) + (set! (-> a0-58 direction x) 0.0) + (set! (-> a0-58 direction y) -1.0) + (set! (-> a0-58 direction z) 0.0) + (set! (-> a0-58 direction w) 1.0) + ) + (set-vector! (-> v1-81 0 dir2 color) 1.0 0.8 2.0 1.0) + (set! (-> v1-81 0 dir2 levels x) f0-45) + ) + ) + ) ) - (set-vector! (-> v1-81 0 dir2 color) 1.0 0.8 2.0 1.0) - (set! (-> v1-81 0 dir2 levels x) f0-45) - ) ) - ) ) - ) ) - ) (update-mood-itimes arg0) (none) ) -;; definition of type citadel-states (deftype citadel-states (structure) ((flames flames-state :inline :offset-assert 0) (light light-state :inline :offset-assert 4) @@ -3794,231 +2724,162 @@ :flag-assert #x90000000c ) -;; definition for method 3 of type citadel-states -(defmethod inspect citadel-states ((obj citadel-states)) - (format #t "[~8x] ~A~%" obj 'citadel-states) - (format #t "~Tflames: #~%" (-> obj flames)) - (format #t "~Tlight: #~%" (-> obj light)) - (format #t "~Ttime: #~%" (-> obj time)) - (format #t "~Tflicker-off: ~D~%" (-> obj flicker-off)) - (format #t "~Tflicker-on: ~D~%" (-> obj flicker-on)) - (format #t "~Tshield-fade: ~f~%" (-> obj shield-fade)) - obj - ) -;; failed to figure out what this is: (set! (-> *citadel-mood* state 4) (the-as uint 255)) -;; definition for function update-mood-citadel -;; Used lq/sq (defun update-mood-citadel ((arg0 mood-context) (arg1 float) (arg2 int)) (clear-mood-times arg0) (set! (-> arg0 times 0 w) 1.0) (update-mood-quick arg0 0 0 0 arg2) (when *time-of-day-effects* - (set! (-> arg0 times 3 w) (-> *palette-fade-controls* control 3 fade)) - (update-mood-flames arg0 4 3 0 0.45 0.001953125 1.0) - (update-mood-light arg0 1 4 5 0.875 0.25 20.0 32) - (if (not (paused?)) - (+! (-> arg0 state 5) 1) - ) - (let ((s5-1 (the-as (pointer number) (-> arg0 state)))) - (let - ((f30-1 - (+ - 0.5 - (* - 0.5 - (cos - (the - float - (* (logand (+ (-> (the-as (pointer uint8) s5-1) 5) 32) 255) 512) + (set! (-> arg0 times 3 w) (-> *palette-fade-controls* control 3 fade)) + (update-mood-flames arg0 4 3 0 0.45 0.001953125 1.0) + (update-mood-light arg0 1 4 5 0.875 0.25 20.0 32) + (if (not (paused?)) + (+! (-> arg0 state 5) 1) + ) + (let ((s5-1 (the-as (pointer number) (-> arg0 state)))) + (let ((f30-1 (+ 0.5 (* 0.5 (cos (the float (* (logand (+ (-> (the-as (pointer uint8) s5-1) 5) 32) 255) 512))))))) + (cond + ((movie?) ) - ) - ) - ) - ) - ) - (cond - ((movie?) - ) - ((nonzero? (-> (the-as (pointer uint8) s5-1) 7)) - (set! (-> arg0 times 2 w) 1.0) - (if (not (paused?)) - (+! (-> (the-as (pointer uint8) s5-1) 7) -1) - ) - ) - ((nonzero? (-> (the-as (pointer uint8) s5-1) 6)) - (if (not (paused?)) - (+! (-> (the-as (pointer uint8) s5-1) 6) -1) - ) - ) - (else - (set! - (-> (the-as (pointer uint8) s5-1) 7) - (the-as uint (the int (rand-vu-float-range 2.0 20.0))) - ) - (if (zero? (the int (rand-vu-float-range 0.0 3.0))) - (set! - (-> (the-as (pointer uint8) s5-1) 6) - (the-as uint (the int (rand-vu-float-range 2.0 120.0))) - ) - (set! - (-> (the-as (pointer uint8) s5-1) 6) - (the-as uint (the int (rand-vu-float-range 2.0 20.0))) - ) - ) - ) - ) - (let ((s3-0 (new 'stack-no-clear 'vector)) - (a2-4 (new 'stack-no-clear 'vector)) - (s4-0 (-> arg0 light-group)) - ) - (set-vector! s3-0 0.5 0.5 0.5 1.0) - (set-vector! a2-4 0.75 0.725 0.5 1.0) - (vector4-lerp! s3-0 s3-0 a2-4 f30-1) - (let ((v1-25 (-> s4-0 0))) - (set! (-> v1-25 dir0 direction x) 0.0) - (set! (-> v1-25 dir0 direction y) 1.0) - (set! (-> v1-25 dir0 direction z) 0.0) - (set! (-> v1-25 dir0 direction w) 1.0) - ) - (set! (-> s4-0 0 dir0 color quad) (-> s3-0 quad)) - (set! (-> s4-0 0 dir0 levels x) 1.0) - ) - ) - (let ((s4-1 (new 'stack-no-clear 'vector)) - (a1-9 (target-joint-pos)) - ) - (set-vector! s4-1 11227136.0 (-> a1-9 y) -20164608.0 1.0) - (let ((f0-32 (vector-vector-distance s4-1 a1-9))) - (when (< f0-32 409600.0) - (let* ((f1-2 (* 0.000048828126 (+ -389120.0 f0-32))) - (f2-2 (fmax 0.0 (fmin 1.0 f1-2))) - ) - (set! - (-> arg0 current-fog fog-dists y) - (* 4096.0 (+ 250.0 (* 300.0 f2-2))) - ) - ) - ) - ) - ) - (let ((a0-13 (new 'stack-no-clear 'vector)) - (a1-10 (-> *math-camera* trans)) - ) - (set-vector! a0-13 11427840.0 (-> a1-10 y) -19251200.0 1.0) - (let ((f0-41 (vector-vector-distance a0-13 a1-10)) - (s4-2 (-> arg0 light-group)) - ) - (cond - ((< f0-41 491520.0) - (let* ((f2-5 (* 0.000012207031 (+ -409600.0 f0-41))) - (f30-2 (- 1.0 (fmax 0.0 (fmin 1.0 f2-5)))) - (f28-4 - (+ - 0.5 - (* - 0.125 - (cos - (the float (* 4000 (-> *display* integral-frame-counter))) - ) - ) - (* - 0.125 - (cos - (the float (shl (-> *display* integral-frame-counter) 11)) - ) - ) - (* - 0.25 - (cos - (the float (* 1500 (-> *display* integral-frame-counter))) - ) - ) - ) - ) - (s3-1 (new 'stack-no-clear 'vector)) + ((nonzero? (-> (the-as (pointer uint8) s5-1) 7)) + (set! (-> arg0 times 2 w) 1.0) + (if (not (paused?)) + (+! (-> (the-as (pointer uint8) s5-1) 7) -1) ) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (set-vector! s3-1 0.275 0.1 1.025 1.0) - (set-vector! s2-0 0.35 0.1 1.1 1.0) - (vector4-lerp! s2-0 s3-1 s2-0 f28-4) + ) + ((nonzero? (-> (the-as (pointer uint8) s5-1) 6)) + (if (not (paused?)) + (+! (-> (the-as (pointer uint8) s5-1) 6) -1) + ) + ) + (else + (set! (-> (the-as (pointer uint8) s5-1) 7) (the-as uint (the int (rand-vu-float-range 2.0 20.0)))) + (if (zero? (the int (rand-vu-float-range 0.0 3.0))) + (set! (-> (the-as (pointer uint8) s5-1) 6) (the-as uint (the int (rand-vu-float-range 2.0 120.0)))) + (set! (-> (the-as (pointer uint8) s5-1) 6) (the-as uint (the int (rand-vu-float-range 2.0 20.0)))) + ) + ) + ) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (a2-4 (new 'stack-no-clear 'vector)) + (s4-0 (-> arg0 light-group)) + ) + (set-vector! s3-0 0.5 0.5 0.5 1.0) + (set-vector! a2-4 0.75 0.725 0.5 1.0) + (vector4-lerp! s3-0 s3-0 a2-4 f30-1) + (let ((v1-25 (-> s4-0 0))) + (set! (-> v1-25 dir0 direction x) 0.0) + (set! (-> v1-25 dir0 direction y) 1.0) + (set! (-> v1-25 dir0 direction z) 0.0) + (set! (-> v1-25 dir0 direction w) 1.0) + ) + (set! (-> s4-0 0 dir0 color quad) (-> s3-0 quad)) + (set! (-> s4-0 0 dir0 levels x) 1.0) + ) + ) + (let ((s4-1 (new 'stack-no-clear 'vector)) + (a1-9 (target-joint-pos)) + ) + (set-vector! s4-1 11227136.0 (-> a1-9 y) -20164608.0 1.0) + (let ((f0-32 (vector-vector-distance s4-1 a1-9))) + (when (< f0-32 409600.0) + (let* ((f1-2 (* 0.000048828126 (+ -389120.0 f0-32))) + (f2-2 (fmax 0.0 (fmin 1.0 f1-2))) + ) + (set! (-> arg0 current-fog fog-dists y) (* 4096.0 (+ 250.0 (* 300.0 f2-2)))) + ) + ) + ) + ) + (let ((a0-13 (new 'stack-no-clear 'vector)) + (a1-10 (-> *math-camera* trans)) + ) + (set-vector! a0-13 11427840.0 (-> a1-10 y) -19251200.0 1.0) + (let ((f0-41 (vector-vector-distance a0-13 a1-10)) + (s4-2 (-> arg0 light-group)) + ) (cond - ((= (-> *palette-fade-controls* control 7 fade) 1.0) - (set! (-> (the-as (pointer float) s5-1) 2) 1.0) - ) - (else - (if (not (paused?)) - (set! - (-> (the-as (pointer float) s5-1) 2) - (+ -0.1 (-> (the-as (pointer float) s5-1) 2)) - ) + ((< f0-41 491520.0) + (let* ((f2-5 (* 0.000012207031 (+ -409600.0 f0-41))) + (f30-2 (- 1.0 (fmax 0.0 (fmin 1.0 f2-5)))) + (f28-4 (+ 0.5 + (* 0.125 (cos (the float (* 4000 (-> *display* integral-frame-counter))))) + (* 0.125 (cos (the float (shl (-> *display* integral-frame-counter) 11)))) + (* 0.25 (cos (the float (* 1500 (-> *display* integral-frame-counter))))) + ) + ) + (s3-1 (new 'stack-no-clear 'vector)) + ) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (set-vector! s3-1 0.275 0.1 1.025 1.0) + (set-vector! s2-0 0.35 0.1 1.1 1.0) + (vector4-lerp! s2-0 s3-1 s2-0 f28-4) + (cond + ((= (-> *palette-fade-controls* control 7 fade) 1.0) + (set! (-> (the-as (pointer float) s5-1) 2) 1.0) + ) + (else + (if (not (paused?)) + (set! (-> (the-as (pointer float) s5-1) 2) (+ -0.1 (-> (the-as (pointer float) s5-1) 2))) + ) + (set! (-> (the-as (pointer float) s5-1) 2) (fmax 0.0 (fmin 1.0 (-> (the-as (pointer float) s5-1) 2)))) + ) + ) + (set-vector! s3-1 0.1 0.1 0.1 1.0) + (let ((f30-3 (* (-> (the-as (pointer float) s5-1) 2) f30-2))) + (vector4-lerp! s3-1 s3-1 s2-0 f30-3) + (set! (-> arg0 times 7 w) (* (+ 0.8 (* 0.1 f28-4)) f30-3)) + ) + ) + (let ((v1-49 (-> s4-2 0 dir1))) + (set! (-> v1-49 direction x) 0.0) + (set! (-> v1-49 direction y) -1.0) + (set! (-> v1-49 direction z) 0.0) + (set! (-> v1-49 direction w) 1.0) + ) + (set! (-> s4-2 0 dir1 color quad) (-> s3-1 quad)) + ) + (set! (-> s4-2 0 dir1 levels x) 1.0) ) - (set! - (-> (the-as (pointer float) s5-1) 2) - (fmax 0.0 (fmin 1.0 (-> (the-as (pointer float) s5-1) 2))) - ) - ) - ) - (set-vector! s3-1 0.1 0.1 0.1 1.0) - (let ((f30-3 (* (-> (the-as (pointer float) s5-1) 2) f30-2))) - (vector4-lerp! s3-1 s3-1 s2-0 f30-3) - (set! (-> arg0 times 7 w) (* (+ 0.8 (* 0.1 f28-4)) f30-3)) - ) - ) - (let ((v1-49 (-> s4-2 0 dir1))) - (set! (-> v1-49 direction x) 0.0) - (set! (-> v1-49 direction y) -1.0) - (set! (-> v1-49 direction z) 0.0) - (set! (-> v1-49 direction w) 1.0) - ) - (set! (-> s4-2 0 dir1 color quad) (-> s3-1 quad)) - ) - (set! (-> s4-2 0 dir1 levels x) 1.0) - ) - (else - (let ((v1-52 (-> s4-2 0 dir1))) - (set! (-> v1-52 direction x) 0.0) - (set! (-> v1-52 direction y) -1.0) - (set! (-> v1-52 direction z) 0.0) - (set! (-> v1-52 direction w) 1.0) - ) - (set-vector! (-> s4-2 0 dir1 color) 0.1 0.1 0.1 1.0) - (set! (-> s4-2 0 dir1 levels x) 1.0) - ) - ) - ) - ) - ) - (let ((s5-2 (new 'stack-no-clear 'vector)) - (a1-13 (target-joint-pos)) - ) - 0.0 - (when (< 204800.0 (-> a1-13 y)) - (set-vector! s5-2 11440128.0 (-> a1-13 y) -19298304.0 1.0) - (let ((f0-98 (vector-vector-distance s5-2 a1-13)) - (s5-3 (-> arg0 light-group)) - ) - (when (< f0-98 172032.0) - (let* ((f1-19 (* 0.000061035156 (+ -155648.0 f0-98))) - (a1-14 (new 'stack-no-clear 'vector)) - (f0-101 (fmax 0.0 (fmin 1.0 f1-19))) + (else + (let ((v1-52 (-> s4-2 0 dir1))) + (set! (-> v1-52 direction x) 0.0) + (set! (-> v1-52 direction y) -1.0) + (set! (-> v1-52 direction z) 0.0) + (set! (-> v1-52 direction w) 1.0) + ) + (set-vector! (-> s4-2 0 dir1 color) 0.1 0.1 0.1 1.0) + (set! (-> s4-2 0 dir1 levels x) 1.0) ) - (set-vector! a1-14 0.5 0.5 0.5 1.0) - (vector4-lerp! - (-> s5-3 0 dir0 color) - a1-14 - (-> s5-3 0 dir0 color) - f0-101 - ) + ) + ) + ) + ) + (let ((s5-2 (new 'stack-no-clear 'vector)) + (a1-13 (target-joint-pos)) + ) + 0.0 + (when (< 204800.0 (-> a1-13 y)) + (set-vector! s5-2 11440128.0 (-> a1-13 y) -19298304.0 1.0) + (let ((f0-98 (vector-vector-distance s5-2 a1-13)) + (s5-3 (-> arg0 light-group)) + ) + (when (< f0-98 172032.0) + (let* ((f1-19 (* 0.000061035156 (+ -155648.0 f0-98))) + (a1-14 (new 'stack-no-clear 'vector)) + (f0-101 (fmax 0.0 (fmin 1.0 f1-19))) + ) + (set-vector! a1-14 0.5 0.5 0.5 1.0) + (vector4-lerp! (-> s5-3 0 dir0 color) a1-14 (-> s5-3 0 dir0 color) f0-101) + ) + (set! (-> s5-3 0 dir1 levels x) 0.0) + ) + ) ) - (set! (-> s5-3 0 dir1 levels x) 0.0) - ) ) - ) ) - ) (update-mood-itimes arg0) (none) ) diff --git a/goal_src/engine/ambient/weather-part.gc b/goal_src/engine/ambient/weather-part.gc index 4be91f39d9..f0093f91d5 100644 --- a/goal_src/engine/ambient/weather-part.gc +++ b/goal_src/engine/ambient/weather-part.gc @@ -560,7 +560,7 @@ ) (defbehavior cam-master-effect camera-master () - (when (< (+ (-> *display* base-frame-counter) -3000) (the-as int (-> self water-drip-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -10)) (-> self water-drip-time)) (set! (-> *part-id-table* 21 init-specs 1 initial-valuef) (-> self water-drip-mult)) (set! (-> *part-id-table* 18 init-specs 1 initial-valuef) (* 0.9 (-> self water-drip-mult))) (set! (-> *part-id-table* 22 init-specs 11 initial-valuef) (* -2.7306666 (-> self water-drip-speed))) diff --git a/goal_src/engine/camera/cam-layout.gc b/goal_src/engine/camera/cam-layout.gc index e76999fc49..56a04a5a99 100644 --- a/goal_src/engine/camera/cam-layout.gc +++ b/goal_src/engine/camera/cam-layout.gc @@ -830,7 +830,7 @@ (vector-reset! arg0) (vector-reset! arg1) (cond - ((logtest? (-> *cpad-list* cpads arg2 button0-abs 0) (pad-buttons l3)) + ((cpad-hold? arg2 l3) (set! (-> arg0 z) (- (-> arg0 z) (analog-input (the-as int (-> *cpad-list* cpads arg2 rightx)) (-> (new 'static 'array float 1 128.0) 0) @@ -869,7 +869,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg2 button0-abs 0) (pad-buttons r1)) + (if (cpad-hold? arg2 r1) (set! (-> arg1 y) (+ 0.5 (analog-input (the-as int (-> *cpad-list* cpads arg2 abutton 9)) @@ -884,7 +884,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg2 button0-abs 0) (pad-buttons l1)) + (if (cpad-hold? arg2 l1) (set! (-> arg1 y) (- (-> arg1 y) (+ 0.5 (analog-input (the-as int (-> *cpad-list* cpads arg2 abutton 8)) (-> (new 'static 'array float 1 0.0) 0) diff --git a/goal_src/engine/camera/cam-master.gc b/goal_src/engine/camera/cam-master.gc index 98e4d403e2..62f671a792 100644 --- a/goal_src/engine/camera/cam-master.gc +++ b/goal_src/engine/camera/cam-master.gc @@ -76,17 +76,18 @@ (set! (-> self string-max target z) (-> self stringMaxLength)) (set! (-> self string-push-z) (fmax (-> self string-min value z) (-> *CAMERA-bank* default-string-push-z))) (cond - ((>= (- (-> *display* base-frame-counter) (if *target* - (-> *target* neck notice-time) - 0 - ) + ((>= (- (-> *display* base-frame-counter) (the-as time-frame (if *target* + (the-as int (-> *target* neck notice-time)) + 0 + ) + ) ) - (the-as int (-> *CAMERA-bank* attack-timeout)) + (-> *CAMERA-bank* attack-timeout) ) (set! (-> self being-attacked) #f) ) (else - (set! (-> self attack-start) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self attack-start) (-> *display* base-frame-counter)) (set! (-> self being-attacked) #t) (when (and (zero? (logand (-> self master-options) 64)) (or (!= (-> last-try-to-look-at-data horz) 0.0) (!= (-> last-try-to-look-at-data vert) 0.0)) @@ -296,18 +297,19 @@ (return (the-as symbol #f)) ) (cond - ((>= (- (-> *display* base-frame-counter) (if *target* - (-> *target* neck notice-time) - 0 - ) + ((>= (- (-> *display* base-frame-counter) (the-as time-frame (if *target* + (the-as int (-> *target* neck notice-time)) + 0 + ) + ) ) - (the-as int (-> *CAMERA-bank* attack-timeout)) + (-> *CAMERA-bank* attack-timeout) ) (set! (-> self being-attacked) #f) ) (else (if (not (-> self being-attacked)) - (set! (-> self attack-start) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self attack-start) (-> *display* base-frame-counter)) ) (set! (-> self being-attacked) #t) (when (and (zero? (logand (-> self master-options) 64)) @@ -1558,7 +1560,7 @@ ) ) ((= v1-0 'part-water-drip) - (set! (-> self water-drip-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self water-drip-time) (-> *display* base-frame-counter)) (set! (-> self water-drip-mult) (the-as float (-> arg3 param 0))) (let ((f0-24 (the-as float (-> arg3 param 1)))) (set! (-> self water-drip-speed) f0-24) @@ -1759,7 +1761,7 @@ ) ) (set! (-> self water-drip) (create-launch-control group-rain-screend-drop self)) - (set! (-> self water-drip-time) (the-as uint -18000)) + (set! (-> self water-drip-time) (seconds -60)) (go cam-master-active) 0 (none) diff --git a/goal_src/engine/camera/cam-states-dbg.gc b/goal_src/engine/camera/cam-states-dbg.gc index 43891f2251..813bf2daa9 100644 --- a/goal_src/engine/camera/cam-states-dbg.gc +++ b/goal_src/engine/camera/cam-states-dbg.gc @@ -53,7 +53,7 @@ (f0-0 (analog-input (the-as int (-> *cpad-list* cpads 0 righty)) 128.0 48.0 110.0 -1.0)) ) (cond - ((logtest? (-> *cpad-list* cpads (-> *CAMERA-bank* joypad) button0-abs 0) (pad-buttons r2)) + ((cpad-hold? (-> *CAMERA-bank* joypad) r2) (set! (-> s5-0 y) (- (-> s5-0 y) (* 0.2 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f26-0)))) (set! (-> s5-0 x) (- (-> s5-0 x) (* 0.2 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f0-0)))) (+! (-> gp-0 x) (* 0.2 (-> *CAM_POINT_WATCH-bank* speed) f28-0)) @@ -106,7 +106,7 @@ (defun cam-free-floating-input ((arg0 vector) (arg1 vector) (arg2 symbol) (arg3 int)) (when (and (!= *master-mode* 'menu) (not *cam-layout*)) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons x)) + (if (cpad-hold? arg3 x) (set! (-> arg0 x) (- (-> arg0 x) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 6)) @@ -121,7 +121,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons triangle)) + (if (cpad-hold? arg3 triangle) (+! (-> arg0 x) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 4)) 0.0 @@ -134,7 +134,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons square)) + (if (cpad-hold? arg3 square) (+! (-> arg0 y) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 7)) 0.0 @@ -147,7 +147,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons circle)) + (if (cpad-hold? arg3 circle) (set! (-> arg0 y) (- (-> arg0 y) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 5)) @@ -164,7 +164,7 @@ ) (when arg2 (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l2)) + (if (cpad-hold? arg3 l2) (+! (-> arg0 z) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 10)) 0.0 @@ -177,7 +177,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r2)) + (if (cpad-hold? arg3 r2) (set! (-> arg0 z) (- (-> arg0 z) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 11)) @@ -197,9 +197,9 @@ ) ((not *camera-read-analog*) ) - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r2)) + ((cpad-hold? arg3 r2) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r1)) + (if (cpad-hold? arg3 r1) (+! (-> arg1 y) (+ (* 0.2 (-> *CAM_FREE-bank* speed)) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 9)) 0.0 @@ -212,7 +212,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l1)) + (if (cpad-hold? arg3 l1) (set! (-> arg1 y) (- (-> arg1 y) (+ (* 0.2 (-> *CAM_FREE-bank* speed)) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 8)) @@ -229,7 +229,7 @@ ) (else (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r1)) + (if (cpad-hold? arg3 r1) (+! (-> arg1 y) (+ (-> *CAM_FREE-bank* speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 9)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed)) @@ -238,7 +238,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l1)) + (if (cpad-hold? arg3 l1) (set! (-> arg1 y) (- (-> arg1 y) (+ (-> *CAM_FREE-bank* speed) @@ -252,7 +252,7 @@ ) (when (and (!= *master-mode* 'menu) (not *cam-layout*)) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons left)) + (if (cpad-hold? arg3 left) (+! (-> arg1 x) (+ (-> *CAM_FREE-bank* speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 1)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed)) @@ -261,7 +261,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons right)) + (if (cpad-hold? arg3 right) (set! (-> arg1 x) (- (-> arg1 x) (+ (-> *CAM_FREE-bank* speed) @@ -272,7 +272,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons up)) + (if (cpad-hold? arg3 up) (+! (-> arg1 z) (+ (-> *CAM_FREE-bank* speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 2)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed)) @@ -281,7 +281,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons down)) + (if (cpad-hold? arg3 down) (set! (-> arg1 z) (- (-> arg1 z) (+ (-> *CAM_FREE-bank* speed) @@ -311,9 +311,9 @@ ) ) (cond - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r2)) + ((cpad-hold? arg3 r2) (cond - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l2)) + ((cpad-hold? arg3 l2) (set! (-> arg0 y) (- (-> arg0 y) (* 0.5 (-> *CAM_FREE-bank* rot-speed) (- f24-0)))) (set! (-> arg0 x) (- (-> arg0 x) (* 0.5 (-> *CAM_FREE-bank* rot-speed) (- f26-0)))) ) @@ -325,7 +325,7 @@ (+! (-> arg1 x) (* 0.2 (-> *CAM_FREE-bank* speed) f28-14)) (+! (-> arg1 z) (* 0.2 (-> *CAM_FREE-bank* speed) f30-14)) ) - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l2)) + ((cpad-hold? arg3 l2) (+! (-> arg1 x) (* f28-14 (-> *CAM_FREE-bank* speed))) (+! (-> arg1 y) (* f26-0 (-> *CAM_FREE-bank* speed))) (+! (-> arg1 z) (* f30-14 (-> *CAM_FREE-bank* speed))) diff --git a/goal_src/engine/camera/cam-states.gc b/goal_src/engine/camera/cam-states.gc index f1720d2c60..3edcfdd070 100644 --- a/goal_src/engine/camera/cam-states.gc +++ b/goal_src/engine/camera/cam-states.gc @@ -908,7 +908,7 @@ ) :code (behavior () - (let ((gp-0 (new 'stack-no-clear 'matrix)) + (let ((gp-0 (new 'stack-no-clear 'cam-vector-seeker)) (f30-0 (-> self velocity y)) ) (let ((s4-0 (new 'stack-no-clear 'vector)) @@ -918,30 +918,24 @@ (set! (-> s4-0 y) 0.0) (set! (-> s5-0 quad) (-> self velocity quad)) (set! (-> s5-0 y) 0.0) - ((method-of-type cam-vector-seeker init!) - (the-as cam-vector-seeker gp-0) - s4-0 - (the-as float 81.92) - (fmax 819.2 (vector-length s5-0)) - (the-as float 0.75) - ) - (set! (-> gp-0 vector 2 quad) (-> s5-0 quad)) + (init! gp-0 s4-0 (the-as float 81.92) (fmax 819.2 (vector-length s5-0)) (the-as float 0.75)) + (set! (-> gp-0 vel quad) (-> s5-0 quad)) ) (while #t (when (not (paused?)) - (set! (-> gp-0 vector 0 x) (-> (target-pos 0) x)) - (set! (-> gp-0 vector 0 z) (-> (target-pos 0) z)) - ((method-of-type cam-vector-seeker update!) (the-as cam-vector-seeker gp-0) (the-as vector #f)) - (when (< 819.2 (-> gp-0 vector 3 y)) - (set! (-> gp-0 vector 3 y) (* 0.9 (-> gp-0 vector 3 y))) - (if (< (-> gp-0 vector 3 y) 819.2) - (set! (-> gp-0 vector 3 y) 819.2) + (set! (-> gp-0 target x) (-> (target-pos 0) x)) + (set! (-> gp-0 target z) (-> (target-pos 0) z)) + (update! gp-0 (the-as vector #f)) + (when (< 819.2 (-> gp-0 max-vel)) + (set! (-> gp-0 max-vel) (* 0.9 (-> gp-0 max-vel))) + (if (< (-> gp-0 max-vel) 819.2) + (set! (-> gp-0 max-vel) 819.2) ) ) (set! f30-0 (* 0.9 f30-0)) (+! (-> self trans y) f30-0) - (set! (-> self trans x) (-> gp-0 vector 1 x)) - (set! (-> self trans z) (-> gp-0 vector 1 z)) + (set! (-> self trans x) (-> gp-0 value x)) + (set! (-> self trans z) (-> gp-0 value z)) ) (suspend) ) @@ -1272,10 +1266,7 @@ ) -(define - *CAM_STRING-bank* - (new 'static 'cam-string-bank :los-coll-rad (meters 1.0) :los-coll-rad2 (meters 0.5)) - ) +(define *CAM_STRING-bank* (new 'static 'cam-string-bank :los-coll-rad (meters 1) :los-coll-rad2 (meters 0.5))) (defun cam-string-find-position-rel! ((arg0 vector)) (let ((s5-0 (new 'stack-no-clear 'vector)) @@ -1962,10 +1953,7 @@ (when *debug-segment* (let ((a1-22 (new 'stack-no-clear 'vector))) (vector-! a1-22 (-> self good-point) (-> self string-trans)) - (when (nonzero? cam-collision-record-save) - ;; HACK - (cam-collision-record-save (-> self string-trans) a1-22 -3 'jump self) - ) + (cam-collision-record-save (-> self string-trans) a1-22 -3 'jump self) ) ) (set! (-> self desired-pos quad) (-> self good-point quad)) @@ -2302,7 +2290,7 @@ ) (let ((s4-0 (new 'stack-no-clear 'vector)) (s5-1 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'matrix)) ) 0.0 (vector-flatten! s4-0 (the-as vector (&-> gp-0 found-boundary)) (-> *camera* local-down)) @@ -2315,9 +2303,9 @@ ) ) ) - (matrix-from-two-vectors-max-angle-partial! (the-as matrix s3-0) s5-1 s4-0 f0-12 (the-as float 0.5)) + (matrix-from-two-vectors-max-angle-partial! s3-0 s5-1 s4-0 f0-12 (the-as float 0.5)) ) - (vector-matrix*! (-> self view-flat) (-> self view-flat) (the-as matrix s3-0)) + (vector-matrix*! (-> self view-flat) (-> self view-flat) s3-0) ) (vector-normalize! (-> self view-flat) f30-0) ) @@ -2352,7 +2340,7 @@ (set! f28-0 (* 0.05 (-> self phony-joystick-y))) ) (if (and (-> *camera* being-attacked) - (< (- (-> *display* base-frame-counter) (the-as int (-> *camera* attack-start))) 75) + (< (- (-> *display* base-frame-counter) (-> *camera* attack-start)) (seconds 0.25)) ) (set! f28-0 0.05) ) @@ -2700,9 +2688,7 @@ (defbehavior cam-string-code camera-slave () (if *debug-segment* - (when (nonzero? cam-debug-reset-coll-tri) ;; hack - (cam-debug-reset-coll-tri) - ) + (cam-debug-reset-coll-tri) ) (cam-string-follow) (if (logtest? (-> self options) 512) @@ -3008,13 +2994,10 @@ ) -(define *CAM_STICK-bank* (new 'static 'cam-stick-bank - :max-z (meters 30.0) - :min-z (meters 5.0) - :max-y (meters 15.0) - :min-y (meters 2.0) - ) - ) +(define + *CAM_STICK-bank* + (new 'static 'cam-stick-bank :max-z (meters 30) :min-z (meters 5) :max-y (meters 15) :min-y (meters 2)) + ) (defbehavior cam-stick-code camera-slave () (cam-calc-follow! (-> self tracking) (-> self trans) #t) @@ -3246,7 +3229,7 @@ (define *CAM_BIKE-bank* - (new 'static 'cam-bike-bank :max-z (meters 6.0) :min-z (meters 10.0) :max-y (meters 3.0) :min-y (meters 5.0)) + (new 'static 'cam-bike-bank :max-z (meters 6) :min-z (meters 10) :max-y (meters 3) :min-y (meters 5)) ) (defbehavior cam-calc-bike-follow! camera-slave ((arg0 cam-rotation-tracker) (arg1 vector) (arg2 symbol)) diff --git a/goal_src/engine/camera/camera-h.gc b/goal_src/engine/camera/camera-h.gc index f54286c57d..2fc484ac2b 100644 --- a/goal_src/engine/camera/camera-h.gc +++ b/goal_src/engine/camera/camera-h.gc @@ -64,16 +64,16 @@ ;; DECOMP BEGINS (deftype camera-bank (basic) - ((collide-move-rad float :offset-assert 4) - (joypad uint32 :offset-assert 8) - (min-detectable-velocity float :offset-assert 12) - (attack-timeout seconds :offset-assert 16) - (default-string-max-y meters :offset-assert 24) - (default-string-min-y meters :offset-assert 28) - (default-string-max-z meters :offset-assert 32) - (default-string-min-z meters :offset-assert 36) - (default-string-push-z meters :offset-assert 40) - (default-tilt-adjust degrees :offset-assert 44) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout time-frame :offset-assert 16) + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -85,11 +85,11 @@ :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-y (meters 3) + :default-string-min-y (meters 1) :default-string-max-z (meters 12.5) - :default-string-min-z (meters 5.0) - :default-string-push-z (meters 10.0) + :default-string-min-z (meters 5) + :default-string-push-z (meters 10) :default-tilt-adjust (degrees -6.5000005) ) ) @@ -467,7 +467,7 @@ (pov-handle handle :offset-assert 336) (pov-bone int32 :offset-assert 344) (being-attacked symbol :offset-assert 348) - (attack-start uint64 :offset-assert 352) + (attack-start time-frame :offset-assert 352) (on-ground symbol :offset-assert 360) (under-water int32 :offset-assert 364) (on-pole symbol :offset-assert 368) @@ -492,7 +492,7 @@ (outro-t float :offset-assert 2372) (outro-t-step float :offset-assert 2376) (outro-exit-value float :offset-assert 2380) - (water-drip-time uint64 :offset-assert 2384) + (water-drip-time time-frame :offset-assert 2384) (water-drip sparticle-launch-control :offset-assert 2392) (water-drip-mult float :offset-assert 2396) (water-drip-speed float :offset-assert 2400) diff --git a/goal_src/engine/camera/pov-camera-h.gc b/goal_src/engine/camera/pov-camera-h.gc index 7487dd23de..907cfead1d 100644 --- a/goal_src/engine/camera/pov-camera-h.gc +++ b/goal_src/engine/camera/pov-camera-h.gc @@ -14,7 +14,7 @@ (deftype pov-camera (process-drawable) ((cspace-array cspace-array :offset 112) (flags int32 :offset-assert 176) - (debounce-start-time uint64 :offset-assert 184) + (debounce-start-time time-frame :offset-assert 184) (notify-handle handle :offset-assert 192) (anim-name string :offset-assert 200) (command-list pair :offset-assert 204) diff --git a/goal_src/engine/camera/pov-camera.gc b/goal_src/engine/camera/pov-camera.gc index 929ab2e42e..8d0922816f 100644 --- a/goal_src/engine/camera/pov-camera.gc +++ b/goal_src/engine/camera/pov-camera.gc @@ -8,7 +8,7 @@ ;; DECOMP BEGINS (defmethod TODO-RENAME-25 pov-camera ((obj pov-camera)) - (when (or (and (>= (- (-> *display* base-frame-counter) (the-as int (-> obj debounce-start-time))) 60) + (when (or (and (>= (- (-> *display* base-frame-counter) (-> obj debounce-start-time)) (seconds 0.2)) (cpad-pressed? 0 triangle) ) (logtest? (-> obj flags) 2) @@ -130,7 +130,7 @@ ) :enter (behavior () - (set! (-> self debounce-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self debounce-start-time) (-> *display* base-frame-counter)) (if (= (-> self anim-name type) string) (backup-load-state-and-set-cmds *load-state* (-> self command-list)) ) @@ -218,7 +218,7 @@ ) :code (behavior () - (set-blackout-frames 10) + (set-blackout-frames (seconds 0.033333335)) (suspend) (suspend) (go-virtual pov-camera-done-playing) @@ -262,7 +262,7 @@ (set! (-> self notify-handle) (process->handle arg4)) (set! (-> self notify-handle) (the-as handle #f)) ) - (set! (-> self debounce-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self debounce-start-time) (-> *display* base-frame-counter)) (logclear! (-> self mask) (process-mask actor-pause movie enemy platform projectile)) (set! (-> self root) (new 'process 'trsqv)) (set! (-> self root trans quad) (-> arg0 quad)) diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index 1c9ab88f98..4d311f8637 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -528,7 +528,7 @@ ;; More complicated collide-shape? (deftype collide-shape-moving (collide-shape) - ((rider-time uint64 :offset-assert 184) + ((rider-time time-frame :offset-assert 184) (rider-last-move vector :inline :offset-assert 192) (trans-old vector 3 :inline :offset-assert 208) (poly-pat pat-surface :offset-assert 256) diff --git a/goal_src/engine/collide/collide-shape-rider.gc b/goal_src/engine/collide/collide-shape-rider.gc index d253af35e1..e436f152e4 100644 --- a/goal_src/engine/collide/collide-shape-rider.gc +++ b/goal_src/engine/collide/collide-shape-rider.gc @@ -466,7 +466,7 @@ (vector-! v1-18 (-> gp-0 trans) s4-0) (vector-float*! (-> gp-0 rider-last-move) v1-18 (-> *display* frames-per-second)) ) - (set! (-> gp-0 rider-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> gp-0 rider-time) (-> *display* base-frame-counter)) ) ) (let ((f0-4 (-> arg0 rider-delta-ry))) diff --git a/goal_src/engine/collide/collide-target-h.gc b/goal_src/engine/collide/collide-target-h.gc index e43568a527..ab5f7ab856 100644 --- a/goal_src/engine/collide/collide-target-h.gc +++ b/goal_src/engine/collide/collide-target-h.gc @@ -14,7 +14,7 @@ (transv-out vector :inline :offset-assert 48) (local-normal vector :inline :offset-assert 64) (surface-normal vector :inline :offset-assert 80) - (time int64 :offset-assert 96) + (time time-frame :offset-assert 96) (status uint64 :offset-assert 104) (pat pat-surface :offset-assert 112) (reaction-flag uint32 :offset-assert 116) @@ -81,15 +81,15 @@ (unknown-vector53 vector :inline :offset 1232) (last-known-safe-ground vector :inline :offset 1248) (unknown-vector55 vector :inline :offset 1264) - (unknown-dword10 int64 :offset 1280) ;; from - collide-reaction-target::target-collision-reaction - (unknown-dword11 int64 :offset 1288) ;; from - target-util::can-jump? + (unknown-dword10 time-frame :offset 1280) ;; from - collide-reaction-target::target-collision-reaction + (unknown-dword11 time-frame :offset 1288) ;; from - target-util::can-jump? (unknown-float60 float :offset 1300) ;; from - target-util::can-duck? (unknown-float61 float :offset 1304) ;; from - target-util::target-align-vel-z-adjust (unknown-float62 float :offset 1308) ;; from - target-util::target-print-stats (unknown-float63 float :offset 1312) ;; from - logic-target::target-compute-slopes (unknown-float64 float :offset 1316) ;; from - logic-target::target-compute-slopes - (unknown-dword20 int64 :offset 1320) ;; from target-util::turn-around? - TODO - (unknown-dword21 int64 :offset 1328) ;; from target-util::turn-around? - TODO + (unknown-dword20 time-frame :offset 1320) ;; from target-util::turn-around? - TODO + (unknown-dword21 time-frame :offset 1328) ;; from target-util::turn-around? - TODO (unknown-dword-coverage int64 :offset 1336) (unknown-float-coverage-0 float :offset 1344) (unknown-float-coverage-1 float :offset 1348) @@ -113,13 +113,13 @@ (unknown-sphere01 collide-shape-prim-sphere :offset 1636) ;; from target-util::target-danger-set! (unknown-sphere02 collide-shape-prim-sphere :offset 1640) ;; from target-util::target-danger-set! (unknown-int50 int32 :offset 1656) ;; from target::(enter target-wheel) - (unknown-dword30 int64 :offset 1664) ;; from target::(trans target-walk) - (unknown-dword31 int64 :offset 1672) ;; from target-util::can-hands? - (unknown-dword32 int64 :offset 1680) ;; from target-util::can-hands? - (unknown-dword33 int64 :offset 1688) ;; from target-util::can-feet? - (unknown-dword34 int64 :offset 1696) ;; from target-util::can-feet? - (unknown-dword35 int64 :offset 1704) ;; from target::(exit target-slide-down) - (unknown-dword36 int64 :offset 1712) ;; from target::(trans target-jump) + (unknown-dword30 time-frame :offset 1664) ;; from target::(trans target-walk) + (unknown-dword31 time-frame :offset 1672) ;; from target-util::can-hands? + (unknown-dword32 time-frame :offset 1680) ;; from target-util::can-hands? + (unknown-dword33 time-frame :offset 1688) ;; from target-util::can-feet? + (unknown-dword34 time-frame :offset 1696) ;; from target-util::can-feet? + (unknown-dword35 time-frame :offset 1704) ;; from target::(exit target-slide-down) + (unknown-dword36 time-frame :offset 1712) ;; from target::(trans target-jump) (unknown-float80 float :offset 1724) ;; from logic-target::bend-gravity (unknown-float81 float :offset 1728) ;; from logic-target::bend-gravity (unknown-float82 float :offset 1732) ;; from logic-target::bend-gravity @@ -138,8 +138,8 @@ (unknown-float110 float :offset 2120) ;; from logic-target::target-compute-edge (unknown-vector100 vector :inline :offset 2128) ;; from logic-target::target-compute-edge (unknown-vector101 vector :inline :offset 2144) ;; from logic-target::target-compute-edge - (unknown-dword40 int64 :offset 2160) ;; from logic-target::target-compute-edge - (unknown-dword41 int64 :offset 2168) ;; from logic-target::target-compute-edge + (unknown-dword40 time-frame :offset 2160) ;; from logic-target::target-compute-edge + (unknown-dword41 time-frame :offset 2168) ;; from logic-target::target-compute-edge (unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole (unknown-uint20 uint32 :offset 2184) ;; from target::(trans target-running-attack) (unknown-spoolanim00 spool-anim :offset 2184) ;; from target2::(trans target-stance-ambient) @@ -175,13 +175,13 @@ (history-length int16 :offset 2490) (history-data collide-history 128 :inline :offset-assert 2496) (unknown-float140 float :offset 18944) - (unknown-dword70 int64 :offset 18952) ;; from logic-target::add-thrust + (unknown-dword70 time-frame :offset 18952) ;; from logic-target::add-thrust (unknown-int40 int32 :offset 18880) ;; from logic-target::flag-setup - (unknown-dword80 int64 :offset 18888) ;; from logic-target::post-flag-setup - (unknown-dword81 int64 :offset 18896) ;; from logic-target::post-flag-setup + (unknown-dword80 time-frame :offset 18888) ;; from logic-target::post-flag-setup + (unknown-dword81 time-frame :offset 18896) ;; from logic-target::post-flag-setup (unknown-float130 float :offset 18904) ;; from target2::target-swim-tilt (unknown-float131 float :offset 18908) ;; from target2::target-swim-tilt - (unknown-dword82 int64 :offset 18912) ;; from logic-target::reset-target-state + (unknown-dword82 time-frame :offset 18912) ;; from logic-target::reset-target-state (unknown-vector120 vector :inline :offset 18928) ;; from target::(code target-running-attack) (unknown-float150 float :offset 18944) ;; from target::(code target-wheel-flip) (unknown-vector121 vector :inline :offset 18960) ;; from target collide response diff --git a/goal_src/engine/debug/default-menu.gc b/goal_src/engine/debug/default-menu.gc index 784eb7a844..e347f56082 100644 --- a/goal_src/engine/debug/default-menu.gc +++ b/goal_src/engine/debug/default-menu.gc @@ -511,13 +511,12 @@ ) (defun dm-shader-pick-func ((arg0 texture-id) (arg1 debug-menu-msg)) - (if (and - (= arg1 (debug-menu-msg press)) - *texture-page-dir* - (-> *texture-page-dir* entries (-> arg0 page) page) - (-> *texture-page-dir* entries (-> arg0 page) link) - (nonzero? (-> *texture-page-dir* entries (-> arg0 page) link next (-> arg0 index))) - ) + (if (and (= arg1 (debug-menu-msg press)) + *texture-page-dir* + (-> *texture-page-dir* entries (-> arg0 page) page) + (-> *texture-page-dir* entries (-> arg0 page) link) + (nonzero? (-> *texture-page-dir* entries (-> arg0 page) link next (-> arg0 index))) + ) (set! *edit-shader* arg0) ) (and (nonzero? *edit-shader*) (= arg0 *edit-shader*)) @@ -681,7 +680,7 @@ (defun debug-create-cam-restore () (cond (*math-camera* - (format #t "(defun cam-restore ()~%") + (format #t "(defun-debug cam-restore ()~%") (format #t " ;;this function is a hack, don't use it as an example~%") (format #t " (let ((pos (new 'stack 'vector))~%") (format #t " (rot (new 'stack 'matrix)))~%") diff --git a/goal_src/engine/draw/drawable-ambient-h.gc b/goal_src/engine/draw/drawable-ambient-h.gc index 463a49e988..b9c915d389 100644 --- a/goal_src/engine/draw/drawable-ambient-h.gc +++ b/goal_src/engine/draw/drawable-ambient-h.gc @@ -60,9 +60,9 @@ (trans vector :offset-assert 120) (sound-id sound-id :offset-assert 124) (mode symbol :offset-assert 128) - (total-time int64 :offset-assert 136) - (total-off-time int64 :offset-assert 144) - (last-time int64 :offset-assert 152) + (total-time time-frame :offset-assert 136) + (total-off-time time-frame :offset-assert 144) + (last-time time-frame :offset-assert 152) (voicebox handle :offset-assert 160) ) :heap-base #x40 diff --git a/goal_src/engine/draw/drawable.gc b/goal_src/engine/draw/drawable.gc index 64cbe43e15..68273fc457 100644 --- a/goal_src/engine/draw/drawable.gc +++ b/goal_src/engine/draw/drawable.gc @@ -1536,7 +1536,7 @@ (sync-path 0 0) ;; remember when. (set! (-> disp frames (-> disp on-screen) frame run-time) - (timer-count (the-as timer-bank #x10000800)) + (the-as int (timer-count (the-as timer-bank #x10000800))) ) ;; now, do a vsync. If we finished rendering in time, this will just wait until the next. diff --git a/goal_src/engine/draw/process-drawable.gc b/goal_src/engine/draw/process-drawable.gc index cc7c857487..2f052bcde9 100644 --- a/goal_src/engine/draw/process-drawable.gc +++ b/goal_src/engine/draw/process-drawable.gc @@ -1065,7 +1065,7 @@ 0 ) -(defbehavior process-drawable-delay-player process-drawable ((arg0 int)) +(defbehavior process-drawable-delay-player process-drawable ((arg0 time-frame)) (while (and *target* (logtest? (-> *target* control unknown-surface00 flags) 2048) diff --git a/goal_src/engine/engine/connect.gc b/goal_src/engine/engine/connect.gc index 5145e137fb..b0d9fc23d4 100644 --- a/goal_src/engine/engine/connect.gc +++ b/goal_src/engine/engine/connect.gc @@ -106,7 +106,7 @@ ((name basic :offset-assert 4) (length int16 :offset-assert 8) ;; in use elts of the data array (allocated-length int16 :offset-assert 10) ;; size of the data array - (engine-time int64 :offset-assert 16) ;; frame that we last executed + (engine-time time-frame :offset-assert 16) ;; frame that we last executed ;; terminating nodes for the next0/prev0 linked lists (alive-list connectable :inline :offset-assert 32) diff --git a/goal_src/engine/entity/entity.gc b/goal_src/engine/entity/entity.gc index 548b4223d0..263c722dac 100644 --- a/goal_src/engine/entity/entity.gc +++ b/goal_src/engine/entity/entity.gc @@ -1255,48 +1255,34 @@ ) (defmacro heap-size-hack (info entity-type) - #x8000 ; `(cond ; ((type-type? ,entity-type collectable) ; #x1000 ; ) ; (else - ; (if ,info - ; (-> ,info heap-size) - ; #x4000 - ; ) - ; ) + `(if ,info + (-> ,info heap-size) + #x4000 + ) + ; ) ; ) + ; #x8000 ) (defmethod birth! entity-actor ((obj entity-actor)) "Create a process for this entity and start it." ;; temp - (when (or (not (obj-etype? part-spawner process - collectable - vent - ecovalve - water-vol - slide-control - racer - launcher - warp-gate-switch - nav-enemy - orb-cache-top - process-taskable - crate - process-hidden - med-res-level)) - ;; disallowed types - ;(obj-etype?) - (zero? (-> obj etype))) - (when (nonzero? (-> obj etype)) - (birth-log "rejecting etype ~A birth~%" (-> obj etype)) - ) - (logior! (-> obj extra perm status) (entity-perm-status bit-0)) - (return obj) - ) + ; (when (or (not (obj-etype? process)) + ; ;; disallowed types + ; ;(obj-etype?) + ; (zero? (-> obj etype))) + ; (when (nonzero? (-> obj etype)) + ; (birth-log "rejecting etype ~A birth~%" (-> obj etype)) + ; ) + ; (logior! (-> obj extra perm status) (entity-perm-status bit-0)) + ; (return obj) + ; ) ;;(birth-log "call to birth! on ~A~%" obj) diff --git a/goal_src/engine/game/collectables-part.gc b/goal_src/engine/game/collectables-part.gc index 096361eeb1..b4d7a9abd3 100644 --- a/goal_src/engine/game/collectables-part.gc +++ b/goal_src/engine/game/collectables-part.gc @@ -57,7 +57,7 @@ (-> arg0 root trans) (-> arg0 offset) a2-0 - (* 0.006666667 (the float (- (-> *display* base-frame-counter) (the-as int (-> arg0 start-time))))) + (* 0.006666667 (the float (- (-> *display* base-frame-counter) (-> arg0 start-time)))) ) ) ) diff --git a/goal_src/engine/game/collectables.gc b/goal_src/engine/game/collectables.gc index 9729cdf49e..19f2a90987 100644 --- a/goal_src/engine/game/collectables.gc +++ b/goal_src/engine/game/collectables.gc @@ -34,9 +34,9 @@ (extra-trans vector :inline :offset-assert 224) (jump-pos vector :inline :offset-assert 240) (flags collectable-flags :offset-assert 256) - (birth-time int64 :offset-assert 264) - (collect-timeout int64 :offset-assert 272) - (fadeout-timeout int64 :offset-assert 280) + (birth-time time-frame :offset-assert 264) + (collect-timeout time-frame :offset-assert 272) + (fadeout-timeout time-frame :offset-assert 280) (bob-offset int64 :offset-assert 288) (bob-amount float :offset-assert 296) (pickup-handle handle :offset-assert 304) @@ -48,7 +48,7 @@ :flag-assert #x1600d0013c (:methods (initialize (_type_) _type_ 20) - (initialize-params (_type_ int float) none 21) + (initialize-params (_type_ time-frame float) none 21) ) (:states (hud-collecting handle) @@ -56,7 +56,7 @@ ) -(defmethod initialize-params collectable ((obj collectable) (arg0 int) (arg1 float)) +(defmethod initialize-params collectable ((obj collectable) (arg0 time-frame) (arg1 float)) (logclear! (-> obj mask) (process-mask crate enemy platform ambient)) (set! (-> obj mask) (logior (process-mask collectable) (-> obj mask))) (set! (-> obj flags) (collectable-flags can-collect ignore-blue)) @@ -83,7 +83,7 @@ (logior! (-> obj flags) (collectable-flags fade)) (set! (-> obj fadeout-timeout) arg0) ) - (set! (-> obj collect-timeout) 99) + (set! (-> obj collect-timeout) (seconds 0.33)) (set! (-> obj birth-time) (-> *display* base-frame-counter)) (set! (-> obj base quad) (-> obj root-override trans quad)) (set! (-> obj old-base quad) (-> obj root-override trans quad)) @@ -103,11 +103,11 @@ ((eco-effect sparticle-launch-group :offset-assert 316) (collect-effect sparticle-launch-group :offset-assert 320) (collect-effect2 sparticle-launch-group :offset-assert 324) - (collect-effect-time seconds :offset-assert 328) - (respawn-delay int64 :offset-assert 336) + (collect-effect-time time-frame :offset-assert 328) + (respawn-delay time-frame :offset-assert 336) (sound-name sound-spec :offset-assert 344) (target handle :offset-assert 352) - (suck-time int64 :offset-assert 360) + (suck-time time-frame :offset-assert 360) (suck-y-offset float :offset-assert 368) (speed vector :inline :offset-assert 384) (movie-pos-index int32 :offset-assert 400) @@ -131,7 +131,7 @@ (defmethod initialize eco-collectable ((obj eco-collectable)) - (stack-size-set! (-> obj main-thread) 256) ;; hack increased from 128 + (stack-size-set! (-> obj main-thread) 192) ;; hack increased from 128 (logior! (-> obj mask) (process-mask actor-pause)) (set! (-> obj actor-pause) #t) (set! (-> obj notify-parent) #f) @@ -171,7 +171,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 56)) (set! (-> obj collect-effect) (-> *part-group-id-table* 68)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 57)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -186,7 +186,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 48)) (set! (-> obj collect-effect) (-> *part-group-id-table* 69)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 49)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -201,7 +201,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 42)) (set! (-> obj collect-effect) (-> *part-group-id-table* 67)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 43)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -216,7 +216,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 58)) (set! (-> obj collect-effect) (-> *part-group-id-table* 66)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 61)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -230,7 +230,7 @@ (((pickup-type eco-pill)) (set! (-> obj eco-effect) (-> *part-group-id-table* 59)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 60)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) ) ) (set! (-> obj part) (create-launch-control (-> obj eco-effect) obj)) @@ -261,15 +261,16 @@ (((pickup-type eco-blue) (pickup-type eco-yellow) (pickup-type eco-red)) (initialize-params self - (if (and arg2 (logtest? (-> arg2 options) (fact-options fade))) - (-> arg2 fade-time) - 0 - ) + (the-as time-frame (if (and arg2 (logtest? (-> arg2 options) (fact-options fade))) + (the-as int (-> arg2 fade-time)) + 0 + ) + ) (the-as float 1024.0) ) ) (else - (initialize-params self 4500 (the-as float 1024.0)) + (initialize-params self (seconds 15) (the-as float 1024.0)) ) ) (update-transforms! (-> self root-override)) @@ -451,7 +452,7 @@ (the-as float -2.2755556) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (let ((f0-2 (the float (- (-> *display* base-frame-counter) (-> self state-time))))) (eval-position! gp-1 f0-2 (-> self root-override trans)) ) @@ -554,9 +555,9 @@ ) ((= arg2 'fade) (logior! (-> self flags) (collectable-flags fade)) - (set! (-> self fadeout-timeout) 30) + (set! (-> self fadeout-timeout) (seconds 0.1)) (set! v0-3 (the-as none (-> *display* base-frame-counter))) - (set! (-> self birth-time) (the-as int v0-3)) + (set! (-> self birth-time) (the-as time-frame v0-3)) v0-3 ) ) @@ -627,7 +628,10 @@ (when (and (logtest? (-> self flags) (collectable-flags fade)) (>= (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self fadeout-timeout)) ) - (let ((v1-10 (- 300 (- (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self fadeout-timeout))))) + (let ((v1-10 + (- (seconds 1) (- (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self fadeout-timeout))) + ) + ) (cond ((< v1-10 0) (process-entity-status! self (entity-perm-status dead) #t) @@ -892,7 +896,7 @@ (-> arg0 root trans) (-> arg0 offset) a2-0 - (/ (the float (- (-> *display* base-frame-counter) (the-as int (-> arg0 start-time)))) + (/ (the float (- (-> *display* base-frame-counter) (-> arg0 start-time))) (the float (-> (the-as eco-collectable s5-0) collect-effect-time)) ) ) @@ -1115,7 +1119,6 @@ (defmethod initialize eco-pill ((obj eco-pill)) (set! *eco-pill-count* (+ *eco-pill-count* 1)) - (stack-size-set! (-> obj main-thread) 256) ;; bumped from 128. (logior! (-> obj mask) (process-mask actor-pause)) (set! (-> obj actor-pause) #t) (set! (-> obj notify-parent) #f) @@ -1273,7 +1276,7 @@ ) (defmethod initialize money ((obj money)) - (stack-size-set! (-> obj main-thread) 256) ;; hack increased from 128 + (stack-size-set! (-> obj main-thread) 192) ;; hack increased from 128 (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) @@ -1340,7 +1343,7 @@ (quaternion-identity! (-> self root-override quat)) (vector-identity! (-> self root-override scale)) (set! (-> self root-override transv quad) (-> arg1 quad)) - (initialize-params self 4500 (the-as float 1024.0)) + (initialize-params self (seconds 15) (the-as float 1024.0)) (update-transforms! (-> self root-override)) (set! (-> self event-hook) (-> (method-of-object self wait) event)) (go-virtual wait) @@ -1359,7 +1362,7 @@ (quaternion-identity! (-> self root-override quat)) (vector-identity! (-> self root-override scale)) (set! (-> self root-override transv quad) (-> arg1 quad)) - (initialize-params self 4500 (the-as float 0.0)) + (initialize-params self (seconds 15) (the-as float 0.0)) (logior! (-> self flags) (collectable-flags ignore-blue)) (update-transforms! (-> self root-override)) (set! (-> self event-hook) (-> (method-of-object self wait) event)) @@ -2072,7 +2075,7 @@ ) (defmethod initialize fuel-cell ((obj fuel-cell)) - (stack-size-set! (-> obj main-thread) 1280) ;; was 512 + (stack-size-set! (-> obj main-thread) 512) (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) @@ -2432,7 +2435,7 @@ ) (defmethod initialize buzzer ((obj buzzer)) - (stack-size-set! (-> obj main-thread) 512) ;; added + (stack-size-set! (-> obj main-thread) 192) ;; added (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) @@ -2477,7 +2480,7 @@ (initialize obj) (process-drawable-from-entity! obj (the-as entity-actor (-> obj entity))) (initialize-params obj 0 (the-as float 1024.0)) - (set! (-> obj collect-timeout) 600) + (set! (-> obj collect-timeout) (seconds 2)) (update-transforms! (-> obj root-override)) (update-trans! (-> obj sound) (-> obj root-override trans)) (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) @@ -2928,7 +2931,7 @@ (show-particles symbol :offset-assert 176) (collect-effect sparticle-launch-group :offset-assert 180) (collect-effect2 sparticle-launch-group :offset-assert 184) - (collect-effect-time uint64 :offset-assert 192) + (collect-effect-time time-frame :offset-assert 192) (blocker entity-actor :offset-assert 200) (block-func (function vent symbol) :offset-assert 204) (pickup-handle handle :offset-assert 208) diff --git a/goal_src/engine/game/crates.gc b/goal_src/engine/game/crates.gc index 7433f92bba..132182f6a3 100644 --- a/goal_src/engine/game/crates.gc +++ b/goal_src/engine/game/crates.gc @@ -915,7 +915,7 @@ ) (when (not arg0) (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 12) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.04)) (suspend) ) ) @@ -940,7 +940,7 @@ (lerp-scale 1.0 0.0 (vector-vector-distance (-> self root-override trans) (target-pos 0)) 8192.0 40960.0) ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 f0-0)) 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 f0-0)) (seconds 0.3)) ) (let ((s5-7 (get-process *default-dead-pool* touch-tracker #x4000))) (when s5-7 @@ -1037,7 +1037,7 @@ (process-entity-status! self (entity-perm-status dead) #t) (process-entity-status! self (entity-perm-status complete) #t) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 1500) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 5)) (suspend) ) ) @@ -1399,7 +1399,7 @@ (when (and (and *target* (>= 327680.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5)) (rand-vu-percent? 0.03) ) (spawn (-> self part) (-> self root-override trans)) diff --git a/goal_src/engine/game/fact-h.gc b/goal_src/engine/game/fact-h.gc index 33357fb260..5c47e88e14 100644 --- a/goal_src/engine/game/fact-h.gc +++ b/goal_src/engine/game/fact-h.gc @@ -100,7 +100,7 @@ (pickup-amount float :offset-assert 12) ;; eco increment on pickup (pickup-spawn-amount float :offset-assert 16) (options fact-options :offset-assert 24) - (fade-time int64 :offset-assert 32) + (fade-time time-frame :offset-assert 32) ) :method-count-assert 12 :size-assert #x28 @@ -114,9 +114,9 @@ ) (deftype fact-info-target (fact-info) - ((eco-type int32 :offset-assert 40) + ((eco-type pickup-type :offset-assert 40) (eco-level float :offset-assert 44) - (eco-pickup-time uint64 :offset-assert 48) + (eco-pickup-time time-frame :offset-assert 48) (eco-timeout seconds :offset-assert 56) (health float :offset-assert 64) (health-max float :offset-assert 68) @@ -124,13 +124,13 @@ (buzzer-max float :offset-assert 76) (eco-pill float :offset-assert 80) (eco-pill-max float :offset-assert 84) - (health-pickup-time uint64 :offset-assert 88) + (health-pickup-time time-frame :offset-assert 88) (eco-source handle :offset-assert 96) - (eco-source-time uint64 :offset-assert 104) - (money-pickup-time uint64 :offset-assert 112) - (buzzer-pickup-time uint64 :offset-assert 120) - (fuel-cell-pickup-time uint64 :offset-assert 128) - (eco-pill-pickup-time uint64 :offset-assert 136) + (eco-source-time time-frame :offset-assert 104) + (money-pickup-time time-frame :offset-assert 112) + (buzzer-pickup-time time-frame :offset-assert 120) + (fuel-cell-pickup-time time-frame :offset-assert 128) + (eco-pill-pickup-time time-frame :offset-assert 136) ) :method-count-assert 12 :size-assert #x90 diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index b6fb8ba39e..287b0ec0ed 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -34,7 +34,7 @@ (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time int64 :offset-assert 168) + (state-time time-frame :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 @@ -110,21 +110,21 @@ (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 time-frame :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 diff --git a/goal_src/engine/game/game-info-h.gc b/goal_src/engine/game/game-info-h.gc index 2e8959b2bb..dcfcd5168d 100644 --- a/goal_src/engine/game/game-info-h.gc +++ b/goal_src/engine/game/game-info-h.gc @@ -132,18 +132,18 @@ (total-deaths int32 :offset-assert 156) (continue-deaths int32 :offset-assert 160) (fuel-cell-deaths int32 :offset-assert 164) - (game-start-time int64 :offset-assert 168) - (continue-time int64 :offset-assert 176) - (death-time int64 :offset-assert 184) - (hit-time int64 :offset-assert 192) - (fuel-cell-pickup-time int64 :offset-assert 200) - (fuel-cell-time (array int64) :offset-assert 208) - (enter-level-time (array int64) :offset-assert 212) - (in-level-time (array int64) :offset-assert 216) - (blackout-time int64 :offset-assert 224) - (letterbox-time int64 :offset-assert 232) ;; time to turn off letterboxing, base-frame - (hint-play-time int64 :offset-assert 240) - (display-text-time int64 :offset-assert 248) + (game-start-time time-frame :offset-assert 168) + (continue-time time-frame :offset-assert 176) + (death-time time-frame :offset-assert 184) + (hit-time time-frame :offset-assert 192) + (fuel-cell-pickup-time time-frame :offset-assert 200) + (fuel-cell-time (array time-frame) :offset-assert 208) + (enter-level-time (array time-frame) :offset-assert 212) + (in-level-time (array time-frame) :offset-assert 216) + (blackout-time time-frame :offset-assert 224) + (letterbox-time time-frame :offset-assert 232) ;; time to turn off letterboxing, base-frame + (hint-play-time time-frame :offset-assert 240) + (display-text-time time-frame :offset-assert 248) (display-text-handle handle :offset-assert 256) (death-movie-tick int32 :offset-assert 264) (want-auto-save symbol :offset-assert 268) @@ -187,9 +187,9 @@ (define-extern *game-info* game-info) (when (or (not *game-info*) (zero? *game-info*)) (let ((temp (new 'static 'game-info :mode 'debug :current-continue #f))) - (set! (-> temp fuel-cell-time) (new 'global 'boxed-array int64 116)) - (set! (-> temp enter-level-time) (new 'global 'boxed-array int64 32)) - (set! (-> temp in-level-time) (new 'global 'boxed-array int64 32)) + (set! (-> temp fuel-cell-time) (new 'global 'boxed-array time-frame 116)) + (set! (-> temp enter-level-time) (new 'global 'boxed-array time-frame 32)) + (set! (-> temp in-level-time) (new 'global 'boxed-array time-frame 32)) (set! *game-info* temp) ) ) diff --git a/goal_src/engine/game/game-info.gc b/goal_src/engine/game/game-info.gc index a3b459fd5d..046ff88180 100644 --- a/goal_src/engine/game/game-info.gc +++ b/goal_src/engine/game/game-info.gc @@ -526,7 +526,7 @@ (when (or (not arg0) (= arg0 'health)) (set! (-> obj health-max) (-> *FACT-bank* health-max-default)) (set! (-> obj health) (-> obj health-max)) - (set! (-> obj health-pickup-time) (the-as uint -30000)) + (set! (-> obj health-pickup-time) (seconds -100)) ) (when (or (not arg0) (= arg0 'buzzer)) (set! (-> obj buzzer-max) (-> *FACT-bank* buzzer-max-default)) @@ -554,7 +554,7 @@ ;; when we get a different source, OR we it's been more than 0.5 seconds since we last got eco ;; from this source. (if (or (!= (handle->process source-handle) (handle->process (-> obj eco-source))) - (>= (the-as int (- (-> *display* base-frame-counter) (-> obj eco-source-time))) 150) + (>= (- (-> *display* base-frame-counter) (-> obj eco-source-time)) (seconds 0.5)) ) ;; play the sound! @@ -651,7 +651,7 @@ ;; get money. (when (< 0.0 amount) ;; play sound. - (if (>= (the-as int (- (-> *display* base-frame-counter) (-> obj money-pickup-time))) 15) + (if (>= (- (-> *display* base-frame-counter) (-> obj money-pickup-time)) (seconds 0.05)) (sound-play-by-name (static-sound-name "money-pickup") (new-sound-id) 1024 @@ -720,10 +720,10 @@ (when (!= (-> obj eco-type) kind) ;; as far as I can tell, the eco-level isn't really used other than just 1 or 0. (set! (-> obj eco-level) 0.0) - (set! (-> obj eco-timeout) (the-as seconds 0)) + (set! (-> obj eco-timeout) 0) 0 ) - (set! (-> obj eco-type) (the-as int kind)) + (set! (-> obj eco-type) kind) (let ((eco-lev (-> obj eco-level))) @@ -758,11 +758,11 @@ ;; sound and controller vibration. (when (not (and (= (handle->process source-handle) (handle->process (-> obj eco-source))) - (< (the-as int (- (-> *display* base-frame-counter) (-> obj eco-source-time))) 150) + (< (- (-> *display* base-frame-counter) (-> obj eco-source-time)) (seconds 0.5)) ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 60) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 17 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2)) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 17 (seconds 0.2)) (case kind (((pickup-type eco-blue)) (sound-play-by-name (static-sound-name "get-blue-eco") (new-sound-id) 1024 0 0 1 #t) @@ -821,7 +821,7 @@ s4-4 (lambda ((arg0 process-drawable)) (let ((s5-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-0) 180) + (until (>= (- (-> *display* base-frame-counter) s5-0) (seconds 0.6)) (send-event arg0 'effect 'eco-blue) (suspend) ) diff --git a/goal_src/engine/game/game-save.gc b/goal_src/engine/game/game-save.gc index c5aac4c1e7..90ab41e3e6 100644 --- a/goal_src/engine/game/game-save.gc +++ b/goal_src/engine/game/game-save.gc @@ -301,947 +301,461 @@ ;; some stuff lives in the levels and needs to be copied into game-info. (dotimes (s3-0 (-> *level* length)) - (let ((a1-1 (-> *level* level s3-0))) - (if (= (-> a1-1 status) 'active) - (copy-perms-from-level! obj a1-1) - ) + (let ((a1-1 (-> *level* level s3-0))) + (if (= (-> a1-1 status) 'active) + (copy-perms-from-level! obj a1-1) + ) + ) ) - ) ;; set common data (set! (-> arg0 length) 0) (set! (-> arg0 version) 1) - (set! - (-> arg0 level-index) - (-> (lookup-level-info (-> obj current-continue level)) index) - ) + (set! (-> arg0 level-index) (-> (lookup-level-info (-> obj current-continue level)) index)) (set! (-> arg0 fuel-cell-count) (-> obj fuel)) (set! (-> arg0 money-count) (-> obj money-total)) (set! (-> arg0 buzzer-count) (-> obj buzzer-total)) (set! (-> arg0 completion-percentage) (calculate-completion (the-as progress #f))) (when (string= (-> obj current-continue name) "title-start") - (set! (-> arg0 new-game) 1) - (set! (-> arg0 level-index) (-> (lookup-level-info 'training) index)) - (set! (-> arg0 fuel-cell-count) 0.0) - (set! (-> arg0 money-count) 0.0) - (set! (-> arg0 buzzer-count) 0.0) - (set! (-> arg0 completion-percentage) 0.0) - ) + (set! (-> arg0 new-game) 1) + (set! (-> arg0 level-index) (-> (lookup-level-info 'training) index)) + (set! (-> arg0 fuel-cell-count) 0.0) + (set! (-> arg0 money-count) 0.0) + (set! (-> arg0 buzzer-count) 0.0) + (set! (-> arg0 completion-percentage) 0.0) + ) (let ((s3-1 (new 'stack 'scf-time))) - (scf-get-time s3-1) - (when (zero? (-> s3-1 stat)) - (set! (-> arg0 minute) (-> s3-1 minute)) - (set! (-> arg0 hour) (-> s3-1 hour)) - (set! (-> arg0 day) (-> s3-1 day)) - (set! (-> arg0 week) (-> s3-1 week)) - (set! (-> arg0 month) (-> s3-1 month)) - (set! (-> arg0 year) (-> s3-1 year)) + (scf-get-time s3-1) + (when (zero? (-> s3-1 stat)) + (set! (-> arg0 minute) (-> s3-1 minute)) + (set! (-> arg0 hour) (-> s3-1 hour)) + (set! (-> arg0 day) (-> s3-1 day)) + (set! (-> arg0 week) (-> s3-1 week)) + (set! (-> arg0 month) (-> s3-1 month)) + (set! (-> arg0 year) (-> s3-1 year)) + ) ) - ) - - ;; set tags. (let ((s3-2 (the-as object (-> arg0 tag)))) - (let ((s2-0 (-> (the-as (inline-array game-save-tag) s3-2) 0))) - (set! (-> s2-0 elt-type) (game-save-elt name)) - (set! (-> s2-0 elt-count) (+ (length arg1) 1)) - (set! (-> s2-0 elt-size) (the-as uint 1)) - ) - (copy-charp<-charp - (the-as (pointer uint8) (-> (the-as (inline-array game-save-tag) s3-2) 1)) - (-> arg1 data) - ) - (let - ((v1-37 - (&+ - (the-as pointer s3-2) - (+ - (logand - -16 - (+ (-> (the-as (inline-array game-save-tag) s3-2) 0 elt-count) 15) - ) - 16 - ) - ) + (let ((s2-0 (-> (the-as (inline-array game-save-tag) s3-2) 0))) + (set! (-> s2-0 elt-type) (game-save-elt name)) + (set! (-> s2-0 elt-count) (+ (length arg1) 1)) + (set! (-> s2-0 elt-size) (the-as uint 1)) ) - ) - (let ((a0-15 (the-as game-save-tag (&+ v1-37 0)))) - (set! (-> a0-15 elt-type) (game-save-elt base-time)) - (set! (-> a0-15 elt-count) 0) - (set! - (-> a0-15 user-uint64) - (the-as uint (-> *display* base-frame-counter)) - ) - ) - (let ((v1-38 (&+ v1-37 16))) - (let ((a0-16 (the-as game-save-tag (&+ v1-38 0)))) - (set! (-> a0-16 elt-type) (game-save-elt real-time)) - (set! (-> a0-16 elt-count) 0) - (set! - (-> a0-16 user-uint64) - (the-as uint (-> *display* real-frame-counter)) - ) - ) - (let ((v1-39 (&+ v1-38 16))) - (let ((a0-17 (the-as game-save-tag (&+ v1-39 0)))) - (set! (-> a0-17 elt-type) (game-save-elt game-time)) - (set! (-> a0-17 elt-count) 0) - (set! - (-> a0-17 user-uint64) - (the-as uint (-> *display* game-frame-counter)) - ) - ) - (let ((v1-40 (&+ v1-39 16))) - (let ((a0-18 (the-as game-save-tag (&+ v1-40 0)))) - (set! (-> a0-18 elt-type) (game-save-elt integral-time)) - (set! (-> a0-18 elt-count) 0) - (set! - (-> a0-18 user-uint64) - (the-as uint (-> *display* integral-frame-counter)) - ) - ) - (let ((s4-1 (the-as object (&+ v1-40 16)))) - (let ((s3-3 (-> obj current-continue name))) - (let - ((s2-1 - (the-as game-save-tag (-> (the-as game-save-tag s4-1) user-object)) - ) - ) - (set! (-> s2-1 elt-type) (game-save-elt continue)) - (set! (-> s2-1 elt-count) (+ (length s3-3) 1)) - (set! (-> s2-1 elt-size) (the-as uint 1)) - ) - (copy-charp<-charp - (the-as - (pointer uint8) - (the-as game-save-tag (&+ (the-as game-save-tag s4-1) 16)) - ) - (-> s3-3 data) - ) - ) - (let - ((v1-50 - (&+ - (the-as pointer s4-1) - (+ - (logand -16 (+ (-> (the-as game-save-tag s4-1) elt-count) 15)) - 16 - ) - ) - ) - ) - (let ((a0-24 (the-as game-save-tag (&+ v1-50 0)))) - (set! (-> a0-24 elt-type) (game-save-elt life)) - (set! (-> a0-24 elt-count) 0) - (set! (-> a0-24 user-float0) (-> obj life)) - ) - (let ((v1-51 (&+ v1-50 16))) - (let ((a0-25 (the-as game-save-tag (&+ v1-51 0)))) - (set! (-> a0-25 elt-type) (game-save-elt buzzer-total)) - (set! (-> a0-25 elt-count) 0) - (set! (-> a0-25 user-float0) (-> obj buzzer-total)) - ) - (let ((v1-52 (&+ v1-51 16))) - (let ((a0-26 (the-as game-save-tag (&+ v1-52 0)))) - (set! (-> a0-26 elt-type) (game-save-elt fuel-cell)) - (set! (-> a0-26 elt-count) 0) - (set! (-> a0-26 user-float0) (-> obj fuel)) - ) - (let ((v1-53 (&+ v1-52 16))) - (let ((a0-27 (the-as game-save-tag (&+ v1-53 0)))) - (set! (-> a0-27 elt-type) (game-save-elt death-movie-tick)) - (set! (-> a0-27 elt-count) 0) - (set! - (-> a0-27 user-uint64) - (the-as uint (-> obj death-movie-tick)) - ) - ) - (let ((v1-54 (&+ v1-53 16))) - (let ((a0-28 (the-as game-save-tag (&+ v1-54 0)))) - (set! (-> a0-28 elt-type) (game-save-elt money)) - (set! (-> a0-28 elt-count) 0) - (set! (-> a0-28 user-float0) (-> obj money)) - ) - (let ((v1-55 (&+ v1-54 16))) - (let ((a0-29 (the-as game-save-tag (&+ v1-55 0)))) - (set! (-> a0-29 elt-type) (game-save-elt money-total)) - (set! (-> a0-29 elt-count) 0) - (set! (-> a0-29 user-float0) (-> obj money-total)) - ) - (let ((v1-56 (&+ v1-55 16))) - (let ((a0-30 (the-as game-save-tag (&+ v1-56 0)))) - (set! (-> a0-30 elt-type) (game-save-elt moeny-per-level)) - (set! (-> a0-30 elt-count) 32) - (set! (-> a0-30 elt-size) (the-as uint 1)) - ) - (let ((v1-57 (&+ v1-56 16))) - (dotimes (a0-31 32) - (set! - (-> (the-as (pointer uint8) (&+ v1-57 a0-31))) - (-> obj money-per-level a0-31) - ) + (copy-charp<-charp (the-as (pointer uint8) (-> (the-as (inline-array game-save-tag) s3-2) 1)) (-> arg1 data)) + (let ((v1-37 (&+ + (the-as pointer s3-2) + (+ (logand -16 (+ (-> (the-as (inline-array game-save-tag) s3-2) 0 elt-count) 15)) 16) + ) ) - (let ((v1-58 (&+ v1-57 32))) - (let ((a0-34 (the-as object (&+ v1-58 0)))) - (set! - (-> (the-as game-save-tag a0-34) elt-type) - (game-save-elt level-open-list) - ) - (set! (-> (the-as game-save-tag a0-34) elt-count) 32) - (set! - (-> (the-as game-save-tag a0-34) elt-size) - (the-as uint 1) - ) - ) - (let ((v1-59 (&+ v1-58 16))) - (dotimes (a0-35 32) - (set! - (-> (the-as (pointer uint8) (&+ v1-59 a0-35))) - (-> obj level-opened a0-35) - ) - ) - (let ((v1-60 (&+ v1-59 32)) - (s4-2 - (-> (the-as (pointer int32) (-> obj perm-list)) 0) - ) - ) - (let ((a0-39 (the-as game-save-tag (&+ v1-60 0)))) - (set! (-> a0-39 elt-type) (game-save-elt perm-list)) - (set! (-> a0-39 elt-count) s4-2) - (set! (-> a0-39 elt-size) (the-as uint 16)) - ) - (let ((s3-4 (&+ v1-60 16))) - (dotimes (s2-2 s4-2) - (mem-copy! - (the-as - pointer - (the-as game-save-tag (&+ s3-4 (* s2-2 16))) - ) - (the-as pointer (-> obj perm-list data s2-2)) - 16 - ) - ) - (let ((v1-68 (&+ s3-4 (logand -16 (+ (* s4-2 16) 15)))) - (s4-3 (-> obj task-perm-list length)) - ) - (let ((a0-45 (the-as game-save-tag (&+ v1-68 0)))) - (set! (-> a0-45 elt-type) (game-save-elt task-list)) - (set! (-> a0-45 elt-count) s4-3) - (set! (-> a0-45 elt-size) (the-as uint 16)) - ) - (let ((s3-5 (&+ v1-68 16))) - (dotimes (s2-3 s4-3) - (mem-copy! - (the-as - pointer - (the-as game-save-tag (&+ s3-5 (* s2-3 16))) - ) - (the-as pointer (-> obj task-perm-list data s2-3)) - 16 - ) - ) - (let ((a0-49 (&+ s3-5 (logand -16 (+ (* s4-3 16) 15)))) - (v1-79 - (/ - (logand - -8 - (+ (-> obj text-ids-seen allocated-length) 7) - ) - 8 - ) - ) - ) - (let ((a1-46 (the-as object (&+ a0-49 0)))) - (set! - (-> (the-as game-save-tag a1-46) elt-type) - (game-save-elt text-list) - ) - (set! (-> (the-as game-save-tag a1-46) elt-count) v1-79) - (set! - (-> (the-as game-save-tag a1-46) elt-size) - (the-as uint 1) - ) - ) - (let ((a0-50 (&+ a0-49 16))) - (dotimes (a1-47 v1-79) - (set! - (-> (the-as (pointer uint8) (&+ a0-50 a1-47))) - (-> obj text-ids-seen bytes a1-47) - ) - ) - (let ((a0-51 (&+ a0-50 (logand -16 (+ v1-79 15)))) - (v1-84 (-> obj hint-control length)) - ) - (let ((a1-51 (the-as game-save-tag (&+ a0-51 0)))) - (set! (-> a1-51 elt-type) (game-save-elt hint-list)) - (set! (-> a1-51 elt-count) v1-84) - (set! (-> a1-51 elt-size) (the-as uint 32)) - ) - (let ((a0-52 (&+ a0-51 16))) - (dotimes (a1-52 v1-84) - (set! - (-> - (the-as - (pointer int64) - (&+ a0-52 (* (* a1-52 4) 8)) - ) - ) - (-> obj hint-control a1-52 start-time) - ) - (set! - (-> - (the-as - (pointer int64) - (&+ a0-52 (* (+ (* a1-52 4) 1) 8)) - ) - ) - (-> obj hint-control a1-52 last-time-called) - ) - (set! - (-> - (the-as - (pointer int8) - (&+ a0-52 (+ (* a1-52 32) 16)) - ) - ) - (-> obj hint-control a1-52 num-attempts) - ) - (set! - (-> - (the-as - (pointer int8) - (&+ a0-52 (+ (* a1-52 32) 17)) - ) - ) - (-> obj hint-control a1-52 num-success) - ) - ) - (let ((v1-86 (&+ a0-52 (* v1-84 32)))) - (let ((a0-54 (the-as game-save-tag (&+ v1-86 0)))) - (set! - (-> a0-54 elt-type) - (game-save-elt auto-save-count) - ) - (set! (-> a0-54 elt-count) 0) - (set! - (-> a0-54 user-uint64) - (the-as uint (-> obj auto-save-count)) - ) - ) - (let ((v1-87 (&+ v1-86 16))) - (let ((a0-55 (the-as game-save-tag (&+ v1-87 0)))) - (set! - (-> a0-55 elt-type) - (game-save-elt total-deaths) - ) - (set! (-> a0-55 elt-count) 0) - (set! - (-> a0-55 user-uint64) - (the-as uint (-> obj total-deaths)) - ) - ) - (let ((v1-88 (&+ v1-87 16))) - (let ((a0-56 (the-as game-save-tag (&+ v1-88 0)))) - (set! - (-> a0-56 elt-type) - (game-save-elt continue-deaths) - ) - (set! (-> a0-56 elt-count) 0) - (set! - (-> a0-56 user-uint64) - (the-as uint (-> obj continue-deaths)) - ) - ) - (let ((v1-89 (&+ v1-88 16))) - (let ((a0-57 (the-as game-save-tag (&+ v1-89 0)))) - (set! - (-> a0-57 elt-type) - (game-save-elt fuel-cell-deaths) - ) - (set! (-> a0-57 elt-count) 0) - (set! - (-> a0-57 user-uint64) - (the-as uint (-> obj fuel-cell-deaths)) - ) - ) - (let ((v1-90 (&+ v1-89 16))) - (let - ((a0-58 (the-as game-save-tag (&+ v1-90 0)))) - (set! - (-> a0-58 elt-type) - (game-save-elt game-start-time) - ) - (set! (-> a0-58 elt-count) 0) - (set! - (-> a0-58 user-uint64) - (-> obj game-start-time) - ) - ) - (let ((v1-91 (&+ v1-90 16))) - (let - ((a0-59 (the-as game-save-tag (&+ v1-91 0)))) - (set! - (-> a0-59 elt-type) - (game-save-elt continue-time) - ) - (set! (-> a0-59 elt-count) 0) - (set! - (-> a0-59 user-uint64) - (-> obj continue-time) - ) - ) - (let ((v1-92 (&+ v1-91 16))) - (let - ((a0-60 (the-as game-save-tag (&+ v1-92 0)))) - (set! - (-> a0-60 elt-type) - (game-save-elt death-time) - ) - (set! (-> a0-60 elt-count) 0) - (set! - (-> a0-60 user-uint64) - (-> obj death-time) - ) - ) - (let ((v1-93 (&+ v1-92 16))) - (let - ((a0-61 (the-as game-save-tag (&+ v1-93 0)))) - (set! - (-> a0-61 elt-type) - (game-save-elt hit-time) - ) - (set! (-> a0-61 elt-count) 0) - (set! - (-> a0-61 user-uint64) - (-> obj hit-time) - ) - ) - (let ((v1-94 (&+ v1-93 16))) - (let - ((a0-62 (the-as game-save-tag (&+ v1-94 0))) - ) - (set! - (-> a0-62 elt-type) - (game-save-elt fuel-cell-pickup-time) - ) - (set! (-> a0-62 elt-count) 0) - (set! - (-> a0-62 user-uint64) - (-> obj fuel-cell-pickup-time) - ) - ) - (let ((v1-95 (&+ v1-94 16))) - (let - ((a0-63 - (the-as game-save-tag (&+ v1-95 0)) - ) - ) - (set! - (-> a0-63 elt-type) - (game-save-elt fuel-cell-time) - ) - (set! (-> a0-63 elt-count) 116) - (set! (-> a0-63 elt-size) (the-as uint 8)) - ) - (let ((v1-96 (&+ v1-95 16))) - (let ((a0-64 (the-as object 0))) - (while (< (the-as int a0-64) 116) - (set! - (-> - (the-as - (pointer uint64) - (&+ v1-96 (* (the-as int a0-64) 8)) - ) - ) - (-> - obj - fuel-cell-time - (the-as int a0-64) - ) - ) - (set! a0-64 (+ (the-as int a0-64) 1)) - ) - ) - (let ((v1-97 (&+ v1-96 928))) - (let - ((a0-67 - (the-as game-save-tag (&+ v1-97 0)) - ) - ) - (set! - (-> a0-67 elt-type) - (game-save-elt deaths-per-level) - ) - (set! (-> a0-67 elt-count) 32) - (set! - (-> a0-67 elt-size) - (the-as uint 1) - ) - ) - (let ((v1-98 (&+ v1-97 16))) - (dotimes (a0-68 32) - (set! - (-> - (the-as - (pointer uint8) - (&+ v1-98 a0-68) - ) - ) - (-> obj deaths-per-level a0-68) - ) - ) - (let ((v1-99 (&+ v1-98 32))) - (let - ((a0-71 - (the-as game-save-tag (&+ v1-99 0)) - ) - ) - (set! - (-> a0-71 elt-type) - (game-save-elt enter-level-time) - ) - (set! (-> a0-71 elt-count) 32) - (set! - (-> a0-71 elt-size) - (the-as uint 8) - ) - ) - (let ((v1-100 (&+ v1-99 16))) - (dotimes (a0-72 32) - (set! - (-> - (the-as - (pointer uint64) - (&+ v1-100 (* a0-72 8)) - ) - ) - (-> obj enter-level-time a0-72) - ) - ) - (let ((v1-101 (&+ v1-100 256))) - (let - ((a0-75 - (the-as - game-save-tag - (&+ v1-101 0) - ) - ) - ) - (set! - (-> a0-75 elt-type) - (game-save-elt in-level-time) - ) - (set! (-> a0-75 elt-count) 32) - (set! - (-> a0-75 elt-size) - (the-as uint 8) - ) - ) - (let ((v1-102 (&+ v1-101 16))) - (dotimes (a0-76 32) - (set! - (-> - (the-as - (pointer uint64) - (&+ v1-102 (* a0-76 8)) - ) - ) - (-> obj in-level-time a0-76) - ) - ) - (let ((v1-103 (&+ v1-102 256))) - (let - ((a0-79 - (the-as - game-save-tag - (&+ v1-103 0) - ) - ) - ) - (set! - (-> a0-79 elt-type) - (game-save-elt sfx-volume) - ) - (set! (-> a0-79 elt-count) 0) - (set! - (-> a0-79 user-float0) - (-> - *setting-control* - default - sfx-volume - ) - ) - ) - (let ((v1-104 (&+ v1-103 16))) - (let - ((a0-80 - (the-as - game-save-tag - (&+ v1-104 0) - ) - ) - ) - (set! - (-> a0-80 elt-type) - (game-save-elt music-volume) - ) - (set! (-> a0-80 elt-count) 0) - (set! - (-> a0-80 user-float0) - (-> - *setting-control* - default - music-volume - ) - ) - ) - (let ((v1-105 (&+ v1-104 16))) - (let - ((a0-81 - (the-as - game-save-tag - (&+ v1-105 0) - ) - ) - ) - (set! - (-> a0-81 elt-type) - (game-save-elt dialog-volume) - ) - (set! (-> a0-81 elt-count) 0) - (set! - (-> a0-81 user-float0) - (-> - *setting-control* - default - dialog-volume - ) - ) - ) - (let ((v1-106 (&+ v1-105 16))) - (let - ((a0-82 - (the-as - game-save-tag - (&+ v1-106 0) - ) - ) - ) - (set! - (-> a0-82 elt-type) - (game-save-elt language) - ) - (set! (-> a0-82 elt-count) 0) - (set! - (-> a0-82 user-uint64) - (the-as - uint - (-> - *setting-control* - default - language - ) - ) - ) - ) - (let ((v1-107 (&+ v1-106 16))) - (let - ((a0-83 - (the-as - game-save-tag - (&+ v1-107 0) - ) - ) - ) - (set! - (-> a0-83 elt-type) - (game-save-elt screenx) - ) - (set! (-> a0-83 elt-count) 0) - (set! - (-> a0-83 user-float0) - (the - float - (-> - *setting-control* - default - screenx - ) - ) - ) - ) - (let ((v1-108 (&+ v1-107 16))) - (let - ((a0-84 - (the-as - game-save-tag - (&+ v1-108 0) - ) - ) - ) - (set! - (-> a0-84 elt-type) - (game-save-elt screeny) - ) - (set! (-> a0-84 elt-count) 0) - (set! - (-> a0-84 user-float0) - (the - float - (-> - *setting-control* - default - screeny - ) - ) - ) - ) - (let ((v1-109 (&+ v1-108 16))) - (let - ((a0-85 - (the-as - game-save-tag - (&+ v1-109 0) - ) - ) - ) - (set! - (-> a0-85 elt-type) - (game-save-elt vibration) - ) - (set! (-> a0-85 elt-count) 0) - (set! - (-> a0-85 user-uint64) - (the-as - uint - (if - (-> - *setting-control* - default - vibration - ) - 1 - 0 - ) - ) - ) - ) - (let ((v1-110 (&+ v1-109 16))) - (let - ((a0-86 - (the-as - game-save-tag - (&+ v1-110 0) - ) - ) - ) - (set! - (-> a0-86 elt-type) - (game-save-elt play-hints) - ) - (set! - (-> a0-86 elt-count) - 0 - ) - (set! - (-> a0-86 user-uint64) - (the-as - uint - (if - (-> - *setting-control* - default - play-hints - ) - 1 - 0 - ) - ) - ) - ) - (let - ((v1-111 (&+ v1-110 16))) - (let - ((a0-87 - (the-as - game-save-tag - (&+ v1-111 0) - ) - ) - ) - (set! - (-> a0-87 elt-type) - (game-save-elt video-mode) - ) - (set! - (-> a0-87 elt-count) - 0 - ) - (let - ((a1-121 - (-> - *setting-control* - default - video-mode - ) - ) - ) - (set! - (-> a0-87 user-uint64) - (the-as uint (cond - ((= - a1-121 - 'ntsc - ) - 1 - ) - ((= - a1-121 - 'pal - ) - 2 - ) - (else - 0 - ) - ) - ) - ) - ) - ) - (let - ((v1-112 (&+ v1-111 16))) - (let - ((a0-88 - (the-as - object - (&+ v1-112 0) - ) - ) - ) - (set! - (-> - (the-as - game-save-tag - a0-88 - ) - elt-type - ) - (game-save-elt - aspect-ratio - ) - ) - (set! - (-> - (the-as - game-save-tag - a0-88 - ) - elt-count - ) - 0 - ) - (let - ((a1-125 - (-> - *setting-control* - default - aspect-ratio - ) - ) - ) - (set! - (-> - (the-as - (pointer int64) - a0-88 - ) - ) - (cond - ((= a1-125 'aspect4x3) - 1 - ) - ((= a1-125 'aspect16x9) - 2 - ) - (else - 0 - ) - ) - ) - ) - ) - (set! - (-> arg0 length) - (&- - (&+ v1-112 16) - (the-as - uint - (the-as - pointer - (-> arg0 tag) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) ) - ) + (let ((a0-15 (the-as game-save-tag (&+ v1-37 0)))) + (set! (-> a0-15 elt-type) (game-save-elt base-time)) + (set! (-> a0-15 elt-count) 0) + (set! (-> a0-15 user-uint64) (the-as uint (-> *display* base-frame-counter))) + ) + (let ((v1-38 (&+ v1-37 16))) + (let ((a0-16 (the-as game-save-tag (&+ v1-38 0)))) + (set! (-> a0-16 elt-type) (game-save-elt real-time)) + (set! (-> a0-16 elt-count) 0) + (set! (-> a0-16 user-uint64) (the-as uint (-> *display* real-frame-counter))) + ) + (let ((v1-39 (&+ v1-38 16))) + (let ((a0-17 (the-as game-save-tag (&+ v1-39 0)))) + (set! (-> a0-17 elt-type) (game-save-elt game-time)) + (set! (-> a0-17 elt-count) 0) + (set! (-> a0-17 user-uint64) (the-as uint (-> *display* game-frame-counter))) + ) + (let ((v1-40 (&+ v1-39 16))) + (let ((a0-18 (the-as game-save-tag (&+ v1-40 0)))) + (set! (-> a0-18 elt-type) (game-save-elt integral-time)) + (set! (-> a0-18 elt-count) 0) + (set! (-> a0-18 user-uint64) (the-as uint (-> *display* integral-frame-counter))) + ) + (let ((s4-1 (the-as object (&+ v1-40 16)))) + (let ((s3-3 (-> obj current-continue name))) + (let ((s2-1 (the-as game-save-tag (-> (the-as game-save-tag s4-1) user-object)))) + (set! (-> s2-1 elt-type) (game-save-elt continue)) + (set! (-> s2-1 elt-count) (+ ((method-of-type string length) s3-3) 1)) + (set! (-> s2-1 elt-size) (the-as uint 1)) + ) + (copy-charp<-charp + (the-as (pointer uint8) (the-as game-save-tag (&+ (the-as game-save-tag s4-1) 16))) + (-> s3-3 data) + ) + ) + (let ((v1-50 (&+ (the-as pointer s4-1) (+ (logand -16 (+ (-> (the-as game-save-tag s4-1) elt-count) 15)) 16)))) + (let ((a0-24 (the-as game-save-tag (&+ v1-50 0)))) + (set! (-> a0-24 elt-type) (game-save-elt life)) + (set! (-> a0-24 elt-count) 0) + (set! (-> a0-24 user-float0) (-> obj life)) + ) + (let ((v1-51 (&+ v1-50 16))) + (let ((a0-25 (the-as game-save-tag (&+ v1-51 0)))) + (set! (-> a0-25 elt-type) (game-save-elt buzzer-total)) + (set! (-> a0-25 elt-count) 0) + (set! (-> a0-25 user-float0) (-> obj buzzer-total)) + ) + (let ((v1-52 (&+ v1-51 16))) + (let ((a0-26 (the-as game-save-tag (&+ v1-52 0)))) + (set! (-> a0-26 elt-type) (game-save-elt fuel-cell)) + (set! (-> a0-26 elt-count) 0) + (set! (-> a0-26 user-float0) (-> obj fuel)) + ) + (let ((v1-53 (&+ v1-52 16))) + (let ((a0-27 (the-as game-save-tag (&+ v1-53 0)))) + (set! (-> a0-27 elt-type) (game-save-elt death-movie-tick)) + (set! (-> a0-27 elt-count) 0) + (set! (-> a0-27 user-uint64) (the-as uint (-> obj death-movie-tick))) + ) + (let ((v1-54 (&+ v1-53 16))) + (let ((a0-28 (the-as game-save-tag (&+ v1-54 0)))) + (set! (-> a0-28 elt-type) (game-save-elt money)) + (set! (-> a0-28 elt-count) 0) + (set! (-> a0-28 user-float0) (-> obj money)) + ) + (let ((v1-55 (&+ v1-54 16))) + (let ((a0-29 (the-as game-save-tag (&+ v1-55 0)))) + (set! (-> a0-29 elt-type) (game-save-elt money-total)) + (set! (-> a0-29 elt-count) 0) + (set! (-> a0-29 user-float0) (-> obj money-total)) + ) + (let ((v1-56 (&+ v1-55 16))) + (let ((a0-30 (the-as game-save-tag (&+ v1-56 0)))) + (set! (-> a0-30 elt-type) (game-save-elt moeny-per-level)) + (set! (-> a0-30 elt-count) 32) + (set! (-> a0-30 elt-size) (the-as uint 1)) + ) + (let ((v1-57 (&+ v1-56 16))) + (dotimes (a0-31 32) + (set! (-> (the-as (pointer uint8) (&+ v1-57 a0-31))) (-> obj money-per-level a0-31)) + ) + (let ((v1-58 (&+ v1-57 32))) + (let ((a0-34 (the-as object (&+ v1-58 0)))) + (set! (-> (the-as game-save-tag a0-34) elt-type) (game-save-elt level-open-list)) + (set! (-> (the-as game-save-tag a0-34) elt-count) 32) + (set! (-> (the-as game-save-tag a0-34) elt-size) (the-as uint 1)) + ) + (let ((v1-59 (&+ v1-58 16))) + (dotimes (a0-35 32) + (set! (-> (the-as (pointer uint8) (&+ v1-59 a0-35))) (-> obj level-opened a0-35)) + ) + (let ((v1-60 (&+ v1-59 32)) + (s4-2 (-> (the-as (pointer int32) (-> obj perm-list)) 0)) + ) + (let ((a0-39 (the-as game-save-tag (&+ v1-60 0)))) + (set! (-> a0-39 elt-type) (game-save-elt perm-list)) + (set! (-> a0-39 elt-count) s4-2) + (set! (-> a0-39 elt-size) (the-as uint 16)) + ) + (let ((s3-4 (&+ v1-60 16))) + (dotimes (s2-2 s4-2) + (mem-copy! + (the-as pointer (the-as game-save-tag (&+ s3-4 (* s2-2 16)))) + (the-as pointer (-> obj perm-list data s2-2)) + 16 + ) + ) + (let ((v1-68 (&+ s3-4 (logand -16 (+ (* s4-2 16) 15)))) + (s4-3 (-> obj task-perm-list length)) + ) + (let ((a0-45 (the-as game-save-tag (&+ v1-68 0)))) + (set! (-> a0-45 elt-type) (game-save-elt task-list)) + (set! (-> a0-45 elt-count) s4-3) + (set! (-> a0-45 elt-size) (the-as uint 16)) + ) + (let ((s3-5 (&+ v1-68 16))) + (dotimes (s2-3 s4-3) + (mem-copy! + (the-as pointer (the-as game-save-tag (&+ s3-5 (* s2-3 16)))) + (the-as pointer (-> obj task-perm-list data s2-3)) + 16 + ) + ) + (let ((a0-49 (&+ s3-5 (logand -16 (+ (* s4-3 16) 15)))) + (v1-79 (/ (logand -8 (+ (-> obj text-ids-seen allocated-length) 7)) 8)) + ) + (let ((a1-46 (the-as object (&+ a0-49 0)))) + (set! (-> (the-as game-save-tag a1-46) elt-type) (game-save-elt text-list)) + (set! (-> (the-as game-save-tag a1-46) elt-count) v1-79) + (set! (-> (the-as game-save-tag a1-46) elt-size) (the-as uint 1)) + ) + (let ((a0-50 (&+ a0-49 16))) + (dotimes (a1-47 v1-79) + (set! (-> (the-as (pointer uint8) (&+ a0-50 a1-47))) (-> obj text-ids-seen bytes a1-47)) + ) + (let ((a0-51 (&+ a0-50 (logand -16 (+ v1-79 15)))) + (v1-84 (-> obj hint-control length)) + ) + (let ((a1-51 (the-as game-save-tag (&+ a0-51 0)))) + (set! (-> a1-51 elt-type) (game-save-elt hint-list)) + (set! (-> a1-51 elt-count) v1-84) + (set! (-> a1-51 elt-size) (the-as uint 32)) + ) + (let ((a0-52 (&+ a0-51 16))) + (dotimes (a1-52 v1-84) + (set! (-> (the-as (pointer int64) (&+ a0-52 (* (* a1-52 4) 8)))) (-> obj hint-control a1-52 start-time)) + (set! (-> (the-as (pointer int64) (&+ a0-52 (* (+ (* a1-52 4) 1) 8)))) + (-> obj hint-control a1-52 last-time-called) + ) + (set! (-> (the-as (pointer int8) (&+ a0-52 (+ (* a1-52 32) 16)))) (-> obj hint-control a1-52 num-attempts)) + (set! (-> (the-as (pointer int8) (&+ a0-52 (+ (* a1-52 32) 17)))) (-> obj hint-control a1-52 num-success)) + ) + (let ((v1-86 (&+ a0-52 (* v1-84 32)))) + (let ((a0-54 (the-as game-save-tag (&+ v1-86 0)))) + (set! (-> a0-54 elt-type) (game-save-elt auto-save-count)) + (set! (-> a0-54 elt-count) 0) + (set! (-> a0-54 user-uint64) (the-as uint (-> obj auto-save-count))) + ) + (let ((v1-87 (&+ v1-86 16))) + (let ((a0-55 (the-as game-save-tag (&+ v1-87 0)))) + (set! (-> a0-55 elt-type) (game-save-elt total-deaths)) + (set! (-> a0-55 elt-count) 0) + (set! (-> a0-55 user-uint64) (the-as uint (-> obj total-deaths))) + ) + (let ((v1-88 (&+ v1-87 16))) + (let ((a0-56 (the-as game-save-tag (&+ v1-88 0)))) + (set! (-> a0-56 elt-type) (game-save-elt continue-deaths)) + (set! (-> a0-56 elt-count) 0) + (set! (-> a0-56 user-uint64) (the-as uint (-> obj continue-deaths))) + ) + (let ((v1-89 (&+ v1-88 16))) + (let ((a0-57 (the-as game-save-tag (&+ v1-89 0)))) + (set! (-> a0-57 elt-type) (game-save-elt fuel-cell-deaths)) + (set! (-> a0-57 elt-count) 0) + (set! (-> a0-57 user-uint64) (the-as uint (-> obj fuel-cell-deaths))) + ) + (let ((v1-90 (&+ v1-89 16))) + (let ((a0-58 (the-as game-save-tag (&+ v1-90 0)))) + (set! (-> a0-58 elt-type) (game-save-elt game-start-time)) + (set! (-> a0-58 elt-count) 0) + (set! (-> a0-58 user-uint64) (the-as uint (-> obj game-start-time))) + ) + (let ((v1-91 (&+ v1-90 16))) + (let ((a0-59 (the-as game-save-tag (&+ v1-91 0)))) + (set! (-> a0-59 elt-type) (game-save-elt continue-time)) + (set! (-> a0-59 elt-count) 0) + (set! (-> a0-59 user-uint64) (the-as uint (-> obj continue-time))) + ) + (let ((v1-92 (&+ v1-91 16))) + (let ((a0-60 (the-as game-save-tag (&+ v1-92 0)))) + (set! (-> a0-60 elt-type) (game-save-elt death-time)) + (set! (-> a0-60 elt-count) 0) + (set! (-> a0-60 user-uint64) (the-as uint (-> obj death-time))) + ) + (let ((v1-93 (&+ v1-92 16))) + (let ((a0-61 (the-as game-save-tag (&+ v1-93 0)))) + (set! (-> a0-61 elt-type) (game-save-elt hit-time)) + (set! (-> a0-61 elt-count) 0) + (set! (-> a0-61 user-uint64) (the-as uint (-> obj hit-time))) + ) + (let ((v1-94 (&+ v1-93 16))) + (let ((a0-62 (the-as game-save-tag (&+ v1-94 0)))) + (set! (-> a0-62 elt-type) (game-save-elt fuel-cell-pickup-time)) + (set! (-> a0-62 elt-count) 0) + (set! (-> a0-62 user-uint64) (the-as uint (-> obj fuel-cell-pickup-time))) + ) + (let ((v1-95 (&+ v1-94 16))) + (let ((a0-63 (the-as game-save-tag (&+ v1-95 0)))) + (set! (-> a0-63 elt-type) (game-save-elt fuel-cell-time)) + (set! (-> a0-63 elt-count) 116) + (set! (-> a0-63 elt-size) (the-as uint 8)) + ) + (let ((v1-96 (&+ v1-95 16))) + (let ((a0-64 (the-as object 0))) + (while (< (the-as int a0-64) 116) + (set! (-> (the-as (pointer int64) (&+ v1-96 (* (the-as int a0-64) 8)))) + (-> obj fuel-cell-time (the-as int a0-64)) + ) + (set! a0-64 (+ (the-as int a0-64) 1)) + ) + ) + (let ((v1-97 (&+ v1-96 928))) + (let ((a0-67 (the-as game-save-tag (&+ v1-97 0)))) + (set! (-> a0-67 elt-type) (game-save-elt deaths-per-level)) + (set! (-> a0-67 elt-count) 32) + (set! (-> a0-67 elt-size) (the-as uint 1)) + ) + (let ((v1-98 (&+ v1-97 16))) + (dotimes (a0-68 32) + (set! (-> (the-as (pointer uint8) (&+ v1-98 a0-68))) (-> obj deaths-per-level a0-68)) + ) + (let ((v1-99 (&+ v1-98 32))) + (let ((a0-71 (the-as game-save-tag (&+ v1-99 0)))) + (set! (-> a0-71 elt-type) (game-save-elt enter-level-time)) + (set! (-> a0-71 elt-count) 32) + (set! (-> a0-71 elt-size) (the-as uint 8)) + ) + (let ((v1-100 (&+ v1-99 16))) + (dotimes (a0-72 32) + (set! (-> (the-as (pointer int64) (&+ v1-100 (* a0-72 8)))) (-> obj enter-level-time a0-72)) + ) + (let ((v1-101 (&+ v1-100 256))) + (let ((a0-75 (the-as game-save-tag (&+ v1-101 0)))) + (set! (-> a0-75 elt-type) (game-save-elt in-level-time)) + (set! (-> a0-75 elt-count) 32) + (set! (-> a0-75 elt-size) (the-as uint 8)) + ) + (let ((v1-102 (&+ v1-101 16))) + (dotimes (a0-76 32) + (set! (-> (the-as (pointer int64) (&+ v1-102 (* a0-76 8)))) (-> obj in-level-time a0-76)) + ) + (let ((v1-103 (&+ v1-102 256))) + (let ((a0-79 (the-as game-save-tag (&+ v1-103 0)))) + (set! (-> a0-79 elt-type) (game-save-elt sfx-volume)) + (set! (-> a0-79 elt-count) 0) + (set! (-> a0-79 user-float0) (-> *setting-control* default sfx-volume)) + ) + (let ((v1-104 (&+ v1-103 16))) + (let ((a0-80 (the-as game-save-tag (&+ v1-104 0)))) + (set! (-> a0-80 elt-type) (game-save-elt music-volume)) + (set! (-> a0-80 elt-count) 0) + (set! (-> a0-80 user-float0) (-> *setting-control* default music-volume)) + ) + (let ((v1-105 (&+ v1-104 16))) + (let ((a0-81 (the-as game-save-tag (&+ v1-105 0)))) + (set! (-> a0-81 elt-type) (game-save-elt dialog-volume)) + (set! (-> a0-81 elt-count) 0) + (set! (-> a0-81 user-float0) (-> *setting-control* default dialog-volume)) + ) + (let ((v1-106 (&+ v1-105 16))) + (let ((a0-82 (the-as game-save-tag (&+ v1-106 0)))) + (set! (-> a0-82 elt-type) (game-save-elt language)) + (set! (-> a0-82 elt-count) 0) + (set! (-> a0-82 user-uint64) (the-as uint (-> *setting-control* default language))) + ) + (let ((v1-107 (&+ v1-106 16))) + (let ((a0-83 (the-as game-save-tag (&+ v1-107 0)))) + (set! (-> a0-83 elt-type) (game-save-elt screenx)) + (set! (-> a0-83 elt-count) 0) + (set! (-> a0-83 user-float0) (the float (-> *setting-control* default screenx))) + ) + (let ((v1-108 (&+ v1-107 16))) + (let ((a0-84 (the-as game-save-tag (&+ v1-108 0)))) + (set! (-> a0-84 elt-type) (game-save-elt screeny)) + (set! (-> a0-84 elt-count) 0) + (set! (-> a0-84 user-float0) (the float (-> *setting-control* default screeny))) + ) + (let ((v1-109 (&+ v1-108 16))) + (let ((a0-85 (the-as game-save-tag (&+ v1-109 0)))) + (set! (-> a0-85 elt-type) (game-save-elt vibration)) + (set! (-> a0-85 elt-count) 0) + (set! (-> a0-85 user-uint64) (the-as uint (if (-> *setting-control* default vibration) + 1 + 0 + ) + ) + ) + ) + (let ((v1-110 (&+ v1-109 16))) + (let ((a0-86 (the-as game-save-tag (&+ v1-110 0)))) + (set! (-> a0-86 elt-type) (game-save-elt play-hints)) + (set! (-> a0-86 elt-count) 0) + (set! (-> a0-86 user-uint64) (the-as uint (if (-> *setting-control* default play-hints) + 1 + 0 + ) + ) + ) + ) + (let ((v1-111 (&+ v1-110 16))) + (let ((a0-87 (the-as game-save-tag (&+ v1-111 0)))) + (set! (-> a0-87 elt-type) (game-save-elt video-mode)) + (set! (-> a0-87 elt-count) 0) + (let ((a1-121 (-> *setting-control* default video-mode))) + (set! (-> a0-87 user-uint64) (the-as uint (cond + ((= a1-121 'ntsc) + 1 + ) + ((= a1-121 'pal) + 2 + ) + (else + 0 + ) + ) + ) + ) + ) + ) + (let ((v1-112 (&+ v1-111 16))) + (let ((a0-88 (the-as object (&+ v1-112 0)))) + (set! (-> (the-as game-save-tag a0-88) elt-type) (game-save-elt aspect-ratio)) + (set! (-> (the-as game-save-tag a0-88) elt-count) 0) + (let ((a1-125 (-> *setting-control* default aspect-ratio))) + (set! (-> (the-as (pointer int64) a0-88)) (cond + ((= a1-125 'aspect4x3) + 1 + ) + ((= a1-125 'aspect16x9) + 2 + ) + (else + 0 + ) + ) + ) + ) + ) + (set! (-> arg0 length) (&- (&+ v1-112 16) (the-as uint (the-as pointer (-> arg0 tag))))) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) ) - ) ) - ) ) - ) (if (< (-> arg0 allocated-length) (-> arg0 length)) - (format - 0 - "ERROR: SAVEGAME: fatal error, save is using ~D of ~D bytes." - (-> arg0 length) - (-> arg0 allocated-length) - ) - ) + (format + 0 + "ERROR: SAVEGAME: fatal error, save is using ~D of ~D bytes." + (-> arg0 length) + (-> arg0 allocated-length) + ) + ) (none) ) @@ -1661,7 +1175,7 @@ (save game-save :offset-assert 136) (info mc-slot-info :inline :offset-assert 140) (notify handle :offset-assert 440) - (state-time int64 :offset-assert 448) + (state-time time-frame :offset-assert 448) (part sparticle-launch-control :offset-assert 456) ) :heap-base #x160 @@ -1848,7 +1362,7 @@ (set! (-> self state-time) (-> *display* real-frame-counter)) (let ((a0-1 (reserve-alloc *art-control*))) (while (not a0-1) - (if (>= (- (-> *display* real-frame-counter) (-> self state-time)) #x4650) + (if (>= (- (-> *display* real-frame-counter) (-> self state-time)) (seconds 60)) (go-virtual error (mc-status-code no-memory)) ) (suspend) @@ -2310,7 +1824,7 @@ (('auto-save 'error) (set! (-> self state-time) (-> *display* real-frame-counter)) (set! (-> *game-info* auto-save-status) arg0) - (while (< (- (-> *display* real-frame-counter) (-> self state-time)) 60) + (while (< (- (-> *display* real-frame-counter) (-> self state-time)) (seconds 0.2)) (if (not (progress-allowed?)) (set! (-> self state-time) (-> *display* real-frame-counter)) ) @@ -2353,7 +1867,7 @@ (when (= (-> *game-info* auto-save-count) 1) (set! (-> self event-hook) (-> (method-of-object self error) event)) (set! (-> self state-time) (-> *display* real-frame-counter)) - (while (< (- (-> *display* real-frame-counter) (-> self state-time)) 60) + (while (< (- (-> *display* real-frame-counter) (-> self state-time)) (seconds 0.2)) (if (not (progress-allowed?)) (set! (-> self state-time) (-> *display* real-frame-counter)) ) diff --git a/goal_src/engine/game/generic-obs-h.gc b/goal_src/engine/game/generic-obs-h.gc index f0a5de21f4..ab79ebd2d5 100644 --- a/goal_src/engine/game/generic-obs-h.gc +++ b/goal_src/engine/game/generic-obs-h.gc @@ -20,10 +20,10 @@ (declare-type sparticle-launch-group basic) (declare-type part-tracker process) (declare-type collide-prim-core structure) -(define-extern part-tracker-init (function sparticle-launch-group int (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker)) +(define-extern part-tracker-init (function sparticle-launch-group time-frame (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker)) (declare-type touch-tracker process-drawable) -(define-extern touch-tracker-init (function vector float uint none :behavior touch-tracker)) ;; last arg is a handle to `target` +(define-extern touch-tracker-init (function vector float time-frame none :behavior touch-tracker)) (define-extern eco-blue-glow (function vector none)) @@ -83,12 +83,12 @@ (target handle :offset-assert 120) (callback (function part-tracker vector) :offset-assert 128) (linger-callback (function part-tracker vector) :offset-assert 132) - (duration uint64 :offset-assert 136) - (linger-duration uint64 :offset-assert 144) - (start-time uint64 :offset-assert 152) + (duration time-frame :offset-assert 136) + (linger-duration time-frame :offset-assert 144) + (start-time time-frame :offset-assert 152) (offset vector :inline :offset-assert 160) (userdata uint64 :offset-assert 176) - (user-time int64 2 :offset-assert 184) + (user-time time-frame 2 :offset-assert 184) (user-vector vector 2 :inline :offset-assert 208) (user-handle uint32 2 :offset-assert 240) ) @@ -114,7 +114,7 @@ (pov-target handle :offset-assert 160) (work-process handle :offset-assert 168) (anim-process handle :offset-assert 176) - (start-time int64 :offset-assert 184) + (start-time time-frame :offset-assert 184) (callback basic :offset-assert 192) (userdata basic :offset-assert 196) (message basic :offset-assert 200) @@ -139,7 +139,7 @@ (deftype touch-tracker (process-drawable) ((root-override collide-shape-moving :offset 112) - (duration uint64 :offset-assert 176) + (duration time-frame :offset-assert 176) (target handle :offset-assert 184) (event symbol :offset-assert 192) (run-function (function object) :offset-assert 196) diff --git a/goal_src/engine/game/generic-obs.gc b/goal_src/engine/game/generic-obs.gc index 09e93de9d5..843bd7755f 100644 --- a/goal_src/engine/game/generic-obs.gc +++ b/goal_src/engine/game/generic-obs.gc @@ -134,7 +134,7 @@ (suspend) ) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 150) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.5)) (suspend) ) ) @@ -624,8 +624,8 @@ (defstate part-tracker-process (part-tracker) :code (behavior () - (set! (-> self start-time) (the-as uint (-> *display* base-frame-counter))) - (while (< (- (-> *display* base-frame-counter) (the-as int (-> self start-time))) (the-as int (-> self duration))) + (set! (-> self start-time) (-> *display* base-frame-counter)) + (while (< (- (-> *display* base-frame-counter) (-> self start-time)) (-> self duration)) (let ((gp-0 (handle->process (-> self target)))) (when gp-0 (if (and gp-0 (type-type? (-> gp-0 type) process-drawable) (nonzero? (-> (the-as process-drawable gp-0) root))) @@ -642,7 +642,7 @@ (suspend) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) (the-as int (-> self linger-duration))) + (until (>= (- (-> *display* base-frame-counter) gp-2) (-> self linger-duration)) (if (-> self linger-callback) ((-> self linger-callback) self) ) @@ -660,7 +660,7 @@ ) (defbehavior part-tracker-init part-tracker ((arg0 sparticle-launch-group) - (arg1 int) + (arg1 time-frame) (arg2 (function part-tracker none)) (arg3 (pointer process-drawable)) (arg4 process) @@ -680,12 +680,12 @@ arg1 ) (else - (the-as int (-> arg0 duration)) + (the-as time-frame (-> arg0 duration)) ) ) ) - (set! (-> self duration) (the-as uint arg1)) - (set! (-> self linger-duration) (-> arg0 linger-duration)) + (set! (-> self duration) (the-as time-frame arg1)) + (set! (-> self linger-duration) (the-as time-frame (-> arg0 linger-duration))) (set! (-> self part) (create-launch-control arg0 self)) (go part-tracker-process) (none) @@ -1493,7 +1493,7 @@ (spring-height meters :offset-assert 176) (camera state :offset-assert 180) (active-distance float :offset-assert 184) - (seek-time uint64 :offset-assert 192) + (seek-time time-frame :offset-assert 192) (dest vector :inline :offset-assert 208) (sound-id sound-id :offset-assert 224) ) @@ -1827,7 +1827,7 @@ (when (not (paused?)) (vector--float*! (-> self trans) (-> *camera* tpos-curr) (-> *camera* local-down) 28672.0) (send-event *camera* 'teleport) - (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) 300)) + (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1))) (send-event *camera* 'change-state *camera-base-mode* 150) ) ) @@ -1932,7 +1932,7 @@ (set! (-> self trans x) (-> *camera* tpos-curr x)) (set! (-> self trans z) (-> *camera* tpos-curr z)) (vector+! (-> self trans) (-> self trans) (-> self view-flat)) - (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) 300)) + (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1))) (send-event *camera* 'change-state *camera-base-mode* 150) ) ) @@ -2076,7 +2076,7 @@ (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) ) ) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) ) (send-event *target* 'launch (-> self spring-height) (-> self camera) (-> self dest) (-> self seek-time)) ) @@ -2147,7 +2147,7 @@ (let ((v1-29 (res-lump-struct arg0 'alt-vector vector))) (when v1-29 (set-vector! (-> obj dest) (-> v1-29 x) (-> v1-29 y) (-> v1-29 z) 1.0) - (set! (-> obj seek-time) (the-as uint (the int (* 300.0 (-> v1-29 w))))) + (set! (-> obj seek-time) (the-as time-frame (the int (* 300.0 (-> v1-29 w))))) ) ) (set! (-> obj sound-id) (new-sound-id)) @@ -2206,7 +2206,7 @@ (let ((v1-34 (res-lump-struct (-> self entity) 'alt-vector vector))) (when v1-34 (set-vector! (-> self dest) (-> v1-34 x) (-> v1-34 y) (-> v1-34 z) 1.0) - (set! (-> self seek-time) (the-as uint (the int (* 300.0 (-> v1-34 w))))) + (set! (-> self seek-time) (the-as time-frame (the int (* 300.0 (-> v1-34 w))))) ) ) (set! (-> self sound-id) (new-sound-id)) @@ -2366,7 +2366,7 @@ ) ) -(defbehavior touch-tracker-init touch-tracker ((arg0 vector) (arg1 float) (arg2 uint)) +(defbehavior touch-tracker-init touch-tracker ((arg0 vector) (arg1 float) (arg2 time-frame)) (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) @@ -2391,8 +2391,9 @@ (set! (-> self event) #f) (set! (-> self callback) #f) (set! (-> self run-function) - (lambda :behavior touch-tracker () - (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self duration))) + (lambda :behavior touch-tracker + () + (< (- (-> *display* base-frame-counter) (-> self state-time)) (-> self duration)) ) ) (set! (-> self event-hook) (-> touch-tracker-idle event)) diff --git a/goal_src/engine/game/main-h.gc b/goal_src/engine/game/main-h.gc index 1f814b4c96..419b02bd3a 100644 --- a/goal_src/engine/game/main-h.gc +++ b/goal_src/engine/game/main-h.gc @@ -130,7 +130,7 @@ ;; unused. (deftype frame-stats (structure) - ((field-time int64 2 :offset-assert 0) + ((field-time time-frame 2 :offset-assert 0) (field int32 :offset-assert 16) ) :method-count-assert 9 @@ -154,7 +154,7 @@ ) (defun-extern movie? symbol) -(defun-extern set-blackout-frames int int) +(defun-extern set-blackout-frames time-frame none) (defun-extern on symbol process) (defun-extern off int) (define-extern set-master-mode (function symbol none)) diff --git a/goal_src/engine/game/main.gc b/goal_src/engine/game/main.gc index baf656cafe..e100504f16 100644 --- a/goal_src/engine/game/main.gc +++ b/goal_src/engine/game/main.gc @@ -9,12 +9,10 @@ ;; Letterbox and blackout ;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun set-letterbox-frames ((arg0 int)) +(defun set-letterbox-frames ((arg0 time-frame)) "Set the letterbox frame counter for arg0 frames in the future" - (let ((v0-0 (+ (current-time) arg0))) - (set! (-> *game-info* letterbox-time) v0-0) - v0-0 - ) + (set! (-> *game-info* letterbox-time) (+ (current-time) arg0)) + (none) ) (defun letterbox () @@ -28,7 +26,7 @@ (none) ) -(defun set-blackout-frames ((arg0 int)) +(defun set-blackout-frames ((arg0 time-frame)) "Set the blackout frame counter. If arg0 is 0, disables blackout immediately. Otherwise, this can only be used to increase the blackout period." (cond @@ -36,10 +34,11 @@ (set! (-> *game-info* blackout-time) (current-time)) ) (else - (set! (-> *game-info* blackout-time) (max (the int (-> *game-info* blackout-time)) - (the int (+ (current-time) arg0)))) + (set! (-> *game-info* blackout-time) (max (-> *game-info* blackout-time) + (+ (current-time) arg0))) ) ) + (none) ) (defun blackout () diff --git a/goal_src/engine/game/powerups.gc b/goal_src/engine/game/powerups.gc index 3e4914f6b9..c461010bf1 100644 --- a/goal_src/engine/game/powerups.gc +++ b/goal_src/engine/game/powerups.gc @@ -7,7 +7,13 @@ ;; DECOMP BEGINS -(defbehavior cloud-track process ((arg0 process-tree) (arg1 process-tree) (arg2 (function vector none)) (arg3 int) (arg4 int) (arg5 int)) +(defbehavior cloud-track process ((arg0 process-tree) + (arg1 process-tree) + (arg2 (function vector none)) + (arg3 time-frame) + (arg4 time-frame) + (arg5 time-frame) + ) (change-parent self arg0) (let ((s1-1 (process->handle arg0)) (s2-1 (process->handle arg1)) @@ -562,7 +568,7 @@ (cond ((and (= (-> self control ground-pat material) (pat-material ice)) (and (>= (-> self control unknown-float01) 204.8) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 15) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.05)) ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 74)))) @@ -655,8 +661,8 @@ (set! (-> a0-33 settings shadow-dir z) (-> v1-67 z)) ) (when (and (!= (-> self fact-info-target eco-level) 0.0) - (>= (- (-> *display* game-frame-counter) (the-as int (-> self fact-info-target eco-pickup-time))) - (the-as int (-> self fact-info-target eco-timeout)) + (>= (- (-> *display* game-frame-counter) (-> self fact-info-target eco-pickup-time)) + (the-as time-frame (-> self fact-info-target eco-timeout)) ) ) (set! (-> self fact-info-target eco-level) 0.0) @@ -673,10 +679,9 @@ (lerp-scale 0.0 1.0 - (the float - (- (-> self fact-info-target eco-timeout) - (the-as uint (- (-> *display* game-frame-counter) (the-as int (-> self fact-info-target eco-pickup-time)))) - ) + (the float (- (-> self fact-info-target eco-timeout) + (the-as uint (- (-> *display* game-frame-counter) (-> self fact-info-target eco-pickup-time))) + ) ) 0.0 900.0 @@ -684,7 +689,7 @@ ) ) (case (-> self fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (change-sound! (-> self sound) (static-sound-name "yel-eco-jak")) (let ((s4-0 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) (sp-launch-particles-var @@ -713,7 +718,7 @@ ) ) ) - ((2) + (((pickup-type eco-red)) (target-danger-set! (-> self control unknown-symbol30) #t) (update-transforms! (-> self control)) (let ((a1-23 (new 'stack-no-clear 'touching-shapes-entry))) @@ -751,7 +756,7 @@ ) ) ) - ((3) + (((pickup-type eco-blue)) (change-sound! (-> self sound) (static-sound-name "blue-eco-jak")) (let ((v1-150 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) (cond @@ -807,9 +812,9 @@ 1.0 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1)) ) - ((4) + (((pickup-type eco-green)) (change-sound! (-> self sound) (static-sound-name "green-eco-jak")) (let ((s4-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) (sp-launch-particles-var diff --git a/goal_src/engine/game/projectiles-h.gc b/goal_src/engine/game/projectiles-h.gc index 07b5866689..5c6644faae 100644 --- a/goal_src/engine/game/projectiles-h.gc +++ b/goal_src/engine/game/projectiles-h.gc @@ -18,7 +18,7 @@ (parent-base vector :inline :offset-assert 224) (parent-quat vector :inline :offset-assert 240) (base-vector vector :inline :offset-assert 256) - (timeout uint64 :offset-assert 272) + (timeout time-frame :offset-assert 272) (options uint64 :offset-assert 280) (last-target handle :offset-assert 288) (notify-handle handle :offset-assert 296) diff --git a/goal_src/engine/game/projectiles.gc b/goal_src/engine/game/projectiles.gc index f54215411b..db87e6e6a7 100644 --- a/goal_src/engine/game/projectiles.gc +++ b/goal_src/engine/game/projectiles.gc @@ -10,7 +10,7 @@ (deftype search-info (structure) ((point vector :inline :offset-assert 0) (best-point vector :inline :offset-assert 16) - (match-handle uint64 :offset-assert 32) + (match-handle handle :offset-assert 32) (match projectile :offset-assert 40) (best float :offset-assert 44) (radius float :offset-assert 48) @@ -686,7 +686,7 @@ :code (behavior () (let ((gp-0 #f)) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self timeout))) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (-> self timeout)) (let ((s5-0 (the int (-> *display* time-ratio)))) (set-time-ratios *display* 1.0) (countdown (s4-0 s5-0) @@ -907,7 +907,7 @@ (set! (-> self max-turn) 18204.445) (set! (-> self tween) 1.0) (set! (-> self last-target) arg4) - (set! (-> self timeout) (the-as uint 1200)) + (set! (-> self timeout) (seconds 4)) (set! (-> self options) arg3) (set! (-> self notify-handle) (the-as handle #f)) (countdown (v1-4 16) @@ -945,7 +945,7 @@ ) (defmethod dummy-27 projectile-yellow ((obj projectile-yellow)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1)) (set! (-> obj attack-mode) 'eco-yellow) (set! (-> obj mode) 1) (set! (-> obj max-speed) (vector-length (-> obj root-override transv))) @@ -1046,8 +1046,8 @@ (set! (-> *part-id-table* 353 init-specs 16 random-rangef) (the-as float 300)) (cond ((logtest? (-> obj options) 32) - (when (>= (- (-> *display* base-frame-counter) (-> obj state-time)) 15) - (when (< (- (-> *display* base-frame-counter) (-> obj state-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> obj state-time)) (seconds 0.05)) + (when (< (- (-> *display* base-frame-counter) (-> obj state-time)) (seconds 0.5)) (set! (-> *part-id-table* 353 init-specs 16 initial-valuef) (the-as float 0)) (set! (-> *part-id-table* 353 init-specs 16 random-rangef) (the-as float 0)) 0 @@ -1163,7 +1163,7 @@ ) (defmethod dummy-27 projectile-blue ((obj projectile-blue)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1)) (sound-play-by-name (static-sound-name "blue-eco-on") (new-sound-id) 1024 0 0 1 #t) (set! (-> obj mode) 2) (set! (-> obj max-speed) (-> *TARGET-bank* yellow-projectile-speed)) diff --git a/goal_src/engine/game/task/hint-control-h.gc b/goal_src/engine/game/task/hint-control-h.gc index 6995bed04f..17f595f963 100644 --- a/goal_src/engine/game/task/hint-control-h.gc +++ b/goal_src/engine/game/task/hint-control-h.gc @@ -23,14 +23,14 @@ ) (deftype level-hint-control (structure) - ((delay-before-playing uint64 :offset-assert 0) - (id uint32 :offset-assert 8) + ((delay-before-playing time-frame :offset-assert 0) + (id game-text-id :offset-assert 8) (num-attempts-before-playing int8 :offset-assert 12) (num-success-before-killing int8 :offset-assert 13) (num-attempts int8 :offset-assert 14) (num-success int8 :offset-assert 15) - (start-time int64 :offset-assert 16) - (last-time-called int64 :offset-assert 24) + (start-time time-frame :offset-assert 16) + (last-time-called time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -39,7 +39,7 @@ (deftype task-hint-control (structure) ((task game-task :offset-assert 0) - (delay int64 :offset-assert 8) + (delay time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 diff --git a/goal_src/engine/game/task/process-taskable.gc b/goal_src/engine/game/task/process-taskable.gc index ea79534755..a26322a3a8 100644 --- a/goal_src/engine/game/task/process-taskable.gc +++ b/goal_src/engine/game/task/process-taskable.gc @@ -362,7 +362,7 @@ ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (or (not *target*) (< 20480.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) ) @@ -424,7 +424,7 @@ (if (nonzero? *camera-look-through-other*) (set! *camera-look-through-other* 2) ) - (set-letterbox-frames 5) + (set-letterbox-frames (seconds 0.016666668)) (draw-npc-shadow self) (none) ) @@ -810,7 +810,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (process-entity-status! self (entity-perm-status bit-3) #f) ) (if (or (-> self been-kicked) (should-display? self)) @@ -850,7 +850,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (process-entity-status! self (entity-perm-status bit-3) #f) ) (cond @@ -950,6 +950,17 @@ #t ) +(defmacro is-nan-hack (flt) + `(and (< 0.0 ,flt) (< ,flt 0.0)) + ) + +(defmacro less-than-hack (a b) + `(if (is-nan-hack ,a) + #f + (< ,a ,b) + ) + ) + (defstate idle (process-taskable) :virtual #t :event @@ -1027,7 +1038,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (logior! (-> self mask) (process-mask actor-pause)) (process-entity-status! self (entity-perm-status bit-3) #f) ) @@ -1035,7 +1046,7 @@ ((not *target*) ) ((not (-> self will-talk)) - (if (>= (- (-> *display* game-frame-counter) (-> self last-talk)) 3000) + (if (>= (- (-> *display* game-frame-counter) (-> self last-talk)) (seconds 10)) (set! (-> self will-talk) #t) ) ) @@ -1047,7 +1058,7 @@ ) ) (< (-> (target-pos 0) y) (+ 8192.0 (-> self root-override root-prim prim-core world-sphere y))) - (< (vector-vector-distance (target-pos 0) (the-as vector (-> self root-override root-prim prim-core))) + (less-than-hack (vector-vector-distance (target-pos 0) (the-as vector (-> self root-override root-prim prim-core))) 32768.0 ) (= (-> *level* loading-level) (-> *level* level-default)) @@ -1213,7 +1224,7 @@ (none) ) -(defmethod TODO-RENAME-10 ambient-control ((obj ambient-control) (arg0 vector) (arg1 int) (arg2 float) (arg3 process-drawable)) +(defmethod TODO-RENAME-10 ambient-control ((obj ambient-control) (arg0 vector) (arg1 time-frame) (arg2 float) (arg3 process-drawable)) (when (< (- (-> *display* game-frame-counter) (-> obj last-ambient-time)) arg1) (set! arg0 (the-as vector #f)) (goto cfg-6) @@ -1379,7 +1390,7 @@ (let ((a0-25 (-> self hand process 0))) (when (or (-> self die?) (and (not (-> self survive-anim-end?)) (ja-anim-done? a0-25))) (let ((gp-1 (-> *display* base-frame-counter))) - (while (and (< (- (-> *display* base-frame-counter) gp-1) #x4650) + (while (and (< (- (-> *display* base-frame-counter) gp-1) (seconds 60)) (or (and (-> self entity) (not (is-object-visible? (-> self entity extra level) (-> self entity extra vis-id)))) (< 81920.0 (vector-vector-distance (camera-pos) (-> *math-camera* trans))) ) diff --git a/goal_src/engine/game/task/task-control-h.gc b/goal_src/engine/game/task/task-control-h.gc index 05c280ff73..82088cf661 100644 --- a/goal_src/engine/game/task/task-control-h.gc +++ b/goal_src/engine/game/task/task-control-h.gc @@ -93,9 +93,9 @@ (deftype ambient-control (structure) - ((last-ambient-time int64 :offset-assert 0) - (last-ambient string :offset-assert 8) - (last-ambient-id sound-id :offset-assert 12) + ((last-ambient-time time-frame :offset-assert 0) + (last-ambient string :offset-assert 8) + (last-ambient-id sound-id :offset-assert 12) ) :pack-me :method-count-assert 12 @@ -103,7 +103,7 @@ :flag-assert #xc00000010 (:methods (dummy-9 (_type_) none 9) - (TODO-RENAME-10 (_type_ vector int float process-drawable) vector 10) + (TODO-RENAME-10 (_type_ vector time-frame float process-drawable) vector 10) (play-ambient (_type_ string symbol vector) symbol 11) ) ) @@ -122,7 +122,7 @@ (camera handle :offset-assert 288) (will-talk symbol :offset-assert 296) (talk-message game-text-id :offset-assert 300) - (last-talk int64 :offset-assert 304) + (last-talk time-frame :offset-assert 304) (bounce-away symbol :offset-assert 312) (ambient ambient-control :inline :offset-assert 320) (center-joint-index int32 :offset-assert 336) diff --git a/goal_src/engine/game/voicebox.gc b/goal_src/engine/game/voicebox.gc index 6b3d453bca..709200745f 100644 --- a/goal_src/engine/game/voicebox.gc +++ b/goal_src/engine/game/voicebox.gc @@ -196,11 +196,12 @@ (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) - ) - ) + (while (and (< (-> self blend) 0.9999) + (not (and (not (handle->process (-> self hint))) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) + (-> *setting-control* current hint) + ) + ) ) (update! (-> self seeker) 0.0) (set! (-> self blend) (-> self seeker value)) diff --git a/goal_src/engine/geometry/vol-h.gc b/goal_src/engine/geometry/vol-h.gc index 917d933796..33581fe4f6 100644 --- a/goal_src/engine/geometry/vol-h.gc +++ b/goal_src/engine/geometry/vol-h.gc @@ -62,7 +62,7 @@ (s4-0 (-> ((method-of-type res-lump lookup-tag-idx) (the-as entity s5-1) 'vol 'exact 0.0) lo)) ) (when (>= (the-as int s4-0) 0) - (let ((s3-0 (the-as uint s4-0)) + (let ((s3-0 (the-as int s4-0)) (s2-0 (-> s5-1 tag s4-0)) ) 0 @@ -84,7 +84,7 @@ (s4-1 (-> ((method-of-type res-lump lookup-tag-idx) (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo)) ) (when (>= (the-as int s4-1) 0) - (let ((s3-1 (the-as uint s4-1)) + (let ((s3-1 (the-as int s4-1)) (s2-1 (-> s5-2 tag s4-1)) ) 0 diff --git a/goal_src/engine/gfx/hw/display-h.gc b/goal_src/engine/gfx/hw/display-h.gc index 8db65caceb..89734b4563 100644 --- a/goal_src/engine/gfx/hw/display-h.gc +++ b/goal_src/engine/gfx/hw/display-h.gc @@ -77,7 +77,7 @@ (bucket-group (inline-array dma-bucket) :offset 44) (buffer dma-buffer 11 :offset 4) (profile-bar profile-bar 2 :offset 48) - (run-time uint64 :offset 56) + (run-time int64 :offset 56) ) (:methods (new (symbol type) _type_ 0) @@ -141,25 +141,25 @@ (frames virtual-frame 6 :inline :offset-assert 568) (bg-clear-color rgba 4 :offset-assert 760) ;; counters (why are there so many???) - (real-frame-counter int64 :offset-assert 776) - (base-frame-counter int64 :offset-assert 784) - (game-frame-counter int64 :offset-assert 792) - (integral-frame-counter int64 :offset-assert 800) - (real-integral-frame-counter int64 :offset-assert 808) - (actual-frame-counter int64 :offset-assert 816) - (real-actual-frame-counter int64 :offset-assert 824) - (part-frame-counter int64 :offset-assert 832) + (real-frame-counter time-frame :offset-assert 776) + (base-frame-counter time-frame :offset-assert 784) + (game-frame-counter time-frame :offset-assert 792) + (integral-frame-counter time-frame :offset-assert 800) + (real-integral-frame-counter time-frame :offset-assert 808) + (actual-frame-counter time-frame :offset-assert 816) + (real-actual-frame-counter time-frame :offset-assert 824) + (part-frame-counter time-frame :offset-assert 832) ;; the "old" counters are the values from the previous tick. ;; the counters above may jump during a load. - (old-real-frame-counter int64 :offset-assert 840) - (old-base-frame-counter int64 :offset-assert 848) - (old-game-frame-counter int64 :offset-assert 856) - (old-integral-frame-counter int64 :offset-assert 864) - (old-real-integral-frame-counter int64 :offset-assert 872) - (old-actual-frame-counter int64 :offset-assert 880) - (old-real-actual-frame-counter int64 :offset-assert 888) - (old-part-frame-counter int64 :offset-assert 896) + (old-real-frame-counter time-frame :offset-assert 840) + (old-base-frame-counter time-frame :offset-assert 848) + (old-game-frame-counter time-frame :offset-assert 856) + (old-integral-frame-counter time-frame :offset-assert 864) + (old-real-integral-frame-counter time-frame :offset-assert 872) + (old-actual-frame-counter time-frame :offset-assert 880) + (old-real-actual-frame-counter time-frame :offset-assert 888) + (old-part-frame-counter time-frame :offset-assert 896) ;; timing stats for how fast the engine is currently running. (time-ratio float :offset-assert 904) ;; engine speed, 1.0 = full speed @@ -246,6 +246,3 @@ (defmacro real-current-time () `(-> *display* real-frame-counter) ) - -(define-extern get-current-time (function int)) -(define-extern get-integral-current-time (function int)) \ No newline at end of file diff --git a/goal_src/engine/gfx/hw/display.gc b/goal_src/engine/gfx/hw/display.gc index 1339b98621..c6c9e2c029 100644 --- a/goal_src/engine/gfx/hw/display.gc +++ b/goal_src/engine/gfx/hw/display.gc @@ -411,7 +411,7 @@ (>= end-time (the-as int (-> worst-time-cache (/ bar-pos 10)))) ) (set! (-> worst-time-cache (/ bar-pos 10)) (the-as uint end-time)) - (set! (-> obj cache-time) (the uint (-> *display* real-frame-counter))) + (set! (-> obj cache-time) (-> *display* real-frame-counter)) ) ;; draw the time, either in ticks or percent. diff --git a/goal_src/engine/gfx/water/water-h.gc b/goal_src/engine/gfx/water/water-h.gc index d14d39d716..d07ce9e2e1 100644 --- a/goal_src/engine/gfx/water/water-h.gc +++ b/goal_src/engine/gfx/water/water-h.gc @@ -62,11 +62,11 @@ (joint-index int32 :offset-assert 12) (top-y-offset float :offset-assert 16) (ripple-size meters :offset-assert 20) - (enter-water-time uint64 :offset-assert 24) - (wade-time uint64 :offset-assert 32) - (on-water-time uint64 :offset-assert 40) - (enter-swim-time uint64 :offset-assert 48) - (swim-time uint64 :offset-assert 56) + (enter-water-time time-frame :offset-assert 24) + (wade-time time-frame :offset-assert 32) + (on-water-time time-frame :offset-assert 40) + (enter-swim-time time-frame :offset-assert 48) + (swim-time time-frame :offset-assert 56) (base-height meters :offset-assert 64) (wade-height meters :offset-assert 68) (swim-height meters :offset-assert 72) @@ -87,7 +87,7 @@ (drip-old-pos vector :inline :offset-assert 240) (drip-joint-index int32 :offset-assert 256) (drip-wetness float :offset-assert 260) - (drip-time uint64 :offset-assert 264) + (drip-time time-frame :offset-assert 264) (drip-speed float :offset-assert 272) (drip-height meters :offset-assert 276) (drip-mult float :offset-assert 280) diff --git a/goal_src/engine/gfx/water/water.gc b/goal_src/engine/gfx/water/water.gc index cec38d0865..f8d7e00af5 100644 --- a/goal_src/engine/gfx/water/water.gc +++ b/goal_src/engine/gfx/water/water.gc @@ -740,7 +740,7 @@ (>= (-> obj height) (-> obj bottom 0 y)) ) (if (logtest? (-> (the-as collide-shape-moving (-> obj process root)) status) 1024) - (set! (-> obj on-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj on-water-time) (-> *display* base-frame-counter)) ) (set! (-> obj drip-wetness) 1.0) (set! (-> obj drip-height) (fmax (- (-> obj surface-height) (-> obj bottom 0 y)) (-> obj drip-height))) @@ -821,13 +821,7 @@ ) (set! (-> *part-id-table* 110 init-specs 16 initial-valuef) (-> obj surface-height)) (set! (-> *part-id-table* 110 init-specs 1 initial-valuef) - (+ (lerp-scale - 12.0 - 0.4 - (the float (- (-> *display* base-frame-counter) (the-as int (-> obj enter-water-time)))) - 0.0 - 600.0 - ) + (+ (lerp-scale 12.0 0.4 (the float (- (-> *display* base-frame-counter) (-> obj enter-water-time))) 0.0 600.0) (* 0.00012207031 (vector-xz-length (-> obj process root transv))) ) ) @@ -861,7 +855,9 @@ ) ) (s4-3 - (and v1-146 (< (- (-> *display* base-frame-counter) (-> (the-as control-info v1-146) unknown-dword11)) 150)) + (and v1-146 + (< (- (-> *display* base-frame-counter) (-> (the-as control-info v1-146) unknown-dword11)) (seconds 0.5)) + ) ) ) (if (and (logtest? (-> obj flags) 16) @@ -881,17 +877,17 @@ ) (or (logtest? s5-0 2048) (< 12288.0 (vector-xz-length (-> obj process root transv))) - (< (+ (-> *display* base-frame-counter) -60) (the-as int (-> obj enter-water-time))) + (< (+ (-> *display* base-frame-counter) (seconds -0.2)) (-> obj enter-water-time)) (>= (+ (- 204.8 (fmin 6144.0 (+ (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset)))) f30-3) (-> obj bottom 0 y) ) ) ) - (set! (-> obj swim-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj swim-time) (-> *display* base-frame-counter)) (send-event (-> obj process) 'swim) (logior! (-> obj flags) 2048) (if (zero? (logand s5-0 2048)) - (set! (-> obj enter-swim-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj enter-swim-time) (-> *display* base-frame-counter)) ) (cond ((and (logtest? (-> obj flags) 16) @@ -923,14 +919,14 @@ ((begin (set! s4-3 (and (logtest? (-> obj flags) 4) (or (not (!= (-> obj bob amp) 0.0)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> obj swim-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> obj swim-time)) (seconds 0.05)) ) (and (>= (- (-> obj height) (-> obj wade-height)) (-> obj bottom 0 y)) s4-3) ) ) s4-3 ) - (set! (-> obj wade-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj wade-time) (-> *display* base-frame-counter)) (send-event (-> obj process) 'wade) (logior! (-> obj flags) 1024) ) @@ -1042,7 +1038,7 @@ 1.0 ) ) - (set! (-> obj drip-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj drip-time) (-> *display* base-frame-counter)) (set! (-> obj flags) (logand -32769 (-> obj flags))) (set! (-> obj drip-wetness) (seek (-> obj drip-wetness) 0.0 (* 0.001 (-> obj drip-speed)))) (set! (-> obj drip-speed) (* 1.05 (-> obj drip-speed))) @@ -1050,7 +1046,9 @@ (set! (-> obj drip-height) 0.0) ) ) - ((>= (- (-> *display* base-frame-counter) (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult)))) + ((>= (- (-> *display* base-frame-counter) + (the-as time-frame (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult)))) + ) (the int (-> obj drip-speed)) ) (let* ((s5-2 (rand-vu-int-range 3 (+ (-> obj process node-list length) -1))) @@ -1173,7 +1171,7 @@ (with-pp (logior! (-> obj flags) 512) (set! (-> obj flags) (logand -65537 (-> obj flags))) - (set! (-> obj enter-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj enter-water-time) (-> *display* base-frame-counter)) (set-vector! (-> obj enter-water-pos) (-> obj bottom 0 x) (-> obj surface-height) (-> obj bottom 0 z) 1.0) (when (and (logtest? (-> obj flags) 32) (logtest? #x800000 (-> obj flags))) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) diff --git a/goal_src/engine/load/load-dgo.gc b/goal_src/engine/load/load-dgo.gc index 8b700e0f11..87adffbcb0 100644 --- a/goal_src/engine/load/load-dgo.gc +++ b/goal_src/engine/load/load-dgo.gc @@ -265,7 +265,7 @@ struct DgoHeader { ;; DGO LOAD and LINK ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(define *dgo-time* 0) +(define *dgo-time* (the time-frame 0)) (defun dgo-load-begin ((name string) (buffer1 pointer) (buffer2 pointer) (buffer-top pointer)) "Send a DGO load RPC!" diff --git a/goal_src/engine/math/transformq-h.gc b/goal_src/engine/math/transformq-h.gc index c72d9bda63..c418b470fd 100644 --- a/goal_src/engine/math/transformq-h.gc +++ b/goal_src/engine/math/transformq-h.gc @@ -42,18 +42,18 @@ ;; there's a hacky ~first-order orientation yaw control with hysteresis ;; it makes the yaw change smoothly and attempts to cancel out oscillations from the collision system (dir-targ quaternion :inline :offset-assert 112) ;; direction target - (angle-change-time int64 :offset-assert 128) ;; the time when we change rotation directions + (angle-change-time time-frame :offset-assert 128) ;; the time when we change rotation directions (old-y-angle-diff float :offset-assert 136) ;; the amount we moved last time ) :method-count-assert 28 :size-assert #x8c :flag-assert #x1c0000008c (:methods - (seek-toward-heading-vec! (_type_ vector float int) quaternion 9) + (seek-toward-heading-vec! (_type_ vector float time-frame) quaternion 9) (set-heading-vec! (_type_ vector) quaternion 10) - (seek-to-point-toward-point! (_type_ vector float int) quaternion 11) + (seek-to-point-toward-point! (_type_ vector float time-frame) quaternion 11) (point-toward-point! (_type_ vector) quaternion 12) - (seek-toward-yaw-angle! (_type_ float float int) quaternion 13) + (seek-toward-yaw-angle! (_type_ float float time-frame) quaternion 13) (set-yaw-angle-clear-roll-pitch! (_type_ float) quaternion 14) (set-roll-to-grav! (_type_ float) quaternion 15) (set-roll-to-grav-2! (_type_ float) quaternion 16) diff --git a/goal_src/engine/math/transformq.gc b/goal_src/engine/math/transformq.gc index 9bf68e9547..6abb18ef14 100644 --- a/goal_src/engine/math/transformq.gc +++ b/goal_src/engine/math/transformq.gc @@ -49,7 +49,7 @@ (quaternion-y-angle (get-quaternion obj)) ) -(defmethod seek-toward-heading-vec! trsqv ((obj trsqv) (dir vector) (vel float) (frame-count int)) +(defmethod seek-toward-heading-vec! trsqv ((obj trsqv) (dir vector) (vel float) (frame-count time-frame)) "Adjust the orientation to point along dir, only changing our yaw. The vel is a maximum velocity limit. The frame count is the time constant (first order). @@ -106,7 +106,7 @@ ) ) -(defmethod seek-to-point-toward-point! trsqv ((obj trsqv) (arg0 vector) (arg1 float) (arg2 int)) +(defmethod seek-to-point-toward-point! trsqv ((obj trsqv) (arg0 vector) (arg1 float) (arg2 time-frame)) "Seek toward pointing toward arg0 from our current location." (seek-toward-heading-vec! obj @@ -128,7 +128,7 @@ ) -(defmethod seek-toward-yaw-angle! trsqv ((obj trsqv) (yaw float) (vel float) (frame-count int)) +(defmethod seek-toward-yaw-angle! trsqv ((obj trsqv) (yaw float) (vel float) (frame-count time-frame)) "Seek toward the given yaw angle." (seek-toward-heading-vec! obj diff --git a/goal_src/engine/nav/navigate-h.gc b/goal_src/engine/nav/navigate-h.gc index 5ca950b6bd..809114854a 100644 --- a/goal_src/engine/nav/navigate-h.gc +++ b/goal_src/engine/nav/navigate-h.gc @@ -248,7 +248,7 @@ (travel vector :inline :offset-assert 144) (target-pos vector :inline :offset-assert 160) (destination-pos vector :inline :offset-assert 176) - (block-time uint64 :offset-assert 192) + (block-time time-frame :offset-assert 192) (block-count float :offset-assert 200) (user-poly nav-poly :offset-assert 204) (nav-cull-radius float :offset-assert 208) diff --git a/goal_src/engine/nav/navigate.gc b/goal_src/engine/nav/navigate.gc index 541d7b5184..679f9e3e0b 100644 --- a/goal_src/engine/nav/navigate.gc +++ b/goal_src/engine/nav/navigate.gc @@ -2467,7 +2467,7 @@ (let ((f0-0 (vector-xz-length (-> obj travel)))) (when (and (>= f30-0 f0-0) (< f0-0 204.8)) (set! (-> obj flags) (logior (nav-control-flags bit17) (-> obj flags))) - (set! (-> obj block-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj block-time) (-> *display* base-frame-counter)) (set! (-> obj block-count) (+ 1.0 (-> obj block-count))) (if (-> obj block-event) (send-event (the-as process-tree (-> obj process)) (the-as symbol (-> obj block-event)) obj) @@ -2906,27 +2906,19 @@ ) ) (when sv-100 - (when (not - (ray-ccw-line-segment-intersection? - sv-84 - (-> obj travel) - (the-as vector (-> obj portal 0)) - (the-as vector (-> obj portal 1)) - ) - ) + (when (not (ray-ccw-line-segment-intersection? + sv-84 + (-> obj travel) + (the-as vector (-> obj portal 0)) + (the-as vector (-> obj portal 1)) + ) + ) (let ((a0-18 (choose-travel-portal-vertex (-> obj mesh) sv-96 (-> obj target-poly) sv-92))) (vector-! (-> obj travel) (the-as vector (-> sv-96 vertex a0-18)) sv-84) ) ) ) - (TODO-RENAME-33 - obj - (-> obj travel) - sv-84 - (-> obj travel) - arg1 - 40960.0 - ) + (TODO-RENAME-33 obj (-> obj travel) sv-84 (-> obj travel) arg1 40960.0) (let ((s5-1 (new 'stack-no-clear 'clip-travel-vector-to-mesh-return-info))) (TODO-RENAME-16 (-> obj mesh) diff --git a/goal_src/engine/pc/pckernel.gc b/goal_src/engine/pc/pckernel.gc index 23d895a62c..c69f303d69 100644 --- a/goal_src/engine/pc/pckernel.gc +++ b/goal_src/engine/pc/pckernel.gc @@ -178,11 +178,16 @@ ) ) ) - (when (actor-force-visible? obj) + (cond + ((actor-force-visible? obj) (set! (-> *ACTOR-bank* birth-dist) (meters 10000)) (set! (-> *ACTOR-bank* pause-dist) (meters 10000)) - (set! (-> *ACTOR-bank* birth-max) 10000) + (set! (-> *ACTOR-bank* birth-max) 1000) ) + ((> (-> *ACTOR-bank* birth-dist) (meters 220)) + (set! (-> *ACTOR-bank* birth-dist) (meters 220)) + (set! (-> *ACTOR-bank* pause-dist) (meters 220)) + )) (none)) diff --git a/goal_src/engine/ps2/pad.gc b/goal_src/engine/ps2/pad.gc index 314802fce9..81a49c2cdf 100644 --- a/goal_src/engine/ps2/pad.gc +++ b/goal_src/engine/ps2/pad.gc @@ -11,8 +11,8 @@ ;; The cpad-set-buzz! function can be used for vibration. ;; in display, but we haven't gotten to display-h.gc yet. -(define-extern get-current-time (function int)) -(define-extern get-integral-current-time (function int)) +(define-extern get-current-time (function time-frame)) +(define-extern get-integral-current-time (function time-frame)) (defenum pad-buttons :bitfield #t @@ -86,10 +86,10 @@ (align uint8 6 :offset-assert 88) ;; hardware control of buzzing. (direct uint8 6 :offset-assert 94) ;; hardware control of buzzing. (buzz-val uint8 2 :offset-assert 100) ;; intensity for buzzing - (buzz-time int64 2 :offset-assert 104) ;; when to stop buzzing + (buzz-time time-frame 2 :offset-assert 104) ;; when to stop buzzing (buzz basic :offset-assert 120) ;; is vibration enabled? (buzz-act int32 :offset-assert 124) - (change-time int64 :offset-assert 128) + (change-time time-frame :offset-assert 128) ) (:methods (new (symbol type int) _type_ 0) @@ -200,7 +200,7 @@ ) ) -(defun cpad-set-buzz! ((pad cpad-info) (buzz-idx int) (buzz-amount int) (duration int)) +(defun cpad-set-buzz! ((pad cpad-info) (buzz-idx int) (buzz-amount int) (duration time-frame)) "Turn on vibration motor 'buzz-idx' for duration, at magnitude buzz-amount." (cond ((zero? buzz-amount) diff --git a/goal_src/engine/ps2/timer-h.gc b/goal_src/engine/ps2/timer-h.gc index bf6f7c6de6..97e17a81c5 100644 --- a/goal_src/engine/ps2/timer-h.gc +++ b/goal_src/engine/ps2/timer-h.gc @@ -98,8 +98,8 @@ ;; they don't use the timer above, but instead the Count COP0 register ;; which counts CPU clock cycles directly (deftype stopwatch (basic) - ((prev-time-elapsed uint64 :offset-assert 8) - (start-time uint64 :offset-assert 16) + ((prev-time-elapsed time-frame :offset-assert 8) + (start-time time-frame :offset-assert 16) (begin-level int32 :offset-assert 24) ) :method-count-assert 9 @@ -156,7 +156,7 @@ (declare-type dma-buffer basic) (deftype profile-bar (basic) ((profile-frame-count int32 :offset-assert 4) - (cache-time uint64 :offset-assert 8) + (cache-time time-frame :offset-assert 8) (data profile-frame 1024 :inline :offset-assert 16) ) :method-count-assert 14 diff --git a/goal_src/engine/ps2/timer.gc b/goal_src/engine/ps2/timer.gc index 329533e8d9..3ba7663e56 100644 --- a/goal_src/engine/ps2/timer.gc +++ b/goal_src/engine/ps2/timer.gc @@ -127,6 +127,7 @@ ) ) ) + (none) ) (defun stopwatch-begin ((obj stopwatch)) @@ -159,16 +160,17 @@ (+! (-> obj prev-time-elapsed) (- count (-> obj start-time))) ) ) + (none) ) (defun stopwatch-elapsed-ticks ((obj stopwatch)) "Returns the elapsed time so far (in clock cycles) of a stopwatch" (let ((elapsed (-> obj prev-time-elapsed))) (when (> (-> obj begin-level) 0) - (let ((count (the uint 0))) + (let ((count 0)) (.mfc0 count Count) (#when PC_PORT - (set! count (get-cpu-clock)) + (set! count (the int (get-cpu-clock))) ) (+! elapsed (- count (-> obj start-time))) diff --git a/goal_src/engine/sound/gsound-h.gc b/goal_src/engine/sound/gsound-h.gc index 188b096a46..12358035b3 100644 --- a/goal_src/engine/sound/gsound-h.gc +++ b/goal_src/engine/sound/gsound-h.gc @@ -447,9 +447,9 @@ (playing-id sound-id :offset-assert 8) (trans vector :inline :offset-assert 16) (name sound-name :offset-assert 32) - (play-time int64 :offset-assert 48) - (time-base int64 :offset-assert 56) - (time-random int64 :offset-assert 64) + (play-time time-frame :offset-assert 48) + (time-base time-frame :offset-assert 56) + (time-random time-frame :offset-assert 64) (volume int32 :offset-assert 72) (pitch int32 :offset-assert 76) (falloff-near int32 :offset-assert 80) diff --git a/goal_src/engine/target/joint-mod-h.gc b/goal_src/engine/target/joint-mod-h.gc index 0bc626ddcb..8e8bceb5d5 100644 --- a/goal_src/engine/target/joint-mod-h.gc +++ b/goal_src/engine/target/joint-mod-h.gc @@ -41,7 +41,7 @@ (trans vector :inline :offset-assert 64) (quat quaternion :inline :offset-assert 80) (scale vector :inline :offset-assert 96) - (notice-time int64 :offset-assert 112) + (notice-time time-frame :offset-assert 112) (flex-blend float :offset-assert 120) (blend float :offset-assert 124) (max-dist meters :offset-assert 128) diff --git a/goal_src/engine/target/logic-target.gc b/goal_src/engine/target/logic-target.gc index faf4bd805b..1b0b051257 100644 --- a/goal_src/engine/target/logic-target.gc +++ b/goal_src/engine/target/logic-target.gc @@ -9,7 +9,9 @@ (defbehavior build-conversions target ((arg0 vector)) (surface-mult! (-> self control unknown-surface01) (-> self control unknown-surface00) (-> self control surf)) - (when (and (and (= (-> self fact-info-target eco-type) 3) (>= (-> self fact-info-target eco-level) 1.0)) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-blue)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (or (= (-> self control unknown-surface00 name) 'run) (= (-> self control unknown-surface00 name) 'jump)) ) (set! (-> self control unknown-surface01 target-speed) @@ -560,8 +562,8 @@ (< f0-1 0.0) (< 32768.0 f1-1) (< 0.7 (-> self control unknown-float20)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) 90) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) 90) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) (seconds 0.3)) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) (seconds 0.3)) (logtest? (-> self control status) 1) (and (< 0.7 (-> self control surface-angle)) #t) ) @@ -570,7 +572,7 @@ ) ) -(defbehavior target-move-dist target ((arg0 int)) +(defbehavior target-move-dist target ((arg0 time-frame)) (let ((s5-0 (new-stack-vector0)) (f30-0 0.0) (gp-0 0) @@ -774,7 +776,7 @@ ) (set! (-> self control unknown-dword70) (-> *display* base-frame-counter)) ) - (if (< (- (-> *display* base-frame-counter) (-> self control unknown-dword70)) 60) + (if (< (- (-> *display* base-frame-counter) (-> self control unknown-dword70)) (seconds 0.2)) (set! f30-4 (+ 204800.0 f30-4)) ) (if (and (zero? (logand (-> self control status) 8)) @@ -897,10 +899,10 @@ (let ((gp-0 (vector-z-quaternion! (new-stack-vector0) (-> self control dir-targ))) (s5-0 (if (and (or (zero? (logand (logior (-> self control status) (-> self control old-status)) 5)) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) 150) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) (seconds 0.5)) (!= (-> self next-state name) 'target-walk) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) 150) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) (seconds 0.5)) (logtest? (-> self control unknown-surface01 flags) 16) (!= (-> self control unknown-float41) 0.0) ) @@ -1021,9 +1023,7 @@ ) ) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons triangle) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) triangle) (zero? (-> self control unknown-int40)) (zero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) ) @@ -1033,7 +1033,7 @@ (logand (-> self control root-prim prim-core action) (collide-action ca-7 ca-8 ca-9 ca-12 ca-13 ca-14)) ) (-> *setting-control* current allow-look-around) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self no-look-around-wait))) 15) + (>= (- (-> *display* base-frame-counter) (-> self no-look-around-wait)) (seconds 0.05)) (not (and (= (-> self control ground-pat material) (pat-material ice)) (< 4096.0 (-> self control unknown-float01)) ) @@ -1043,7 +1043,7 @@ ) ) (when (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) + (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*) (zero? (logand (-> self state-flags) 768)) ) @@ -1094,11 +1094,7 @@ (and (= (-> self next-state name) 'target-walk) (zero? (logand (-> self control status) 1))) ) (< f0-17 0.0) - (or (not - (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (or (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) *pause-lock* ) (and (>= (vector-dot @@ -1116,14 +1112,10 @@ ) ) (let ((v1-146 (-> self current-level))) - (when (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 600) + (when (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 2)) (and v1-146 (< (-> self control trans y) (-> v1-146 info bottom-height)) - (not - (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) (let ((a1-32 (new 'stack-no-clear 'event-message-block))) @@ -1262,14 +1254,14 @@ (set! (-> self control unknown-float110) (vector-length s4-1)) (cond ((and (< 819.2 (-> self control unknown-float110)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) 60) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) (seconds 0.2)) ) (vector-normalize! s4-1 1228.8) (move-by-vector! (-> self control) s4-1) (vector-float*! (-> self control rider-last-move) s4-1 (-> *display* frames-per-second)) - (set! (-> self control rider-time) (the-as uint (-> *display* base-frame-counter))) - (if (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword41)) 150) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) 150) + (set! (-> self control rider-time) (-> *display* base-frame-counter)) + (if (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword41)) (seconds 0.5)) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) (seconds 0.5)) ) (send-event self 'end-mode) ) @@ -1278,7 +1270,7 @@ (let ((a1-6 (new 'stack-no-clear 'vector))) (vector-! a1-6 (-> s5-0 center-hold) (-> self control unknown-vector91)) (vector-float*! (-> self control rider-last-move) s4-1 (-> *display* frames-per-second)) - (set! (-> self control rider-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self control rider-time) (-> *display* base-frame-counter)) (move-to-point! (-> self control) a1-6) ) (set! (-> self control unknown-float110) 0.0) @@ -1314,7 +1306,7 @@ ) (let ((a1-7 (vector-! (new-stack-vector0) (-> gp-0 center-hold) (-> gp-0 center-hold-old)))) (vector-float*! (-> self control rider-last-move) a1-7 (-> *display* frames-per-second)) - (set! (-> self control rider-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self control rider-time) (-> *display* base-frame-counter)) (move-by-vector! (-> self control) a1-7) ) ) @@ -1942,7 +1934,7 @@ (set! arg0 (get-or-create-continue! *game-info*)) ) (set-continue! *game-info* arg0) - (stack-size-set! (-> self main-thread) 4096) ;; changed for PC + (stack-size-set! (-> self main-thread) 1024) (logior! (-> self mask) (process-mask target)) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) (let ((s5-0 (new 'process 'control-info self (collide-list-enum player)))) @@ -2081,11 +2073,7 @@ 0 ) -;; hack for not starting target. (defun start ((arg0 symbol) (arg1 continue-point)) - ; (set! *target* #f) - ; (return *target*) - (set! (-> *level* border?) #f) (set! (-> *setting-control* default border-mode) #f) (stop arg0) diff --git a/goal_src/engine/target/target-death.gc b/goal_src/engine/target/target-death.gc index f8de973fce..429d0c87c3 100644 --- a/goal_src/engine/target/target-death.gc +++ b/goal_src/engine/target/target-death.gc @@ -194,7 +194,7 @@ (set! *spawn-actors* #t) (set! *teleport* #t) (set! (-> *ACTOR-bank* birth-max) 1000) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (cond ((logtest? (-> arg0 flags) 128) (go target-title) @@ -205,7 +205,7 @@ ((logtest? (-> arg0 flags) 32) (let ((s5-3 (entity-by-name "sage-23"))) (when s5-3 - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill s5-3) (suspend) (send-event @@ -224,7 +224,7 @@ ) (let ((s5-4 (entity-by-name "sage-23"))) (when s5-4 - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill s5-4) (suspend) (set! arg0 (get-continue-by-name *game-info* "village1-hut")) @@ -241,7 +241,7 @@ (go target-demo) ) ((logtest? (-> arg0 flags) 64) - (set-blackout-frames 300) + (set-blackout-frames (seconds 1)) (let ((s5-5 (get-process *default-dead-pool* process #x4000))) (when s5-5 (let ((t9-60 (method-of-type process activate))) @@ -253,7 +253,7 @@ (local-vars (v1-10 basic)) (let ((gp-0 (entity-by-name "sage-23"))) (when gp-0 - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill gp-0) (suspend) (suspend) @@ -266,7 +266,7 @@ ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 600) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 2)) (suspend) ) ) @@ -445,7 +445,7 @@ ) (else (let ((s5-7 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-7) 15) + (until (>= (- (-> *display* base-frame-counter) s5-7) (seconds 0.05)) (suspend) ) ) @@ -614,7 +614,7 @@ ) ((begin (target-timed-invulnerable (-> arg0 invinc-time) self) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 (seconds 0.5)) (let ((v1-13 (-> arg0 angle))) (= v1-13 'up) ) @@ -652,20 +652,14 @@ (when (and (zero? (logand (-> self control root-prim prim-core action) (collide-action ca-9 ca-14))) (not (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health)))) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack-air #f) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -685,13 +679,11 @@ ) ) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> *TARGET-bank* stuck-time))) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) + (the-as time-frame (-> *TARGET-bank* stuck-time)) + ) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -951,9 +943,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) - (when (and (not *pause-lock*) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) + (when (and (not *pause-lock*) (cpad-hold? (-> self control unknown-cpad-info00 number) r2)) (pickup-collectable! (-> self fact-info-target) (pickup-type eco-green) (the-as float 1.0) (the-as handle #f)) (go target-stance) ) @@ -1017,7 +1007,7 @@ (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) (ja-channel-set! 0) (let ((s3-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s3-1) 300) + (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) (suspend) ) ) @@ -1170,39 +1160,39 @@ (defstate target-death (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('end-mode) - (let ((v0-0 (the-as object #t))) - (set! (-> self control unknown-uint20) (the-as uint v0-0)) - v0-0 - ) - ) - (('change-mode) - (case (-> arg3 param 0) - (('grab) - #t - ) - ) - ) - (('notify) - (when (type-type? (-> arg0 type) pov-camera) - (case (-> arg3 param 0) - (('die 'abort-request) - (set! (-> self control unknown-uint20) (the-as uint #t)) - (set-blackout-frames 60) - ) - ) - ) - ) - (('get-pickup) - #f - ) - (('touched) - #f - ) - (else - (target-generic-event-handler arg0 arg1 arg2 arg3) - ) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'end-mode) + (set! (-> self control unknown-uint20) (the-as uint #t)) + ) + ((= v1-0 'change-mode) + (case (-> arg3 param 0) + (('grab) + #t + ) + ) + ) + ((= v1-0 'notify) + (when (type-type? (-> arg0 type) pov-camera) + (case (-> arg3 param 0) + (('die 'abort-request) + (set! (-> self control unknown-uint20) (the-as uint #t)) + (set-blackout-frames (seconds 0.2)) + ) + ) + ) + ) + ((= v1-0 'get-pickup) + #f + ) + ((= v1-0 'touched) + #f + ) + (else + (target-generic-event-handler arg0 arg1 arg2 arg3) + ) + ) + ) ) ) :exit @@ -1247,7 +1237,7 @@ (ja-channel-set! 0) (ja-post) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 300) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 1)) (suspend) ) ) @@ -1321,7 +1311,7 @@ (ja-channel-set! 0) (ja-post) (let ((gp-9 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-9) 600) + (until (>= (- (-> *display* base-frame-counter) gp-9) (seconds 2)) (suspend) ) ) @@ -1379,7 +1369,7 @@ (none) ) ) - (target-falling-anim 30 99) + (target-falling-anim (seconds 0.1) 99) (ja-channel-push! 1 90) (let ((a0-75 (-> self skel root-channel 0))) (set! (-> a0-75 frame-group) (the-as art-joint-anim (-> self draw art-group data 43))) @@ -1388,7 +1378,7 @@ (joint-control-channel-group! a0-75 (the-as art-joint-anim (-> self draw art-group data 43)) num-func-loop!) ) (let ((gp-12 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-12) 240) + (until (>= (- (-> *display* base-frame-counter) gp-12) (seconds 0.8)) (let ((a0-76 (-> self skel root-channel 0))) (set! (-> a0-76 frame-group) (the-as art-joint-anim (-> self draw art-group data 43))) (set! (-> a0-76 param 0) 0.5) diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index 0c2eae99ba..d059cc866f 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -56,7 +56,7 @@ (racer racer-info :offset-assert 180) (game game-info :offset-assert 184) (neck joint-mod :offset-assert 188) - (state-hook-time uint64 :offset-assert 192) + (state-hook-time time-frame :offset-assert 192) (state-hook (function none :behavior target) :offset-assert 200) (cam-user-mode symbol :offset-assert 204) (sidekick (pointer sidekick) :offset-assert 208) @@ -73,8 +73,8 @@ (saved-owner uint64 :offset-assert 528) (alt-neck-pos vector :inline :offset-assert 544) (fp-hud handle :offset-assert 560) - (no-load-wait uint64 :offset-assert 568) - (no-look-around-wait uint64 :offset-assert 576) + (no-load-wait time-frame :offset-assert 568) + (no-look-around-wait time-frame :offset-assert 576) ) :heap-base #x1e0 :method-count-assert 21 diff --git a/goal_src/engine/target/target-handler.gc b/goal_src/engine/target/target-handler.gc index 324df2a57e..e84a403521 100644 --- a/goal_src/engine/target/target-handler.gc +++ b/goal_src/engine/target/target-handler.gc @@ -285,12 +285,12 @@ ) ) ((= v1-0 'no-load-wait) - (set! v0-0 (the-as object (+ (-> *display* base-frame-counter) (-> arg3 param 0)))) - (set! (-> self no-load-wait) (the-as uint v0-0)) + (set! v0-0 (the-as object (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0))))) + (set! (-> self no-load-wait) (the-as time-frame v0-0)) v0-0 ) ((= v1-0 'no-look-around) - (set! (-> self no-look-around-wait) (the-as uint (+ (-> *display* base-frame-counter) (-> arg3 param 0)))) + (set! (-> self no-look-around-wait) (the-as time-frame (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0))))) (if (= (-> self next-state name) 'target-look-around) (send-event self 'end-mode) ) @@ -314,7 +314,7 @@ ) ) (set! (-> s5-0 mask) (the-as uint 2248)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) (go arg3 'shove s5-0) ) ) @@ -335,7 +335,9 @@ ((or (logtest? (-> self state-flags) 112) (and (logtest? (-> arg1 mask) 32) (= (-> arg1 mode) 'darkeco) - (and (and (= (-> self fact-info-target eco-type) 2) (>= (-> self fact-info-target eco-level) 1.0)) + (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (logtest? #x100002 (-> self state-flags)) ) ) @@ -420,7 +422,7 @@ ) self ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 (seconds 0.5)) (sound-play-by-name (static-sound-name "oof") (new-sound-id) 1024 0 0 1 #t) #t ) @@ -526,7 +528,7 @@ #f (static-sound-name "spin-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2)) ) ((= v1-5 'punch) (set! sv-128 @@ -620,7 +622,7 @@ #f (static-sound-name "punch-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((= v1-5 'flip) (dummy-12 @@ -631,7 +633,7 @@ #f (static-sound-name "punch-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.1)) ) ((= v1-5 'uppercut) (set! sv-176 @@ -726,7 +728,7 @@ #f (static-sound-name "uppercut-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((or (= v1-5 'flop) (= v1-5 'flop-down)) (dummy-10 (-> self skel effect) 'group-flop-hit (the-as float -1.0) 23) @@ -739,7 +741,7 @@ #f (static-sound-name "flop-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((= v1-5 'flut-attack) (dummy-12 @@ -750,7 +752,7 @@ #f (static-sound-name "punch-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.2)) ) ) ) @@ -824,7 +826,7 @@ (or (logtest? (-> self water flags) 512) (logtest? (-> self state-flags) #x830e) (logtest? (-> self control root-prim prim-core action) (collide-action ca-7 ca-8 ca-9 ca-12 ca-13 ca-14)) - (>= (the-as int (-> self no-load-wait)) (-> *display* base-frame-counter)) + (>= (-> self no-load-wait) (-> *display* base-frame-counter)) ) ) ) @@ -1007,7 +1009,7 @@ (zero? (logand (-> self state-flags) #x8008)) ) (set! (-> self control unknown-vector52 quad) (-> self control trans quad)) - (target-timed-invulnerable 30 self) + (target-timed-invulnerable (seconds 0.1) self) (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) ) ) diff --git a/goal_src/engine/target/target-part.gc b/goal_src/engine/target/target-part.gc index 0f01810991..c5126df955 100644 --- a/goal_src/engine/target/target-part.gc +++ b/goal_src/engine/target/target-part.gc @@ -2257,7 +2257,7 @@ ((sp-flt spt-fade-a -0.28444445)) ) -(defbehavior process-drawable-burn-effect target ((arg0 int)) +(defbehavior process-drawable-burn-effect target ((arg0 time-frame)) (sound-play-by-name (static-sound-name "get-burned") (new-sound-id) 1024 0 0 1 #t) (let ((s5-1 (new 'stack 'rgbaf)) (s3-0 (-> *display* base-frame-counter)) diff --git a/goal_src/engine/target/target-util.gc b/goal_src/engine/target/target-util.gc index 70a168c6f6..210ca48674 100644 --- a/goal_src/engine/target/target-util.gc +++ b/goal_src/engine/target/target-util.gc @@ -37,88 +37,88 @@ ) (deftype target-bank (basic) - ((jump-collide-offset meters :offset-assert 4) - (jump-height-min meters :offset-assert 8) - (jump-height-max meters :offset-assert 12) - (double-jump-height-min meters :offset-assert 16) - (double-jump-height-max meters :offset-assert 20) - (flip-jump-height-min meters :offset-assert 24) - (flip-jump-height-max meters :offset-assert 28) - (duck-jump-height-min meters :offset-assert 32) - (duck-jump-height-max meters :offset-assert 36) - (flop-jump-height-min meters :offset-assert 40) - (flop-jump-height-max meters :offset-assert 44) - (attack-jump-height-min meters :offset-assert 48) - (attack-jump-height-max meters :offset-assert 52) - (edge-grab-jump-height-min meters :offset-assert 56) - (edge-grab-jump-height-max meters :offset-assert 60) - (swim-jump-height-min meters :offset-assert 64) - (swim-jump-height-max meters :offset-assert 68) - (tube-jump-height-min meters :offset-assert 72) - (tube-jump-height-max meters :offset-assert 76) - (wheel-duration seconds :offset-assert 80) - (wheel-jump-pre-window seconds :offset-assert 88) - (wheel-jump-post-window seconds :offset-assert 96) - (wheel-timeout seconds :offset-assert 104) - (wheel-speed-min meters :offset-assert 112) - (wheel-speed-inc meters :offset-assert 116) - (wheel-flip-duration seconds :offset-assert 120) - (wheel-flip-height meters :offset-assert 128) - (wheel-flip-dist meters :offset-assert 132) - (wheel-flip-art-height meters :offset-assert 136) - (wheel-flip-art-dist meters :offset-assert 140) - (duck-slide-distance meters :offset-assert 144) - (fall-far meters :offset-assert 148) - (fall-far-inc meters :offset-assert 152) - (attack-timeout seconds :offset-assert 160) - (ground-timeout seconds :offset-assert 168) - (slide-down-timeout seconds :offset-assert 176) - (fall-timeout seconds :offset-assert 184) - (fall-stumble-threshold meters :offset-assert 192) - (yellow-projectile-speed meters :offset-assert 196) - (hit-invulnerable-timeout seconds :offset-assert 200) - (run-cycle-length float :offset-assert 208) - (walk-cycle-dist meters :offset-assert 212) - (walk-up-cycle-dist meters :offset-assert 216) - (walk-down-cycle-dist meters :offset-assert 220) - (walk-side-cycle-dist meters :offset-assert 224) - (run-cycle-dist meters :offset-assert 228) - (run-up-cycle-dist meters :offset-assert 232) - (run-down-cycle-dist meters :offset-assert 236) - (run-side-cycle-dist meters :offset-assert 240) - (run-wall-cycle-dist meters :offset-assert 244) - (duck-walk-cycle-dist meters :offset-assert 248) - (wade-shallow-walk-cycle-dist meters :offset-assert 252) - (wade-deep-walk-cycle-dist meters :offset-assert 256) - (smack-surface-dist meters :offset-assert 260) - (smack-surface-height meters :offset-assert 264) - (min-dive-depth meters :offset-assert 268) - (root-radius meters :offset-assert 272) - (root-offset vector :inline :offset-assert 288) - (body-radius meters :offset-assert 304) - (edge-radius meters :offset-assert 308) - (edge-offset vector :inline :offset-assert 320) - (head-radius meters :offset-assert 336) - (head-height meters :offset-assert 340) - (head-offset vector :inline :offset-assert 352) - (spin-radius meters :offset-assert 368) - (spin-offset vector :inline :offset-assert 384) - (duck-spin-radius meters :offset-assert 400) - (duck-spin-offset vector :inline :offset-assert 416) - (punch-radius meters :offset-assert 432) - (punch-offset vector :inline :offset-assert 448) - (uppercut-radius meters :offset-assert 464) - (uppercut0-offset vector :inline :offset-assert 480) - (uppercut1-offset vector :inline :offset-assert 496) - (flop-radius meters :offset-assert 512) - (flop0-offset vector :inline :offset-assert 528) - (flop1-offset vector :inline :offset-assert 544) - (stuck-time seconds :offset-assert 560) - (stuck-timeout seconds :offset-assert 568) - (stuck-distance meters :offset-assert 576) - (tongue-pull-speed-min float :offset-assert 580) - (tongue-pull-speed-max float :offset-assert 584) - (yellow-attack-timeout seconds :offset-assert 592) + ((jump-collide-offset meters :offset-assert 4) + (jump-height-min meters :offset-assert 8) + (jump-height-max meters :offset-assert 12) + (double-jump-height-min meters :offset-assert 16) + (double-jump-height-max meters :offset-assert 20) + (flip-jump-height-min meters :offset-assert 24) + (flip-jump-height-max meters :offset-assert 28) + (duck-jump-height-min meters :offset-assert 32) + (duck-jump-height-max meters :offset-assert 36) + (flop-jump-height-min meters :offset-assert 40) + (flop-jump-height-max meters :offset-assert 44) + (attack-jump-height-min meters :offset-assert 48) + (attack-jump-height-max meters :offset-assert 52) + (edge-grab-jump-height-min meters :offset-assert 56) + (edge-grab-jump-height-max meters :offset-assert 60) + (swim-jump-height-min meters :offset-assert 64) + (swim-jump-height-max meters :offset-assert 68) + (tube-jump-height-min meters :offset-assert 72) + (tube-jump-height-max meters :offset-assert 76) + (wheel-duration time-frame :offset-assert 80) + (wheel-jump-pre-window time-frame :offset-assert 88) + (wheel-jump-post-window time-frame :offset-assert 96) + (wheel-timeout time-frame :offset-assert 104) + (wheel-speed-min meters :offset-assert 112) + (wheel-speed-inc meters :offset-assert 116) + (wheel-flip-duration time-frame :offset-assert 120) + (wheel-flip-height meters :offset-assert 128) + (wheel-flip-dist meters :offset-assert 132) + (wheel-flip-art-height meters :offset-assert 136) + (wheel-flip-art-dist meters :offset-assert 140) + (duck-slide-distance meters :offset-assert 144) + (fall-far meters :offset-assert 148) + (fall-far-inc meters :offset-assert 152) + (attack-timeout time-frame :offset-assert 160) + (ground-timeout time-frame :offset-assert 168) + (slide-down-timeout time-frame :offset-assert 176) + (fall-timeout time-frame :offset-assert 184) + (fall-stumble-threshold meters :offset-assert 192) + (yellow-projectile-speed meters :offset-assert 196) + (hit-invulnerable-timeout time-frame :offset-assert 200) + (run-cycle-length float :offset-assert 208) + (walk-cycle-dist meters :offset-assert 212) + (walk-up-cycle-dist meters :offset-assert 216) + (walk-down-cycle-dist meters :offset-assert 220) + (walk-side-cycle-dist meters :offset-assert 224) + (run-cycle-dist meters :offset-assert 228) + (run-up-cycle-dist meters :offset-assert 232) + (run-down-cycle-dist meters :offset-assert 236) + (run-side-cycle-dist meters :offset-assert 240) + (run-wall-cycle-dist meters :offset-assert 244) + (duck-walk-cycle-dist meters :offset-assert 248) + (wade-shallow-walk-cycle-dist meters :offset-assert 252) + (wade-deep-walk-cycle-dist meters :offset-assert 256) + (smack-surface-dist meters :offset-assert 260) + (smack-surface-height meters :offset-assert 264) + (min-dive-depth meters :offset-assert 268) + (root-radius meters :offset-assert 272) + (root-offset vector :inline :offset-assert 288) + (body-radius meters :offset-assert 304) + (edge-radius meters :offset-assert 308) + (edge-offset vector :inline :offset-assert 320) + (head-radius meters :offset-assert 336) + (head-height meters :offset-assert 340) + (head-offset vector :inline :offset-assert 352) + (spin-radius meters :offset-assert 368) + (spin-offset vector :inline :offset-assert 384) + (duck-spin-radius meters :offset-assert 400) + (duck-spin-offset vector :inline :offset-assert 416) + (punch-radius meters :offset-assert 432) + (punch-offset vector :inline :offset-assert 448) + (uppercut-radius meters :offset-assert 464) + (uppercut0-offset vector :inline :offset-assert 480) + (uppercut1-offset vector :inline :offset-assert 496) + (flop-radius meters :offset-assert 512) + (flop0-offset vector :inline :offset-assert 528) + (flop1-offset vector :inline :offset-assert 544) + (stuck-time seconds :offset-assert 560) + (stuck-timeout seconds :offset-assert 568) + (stuck-distance meters :offset-assert 576) + (tongue-pull-speed-min float :offset-assert 580) + (tongue-pull-speed-max float :offset-assert 584) + (yellow-attack-timeout time-frame :offset-assert 592) ) :method-count-assert 9 :size-assert #x258 @@ -130,20 +130,20 @@ :jump-collide-offset (meters 0.7) :jump-height-min (meters 1.01) :jump-height-max (meters 3.5) - :double-jump-height-min (meters 1.0) + :double-jump-height-min (meters 1) :double-jump-height-max (meters 2.5) - :flip-jump-height-min (meters 5.0) - :flip-jump-height-max (meters 7.0) - :duck-jump-height-min (meters 5.0) - :duck-jump-height-max (meters 7.0) - :flop-jump-height-min (meters 5.0) - :flop-jump-height-max (meters 7.0) - :attack-jump-height-min (meters 4.0) + :flip-jump-height-min (meters 5) + :flip-jump-height-max (meters 7) + :duck-jump-height-min (meters 5) + :duck-jump-height-max (meters 7) + :flop-jump-height-min (meters 5) + :flop-jump-height-max (meters 7) + :attack-jump-height-min (meters 4) :attack-jump-height-max (meters 5.5) :edge-grab-jump-height-min (meters 1.7) :edge-grab-jump-height-max (meters 1.7) - :swim-jump-height-min (meters 5.0) - :swim-jump-height-max (meters 5.0) + :swim-jump-height-min (meters 5) + :swim-jump-height-max (meters 5) :tube-jump-height-min (meters 1.75) :tube-jump-height-max (meters 2.5) :wheel-duration (seconds 0.5) @@ -157,14 +157,14 @@ :wheel-flip-art-height (meters 3.2969) :wheel-flip-art-dist (meters 12.5) :duck-slide-distance (meters 5.75) - :fall-far (meters 30.0) - :fall-far-inc (meters 20.0) + :fall-far (meters 30) + :fall-far-inc (meters 20) :attack-timeout (seconds 0.3) :ground-timeout (seconds 0.2) :slide-down-timeout (seconds 0.2) :fall-timeout (seconds 1) :fall-stumble-threshold (meters 39.9) - :yellow-projectile-speed (meters 60.0) + :yellow-projectile-speed (meters 60) :hit-invulnerable-timeout (seconds 3) :run-cycle-length 60.0 :walk-cycle-dist (meters 2.8) @@ -172,15 +172,15 @@ :walk-down-cycle-dist (meters 2.8) :walk-side-cycle-dist (meters 2.8) :run-cycle-dist (meters 6.25) - :run-up-cycle-dist (meters 5.0) - :run-down-cycle-dist (meters 5.0) + :run-up-cycle-dist (meters 5) + :run-down-cycle-dist (meters 5) :run-side-cycle-dist (meters 6.25) :run-wall-cycle-dist (meters 2.8) :duck-walk-cycle-dist (meters 3.25) - :wade-shallow-walk-cycle-dist (meters 6.0) - :wade-deep-walk-cycle-dist (meters 6.0) + :wade-shallow-walk-cycle-dist (meters 6) + :wade-deep-walk-cycle-dist (meters 6) :smack-surface-dist (meters 1.25) - :min-dive-depth (meters 2.0) + :min-dive-depth (meters 2) :root-radius (meters 2.2) :root-offset (new 'static 'vector :y 4915.2 :w 1.0) :body-radius (meters 0.7) @@ -196,7 +196,7 @@ :duck-spin-offset (new 'static 'vector :y 4096.0 :w 1.0) :punch-radius (meters 1.3) :punch-offset (new 'static 'vector :y 5324.8 :w 1.0) - :uppercut-radius (meters 1.0) + :uppercut-radius (meters 1) :uppercut0-offset (new 'static 'vector :y 3276.8 :w 1.0) :uppercut1-offset (new 'static 'vector :y 9011.2 :w 1.0) :flop-radius (meters 1.4) @@ -732,7 +732,7 @@ ) (defbehavior can-play-stance-amibent? target () - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 9000) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 30)) (not (-> *setting-control* current talking)) (not (-> *setting-control* current spooling)) (not (-> *setting-control* current movie)) @@ -744,9 +744,7 @@ (defbehavior can-jump? target ((arg0 symbol)) (and (or (logtest? (-> self control status) 1) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (and (logtest? (-> self control status) 1) (< 0.866 (-> self control surface-angle))) ) (and (zero? (logand (-> self control unknown-surface01 flags) 64)) @@ -773,9 +771,7 @@ (defbehavior fall-test target () (when (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (let ((v1-15 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -791,9 +787,7 @@ ) ) ) - (when (and (< (- (-> *display* base-frame-counter) (the-as int (-> self control rider-time))) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (when (and (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (-> *TARGET-bank* ground-timeout)) (logtest? (-> self control unknown-surface01 flags) #x4000) ) (+! (-> self control transv x) (-> self control rider-last-move x)) @@ -806,9 +800,7 @@ (defbehavior slide-down-test target () (if (and (zero? (logand (-> self control status) 129)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (logtest? (-> self control status) 4) (< 0.5 (-> self control surface-angle)) ) @@ -862,21 +854,6 @@ (set! (-> gp-0 proc) #f) (set! (-> gp-0 ignore-pat) (the-as uint 1)) (set! (-> gp-0 solid-only) #t) - - ;; NOTE: added this. - ;; exit duck has failed for 2 reasons: - ;; there seems to be a bogus triangle in the cache sometimes (rare) - ;; sometimes it thinks we hit the spheres, but we don't. - ; (dotimes (i 2) - ; (add-debug-sphere - ; #t - ; (bucket-id debug-draw0) - ; (-> (the (inline-array sphere) (-> gp-0 spheres)) i) - ; (-> (the (inline-array sphere) (-> gp-0 spheres)) i w) - ; (new 'static 'rgba :r #x80 :a #x80) - ; ) - ; ) - (if (fill-and-probe-using-spheres *collide-cache* gp-0) #f #t @@ -892,7 +869,10 @@ ) (or (and (logtest? (-> self state-flags) 4096) (or (zero? (logand (-> self state-flags) #x4000)) - (not (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0))) + (not (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + ) ) ) (logtest? (-> self control unknown-surface01 flags) 384) @@ -900,18 +880,18 @@ ) #f ) - ((and (or (not arg0) (and (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) - (< (-> self control unknown-float61) 0.7) - ) + ((and (or (not arg0) + (and (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) + (< (-> self control unknown-float61) 0.7) + ) ) (>= (- (-> *display* base-frame-counter) - (the-as int (if (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) - (-> *TARGET-bank* yellow-attack-timeout) - (-> *TARGET-bank* attack-timeout) - ) - ) + (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (-> *TARGET-bank* yellow-attack-timeout) + (-> *TARGET-bank* attack-timeout) + ) ) (-> self control unknown-dword31) ) @@ -930,9 +910,7 @@ ((or (logtest? (-> self state-flags) 4096) (logtest? (-> self control unknown-surface01 flags) 640)) #f ) - ((>= (- (-> *display* base-frame-counter) (the-as int (-> *TARGET-bank* attack-timeout))) - (-> self control unknown-dword33) - ) + ((>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* attack-timeout)) (-> self control unknown-dword33)) #t ) (else @@ -1003,10 +981,10 @@ ) ) -(defun target-timed-invulnerable ((arg0 seconds) (arg1 target)) +(defun target-timed-invulnerable ((arg0 time-frame) (arg1 target)) (logior! (-> arg1 state-flags) 32) (set! (-> arg1 control unknown-dword80) (-> *display* base-frame-counter)) - (set! (-> arg1 control unknown-dword81) (the-as int arg0)) + (set! (-> arg1 control unknown-dword81) arg0) (set-collide-kinds (-> arg1 control) 2 (collide-kind target-attack) (collide-kind)) 0 (none) @@ -1242,11 +1220,6 @@ ) (defun target-joint-pos () - ;; added hack - (when (and *target* (zero? (-> *target* draw))) - ;; just return 0, we have the fake target - (return (new 'static 'vector)) - ) (let ((v1-0 *target*)) (if v1-0 (vector<-cspace! (new 'static 'vector) (-> v1-0 node-list data (-> v1-0 draw origin-joint-index))) diff --git a/goal_src/engine/target/target.gc b/goal_src/engine/target/target.gc index 4a6bbac3ac..ad82066048 100644 --- a/goal_src/engine/target/target.gc +++ b/goal_src/engine/target/target.gc @@ -21,8 +21,7 @@ ;; DECOMP BEGINS -;; definition for function target-falling-anim -(defbehavior target-falling-anim target ((arg0 int) (arg1 int)) +(defbehavior target-falling-anim target ((arg0 time-frame) (arg1 int)) (let ((v1-2 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -130,14 +129,14 @@ #f ) -;; definition for function target-falling-anim-trans (defbehavior target-falling-anim-trans target () (let ((v1-2 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) ) ) - (b! (or (= v1-2 (-> self draw art-group data 38)) (= v1-2 (-> self draw art-group data 35))) + (b! + (or (= v1-2 (-> self draw art-group data 38)) (= v1-2 (-> self draw art-group data 35))) cfg-7 ) ) @@ -187,14 +186,8 @@ (none) ) -;; definition for function target-falling-trans -;; INFO: Return type mismatch int vs none. -(defbehavior target-falling-trans target ((arg0 basic) (arg1 cpad-list)) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) +(defbehavior target-falling-trans target ((arg0 basic) (arg1 time-frame)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack-air #f) ) (when (= arg0 'target-eco-powerup) @@ -206,7 +199,7 @@ (pad-buttons x) ) (zero? (logand (-> self water flags) 512)) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (zero? (logand (-> self state-flags) 2048)) ) (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) @@ -215,14 +208,10 @@ (if (logtest? (-> self control status) 1) (go target-hit-ground #f) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) - (>= (the-as int arg1) 0) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int arg1)) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) + (>= arg1 0) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) arg1) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) #t ) @@ -236,7 +225,6 @@ (none) ) -;; definition for function target-hit-ground-anim (defbehavior target-hit-ground-anim target ((arg0 symbol)) (let ((v1-2 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -310,9 +298,7 @@ ) ) (set! (-> self event-hook) target-jump-event-handler) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (can-jump? #f) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (can-jump? #f)) (ja-channel-set! 0) (go target-high-jump @@ -579,7 +565,6 @@ ) ) -;; failed to figure out what this is: (defstate target-startup (target) :event target-standard-event-handler @@ -594,7 +579,6 @@ target-no-move-post ) -;; failed to figure out what this is: (defstate target-stance (target) :event target-standard-event-handler @@ -626,11 +610,7 @@ (remove-exit) (go target-walk) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (set! (-> self control unknown-float81) 0.0) (remove-exit) (go target-duck-stance) @@ -1044,7 +1024,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-walk (target) :event target-walk-event-handler @@ -1075,19 +1054,13 @@ ) (pad-buttons l1 r1) ) - (and (>= (- (-> *display* base-frame-counter) (the-as int (-> *TARGET-bank* wheel-timeout))) - (-> self control unknown-dword30) - ) + (and (>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* wheel-timeout)) (-> self control unknown-dword30)) (and (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) (can-wheel?)) ) ) (go target-wheel) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (target-effect-exit) (remove-exit) (go target-duck-walk) @@ -1122,7 +1095,7 @@ (if (can-hands? #t) (go target-running-attack) ) - (when (and (turn-around?) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 90)) + (when (and (turn-around?) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.3))) (set! (-> self control transv quad) (-> self control unknown-vector-array10 (-> self control unknown-int10) quad) ) @@ -1634,7 +1607,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-turn-around (target) :event target-standard-event-handler @@ -1668,18 +1640,14 @@ ) (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) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack) ) (if (can-hands? #t) (go target-running-attack) ) (if (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 24) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.08)) ) (go target-falling #f) ) @@ -1727,7 +1695,6 @@ target-no-stick-post ) -;; failed to figure out what this is: (defstate target-slide-down (target) :event target-walk-event-handler @@ -1744,7 +1711,7 @@ :trans (behavior () (when (or (logtest? (-> self control status) 1) - (if (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) + (if (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) #t ) ) @@ -1788,12 +1755,10 @@ (the-as (function none :behavior target) target-post) ) -;; definition for function init-var-jump -;; Used lq/sq (defbehavior init-var-jump target ((arg0 float) (arg1 float) (arg2 vector) (arg3 vector) (arg4 vector)) (set! (-> self control status) (logand -16385 (-> self control status))) (delete-back-vel) - (when (< (- (-> *display* base-frame-counter) (the-as int (-> self control rider-time))) 15) + (when (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (seconds 0.05)) (let ((f0-1 (fmax 0.0 @@ -1853,8 +1818,6 @@ ) ) -;; definition for function mod-var-jump -;; Used lq/sq (defbehavior mod-var-jump target ((arg0 symbol) (arg1 symbol) (arg2 symbol) (arg3 vector)) (local-vars (v0-2 vector)) (let ((f30-0 (* 0.033333335 (the float (- (-> *display* base-frame-counter) (-> self state-time)))))) @@ -1946,7 +1909,6 @@ ) ) -;; failed to figure out what this is: (defstate target-duck-stance (target) :event target-standard-event-handler @@ -2107,7 +2069,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-duck-walk (target) :event target-standard-event-handler @@ -2231,7 +2192,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-jump (target) :event target-jump-event-handler @@ -2322,17 +2282,17 @@ (* 0.003921569 (the float (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) abutton 6))) ) ) - (target-falling-trans #f (the-as cpad-list (if (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 38) - ) - 15 - -1 - ) + (target-falling-trans #f (the-as time-frame (if (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 38) + ) + 15 + -1 + ) ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 12288.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (zero? (logand (-> self water flags) 512)) @@ -2341,13 +2301,11 @@ ) (go target-double-jump (-> *TARGET-bank* double-jump-height-min) (-> *TARGET-bank* double-jump-height-max)) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -2364,12 +2322,7 @@ ) ) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (slide-down-test) (set! (-> self control unknown-float122) (seek @@ -2454,7 +2407,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-jump-forward (target) :event target-jump-event-handler @@ -2513,7 +2465,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-double-jump (target) :event target-jump-event-handler @@ -2539,23 +2490,21 @@ target-exit :trans (behavior () - (target-falling-trans #f (the-as cpad-list (if (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 38) - ) - 15 - -1 - ) + (target-falling-trans #f (the-as time-frame (if (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 38) + ) + 15 + -1 + ) ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -2573,12 +2522,7 @@ ) ) (if (!= (-> self state-time) (-> *display* base-frame-counter)) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) ) (set! (-> self control unknown-float122) (seek @@ -2635,7 +2579,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-high-jump (target) :event target-jump-event-handler @@ -2680,14 +2623,14 @@ target-exit :trans (behavior () - (target-falling-trans #f (the-as cpad-list (if (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 38) - ) - 15 - -1 - ) + (target-falling-trans #f (the-as time-frame (if (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 38) + ) + 15 + -1 + ) ) ) (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) @@ -2700,7 +2643,7 @@ (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 73728.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -2717,12 +2660,7 @@ ) ) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (set! (-> self control unknown-float122) (seek (-> self control unknown-float122) @@ -2741,7 +2679,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-duck-high-jump (target) :event target-standard-event-handler @@ -2809,7 +2746,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-duck-high-jump-jump (target) :event target-jump-event-handler @@ -2924,7 +2860,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-falling (target) :event target-jump-event-handler @@ -2939,10 +2874,10 @@ (behavior () (target-falling-trans (-> self control unknown-spoolanim00) - (the-as cpad-list (if (= (-> self control unknown-spoolanim00) #f) - 0 - (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) - ) + (the-as time-frame (if (= (-> self control unknown-spoolanim00) #f) + 0 + (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) + ) ) ) (none) @@ -2956,7 +2891,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-hit-ground (target) :event target-walk-event-handler @@ -2973,7 +2907,7 @@ (or (= v1-4 (-> self draw art-group data 42)) (= v1-4 (-> self draw art-group data 43))) ) (dummy-10 (-> self skel effect) 'group-blue-hit-ground-effect (-> (new 'static 'array float 1 0.0) 0) -1) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) ) (else (let ((f0-1 (vector-dot @@ -3040,20 +2974,10 @@ (go target-walk) ) ) - (if (and (or (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (not (can-exit-duck?)) - ) - (can-duck?) - ) + (if (and (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (not (can-exit-duck?))) (can-duck?)) (go target-duck-stance) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack) ) (if (can-hands? #t) @@ -3073,7 +2997,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-attack (target) :event target-dangerous-event-handler @@ -3106,11 +3029,11 @@ (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 51)) num-func-seek!) ) (until (ja-done? 0) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 74) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) (level-hint-spawn (game-text-id red-eco-tutorial) "sksp0072" @@ -3144,7 +3067,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-running-attack (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) @@ -3209,10 +3131,10 @@ ) :enter (behavior () - (if (or (and (= (-> self fact-info-target eco-type) 1) + (if (or (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 450) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 1.5)) ) (go target-yellow-blast) ) @@ -3247,7 +3169,7 @@ (and (>= (-> self control unknown-float63) 0.7) (zero? (logand (-> self control status) 32))) ) (begin - (set! (-> self control unknown-int21) (-> *display* base-frame-counter)) + (set! (-> self control unknown-int21) (the-as int (-> *display* base-frame-counter))) (set! (-> self control unknown-float81) 0.0) (let ((gp-0 (new-stack-vector0)) (f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -3281,9 +3203,9 @@ target-hit ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (and (< 4096.0 (-> self control unknown-float01)) - (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons square) @@ -3311,11 +3233,11 @@ (-> self control transv) ) ) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) (level-hint-spawn (game-text-id red-eco-tutorial) "sksp0072" @@ -3353,9 +3275,7 @@ (cond ((and (>= (ja-aframe-num 0) 20.0) (and (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (let ((v1-39 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -3390,7 +3310,7 @@ (pad-buttons square) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control unknown-float01)))) @@ -3419,7 +3339,7 @@ (set! (-> a0-44 param 1) (-> self control unknown-surface01 align-speed)) (joint-control-channel-group-eval! a0-44 (the-as art-joint-anim #f) num-func-seek!) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 gp-2) @@ -3429,9 +3349,7 @@ ) ) (if (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (let ((v1-121 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -3456,7 +3374,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-attack-air (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) @@ -3557,7 +3474,7 @@ (set-quaternion! (-> self control) (-> self control dir-targ)) (go target-hit-ground #f) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self control dynam gravity-length) (seek (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length) @@ -3565,7 +3482,7 @@ ) ) ) - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (< (vector-dot (-> self control dynam gravity-normal) (-> self control unknown-vector10)) (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) ) @@ -3573,11 +3490,11 @@ (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) ) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 70) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) (level-hint-spawn (game-text-id red-eco-tutorial) "sksp0072" @@ -3630,7 +3547,7 @@ ) (while (not (or (and (< (fabs (/ f0-8 (* 0.0033333334 f1-1))) 150.0) (< f1-1 0.0)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 510) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.7)) ) ) (quaternion-rotate-y! @@ -3696,7 +3613,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-attack-uppercut (target) :event target-dangerous-event-handler @@ -3745,7 +3661,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-attack-uppercut-jump (target) :event target-dangerous-event-handler @@ -3771,13 +3686,11 @@ (if (logtest? (-> self control status) 1) (go target-hit-ground #f) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -3796,9 +3709,7 @@ ) ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?) (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -3809,17 +3720,12 @@ ) (go target-attack-air 'uppercut) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) - (when (and (= (-> self fact-info-target eco-type) 2) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) ) (if (and (= (-> self control unknown-symbol30) 'uppercut) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) -8192.0) @@ -3872,7 +3778,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-flop (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) @@ -3911,7 +3816,7 @@ ) :enter (behavior ((arg0 float) (arg1 float) (arg2 float)) - (if (and (= (-> self fact-info-target eco-type) 1) + (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (go target-yellow-jump-blast) @@ -3964,7 +3869,7 @@ (or (= v1-6 (-> self draw art-group data 64)) (= v1-6 (-> self draw art-group data 66))) ) ) - (when (and (or (< (target-move-dist 30) 1638.4) + (when (and (or (< (target-move-dist (seconds 0.1)) 1638.4) (and (logtest? (-> self control status) 8) (< 0.7 (-> self control poly-angle))) ) (zero? (logand (-> self control status) 32)) @@ -3976,10 +3881,10 @@ ) (when gp-1 (logior! (-> self control status) 1) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5)) (dummy-10 (-> self skel effect) 'group-red-eco-strike-ground (ja-frame-num 0) 0) (let* ((s4-1 (get-process *default-dead-pool* touch-tracker #x4000)) (s5-1 (when s4-1 @@ -4012,7 +3917,7 @@ (go target-flop-hit-ground gp-1) ) ) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 @@ -4024,7 +3929,7 @@ 17 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) ) (when (and (not (-> self control unknown-symbol30)) (= (if (> (-> self skel active-channels) 0) @@ -4176,13 +4081,10 @@ ) ) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> *TARGET-bank* fall-timeout))) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *TARGET-bank* fall-timeout)) (go target-falling #f) ) - (if (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - (not *pause-lock*) - ) + (if (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*)) (go target-falling #f) ) (suspend) @@ -4194,7 +4096,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-flop-hit-ground (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) @@ -4220,7 +4121,7 @@ ) ) (target-land-effect) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (set! (-> self control unknown-uint20) (the-as uint arg0)) (set-forward-vel (-> (new 'static 'array float 1 0.0) 0)) @@ -4234,18 +4135,14 @@ :trans (behavior () (when (!= (-> self control unknown-spoolanim00) 'stuck) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack-air 'flop) ) ) - (when (and (and (= (-> self fact-info-target eco-type) 2) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 75) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) ) (dummy-10 (-> self skel effect) @@ -4256,7 +4153,7 @@ 17 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) ) (let ((v1-33 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -4282,7 +4179,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-wheel (target) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) @@ -4335,8 +4231,8 @@ (set! (-> s4-0 frame-num) 0.0) ) (until (ja-done? 0) - (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) - (set! gp-0 (-> *display* base-frame-counter)) + (if (cpad-pressed? (-> self control unknown-cpad-info00 number) x) + (set! gp-0 (the-as int (-> *display* base-frame-counter))) ) (when (and (or (smack-surface? #f) (>= (-> self control unknown-float63) 0.7)) (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) @@ -4353,12 +4249,10 @@ ) ) (if (zero? s5-0) - (set! s5-0 (-> *display* base-frame-counter)) + (set! s5-0 (the-as int (-> *display* base-frame-counter))) ) ) - (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (-> *display* base-frame-counter) ) (TODO-RENAME-9 (-> self align)) @@ -4389,22 +4283,20 @@ (set! f30-0 (* f30-0 (fmin (-> (new 'static 'array float 1 1.0) 0) (-> self control unknown-float140)))) ) ) - (if (and (or (< (- (-> *display* base-frame-counter) gp-0) (the-as int (-> *TARGET-bank* wheel-jump-pre-window))) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (or (< (- (-> *display* base-frame-counter) (the-as time-frame gp-0)) (-> *TARGET-bank* wheel-jump-pre-window)) + (cpad-pressed? (-> self control unknown-cpad-info00 number) x) ) (can-jump? 'target-wheel-flip) ) (go target-wheel-flip (-> *TARGET-bank* wheel-flip-height) (-> *TARGET-bank* wheel-flip-dist)) ) ) - (set! (-> self state-hook-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-hook-time) (-> *display* base-frame-counter)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> *display* base-frame-counter) (the-as int (-> self state-hook-time))) - (the-as int (-> *TARGET-bank* wheel-jump-post-window)) - ) + ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (-> *TARGET-bank* wheel-jump-post-window)) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) ) (else @@ -4431,7 +4323,6 @@ (the-as (function none :behavior target) target-post) ) -;; failed to figure out what this is: (defstate target-wheel-flip (target) :event target-standard-event-handler @@ -4445,7 +4336,7 @@ :trans (behavior () (if (and (or (smack-surface? #f) - (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) + (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) (!= (-> self state-time) (-> *display* base-frame-counter)) ) @@ -4456,9 +4347,7 @@ target-hit ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?) (and (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -4523,7 +4412,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (while (zero? (logand (-> self control status) 1)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 3) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.01)) (when (not (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -4578,12 +4467,12 @@ ) ) (target-land-effect) - (set! (-> self state-hook-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-hook-time) (-> *display* base-frame-counter)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> *display* base-frame-counter) (the-as int (-> self state-hook-time))) 30) + ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (seconds 0.1)) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) ) (else diff --git a/goal_src/engine/target/target2.gc b/goal_src/engine/target/target2.gc index 47161560d1..8125984fcf 100644 --- a/goal_src/engine/target/target2.gc +++ b/goal_src/engine/target/target2.gc @@ -30,7 +30,7 @@ (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) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (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))) @@ -53,7 +53,7 @@ ) ) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 90) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.3)) (suspend) (let ((s5-0 (-> self skel root-channel 0))) (set! (-> s5-0 param 0) (ja-aframe (the-as float 19.0) 0)) @@ -172,9 +172,7 @@ :trans (behavior () (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) - ) + (if (or (cpad-hold? (-> self control unknown-cpad-info00 number) start l1 r1 triangle circle x square) *progress-process* ) (go target-stance) @@ -525,7 +523,7 @@ (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) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as time-frame 21)) (zero? (ja-group-size)) ) ) @@ -629,8 +627,10 @@ ) (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) + (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.5)) (not *pause-lock*) ) (let ((gp-1 (vector-float*! @@ -684,9 +684,7 @@ ) (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) - ) + (when (cpad-pressed? (-> self control unknown-cpad-info00 number) triangle) (logclear! (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons triangle) @@ -812,8 +810,10 @@ ) (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)) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.45)) + (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (not *pause-lock*) ) (let ((gp-1 (vector-float*! @@ -1187,7 +1187,7 @@ (pad-buttons x) ) (zero? (logand (-> self state-flags) 2048)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (set! (-> self control transv quad) (the-as uint128 0)) (cond @@ -1502,7 +1502,7 @@ ) :trans (behavior () - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (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) ) @@ -1746,7 +1746,7 @@ (set! (-> self control transv quad) (the-as uint128 0)) (logclear! (-> self control root-prim prim-core action) (collide-action ca-3 ca-7)) (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) + (when (and (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (seconds 0.2)) (or (logtest? (-> self control unknown-surface01 flags) #x4000) (= (-> self control poly-pat material) (pat-material rotate)) ) @@ -1833,7 +1833,7 @@ (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) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (suspend) @@ -1846,7 +1846,9 @@ (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)) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> 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 @@ -2029,7 +2031,7 @@ ) (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) (let ((gp-4 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-4) 30) + (until (>= (- (-> *display* base-frame-counter) gp-4) (seconds 0.1)) (suspend) ) ) @@ -2114,15 +2116,13 @@ ) (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) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) 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)) + (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (go target-yellow-jump-blast) (go target-running-attack) ) @@ -2182,18 +2182,14 @@ (behavior () ((-> self state-hook)) (when (and (zero? (logand (-> self water flags) 1024)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water wade-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> self water wade-time)) (seconds 0.05)) ) (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?) - ) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (go target-duck-stance) ) (if (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) @@ -2210,11 +2206,7 @@ ) (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?) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) 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) @@ -2241,7 +2233,7 @@ (behavior () ((-> self state-hook)) (when (and (zero? (logand (-> self water flags) 1024)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water wade-time))) 30) + (>= (- (-> *display* base-frame-counter) (-> self water wade-time)) (seconds 0.1)) ) (if (logtest? (-> self water flags) 2048) (go target-swim-stance) @@ -2251,11 +2243,7 @@ (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?) - ) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) 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) @@ -2269,11 +2257,7 @@ ) (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?) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) 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) @@ -2496,7 +2480,7 @@ (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) + (when (and (>= (- (-> *display* base-frame-counter) (the-as time-frame gp-6)) (seconds 0.2)) (< (- (-> self water height) (-> self control trans y)) 4096.0) ) (case (the int (ja-aframe-num 0)) @@ -2508,7 +2492,7 @@ 0 (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) ) - (set! gp-6 (-> *display* base-frame-counter)) + (set! gp-6 (the-as int (-> *display* base-frame-counter))) ) ((46 47 48 49) (dummy-13 @@ -2518,7 +2502,7 @@ 0 (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) ) - (set! gp-6 (-> *display* base-frame-counter)) + (set! gp-6 (the-as int (-> *display* base-frame-counter))) ) ) ) @@ -2610,7 +2594,7 @@ (set-zero! (-> self water bob)) ) (when (and (zero? (logand (-> self water flags) 2048)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (if (logtest? (-> self water flags) 1024) (go target-wade-stance) @@ -2625,7 +2609,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water enter-swim-time))) 30) + (>= (- (-> *display* base-frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -2761,7 +2745,7 @@ (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) + (>= (- (-> *display* base-frame-counter) (-> self water swim-time)) (seconds 0.1)) ) (if (logtest? (-> self water flags) 1024) (go target-wade-stance) @@ -2776,7 +2760,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water enter-swim-time))) 30) + (>= (- (-> *display* base-frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -2917,7 +2901,7 @@ (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 water swim-time) (-> *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) @@ -2942,11 +2926,11 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self water swim-time))) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self water swim-time)) (seconds 0.5)) (go target-stance) ) (cond - ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) + ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) (set! (-> self control unknown-surface00) *dive-mods*) (if (= (-> self next-state name) 'target-swim-down) (target-swim-tilt @@ -3129,7 +3113,7 @@ (-> 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 (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (zero? (logand (-> self state-flags) 2048)) (zero? (logand (-> self water flags) #x6000)) ) @@ -3140,8 +3124,8 @@ (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)) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) + (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) self) @@ -3230,7 +3214,7 @@ (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)) + (if (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (set! f30-0 2.0) ) (TODO-RENAME-9 (-> self align)) @@ -3248,9 +3232,9 @@ ) (label cfg-37) (logior! (-> self water flags) 16) - (set! (-> self water swim-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self water swim-time) (-> *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)) + (set! (-> self water bob start-time) (+ (-> *display* base-frame-counter) (seconds -0.05))) (go target-swim-stance) (none) ) @@ -3268,7 +3252,7 @@ :trans (behavior () (cond - ((< (- (-> *display* base-frame-counter) (-> self state-time)) 150) + ((< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self water flags) (logior #x10000 (-> self water flags))) (set! (-> self control status) (logand -8 (-> self control status))) ) @@ -3382,7 +3366,7 @@ (go target-death 'target-hit-ground-hard) ) (else - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) (ja-channel-push! 1 1) (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! @@ -3470,8 +3454,8 @@ (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)) + ((arg0 vector) (arg1 time-frame) (arg2 float)) + (local-vars (sv-32 time-frame) (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)) diff --git a/goal_src/engine/ui/hud-classes.gc b/goal_src/engine/ui/hud-classes.gc index faf0708d26..3c0075788a 100644 --- a/goal_src/engine/ui/hud-classes.gc +++ b/goal_src/engine/ui/hud-classes.gc @@ -467,12 +467,12 @@ ) (deftype hud-money-all (hud) - ((x-scale float :offset-assert 280) - (y-scale float :offset-assert 284) - (y-pos int32 :offset-assert 288) - (total-orbs int32 :offset-assert 292) - (level-index int32 :offset-assert 296) - (start-time uint64 :offset-assert 304) + ((x-scale float :offset-assert 280) + (y-scale float :offset-assert 284) + (y-pos int32 :offset-assert 288) + (total-orbs int32 :offset-assert 292) + (level-index int32 :offset-assert 296) + (start-time time-frame :offset-assert 304) ) :heap-base #xd0 :method-count-assert 27 @@ -584,9 +584,9 @@ ) ) ) - (if (>= (+ (-> *display* base-frame-counter) -1500) (the-as int (-> obj start-time))) + (if (>= (+ (-> *display* base-frame-counter) (seconds -5)) (-> obj start-time)) (set! (-> obj deactivate-when-hidden) #t) - (TODO-RENAME-16 obj (-> *display* base-frame-counter) 0) + (TODO-RENAME-16 obj (the-as int (-> *display* base-frame-counter)) 0) ) ) 0 @@ -683,7 +683,7 @@ ) ) ) - (set! (-> obj start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj start-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "get-all-orbs") (new-sound-id) 1024 0 0 1 #t) 0 (none) @@ -1710,10 +1710,7 @@ (the-as uint (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) ) @@ -1725,17 +1722,17 @@ (t0-0 128) ) (case (-> *target* fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) - ((2) + (((pickup-type eco-red)) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) - ((4) + (((pickup-type eco-green)) (set! a2-1 0) (set! a3-0 128) (set! t0-0 32) @@ -1757,10 +1754,7 @@ (the-as uint (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) ) @@ -1772,17 +1766,17 @@ (t0-0 128) ) (case (-> *target* fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) - ((2) + (((pickup-type eco-red)) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) - ((4) + (((pickup-type eco-green)) (set! a2-1 0) (set! a3-0 128) (set! t0-0 32) @@ -1804,10 +1798,7 @@ (the-as uint (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) ) @@ -1819,17 +1810,17 @@ (t0-0 128) ) (case (-> *target* fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) - ((2) + (((pickup-type eco-red)) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) - ((4) + (((pickup-type eco-green)) (set! a2-1 0) (set! a3-0 128) (set! t0-0 32) @@ -1873,10 +1864,7 @@ (the-as int (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) (the-as int (-> *target* fact-info-target eco-timeout)) diff --git a/goal_src/engine/ui/hud-h.gc b/goal_src/engine/ui/hud-h.gc index aacbc56c6e..cc3e73dfca 100644 --- a/goal_src/engine/ui/hud-h.gc +++ b/goal_src/engine/ui/hud-h.gc @@ -64,8 +64,8 @@ ((value int32 :offset-assert 112) (value2 int32 :offset-assert 116) (target-value int32 :offset-assert 120) - (last-increment-time int64 :offset-assert 128) - (last-target-equal-time int64 :offset-assert 136) + (last-increment-time time-frame :offset-assert 128) + (last-target-equal-time time-frame :offset-assert 136) (offset int32 :offset-assert 144) (y-offset int32 :offset-assert 148) (next-y-offset int32 :offset-assert 152) @@ -80,8 +80,8 @@ (disable symbol :offset-assert 188) (force-on-screen symbol :offset-assert 192) (deactivate-when-hidden symbol :offset-assert 196) - (trigger-time uint64 :offset-assert 200) - (last-hide-time uint64 :offset-assert 208) + (trigger-time time-frame :offset-assert 200) + (last-hide-time time-frame :offset-assert 208) (nb-of-icons int32 :offset-assert 216) (icons hud-icon 6 :offset-assert 220) (max-nb-of-particles int32 :offset-assert 244) diff --git a/goal_src/engine/ui/hud.gc b/goal_src/engine/ui/hud.gc index 948537e149..6d45df0635 100644 --- a/goal_src/engine/ui/hud.gc +++ b/goal_src/engine/ui/hud.gc @@ -38,7 +38,7 @@ (when (and (not (dummy-14 obj)) (not (paused?))) (dotimes (s5-0 (-> obj nb-of-particles)) (when (!= s5-0 (-> obj skip-particle)) - (when (or (!= (-> obj particles 0 pos x) 0.0) (!= (-> obj particles 0 pos y) 0.0)) + (if (or (!= (-> obj particles 0 pos x) 0.0) (!= (-> obj particles 0 pos y) 0.0)) (spawn (-> obj particles s5-0 part) *null-vector*) ) ) @@ -55,8 +55,8 @@ (when (and (not *progress-process*) (and (!= (-> obj last-hide-time) (-> *display* base-frame-counter)) (not (movie?)) - (>= (- (-> *display* base-frame-counter) (-> *game-info* letterbox-time)) 30) - (>= (- (-> *display* base-frame-counter) (-> *game-info* blackout-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> *game-info* letterbox-time)) (seconds 0.1)) + (>= (- (-> *display* base-frame-counter) (-> *game-info* blackout-time)) (seconds 0.1)) (not (and *target* (logtest? (-> *target* state-flags) 256))) ) ) @@ -72,10 +72,10 @@ ((and (-> obj increment-on-event) (< (-> obj value) arg0) (not (-> obj first-init)) - (< (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) 450) + (< (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) (seconds 1.5)) ) (when (and (!= (-> obj value) (-> obj target-value)) - (>= (- (-> *display* base-frame-counter) (-> obj last-increment-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> obj last-increment-time)) (seconds 0.1)) ) (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 1 #t) (+! (-> obj value) 1) @@ -83,9 +83,10 @@ ) ) (else - (if (not - (and (not (-> obj first-init)) (>= (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) 450)) - ) + (if (not (and (not (-> obj first-init)) + (>= (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) (seconds 1.5)) + ) + ) (set! (-> obj value) arg0) ) (set! (-> obj target-value) arg0) @@ -99,7 +100,7 @@ ) (go hud-arriving) ) - (set! (-> obj trigger-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj trigger-time) (-> *display* base-frame-counter)) (set! (-> obj first-init) #f) ) ) @@ -216,12 +217,12 @@ ) (('hide) (set! v0-0 (-> *display* base-frame-counter)) - (set! (-> self last-hide-time) (the-as uint v0-0)) + (set! (-> self last-hide-time) (the-as time-frame v0-0)) v0-0 ) (('hide-quick) (set! v0-0 (-> *display* base-frame-counter)) - (set! (-> self last-hide-time) (the-as uint v0-0)) + (set! (-> self last-hide-time) (the-as time-frame v0-0)) v0-0 ) (('increment) @@ -291,7 +292,7 @@ (local-vars (v0-3 object)) (case arg2 (('hide-quick) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -300,7 +301,7 @@ (go hud-hidden) ) (('hide) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (go hud-leaving 10) ) @@ -356,7 +357,7 @@ (go hud-in) ) (when (movie?) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -382,14 +383,14 @@ (-> hud-arriving event) :code (behavior () - (set! (-> self trigger-time) (the-as uint (-> *display* base-frame-counter))) - (while (and (< (- (-> *display* base-frame-counter) (the-as int (-> self trigger-time))) 600) (not (movie?))) + (set! (-> self trigger-time) (-> *display* base-frame-counter)) + (while (and (< (- (-> *display* base-frame-counter) (-> self trigger-time)) (seconds 2)) (not (movie?))) (set! (-> self offset) 0) (dummy-17 self) (suspend) ) (when (movie?) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -417,7 +418,7 @@ ) (dummy-17 self) (when (movie?) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -451,7 +452,7 @@ (set! (-> self deactivate-when-hidden) #f) (set! (-> self y-offset) 0) (set! (-> self next-y-offset) 0) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (logior! (-> self mask) (process-mask menu)) (logclear! (-> self mask) (process-mask pause progress)) (init-particles! self arg0) diff --git a/goal_src/engine/ui/progress-h.gc b/goal_src/engine/ui/progress-h.gc index 908992bfdb..a535821a23 100644 --- a/goal_src/engine/ui/progress-h.gc +++ b/goal_src/engine/ui/progress-h.gc @@ -173,8 +173,8 @@ (total-nb-of-orbs int32 :offset-assert 284) (total-nb-of-buzzers int32 :offset-assert 288) (card-info mc-slot-info :offset-assert 292) - (last-option-index-change int64 :offset-assert 296) - (video-mode-timeout int64 :offset-assert 304) + (last-option-index-change time-frame :offset-assert 296) + (video-mode-timeout time-frame :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) diff --git a/goal_src/engine/ui/progress/progress-draw.gc b/goal_src/engine/ui/progress/progress-draw.gc index 8fd8ef454e..e8479fba94 100644 --- a/goal_src/engine/ui/progress/progress-draw.gc +++ b/goal_src/engine/ui/progress/progress-draw.gc @@ -728,7 +728,7 @@ (set! (-> a0-28 color) (font-color blue-white)) ) (cond - ((or (>= 600 (- (-> *display* real-frame-counter) (-> obj last-option-index-change))) + ((or (>= (seconds 2) (- (-> *display* real-frame-counter) (-> obj last-option-index-change))) (or (< (mod (- (-> *display* real-frame-counter) (-> obj last-option-index-change)) 1200) 600) (!= (-> obj option-index) s1-0) (-> obj in-transition) diff --git a/goal_src/engine/ui/progress/progress.gc b/goal_src/engine/ui/progress/progress.gc index 4e9ddf5192..a3501c9618 100644 --- a/goal_src/engine/ui/progress/progress.gc +++ b/goal_src/engine/ui/progress/progress.gc @@ -20,7 +20,7 @@ (center-x-backup int32 :offset-assert 52) (center-y-backup int32 :offset-assert 56) (aspect-ratio-backup symbol :offset-assert 60) - (last-slider-sound int64 :offset-assert 64) + (last-slider-sound time-frame :offset-assert 64) ) :method-count-assert 9 :size-assert #x48 @@ -180,13 +180,12 @@ (let* ((cur-lev (-> *target* current-level)) (lev-idx (+ (-> cur-lev info index) -1)) ) - (if (and - (>= lev-idx 0) - (< lev-idx (-> *level-task-data-remap* length)) - (zero? (-> *game-info* level-opened (-> *level-task-data-remap* lev-idx))) - (or (= *kernel-boot-message* 'play) (= (-> cur-lev nickname) 'mis)) ;; only allow misty in demo! - ) - (set! (-> *game-info* level-opened (-> *level-task-data-remap* lev-idx)) 1) + (if (and (>= lev-idx 0) + (< lev-idx (-> *level-task-data-remap* length)) + (zero? (-> *game-info* level-opened (-> *level-task-data-remap* lev-idx))) + (or (= *kernel-boot-message* 'play) (= (-> cur-lev nickname) 'mis)) + ) + (set! (-> *game-info* level-opened (-> *level-task-data-remap* lev-idx)) (the-as uint 1)) ) ) ) @@ -869,10 +868,10 @@ (= v1-2 (progress-screen money)) (= v1-2 (progress-screen buzzer)) (and (or (= a1-1 (progress-screen fuel-cell)) - (= a1-1 (progress-screen money)) - (= a1-1 (progress-screen buzzer)) - (= a1-1 (progress-screen title)) - ) + (= a1-1 (progress-screen money)) + (= a1-1 (progress-screen buzzer)) + (= a1-1 (progress-screen title)) + ) (or (= v1-2 (progress-screen settings)) (= v1-2 (progress-screen game-settings)) (= v1-2 (progress-screen graphic-settings)) @@ -1258,7 +1257,7 @@ ) ) (when v1-34 - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) 1024 0 0 1 #t) ) @@ -1299,7 +1298,7 @@ ) ) (when v1-69 - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) 1024 0 0 1 #t) ) @@ -1319,7 +1318,7 @@ (when (not (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)))) (set! s4-5 #t) (if (= (-> s5-0 (-> obj option-index) value-to-modify) (&-> *setting-control* current vibration)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) ) ) (set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify))) #t) @@ -1337,8 +1336,8 @@ (+! (-> (the-as (pointer uint64) (-> s5-0 (-> obj option-index) value-to-modify))) -1) (set! (-> (the-as (pointer int64) (-> s5-0 (-> obj option-index) value-to-modify))) (if (and (zero? (scf-get-territory)) - (not (and (= *progress-cheat* 'language) (cpad-hold? 0 l2) (cpad-hold? 0 r2))) - ) + (not (and (= *progress-cheat* 'language) (cpad-hold? 0 l2) (cpad-hold? 0 r2))) + ) 4 5 ) @@ -1395,7 +1394,7 @@ (set! f30-0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))) ) ) - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) (the int (* 10.24 f30-0)) 0 0 1 #t) ) @@ -1426,8 +1425,8 @@ ) ((1) (let ((v1-243 (if (and (zero? (scf-get-territory)) - (not (and (= *progress-cheat* 'language) (cpad-hold? 0 l2) (cpad-hold? 0 r2))) - ) + (not (and (= *progress-cheat* 'language) (cpad-hold? 0 l2) (cpad-hold? 0 r2))) + ) 4 5 ) @@ -1494,7 +1493,7 @@ (set! f30-1 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))) ) ) - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) (the int (* 10.24 f30-1)) 0 0 1 #t) ) @@ -1924,8 +1923,8 @@ ) ) (if (and (= (-> self display-state) (-> self next-display-state)) - (= (-> self display-level-index) (-> self next-level-index)) - ) + (= (-> self display-level-index) (-> self next-level-index)) + ) (set! (-> self transition-offset) (seekl (-> self transition-offset) @@ -1956,10 +1955,10 @@ (when (and (not (handle->process (-> *game-info* auto-save-proc))) (or (-> self force-transition) (-> self in-transition)) (>= (-> self transition-offset) (if (and (zero? (-> self level-transition)) - (nonzero? (-> self next-display-state)) - (!= (-> self next-display-state) 1) - (!= (-> self next-display-state) 2) - ) + (nonzero? (-> self next-display-state)) + (!= (-> self next-display-state) 1) + (!= (-> self next-display-state) 2) + ) 512 256 ) @@ -2123,7 +2122,7 @@ (draw-options self 190 0 0.82) ) (((progress-screen pal-now-60hz)) - (when (< 3000 (- (-> *display* real-frame-counter) (-> self video-mode-timeout))) + (when (< (seconds 10) (- (-> *display* real-frame-counter) (-> self video-mode-timeout))) (set! (-> *progress-state* video-mode-choice) 'pal) (set! (-> *setting-control* default video-mode) (-> *progress-state* video-mode-choice)) (set! (-> self next-display-state) (progress-screen invalid)) diff --git a/goal_src/engine/util/smush-control-h.gc b/goal_src/engine/util/smush-control-h.gc index 77ea0f91d3..08d301583f 100644 --- a/goal_src/engine/util/smush-control-h.gc +++ b/goal_src/engine/util/smush-control-h.gc @@ -11,7 +11,7 @@ ;; - the amplitude is additionally linearly scaled to go to zero over the duration. (deftype smush-control (structure) - ((start-time int64 :offset-assert 0) + ((start-time time-frame :offset-assert 0) (period float :offset-assert 8) (duration float :offset-assert 12) (amp float :offset-assert 16) diff --git a/goal_src/engine/util/sync-info-h.gc b/goal_src/engine/util/sync-info-h.gc index d8108ea481..c61a198368 100644 --- a/goal_src/engine/util/sync-info-h.gc +++ b/goal_src/engine/util/sync-info-h.gc @@ -66,7 +66,7 @@ (max-time int32 :offset-assert 4) (max-val float :offset-assert 8) (timer int32 :offset-assert 12) - (start-time int64 :offset-assert 16) + (start-time time-frame :offset-assert 16) (value float :offset-assert 24) ) :pack-me @@ -122,7 +122,7 @@ (xz-max float :offset-assert 8) (y-max float :offset-assert 12) (timer int32 :offset-assert 16) - (start-time int64 :offset-assert 24) + (start-time time-frame :offset-assert 24) (value vector :inline :offset-assert 32) ) :method-count-assert 13 diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index ae4326ca0c..bab982df2a 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -551,6 +551,13 @@ `(fmax (fmin ,val ,maxval) ,minval) ) +(defmacro maxmin (val minval maxval) + `(min (max ,val ,maxval) ,minval) + ) +(defmacro fmaxmin (val minval maxval) + `(fmin (fmax ,val ,maxval) ,minval) + ) + (defmacro &+! (val amount) `(set! ,val (&+ ,val ,amount)) ) diff --git a/goal_src/levels/beach/beach-obs.gc b/goal_src/levels/beach/beach-obs.gc index 3b0569f281..295900cadd 100644 --- a/goal_src/levels/beach/beach-obs.gc +++ b/goal_src/levels/beach/beach-obs.gc @@ -701,7 +701,7 @@ (apply-all (-> self link) actor-link-subtask-complete-hook (& sv-128)) (when sv-128 (let ((s5-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-2) 150) + (until (>= (- (-> *display* base-frame-counter) s5-2) (seconds 0.5)) (suspend) ) ) @@ -885,7 +885,7 @@ ) :post (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (go flying-rock-idle) ) (ja-post) @@ -1098,10 +1098,10 @@ ;; WARN: Expression building failed: Function (method 20 flutflutegg) has a return type of none, but the expression builder found a return statement. (defmethod dummy-20 flutflutegg ((obj flutflutegg) (arg0 float) (arg1 float) (arg2 float)) - (if (< (- (-> *display* base-frame-counter) (-> obj last-impulse-time)) 150) + (if (< (- (-> *display* base-frame-counter) (the-as time-frame (-> obj last-impulse-time))) (seconds 0.5)) (return 0) ) - (set! (-> obj last-impulse-time) (-> *display* base-frame-counter)) + (set! (-> obj last-impulse-time) (the-as int (-> *display* base-frame-counter))) (+! (-> obj vel) arg0) (inc-xy-vel! (-> obj wobbler) arg1 arg2) 0 @@ -1156,7 +1156,7 @@ ) :trans (behavior () - (let* ((gp-0 (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) 900 368640.0 self)) + (let* ((gp-0 (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) (seconds 3) 368640.0 self)) (v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-3 (the-as number (logior #x3f800000 v1-2))) (f30-0 (+ -1.0 (the-as float v1-3))) @@ -1192,7 +1192,7 @@ ) ((< (-> gp-0 y) -24576.0) ) - ((< (- (-> *display* base-frame-counter) (-> self ambient last-ambient-time)) 9000) + ((< (- (-> *display* base-frame-counter) (-> self ambient last-ambient-time)) (seconds 30)) ) ((< 0.8 f30-0) (play-ambient (-> self ambient) "BIR-AM07" #f (-> self root-override trans)) @@ -1228,7 +1228,7 @@ (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (the-as object - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (= arg2 'attack) (or (= (-> arg3 param 1) 'punch) (= (-> arg3 param 1) 'spin) (= (-> arg3 param 1) 'spin-air)) (!= (-> self incomming-attack-id) (-> arg3 param 2)) @@ -1305,7 +1305,7 @@ (camera-change-to "camera-135" 0 #f) (camera-look-at (the-as pair (ppointer->process (-> self parent))) (the-as uint 9)) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 1200) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 4)) (suspend) ) ) @@ -1345,7 +1345,7 @@ (quaternion*! (-> self root-override quat) (-> self root-override quat) a2-6) ) (suspend) - (set! v1-25 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (set! v1-25 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (logtest? (-> self root-override status) 1) ) ) @@ -1407,7 +1407,7 @@ ) (let ((gp-2 (-> *display* base-frame-counter))) (while (not (task-closed? (game-task beach-flutflut) (task-status need-reward-speech))) - (if (>= (- (-> *display* base-frame-counter) gp-2) 3000) + (if (>= (- (-> *display* base-frame-counter) gp-2) (seconds 10)) (level-hint-spawn (game-text-id beach-flutflutegg-hint) "sksp0029" diff --git a/goal_src/levels/beach/beach-rocks.gc b/goal_src/levels/beach/beach-rocks.gc index 97e4060600..27cfcca739 100644 --- a/goal_src/levels/beach/beach-rocks.gc +++ b/goal_src/levels/beach/beach-rocks.gc @@ -242,7 +242,7 @@ (deftype beach-rock (process-drawable) ((root-override collide-shape-moving :offset 112) (trigger basic :offset-assert 176) - (movie-start uint64 :offset-assert 184) + (movie-start time-frame :offset-assert 184) (part-falling sparticle-launch-control :offset-assert 192) (part-landing sparticle-launch-control :offset-assert 196) (prev-frame float :offset-assert 200) @@ -400,7 +400,7 @@ ) ) (close-specific-task! (-> self entity extra perm task) (task-status need-reminder)) - (set! (-> self movie-start) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self movie-start) (-> *display* base-frame-counter)) (spool-push *art-control* "lrocklrg-falling" 0 self -1.0) (ja-play-spooled-anim (new 'static 'spool-anim diff --git a/goal_src/levels/beach/bird-lady.gc b/goal_src/levels/beach/bird-lady.gc index b72a8ef89c..722d4798d6 100644 --- a/goal_src/levels/beach/bird-lady.gc +++ b/goal_src/levels/beach/bird-lady.gc @@ -134,7 +134,7 @@ ) (defmethod TODO-RENAME-43 bird-lady ((obj bird-lady)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/beach/lurkercrab.gc b/goal_src/levels/beach/lurkercrab.gc index 138bc562f3..15b0620348 100644 --- a/goal_src/levels/beach/lurkercrab.gc +++ b/goal_src/levels/beach/lurkercrab.gc @@ -226,7 +226,7 @@ nav-enemy-default-event-handler (set! (-> gp-0 frame-num) (ja-aframe 1.0 0)) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 900) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 3)) (suspend) ) ) @@ -250,7 +250,7 @@ nav-enemy-default-event-handler (set! (-> gp-4 frame-num) (ja-aframe 19.0 0)) ) (let ((gp-5 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-5) 300) + (until (>= (- (-> *display* base-frame-counter) gp-5) (seconds 1)) (suspend) ) ) @@ -376,7 +376,7 @@ nav-enemy-default-event-handler (set! (-> gp-1 frame-num) (ja-aframe 1.0 0)) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 600) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 2)) (suspend) ) ) @@ -677,7 +677,7 @@ nav-enemy-default-event-handler (the-as art-joint-anim (-> self draw art-group data (-> self nav-info victory-anim))) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (let ((v1-7 (-> self skel root-channel 0))) (set! (-> v1-7 num-func) num-func-identity) (set! (-> v1-7 frame-num) 0.0) @@ -721,12 +721,12 @@ nav-enemy-default-event-handler ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 75) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.25)) (suspend) ) ) (let ((gp-3 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-3) 30) + (until (>= (- (-> *display* base-frame-counter) gp-3) (seconds 0.1)) (suspend) ) ) @@ -758,31 +758,31 @@ nav-enemy-default-event-handler :die-anim 11 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 5.0) + :run-travel-speed (meters 5) :run-rotate-speed (degrees 999.99994) - :run-acceleration (meters 12.0) + :run-acceleration (meters 12) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 999.99994) - :walk-acceleration (meters 12.0) + :walk-acceleration (meters 12) :walk-turn-time (seconds 0.1) :attack-shove-back (meters 1.2) :attack-shove-up (meters 1.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 1.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 25.0) - :stop-chase-distance (meters 35.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 25) + :stop-chase-distance (meters 35) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 4.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/beach/lurkerpuppy.gc b/goal_src/levels/beach/lurkerpuppy.gc index bef5161f65..dfa78fa277 100644 --- a/goal_src/levels/beach/lurkerpuppy.gc +++ b/goal_src/levels/beach/lurkerpuppy.gc @@ -143,7 +143,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 1456355.5) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) (let ((f30-0 (rand-vu-float-range 0.8 1.2))) (while #t @@ -211,7 +211,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (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 5))) @@ -336,32 +336,32 @@ nav-enemy-default-event-handler :die-anim 11 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 5.0) + :run-travel-speed (meters 5) :run-rotate-speed (degrees 3999.9998) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.15) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 1999.9999) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 1.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 6.0 :jump-anim-start-frame 3.5 :jump-land-anim-end-frame 14.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.5) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/beach/lurkerworm.gc b/goal_src/levels/beach/lurkerworm.gc index 24678b6cce..d2a99f39c9 100644 --- a/goal_src/levels/beach/lurkerworm.gc +++ b/goal_src/levels/beach/lurkerworm.gc @@ -336,7 +336,7 @@ lurkerworm-default-post-behavior :code (behavior () (while #t - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) *target* (>= 81920.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) ) @@ -365,7 +365,7 @@ lurkerworm-default-post-behavior (while #t (spawn (-> self part) (-> self root-override trans)) (particle-effect self) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (if (and *target* (>= 81920.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))) (go lurkerworm-rise) (go lurkerworm-idle) diff --git a/goal_src/levels/beach/mayor.gc b/goal_src/levels/beach/mayor.gc index 00845dfdf7..b219a06d99 100644 --- a/goal_src/levels/beach/mayor.gc +++ b/goal_src/levels/beach/mayor.gc @@ -649,7 +649,7 @@ ) (defmethod TODO-RENAME-43 mayor ((obj mayor)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/beach/pelican.gc b/goal_src/levels/beach/pelican.gc index 6911df9f2a..09e0106dd9 100644 --- a/goal_src/levels/beach/pelican.gc +++ b/goal_src/levels/beach/pelican.gc @@ -26,7 +26,7 @@ (define *PELICAN-bank* (new 'static 'pelican-bank - :circle-speed (meters 16.0) + :circle-speed (meters 16) :dive-time (seconds 2) :to-nest0-time (seconds 4) :to-nest1-time (seconds 8) @@ -54,7 +54,7 @@ (path-to-nest1 curve-control :offset 248) (path-to-nest2 curve-control :offset 252) (path-cache curve-control :offset-assert 256) - (time-cache uint64 :offset-assert 264) + (time-cache time-frame :offset-assert 264) (path-pos float :offset-assert 272) (path-speed float :offset-assert 276) (path-max float :offset-assert 280) @@ -71,9 +71,9 @@ :flag-assert #x1400f00160 (:states pelican-circle - (pelican-dive path-control curve-control uint) + (pelican-dive path-control curve-control time-frame) (pelican-explode symbol) - (pelican-fly-to-end path-control int) + (pelican-fly-to-end path-control time-frame) pelican-from-nest pelican-spit (pelican-to-nest path-control int) @@ -124,7 +124,7 @@ ) (if arg4 (set-heading-vec-clear-roll-pitch! (-> self root-override) s3-0) - (seek-toward-heading-vec! (-> self root-override) s3-0 arg0 arg1) + (seek-toward-heading-vec! (-> self root-override) s3-0 arg0 (the-as time-frame arg1)) ) ) ) @@ -372,7 +372,7 @@ (logior! (-> v1-24 status) (entity-perm-status user-set-from-cstage)) (set! (-> v1-24 user-int8 0) 2) ) - (go pelican-dive (-> self path-dive0) (-> self path-to-nest0) (the-as uint (-> *PELICAN-bank* to-nest0-time))) + (go pelican-dive (-> self path-dive0) (-> self path-to-nest0) (-> *PELICAN-bank* to-nest0-time)) ) (none) ) @@ -406,7 +406,7 @@ ) ) :enter - (behavior ((arg0 path-control) (arg1 curve-control) (arg2 uint)) + (behavior ((arg0 path-control) (arg1 curve-control) (arg2 time-frame)) (init! (-> self query) (the-as string #f) 40 150 25 #t (the-as string #f)) (set! (-> self state-object) #f) (set! (-> self state-time) (-> *display* base-frame-counter)) @@ -442,7 +442,7 @@ :trans (behavior () (if (not (handle->process (-> self fuel-cell))) - (go pelican-fly-to-end (-> self path-to-nest2) (the-as int (-> *PELICAN-bank* run-away-time))) + (go pelican-fly-to-end (-> self path-to-nest2) (-> *PELICAN-bank* run-away-time)) ) (pelican-path-update 364088.88 30 0.0 0.0 #t) (set! (-> self path-pos) @@ -454,7 +454,7 @@ (none) ) :code - (behavior ((arg0 path-control) (arg1 curve-control) (arg2 uint)) + (behavior ((arg0 path-control) (arg1 curve-control) (arg2 time-frame)) (ja-channel-push! 1 60) (let ((gp-0 (-> self skel root-channel 0))) (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 7))) @@ -657,7 +657,7 @@ (move-to-point! (-> self root-override) gp-0) ) (do-push-aways! (-> self root-override)) - (seek-toward-heading-vec! (-> self root-override) (-> self path-vector) 131072.0 300) + (seek-toward-heading-vec! (-> self root-override) (-> self path-vector) 131072.0 (seconds 1)) (spool-push *art-control* "pelican-spit-ext" 0 self -99.0) (none) ) @@ -933,7 +933,7 @@ (seek (-> self path-pos) (-> self path-max) (* (-> self path-speed) (-> *display* seconds-per-frame))) ) (if (= (-> self path-pos) (-> self path-max)) - (go pelican-dive (-> self path-dive1) (-> self path-to-nest1) (the-as uint (-> *PELICAN-bank* to-nest1-time))) + (go pelican-dive (-> self path-dive1) (-> self path-to-nest1) (-> *PELICAN-bank* to-nest1-time)) ) (none) ) @@ -951,7 +951,7 @@ (defstate pelican-fly-to-end (pelican) :enter - (behavior ((arg0 path-control) (arg1 int)) + (behavior ((arg0 path-control) (arg1 time-frame)) (process-entity-status! self (entity-perm-status complete) #t) (let ((v1-2 (-> self entity extra perm))) (logior! (-> v1-2 status) (entity-perm-status user-set-from-cstage)) @@ -993,7 +993,7 @@ (none) ) :code - (behavior ((arg0 path-control) (arg1 int)) + (behavior ((arg0 path-control) (arg1 time-frame)) (pelican-fly (the-as (function pelican int) (lambda () 1)) (lambda ((arg0 pelican)) (if (and (>= (-> arg0 path-pos) 4.0) (>= 6.0 (-> arg0 path-pos))) diff --git a/goal_src/levels/beach/sculptor.gc b/goal_src/levels/beach/sculptor.gc index 3820cba386..8d83c63748 100644 --- a/goal_src/levels/beach/sculptor.gc +++ b/goal_src/levels/beach/sculptor.gc @@ -201,7 +201,7 @@ ) (defmethod TODO-RENAME-43 sculptor ((obj sculptor)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/beach/seagull.gc b/goal_src/levels/beach/seagull.gc index 23a86a7f29..633a39642a 100644 --- a/goal_src/levels/beach/seagull.gc +++ b/goal_src/levels/beach/seagull.gc @@ -51,7 +51,7 @@ (scared int32 :offset-assert 204) (temp-heading float :offset-assert 208) (temp-heading-time int32 :offset-assert 212) - (part-time uint64 :offset-assert 216) + (part-time time-frame :offset-assert 216) (thrust float :offset-assert 224) (teleport symbol :offset-assert 228) ) @@ -90,10 +90,10 @@ (birds-at-waterfall int32 :offset-assert 416) (target vector :inline :offset-assert 432) (targetnum int32 :offset-assert 448) - (alert-time uint64 :offset-assert 456) + (alert-time time-frame :offset-assert 456) (teleport-frames int32 :offset-assert 464) (cam-tracker uint64 :offset-assert 472) - (state-time uint64 :offset-assert 480) + (state-time time-frame :offset-assert 480) (squall ambient-sound :offset-assert 488) (max-lift float :offset-assert 492) ) @@ -651,7 +651,7 @@ (defstate seagull-takeoff (seagull) :trans (behavior () - (when (< (+ (-> *display* base-frame-counter) -600) (the-as int (-> self part-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -2)) (-> self part-time)) (-> self part) (-> self root-override root-prim prim-core) ) @@ -659,7 +659,7 @@ ) :code (behavior () - (set! (-> self part-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self part-time) (-> *display* base-frame-counter)) (let ((gp-0 (-> self skel root-channel 0))) (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) (set! (-> gp-0 param 0) (ja-aframe 4.0 0)) @@ -722,7 +722,7 @@ (defstate seagull-flying (seagull) :trans (behavior () - (when (< (+ (-> *display* base-frame-counter) -600) (the-as int (-> self part-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -2)) (-> self part-time)) (-> self part) (-> self root-override root-prim prim-core) ) @@ -929,7 +929,7 @@ (defstate seagull-soaring (seagull) :trans (behavior () - (when (< (+ (-> *display* base-frame-counter) -600) (the-as int (-> self part-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -2)) (-> self part-time)) (-> self part) (-> self root-override root-prim prim-core) ) @@ -1063,7 +1063,7 @@ (go seagull-flying) ) (when (< (-> self root-override trans y) 204800.0) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (let* ((f30-1 0.99) (v1-67 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-68 (the-as number (logior #x3f800000 v1-67))) @@ -1341,7 +1341,7 @@ ) (defmethod play-hint seagullflock ((obj seagullflock) (arg0 int)) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> obj alert-time))) 1500) + (when (>= (- (-> *display* base-frame-counter) (-> obj alert-time)) (seconds 5)) (eval-path-curve-div! (-> obj path) (-> obj target) (the float (-> obj targetnum)) 'interp) (let ((f0-2 4096.0) (v1-6 (-> obj targetnum)) @@ -1416,7 +1416,7 @@ (set! (-> obj teleport-frames) 1500) ) (sound-play-by-name (static-sound-name "seagull-takeoff") (new-sound-id) 1024 0 0 1 #t) - (set! (-> obj alert-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj alert-time) (-> *display* base-frame-counter)) ) (none) ) @@ -1438,7 +1438,7 @@ (t9-1 (function process-tree event-message-block object)) ) (aybabtu 2) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (-> self link next) (until (t9-1 a0-2 a1-0) (suspend) @@ -1454,7 +1454,7 @@ ) ) ) - (until (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) (-> self teleport-frames)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self teleport-frames)) (suspend) ) (close-specific-task! (game-task beach-seagull) (task-status need-reminder)) @@ -1462,7 +1462,7 @@ (set! (-> self bird v1-13 0 teleport) #t) ) (let ((gp-0 (-> self link next))) - (set-blackout-frames 600) + (set-blackout-frames (seconds 2)) (suspend) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-6 from) self) diff --git a/goal_src/levels/citadel/citadel-obs.gc b/goal_src/levels/citadel/citadel-obs.gc index a9048b04c2..ccf3bcd714 100644 --- a/goal_src/levels/citadel/citadel-obs.gc +++ b/goal_src/levels/citadel/citadel-obs.gc @@ -1506,7 +1506,7 @@ ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (while (< (- (-> *display* base-frame-counter) gp-1) 150) + (while (< (- (-> *display* base-frame-counter) gp-1) (seconds 0.5)) (if (movie?) (set! gp-1 (-> *display* base-frame-counter)) ) diff --git a/goal_src/levels/citadel/citadel-sages.gc b/goal_src/levels/citadel/citadel-sages.gc index c3ad2239b7..1472187e3b 100644 --- a/goal_src/levels/citadel/citadel-sages.gc +++ b/goal_src/levels/citadel/citadel-sages.gc @@ -590,7 +590,7 @@ (if (-> obj beam-on) (return #f) ) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-7 (the-as number (logior #x3f800000 v1-6))) (f0-2 (+ -1.0 (the-as float v1-7))) @@ -709,7 +709,7 @@ (if (-> obj beam-on) (return #f) ) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-7 (the-as number (logior #x3f800000 v1-6))) (f0-2 (+ -1.0 (the-as float v1-7))) @@ -823,7 +823,7 @@ (if (-> obj beam-on) (return #f) ) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-7 (the-as number (logior #x3f800000 v1-6))) (f0-2 (+ -1.0 (the-as float v1-7))) @@ -1159,7 +1159,7 @@ ) (cond ((= (-> self which-movie) 1) - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) ) ((= (-> self which-movie) 2) (start 'play (get-continue-by-name *game-info* "citadel-elevator")) diff --git a/goal_src/levels/citadel/citb-bunny.gc b/goal_src/levels/citadel/citb-bunny.gc index ba198734b4..c44db07cdb 100644 --- a/goal_src/levels/citadel/citb-bunny.gc +++ b/goal_src/levels/citadel/citb-bunny.gc @@ -42,30 +42,30 @@ :die-anim 9 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :shadow-size (meters 2.0) + :shadow-size (meters 2) :notice-nav-radius (meters 1.2) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 130.0) - :stop-chase-distance (meters 150.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 130) + :stop-chase-distance (meters 150) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 31.0 :jump-anim-start-frame 11.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.6 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) :shadow-min-y (meters -3.5) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/citadel/citb-drop-plat-CIT.gc b/goal_src/levels/citadel/citb-drop-plat-CIT.gc index e1d46ab0ef..fc7cdf70d2 100644 --- a/goal_src/levels/citadel/citb-drop-plat-CIT.gc +++ b/goal_src/levels/citadel/citb-drop-plat-CIT.gc @@ -53,8 +53,8 @@ (spin-angle float :offset-assert 192) (spin-speed float :offset-assert 196) (interp float :offset-assert 200) - (duration int64 :offset-assert 208) - (delay int64 :offset-assert 216) + (duration time-frame :offset-assert 208) + (delay time-frame :offset-assert 216) (color int8 :offset-assert 224) ) :heap-base #x80 @@ -330,7 +330,7 @@ (none) ) -(defbehavior drop-plat-init-by-other drop-plat ((arg0 vector) (arg1 int) (arg2 int) (arg3 int)) +(defbehavior drop-plat-init-by-other drop-plat ((arg0 vector) (arg1 time-frame) (arg2 time-frame) (arg3 int)) (set! (-> self color) arg3) (set! (-> self delay) arg1) (set! (-> self duration) arg2) @@ -366,8 +366,8 @@ (x-spacing float :offset-assert 256) (z-spacing float :offset-assert 260) (idle-distance float :offset-assert 264) - (duration int64 :offset-assert 272) - (drop-time int64 :offset-assert 280) + (duration time-frame :offset-assert 272) + (drop-time time-frame :offset-assert 280) ) :heap-base #xb0 :method-count-assert 20 @@ -415,28 +415,34 @@ (set! sv-64 (the int (* 150.0 (rand-vu)))) (set! sv-48 (get-process *default-dead-pool* drop-plat #x4000)) (set! (-> self child-array data s1-0) - (ppointer->handle - (when sv-48 - (let ((t9-6 (method-of-type drop-plat activate))) - (t9-6 (the-as drop-plat sv-48) self 'drop-plat (the-as pointer #x70004000)) - ) - (let ((t9-7 run-function-in-process) - (a0-8 sv-48) - (a1-5 drop-plat-init-by-other) - (a2-4 gp-0) - (t0-0 (-> self duration)) - ) - ((the-as (function process function vector int int int none) t9-7) a0-8 a1-5 a2-4 sv-64 t0-0 s0-0) - ) - (-> sv-48 ppointer) - ) - ) + (ppointer->handle (when sv-48 + (let ((t9-6 (method-of-type drop-plat activate))) + (t9-6 (the-as drop-plat sv-48) self 'drop-plat (the-as pointer #x70004000)) + ) + (let ((t9-7 run-function-in-process) + (a0-8 sv-48) + (a1-5 drop-plat-init-by-other) + (a2-4 gp-0) + (t0-0 (-> self duration)) + ) + ((the-as (function process function vector int int int none) t9-7) + a0-8 + a1-5 + a2-4 + sv-64 + (the-as int t0-0) + s0-0 + ) + ) + (-> sv-48 ppointer) + ) + ) ) ) ) ) (let ((s2-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s2-1) 36) + (until (>= (- (-> *display* base-frame-counter) s2-1) (seconds 0.12)) (suspend) ) ) @@ -501,7 +507,7 @@ (let ((v1-0 arg2)) (the-as object (cond ((= v1-0 'player-stepped) - (when (>= (- (-> *display* base-frame-counter) (-> self drop-time)) 60) + (when (>= (- (-> *display* base-frame-counter) (-> self drop-time)) (seconds 0.2)) (set! (-> self drop-time) (-> *display* base-frame-counter)) (citb-drop-plat-drop-children (the-as int (-> arg3 param 0))) ) @@ -518,7 +524,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (citb-drop-plat-spawn-children) (while #t - (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (+ (-> self duration) 600)) + (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (+ (-> self duration) (seconds 2))) (or (not *target*) (< (-> self idle-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans))) ) @@ -552,7 +558,7 @@ (set! (-> obj x-spacing) 16384.0) (set! (-> obj z-spacing) 16384.0) (set! (-> obj idle-distance) (+ 40960.0 (* 0.5 (the float (-> obj z-count)) (-> obj z-spacing)))) - (set! (-> obj duration) (the int (* 300.0 (+ 2.0 (the float (-> obj z-count)))))) + (set! (-> obj duration) (the-as time-frame (the int (* 300.0 (+ 2.0 (the float (-> obj z-count))))))) (let ((f0-7 (res-lump-float arg0 'rotoffset))) (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-7) ) diff --git a/goal_src/levels/citadel/citb-plat.gc b/goal_src/levels/citadel/citb-plat.gc index d70985a839..4f0de9a552 100644 --- a/goal_src/levels/citadel/citb-plat.gc +++ b/goal_src/levels/citadel/citb-plat.gc @@ -298,10 +298,10 @@ ) (deftype citb-stair-plat (citb-base-plat) - ((idle-height float :offset-assert 180) - (rise-height float :offset-assert 184) - (delay uint64 :offset-assert 192) - (rise symbol :offset-assert 200) + ((idle-height float :offset-assert 180) + (rise-height float :offset-assert 184) + (delay time-frame :offset-assert 192) + (rise symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 25 @@ -336,7 +336,7 @@ (logclear! (-> self draw status) (draw-status drwf01)) (set-vector! (-> self draw color-mult) 0.0 0.0 0.0 1.0) (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self delay))) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (-> self delay)) (ja-post) (suspend) ) @@ -386,7 +386,9 @@ (set! (-> obj idle-height) (+ -409600.0 (-> obj rise-height))) (set! (-> obj root-override trans y) (-> obj idle-height)) (set! (-> obj rise) #f) - (set! (-> obj delay) (the-as uint (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0))))) + (set! (-> obj delay) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0)))) + ) (let ((f0-7 1.5)) (set-vector! (-> obj root-override scale) f0-7 f0-7 f0-7 1.0) (set! (-> obj root-override root-prim local-sphere w) @@ -413,24 +415,24 @@ (define *citb-chain-plat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 5 :mass 2.0 - :inertial-tensor-x (meters 10.0) - :inertial-tensor-y (meters 5.0) - :inertial-tensor-z (meters 10.0) - :idle-distance (meters 70.0) + :inertial-tensor-x (meters 10) + :inertial-tensor-y (meters 5) + :inertial-tensor-z (meters 10) + :idle-distance (meters 70) :platform #t :sound-name "blue-eco-on" ) @@ -492,7 +494,7 @@ :virtual #t :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (if (and (and *target* (>= (-> self info idle-distance) (vector-vector-distance (-> self root-overlay trans) (-> *target* control trans)) @@ -541,7 +543,7 @@ ) (send-event *target* 'query 'powerup 3) ) - (when (< (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (when (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (if (rand-vu-percent? 0.05) (spawn-projectile-blue *target*) ) @@ -585,7 +587,7 @@ (set! (-> gp-0 quad) (-> self root-overlay trans quad)) (quaternion-copy! s5-0 (-> self root-overlay quat)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 75) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) (let ((f30-0 (* 0.013333334 (the float (- (-> *display* base-frame-counter) (-> self state-time)))))) (quaternion-slerp! (-> self root-overlay quat) s5-0 (-> self orig-quat) f30-0) (vector-lerp! (-> self root-overlay trans) gp-0 (-> self orig-trans) f30-0) @@ -1394,6 +1396,7 @@ ) (set! (-> obj allow-auto-kill) #f) (process-entity-status! obj (entity-perm-status bit-3) #t) + 0 (none) ) diff --git a/goal_src/levels/common/babak.gc b/goal_src/levels/common/babak.gc index edcee86660..1d104079a5 100644 --- a/goal_src/levels/common/babak.gc +++ b/goal_src/levels/common/babak.gc @@ -137,7 +137,7 @@ :virtual #t :code (behavior () - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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)) @@ -238,7 +238,7 @@ :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) @@ -347,33 +347,33 @@ :die-anim 12 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :proximity-notice-distance (meters 20) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/common/basebutton.gc b/goal_src/levels/common/basebutton.gc index 4ceb573e10..5501b8c7bf 100644 --- a/goal_src/levels/common/basebutton.gc +++ b/goal_src/levels/common/basebutton.gc @@ -550,13 +550,13 @@ (else (load-state-want-levels (-> self level) (-> arg1 load-name)) (while (or (not (member (level-status *level* (-> arg1 load-name)) '(loaded active))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) ) (suspend) ) ) ) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (start 'play (get-continue-by-name *game-info* (-> *warp-info* arg0))) (logior! (-> self mask) (process-mask sleep)) (suspend) @@ -699,7 +699,7 @@ (set! (-> gp-2 y) 0.0) (send-event *target* 'sidekick #f) (when (and (or (< (vector-dot gp-2 (-> self control transv)) 0.0) (-> self control unknown-spoolanim00)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) ) (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (-> *display* seconds-per-frame))) (set! (-> self control transv x) (* 0.95 (-> self control transv x))) diff --git a/goal_src/levels/common/battlecontroller.gc b/goal_src/levels/common/battlecontroller.gc index 38e494a73c..13b9dcdb1c 100644 --- a/goal_src/levels/common/battlecontroller.gc +++ b/goal_src/levels/common/battlecontroller.gc @@ -22,12 +22,12 @@ (deftype battlecontroller-creature-type (structure) - ((type2 type :offset-assert 0) - (percent float :offset-assert 4) - (pickup-percent float :offset-assert 8) - (pickup-type int32 :offset-assert 12) - (max-pickup-count int8 :offset-assert 16) - (pickup-count int8 :offset-assert 17) + ((type2 type :offset-assert 0) + (percent float :offset-assert 4) + (pickup-percent float :offset-assert 8) + (pickup-type pickup-type :offset-assert 12) + (max-pickup-count int8 :offset-assert 16) + (pickup-count int8 :offset-assert 17) ) :allow-misaligned :method-count-assert 9 @@ -46,7 +46,7 @@ (spawner-count int8 :offset-assert 203) (creature-type-count int8 :offset-assert 204) (spawner-array battlecontroller-spawner 8 :inline :offset-assert 208) - (spawn-period uint64 :offset-assert 464) + (spawn-period time-frame :offset-assert 464) (path-spawn path-control :offset-assert 472) (creature-type-array battlecontroller-creature-type 4 :inline :offset-assert 476) (final-pickup-type pickup-type :offset-assert 604) @@ -176,7 +176,7 @@ battlecontroller-default-event-handler ) (defbehavior battlecontroller-spawn-creature battlecontroller ((arg0 vector) (arg1 vector)) - (local-vars (v1-25 int)) + (local-vars (v1-25 pickup-type)) (let ((f0-0 (rand-vu)) (v1-0 0) ) @@ -216,14 +216,14 @@ battlecontroller-default-event-handler (set! v1-25 (-> s5-0 pickup-type)) ) (else - (set! v1-25 (the-as int (-> self fact pickup-type))) + (set! v1-25 (-> self fact pickup-type)) ) ) - (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-type) (the-as pickup-type v1-25)) + (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-type) v1-25) (cond - ((= v1-25 7) + ((= v1-25 (pickup-type eco-pill)) ) - ((zero? v1-25) + ((= v1-25 (pickup-type none)) (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-amount) 0.0) (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-spawn-amount) 0.0) ) @@ -231,7 +231,7 @@ battlecontroller-default-event-handler (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-amount) 1.0) (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-spawn-amount) 0.0) (logior! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info options) (fact-options fade)) - (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info fade-time) 1200) + (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info fade-time) (seconds 4)) ) ) ) @@ -404,7 +404,7 @@ battlecontroller-default-event-handler (battlecontroller-fill-all-spawners) ) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (when (and *target* (>= (-> self activate-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans))) @@ -476,7 +476,7 @@ battlecontroller-default-event-handler (set! (-> self state-time) (-> *display* base-frame-counter)) (battlecontroller-camera-on) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((gp-0 0)) (let ((v1-8 (-> self child))) @@ -492,7 +492,7 @@ battlecontroller-default-event-handler ) (when (< gp-0 (-> self target-count)) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) (the-as int (-> self spawn-period))) + (until (>= (- (-> *display* base-frame-counter) gp-1) (-> self spawn-period)) (suspend) ) ) @@ -699,7 +699,7 @@ battlecontroller-default-event-handler ) ) (set! (-> obj spawn-period) - (the-as uint (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 0.1)))) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 0.1)))) ) (set! (-> obj target-count) 10) (set! (-> obj max-spawn-count) 100) @@ -766,7 +766,7 @@ battlecontroller-default-event-handler (let ((a1-34 (-> obj creature-type-array a0-34))) (set! (-> a1-34 pickup-count) 0) (if s5-4 - (set! (-> a1-34 pickup-type) (-> (the-as (pointer int32) (&+ s5-4 (* a0-34 4))))) + (set! (-> a1-34 pickup-type) (the-as pickup-type (-> (the-as (pointer int32) (&+ s5-4 (* a0-34 4)))))) ) (if s4-3 (set! (-> a1-34 max-pickup-count) (-> (the-as (pointer int32) (&+ s4-3 (* a0-34 4))))) diff --git a/goal_src/levels/common/joint-exploder.gc b/goal_src/levels/common/joint-exploder.gc index 83eae75074..ae7566937c 100644 --- a/goal_src/levels/common/joint-exploder.gc +++ b/goal_src/levels/common/joint-exploder.gc @@ -8,17 +8,17 @@ ;; DECOMP BEGINS (deftype joint-exploder-tuning (structure) - ((explosion uint64 :offset-assert 0) - (duration uint64 :offset-assert 8) - (gravity float :offset-assert 16) - (rot-speed float :offset-assert 20) - (fountain-rand-transv-lo vector :inline :offset-assert 32) - (fountain-rand-transv-hi vector :inline :offset-assert 48) - (away-from-focal-pt vector :inline :offset 32) - (away-from-rand-transv-xz-lo float :offset 48) - (away-from-rand-transv-xz-hi float :offset 52) - (away-from-rand-transv-y-lo float :offset 56) - (away-from-rand-transv-y-hi float :offset 60) + ((explosion uint64 :offset-assert 0) + (duration time-frame :offset-assert 8) + (gravity float :offset-assert 16) + (rot-speed float :offset-assert 20) + (fountain-rand-transv-lo vector :inline :offset-assert 32) + (fountain-rand-transv-hi vector :inline :offset-assert 48) + (away-from-focal-pt vector :inline :offset 32) + (away-from-rand-transv-xz-lo float :offset 48) + (away-from-rand-transv-xz-hi float :offset 52) + (away-from-rand-transv-y-lo float :offset 56) + (away-from-rand-transv-y-hi float :offset 60) ) :method-count-assert 9 :size-assert #x40 @@ -515,7 +515,7 @@ :code (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self tuning duration))) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self tuning duration)) (suspend) (let ((a0-0 (-> self skel root-channel 0))) (set! (-> a0-0 param 0) 1.0) @@ -671,7 +671,7 @@ (-> type-to-make size) (let ((v0-0 (the-as joint-exploder-tuning (t9-0 allocation v1-1)))) (set! (-> v0-0 explosion) (the-as uint arg0)) - (set! (-> v0-0 duration) (the-as uint 600)) + (set! (-> v0-0 duration) (seconds 2)) (set! (-> v0-0 gravity) -286720.0) (set! (-> v0-0 rot-speed) 8.4) (cond diff --git a/goal_src/levels/common/nav-enemy-h.gc b/goal_src/levels/common/nav-enemy-h.gc index 641a13b411..f245297a34 100644 --- a/goal_src/levels/common/nav-enemy-h.gc +++ b/goal_src/levels/common/nav-enemy-h.gc @@ -14,57 +14,57 @@ ;; DECOMP BEGINS (deftype nav-enemy-info (basic) - ((idle-anim int32 :offset-assert 4) - (walk-anim int32 :offset-assert 8) - (turn-anim int32 :offset-assert 12) - (notice-anim int32 :offset-assert 16) - (run-anim int32 :offset-assert 20) - (jump-anim int32 :offset-assert 24) - (jump-land-anim int32 :offset-assert 28) - (victory-anim int32 :offset-assert 32) - (taunt-anim int32 :offset-assert 36) - (die-anim int32 :offset-assert 40) - (neck-joint int32 :offset-assert 44) - (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed meters :offset-assert 52) - (run-rotate-speed degrees :offset-assert 56) - (run-acceleration meters :offset-assert 60) - (run-turn-time seconds :offset-assert 64) - (walk-travel-speed meters :offset-assert 72) - (walk-rotate-speed degrees :offset-assert 76) - (walk-acceleration meters :offset-assert 80) - (walk-turn-time seconds :offset-assert 88) - (attack-shove-back meters :offset-assert 96) - (attack-shove-up meters :offset-assert 100) - (shadow-size meters :offset-assert 104) - (notice-nav-radius meters :offset-assert 108) - (nav-nearest-y-threshold meters :offset-assert 112) - (notice-distance meters :offset-assert 116) - (proximity-notice-distance meters :offset-assert 120) - (stop-chase-distance meters :offset-assert 124) - (frustration-distance meters :offset-assert 128) - (frustration-time uint64 :offset-assert 136) - (die-anim-hold-frame float :offset-assert 144) - (jump-anim-start-frame float :offset-assert 148) - (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min meters :offset-assert 156) - (jump-height-factor float :offset-assert 160) - (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y meters :offset-assert 168) - (shadow-min-y meters :offset-assert 172) - (shadow-locus-dist meters :offset-assert 176) - (use-align symbol :offset-assert 180) - (draw-shadow symbol :offset-assert 184) - (move-to-ground symbol :offset-assert 188) - (hover-if-no-ground symbol :offset-assert 192) - (use-momentum symbol :offset-assert 196) - (use-flee symbol :offset-assert 200) - (use-proximity-notice symbol :offset-assert 204) - (use-jump-blocked symbol :offset-assert 208) - (use-jump-patrol symbol :offset-assert 212) - (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck symbol :offset-assert 224) - (debug-draw-jump symbol :offset-assert 228) + ((idle-anim int32 :offset-assert 4) + (walk-anim int32 :offset-assert 8) + (turn-anim int32 :offset-assert 12) + (notice-anim int32 :offset-assert 16) + (run-anim int32 :offset-assert 20) + (jump-anim int32 :offset-assert 24) + (jump-land-anim int32 :offset-assert 28) + (victory-anim int32 :offset-assert 32) + (taunt-anim int32 :offset-assert 36) + (die-anim int32 :offset-assert 40) + (neck-joint int32 :offset-assert 44) + (player-look-at-joint int32 :offset-assert 48) + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) + (frustration-time time-frame :offset-assert 136) + (die-anim-hold-frame float :offset-assert 144) + (jump-anim-start-frame float :offset-assert 148) + (jump-land-anim-end-frame float :offset-assert 152) + (jump-height-min meters :offset-assert 156) + (jump-height-factor float :offset-assert 160) + (jump-start-anim-speed float :offset-assert 164) + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) + (use-align symbol :offset-assert 180) + (draw-shadow symbol :offset-assert 184) + (move-to-ground symbol :offset-assert 188) + (hover-if-no-ground symbol :offset-assert 192) + (use-momentum symbol :offset-assert 196) + (use-flee symbol :offset-assert 200) + (use-proximity-notice symbol :offset-assert 204) + (use-jump-blocked symbol :offset-assert 208) + (use-jump-patrol symbol :offset-assert 212) + (gnd-collide-with uint64 :offset-assert 216) + (debug-draw-neck symbol :offset-assert 224) + (debug-draw-jump symbol :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 @@ -80,21 +80,21 @@ (frustration-point vector :inline :offset-assert 208) (jump-dest vector :inline :offset-assert 224) (jump-trajectory trajectory :inline :offset-assert 240) - (jump-time int64 :offset-assert 280) + (jump-time time-frame :offset-assert 280) (nav-info nav-enemy-info :offset-assert 288) (target-speed float :offset-assert 292) (momentum-speed float :offset-assert 296) (acceleration float :offset-assert 300) (rotate-speed float :offset-assert 304) - (turn-time int64 :offset-assert 312) - (frustration-time int64 :offset-assert 320) + (turn-time time-frame :offset-assert 312) + (frustration-time time-frame :offset-assert 320) (speed-scale float :offset-assert 328) (neck joint-mod :offset-assert 332) - (reaction-time int64 :offset-assert 336) - (notice-time int64 :offset-assert 344) - (state-timeout int64 :offset-assert 352) - (free-time int64 :offset-assert 360) - (touch-time int64 :offset-assert 368) + (reaction-time time-frame :offset-assert 336) + (notice-time time-frame :offset-assert 344) + (state-timeout time-frame :offset-assert 352) + (free-time time-frame :offset-assert 360) + (touch-time time-frame :offset-assert 368) (nav-enemy-flags uint32 :offset-assert 376) (incomming-attack-id handle :offset-assert 384) (jump-return-state (state process) :offset-assert 392) diff --git a/goal_src/levels/common/nav-enemy.gc b/goal_src/levels/common/nav-enemy.gc index 0b1394b187..ee016422de 100644 --- a/goal_src/levels/common/nav-enemy.gc +++ b/goal_src/levels/common/nav-enemy.gc @@ -76,7 +76,7 @@ (defmethod common-post nav-enemy ((obj nav-enemy)) (when (and (logtest? (-> obj nav-enemy-flags) 256) (or (not *target*) (and (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (-> obj touch-time)) 15) + (>= (- (-> *display* base-frame-counter) (-> obj touch-time)) (seconds 0.05)) ) ) ) @@ -701,7 +701,9 @@ nav-enemy-default-event-handler (set! (-> a0-8 param 0) 0.75) (joint-control-channel-group-eval! a0-8 (the-as art-joint-anim #f) num-func-loop!) ) - (set! v1-16 (or (>= (- (-> *display* base-frame-counter) s4-0) 3000) (nav-enemy-facing-direction? arg0 arg1))) + (set! v1-16 + (or (>= (- (-> *display* base-frame-counter) s4-0) (seconds 10)) (nav-enemy-facing-direction? arg0 arg1)) + ) ) ) (forward-up->quaternion (-> self collide-info quat) arg0 *y-vector*) @@ -757,7 +759,7 @@ nav-enemy-default-event-handler ) ) (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) - (set! (-> self state-timeout) 300) + (set! (-> self state-timeout) (seconds 1)) (none) ) :trans @@ -816,11 +818,11 @@ nav-enemy-default-event-handler ) (set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags))) (logior! (-> self nav-enemy-flags) 8) - (set! (-> self state-timeout) 300) + (set! (-> self state-timeout) (seconds 1)) (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) (set! (-> self acceleration) (-> self nav-info walk-acceleration)) (set! (-> self rotate-speed) (-> self nav-info walk-rotate-speed)) - (set! (-> self turn-time) (the-as int (-> self nav-info walk-turn-time))) + (set! (-> self turn-time) (-> self nav-info walk-turn-time)) (none) ) :exit @@ -830,7 +832,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self state-timeout)) (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-status drwf03))) (set! (-> self free-time) (-> *display* base-frame-counter)) @@ -839,7 +841,7 @@ nav-enemy-default-event-handler (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) ) ) - (>= (- (-> *display* base-frame-counter) (-> self free-time)) 600) + (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 2)) ) (go-virtual nav-enemy-idle) ) @@ -1020,7 +1022,7 @@ nav-enemy-default-event-handler ) (dummy-11 (-> self nav) (-> self nav target-pos)) (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 turn-time) (-> self nav-info run-turn-time)) (none) ) :code @@ -1208,7 +1210,7 @@ nav-enemy-default-event-handler (set! (-> self target-speed) (-> self nav-info run-travel-speed)) (set! (-> self acceleration) (-> self nav-info run-acceleration)) (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 turn-time) (-> self nav-info run-turn-time)) (nav-enemy-reset-frustration) (none) ) @@ -1240,7 +1242,7 @@ nav-enemy-default-event-handler ) (cond ((logtest? (nav-control-flags bit17) (-> self nav flags)) - (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 1)) (go-virtual nav-enemy-patrol) ) ) @@ -1292,17 +1294,17 @@ nav-enemy-default-event-handler (if (< f30-0 40960.0) (go-virtual nav-enemy-stare) ) - (set! (-> self state-timeout) gp-1) + (set! (-> self state-timeout) (the-as time-frame gp-1)) ) (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) (set! (-> self acceleration) (-> self nav-info walk-acceleration)) (set! (-> self rotate-speed) (-> self nav-info walk-rotate-speed)) - (set! (-> self turn-time) (the-as int (-> self nav-info walk-turn-time))) + (set! (-> self turn-time) (-> self nav-info walk-turn-time)) (none) ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (if (logtest? (-> *target* state-flags) 128) (go-virtual nav-enemy-patrol) ) @@ -1361,11 +1363,14 @@ nav-enemy-default-event-handler (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) (let ((f0-0 (vector-vector-distance (-> self collide-info trans) (target-pos 0)))) (set! (-> self state-timeout) - (the int (+ (lerp-scale 3000.0 0.0 f0-0 12288.0 122880.0) (nav-enemy-rnd-float-range 0.0 900.0))) + (the-as + time-frame + (the int (+ (lerp-scale 3000.0 0.0 f0-0 12288.0 122880.0) (nav-enemy-rnd-float-range 0.0 900.0))) + ) ) ) (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 turn-time) (-> self nav-info run-turn-time)) (set! (-> self collide-info transv quad) (-> *null-vector* quad)) (none) ) @@ -1376,7 +1381,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (if (logtest? (-> *target* state-flags) 128) (go-virtual nav-enemy-patrol) ) @@ -1443,7 +1448,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (if (TODO-RENAME-46 self (-> self nav-info notice-distance)) (go-virtual nav-enemy-chase) ) @@ -1911,7 +1916,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (logtest? (nav-control-flags bit19) (-> self nav flags)) ) (go-virtual nav-enemy-chase) @@ -1942,7 +1947,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (go (-> self jump-return-state)) ) (none) @@ -2120,7 +2125,7 @@ nav-enemy-default-event-handler (set! (-> obj enemy-info) (new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)) ) - (set! (-> obj reaction-time) (nav-enemy-rnd-int-range 30 240)) + (set! (-> obj reaction-time) (nav-enemy-rnd-int-range (seconds 0.1) (seconds 0.8))) (set! (-> obj speed-scale) 1.0) (logior! (-> obj nav-enemy-flags) 4216) 0 @@ -2130,7 +2135,7 @@ nav-enemy-default-event-handler (defmethod TODO-RENAME-49 nav-enemy ((obj nav-enemy) (arg0 nav-enemy-info)) (set! (-> obj nav-info) arg0) (set! (-> obj rotate-speed) (-> obj nav-info walk-rotate-speed)) - (set! (-> obj turn-time) (the-as int (-> obj nav-info walk-turn-time))) + (set! (-> obj turn-time) (-> obj nav-info walk-turn-time)) (when (and (!= (-> obj nav-info neck-joint) -1) (zero? (-> obj neck))) (set! (-> obj neck) (new 'process 'joint-mod (joint-mod-handler-mode flex-blend) obj (-> obj nav-info neck-joint)) diff --git a/goal_src/levels/common/plat-button.gc b/goal_src/levels/common/plat-button.gc index ae9f8aff2d..bb5e2eb1dc 100644 --- a/goal_src/levels/common/plat-button.gc +++ b/goal_src/levels/common/plat-button.gc @@ -251,7 +251,7 @@ ) (rider-trans) (when (-> self go-back-if-lost-player?) - (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (not (and (logtest? (-> *target* control unknown-surface00 flags) 2048) (zero? (logand (-> *target* control status) 1)) ) @@ -332,7 +332,7 @@ ) (rider-trans) (when (-> self go-back-if-lost-player?) - (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (not (and (logtest? (-> *target* control unknown-surface00 flags) 2048) (zero? (logand (-> *target* control status) 1)) ) @@ -445,6 +445,7 @@ ) (defmethod can-target-move? plat-button ((obj plat-button)) + 0 (none) ) diff --git a/goal_src/levels/common/rigid-body.gc b/goal_src/levels/common/rigid-body.gc index bda2575060..c7460cf5b7 100644 --- a/goal_src/levels/common/rigid-body.gc +++ b/goal_src/levels/common/rigid-body.gc @@ -228,31 +228,31 @@ ) (deftype rigid-body-platform-constants (structure) - ((drag-factor float :offset-assert 0) - (buoyancy-factor float :offset-assert 4) - (max-buoyancy-depth meters :offset-assert 8) - (gravity-factor float :offset-assert 12) - (gravity meters :offset-assert 16) - (player-weight meters :offset-assert 20) - (player-bonk-factor float :offset-assert 24) - (player-dive-factor float :offset-assert 28) - (player-force-distance meters :offset-assert 32) - (player-force-clamp meters :offset-assert 36) - (player-force-timeout uint64 :offset-assert 40) - (explosion-force meters :offset-assert 48) - (linear-damping float :offset-assert 52) - (angular-damping float :offset-assert 56) - (control-point-count int32 :offset-assert 60) - (mass float :offset-assert 64) - (inertial-tensor-x meters :offset-assert 68) - (inertial-tensor-y meters :offset-assert 72) - (inertial-tensor-z meters :offset-assert 76) - (cm-joint-x meters :offset-assert 80) - (cm-joint-y meters :offset-assert 84) - (cm-joint-z meters :offset-assert 88) - (idle-distance meters :offset-assert 92) - (platform symbol :offset-assert 96) - (sound-name string :offset-assert 100) + ((drag-factor float :offset-assert 0) + (buoyancy-factor float :offset-assert 4) + (max-buoyancy-depth meters :offset-assert 8) + (gravity-factor float :offset-assert 12) + (gravity meters :offset-assert 16) + (player-weight meters :offset-assert 20) + (player-bonk-factor float :offset-assert 24) + (player-dive-factor float :offset-assert 28) + (player-force-distance meters :offset-assert 32) + (player-force-clamp meters :offset-assert 36) + (player-force-timeout time-frame :offset-assert 40) + (explosion-force meters :offset-assert 48) + (linear-damping float :offset-assert 52) + (angular-damping float :offset-assert 56) + (control-point-count int32 :offset-assert 60) + (mass float :offset-assert 64) + (inertial-tensor-x meters :offset-assert 68) + (inertial-tensor-y meters :offset-assert 72) + (inertial-tensor-z meters :offset-assert 76) + (cm-joint-x meters :offset-assert 80) + (cm-joint-y meters :offset-assert 84) + (cm-joint-z meters :offset-assert 88) + (idle-distance meters :offset-assert 92) + (platform symbol :offset-assert 96) + (sound-name string :offset-assert 100) ) :method-count-assert 9 :size-assert #x68 @@ -283,7 +283,7 @@ (sim-time-remaining float :offset-assert 688) (float-height-offset float :offset-assert 692) (player-attack-id int32 :offset-assert 696) - (player-bonk-timeout int64 :offset-assert 704) + (player-bonk-timeout time-frame :offset-assert 704) (water-anim water-anim :offset-assert 712) (player-contact basic :offset-assert 716) (player-impulse collide-shape-prim-mesh :offset-assert 720) @@ -468,9 +468,7 @@ (defbehavior rigid-body-platform-event-handler rigid-body-platform ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 (('bonk) - (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) - (the-as int (-> self info player-force-timeout)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) (-> self info player-force-timeout)) (set! (-> self player-bonk-timeout) (-> *display* base-frame-counter)) (let* ((s5-0 arg0) (v1-7 (if (and (nonzero? s5-0) (type-type? (-> s5-0 type) process-drawable)) @@ -503,9 +501,7 @@ (set! (-> self player-attack-id) (the-as int v1-16)) (cond ((= (-> arg3 param 1) 'flop) - (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) - (the-as int (-> self info player-force-timeout)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) (-> self info player-force-timeout)) (set! (-> self player-bonk-timeout) (-> *display* base-frame-counter)) (let* ((gp-1 arg0) (v1-24 (if (and (nonzero? gp-1) (type-type? (-> gp-1 type) process-drawable)) @@ -724,22 +720,22 @@ :buoyancy-factor 1.5 :max-buoyancy-depth (meters 1.5) :gravity-factor 1.0 - :gravity (meters 10.0) + :gravity (meters 10) :player-weight (meters 6.6) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 1 :mass 2.0 - :inertial-tensor-x (meters 3.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 3.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 3) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 3) + :idle-distance (meters 50) :platform #t :sound-name #f ) diff --git a/goal_src/levels/common/ropebridge.gc b/goal_src/levels/common/ropebridge.gc index 768c7ae62f..9ac29dcae2 100644 --- a/goal_src/levels/common/ropebridge.gc +++ b/goal_src/levels/common/ropebridge.gc @@ -5,6 +5,7 @@ ;; name in dgo: ropebridge ;; dgos: GAME, COMMON, L1 +;; DECOMP BEGINS (deftype ropebridge-tuning (structure) ((num-springs int32 :offset-assert 0) @@ -319,9 +320,9 @@ ((root-override collide-shape :offset 112) (subtype uint64 :offset-assert 176) (subtype-name string :offset-assert 184) - (agitated-time-stamp uint64 :offset-assert 192) - (bonk-time-stamp uint64 :offset-assert 200) - (attack-flop-time-stamp uint64 :offset-assert 208) + (agitated-time-stamp time-frame :offset-assert 192) + (bonk-time-stamp time-frame :offset-assert 200) + (attack-flop-time-stamp time-frame :offset-assert 208) (player-attack-id uint64 :offset-assert 216) (sleep-dist float :offset-assert 224) (do-physics? basic :offset-assert 228) @@ -406,8 +407,8 @@ (let ((f0-0 -1.0)) (cond ((= arg2 'bonk) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self bonk-time-stamp))) 60) - (set! (-> self bonk-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (when (>= (- (-> *display* base-frame-counter) (-> self bonk-time-stamp)) (seconds 0.2)) + (set! (-> self bonk-time-stamp) (-> *display* base-frame-counter)) (set! f0-0 (the-as float (-> arg3 param 1))) (if (>= f0-0 (-> self tuning rider-bonk-max)) (set! f0-0 (-> self tuning rider-bonk-max)) @@ -418,7 +419,7 @@ (let ((v1-17 (-> arg3 param 2))) (when (!= v1-17 (-> self player-attack-id)) (set! (-> self player-attack-id) v1-17) - (set! (-> self attack-flop-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self attack-flop-time-stamp) (-> *display* base-frame-counter)) (set! f0-0 (* 1.1 (-> self tuning rider-bonk-max))) ) ) @@ -427,12 +428,12 @@ (the-as object (when (and (>= f0-0 (-> self tuning rider-bonk-min)) (-> arg3 param 0)) - (set! (-> self agitated-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self agitated-time-stamp) (-> *display* base-frame-counter)) (let* ((f30-0 (/ (* (- f0-0 (-> self tuning rider-bonk-min)) (-> self tuning rider-bonk-force)) (- (-> self tuning rider-bonk-max) (-> self tuning rider-bonk-min)) ) ) - (gp-0 (-> arg3 param 0)) + (gp-0 (the-as object (-> arg3 param 0))) (a0-7 (-> (the-as touching-shapes-entry gp-0) head)) (s4-0 (-> self root-override)) (s5-0 (get-touched-prim a0-7 s4-0 (the-as touching-shapes-entry gp-0))) @@ -534,7 +535,7 @@ (set-vel-from-rider obj (+ s2-1 1) s3-0 1) ) ) - (set! (-> obj agitated-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj agitated-time-stamp) (-> *display* base-frame-counter)) ) ) ) @@ -674,14 +675,14 @@ (.add.x.vf vf13 vf0 vf13 :mask #b100) 0 (let ((v1-17 (+ (-> obj tuning num-spring-points) -2))) - (let ((a0-1 (&-> obj stack 320))) + (let ((a0-1 (the-as object (&-> obj stack 320)))) (label cfg-7) - (.lvf vf11 (&+ a0-1 16)) - (.lvf vf3 a0-1) + (.lvf vf11 (&-> (the-as (inline-array vector) a0-1) 1 quad)) + (.lvf vf3 (&-> (the-as (inline-array vector) a0-1) 0 quad)) (.mul.vf vf11 vf11 vf13 :mask #b111) (.add.vf vf3 vf3 vf11 :mask #b111) - (.svf (the-as (pointer uint128) (&-> a0-1 0)) vf3) - (set! a0-1 (&-> a0-1 48)) + (.svf (&-> (the-as (inline-array vector) a0-1) 0 quad) vf3) + (set! a0-1 (-> (the-as (inline-array vector) a0-1) 3)) ) (+! v1-17 -1) (b! (> v1-17 0) cfg-7 :delay (nop!)) @@ -822,7 +823,7 @@ (defmethod run-logic? ropebridge ((obj ropebridge)) (or (zero? (logand (-> obj mask) (process-mask actor-pause))) - (< (- (-> *display* base-frame-counter) (the-as int (-> obj agitated-time-stamp))) 1500) + (< (- (-> *display* base-frame-counter) (-> obj agitated-time-stamp)) (seconds 5)) (or (>= (-> obj sleep-dist) (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))) @@ -871,9 +872,9 @@ ) ) (set! (-> obj tuning) (-> *ropebridge-tunings* (the-as int (-> obj subtype)))) - (set! (-> obj agitated-time-stamp) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj bonk-time-stamp) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj attack-flop-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj agitated-time-stamp) (-> *display* base-frame-counter)) + (set! (-> obj bonk-time-stamp) (-> *display* base-frame-counter)) + (set! (-> obj attack-flop-time-stamp) (-> *display* base-frame-counter)) (set-vector! (-> obj extra-trans) 0.0 0.0 (- (* 0.5 (-> obj tuning bridge-end-to-end-len))) 1.0) (set! (-> obj do-physics?) #t) (let ((a0-13 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) diff --git a/goal_src/levels/common/sharkey.gc b/goal_src/levels/common/sharkey.gc index 44d31ab7f7..8eac663fb7 100644 --- a/goal_src/levels/common/sharkey.gc +++ b/goal_src/levels/common/sharkey.gc @@ -34,21 +34,21 @@ ) (deftype sharkey (nav-enemy) - ((dir vector :inline :offset-assert 400) - (spawn-point vector :inline :offset-assert 416) - (scale float :offset-assert 432) - (anim-speed float :offset-assert 436) - (y-max meters :offset-assert 440) - (y-min meters :offset-assert 444) - (attack-time float :offset-assert 448) - (player-water-time uint64 :offset-assert 456) - (player-in-water basic :offset-assert 464) - (last-y float :offset-assert 468) - (spawn-distance meters :offset-assert 472) - (chase-speed meters :offset-assert 476) - (y-speed meters :offset-assert 480) - (sound-id sound-id :offset-assert 484) - (enable-patrol basic :offset-assert 488) + ((dir vector :inline :offset-assert 400) + (spawn-point vector :inline :offset-assert 416) + (scale float :offset-assert 432) + (anim-speed float :offset-assert 436) + (y-max meters :offset-assert 440) + (y-min meters :offset-assert 444) + (attack-time float :offset-assert 448) + (player-water-time time-frame :offset-assert 456) + (player-in-water basic :offset-assert 464) + (last-y float :offset-assert 468) + (spawn-distance meters :offset-assert 472) + (chase-speed meters :offset-assert 476) + (y-speed meters :offset-assert 480) + (sound-id sound-id :offset-assert 484) + (enable-patrol basic :offset-assert 488) ) :heap-base #x180 :method-count-assert 76 @@ -268,7 +268,7 @@ nav-enemy-default-event-handler ) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self notice-time)) 3000) + (if (>= (- (-> *display* base-frame-counter) (-> self notice-time)) (seconds 10)) (set! (-> self nav-enemy-flags) (logand -2 (-> self nav-enemy-flags))) ) ) @@ -457,7 +457,7 @@ nav-enemy-default-event-handler (f28-0 (-> self collide-info transv y)) (f26-0 (-> self collide-info trans y)) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (let ((gp-1 (-> self skel root-channel 0))) (set! (-> gp-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) (set! (-> gp-1 param 0) @@ -545,7 +545,7 @@ nav-enemy-default-event-handler (when (logtest? (-> *target* control status) 2) (set! (-> self player-in-water) (logtest? (-> *target* control status) 1024)) (if (-> self player-in-water) - (set! (-> self player-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self player-water-time) (-> *display* base-frame-counter)) ) ) (if (and *target* (>= 8192.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)))) @@ -561,7 +561,7 @@ nav-enemy-default-event-handler ) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 3)) (go-virtual nav-enemy-patrol) ) ) @@ -577,7 +577,7 @@ nav-enemy-default-event-handler ) :code (behavior () - (set! (-> self player-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self player-water-time) (-> *display* base-frame-counter)) (ja-channel-push! 1 51) (sound-play-by-name (static-sound-name "bigshark-idle") (new-sound-id) 1024 0 0 1 #t) (while #t @@ -776,31 +776,31 @@ nav-enemy-default-event-handler :die-anim 2 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 12.0) + :run-travel-speed (meters 12) :run-rotate-speed (degrees 1999.9999) - :run-acceleration (meters 6.0) + :run-acceleration (meters 6) :run-turn-time (seconds 0.5) - :walk-travel-speed (meters 6.0) + :walk-travel-speed (meters 6) :walk-rotate-speed (degrees 1999.9999) - :walk-acceleration (meters 6.0) + :walk-acceleration (meters 6) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 1.0) + :attack-shove-back (meters 1) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 3.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 500.0) - :stop-chase-distance (meters 510.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :shadow-size (meters 2) + :notice-nav-radius (meters 3) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 500) + :stop-chase-distance (meters 510) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #f @@ -851,7 +851,9 @@ nav-enemy-default-event-handler (set! (-> obj collide-info trans y) (-> obj y-min)) (set! (-> obj anim-speed) 1.0) (set-vector! (-> obj collide-info scale) (-> obj scale) (-> obj scale) (-> obj scale) 1.0) - (set! (-> obj reaction-time) (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0)))) + (set! (-> obj reaction-time) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0)))) + ) (set! (-> obj spawn-distance) (res-lump-float (-> obj entity) 'distance :default 122880.0)) (set! (-> obj chase-speed) (res-lump-float (-> obj entity) 'speed :default 49152.0)) (set! (-> obj y-speed) (-> obj chase-speed)) diff --git a/goal_src/levels/common/ticky.gc b/goal_src/levels/common/ticky.gc index 5d6742868a..5cefae4f81 100644 --- a/goal_src/levels/common/ticky.gc +++ b/goal_src/levels/common/ticky.gc @@ -8,26 +8,26 @@ ;; DECOMP BEGINS (deftype ticky (structure) - ((delay-til-ramp int64 :offset-assert 0) - (delay-til-timeout int64 :offset-assert 8) - (starting-time int64 :offset-assert 16) - (last-tick-time int64 :offset-assert 24) + ((delay-til-ramp time-frame :offset-assert 0) + (delay-til-timeout time-frame :offset-assert 8) + (starting-time time-frame :offset-assert 16) + (last-tick-time time-frame :offset-assert 24) ) :method-count-assert 12 :size-assert #x20 :flag-assert #xc00000020 (:methods - (sleep (_type_ int) none 9) - (reached-delay? (_type_ int) symbol 10) + (sleep (_type_ time-frame) none 9) + (reached-delay? (_type_ time-frame) symbol 10) (completed? (_type_) symbol 11) ) ) -(defmethod sleep ticky ((obj ticky) (arg0 int)) +(defmethod sleep ticky ((obj ticky) (arg0 time-frame)) (set! (-> obj starting-time) (-> *display* base-frame-counter)) (set! (-> obj delay-til-timeout) arg0) - (set! (-> obj delay-til-ramp) (max 0 (+ arg0 -1200))) + (set! (-> obj delay-til-ramp) (max 0 (+ arg0 (seconds -4)))) (set! (-> obj last-tick-time) 0) 0 (none) @@ -60,7 +60,7 @@ ) ) -(defmethod reached-delay? ticky ((obj ticky) (arg0 int)) +(defmethod reached-delay? ticky ((obj ticky) (arg0 time-frame)) (>= (- (-> *display* base-frame-counter) (-> obj starting-time)) arg0) ) diff --git a/goal_src/levels/darkcave/darkcave-obs.gc b/goal_src/levels/darkcave/darkcave-obs.gc index 931dc892dc..da1ff883a8 100644 --- a/goal_src/levels/darkcave/darkcave-obs.gc +++ b/goal_src/levels/darkcave/darkcave-obs.gc @@ -16,11 +16,11 @@ (glow-u float :offset-assert 184) (glow-wf-period int32 :offset-assert 188) (glow-wf-offset int32 :offset-assert 192) - (prev-compute-glow-time int64 :offset-assert 200) - (start-fade-time int64 :offset-assert 208) - (end-fade-time int64 :offset-assert 216) - (activated-time int64 :offset-assert 224) - (last-updated-user-lighting int64 :offset-assert 232) + (prev-compute-glow-time time-frame :offset-assert 200) + (start-fade-time time-frame :offset-assert 208) + (end-fade-time time-frame :offset-assert 216) + (activated-time time-frame :offset-assert 224) + (last-updated-user-lighting time-frame :offset-assert 232) (player-attack-id uint64 :offset-assert 240) (on-color-mult vector :inline :offset-assert 256) (on-color-emissive vector :inline :offset-assert 272) @@ -73,13 +73,13 @@ (f30-1 (* 0.1 (cos (* 65536.0 f0-2)))) ) (cond - ((>= 20 gp-1) + ((>= (seconds 0.06666667) gp-1) (let ((v1-11 (* 0.05 (the float gp-1)))) (fmax 0.0 (fmin 2.0 (+ (* 2.0 v1-11) (* v1-11 f30-1)))) ) ) - ((>= 180 gp-1) - (let ((a2-0 (* 0.00625 (the float (+ gp-1 -20))))) + ((>= (seconds 0.6) gp-1) + (let ((a2-0 (* 0.00625 (the float (+ gp-1 (seconds -0.06666667)))))) (fmin 2.0 (+ (lerp 2.0 1.0 a2-0) f30-1)) ) ) @@ -250,7 +250,9 @@ (if (-> obj is-master?) (logclear! (-> obj mask) (process-mask actor-pause)) ) - (set! (-> obj start-fade-time) (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 8.0)))) + (set! (-> obj start-fade-time) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 8.0)))) + ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *cavecrystal-sg* '()) (nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f)) diff --git a/goal_src/levels/demo/static-screen.gc b/goal_src/levels/demo/static-screen.gc index e7c936e0cb..6a9c4e341d 100644 --- a/goal_src/levels/demo/static-screen.gc +++ b/goal_src/levels/demo/static-screen.gc @@ -9,14 +9,14 @@ (deftype static-screen (process) ((part sparticle-launch-control 1 :offset-assert 112) - (state-time uint64 :offset-assert 120) + (state-time time-frame :offset-assert 120) ) :heap-base #x10 :method-count-assert 15 :size-assert #x80 :flag-assert #xf00100080 (:methods - (idle (int int symbol) _type_ :state 14) + (idle (int time-frame symbol) _type_ :state 14) ) ) @@ -107,7 +107,7 @@ (defstate idle (static-screen) :virtual #t :enter - (behavior ((arg0 int) (arg1 int) (arg2 symbol)) + (behavior ((arg0 int) (arg1 time-frame) (arg2 symbol)) (set! (-> *setting-control* current bg-a) 1.0) (set! (-> *setting-control* default bg-a) 0.0) (push-setting! *setting-control* self 'common-page 'set 0.0 (ash 1 (+ arg0 1))) @@ -121,18 +121,17 @@ (none) ) :code - (behavior ((arg0 int) (arg1 int) (arg2 symbol)) + (behavior ((arg0 int) (arg1 time-frame) (arg2 symbol)) (local-vars (v1-6 symbol)) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-6 (suspend) - (set! v1-6 - (or (and (> arg1 0) (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) arg1)) - (and arg2 - (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) 300) - (cpad-pressed? 0 select start triangle circle x square) + (set! v1-6 (or (and (> arg1 0) (>= (- (-> *display* base-frame-counter) (-> self state-time)) arg1)) + (and arg2 + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) + (cpad-pressed? 0 select start triangle circle x square) + ) ) - ) ) ) (set! (-> *setting-control* default bg-a) 1.0) @@ -146,7 +145,7 @@ ) ) -(defbehavior static-screen-init-by-other static-screen ((arg0 int) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 symbol)) +(defbehavior static-screen-init-by-other static-screen ((arg0 int) (arg1 int) (arg2 int) (arg3 int) (arg4 time-frame) (arg5 symbol)) (let ((s3-0 (lookup-part-group-by-name "group-part-screen1"))) (when (and s3-0 (nonzero? s3-0) (type-type? (-> s3-0 type) sparticle-launch-group)) (set! (-> *part-id-table* 2966 init-specs 0 initial-valuef) (the-as float arg1)) diff --git a/goal_src/levels/finalboss/final-door.gc b/goal_src/levels/finalboss/final-door.gc index 532b6cabab..c98cb7bba8 100644 --- a/goal_src/levels/finalboss/final-door.gc +++ b/goal_src/levels/finalboss/final-door.gc @@ -101,42 +101,42 @@ (behavior ((arg0 symbol)) (case (-> self type) ((power-left) - (let ((a0-1 (-> self skel root-channel 0))) - (set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) - (set! (-> a0-1 param 0) + (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-1 param 1) 0.353) - (set! (-> a0-1 frame-num) 0.0) - (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + (set! (-> a0-2 param 1) 0.353) + (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) (transform-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) 0.353) - (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) + (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) 0.353) + (joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!) ) ) ) (else - (let ((a0-4 (-> self skel root-channel 0))) - (set! (-> a0-4 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) - (set! (-> a0-4 param 0) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 frame-group) (the-as art-joint-anim (-> self draw art-group data 2))) + (set! (-> a0-5 param 0) (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)) ) - (set! (-> a0-4 param 1) 0.353) - (set! (-> a0-4 frame-num) 0.0) - (joint-control-channel-group! a0-4 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) + (set! (-> a0-5 param 1) 0.353) + (set! (-> a0-5 frame-num) 0.0) + (joint-control-channel-group! a0-5 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!) ) (until (ja-done? 0) (transform-post) (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) 0.353) - (joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!) + (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.353) + (joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-seek!) ) ) ) @@ -261,7 +261,7 @@ (set! (-> self base y) (-> self jump-pos y)) (setup-from-to-duration! gp-1 (-> self root-override trans) (-> self jump-pos) 300.0 -2.2755556) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (let ((f0-2 (the float (- (-> *display* base-frame-counter) (-> self state-time))))) (eval-position! gp-1 f0-2 (-> self root-override trans)) ) @@ -373,7 +373,7 @@ ) :trans (behavior () - (set-letterbox-frames 5) + (set-letterbox-frames (seconds 0.016666668)) (none) ) :code @@ -424,7 +424,7 @@ ) ) (let ((s1-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s1-1) 30) + (until (>= (- (-> *display* base-frame-counter) s1-1) (seconds 0.1)) (suspend) ) ) @@ -446,14 +446,14 @@ ) ) (let ((s1-3 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s1-3) 30) + (until (>= (- (-> *display* base-frame-counter) s1-3) (seconds 0.1)) (suspend) ) ) ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 600) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 2)) (suspend) ) ) diff --git a/goal_src/levels/finalboss/green-eco-lurker.gc b/goal_src/levels/finalboss/green-eco-lurker.gc index b6b3f5f4a2..e141e10c0c 100644 --- a/goal_src/levels/finalboss/green-eco-lurker.gc +++ b/goal_src/levels/finalboss/green-eco-lurker.gc @@ -66,32 +66,32 @@ :die-anim 6 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 360.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 360.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.0) + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) :notice-nav-radius (meters 2.5) - :nav-nearest-y-threshold (meters 400.0) - :notice-distance (meters 300.0) - :stop-chase-distance (meters 400.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :nav-nearest-y-threshold (meters 400) + :notice-distance (meters 300) + :stop-chase-distance (meters 400) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.5) :shadow-min-y (meters -1.75) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -933,7 +933,7 @@ (when (< (-> self num-alive) 3) (when (nonzero? (-> self num-spawned)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) ) diff --git a/goal_src/levels/finalboss/light-eco.gc b/goal_src/levels/finalboss/light-eco.gc index 2b008e5a23..e88b158174 100644 --- a/goal_src/levels/finalboss/light-eco.gc +++ b/goal_src/levels/finalboss/light-eco.gc @@ -11,8 +11,8 @@ ((root-override collide-shape :offset 112) (angle-bit int32 :offset-assert 176) (ground-y float :offset-assert 180) - (falling-start-time int64 :offset-assert 184) - (last-update-time int64 :offset-assert 192) + (falling-start-time time-frame :offset-assert 184) + (last-update-time time-frame :offset-assert 192) (rot vector :inline :offset-assert 208) (rotv vector :inline :offset-assert 224) (traj trajectory :inline :offset-assert 240) @@ -39,8 +39,8 @@ (angle-mask int64 :offset-assert 184) (delay-til-spawn int32 :offset-assert 192) (part2 sparticle-launch-control :offset-assert 196) - (last-update-time int64 :offset-assert 200) - (last-spawned-time int64 :offset-assert 208) + (last-update-time time-frame :offset-assert 200) + (last-spawned-time time-frame :offset-assert 208) ) :heap-base #x70 :method-count-assert 22 @@ -534,7 +534,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (go light-eco-child-die) ) (common-trans self) @@ -562,7 +562,7 @@ (clear-collide-with-as (-> self root-override)) (logior! (-> self draw status) (draw-status drwf01)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (suspend) ) (none) diff --git a/goal_src/levels/finalboss/robotboss-h.gc b/goal_src/levels/finalboss/robotboss-h.gc index f4f6fe2445..8a2599e09b 100644 --- a/goal_src/levels/finalboss/robotboss-h.gc +++ b/goal_src/levels/finalboss/robotboss-h.gc @@ -33,8 +33,8 @@ (desired-loc vector :inline :offset-assert 240) (old-loc vector :inline :offset-assert 256) (loc-t float :offset-assert 272) - (loc-t-start int64 :offset-assert 280) - (loc-t-duration int64 :offset-assert 288) + (loc-t-start time-frame :offset-assert 280) + (loc-t-duration time-frame :offset-assert 288) (hits-to-go int32 :offset-assert 296) (took-hit symbol :offset-assert 300) (children-spawned int32 :offset-assert 304) diff --git a/goal_src/levels/finalboss/robotboss-misc.gc b/goal_src/levels/finalboss/robotboss-misc.gc index eea3165eed..42b1d60b37 100644 --- a/goal_src/levels/finalboss/robotboss-misc.gc +++ b/goal_src/levels/finalboss/robotboss-misc.gc @@ -242,7 +242,7 @@ (cond ((handle->process (-> self particles gp-0 tracker)) (set! (-> (the-as part-tracker (-> self particles gp-0 tracker process 0)) start-time) - (the-as uint (-> *display* base-frame-counter)) + (-> *display* base-frame-counter) ) ) ((-> self particles gp-0 kind) diff --git a/goal_src/levels/finalboss/robotboss-weapon.gc b/goal_src/levels/finalboss/robotboss-weapon.gc index c63d1576af..298f2492c6 100644 --- a/goal_src/levels/finalboss/robotboss-weapon.gc +++ b/goal_src/levels/finalboss/robotboss-weapon.gc @@ -226,10 +226,10 @@ ) (deftype darkecobomb (arcing-shot) - ((flight-time int64 :offset-assert 224) - (countdown-time float :offset-assert 232) - (anim-speed float :offset-assert 236) - (next-tick float :offset-assert 240) + ((flight-time time-frame :offset-assert 224) + (countdown-time float :offset-assert 232) + (anim-speed float :offset-assert 236) + (next-tick float :offset-assert 240) ) :heap-base #x90 :method-count-assert 20 @@ -286,7 +286,7 @@ (send-event (ppointer->process (-> self parent)) 'bomb-going) (send-event *camera* 'change-to-entity-by-name "camera-402") (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (suspend) ) (send-event *camera* 'force-blend 0) @@ -458,7 +458,7 @@ :trans (behavior () (darkecobomb-explode-if-player-high-enough) - (if (>= (- (-> *display* game-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 0.5)) (go darkecobomb-countdown) ) (none) @@ -560,7 +560,7 @@ (the-as (function none :behavior darkecobomb) transform-post) ) -(defbehavior darkecobomb-init-by-other darkecobomb ((arg0 vector) (arg1 vector) (arg2 float) (arg3 int) (arg4 float)) +(defbehavior darkecobomb-init-by-other darkecobomb ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame) (arg4 float)) (let ((s1-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s1-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s1-0 reaction) default-collision-reaction) @@ -606,7 +606,7 @@ ) (deftype greenshot (arcing-shot) - ((flight-time int64 :offset-assert 224) + ((flight-time time-frame :offset-assert 224) ) :heap-base #x80 :method-count-assert 20 @@ -688,7 +688,7 @@ (the-as (function none :behavior greenshot) transform-post) ) -(defbehavior greenshot-init-by-other greenshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 int)) +(defbehavior greenshot-init-by-other greenshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame)) (let ((s2-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s2-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s2-0 reaction) default-collision-reaction) @@ -718,8 +718,8 @@ ) (deftype redshot (arcing-shot) - ((flight-time int64 :offset-assert 224) - (stall-time int64 :offset-assert 232) + ((flight-time time-frame :offset-assert 224) + (stall-time time-frame :offset-assert 232) (ring torus :inline :offset-assert 240) (rotation-offset int64 :offset-assert 280) (part-track handle :offset-assert 288) @@ -777,7 +777,7 @@ :longest-edge (meters 0) ) -(defbehavior redshot-trans redshot ((arg0 int)) +(defbehavior redshot-trans redshot ((arg0 time-frame)) (let ((s5-0 (new 'stack-no-clear 'matrix))) 0.0 (matrix-rotate-yx! @@ -790,6 +790,7 @@ (if (< (* 0.006666667 (the float (min 150 arg0))) 1.0) (spawn (-> self part) (-> self root-override trans)) ) + (none) ) (defstate redshot-explode (redshot) @@ -855,12 +856,15 @@ ) ) (let ((f0-3 - (fmin 1.0 (* 0.006666667 (the float (- 600 (- (-> *display* game-frame-counter) (-> self state-time)))))) + (fmin + 1.0 + (* 0.006666667 (the float (- (seconds 2) (- (-> *display* game-frame-counter) (-> self state-time))))) + ) ) ) (set-vector! (-> self draw color-mult) f0-3 f0-3 f0-3 0.75) ) - (when (>= (- (-> *display* game-frame-counter) (-> self state-time)) 600) + (when (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 2)) (send-event (ppointer->process (-> self parent)) 'missed-jak) (deactivate self) ) @@ -927,7 +931,7 @@ ) :trans (behavior () - (redshot-trans 1500) + (redshot-trans (seconds 5)) (arcing-shot-calculate (-> self root-override trans) (/ (the float (- (-> *display* game-frame-counter) (-> self state-time))) (the float (-> self flight-time))) @@ -949,7 +953,7 @@ (the-as (function none :behavior redshot) transform-post) ) -(defbehavior redshot-init-by-other redshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 uint) (arg4 uint) (arg5 uint)) +(defbehavior redshot-init-by-other redshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame) (arg4 time-frame) (arg5 int)) (local-vars (sv-16 collide-shape-prim-sphere)) (let ((s0-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s0-0 dynam) (copy *standard-dynamics* 'process)) @@ -973,9 +977,9 @@ (initialize-skeleton self *redring-sg* '()) (logclear! (-> self mask) (process-mask actor-pause)) (arcing-shot-setup arg0 arg1 arg2) - (set! (-> self flight-time) (the-as int arg3)) - (set! (-> self stall-time) (the-as int arg4)) - (set! (-> self rotation-offset) (the-as int arg5)) + (set! (-> self flight-time) arg3) + (set! (-> self stall-time) arg4) + (set! (-> self rotation-offset) arg5) (set! (-> self part) (create-launch-control (-> *part-group-id-table* 647) self)) (set! (-> self shot-particle) (create-launch-control (-> *part-group-id-table* 665) self)) (set! (-> self test-particle) (create-launch-control (-> *part-group-id-table* 679) self)) @@ -999,7 +1003,7 @@ ) (deftype yellowshot (arcing-shot) - ((flight-time int64 :offset-assert 224) + ((flight-time time-frame :offset-assert 224) ) :heap-base #x80 :method-count-assert 20 @@ -1062,7 +1066,7 @@ (the-as (function none :behavior yellowshot) transform-post) ) -(defbehavior yellowshot-init-by-other yellowshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 uint)) +(defbehavior yellowshot-init-by-other yellowshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame)) (let ((s2-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s2-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s2-0 reaction) default-collision-reaction) @@ -1085,7 +1089,7 @@ (initialize-skeleton self *redring-sg* '()) (logior! (-> self draw status) (draw-status drwf01)) (arcing-shot-setup arg0 arg1 arg2) - (set! (-> self flight-time) (the-as int arg3)) + (set! (-> self flight-time) arg3) (set! (-> self part) (create-launch-control (-> *part-group-id-table* 652) self)) (go yellowshot-idle) (none) diff --git a/goal_src/levels/finalboss/robotboss.gc b/goal_src/levels/finalboss/robotboss.gc index 99e6e0d221..94b4534a17 100644 --- a/goal_src/levels/finalboss/robotboss.gc +++ b/goal_src/levels/finalboss/robotboss.gc @@ -93,7 +93,7 @@ (hide-hud-quick) (set! *camera-look-through-other* 2) (when (< (-> self valid-frames) 2) - (set-blackout-frames 10) + (set-blackout-frames (seconds 0.033333335)) (+! (-> self valid-frames) 1) ) ) @@ -133,10 +133,10 @@ (+! (-> self palette-val) f0-2) ) (set! (-> *palette-fade-controls* control 2 fade) (-> self palette-val)) - (b! (not (-> self ignore-camera)) cfg-11 :delay (empty)) + (b! (not (-> self ignore-camera)) cfg-11 :delay (empty-form)) (b! #t cfg-66 :delay (nop!)) (label cfg-11) - (b! *target* cfg-13 :delay (empty)) + (b! *target* cfg-13 :delay (empty-form)) (b! #t cfg-66 :delay (nop!)) (label cfg-13) (let ((a1-8 (new 'stack-no-clear 'event-message-block))) @@ -144,7 +144,7 @@ (set! (-> a1-8 num-params) 1) (set! (-> a1-8 message) 'query-state) (set! (-> a1-8 param 0) (the-as uint cam-eye)) - (b! (not (send-event-function *camera* a1-8)) cfg-15 :delay (empty)) + (b! (not (send-event-function *camera* a1-8)) cfg-15 :delay (empty-form)) ) (b! #t cfg-66 :delay (nop!)) (label cfg-15) @@ -153,7 +153,7 @@ (set! (-> a1-9 num-params) 1) (set! (-> a1-9 message) 'query-state) (set! (-> a1-9 param 0) (the-as uint cam-launcher-longfall)) - (b! (not (send-event-function *camera* a1-9)) cfg-19 :delay (empty)) + (b! (not (send-event-function *camera* a1-9)) cfg-19 :delay (empty-form)) ) (when (-> *camera* cam-entity) (let ((s5-4 *camera-base-mode*)) @@ -176,7 +176,7 @@ ) cfg-37 :delay - (empty) + (empty-form) ) (if (or (not (-> *camera* cam-entity)) (not (string= @@ -199,7 +199,7 @@ ) cfg-49 :delay - (empty) + (empty-form) ) (let ((a1-18 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-18 from) self) @@ -842,7 +842,7 @@ (defstate robotboss-daxter-sacrifice-movie (robotboss) :code (behavior () - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill (-> self alts 5)) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) self) @@ -886,7 +886,9 @@ :trans (behavior () (spool-push *art-control* "green-sagecage-daxter-sacrifice" 0 self (the-as float -1.0)) - (when (and (< (-> self children-spawned) 1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 285)) + (when (and (< (-> self children-spawned) 1) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.95)) + ) (+! (-> self children-spawned) 1) (let ((gp-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 quad) (-> self entity extra trans quad)) @@ -1087,7 +1089,7 @@ (set-vector! (-> self desired-loc) 16384.0 -81920.0 716800.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 1200) + (set! (-> self loc-t-duration) (seconds 4)) (set! (-> self desired-pool-y) -16384.0) (play-ambient (-> self ambient) "GOL-AM01" #t (the-as vector #f)) (none) @@ -1718,7 +1720,7 @@ (set-vector! (-> self desired-loc) 13653.333 77824.0 491520.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -18432.0) (none) ) @@ -1988,7 +1990,7 @@ (set-vector! (-> self desired-loc) 0.0 -81920.0 716800.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -20480.0) (none) ) @@ -2095,9 +2097,9 @@ ) (deftype redshot-launch-info (structure) - ((dest vector :inline :offset-assert 0) - (flight-time int64 :offset-assert 16) - (stall-time int64 :offset-assert 24) + ((dest vector :inline :offset-assert 0) + (flight-time time-frame :offset-assert 16) + (stall-time time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -2157,16 +2159,20 @@ (v1-27 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-28 (the-as number (logior #x3f800000 v1-27))) ) - (set! (-> arg0 info s3-0 flight-time) (+ (the int (* f30-2 (+ -1.0 (the-as float v1-28)))) 180)) + (set! (-> arg0 info s3-0 flight-time) + (the-as time-frame (+ (the int (* f30-2 (+ -1.0 (the-as float v1-28)))) 180)) + ) ) - (let* ((s1-3 (max 150 (- s2-0 (-> arg0 info s3-0 flight-time)))) + (let* ((s1-3 (max 150 (- (the-as time-frame s2-0) (-> arg0 info s3-0 flight-time)))) (f30-3 60.0) (v1-38 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-39 (the-as number (logior #x3f800000 v1-38))) ) - (set! (-> arg0 info s3-0 stall-time) (+ (the int (* f30-3 (+ -1.0 (the-as float v1-39)))) 300 s1-3)) + (set! (-> arg0 info s3-0 stall-time) + (the-as time-frame (+ (the int (* f30-3 (+ -1.0 (the-as float v1-39)))) 300 s1-3)) + ) ) - (set! s2-0 (+ (-> arg0 info s3-0 flight-time) (-> arg0 info s3-0 stall-time))) + (set! s2-0 (the-as int (+ (-> arg0 info s3-0 flight-time) (-> arg0 info s3-0 stall-time)))) ) (vector-float*! s5-0 s5-0 0.16666667) (vector-! s5-0 (-> self entity extra trans) s5-0) @@ -2180,7 +2186,7 @@ ;; WARN: Stack slot load at 64 mismatch: defined as size 4, got size 16 (defbehavior robotboss-redshot robotboss ((arg0 redshot-launch-info) (arg1 symbol)) - (local-vars (sv-32 redshot-launch-info) (sv-48 vector) (sv-64 float) (sv-80 int) (sv-96 int)) + (local-vars (sv-32 redshot-launch-info) (sv-48 vector) (sv-64 float) (sv-80 time-frame) (sv-96 time-frame)) (set! sv-32 arg0) (let ((s5-0 arg1)) (+! (-> self children-spawned) 1) @@ -2699,7 +2705,7 @@ (set-vector! (-> self desired-loc) 8192.0 -40960.0 327680.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -22528.0) (set-setting! *setting-control* self 'sound-flava #f (the-as float 40.0) 48) (none) @@ -2955,7 +2961,7 @@ (set-vector! (-> self desired-loc) 16384.0 -81920.0 716800.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -24576.0) (play-ambient (-> self ambient) "MAI-AM01" #t (the-as vector #f)) (none) @@ -3245,14 +3251,18 @@ (behavior () (robotboss-always-trans robotboss-green-dark-bomb) (cond - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 120) (< (-> self children-spawned) 1)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 0.4)) + (< (-> self children-spawned) 1) + ) (robotboss-greenshot (new 'static 'vector) (the-as float 24576.0) 600 #t) (ja-channel-push! 1 60) (let ((v1-9 (-> self skel root-channel 0))) (set! (-> v1-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 360) (< (-> self children-spawned) 3)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 1.2)) + (< (-> self children-spawned) 3) + ) (robotboss-greenshot (new 'static 'vector :x 8192.0) (the-as float 16384.0) 600 #t) (robotboss-greenshot (new 'static 'vector :z 8192.0) (the-as float 32768.0) 660 #f) (ja-channel-push! 1 60) @@ -3260,7 +3270,9 @@ (set! (-> v1-20 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 780) (< (-> self children-spawned) 6)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 2.6)) + (< (-> self children-spawned) 6) + ) (robotboss-greenshot (new 'static 'vector :z 12288.0) (the-as float 20480.0) 600 #t) (robotboss-greenshot (new 'static 'vector :x 8192.0) (the-as float 8192.0) 660 #f) (robotboss-greenshot (new 'static 'vector) (the-as float 36864.0) 720 #f) @@ -3269,14 +3281,18 @@ (set! (-> v1-32 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 1200) (< (-> self children-spawned) 7)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 4)) + (< (-> self children-spawned) 7) + ) (robotboss-greenshot (new 'static 'vector) (the-as float 24576.0) 600 #t) (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 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 1650) (< (-> self children-spawned) 9)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 5.5)) + (< (-> self children-spawned) 9) + ) (robotboss-greenshot (new 'static 'vector) (the-as float 12288.0) 600 #t) (robotboss-greenshot (new 'static 'vector :x 4096.0 :z 12288.0) (the-as float 32768.0) 600 #f) (ja-channel-push! 1 60) @@ -3284,7 +3300,9 @@ (set! (-> v1-53 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 2400) (< (-> self children-spawned) 10)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 8)) + (< (-> self children-spawned) 10) + ) (+! (-> self children-spawned) 1) (let ((gp-0 (get-process *default-dead-pool* green-eco-lurker-gen #x4000))) (when gp-0 @@ -3305,10 +3323,12 @@ (set-vector! (-> self desired-loc) 24576.0 0.0 655360.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -26624.0) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 2460) (< (-> self children-spawned) 11)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 8.2)) + (< (-> self children-spawned) 11) + ) (+! (-> self children-spawned) 1) (robotboss-yellow-eco-on) ) @@ -3398,7 +3418,7 @@ (set-vector! (-> self desired-loc) 24576.0 0.0 245760.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -26624.0) (play-ambient (-> self ambient) "GOL-AM01" #t (the-as vector #f)) (set-setting! *setting-control* self 'sound-flava #f (the-as float 40.0) 47) @@ -3670,7 +3690,7 @@ (set-vector! (-> self desired-loc) 16384.0 -118784.0 614400.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -28672.0) (none) ) @@ -3796,7 +3816,7 @@ ) ) (cond - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 120) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 0.4)) (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -3845,7 +3865,7 @@ ) ) (cond - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 420) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 1.4)) (not (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -4128,7 +4148,7 @@ ) (robotboss-blue-beam 8 #t) (robotboss-blue-beam 9 #f) - (when (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) 3000 (the-as float 327680.0) self) + (when (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) (seconds 10) (the-as float 327680.0) self) (let* ((v1-73 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-74 (the-as number (logior #x3f800000 v1-73))) (f0-2 (+ -1.0 (the-as float v1-74))) diff --git a/goal_src/levels/finalboss/sage-finalboss-FIN.gc b/goal_src/levels/finalboss/sage-finalboss-FIN.gc index 3f6b5021ed..22711c14e1 100644 --- a/goal_src/levels/finalboss/sage-finalboss-FIN.gc +++ b/goal_src/levels/finalboss/sage-finalboss-FIN.gc @@ -40,11 +40,11 @@ ) (deftype plat-eco-finalboss (plat-eco) - ((force-dest float :offset-assert 360) - (targ-dest float :offset-assert 364) - (dest float :offset-assert 368) - (speed float :offset-assert 372) - (touch-time int64 :offset-assert 376) + ((force-dest float :offset-assert 360) + (targ-dest float :offset-assert 364) + (dest float :offset-assert 368) + (speed float :offset-assert 372) + (touch-time time-frame :offset-assert 376) ) :heap-base #x110 :method-count-assert 33 @@ -84,7 +84,7 @@ ) ) (('ridden 'edge-grabbed) - (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) 600) + (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 2)) (set! (-> self targ-dest) (cond ((= (-> self path-pos) 0.0) (set! (-> self force-dest) -1.0) @@ -128,7 +128,7 @@ (let ((s5-0 (eval-path-curve! (-> self path) (new 'stack-no-clear 'vector) 0.0 'interp)) (gp-0 (eval-path-curve! (-> self path) (new 'stack-no-clear 'vector) 1.0 'interp)) ) - (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 3)) (set! (-> self targ-dest) -1.0) ) (set! (-> self dest) @@ -820,7 +820,7 @@ ((= (current-status (-> self tasks)) (task-status invalid)) ) (else - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) ) ) (dotimes (v1-84 9) @@ -1017,7 +1017,7 @@ (local-vars (s5-0 symbol)) (set! (-> self credits-played) #t) (set-blackout-frames 0) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (clear-pending-settings-from-process *setting-control* self 'sfx-volume) (clear-pending-settings-from-process *setting-control* self 'ambient-volume) (set-setting! *setting-control* self 'allow-pause #f 0.0 0) @@ -1064,9 +1064,9 @@ (clear-pending-settings-from-process *setting-control* self 'process-mask) (clear-pending-settings-from-process *setting-control* self 'music) (copy-settings-from-target! *setting-control*) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 15) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 0.05)) (suspend) ) ) diff --git a/goal_src/levels/firecanyon/assistant-firecanyon.gc b/goal_src/levels/firecanyon/assistant-firecanyon.gc index f6b120ed17..f51c2747c3 100644 --- a/goal_src/levels/firecanyon/assistant-firecanyon.gc +++ b/goal_src/levels/firecanyon/assistant-firecanyon.gc @@ -91,7 +91,7 @@ (not (movie?)) (not (level-hint-displayed?)) (not (and *cheat-mode* (cpad-hold? 0 l3))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 3000) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) ) ) (hide-hud) diff --git a/goal_src/levels/flut_common/flutflut.gc b/goal_src/levels/flut_common/flutflut.gc index 56ae93f4e4..daed63d44e 100644 --- a/goal_src/levels/flut_common/flutflut.gc +++ b/goal_src/levels/flut_common/flutflut.gc @@ -21,7 +21,7 @@ (path-data path-control 2 :offset-assert 208) (path-target path-control :offset 208) (path-flut path-control :offset 212) - (touch-time uint64 :offset-assert 216) + (touch-time time-frame :offset-assert 216) ) :pack-me :heap-base #x70 @@ -94,7 +94,7 @@ ) ) ((or (= v1-0 'touch) (= v1-0 'attack)) - (set! (-> self touch-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self touch-time) (-> *display* base-frame-counter)) #f ) ) @@ -143,7 +143,7 @@ ) (if (and *target* (logtest? (-> *target* control root-prim prim-core action) (collide-action ca-14)) - (< (- (-> *display* base-frame-counter) (the-as int (-> self touch-time))) 15) + (< (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 0.05)) ) (go-virtual pickup (method-of-object self idle)) ) @@ -224,7 +224,7 @@ (hide-hud) (level-hint-surpress!) (kill-current-level-hint '() '(sidekick voicebox) 'exit) - (when (and (hud-hidden?) (can-grab-display? (the-as process-taskable self))) + (when (and (hud-hidden?) (can-grab-display? self)) (let ((gp-0 (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning)) ) @@ -301,7 +301,7 @@ (suspend) ) (let ((s5-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-0) 300) + (until (>= (- (-> *display* base-frame-counter) s5-0) (seconds 1)) (flutflut-effect) (suspend) ) diff --git a/goal_src/levels/flut_common/target-flut.gc b/goal_src/levels/flut_common/target-flut.gc index 5c57341fe4..66c4669e78 100644 --- a/goal_src/levels/flut_common/target-flut.gc +++ b/goal_src/levels/flut_common/target-flut.gc @@ -22,12 +22,12 @@ (deftype flut-bank (basic) - ((jump-height-min meters :offset-assert 4) - (jump-height-max meters :offset-assert 8) - (double-jump-height-min meters :offset-assert 12) - (double-jump-height-max meters :offset-assert 16) - (air-attack-speed meters :offset-assert 20) - (ground-timeout int64 :offset-assert 24) + ((jump-height-min meters :offset-assert 4) + (jump-height-max meters :offset-assert 8) + (double-jump-height-min meters :offset-assert 12) + (double-jump-height-max meters :offset-assert 16) + (air-attack-speed meters :offset-assert 20) + (ground-timeout time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -36,12 +36,12 @@ (define *FLUT-bank* (new 'static 'flut-bank - :jump-height-min (meters 5.0) - :jump-height-max (meters 7.0) - :double-jump-height-min (meters 1.0) - :double-jump-height-max (meters 2.0) - :air-attack-speed (meters 20.0) - :ground-timeout (seconds 1.5) + :jump-height-min (meters 5) + :jump-height-max (meters 7) + :double-jump-height-min (meters 1) + :double-jump-height-max (meters 2) + :air-attack-speed (meters 20) + :ground-timeout (seconds 0.5) ) ) @@ -208,7 +208,7 @@ (or (= v1-2 (-> self draw art-group data 144)) (= v1-2 (-> self draw art-group data 145))) cfg-7 :delay - (empty) + (empty-form) ) ) (ja-channel-push! 1 99) @@ -981,10 +981,10 @@ (let ((f0-22 (ja-aframe-num 0))) (cond ((and (>= (-> self skel effect last-frame-num) 20.0) (< f0-22 20.0)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 120) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 (seconds 0.4)) ) ((and (< (-> self skel effect last-frame-num) 12.0) (>= f0-22 12.0)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 120) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 (seconds 0.4)) ) ) ) @@ -1063,7 +1063,7 @@ (if (logtest? (-> self control status) 1) (go target-flut-hit-ground) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 40960.0) (and (zero? (logand (-> self water flags) 512)) (zero? (logand (-> self state-flags) 2048)) @@ -1072,13 +1072,11 @@ ) (go target-flut-double-jump (-> *FLUT-bank* double-jump-height-min) (-> *FLUT-bank* double-jump-height-max)) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 61440.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -1086,13 +1084,9 @@ ) (go target-flut-air-attack (-> *FLUT-bank* air-attack-speed)) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -1102,12 +1096,7 @@ 'stuck (go target-flut-hit-ground) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (set! (-> self control unknown-float122) (seek (-> self control unknown-float122) @@ -1261,7 +1250,7 @@ (and (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (< 4096.0 (target-height-above-ground)) ) @@ -1269,12 +1258,7 @@ (go target-flut-air-attack (-> *FLUT-bank* air-attack-speed)) ) (if (!= (-> self state-time) (-> *display* base-frame-counter)) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) ) (if (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -1305,7 +1289,7 @@ (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 149)) num-func-seek!) ) (until (ja-done? 0) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 (seconds 0.1)) (suspend) (let ((a0-4 (-> self skel root-channel 0))) (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) @@ -1325,7 +1309,7 @@ (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 149)) num-func-seek!) ) (until (ja-done? 0) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 (seconds 0.1)) (suspend) (let ((a0-10 (-> self skel root-channel 0))) (set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1))) @@ -1336,7 +1320,7 @@ ) (while (< (-> (new 'static 'array float 1 8192.0) 0) (target-height-above-ground)) (suspend) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 (seconds 0.1)) (let ((a0-13 (-> self skel root-channel 0))) (set! (-> a0-13 param 0) 1.0) (joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-loop!) @@ -1414,7 +1398,7 @@ (behavior () (target-land-effect) (if (< 40960.0 (-> self control ground-impact-vel)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.2)) ) (set! (-> self control unknown-dword31) 0) (set! (-> self control unknown-dword33) 0) @@ -1487,15 +1471,11 @@ :trans (behavior () (when (or (logtest? (-> self control status) 1) - (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) + (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) ) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -1640,8 +1620,10 @@ (set! (-> *run-attack-mods* turnvv) 655360.0) (target-start-attack) (target-danger-set! 'flut-attack #f) - (when (and (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 75) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.25)) ) (let ((gp-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control quat))) (s5-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 32))) @@ -1691,7 +1673,7 @@ (and (>= (-> self control unknown-float63) 0.7) (zero? (logand (-> self control status) 32))) ) (begin - (set! (-> self control unknown-int21) (-> *display* base-frame-counter)) + (set! (-> self control unknown-int21) (the-as int (-> *display* base-frame-counter))) (set! (-> self control unknown-float81) 0.0) (let ((gp-0 (new-stack-vector0)) (f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1821,10 +1803,10 @@ (set! (-> a0-36 param 1) (-> self control unknown-surface01 align-speed)) (joint-control-channel-group-eval! a0-36 (the-as art-joint-anim #f) num-func-seek!) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> *flut-run-attack-mods* turnvv) 0.0) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! f30-0 (* f30-0 (the-as float (fmin 1.0 (the-as float (-> self control unknown-float140)))))) ) ) @@ -1969,13 +1951,9 @@ (remove-exit) (go target-flut-air-attack-hit-ground) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) 4096.0) - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) 4096.0) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -2048,7 +2026,7 @@ :enter (behavior () (target-land-effect) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 120) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.4)) (set! (-> self control unknown-dword31) 0) (set! (-> self control unknown-dword33) 0) (set! (-> self control unknown-surface00) *flut-air-attack-mods*) @@ -2149,9 +2127,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) - (when (and (not *pause-lock*) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) + (when (and (not *pause-lock*) (cpad-hold? (-> self control unknown-cpad-info00 number) r2)) (pickup-collectable! (-> self fact-info-target) (pickup-type eco-green) (the-as float 1.0) (the-as handle #f)) (go target-flut-stance) ) @@ -2214,7 +2190,7 @@ (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) (ja-channel-set! 0) (let ((s3-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s3-1) 300) + (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) (suspend) ) ) @@ -2372,7 +2348,7 @@ ) ) (let ((gp-4 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-4) 300) + (until (>= (- (-> *display* base-frame-counter) gp-4) (seconds 1)) (target-flut-falling-anim-trans) (vector-seek! (-> self draw color-mult) *zero-vector* (-> *display* seconds-per-frame)) (let ((s5-2 (new-stack-vector0)) @@ -2437,7 +2413,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-104 (suspend) - (set! v1-104 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) (not (movie?)))) + (set! v1-104 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (not (movie?)))) ) (go target-flut-stance) (none) @@ -2527,7 +2503,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.006666667 (the float (+ (- (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.006666667 (the float (+ (- (the-as int (-> self state-time))) (-> *display* base-frame-counter)))) + ) ) ) ) @@ -2658,7 +2637,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.0044444446 (the float (+ (- -150 (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.0044444446 (the float (+ (- (seconds -0.5) (-> self state-time)) (-> *display* base-frame-counter)))) + ) ) ) ) diff --git a/goal_src/levels/intro/evilbro.gc b/goal_src/levels/intro/evilbro.gc index b5b7d1cc5b..4e9525e65c 100644 --- a/goal_src/levels/intro/evilbro.gc +++ b/goal_src/levels/intro/evilbro.gc @@ -90,7 +90,7 @@ (v1-29 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-30 (the-as number (logior #x3f800000 v1-29))) ) - (< (- s5-0 (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-30))))))) gp-0) + (< (- s5-0 (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-30)))))))) gp-0) ) (suspend) ) @@ -127,7 +127,7 @@ (v1-54 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-55 (the-as number (logior #x3f800000 v1-54))) ) - (< (- s5-1 (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-55))))))) gp-3) + (< (- s5-1 (the-as time-frame (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-55)))))))) gp-3) ) (suspend) ) diff --git a/goal_src/levels/jungle/bouncer.gc b/goal_src/levels/jungle/bouncer.gc index 710a7689da..d06304a9dc 100644 --- a/goal_src/levels/jungle/bouncer.gc +++ b/goal_src/levels/jungle/bouncer.gc @@ -104,7 +104,7 @@ (set! (-> self smush) 0.0) (while #t (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + ((>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (let ((a0-1 (-> self skel root-channel 0))) (set! (-> a0-1 param 0) 0.0) (set! (-> a0-1 param 1) 0.1) @@ -140,7 +140,7 @@ (defstate bouncer-fire (springbox) :code (behavior () - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) (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) diff --git a/goal_src/levels/jungle/darkvine.gc b/goal_src/levels/jungle/darkvine.gc index a59ca3a458..0684df4fda 100644 --- a/goal_src/levels/jungle/darkvine.gc +++ b/goal_src/levels/jungle/darkvine.gc @@ -19,7 +19,7 @@ (dangerous symbol :offset-assert 184) (vulnerable symbol :offset-assert 188) (hit-player symbol :offset-assert 192) - (touch-time uint64 :offset-assert 200) + (touch-time time-frame :offset-assert 200) (player-attack-id int32 :offset-assert 208) ) :heap-base #x70 @@ -196,7 +196,7 @@ ) (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) + (seek-toward-yaw-angle! (-> self root-override) f30-0 32768.0 (seconds 0.5)) ) (suspend) (let ((a0-7 (-> self skel root-channel 0))) @@ -217,7 +217,7 @@ :post (behavior () (when (and (-> self hit-player) - (or (not *target*) (>= (- (-> *display* base-frame-counter) (the-as int (-> self touch-time))) 15)) + (or (not *target*) (>= (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 0.05))) ) (set-collide-offense (-> self root-override) 2 (collide-offense indestructible)) (set! (-> self hit-player) #f) @@ -272,7 +272,7 @@ ) (ja-channel-set! 0) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 600) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 2)) (suspend) ) ) @@ -295,7 +295,7 @@ ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 150) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.5)) (suspend) ) ) diff --git a/goal_src/levels/jungle/fisher-JUN.gc b/goal_src/levels/jungle/fisher-JUN.gc index 026c51e06f..db760cd4cd 100644 --- a/goal_src/levels/jungle/fisher-JUN.gc +++ b/goal_src/levels/jungle/fisher-JUN.gc @@ -165,15 +165,15 @@ ) (deftype fisher-params (structure) - ((timeout seconds :offset-assert 0) - (vel float :offset-assert 8) - (swing-min seconds :offset-assert 16) - (swing-max seconds :offset-assert 24) - (period seconds :offset-assert 32) - (fish-vel float :offset-assert 40) - (bad-percent float :offset-assert 44) - (deadly-percent float :offset-assert 48) - (powerup-percent float :offset-assert 52) + ((timeout time-frame :offset-assert 0) + (vel float :offset-assert 8) + (swing-min time-frame :offset-assert 16) + (swing-max time-frame :offset-assert 24) + (period time-frame :offset-assert 32) + (fish-vel float :offset-assert 40) + (bad-percent float :offset-assert 44) + (deadly-percent float :offset-assert 48) + (powerup-percent float :offset-assert 52) ) :allow-misaligned :method-count-assert 9 @@ -713,7 +713,7 @@ ) (new 'static 'fisher-params :timeout (seconds 2)) (new 'static 'fisher-params - :timeout (seconds 31535998.0) + :timeout (seconds 31535998) :vel 1.6 :swing-min (seconds 0.5) :swing-max (seconds 2) @@ -735,19 +735,19 @@ (paddle-vel float :offset-assert 436) (spawner float :offset-assert 440) (spawner-last float :offset-assert 444) - (spawn-time int64 :offset-assert 448) - (turn-time int64 :offset-assert 456) - (swing-time int64 :offset-assert 464) - (block-time int64 :offset-assert 472) + (spawn-time time-frame :offset-assert 448) + (turn-time time-frame :offset-assert 456) + (swing-time time-frame :offset-assert 464) + (block-time time-frame :offset-assert 472) (block int32 :offset-assert 480) (caught int32 :offset-assert 484) (missed int32 :offset-assert 488) (difficulty int32 :offset-assert 492) - (start-time int64 :offset-assert 496) - (ambient-big-one int64 :offset-assert 504) - (ambient-steady int64 :offset-assert 512) - (ambient-sagging int64 :offset-assert 520) - (ambient-almost int64 :offset-assert 528) + (start-time time-frame :offset-assert 496) + (ambient-big-one time-frame :offset-assert 504) + (ambient-steady time-frame :offset-assert 512) + (ambient-sagging time-frame :offset-assert 520) + (ambient-almost time-frame :offset-assert 528) (cheat-temp int32 :offset-assert 536) (hard symbol :offset-assert 540) (training symbol :offset-assert 544) @@ -890,7 +890,7 @@ (+! (-> 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)) - (seek-toward-heading-vec! (-> self root) (-> self dir) 291271.12 60) + (seek-toward-heading-vec! (-> self root) (-> self dir) 291271.12 (seconds 0.2)) (let ((f30-1 (+ 16384.0 (y-angle (-> self root)))) (gp-0 (new-stack-vector0)) ) @@ -1397,7 +1397,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.1)) (suspend) ) ) @@ -1487,7 +1487,7 @@ ) (cond ((and (< 0.3 f0-2) (< (+ (-> *FISHER-bank* max-caught) -30) (-> self caught))) - (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-almost)) 3000) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-almost)) (seconds 10)) (play-ambient (-> self ambient) "FIS-TA11" #t (-> self root-override trans)) ) (set! (-> self ambient-almost) (-> *display* base-frame-counter)) @@ -1496,14 +1496,14 @@ ((< 0.125 f0-2) ) ((< 0.1 f0-2) - (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-steady)) 3000) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-steady)) (seconds 10)) (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) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-sagging)) (seconds 10)) (play-ambient (-> self ambient) "FIS-TA07" #t (-> self root-override trans)) ) (set! (-> self ambient-sagging) (-> *display* base-frame-counter)) @@ -1515,7 +1515,7 @@ ) (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)) (-> self params timeout)) (set! (-> self block-time) (-> *display* base-frame-counter)) (+! (-> self block) 1) (mem-copy! @@ -1532,7 +1532,7 @@ (set! (-> self params vel) (- (-> self params vel))) ) (+! (-> self spawner) (* (-> self params vel) (-> *display* seconds-per-frame))) - (if (= (-> self params swing-min) #x1869f) + (if (= (-> self params swing-min) (seconds 333.33)) (set! (-> self spawner) (* 0.01 (the float (-> self params swing-max)))) ) (cond @@ -1546,12 +1546,12 @@ ) ) (when (and (nonzero? (-> self params period)) - (>= (- (-> *display* base-frame-counter) (-> self spawn-time)) (the-as int (-> self params period))) + (>= (- (-> *display* base-frame-counter) (-> self spawn-time)) (-> 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) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-big-one)) (seconds 30)) (play-ambient (-> self ambient) "FIS-TA03" #t (-> self root-override trans)) ) (set! (-> self ambient-big-one) (-> *display* base-frame-counter)) @@ -1738,7 +1738,7 @@ :virtual #t :trans (behavior () - (set-blackout-frames 5) + (set-blackout-frames (seconds 0.016666668)) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) self) (set! (-> a1-0 num-params) 2) @@ -1773,7 +1773,7 @@ (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) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 1) 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))) @@ -1786,7 +1786,7 @@ ) ) (else - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 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))) diff --git a/goal_src/levels/jungle/hopper.gc b/goal_src/levels/jungle/hopper.gc index 95e973963f..a302e7cc14 100644 --- a/goal_src/levels/jungle/hopper.gc +++ b/goal_src/levels/jungle/hopper.gc @@ -238,7 +238,7 @@ ) (set! (-> gp-0 frame-num) 0.0) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (suspend) (let ((a0-21 (-> self skel root-channel 0))) (set! (-> a0-21 param 0) 1.0) @@ -357,7 +357,7 @@ ) (set! (-> gp-0 frame-num) 0.0) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (suspend) (let ((a0-21 (-> self skel root-channel 0))) (set! (-> a0-21 param 0) 1.0) @@ -400,32 +400,32 @@ :die-anim 11 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 10.0) + :run-travel-speed (meters 10) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 6.0) + :walk-travel-speed (meters 6) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 1.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 3.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 3.0) + :jump-height-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/jungle/jungle-elevator.gc b/goal_src/levels/jungle/jungle-elevator.gc index f0fdf5c346..95e58a77ed 100644 --- a/goal_src/levels/jungle/jungle-elevator.gc +++ b/goal_src/levels/jungle/jungle-elevator.gc @@ -65,7 +65,7 @@ (send-event *target* 'reset-height) ) ) - (if (and (>= (-> self path-pos) 0.2) (< (- (-> *display* base-frame-counter) (-> self state-time)) 60)) + (if (and (>= (-> self path-pos) 0.2) (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2))) (load-commands-set! *level* (load-command-get-index *level* 'jungle 0)) ) (none) @@ -104,7 +104,7 @@ (t9-0) ) ) - (if (and (< (-> self path-pos) 0.8) (< (- (-> *display* base-frame-counter) (-> self state-time)) 60)) + (if (and (< (-> self path-pos) 0.8) (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2))) (load-commands-set! *level* (load-command-get-index *level* 'jungle 1)) ) (none) diff --git a/goal_src/levels/jungle/jungle-mirrors.gc b/goal_src/levels/jungle/jungle-mirrors.gc index 9a8706a655..cd3fc1631d 100644 --- a/goal_src/levels/jungle/jungle-mirrors.gc +++ b/goal_src/levels/jungle/jungle-mirrors.gc @@ -532,7 +532,7 @@ (old-camera-matrix matrix :inline :offset-assert 272) (reflector (pointer reflector) :offset-assert 336) (gauge-rot degrees :offset-assert 340) - (lock-time uint64 :offset-assert 344) + (lock-time time-frame :offset-assert 344) (aligned? symbol :offset-assert 352) (raised? symbol :offset-assert 356) (player-touching-grips? symbol :offset-assert 360) @@ -1501,7 +1501,7 @@ (hide-hud) (level-hint-surpress!) (kill-current-level-hint '() '(sidekick voicebox) 'exit) - (when (and (hud-hidden?) (can-grab-display? (the-as process-taskable self))) + (when (and (hud-hidden?) (can-grab-display? self)) (let ((s2-2 (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning)) ) @@ -1573,7 +1573,7 @@ ) :code (behavior () - (set! (-> self lock-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self lock-time) (-> *display* base-frame-counter)) (link-to-next-and-prev-actor (-> self link)) (periscope-find-next) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) @@ -1681,11 +1681,11 @@ (suspend) (while #t (if (not (-> self aligned?)) - (set! (-> self lock-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self lock-time) (-> *display* base-frame-counter)) ) (periscope-crosshair) (when (or (cpad-pressed? 0 triangle x) - (and (-> self aligned?) (>= (- (-> *display* base-frame-counter) (the-as int (-> self lock-time))) 900)) + (and (-> self aligned?) (>= (- (-> *display* base-frame-counter) (-> self lock-time)) (seconds 3))) ) (sound-stop (-> self sound-id)) (if (periscope-test-task-complete?) @@ -2116,7 +2116,7 @@ (send-event (ppointer->process v1-11) 'anim-mode 'play1) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 150) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.5)) (suspend) ) ) diff --git a/goal_src/levels/jungle/junglefish.gc b/goal_src/levels/jungle/junglefish.gc index d3a0e40726..c9e74046dc 100644 --- a/goal_src/levels/jungle/junglefish.gc +++ b/goal_src/levels/jungle/junglefish.gc @@ -345,29 +345,29 @@ nav-enemy-default-event-handler :player-look-at-joint 5 :run-travel-speed (meters 5.5) :run-rotate-speed (degrees 720.0) - :run-acceleration (meters 6.0) + :run-acceleration (meters 6) :run-turn-time (seconds 0.15) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 6.0) + :walk-acceleration (meters 6) :walk-turn-time (seconds 0.15) - :attack-shove-back (meters 1.0) + :attack-shove-back (meters 1) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 1.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 25.0) - :stop-chase-distance (meters 35.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 25) + :stop-chase-distance (meters 35) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #f diff --git a/goal_src/levels/jungle/junglesnake.gc b/goal_src/levels/jungle/junglesnake.gc index 0592207c3b..46e2ea4ef0 100644 --- a/goal_src/levels/jungle/junglesnake.gc +++ b/goal_src/levels/jungle/junglesnake.gc @@ -72,7 +72,7 @@ (deftype junglesnake (process-drawable) ((root-override collide-shape :offset 112) - (state-time2 int64 :offset-assert 176) + (state-time2 time-frame :offset-assert 176) (hit-player symbol :offset 184) (is-lethal? symbol :offset-assert 188) (refractory-delay int32 :offset-assert 192) diff --git a/goal_src/levels/jungleb/aphid.gc b/goal_src/levels/jungleb/aphid.gc index 6f823016c4..2b5ef5134f 100644 --- a/goal_src/levels/jungleb/aphid.gc +++ b/goal_src/levels/jungleb/aphid.gc @@ -166,7 +166,7 @@ :virtual #t :code (behavior () - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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)) @@ -253,7 +253,7 @@ :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) @@ -325,32 +325,32 @@ :die-anim 11 :neck-joint 10 :player-look-at-joint 5 - :run-travel-speed (meters 5.0) + :run-travel-speed (meters 5) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 24.0 :jump-anim-start-frame 10.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) :shadow-min-y (meters -0.25) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/jungleb/jungleb-obs.gc b/goal_src/levels/jungleb/jungleb-obs.gc index 4f2c6d950f..5e941e9661 100644 --- a/goal_src/levels/jungleb/jungleb-obs.gc +++ b/goal_src/levels/jungleb/jungleb-obs.gc @@ -15,7 +15,7 @@ (deftype eggtop (process-drawable) ((root-override collide-shape-moving :offset 112) - (cam-tracker uint64 :offset-assert 176) + (cam-tracker handle :offset-assert 176) (sound-id sound-id :offset-assert 184) ) :heap-base #x50 @@ -269,54 +269,51 @@ ) (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) + (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) (seconds 1)) + (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) (seconds 3)) + (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) diff --git a/goal_src/levels/jungleb/plant-boss.gc b/goal_src/levels/jungleb/plant-boss.gc index 44429de5e0..a423b32faa 100644 --- a/goal_src/levels/jungleb/plant-boss.gc +++ b/goal_src/levels/jungleb/plant-boss.gc @@ -24,7 +24,7 @@ (cam-tracker handle :offset-assert 240) (want-aphid-count int32 :offset-assert 248) (aphid-count int32 :offset-assert 252) - (aphid-spawn-time int64 :offset-assert 256) + (aphid-spawn-time time-frame :offset-assert 256) (interp float :offset-assert 264) (try int32 :offset-assert 268) (camera handle :offset-assert 272) @@ -102,7 +102,7 @@ ((root-override collide-shape-moving :offset 112) (side int32 :offset-assert 176) (state-object symbol :offset-assert 180) - (state-time-frame int64 :offset-assert 184) + (state-time-frame time-frame :offset-assert 184) ) :heap-base #x50 :method-count-assert 20 @@ -809,7 +809,7 @@ (behavior ((arg0 symbol)) (when (not arg0) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 1200) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 4)) (+! (-> self root-override trans z) (* -4096.0 (-> *display* seconds-per-frame))) (suspend) ) @@ -1108,8 +1108,8 @@ (case arg2 (('kill) (set! (-> self state-object) #t) - (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (-> arg3 param 0))))) - (set! (-> self state-time-frame) (the-as int v0-0)) + (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0)))))) + (set! (-> self state-time-frame) (the-as time-frame v0-0)) v0-0 ) ) @@ -1169,8 +1169,8 @@ (case arg2 (('kill) (set! (-> self state-object) #t) - (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (-> arg3 param 0))))) - (set! (-> self state-time-frame) (the-as int v0-0)) + (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0)))))) + (set! (-> self state-time-frame) (the-as time-frame v0-0)) v0-0 ) ) @@ -1458,7 +1458,7 @@ ) (camera-change-to "camera-222" 600 #f) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 600) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 2)) (suspend) ) ) @@ -1781,7 +1781,7 @@ ) ) ) - ((>= (- (-> *display* base-frame-counter) (-> self aphid-spawn-time)) 420) + ((>= (- (-> *display* base-frame-counter) (-> self aphid-spawn-time)) (seconds 1.4)) (let ((gp-1 (get-process *default-dead-pool* aphid #x4000))) (when (when gp-1 (let ((t9-5 (method-of-type aphid activate))) @@ -2547,7 +2547,7 @@ ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 1500) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 5)) (transform-post) (do-push-aways! (-> self root-override)) (suspend) diff --git a/goal_src/levels/lavatube/assistant-lavatube.gc b/goal_src/levels/lavatube/assistant-lavatube.gc index 084ff82c31..5fa09f1261 100644 --- a/goal_src/levels/lavatube/assistant-lavatube.gc +++ b/goal_src/levels/lavatube/assistant-lavatube.gc @@ -75,7 +75,7 @@ (not (movie?)) (not (level-hint-displayed?)) (not (and *cheat-mode* (cpad-hold? 0 l3))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 3000) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) ) ) (hide-hud) diff --git a/goal_src/levels/lavatube/lavatube-energy.gc b/goal_src/levels/lavatube/lavatube-energy.gc index 779cbad829..a36633b3e8 100644 --- a/goal_src/levels/lavatube/lavatube-energy.gc +++ b/goal_src/levels/lavatube/lavatube-energy.gc @@ -490,7 +490,37 @@ :event energydoor-open-handler :trans - (behavior () (none)) ;; todo + (behavior () + (let ((f30-0 (energydoor-player-dist))) + (cond + ((< f30-0 -450560.0) + (go energydoor-closing) + ) + ((and (not (task-closed? (-> self entity extra perm task) (task-status need-resolution))) + (< 61440.0 f30-0) + (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) 'open?) + (let ((t9-3 send-event-function) + (v1-7 (-> self alt-actor)) + ) + (not (t9-3 + (if v1-7 + (-> v1-7 extra process) + ) + a1-1 + ) + ) + ) + ) + ) + (go energydoor-closing) + ) + ) + ) + (none) + ) :code (behavior () (let ((v1-2 (-> self skel root-channel 0))) diff --git a/goal_src/levels/lavatube/lavatube-obs.gc b/goal_src/levels/lavatube/lavatube-obs.gc index c79922dbc8..10cb84f1f9 100644 --- a/goal_src/levels/lavatube/lavatube-obs.gc +++ b/goal_src/levels/lavatube/lavatube-obs.gc @@ -466,7 +466,7 @@ (deftype darkecobarrel-base (process-drawable) ((root-override collide-shape-moving :offset 112) (speed float :offset-assert 176) - (sync uint64 :offset-assert 184) + (sync time-frame :offset-assert 184) ) :heap-base #x50 :method-count-assert 20 @@ -476,7 +476,7 @@ (deftype darkecobarrel-mover (darkecobarrel-base) - ((start-time uint64 :offset-assert 192) + ((start-time time-frame :offset-assert 192) (hits int32 :offset-assert 200) (leak darkecobarrel-leak 1 :inline :offset-assert 208) (y-offset bouncing-float :inline :offset-assert 240) @@ -532,7 +532,7 @@ (+ (-> *display* base-frame-counter) (-> self sync)) ) -(defbehavior darkecobarrel-base-pos darkecobarrel-base ((arg0 int)) +(defbehavior darkecobarrel-base-pos darkecobarrel-base ((arg0 time-frame)) (if (< 0.0 (-> self speed)) (* (-> self speed) (the float (- (darkecobarrel-base-time) arg0))) (+ 1.0 (* (-> self speed) (the float (- (darkecobarrel-base-time) arg0)))) @@ -554,7 +554,7 @@ ) (defbehavior darkecobarrel-mover-pos darkecobarrel-mover () - (let ((f30-0 (darkecobarrel-base-pos (the-as int (-> self start-time))))) + (let ((f30-0 (darkecobarrel-base-pos (-> self start-time)))) (if (darkecobarrel-base-done? f30-0) (deactivate self) ) @@ -617,7 +617,7 @@ ) (suspend) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (dummy-18 self) @@ -740,7 +740,7 @@ (the-as (function none :behavior darkecobarrel-mover) pusher-post) ) -(defbehavior darkecobarrel-mover-init-by-other darkecobarrel-mover ((arg0 res-lump) (arg1 float) (arg2 uint) (arg3 uint)) +(defbehavior darkecobarrel-mover-init-by-other darkecobarrel-mover ((arg0 res-lump) (arg1 float) (arg2 time-frame) (arg3 time-frame)) (let ((s2-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s2-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s2-0 reaction) default-collision-reaction) @@ -826,7 +826,7 @@ darkecobarrel-mover-init-by-other (-> self entity) (-> self speed) - (- (darkecobarrel-base-time) gp-2) + (- (darkecobarrel-base-time) (the-as time-frame gp-2)) (-> self sync) ) (-> s5-0 ppointer) @@ -887,19 +887,20 @@ (local-vars (sv-16 res-tag)) (set! (-> obj root-override) (the-as collide-shape-moving (new 'process 'trsqv))) (darkecobarrel-base-init arg0) - (set! (-> obj sound) (new - 'process - 'ambient-sound - (new 'static 'sound-spec - :mask #x80 - :num 1.0 - :group #x1 - :sound-name (static-sound-name "lav-dark-eco") - :volume #x400 - :fo-max 30 - ) - (-> obj root-override trans) - ) + (set! (-> obj sound) + (new + 'process + 'ambient-sound + (new 'static 'sound-spec + :mask #x80 + :num 1.0 + :group #x1 + :sound-name (static-sound-name "lav-dark-eco") + :volume #x400 + :fo-max 30 + ) + (-> obj root-override trans) + ) ) (logior! (-> obj draw status) (draw-status drwf01)) (set! (-> obj speed) (/ 300.0 (res-lump-float (-> obj entity) 'speed :default 61440.0))) @@ -928,7 +929,9 @@ (dotimes (v1-19 (+ (-> obj spawn-array length) -1)) (+! (-> obj spawn-array (+ v1-19 1)) (-> obj spawn-array v1-19)) ) - (set! (-> obj sync) (the-as uint (the int (* (fabs (-> obj speed)) (res-lump-float (-> obj entity) 'sync))))) + (set! (-> obj sync) + (the-as time-frame (the int (* (fabs (-> obj speed)) (res-lump-float (-> obj entity) 'sync)))) + ) (set! (-> obj speed) (/ 1.0 (* (-> obj speed) (path-distance (-> obj path))))) (let ((s5-3 (mod (darkecobarrel-base-time) (darkecobarrel-cycle-time)))) (set! (-> obj cur-spawn) 0) @@ -941,7 +944,7 @@ (+! s5-3 (-> obj spawn-array (-> obj cur-spawn))) ) (let ((s4-0 (-> obj cur-spawn)) - (s5-4 (- (darkecobarrel-base-time) (- s5-3 (-> obj spawn-array (-> obj cur-spawn))))) + (s5-4 (- (darkecobarrel-base-time) (the-as time-frame (- s5-3 (-> obj spawn-array (-> obj cur-spawn)))))) ) (until (darkecobarrel-base-done? (darkecobarrel-base-pos s5-4)) (let ((s3-0 (get-process *default-dead-pool* darkecobarrel-mover #x4000))) @@ -953,7 +956,7 @@ (-> s3-0 ppointer) ) ) - (set! s5-4 (- s5-4 (-> obj spawn-array s4-0))) + (set! s5-4 (- s5-4 (the-as time-frame (-> obj spawn-array s4-0)))) (+! s4-0 -1) (if (< s4-0 0) (set! s4-0 (+ (-> obj spawn-array length) -1)) @@ -1295,7 +1298,7 @@ ) (suspend) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (dummy-18 self) diff --git a/goal_src/levels/maincave/baby-spider.gc b/goal_src/levels/maincave/baby-spider.gc index 60f954ee4d..49f1a0153b 100644 --- a/goal_src/levels/maincave/baby-spider.gc +++ b/goal_src/levels/maincave/baby-spider.gc @@ -10,42 +10,42 @@ ;; DECOMP BEGINS (deftype baby-spider-spawn-params (structure) - ((hatched? symbol :offset-assert 0) - (fast-start? symbol :offset-assert 4) - (hack-move-above-ground? symbol :offset-assert 8) - (die-if-not-visible? symbol :offset-assert 12) - (pickup int32 :offset-assert 16) - (pickup-amount int32 :offset-assert 20) - (event-death symbol :offset-assert 24) - (delay-before-dying-if-not-visible int64 :offset-assert 32) + ((hatched? symbol :offset-assert 0) + (fast-start? symbol :offset-assert 4) + (hack-move-above-ground? symbol :offset-assert 8) + (die-if-not-visible? symbol :offset-assert 12) + (pickup int32 :offset-assert 16) + (pickup-amount int32 :offset-assert 20) + (event-death symbol :offset-assert 24) + (delay-before-dying-if-not-visible time-frame :offset-assert 32) ) :method-count-assert 11 :size-assert #x28 :flag-assert #xb00000028 (:methods - (init! (_type_ symbol symbol symbol symbol int int symbol) int 9) - (set-delay! (_type_ int) int 10) + (init! (_type_ symbol symbol symbol symbol int int symbol) none 9) + (set-delay! (_type_ time-frame) none 10) ) ) (deftype baby-spider (nav-enemy) - ((die-if-not-visible? symbol :offset-assert 400) - (hack-move-above-ground? symbol :offset-assert 404) - (state-float float :offset-assert 408) - (wiggle-angle float :offset-assert 412) - (delta-wiggle-angle float :offset-assert 416) - (wiggle-factor float :offset-assert 420) - (event-death symbol :offset-assert 424) - (delay-before-dying-if-not-visible int64 :offset-assert 432) - (chase-rest-time int64 :offset-assert 440) - (target-nav-time int64 :offset-assert 448) - (unknown00 basic :offset-assert 456) - (unknown01 basic :offset-assert 460) - (wiggle-time int64 :offset-assert 464) - (last-visible-time int64 :offset-assert 472) - (up-vector vector :inline :offset-assert 480) - (state-vector vector :inline :offset-assert 496) + ((die-if-not-visible? symbol :offset-assert 400) + (hack-move-above-ground? symbol :offset-assert 404) + (state-float float :offset-assert 408) + (wiggle-angle float :offset-assert 412) + (delta-wiggle-angle float :offset-assert 416) + (wiggle-factor float :offset-assert 420) + (event-death symbol :offset-assert 424) + (delay-before-dying-if-not-visible time-frame :offset-assert 432) + (chase-rest-time time-frame :offset-assert 440) + (target-nav-time time-frame :offset-assert 448) + (unknown00 basic :offset-assert 456) + (unknown01 basic :offset-assert 460) + (wiggle-time time-frame :offset-assert 464) + (last-visible-time time-frame :offset-assert 472) + (up-vector vector :inline :offset-assert 480) + (state-vector vector :inline :offset-assert 496) ) :heap-base #x190 :method-count-assert 76 @@ -80,32 +80,32 @@ :taunt-anim 12 :die-anim 13 :neck-joint 18 - :run-travel-speed (meters 7.0) + :run-travel-speed (meters 7) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.07333333) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 3) + :frustration-time (seconds 1.5) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 2.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -133,32 +133,32 @@ :taunt-anim 12 :die-anim 13 :neck-joint 18 - :run-travel-speed (meters 7.0) + :run-travel-speed (meters 7) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.07333333) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 80.0) - :stop-chase-distance (meters 90.0) - :frustration-distance (meters 3.0) - :frustration-time #x1c2 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 80) + :stop-chase-distance (meters 90) + :frustration-distance (meters 3) + :frustration-time (seconds 1.5) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 2.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -190,15 +190,13 @@ (set! (-> obj pickup) arg4) (set! (-> obj pickup-amount) arg5) (set! (-> obj event-death) arg6) - (let ((v0-0 600)) - (set! (-> obj delay-before-dying-if-not-visible) v0-0) - v0-0 - ) + (set! (-> obj delay-before-dying-if-not-visible) (seconds 2)) + (none) ) -(defmethod set-delay! baby-spider-spawn-params ((obj baby-spider-spawn-params) (arg0 int)) +(defmethod set-delay! baby-spider-spawn-params ((obj baby-spider-spawn-params) (arg0 time-frame)) (set! (-> obj delay-before-dying-if-not-visible) arg0) - arg0 + (none) ) (defmethod dummy-44 baby-spider ((obj baby-spider) (arg0 process) (arg1 event-message-block)) @@ -526,9 +524,9 @@ baby-spider-default-event-handler :code (behavior () (set! (-> self target-nav-time) (-> *display* base-frame-counter)) - (set! (-> self wiggle-time) (+ (-> *display* base-frame-counter) -3000)) + (set! (-> self wiggle-time) (+ (-> *display* base-frame-counter) (seconds -10))) (set! (-> self wiggle-angle) 0.0) - (set! (-> self chase-rest-time) (rand-vu-int-range 300 1200)) + (set! (-> self chase-rest-time) (rand-vu-int-range (seconds 1) (seconds 4))) (ja-channel-push! 1 51) (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! @@ -539,7 +537,7 @@ baby-spider-default-event-handler (set! (-> gp-0 frame-num) 0.0) ) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) 300) + (when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) (seconds 1)) (set! (-> self wiggle-time) (-> *display* base-frame-counter)) (dummy-51 self) ) @@ -598,7 +596,7 @@ baby-spider-default-event-handler :code (behavior () (set! (-> self rotate-speed) 1456355.5) - (set! (-> self turn-time) 22) + (set! (-> self turn-time) (seconds 0.07333333)) (let ((f30-0 (rand-vu-float-range 0.8 1.2))) (while #t (logior! (-> self nav-enemy-flags) 16) @@ -852,8 +850,8 @@ baby-spider-default-event-handler (set! (-> obj wiggle-angle) 0.0) (set! (-> obj delta-wiggle-angle) 910.2222) (set! (-> obj wiggle-factor) 1.5) - (set! (-> obj reaction-time) (rand-vu-int-range 30 240)) - (set! (-> obj chase-rest-time) 300) + (set! (-> obj reaction-time) (rand-vu-int-range (seconds 0.1) (seconds 0.8))) + (set! (-> obj chase-rest-time) (seconds 1)) (set! (-> obj up-vector quad) (-> *y-vector* quad)) 0 (none) @@ -898,7 +896,7 @@ baby-spider-default-event-handler (defmethod init-from-entity! baby-spider ((obj baby-spider) (arg0 entity-actor)) (set! (-> obj die-if-not-visible?) #f) - (set! (-> obj delay-before-dying-if-not-visible) 600) + (set! (-> obj delay-before-dying-if-not-visible) (seconds 2)) (set! (-> obj hack-move-above-ground?) #f) (set! (-> obj event-death) #f) (initialize-collision obj) diff --git a/goal_src/levels/maincave/cavecrystal-light.gc b/goal_src/levels/maincave/cavecrystal-light.gc index 752f3832e5..21c8f197ca 100644 --- a/goal_src/levels/maincave/cavecrystal-light.gc +++ b/goal_src/levels/maincave/cavecrystal-light.gc @@ -27,7 +27,7 @@ (deftype cavecrystal-light-control (basic) ((active-count int32 :offset-assert 4) (head cavecrystal-light :offset-assert 8) - (last-known-valid-time int64 :offset-assert 16) + (last-known-valid-time time-frame :offset-assert 16) (crystal cavecrystal-light 7 :inline :offset-assert 32) ) :method-count-assert 15 diff --git a/goal_src/levels/maincave/dark-crystal.gc b/goal_src/levels/maincave/dark-crystal.gc index 198bf4abb2..a72c85535d 100644 --- a/goal_src/levels/maincave/dark-crystal.gc +++ b/goal_src/levels/maincave/dark-crystal.gc @@ -487,7 +487,7 @@ (set! (-> self draw color-mult quad) (-> self lit-color-mult quad)) (set! (-> self draw color-emissive quad) (-> self lit-color-emissive quad)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (suspend) ) (set! (-> self draw color-mult quad) (-> self unlit-color-mult quad)) @@ -512,7 +512,7 @@ (clear-collide-with-as (-> self root-override)) (let ((gp-0 (new 'stack 'joint-exploder-tuning 0))) (when (-> self underwater?) - (set! (-> gp-0 duration) (the-as uint 1200)) + (set! (-> gp-0 duration) (seconds 4)) (set! (-> gp-0 gravity) -20480.0) (set! (-> gp-0 rot-speed) 4.2) (set-vector! (-> gp-0 fountain-rand-transv-lo) -40960.0 20480.0 -40960.0 1.0) @@ -568,7 +568,7 @@ ) ) (let ((s5-4 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-4) 75) + (until (>= (- (-> *display* base-frame-counter) s5-4) (seconds 0.25)) (suspend) ) ) diff --git a/goal_src/levels/maincave/driller-lurker.gc b/goal_src/levels/maincave/driller-lurker.gc index 754d448417..0d8865bb1e 100644 --- a/goal_src/levels/maincave/driller-lurker.gc +++ b/goal_src/levels/maincave/driller-lurker.gc @@ -33,10 +33,10 @@ (neck joint-mod :offset-assert 244) (drill joint-mod :offset-assert 248) (sound2 ambient-sound :offset-assert 252) - (last-update-time uint64 :offset-assert 256) - (last-player-path-u-time uint64 :offset-assert 264) - (started-chasing-time uint64 :offset-assert 272) - (hit-player-time uint64 :offset-assert 280) + (last-update-time time-frame :offset-assert 256) + (last-player-path-u-time time-frame :offset-assert 264) + (started-chasing-time time-frame :offset-assert 272) + (hit-player-time time-frame :offset-assert 280) (player-attack-id uint64 :offset-assert 288) ) :heap-base #xc0 @@ -276,7 +276,7 @@ ) (when (send-event-function arg0 a1-6) (set! (-> self hit-player?) #t) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-overeride) 2 (collide-offense no-offense)) (let ((v1-39 (-> self mode))) (if (or (zero? v1-39) (= v1-39 1) (= v1-39 2)) @@ -325,7 +325,7 @@ ) (when (send-event-function arg0 a1-11) (set! (-> self hit-player?) #t) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-overeride) 2 (collide-offense no-offense)) (let ((v1-62 (-> self mode))) (if (or (zero? v1-62) (= v1-62 1) (= v1-62 2)) @@ -342,7 +342,7 @@ (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)) + (set! (-> obj last-update-time) v1-1) (let* ((f0-0 (-> obj path-speed)) (f1-1 (seek f0-0 (-> obj targ-path-speed) (* 12288.0 (-> *display* seconds-per-frame)))) ) @@ -481,14 +481,14 @@ (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) + (set! f30-3 (if (>= (- (-> *display* base-frame-counter) (-> obj started-chasing-time)) (seconds 2.25)) (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) + (set! f30-3 (if (>= (- (-> *display* base-frame-counter) (-> obj started-chasing-time)) (seconds 5.75)) (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame))) (seek f30-3 0.0 (* 600746.7 (-> *display* seconds-per-frame))) ) @@ -523,7 +523,7 @@ ) (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) + (>= (- (-> *display* base-frame-counter) (-> obj hit-player-time)) (seconds 0.05)) ) ) ) @@ -536,7 +536,7 @@ (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)) + (set! (-> obj last-player-path-u-time) v1-1) (cond (*target* (let* ((s5-0 (-> obj path)) @@ -934,7 +934,7 @@ :enter (behavior ((arg0 symbol)) (if arg0 - (set! (-> self started-chasing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self started-chasing-time) (-> *display* base-frame-counter)) ) (set! (-> self mode) (the-as uint 3)) (set! (-> self state-time) (-> *display* base-frame-counter)) @@ -949,7 +949,7 @@ (if (dummy-26 self) (go driller-lurker-patrol) ) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-chasing-time))) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self started-chasing-time)) (seconds 3)) (go driller-lurker-jammed-standing) ) (let* ((gp-0 (-> self path)) @@ -1044,12 +1044,12 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (go driller-lurker-chase #f) ) ) ) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-chasing-time))) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self started-chasing-time)) (seconds 3)) (go driller-lurker-jammed-standing) ) (dummy-20 self #f (the-as target #t)) @@ -1139,7 +1139,7 @@ (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set! (-> self started-chasing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self started-chasing-time) (-> *display* base-frame-counter)) (cond (*target* (go driller-lurker-chase #f) @@ -1224,13 +1224,13 @@ (local-vars (sv-16 res-tag)) (set! (-> obj hit-player?) #f) (set! (-> obj played-drill-sound?) #f) - (set! (-> obj hit-player-time) (the-as uint 0)) + (set! (-> obj hit-player-time) 0) (set! (-> obj mode) (the-as uint 0)) (set! (-> obj drill-rz) 0.0) (set! (-> obj drill-speed) 72817.78) - (set! (-> obj last-update-time) (the-as uint 0)) - (set! (-> obj last-player-path-u-time) (the-as uint 0)) - (set! (-> obj started-chasing-time) (the-as uint 0)) + (set! (-> obj last-update-time) 0) + (set! (-> obj last-player-path-u-time) 0) + (set! (-> obj started-chasing-time) 0) (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))) diff --git a/goal_src/levels/maincave/gnawer.gc b/goal_src/levels/maincave/gnawer.gc index c1412d5183..e3099d2481 100644 --- a/goal_src/levels/maincave/gnawer.gc +++ b/goal_src/levels/maincave/gnawer.gc @@ -53,17 +53,17 @@ (deftype gnawer-route (structure) - ((src-pt-index int32 :offset-assert 0) - (dest-pt-index int32 :offset-assert 4) - (total-travel-time uint64 :offset-assert 8) - (src-ang float :offset-assert 16) - (dest-ang float :offset-assert 20) - (delta-ang float :offset-assert 24) - (surface-dist float :offset-assert 28) - (total-dist float :offset-assert 32) - (src-pt-offset vector :inline :offset-assert 48) - (dest-pt-offset vector :inline :offset-assert 64) - (surface-dir vector :inline :offset-assert 80) + ((src-pt-index int32 :offset-assert 0) + (dest-pt-index int32 :offset-assert 4) + (total-travel-time time-frame :offset-assert 8) + (src-ang float :offset-assert 16) + (dest-ang float :offset-assert 20) + (delta-ang float :offset-assert 24) + (surface-dist float :offset-assert 28) + (total-dist float :offset-assert 32) + (src-pt-offset vector :inline :offset-assert 48) + (dest-pt-offset vector :inline :offset-assert 64) + (surface-dir vector :inline :offset-assert 80) ) :method-count-assert 9 :size-assert #x60 @@ -85,7 +85,7 @@ (anim-speed float :offset-assert 212) (part2 sparticle-launch-control :offset-assert 216) (sound2 ambient-sound :offset-assert 220) - (last-hit-time uint64 :offset-assert 224) + (last-hit-time time-frame :offset-assert 224) (post-trans vector :inline :offset-assert 240) (fall-trans vector :inline :offset-assert 256) (route gnawer-route :inline :offset-assert 272) @@ -580,7 +580,7 @@ ) ) (set! (-> obj route total-travel-time) - (the-as uint (the int (/ (-> obj route total-dist) (* 0.016666668 (-> obj speed))))) + (the-as time-frame (the int (/ (-> obj route total-dist) (* 0.016666668 (-> obj speed))))) ) (none) ) @@ -1204,7 +1204,7 @@ ) ) (else - (if (< (- (-> *display* base-frame-counter) (the-as int (-> self last-hit-time))) 150) + (if (< (- (-> *display* base-frame-counter) (-> self last-hit-time)) (seconds 0.5)) (return #f) ) (let* ((a2-1 (the-as object (-> arg3 param 0))) @@ -1235,7 +1235,7 @@ (logclear! (-> self mask) (process-mask actor-pause)) (set! (-> self route-dist) 0.0) (dummy-24 self) - (set! (-> self last-hit-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hit-time) (-> *display* base-frame-counter)) (dummy-26 self) (none) ) @@ -1433,7 +1433,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (suspend) ) ) @@ -1636,7 +1636,7 @@ (set! (-> obj show-damage?) #f) (set! (-> obj hit-points) 6) (set! (-> obj speed) 24576.0) - (set! (-> obj last-hit-time) (the-as uint 0)) + (set! (-> obj last-hit-time) 0) (set! (-> obj route-dist) 0.0) (logclear! (-> obj mask) (process-mask attackable)) (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) diff --git a/goal_src/levels/maincave/maincave-obs.gc b/goal_src/levels/maincave/maincave-obs.gc index 3b05662508..05a949e0b5 100644 --- a/goal_src/levels/maincave/maincave-obs.gc +++ b/goal_src/levels/maincave/maincave-obs.gc @@ -551,7 +551,7 @@ (dummy-41 (-> self root-override) s4-0 (-> self shove-up)) (cond ((or (= (-> *target* control unknown-surface00 mode) 'air) - (>= (+ (-> *display* base-frame-counter) -60) (-> *target* control unknown-dword11)) + (>= (+ (-> *display* base-frame-counter) (seconds -0.2)) (-> *target* control unknown-dword11)) (< 0.75 (-> *target* control poly-normal y)) ) (let ((a1-5 (new 'stack-no-clear 'event-message-block))) @@ -596,7 +596,7 @@ (behavior () (let* ((v1-0 (-> self cycle-speed)) (a0-1 (- v1-0 (-> self cycle-pause))) - (gp-0 (mod (+ (-> *display* base-frame-counter) (-> self cycle-offset)) v1-0)) + (gp-0 (mod (+ (-> *display* base-frame-counter) (the-as time-frame (-> self cycle-offset))) v1-0)) ) (cond ((< gp-0 a0-1) @@ -1033,7 +1033,7 @@ (elev-mode uint64 :offset-assert 176) (elev-type int32 :offset-assert 184) (prev-frame-num float :offset-assert 188) - (last-update-bounce-time uint64 :offset-assert 192) + (last-update-bounce-time time-frame :offset-assert 192) (orig-trans vector :inline :offset-assert 208) (sync sync-info :inline :offset-assert 224) (smush smush-control :inline :offset-assert 232) @@ -1087,7 +1087,7 @@ (defmethod TODO-RENAME-20 caveelevator ((obj caveelevator)) (let ((v1-1 (-> *display* base-frame-counter))) (when (!= v1-1 (-> obj last-update-bounce-time)) - (set! (-> obj last-update-bounce-time) (the-as uint v1-1)) + (set! (-> obj last-update-bounce-time) v1-1) (when (!= (-> obj smush amp) 0.0) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> obj orig-trans quad)) @@ -1302,7 +1302,7 @@ (behavior () (cond ((zero? (-> self root-override riders num-riders)) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (go caveelevator-one-way-travel-to-start) ) ) @@ -1423,7 +1423,7 @@ (defmethod init-from-entity! caveelevator ((obj caveelevator) (arg0 entity-actor)) (local-vars (v1-43 int) (sv-16 res-tag)) (set! (-> obj prev-frame-num) 10000.0) - (set! (-> obj last-update-bounce-time) (the-as uint 0)) + (set! (-> obj last-update-bounce-time) 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)) diff --git a/goal_src/levels/maincave/mother-spider-egg.gc b/goal_src/levels/maincave/mother-spider-egg.gc index 04690eca4a..c4a139bc05 100644 --- a/goal_src/levels/maincave/mother-spider-egg.gc +++ b/goal_src/levels/maincave/mother-spider-egg.gc @@ -18,7 +18,7 @@ (root-override collide-shape-moving :offset 112) (anim-speed float :offset-assert 176) (part2 sparticle-launch-control :offset-assert 180) - (falling-start-time uint64 :offset-assert 184) + (falling-start-time time-frame :offset-assert 184) (fall-dest vector :inline :offset-assert 192) (fall-dest-normal vector :inline :offset-assert 208) (broken-look lod-set :inline :offset-assert 224) @@ -229,16 +229,14 @@ ) :enter (behavior () - (set! (-> self falling-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self falling-start-time) (-> *display* base-frame-counter)) (none) ) :trans (behavior () - (let ((f30-0 (fmin - (the float (- (-> *display* base-frame-counter) (the-as int (-> self falling-start-time)))) - (-> self traj time) - ) - ) + (let ((f30-0 + (fmin (the float (- (-> *display* base-frame-counter) (-> self falling-start-time))) (-> self traj time)) + ) ) (let ((f28-0 (/ f30-0 (-> self traj time)))) (eval-position! (-> self traj) f30-0 (-> self root-override trans)) @@ -314,7 +312,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (go mother-spider-egg-hatch) ) (draw-egg-shadow self (-> self shadow-pos) #f) @@ -514,11 +512,9 @@ (defstate mother-spider-egg-die-while-falling (mother-spider-egg) :trans (behavior () - (let ((f0-2 (fmin - (the float (- (-> *display* base-frame-counter) (the-as int (-> self falling-start-time)))) - (-> self traj time) - ) - ) + (let ((f0-2 + (fmin (the float (- (-> *display* base-frame-counter) (-> self falling-start-time))) (-> self traj time)) + ) ) (eval-position! (-> self traj) f0-2 (-> self root-override trans)) ) @@ -598,7 +594,7 @@ (defbehavior mother-spider-egg-init-by-other mother-spider-egg ((arg0 entity) (arg1 vector) (arg2 vector) (arg3 vector)) (set! (-> self entity) arg0) (set! (-> self anim-speed) (rand-vu-float-range 0.8 1.2)) - (set! (-> self falling-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self falling-start-time) (-> *display* base-frame-counter)) (set! (-> self fall-dest quad) (-> arg2 quad)) (set! (-> self fall-dest-normal quad) (-> arg3 quad)) (let ((s4-1 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) diff --git a/goal_src/levels/maincave/mother-spider-h.gc b/goal_src/levels/maincave/mother-spider-h.gc index 979ad761ed..38db94ace1 100644 --- a/goal_src/levels/maincave/mother-spider-h.gc +++ b/goal_src/levels/maincave/mother-spider-h.gc @@ -95,15 +95,15 @@ (check-z-thresh? symbol :offset-assert 276) (activate-z-thresh float :offset-assert 280) (deactivate-z-thresh float :offset-assert 284) - (spawned-time uint64 :offset-assert 288) - (last-update-time uint64 :offset-assert 296) - (spin-time uint64 :offset-assert 304) - (last-spit-time uint64 :offset-assert 312) - (last-player-in-air-time uint64 :offset-assert 320) - (started-birthing-time uint64 :offset-assert 328) + (spawned-time time-frame :offset-assert 288) + (last-update-time time-frame :offset-assert 296) + (spin-time time-frame :offset-assert 304) + (last-spit-time time-frame :offset-assert 312) + (last-player-in-air-time time-frame :offset-assert 320) + (started-birthing-time time-frame :offset-assert 328) (neck joint-mod :offset-assert 336) (player-attack-id uint64 :offset-assert 344) - (leg-socket-part-time uint64 6 :offset-assert 352) + (leg-socket-part-time time-frame 6 :offset-assert 352) (orient-rot vector :inline :offset-assert 400) (anchor-trans vector :inline :offset-assert 416) (thread-min-trans vector :inline :offset-assert 432) diff --git a/goal_src/levels/maincave/mother-spider-proj.gc b/goal_src/levels/maincave/mother-spider-proj.gc index c9b930c1e4..e4e628fa9b 100644 --- a/goal_src/levels/maincave/mother-spider-proj.gc +++ b/goal_src/levels/maincave/mother-spider-proj.gc @@ -340,7 +340,7 @@ (set! (-> obj max-turn) 5916.4443) (set! (-> obj tween) 0.02) (set! (-> obj attack-mode) 'mother-spider-proj) - (set! (-> obj timeout) (the-as uint 1200)) + (set! (-> obj timeout) (seconds 4)) (set! (-> obj target quad) (-> (target-pos 0) quad)) (set! (-> obj target y) (+ 4915.2 (-> obj target y))) (set! (-> obj target-base quad) (-> obj target quad)) diff --git a/goal_src/levels/maincave/mother-spider.gc b/goal_src/levels/maincave/mother-spider.gc index 7271eaaea8..2d8a3060b4 100644 --- a/goal_src/levels/maincave/mother-spider.gc +++ b/goal_src/levels/maincave/mother-spider.gc @@ -392,7 +392,7 @@ (defmethod spawn-child mother-spider ((obj mother-spider) (arg0 vector) (arg1 vector) (arg2 symbol)) (let ((s3-0 (new 'stack-no-clear 'baby-spider-spawn-params))) (init! s3-0 arg2 #f #t #f 7 1 'untrigger) - (set-delay! s3-0 2700) + (set-delay! s3-0 (seconds 9)) (let ((s2-0 (get-process *default-dead-pool* baby-spider #x4000))) (when s2-0 (let ((t9-3 (method-of-type baby-spider activate))) @@ -560,7 +560,7 @@ (when arg2 (set! (-> obj hit?) #t) (set! (-> obj spin-vel) 131072.0) - (set! (-> obj spin-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj spin-time) (-> *display* base-frame-counter)) (let ((s4-1 (-> obj damage)) (s3-1 (-> obj root-override root-prim)) ) @@ -568,7 +568,7 @@ (when (< (-> obj damage) 6) (+! (-> obj damage) 1) (logior! (-> obj leg-socket-part-mask) (ash 1 s4-1)) - (set! (-> obj leg-socket-part-time s4-1) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj leg-socket-part-time s4-1) (-> *display* base-frame-counter)) (let ((s1-1 (-> *mother-spider-leg-infos* s4-1))) (let ((s0-0 (new 'stack-no-clear 'vector))) (set! sv-128 (new 'stack-no-clear 'vector)) @@ -607,7 +607,7 @@ (defmethod TODO-RENAME-29 mother-spider ((obj mother-spider) (arg0 symbol) (arg1 symbol)) (let ((v1-1 (-> *display* base-frame-counter))) (when (!= v1-1 (-> obj last-update-time)) - (set! (-> obj last-update-time) (the-as uint v1-1)) + (set! (-> obj last-update-time) v1-1) (TODO-RENAME-23 obj) (let ((f0-1 (fmax 0.0 (- (-> obj dist-from-anchor) (-> obj idle-dist-from-anchor))))) (cond @@ -629,7 +629,7 @@ (dotimes (s3-0 6) (when (logtest? s4-1 1) (cond - ((>= (+ (-> *display* base-frame-counter) -300) (the-as int (-> obj leg-socket-part-time s3-0))) + ((>= (+ (-> *display* base-frame-counter) (seconds -1)) (-> obj leg-socket-part-time s3-0)) (set! (-> obj leg-socket-part-mask) (logxor (-> obj leg-socket-part-mask) (ash 1 s3-0))) ) (else @@ -756,11 +756,9 @@ (vector-reflect! (-> obj swing-vel) (-> obj swing-vel) (the-as vector (&-> s5-1 param 6))) (set! (-> obj swing-vel y) 0.0) (vector-normalize! (-> obj swing-vel) (* 0.5 (vector-length (-> obj swing-vel)))) - (when (and (!= (-> obj spin-vel) 0.0) - (>= (- (-> *display* base-frame-counter) (the-as int (-> obj spin-time))) 150) - ) + (when (and (!= (-> obj spin-vel) 0.0) (>= (- (-> *display* base-frame-counter) (-> obj spin-time)) (seconds 0.5))) (set! (-> obj spin-vel) (* 0.75 (- (-> obj spin-vel)))) - (set! (-> obj spin-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj spin-time) (-> *display* base-frame-counter)) ) ) ) @@ -775,7 +773,7 @@ ) ) (set! (-> obj swing-pos quad) (-> obj swing-base-pos quad)) - (let ((f30-1 (the float (- (-> *display* base-frame-counter) (the-as int (-> obj spawned-time)))))) + (let ((f30-1 (the float (- (-> *display* base-frame-counter) (-> obj spawned-time))))) (+! (-> obj swing-pos x) (* 1024.0 (cos (* 54.613335 f30-1)))) (+! (-> obj swing-pos z) (* 1024.0 (cos (* 81.817726 f30-1)))) ) @@ -1092,7 +1090,7 @@ (go mother-spider-tracking) ) ((= v1-22 2) - (set! (-> self started-birthing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self started-birthing-time) (-> *display* base-frame-counter)) (set! (-> self birthing-counter) (max 0 (- (-> self max-baby-count) (-> self baby-count)))) (go mother-spider-birthing) ) @@ -1111,7 +1109,7 @@ (behavior () (set! (-> self hit?) #f) (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self last-player-in-air-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-player-in-air-time) (-> *display* base-frame-counter)) (none) ) :trans @@ -1144,11 +1142,11 @@ (zero? (logand (-> *target* control status) 1)) ) ) - (set! (-> self last-player-in-air-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-player-in-air-time) (-> *display* base-frame-counter)) ) (when (and *target* - (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spit-time))) 900) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-player-in-air-time))) 18) + (>= (- (-> *display* base-frame-counter) (-> self last-spit-time)) (seconds 3)) + (>= (- (-> *display* base-frame-counter) (-> self last-player-in-air-time)) (seconds 0.06)) (>= (-> self max-spit-xz-dist) (vector-vector-xz-distance (-> self root-override trans) (target-pos 0))) ) (let ((gp-2 (new 'stack-no-clear 'vector)) @@ -1165,7 +1163,7 @@ (go mother-spider-spit) ) (else - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spit-time))) 1500) + (if (>= (- (-> *display* base-frame-counter) (-> self last-spit-time)) (seconds 5)) (go mother-spider-traveling (the-as uint 2)) ) ) @@ -1237,7 +1235,7 @@ (go mother-spider-hit-while-tracking) ) (when (= (-> self spin-vel) 0.0) - (set! (-> self last-spit-time) (the-as uint 0)) + (set! (-> self last-spit-time) 0) (go mother-spider-tracking) ) (TODO-RENAME-29 self #t #t) @@ -1350,7 +1348,7 @@ ) ) (set! gp-0 #t) - (set! (-> self last-spit-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-spit-time) (-> *display* base-frame-counter)) (vector-negate! s5-0 s5-0) (TODO-RENAME-21 self s5-0 49152.0 #f) (when (nonzero? (-> self max-baby-count)) @@ -1399,12 +1397,12 @@ (if (letgo-player? self) (go mother-spider-traveling (the-as uint 0)) ) - (if (and (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-birthing-time))) 1800) + (if (and (>= (- (-> *display* base-frame-counter) (-> self started-birthing-time)) (seconds 6)) (zero? (logand (-> *target* state-flags) #x80f8)) ) (go mother-spider-traveling (the-as uint 1)) ) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 75) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) (> (-> self birthing-counter) 0) (and (>= 49152.0 (- (-> self max-dist-from-anchor) (-> self dist-from-anchor))) (zero? (logand (-> *target* state-flags) #x80f8)) @@ -1999,11 +1997,11 @@ (set! (-> obj thread-speed) 245760.0) (set! (-> obj thread-vel) 0.0) (set! (-> obj hit?) #f) - (set! (-> obj last-update-time) (the-as uint 0)) - (set! (-> obj spawned-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj spin-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj last-spit-time) (the-as uint 0)) - (set! (-> obj started-birthing-time) (the-as uint 0)) + (set! (-> obj last-update-time) 0) + (set! (-> obj spawned-time) (-> *display* base-frame-counter)) + (set! (-> obj spin-time) (-> *display* base-frame-counter)) + (set! (-> obj last-spit-time) 0) + (set! (-> obj started-birthing-time) 0) (set! (-> obj check-z-thresh?) #f) (set! (-> obj activate-z-thresh) 0.0) (set! (-> obj deactivate-z-thresh) 0.0) diff --git a/goal_src/levels/misty/babak-with-cannon.gc b/goal_src/levels/misty/babak-with-cannon.gc index cb2f35a793..0676fee6cd 100644 --- a/goal_src/levels/misty/babak-with-cannon.gc +++ b/goal_src/levels/misty/babak-with-cannon.gc @@ -91,9 +91,9 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (let ((f30-0 (- (-> (target-pos 0) y) (-> self collide-info trans y)))) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (or (or (not *target*) (< (-> self distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) ) @@ -237,7 +237,7 @@ nav-enemy-default-event-handler (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 turn-time) (-> 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)) @@ -394,7 +394,7 @@ nav-enemy-default-event-handler (and (and *target* (>= (-> self distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) ) ) (go babak-with-cannon-jump-off-cannon) diff --git a/goal_src/levels/misty/balloonlurker.gc b/goal_src/levels/misty/balloonlurker.gc index 95efe99b28..b2e9609556 100644 --- a/goal_src/levels/misty/balloonlurker.gc +++ b/goal_src/levels/misty/balloonlurker.gc @@ -243,7 +243,7 @@ (define *BALLOONLURKER-bank* (new 'static 'balloonlurker-bank - :buoyancy-depth-offset (meters 30.0) + :buoyancy-depth-offset (meters 30) :player-mass 20.0 :rudder-factor 32.0 :max-engine-thrust 409600.0 @@ -259,25 +259,25 @@ (define *balloonlurker-constants* (new 'static 'rigid-body-platform-constants :drag-factor 1.6 :buoyancy-factor 1.2 - :max-buoyancy-depth (meters 15.0) + :max-buoyancy-depth (meters 15) :gravity-factor 1.0 - :gravity (meters 60.0) + :gravity (meters 60) :player-weight (meters 6.6) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 7 :mass 2.0 - :inertial-tensor-x (meters 12.0) - :inertial-tensor-y (meters 12.0) - :inertial-tensor-z (meters 20.0) - :cm-joint-y (meters 9.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 12) + :inertial-tensor-y (meters 12) + :inertial-tensor-z (meters 20) + :cm-joint-y (meters 9) + :idle-distance (meters 50) :platform #f :sound-name #f ) @@ -840,7 +840,7 @@ (when (and sv-16 sv-24) (process-grab? *target*) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 300) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1)) (suspend) ) ) @@ -872,7 +872,7 @@ (set! (-> a0-8 param 0) 1.0) (joint-control-channel-group-eval! a0-8 (the-as art-joint-anim #f) num-func-loop!) ) - (set! v1-27 (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 9000) + (set! v1-27 (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 30)) (< 819200.0 (- (-> self root-overlay trans y) (-> self water-y))) ) ) diff --git a/goal_src/levels/misty/bonelurker.gc b/goal_src/levels/misty/bonelurker.gc index 5c74350895..a25911bd75 100644 --- a/goal_src/levels/misty/bonelurker.gc +++ b/goal_src/levels/misty/bonelurker.gc @@ -10,7 +10,7 @@ ;; DECOMP BEGINS (deftype bonelurker (nav-enemy) - ((bump-player-time uint64 :offset-assert 400) + ((bump-player-time time-frame :offset-assert 400) ) :heap-base #x130 :method-count-assert 76 @@ -123,7 +123,7 @@ ) (send-event-function arg0 a1-6) ) - (set! (-> obj bump-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj bump-player-time) (-> *display* base-frame-counter)) (set! (-> obj nav-enemy-flags) (logand -65 (-> obj nav-enemy-flags))) 'push ) @@ -138,7 +138,7 @@ (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) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (nav-enemy-set-hit-from-direction arg0) (send-event arg0 'get-attack-count 1) (logclear! (-> self mask) (process-mask actor-pause)) @@ -238,7 +238,7 @@ nav-enemy-default-event-handler (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) + (>= (- (-> *display* base-frame-counter) (-> self bump-player-time)) (seconds 0.5)) ) (logior! (-> self nav-enemy-flags) 64) ) @@ -247,7 +247,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (set! (-> self speed-scale) 1.0) (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) (cond @@ -413,7 +413,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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) @@ -510,7 +510,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) @@ -672,32 +672,32 @@ nav-enemy-default-event-handler :die-anim 14 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 2880.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 5) + :nav-nearest-y-threshold (meters 5) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/misty/misty-conveyor.gc b/goal_src/levels/misty/misty-conveyor.gc index 369d5d08f1..05fb3af2e3 100644 --- a/goal_src/levels/misty/misty-conveyor.gc +++ b/goal_src/levels/misty/misty-conveyor.gc @@ -314,7 +314,7 @@ '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) + (seek-toward-heading-vec! (-> self root-override) gp-0 131072.0 (seconds 0.1)) (set! (-> self root-override trans quad) (-> self path-position quad)) (when (= (-> self keg-behavior) 1) (cond @@ -427,7 +427,7 @@ (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) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (go keg-die) ) (let ((v1-23 (-> self root-override trans))) diff --git a/goal_src/levels/misty/misty-obs.gc b/goal_src/levels/misty/misty-obs.gc index fc804be3e7..c2e29c062a 100644 --- a/goal_src/levels/misty/misty-obs.gc +++ b/goal_src/levels/misty/misty-obs.gc @@ -1526,7 +1526,7 @@ (the-as (function none :behavior breakaway) transform-post) ) -(defun actor-wait-for-period ((arg0 int)) +(defun actor-wait-for-period ((arg0 time-frame)) (let ((s5-0 (-> *display* base-frame-counter))) (while (< (- (-> *display* base-frame-counter) s5-0) arg0) (suspend) @@ -1568,11 +1568,11 @@ ) ) (until (ja-done? 0) - (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) s5-1) 45)) + (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.15))) (set! gp-1 #t) (send-to-next-and-prev (-> self link) 'touch) ) - (if (>= (- (-> *display* base-frame-counter) s5-1) 75) + (if (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.25)) (go breakaway-fall) ) (suspend) @@ -1739,25 +1739,25 @@ (define *bone-platform-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 5 :mass 2.0 - :inertial-tensor-x (meters 3.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 3.0) - :cm-joint-y (meters -3.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 3) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 3) + :cm-joint-y (meters -3) + :idle-distance (meters 50) :platform #t :sound-name "mud-plat" ) diff --git a/goal_src/levels/misty/misty-warehouse.gc b/goal_src/levels/misty/misty-warehouse.gc index f4cde58d48..e99aed7cf9 100644 --- a/goal_src/levels/misty/misty-warehouse.gc +++ b/goal_src/levels/misty/misty-warehouse.gc @@ -11,7 +11,7 @@ (deftype silostep (process-drawable) ((anim-limit float :offset-assert 176) - (cam-tracker uint64 :offset-assert 184) + (cam-tracker handle :offset-assert 184) ) :heap-base #x50 :method-count-assert 20 @@ -66,40 +66,39 @@ ) (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)) - ) - (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))) - ) - (set! (-> self cam-tracker) (the-as uint v0-3)) - (the-as handle v0-3) + (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 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) (seconds 3)) + (suspend) + ) + ) + (while (not (process-release? (handle->process (-> self grab-target)))) + (suspend) + ) + (camera-change-to (the-as string 'base) 150 #f) + (none) + ) + ) + (-> gp-0 ppointer) + ) + ) + ) ) + (none) ) (defstate silostep-camera (silostep) @@ -113,7 +112,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 300) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 1)) (suspend) ) ) diff --git a/goal_src/levels/misty/mistycannon.gc b/goal_src/levels/misty/mistycannon.gc index 66f09631e3..b5cb00c58d 100644 --- a/goal_src/levels/misty/mistycannon.gc +++ b/goal_src/levels/misty/mistycannon.gc @@ -636,7 +636,7 @@ (water-height float :offset-assert 212) (sfx uint32 :offset-assert 216) (part2 sparticle-launch-control :offset-assert 220) - (ground-time uint64 :offset-assert 224) + (ground-time time-frame :offset-assert 224) ) :heap-base #x80 :method-count-assert 21 @@ -786,7 +786,7 @@ (set! (-> self sfx) (the-as uint 0)) 0 ) - (set! (-> self ground-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self ground-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "sack-land") (new-sound-id) @@ -1028,7 +1028,7 @@ (suspend) (clear-collide-with-as (-> self root-override)) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 900) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 3)) (spawn (-> self part2) (-> self root-override trans)) (suspend) ) @@ -1160,7 +1160,7 @@ (front-wheel float :offset-assert 208) (rear-wheel float :offset-assert 212) (last-known-rotation float :offset-assert 216) - (part-timer uint64 :offset-assert 224) + (part-timer time-frame :offset-assert 224) (hellmouth vector :inline :offset-assert 240) (postbindinfo-ok symbol :offset-assert 256) (launch-origin vector :inline :offset-assert 272) @@ -1245,14 +1245,14 @@ ) (sound-play-by-name (static-sound-name "cannon-shot") (new-sound-id) 1024 0 0 1 #t) (set! (-> obj part local-clock) 0) - (set! (-> obj part-timer) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj part-timer) (-> *display* base-frame-counter)) (mistycannon-pick-random-target-point) 0 (none) ) (defmethod dummy-23 mistycannon ((obj mistycannon)) - (when (< (- (-> *display* base-frame-counter) (the-as int (-> obj part-timer))) 900) + (when (< (- (-> *display* base-frame-counter) (-> obj part-timer)) (seconds 3)) (let ((v1-4 (-> obj rotate))) (set! (-> *part-id-table* 529 init-specs 24 initial-valuef) (the float (sar (shl (the int (+ (-> v1-4 min) (-> v1-4 value))) 48) 48)) @@ -1539,14 +1539,14 @@ ) (mistycannon-find-trajectory gp-0) (when (= (-> gp-0 time) 0.0) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (dummy-22 self 409600.0 2.0 20480.0) (set! (-> self state-time) (-> *display* base-frame-counter)) ) (return #f) ) (when (angle-tracker-seek! (-> self tilt) (-> gp-0 theta)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (dummy-22 self (fmax 163840.0 (fmin 409600.0 (-> gp-0 speed))) (-> gp-0 time) 20480.0) (set! (-> self state-time) (-> *display* base-frame-counter)) ) @@ -1639,7 +1639,7 @@ (hide-hud) (level-hint-surpress!) (kill-current-level-hint '() '(sidekick voicebox) 'exit) - (when (and (hud-hidden?) (can-grab-display? (the-as process-taskable self))) + (when (and (hud-hidden?) (can-grab-display? self)) (let ((gp-0 (new 'stack 'font-context *font-default-matrix* 32 160 0.0 (font-color default) (font-flags shadow kerning)) ) @@ -1767,10 +1767,12 @@ (suspend) ) ) - (let ((v1-45 (and (cpad-hold? 0 x) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)))) + (let ((v1-45 (and (cpad-hold? 0 x) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1))))) (when (zero? s5-0) (when v1-45 - (set! gp-0 (seekl gp-0 300 (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) + (set! gp-0 + (seekl gp-0 300 (the-as int (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) + ) (sound-play-by-name (static-sound-name "cannon-charge") (-> self sound-id) @@ -1848,7 +1850,7 @@ (while #t (suspend) (dummy-23 self) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (go mistycannon-waiting-for-player) ) ) @@ -1959,7 +1961,7 @@ (set! (-> obj accuracy-range) 16384.0) (mistycannon-pick-random-target-point) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 119) obj)) - (set! (-> obj part-timer) (the-as uint (+ (-> *display* base-frame-counter) -3000))) + (set! (-> obj part-timer) (+ (-> *display* base-frame-counter) (seconds -10))) (set! (-> obj postbindinfo-ok) #f) (let ((v1-79 (-> obj rotate))) (set! (-> obj last-known-rotation) diff --git a/goal_src/levels/misty/muse.gc b/goal_src/levels/misty/muse.gc index a5aa86cc6a..3690ab649b 100644 --- a/goal_src/levels/misty/muse.gc +++ b/goal_src/levels/misty/muse.gc @@ -451,7 +451,7 @@ nav-enemy-default-event-handler (set! (-> a1-3 message) 'clone-anim) (set! (-> a1-3 param 0) (the-as uint self)) (when (send-event-function *target* a1-3) - (set-blackout-frames 3000) + (set-blackout-frames (seconds 10)) (let ((gp-1 (res-lump-struct (-> self entity) 'movie-pos vector))) (cond (gp-1 @@ -531,7 +531,7 @@ nav-enemy-default-event-handler (else (send-event *target* 'trans 'restore (-> self old-target-pos)) (set-blackout-frames 0) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) ) ) ) @@ -561,32 +561,32 @@ nav-enemy-default-event-handler :die-anim 3 :neck-joint 6 :player-look-at-joint 5 - :run-travel-speed (meters 10.0) + :run-travel-speed (meters 10) :run-rotate-speed (degrees 999.99994) - :run-acceleration (meters 5.0) + :run-acceleration (meters 5) :run-turn-time (seconds 0.15) - :walk-travel-speed (meters 10.0) + :walk-travel-speed (meters 10) :walk-rotate-speed (degrees 999.99994) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.15) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.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 8.0) - :frustration-time #x4b0 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 6.5 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/misty/quicksandlurker.gc b/goal_src/levels/misty/quicksandlurker.gc index 8b200e10db..68b5816736 100644 --- a/goal_src/levels/misty/quicksandlurker.gc +++ b/goal_src/levels/misty/quicksandlurker.gc @@ -361,7 +361,7 @@ ) :code (behavior () - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (fill-cache-integrate-and-collide! (-> self root-override) (-> self root-override transv) @@ -427,7 +427,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (dummy-18 self) @@ -535,7 +535,7 @@ (defbehavior orient-to-face-target quicksandlurker () (if *target* - (seek-to-point-toward-point! (-> self root-override) (-> *target* control trans) 65536.0 60) + (seek-to-point-toward-point! (-> self root-override) (-> *target* control trans) 65536.0 (seconds 0.2)) ) ) @@ -985,7 +985,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (go quicksandlurker-popup) ) ) diff --git a/goal_src/levels/misty/sidekick-human.gc b/goal_src/levels/misty/sidekick-human.gc index ae44744f9b..4ca3a6c3b6 100644 --- a/goal_src/levels/misty/sidekick-human.gc +++ b/goal_src/levels/misty/sidekick-human.gc @@ -1598,7 +1598,7 @@ ) ((-> (method-of-type process-taskable play-anim) exit)) (let ((gp-1 (entity-by-name "sequenceC-1"))) - (set-blackout-frames 6000) + (set-blackout-frames (seconds 20)) (send-event *camera* 'clear-entity) (entity-birth-no-kill gp-1) (send-event diff --git a/goal_src/levels/ogre/flying-lurker.gc b/goal_src/levels/ogre/flying-lurker.gc index ce0b65b6d6..c8bcedfd4b 100644 --- a/goal_src/levels/ogre/flying-lurker.gc +++ b/goal_src/levels/ogre/flying-lurker.gc @@ -392,11 +392,11 @@ (y-offset float :offset-assert 212) (y-offset-desired float :offset-assert 216) (y-vel float :offset-assert 220) - (last-look-time int64 :offset-assert 224) - (time-to-next-look int64 :offset-assert 232) + (last-look-time time-frame :offset-assert 224) + (time-to-next-look time-frame :offset-assert 232) (take-off symbol :offset-assert 240) (race-seconds float :offset-assert 244) - (race-start-time int64 :offset-assert 248) + (race-start-time time-frame :offset-assert 248) (rank int32 :offset-assert 256) (alt-actor entity-actor :offset-assert 260) (alt-trans vector :offset-assert 264) @@ -857,7 +857,7 @@ (v1-41 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-42 (the-as float (logior #x3f800000 v1-41))) ) - (set! (-> self time-to-next-look) (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 v1-42)))))) + (set! (-> self time-to-next-look) (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 v1-42))))))) ) ) ) @@ -1046,7 +1046,7 @@ (run-next-time-in-process gp-2 (lambda :behavior process () (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 30) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.1)) (suspend) ) ) @@ -1325,7 +1325,7 @@ (when (and *target* (>= 172032.0 (vector-vector-xz-distance (-> self root trans) (-> *target* control trans)))) (process-grab? *target*) (let ((s5-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-0) 300) + (until (>= (- (-> *display* base-frame-counter) s5-0) (seconds 1)) (suspend) ) ) diff --git a/goal_src/levels/ogre/ogre-obs.gc b/goal_src/levels/ogre/ogre-obs.gc index 7916c910be..3c4d629516 100644 --- a/goal_src/levels/ogre/ogre-obs.gc +++ b/goal_src/levels/ogre/ogre-obs.gc @@ -525,7 +525,7 @@ ((anchor-point vector :inline :offset-assert 736) (idle-y-offset float :offset-assert 752) (float-y-offset float :offset-assert 756) - (delay uint64 :offset-assert 760) + (delay time-frame :offset-assert 760) (active symbol :offset-assert 768) (triggered entity-actor :offset-assert 772) ) @@ -550,7 +550,7 @@ (let ((v1-0 arg2)) (the-as object (when (= v1-0 'trigger) (set! (-> self triggered) (the-as entity-actor #t)) - (set! (-> self delay) (-> arg3 param 0)) + (set! (-> self delay) (the-as time-frame (-> arg3 param 0))) (let ((v0-0 (-> *display* base-frame-counter))) (set! (-> self state-time) v0-0) v0-0 @@ -574,9 +574,7 @@ ) ) (else - (if (and (-> self triggered) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self delay))) - ) + (if (and (-> self triggered) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self delay))) (set! (-> self active) #t) ) ) @@ -689,24 +687,24 @@ (define *ogre-step-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 4.0) + :max-buoyancy-depth (meters 4) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 0.5 :player-dive-factor 1.0 - :player-force-distance (meters 5.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 100.0) + :player-force-distance (meters 5) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 100) :linear-damping 0.9 :angular-damping 0.9 :control-point-count 6 :mass 2.0 - :inertial-tensor-x (meters 4.0) - :inertial-tensor-y (meters 10.0) - :inertial-tensor-z (meters 4.0) - :idle-distance (meters 150.0) + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 10) + :inertial-tensor-z (meters 4) + :idle-distance (meters 150) :platform #t :sound-name "lava-plat" ) @@ -816,25 +814,25 @@ (define *ogre-isle-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 2.0) + :max-buoyancy-depth (meters 2) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 0.5 :player-dive-factor 1.0 - :player-force-distance (meters 2.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 4000.0) + :player-force-distance (meters 2) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 4000) :linear-damping 0.9 :angular-damping 0.9 :control-point-count 6 :mass 2.0 - :inertial-tensor-x (meters 10.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 10.0) - :cm-joint-y (meters 1.0) - :idle-distance (meters 150.0) + :inertial-tensor-x (meters 10) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 10) + :cm-joint-y (meters 1) + :idle-distance (meters 150) :platform #t :sound-name #f ) diff --git a/goal_src/levels/ogre/ogreboss.gc b/goal_src/levels/ogre/ogreboss.gc index 69773b8317..689eb18350 100644 --- a/goal_src/levels/ogre/ogreboss.gc +++ b/goal_src/levels/ogre/ogreboss.gc @@ -104,7 +104,7 @@ (trajectory trajectory :inline :offset-assert 176) (src-pos vector :inline :offset-assert 224) (dest-pos vector :inline :offset-assert 240) - (start-time int64 :offset-assert 256) + (start-time time-frame :offset-assert 256) (tumble-quat quaternion :inline :offset-assert 272) (blast-radius float :offset-assert 288) (pickup-type pickup-type :offset-assert 292) @@ -133,7 +133,7 @@ (s5-0 (new 'stack-no-clear 'vector)) (s4-0 (new 'stack-no-clear 'collide-tri-result)) ) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 1800) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 6)) (let ((f0-1 (the float (- (-> *display* base-frame-counter) (-> self start-time))))) (eval-position! (-> self trajectory) f0-1 gp-0) ) @@ -181,11 +181,10 @@ (s4-0 (new 'stack-no-clear 'collide-tri-result)) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - ;; (b! #t cfg-1) TODO - fix me! - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (empty) ) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 1800) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 6)) (let ((f0-1 (the float (- (-> *display* base-frame-counter) (-> self start-time))))) (eval-position! (-> self trajectory) f0-1 gp-0) ) @@ -340,7 +339,7 @@ (t1-0 (let ((s4-1 (new 'stack-no-clear 'vector)) (s3-0 (new 'stack-no-clear 'vector)) - (t2-0 (new 'stack-no-clear 'vector)) + (t2-0 (new 'stack-no-clear 'collide-tri-result)) ) 0.0 (set! (-> s4-1 quad) (-> (the-as target t1-0) control trans quad)) @@ -354,7 +353,7 @@ (the-as float 40.96) (-> self root-override root-prim collide-with) t1-0 - (the-as collide-tri-result t2-0) + t2-0 1 ) ) @@ -402,7 +401,7 @@ (logclear! (-> self mask) (process-mask enemy projectile)) (ogreboss-rock-explosion-effect (the-as basic (-> self root-override trans))) (when (nonzero? (-> self pickup-type)) - (let ((t1-0 (new 'static 'fact-info :options (fact-options fade) :fade-time #x5dc))) + (let ((t1-0 (new 'static 'fact-info :options (fact-options fade) :fade-time (seconds 5)))) (birth-pickup-at-point (-> self root-override trans) (-> self pickup-type) @@ -441,7 +440,7 @@ (deftype ogreboss-missile-init-data (structure) ((src vector :offset-assert 0) (dest vector :offset-assert 4) - (duration int64 :offset-assert 8) + (duration time-frame :offset-assert 8) (xz-speed float :offset-assert 16) (blast-radius float :offset-assert 20) (pickup-type pickup-type :offset-assert 24) @@ -1224,7 +1223,7 @@ (max-hit-count int8 :offset-assert 398) (roll-boulder int8 :offset-assert 399) (try-count uint8 :offset-assert 400) - (hit-time int64 :offset-assert 408) + (hit-time time-frame :offset-assert 408) (grow-time float :offset-assert 416) (lava entity-actor :offset-assert 420) (vulnerable symbol :offset-assert 424) @@ -1306,7 +1305,7 @@ ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 50) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.16666667)) (suspend) ) ) @@ -1326,7 +1325,7 @@ ) ) (let ((gp-5 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-5) 50) + (until (>= (- (-> *display* base-frame-counter) gp-5) (seconds 0.16666667)) (suspend) ) ) @@ -1447,7 +1446,7 @@ :code (behavior () (when (zero? (-> self try-count)) - (process-drawable-delay-player 300) + (process-drawable-delay-player (seconds 1)) (let ((gp-0 (get-process *default-dead-pool* pov-camera #x4000))) (ppointer->handle (when gp-0 (let ((t9-2 (method-of-type pov-camera activate))) @@ -1565,9 +1564,12 @@ (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 src) (-> self node-list data 52 bone transform vector 3)) (set! (-> gp-0 duration) - (the int - (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ (-> (new 'static 'array float 1 0.5) 0) (-> self difficulty)))) - ) + (the-as + time-frame + (the int + (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ (-> (new 'static 'array float 1 0.5) 0) (-> self difficulty)))) + ) + ) ) (set! (-> gp-0 pickup-type) (the-as pickup-type arg0)) (set! (-> gp-0 blast-radius) 32768.0) @@ -1627,7 +1629,7 @@ (none) ) -(defbehavior ogreboss-submerge ogreboss ((arg0 int) (arg1 float)) +(defbehavior ogreboss-submerge ogreboss ((arg0 time-frame) (arg1 float)) (when (not (-> self submerged)) (cond ((= (if (> (-> self skel active-channels) 0) @@ -1790,9 +1792,9 @@ (none) ) -(defbehavior ogreboss-move-near ogreboss ((arg0 basic) (arg1 float)) +(defbehavior ogreboss-move-near ogreboss ((arg0 time-frame) (arg1 float)) (when (not (-> self at-near-spot)) - (ogreboss-submerge (the-as int arg0) arg1) + (ogreboss-submerge arg0 arg1) (set! (-> self at-near-spot) #t) (set! (-> self root-override trans quad) (-> self near-pos quad)) (ogreboss-emerge arg1) @@ -1801,7 +1803,7 @@ (none) ) -(defbehavior ogreboss-move-far ogreboss ((arg0 int) (arg1 float)) +(defbehavior ogreboss-move-far ogreboss ((arg0 time-frame) (arg1 float)) (when (-> self at-near-spot) (ogreboss-submerge arg0 arg1) (set! (-> self at-near-spot) #f) @@ -1838,7 +1840,7 @@ (behavior () (if (and (-> self bridge-assembled) (ogreboss-player-inside-range? (the-as float 524288.0)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (go ogreboss-stage2) ) @@ -1848,7 +1850,7 @@ (behavior () (set! (-> self mask) (logior (process-mask enemy) (-> self mask))) (ogreboss-set-stage1-camera) - (ogreboss-move-near (the-as basic 900) (-> (new 'static 'array float 1 1.0) 0)) + (ogreboss-move-near (seconds 3) (-> (new 'static 'array float 1 1.0) 0)) (cond ((= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -1987,7 +1989,7 @@ ) ) ) - (ogreboss-move-far 600 (-> (new 'static 'array float 1 1.0) 0)) + (ogreboss-move-far (seconds 2) (-> (new 'static 'array float 1 1.0) 0)) (ja-channel-push! 1 30) (let ((a0-28 (-> self skel root-channel 0))) (set! (-> a0-28 frame-group) (the-as art-joint-anim (-> self draw art-group data 16))) @@ -2220,7 +2222,7 @@ :code (behavior () (ogreboss-set-stage2-camera) - (ogreboss-move-far 30 (-> (new 'static 'array float 1 2.0) 0)) + (ogreboss-move-far (seconds 0.1) (-> (new 'static 'array float 1 2.0) 0)) (let ((f30-0 (* 0.75 (-> self difficulty)))) (let ((gp-0 #f)) (ja-channel-push! 1 60) @@ -2244,7 +2246,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (while (not gp-0) (ogreboss-roll-boulder) - (set! gp-0 (or (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (set! gp-0 (or (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (not (ogreboss-player-inside-range? (the-as float 524288.0))) ) (ogreboss-player-inside-range? (the-as float 409600.0)) @@ -2348,7 +2350,7 @@ ) ) (when (and (not (ogreboss-player-inside-range? (the-as float 409600.0))) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) ) (set! (-> self state-time) (-> *display* base-frame-counter)) (send-event (handle->process (-> self boulder)) 'grow-faster) @@ -2587,7 +2589,7 @@ (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) ) ) - (ogreboss-submerge 300 (-> (new 'static 'array float 1 1.0) 0)) + (ogreboss-submerge (seconds 1) (-> (new 'static 'array float 1 1.0) 0)) (while (handle->process (-> self boulder)) (suspend) ) diff --git a/goal_src/levels/racer_common/collide-reaction-racer.gc b/goal_src/levels/racer_common/collide-reaction-racer.gc index 17eb86f7cb..4d41ca29fa 100644 --- a/goal_src/levels/racer_common/collide-reaction-racer.gc +++ b/goal_src/levels/racer_common/collide-reaction-racer.gc @@ -124,7 +124,7 @@ ) ) (and (< 0.0 (vector-dot (-> arg0 ground-poly-normal) arg2)) - (< (- (-> *display* base-frame-counter) (-> arg0 unknown-dword10)) 90) + (< (- (-> *display* base-frame-counter) (-> arg0 unknown-dword10)) (seconds 0.3)) (zero? (logand sv-104 32)) ) ) diff --git a/goal_src/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL.gc b/goal_src/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL.gc index e742bc7bb3..998096f644 100644 --- a/goal_src/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL.gc +++ b/goal_src/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL.gc @@ -17,7 +17,7 @@ 'racer ) ((and (= arg2 'get-pickup) (= (-> arg3 param 0) 3)) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer boost-time))) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self racer boost-time)) (seconds 1)) (send-event self 'boost (fmax 1.0 (fmin 2.0 (the-as float (-> arg3 param 1))))) ) ) @@ -59,7 +59,7 @@ (set! (-> self racer boost-sound-id) (sound-play-by-name (static-sound-name "zoom-boost") (new-sound-id) 1024 0 0 1 #t) ) - (set! (-> self racer boost-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer boost-time) (-> *display* base-frame-counter)) (let ((f0-12 (seek (-> self racer boost-level) (-> *RACER-bank* boost-level-max) @@ -217,7 +217,7 @@ (set! (-> self racer bob-mult-trans) 0.0) (set! (-> self racer bob-meta-timer) 0.0) (set! (-> self racer bob-meta-meta-timer) 0.0) - (set! (-> self racer bob-hit-ground-time) (the-as uint 0)) + (set! (-> self racer bob-hit-ground-time) 0) (set! (-> self racer cushion-bob) 0.0) (set! (-> self racer cushion-bob-old) 0.0) (set! (-> self racer hill-value) 0.0) @@ -233,13 +233,13 @@ (set! (-> self racer boost-level) 0.0) (set! (-> self racer boost-target) 0.0) (set! (-> self racer boost-output) 0.0) - (set! (-> self racer boost-time) (the-as uint 0)) - (set! (-> self racer boost-duration) (the-as uint (-> *RACER-bank* boost-duration))) + (set! (-> self racer boost-time) 0) + (set! (-> self racer boost-duration) (-> *RACER-bank* boost-duration)) (set! (-> self racer heat) 0.0) (set! (-> self racer slide-mode) 0) (set! (-> self racer slide-amp) 0.0) - (set! (-> self racer slide-down-time 0) (the-as uint 0)) - (set! (-> self racer slide-down-time 1) (the-as uint 0)) + (set! (-> self racer slide-down-time 0) 0) + (set! (-> self racer slide-down-time 1) 0) (set! (-> self racer slide-interp) 0.0) (set! (-> self racer surface-y) (-> self control trans y)) (let ((s5-0 (-> self entity))) @@ -367,7 +367,7 @@ ) (pad-buttons l1 r1) ) - (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) + (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) (< (vector-dot (-> self control dynam gravity-normal) (vector-! (new 'stack-no-clear 'vector) (-> self control trans) (-> self control shadow-pos)) @@ -389,7 +389,7 @@ ) (if (and (zero? (logand (-> self control status) 1)) (or (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (* (-> *TARGET-bank* ground-timeout) 2)) + (* (-> *TARGET-bank* ground-timeout) 2) ) (< 75 v1-28) ) @@ -434,7 +434,7 @@ (gp-0 #f) ) (when (and (< (fabs (-> self racer bob-mult-trans)) 0.2) - (and (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer racing-time))) 45) + (and (>= (- (-> *display* base-frame-counter) (-> self racer racing-time)) (seconds 0.15)) (< 16384.0 (-> self control ground-impact-vel)) ) ) @@ -464,8 +464,8 @@ (set! (-> self racer bob-meta-timer) f0-14) ) (set! (-> self racer bob-mult-trans) (lerp-scale 0.2 2.5 (-> self control ground-impact-vel) 20480.0 81920.0)) - (set! (-> self racer bob-hit-ground-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self racer bob-meta-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer bob-hit-ground-time) (-> *display* base-frame-counter)) + (set! (-> self racer bob-meta-time) (-> *display* base-frame-counter)) (cond ((or s5-0 (and (>= (-> self racer bounce) 1) (< (-> self racer bounce) 2))) (+! (-> self racer bounce) 1) @@ -545,11 +545,9 @@ ) ) ) - (while (< (- (-> *display* base-frame-counter) gp-3) 300) + (while (< (- (-> *display* base-frame-counter) gp-3) (seconds 1)) (if (or (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (or (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1 x) - ) + (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1 x) (>= (fabs (-> self racer turn-anim-frame)) 1.0) ) ) @@ -576,9 +574,7 @@ ) ) (while (not (or (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (or (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1 x) - ) + (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1 x) (>= (fabs (-> self racer turn-anim-frame)) 1.0) ) ) @@ -595,7 +591,7 @@ :post (behavior () (if (= (-> self next-state name) 'target-racing) - (set! (-> self racer racing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer racing-time) (-> *display* base-frame-counter)) ) (target-racing-post) (none) @@ -630,12 +626,10 @@ ) (if (< (-> self racer slide-mode) 0) (set! (-> self racer slide-down-time 0) - (the-as uint (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (-> *display* base-frame-counter) - 0 - ) + (the-as time-frame (if (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) + (the-as int (-> *display* base-frame-counter)) + 0 + ) ) ) ) @@ -657,19 +651,17 @@ ) ) (cond - ((logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons l1 r1) - ) - (set! (-> self racer slide-down-time 0) (the-as uint (-> *display* base-frame-counter))) + ((cpad-pressed? (-> self control unknown-cpad-info00 number) l1 r1) + (set! (-> self racer slide-down-time 0) (-> *display* base-frame-counter)) ) ((zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l1 r1)) ) - (set! (-> self racer slide-down-time 0) (the-as uint 0)) + (set! (-> self racer slide-down-time 0) 0) 0 ) - ((and (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer slide-down-time 0))) - (the-as int (-> *RACER-bank* slide-hold-time)) + ((and (>= (- (-> *display* base-frame-counter) (-> self racer slide-down-time 0)) + (the-as time-frame (-> *RACER-bank* slide-hold-time)) ) (< (-> self racer slide-mode) 0) (or (< (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) leftx) (the-as uint 64)) @@ -682,7 +674,7 @@ 1 ) ) - (set! (-> self racer slide-enter-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer slide-enter-time) (-> *display* base-frame-counter)) (set! (-> self racer slide-amp) 1.0) (set! (-> self racer slide-grip-mult) 0.0) ) @@ -698,7 +690,9 @@ ) ) ) - (if (and (logtest? (-> self control status) 1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)) + (if (and (logtest? (-> self control status) 1) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) + ) (go target-racing) ) (if (or (< (-> self control trans y) (-> self racer hop-start-y)) @@ -711,17 +705,10 @@ (set! (-> self racer hop?) #f) ) (target-racing-smack-check) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (logior! (-> self control root-prim prim-core action) (collide-action ca-15)) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (-> self control transv)) (set! (-> self racer shock-offset) (* 0.8 (-> self racer shock-offset))) (racer-buzz 0.4) (none) @@ -778,7 +765,7 @@ ) (pad-buttons l1 r1) ) - (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 60) + (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.2)) (< (vector-dot (-> self control dynam gravity-normal) (vector-! (new 'stack-no-clear 'vector) (-> self control trans) (-> self control shadow-pos)) @@ -789,17 +776,12 @@ ) (go target-racing-jump 2048.0 5324.8 #t) ) - (if (and (logtest? (-> self control status) 1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)) + (if (and (logtest? (-> self control status) 1) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) + ) (go target-racing) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (-> self control transv)) (target-racing-smack-check) (racer-buzz 0.4) (none) @@ -866,11 +848,11 @@ :enter (behavior ((arg0 float) (arg1 symbol)) (sound-play-by-name (static-sound-name "smack-surface") (new-sound-id) 1024 0 0 1 #t) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5)) (set! (-> self racer heavy) arg1) (vector-! (-> self control transv) (-> self control unknown-vector70) (-> self control trans)) (let ((f0-0 (lerp-scale 0.0 -61440.0 arg0 0.0 163840.0))) - (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + (if (cpad-hold? (-> self control unknown-cpad-info00 number) x) (set! f0-0 (* 2.0 f0-0)) ) (vector-normalize! (-> self control transv) f0-0) @@ -879,7 +861,7 @@ (set! (-> self racer boost-level) 0.0) (set! (-> self racer boost-target) 0.0) (set! (-> self racer boost-output) 0.0) - (set! (-> self racer boost-time) (the-as uint 0)) + (set! (-> self racer boost-time) 0) 0 (none) ) @@ -952,7 +934,7 @@ ) (target-racing-smack-check) (racer-buzz 0.3) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (logior! (-> self control root-prim prim-core action) (collide-action ca-15)) ) (none) @@ -1008,7 +990,7 @@ (target-timed-invulnerable (-> *TARGET-bank* hit-invulnerable-timeout) self) (when (!= (-> self attack-info mode) 'endlessfall) (dummy-10 (-> self skel effect) 'group-target-hit -1.0 -1) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) (sound-play-by-name (static-sound-name "oof") (new-sound-id) 1024 0 0 1 #t) ) (set! (-> self game hit-time) (-> *display* base-frame-counter)) @@ -1017,7 +999,7 @@ (set! (-> self racer boost-level) 0.0) (set! (-> self racer boost-target) 0.0) (set! (-> self racer boost-output) 0.0) - (set! (-> self racer boost-time) (the-as uint 0)) + (set! (-> self racer boost-time) 0) (if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health))) (go target-racing-death (-> self attack-info mode)) ) @@ -1128,7 +1110,7 @@ (let* ((f0-0 (vector-length (-> s5-0 0 control transv))) (f30-0 (fmin 1.0 (* 0.000008138021 f0-0))) ) - (set! (-> gp-0 duration) (the-as uint 1500)) + (set! (-> gp-0 duration) (seconds 5)) (set! (-> gp-0 fountain-rand-transv-hi x) (fmax 24576.0 f0-0)) (set! (-> gp-0 fountain-rand-transv-hi y) (+ 81920.0 f0-0)) (set! (-> gp-0 fountain-rand-transv-hi z) 20480.0) @@ -1250,7 +1232,7 @@ (ja-channel-set! 0) (ja-post) (let ((gp-6 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-6) 600) + (until (>= (- (-> *display* base-frame-counter) gp-6) (seconds 2)) (suspend) ) ) @@ -1277,7 +1259,7 @@ ) ) (let ((gp-9 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-9) 225) + (until (>= (- (-> *display* base-frame-counter) gp-9) (seconds 0.75)) (vector-seek! (-> self draw color-mult) *zero-vector* (* 1.5 (-> *display* seconds-per-frame))) (set-forward-vel (* 0.96 (-> self control unknown-float01))) (let ((s5-3 (new-stack-vector0)) @@ -1312,7 +1294,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-154 (suspend) - (set! v1-154 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (set! v1-154 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (zero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) ) ) @@ -1469,7 +1451,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.0044444446 (the float (+ (- -150 (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.0044444446 (the float (+ (- (seconds -0.5) (-> self state-time)) (-> *display* base-frame-counter)))) + ) ) ) ) @@ -1567,7 +1552,7 @@ ) ) (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 150) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.5)) (set! (-> self racer stick-lock) #t) (set-forward-vel (* 0.9 (-> self control unknown-float01))) (set! (-> self racer turn-anim-targ) 0.0) @@ -1708,7 +1693,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.0044444446 (the float (+ (- -150 (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.0044444446 (the float (+ (- (seconds -0.5) (-> self state-time)) (-> *display* base-frame-counter)))) + ) ) ) ) diff --git a/goal_src/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL.gc b/goal_src/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL.gc index 4d7d1a9b5d..68fb0ae2b5 100644 --- a/goal_src/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL.gc +++ b/goal_src/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL.gc @@ -105,7 +105,7 @@ ((or (-> self racer hop?) (= (-> self next-state name) 'target-racing-bounce)) (lerp-scale 81920.0 163840.0 (-> self control unknown-float01) 0.0 (-> self racer transv-max)) ) - ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 180) + ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.6)) (lerp-scale 81920.0 122880.0 (-> self control unknown-float01) 0.0 (-> self racer transv-max)) ) (else @@ -263,7 +263,7 @@ (defbehavior racer-thrust target ((arg0 basic) (arg1 float)) (let ((f0-0 - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (not (-> self racer stick-lock)) (not (-> self racer stick-off)) ) @@ -306,12 +306,14 @@ ) (set! f0-13 (cond - ((and (not (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0))) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons square) - ) + ((and (not + (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + ) + (cpad-hold? (-> self control unknown-cpad-info00 number) square) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (not (-> self racer stick-lock)) (not (-> self racer stick-off)) ) @@ -321,7 +323,7 @@ ) (else (cond - ((and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + ((and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (not (-> self racer stick-lock)) (not (-> self racer stick-off)) ) @@ -428,7 +430,7 @@ ) ) ) - (if (and (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 60) + (if (and (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.2)) (< (-> self racer shock-offset) 0.0) ) (!= (-> self control unknown-surface00 mode) 'air) @@ -524,9 +526,7 @@ (set-twist! (-> self racer front-blade) (the-as float #f) (- (-> self racer front-rot)) (the-as float #f)) (set-twist! (-> self racer bottom-blade) (the-as float #f) (the-as float #f) (- (-> self racer bottom-rot))) (if (and (= *cheat-mode* 'debug) - (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - (not *pause-lock*) - ) + (and (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*)) ) (vector-reset! (-> self control transv)) ) @@ -618,11 +618,11 @@ ) ((or (logtest? (-> self control status) 2) (< 12288.0 (vector-length (-> self control transv)))) (let ((v0-5 (the-as object (-> *display* base-frame-counter)))) - (set! (-> self racer unstuck-time) (the-as int v0-5)) + (set! (-> self racer unstuck-time) (the-as time-frame v0-5)) v0-5 ) ) - ((>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) 1500) + ((>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) (seconds 5)) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-6 from) self) (set! (-> a1-6 num-params) 2) @@ -635,10 +635,10 @@ (send-event-function self a1-6) ) ) - ((and (>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) 900) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer heat-sound-time))) 300) + ((and (>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) (seconds 3)) + (>= (- (-> *display* base-frame-counter) (-> self racer heat-sound-time)) (seconds 1)) ) - (set! (-> self racer heat-sound-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer heat-sound-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "warning") (new-sound-id) 1024 0 0 1 #t) ) ) @@ -646,7 +646,7 @@ (defbehavior racer-buzz target ((arg0 float)) (let ((f1-0 (lerp-scale 0.2 1.0 (-> self control unknown-float01) 0.0 (-> self racer transv-max)))) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 (fmin 1.0 (* arg0 f1-0)))) 15) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 (fmin 1.0 (* arg0 f1-0)))) (seconds 0.05)) ) 0 (none) @@ -829,11 +829,11 @@ ) ) ) - (when (and (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle square) - ) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 75) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (cpad-pressed? (-> self control unknown-cpad-info00 number) circle square) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.25)) (zero? (logand (-> self state-flags) #x8008)) ) (let ((gp-6 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control quat))) @@ -908,7 +908,7 @@ ) ) (let ((v1-189 (- (-> *display* base-frame-counter) (-> self control unknown-dword11)))) - (if (and (>= v1-189 270) (>= 900 v1-189)) + (if (and (>= v1-189 (seconds 0.9)) (>= (seconds 3) v1-189)) (set! (-> self racer heat) (seek (-> self racer heat) 0.0 (* f30-2 (-> *display* seconds-per-frame)))) ) ) @@ -929,8 +929,8 @@ (if (and *cheat-mode* *debug-segment* (cpad-pressed? 0 l2)) (send-event self 'boost 1.0) ) - (let ((v1-218 (- (-> *display* base-frame-counter) (the-as int (-> self racer boost-time))))) - (if (< v1-218 (the-as int (-> self racer boost-duration))) + (let ((v1-218 (- (-> *display* base-frame-counter) (-> self racer boost-time)))) + (if (< v1-218 (-> self racer boost-duration)) (set! (-> self racer boost-curve) (* (-> *RACER-bank* boost-curve-max) (sin (* 32768.0 (/ (the float v1-218) (the float (-> self racer boost-duration))))) @@ -977,7 +977,7 @@ ) ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1)) ) (when (logtest? (-> self control status) 8) (let* ((gp-8 (racer-find-prop-point (new 'stack-no-clear 'vector) (-> self control unknown-vector70))) @@ -1008,7 +1008,7 @@ 1.0 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 51 15) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 51 (seconds 0.05)) (sound-play-by-name (sound-name-with-material 'zoom-hit (the-as pat-surface (-> self control unknown-int60)) "") (-> self racer scrape-sound-id) @@ -1021,12 +1021,12 @@ ) (when (and (< (-> self racer heat) (-> *RACER-bank* heat-max)) (and (< (* 0.8 (-> *RACER-bank* heat-max)) (-> self racer heat)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer heat-sound-time))) + (>= (- (-> *display* base-frame-counter) (-> self racer heat-sound-time)) (the int (* 3000.0 (- 1.0 (/ (-> self racer heat) (-> *RACER-bank* heat-max))))) ) ) ) - (set! (-> self racer heat-sound-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer heat-sound-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "warning") (new-sound-id) 1024 0 0 1 #t) ) (when (rand-vu-percent? (/ (-> self racer heat) (-> *RACER-bank* heat-max))) @@ -1483,8 +1483,8 @@ (if (< 1.5 (-> self racer bob-meta-meta-timer)) (set! (-> self racer bob-meta-meta-timer) (seek (-> self racer bob-meta-meta-timer) 1.0 0.5)) ) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer bob-meta-time))) 660) - (set! (-> self racer bob-meta-time) (the-as uint (-> *display* base-frame-counter))) + (when (>= (- (-> *display* base-frame-counter) (-> self racer bob-meta-time)) (seconds 2.2)) + (set! (-> self racer bob-meta-time) (-> *display* base-frame-counter)) (set! (-> self racer bob-meta-meta-timer) (rand-vu-float-range 0.8 1.2)) ) ) @@ -1539,7 +1539,7 @@ (and (= (-> self next-state name) 'target-racing-bounce) (= (-> self racer bounce) 1)) ) (set! (-> self racer speed-rotx) 0.5) - (when (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) (set! (-> self racer hill-rotx) (seek (-> self racer hill-rotx) 0.0 (* 65536.0 (-> *display* seconds-per-frame))) ) @@ -1581,13 +1581,9 @@ ) (cond ((and (logtest? (-> self control status) 8) - (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) - (or (-> self racer stick-lock) (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) 4096.0)) - (not - (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) + (or (-> self racer stick-lock) (< (target-move-dist (-> *TARGET-bank* stuck-time)) 4096.0)) + (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) (cond 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 0a97cb7e62..f7fc5c9748 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 @@ -53,8 +53,8 @@ (bob-mult-rot float :offset-assert 300) (bob-mult-trans float :offset-assert 304) (bob-period float :offset-assert 308) - (bob-meta-time uint64 :offset-assert 312) - (bob-hit-ground-time uint64 :offset-assert 320) + (bob-meta-time time-frame :offset-assert 312) + (bob-hit-ground-time time-frame :offset-assert 320) (cur-rotx degrees :offset-assert 328) (targ-rotx degrees :offset-assert 332) (speed-rotx float :offset-assert 336) @@ -69,16 +69,16 @@ (tail joint-mod :offset-assert 372) (tail-tilt degrees :offset-assert 376) (transv-max meters :offset-assert 380) - (slide-down-time uint64 2 :offset-assert 384) - (slide-enter-time uint64 :offset-assert 400) + (slide-down-time time-frame 2 :offset-assert 384) + (slide-enter-time time-frame :offset-assert 400) (slide-mode int32 :offset-assert 408) (slide-amp float :offset-assert 412) (slide-grip-mult float :offset-assert 416) (slide-shift-x float :offset-assert 420) (slide-interp float :offset-assert 424) (heat float :offset-assert 428) - (boost-time uint64 :offset-assert 432) - (boost-duration uint64 :offset-assert 440) + (boost-time time-frame :offset-assert 432) + (boost-duration time-frame :offset-assert 440) (boost-curve float :offset-assert 448) (boost-level float :offset-assert 452) (boost-target float :offset-assert 456) @@ -97,14 +97,14 @@ (tail-anim-frame float :offset-assert 508) (rudd-anim-vel float :offset-assert 512) (rudd-anim-frame float :offset-assert 516) - (racing-time uint64 :offset-assert 520) + (racing-time time-frame :offset-assert 520) (stick-lock symbol :offset-assert 528) (stick-off symbol :offset-assert 532) (heavy symbol :offset-assert 536) - (unstuck-time int64 :offset-assert 544) + (unstuck-time time-frame :offset-assert 544) (stuck-count int32 :offset-assert 552) (scrape-sound-id sound-id :offset-assert 556) - (heat-sound-time uint64 :offset-assert 560) + (heat-sound-time time-frame :offset-assert 560) ) :method-count-assert 9 :size-assert #x238 @@ -151,11 +151,11 @@ :lavatube-lava-air-heat-inc 4.0 :lavatube-surface-heat-inc 1.0 :lavatube-jump-heat-inc 10.0 - :boost-curve-max (meters 5.0) + :boost-curve-max (meters 5) :boost-level-max (meters 12.5) - :boost-level-inc (meters 2.0) + :boost-level-inc (meters 2) :boost-duration (seconds 2.5) - :yellow-projectile-speed (meters 80.0) + :yellow-projectile-speed (meters 80) ) ) diff --git a/goal_src/levels/robocave/cave-trap.gc b/goal_src/levels/robocave/cave-trap.gc index dd1df4288d..ea0bf03bc6 100644 --- a/goal_src/levels/robocave/cave-trap.gc +++ b/goal_src/levels/robocave/cave-trap.gc @@ -13,8 +13,8 @@ ((root-override collide-shape :offset 112) (spider-count int32 :offset-assert 176) (alt-actors (array entity-actor) :offset-assert 180) - (spawn-delay uint64 :offset-assert 184) - (last-spawn-time uint64 :offset-assert 192) + (spawn-delay time-frame :offset-assert 184) + (last-spawn-time time-frame :offset-assert 192) (debug-targ-pos vector :inline :offset-assert 208) ) :heap-base #x70 @@ -33,7 +33,7 @@ (deftype spider-vent (process-drawable) - ((last-spawn-time uint64 :offset-assert 176) + ((last-spawn-time time-frame :offset-assert 176) ) :heap-base #x50 :method-count-assert 20 @@ -51,12 +51,12 @@ (local-vars (v0-0 object)) (case arg2 (('can-spawn?) - (return (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spawn-time))) 300)) + (return (>= (- (-> *display* base-frame-counter) (-> self last-spawn-time)) (seconds 1))) v0-0 ) (('notify-spawned) (set! v0-0 (-> *display* base-frame-counter)) - (set! (-> self last-spawn-time) (the-as uint v0-0)) + (set! (-> self last-spawn-time) (the-as time-frame v0-0)) v0-0 ) ) @@ -71,7 +71,7 @@ ) (defmethod init-from-entity! spider-vent ((obj spider-vent) (arg0 entity-actor)) - (set! (-> obj last-spawn-time) (the-as uint 0)) + (set! (-> obj last-spawn-time) 0) (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) (go spider-vent-idle) @@ -117,8 +117,8 @@ (defmethod TODO-RENAME-20 cave-trap ((obj cave-trap)) (with-pp - (set! (-> obj last-spawn-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj spawn-delay) (the-as uint (rand-vu-int-range 30 150))) + (set! (-> obj last-spawn-time) (-> *display* base-frame-counter)) + (set! (-> obj spawn-delay) (rand-vu-int-range (seconds 0.1) (seconds 0.5))) (let ((s5-0 (new 'stack-no-clear 'spawn-baby-spider-work))) (let ((s4-0 (new 'stack-no-clear 'vector))) (dotimes (v1-2 4) @@ -282,7 +282,7 @@ cave-trap-default-event-handler :enter (behavior () - (set! (-> self spawn-delay) (the-as uint 150)) + (set! (-> self spawn-delay) (seconds 0.5)) (none) ) :trans @@ -298,9 +298,7 @@ ) ) (if (and (< (-> self spider-count) 8) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spawn-time))) - (the-as int (-> self spawn-delay)) - ) + (>= (- (-> *display* base-frame-counter) (-> self last-spawn-time)) (-> self spawn-delay)) ) (TODO-RENAME-20 self) ) @@ -344,8 +342,8 @@ (defmethod init-from-entity! cave-trap ((obj cave-trap) (arg0 entity-actor)) (set! (-> obj spider-count) 0) - (set! (-> obj spawn-delay) (the-as uint 0)) - (set! (-> obj last-spawn-time) (the-as uint 0)) + (set! (-> obj spawn-delay) 0) + (set! (-> obj last-spawn-time) 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 offense) (collide-offense no-offense)) diff --git a/goal_src/levels/rolling/rolling-lightning-mole.gc b/goal_src/levels/rolling/rolling-lightning-mole.gc index 932b8a7f5e..b8b0c70a0b 100644 --- a/goal_src/levels/rolling/rolling-lightning-mole.gc +++ b/goal_src/levels/rolling/rolling-lightning-mole.gc @@ -153,7 +153,7 @@ (deftype fleeing-nav-enemy (nav-enemy) - ((last-reflection-time uint64 :offset-assert 400) + ((last-reflection-time time-frame :offset-assert 400) (run-blend-interp float :offset-assert 408) (desired-travel vector :inline :offset-assert 416) (saved-travel vector :inline :offset-assert 432) @@ -347,9 +347,7 @@ ) ) ) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-reflection-time))) - (-> self flee-info reflection-time) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self last-reflection-time)) (-> self flee-info reflection-time)) (let ((s3-0 (new 'stack-no-clear 'matrix)) (s5-2 (new 'stack-no-clear 'vector)) ) @@ -370,7 +368,7 @@ ) ) (if (fleeing-nav-enemy-clip-travel self (-> self desired-travel)) - (set! (-> self last-reflection-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-reflection-time) (-> *display* base-frame-counter)) ) (fleeing-nav-enemy-adjust-travel self (-> self desired-travel)) (fleeing-nav-enemy-chase-post-func) @@ -706,14 +704,12 @@ (set! (-> gp-0 quad) (-> self debug-vector quad)) (set! (-> self target-speed) (-> self nav-info run-travel-speed)) (format *stdcon* "tgt-speed ~M defmd ~M~%" (-> self target-speed) (-> self flee-info deflection-max-dist)) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-reflection-time))) - (-> self flee-info reflection-time) - ) + (if (>= (- (-> *display* base-frame-counter) (-> self last-reflection-time)) (-> self flee-info reflection-time)) (vector-normalize-copy! (-> self desired-travel) gp-0 (-> self flee-info deflection-max-dist)) ) ) (if (fleeing-nav-enemy-clip-travel self (-> self desired-travel)) - (set! (-> self last-reflection-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-reflection-time) (-> *display* base-frame-counter)) ) (set! (-> self debug-vector quad) (-> self desired-travel quad)) (fleeing-nav-enemy-adjust-travel self (-> self desired-travel)) @@ -1033,31 +1029,31 @@ :die-anim -1 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 30.0) + :run-travel-speed (meters 30) :run-rotate-speed (degrees 3000.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 30.0) + :walk-travel-speed (meters 30) :walk-rotate-speed (degrees 3000.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 2.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 35.0) - :stop-chase-distance (meters 45.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 35) + :stop-chase-distance (meters 45) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -1097,8 +1093,8 @@ (TODO-RENAME-45 obj *lightning-mole-nav-enemy-info*) (logclear! (-> obj nav flags) (nav-control-flags bit5 bit6 bit7)) (set! (-> obj draw origin-joint-index) (the-as uint 3)) - (set! (-> obj reaction-time) 15) - (set! (-> obj last-reflection-time) (the-as uint 0)) + (set! (-> obj reaction-time) (seconds 0.05)) + (set! (-> obj last-reflection-time) 0) (set! (-> obj collide-info pause-adjust-distance) 122880.0) (set! (-> obj link) (new 'process 'actor-link-info obj)) (set! (-> obj alt-actor) (entity-actor-lookup arg0 'alt-actor 0)) @@ -1348,7 +1344,7 @@ ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (not (and *target* (>= 81920.0 (vector-vector-xz-distance (-> self root trans) (-> *target* control trans))))) ) (go peeper-up) @@ -1410,7 +1406,7 @@ (behavior () (logior! (-> self draw status) (draw-status drwf01)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (let* ((f30-0 2.0) @@ -1419,7 +1415,7 @@ ) (countdown (gp-0 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-11)))) 1)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (if (nonzero? (-> self sound)) (update! (-> self sound)) ) @@ -1430,7 +1426,7 @@ (if (nonzero? (-> self sound)) (stop! (-> self sound)) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (suspend) ) ) diff --git a/goal_src/levels/rolling/rolling-obs.gc b/goal_src/levels/rolling/rolling-obs.gc index b16dd66a04..4ef8847392 100644 --- a/goal_src/levels/rolling/rolling-obs.gc +++ b/goal_src/levels/rolling/rolling-obs.gc @@ -858,7 +858,7 @@ #f ) -(defun seconds->race-time ((arg0 race-time) (arg1 int)) +(defun seconds->race-time ((arg0 race-time) (arg1 time-frame)) (let* ((v1-1 (max 0 (min #x2bf1d arg1))) (f0-1 (* 0.0033333334 (the float v1-1))) ) @@ -915,7 +915,7 @@ #f ) -(defun race-time-read ((arg0 race-time) (arg1 int) (arg2 task-control) (arg3 int)) +(defun race-time-read ((arg0 race-time) (arg1 int) (arg2 task-control) (arg3 time-frame)) (dotimes (s2-0 5) (set! (-> arg0 digit s2-0) (get-reminder arg2 (+ arg1 s2-0))) ) @@ -1415,7 +1415,7 @@ (gorge-start-draw-time #t #t) (suspend) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (set! (-> self timer-pos-offset) (seekl (-> self timer-pos-offset) 100 (the int (* 3.0 (-> *display* time-adjust-ratio)))) ) @@ -1443,7 +1443,7 @@ :code (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (set! (-> self timer-pos-offset) (seekl (-> self timer-pos-offset) 100 (the int (* 5.0 (-> *display* time-adjust-ratio)))) ) @@ -1512,7 +1512,7 @@ (send-event (ppointer->process (-> *hud-parts* fuel-cell)) 'hide) (send-event (ppointer->process (-> *hud-parts* money)) 'disable) (send-event (ppointer->process (-> *hud-parts* money)) 'hide) - (race-time-read (-> self record-time) 1 (-> self tasks) #x34bc) + (race-time-read (-> self record-time) 1 (-> self tasks) (seconds 45)) (let ((gp-0 (get-process *default-dead-pool* rolling-start #x4000))) (set! (-> self end-banner) (ppointer->handle (when gp-0 @@ -1605,7 +1605,7 @@ (-> gp-5 ppointer) ) ) - (sleep (-> self ticker) #x1b7740) + (sleep (-> self ticker) (seconds 6000)) (set-setting! *setting-control* self 'sound-flava #f 40.0 42) (none) ) diff --git a/goal_src/levels/rolling/rolling-race-ring.gc b/goal_src/levels/rolling/rolling-race-ring.gc index e1dc7ee28c..bcf698134b 100644 --- a/goal_src/levels/rolling/rolling-race-ring.gc +++ b/goal_src/levels/rolling/rolling-race-ring.gc @@ -12,7 +12,7 @@ (face-vec vector :inline :offset-assert 192) (part-track handle :offset-assert 208) (keep-part-track-alive symbol :offset-assert 216) - (timeout uint64 :offset-assert 224) + (timeout time-frame :offset-assert 224) (alt-actor entity-actor :offset-assert 232) (alt-task uint8 :offset-assert 236) (cyl cylinder-flat :inline :offset-assert 240) @@ -799,9 +799,7 @@ (cond ((handle->process (-> self part-track)) (if (-> self keep-part-track-alive) - (set! (-> (the-as part-tracker (-> self part-track process 0)) start-time) - (the-as uint (-> *display* base-frame-counter)) - ) + (set! (-> (the-as part-tracker (-> self part-track process 0)) start-time) (-> *display* base-frame-counter)) ) ) ((= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) @@ -872,7 +870,7 @@ (cond ((first-ring? self) ) - ((>= (- (-> *display* game-frame-counter) (-> self state-time)) (the-as int (-> self timeout))) + ((>= (- (-> *display* game-frame-counter) (-> self state-time)) (-> self timeout)) (level-hint-spawn (game-text-id rolling-ring-hint-be-quick-all) "sksp0121" @@ -1103,7 +1101,7 @@ ) ) (let ((f0-1 (res-lump-float arg0 'timeout))) - (set! (-> obj timeout) (the-as uint (the int (* 300.0 f0-1)))) + (set! (-> obj timeout) (the-as time-frame (the int (* 300.0 f0-1)))) ) (let ((s4-0 (new 'stack-no-clear 'vector))) (cond diff --git a/goal_src/levels/rolling/rolling-robber.gc b/goal_src/levels/rolling/rolling-robber.gc index c29959e983..642cb94a2f 100644 --- a/goal_src/levels/rolling/rolling-robber.gc +++ b/goal_src/levels/rolling/rolling-robber.gc @@ -29,7 +29,7 @@ (dotimes (v1-14 (the int (-> *display* time-adjust-ratio))) (set! arg2 (* 0.95 arg2)) ) - (when (and (< (fabs arg2) 13.653334) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450)) + (when (and (< (fabs arg2) 13.653334) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5))) (if *target* (process-release? *target*) ) @@ -56,7 +56,7 @@ (forward-down->inv-matrix *camera-other-matrix* s4-0 (new 'static 'vector :y -1.0 :w 1.0)) ) (set! *camera-look-through-other* 2) - (set-letterbox-frames 10) + (set-letterbox-frames (seconds 0.033333335)) (suspend) (let ((a0-27 (-> self skel root-channel 0))) (set! (-> a0-27 param 0) 0.5) @@ -89,14 +89,14 @@ (tangent vector :inline :offset-assert 208) (run-blend-interp float :offset-assert 224) (near-timer int32 :offset-assert 228) - (far-time uint64 :offset-assert 232) + (far-time time-frame :offset-assert 232) (y-offset float :offset-assert 240) (y-offset-desired float :offset-assert 244) (y-vel float :offset-assert 248) (water-height float :offset-assert 252) - (timeout uint64 :offset-assert 256) - (last-ambient-time uint64 :offset-assert 264) - (time-to-next-ambient uint64 :offset-assert 272) + (timeout time-frame :offset-assert 256) + (last-ambient-time time-frame :offset-assert 264) + (time-to-next-ambient time-frame :offset-assert 272) ) :heap-base #xb0 :method-count-assert 20 @@ -559,9 +559,7 @@ (robber-move) (robber-rotate (the-as target #f) 1820.4445) (suspend) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-ambient-time))) - (the-as int (-> self time-to-next-ambient)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self last-ambient-time)) (-> self time-to-next-ambient)) (ja-channel-push! 1 60) (let ((a0-14 (-> self skel root-channel 0))) (set! (-> a0-14 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) @@ -583,7 +581,7 @@ (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set! (-> self last-ambient-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-ambient-time) (-> *display* base-frame-counter)) (let* ((f30-0 300.0) (f28-0 2.0) (f26-0 2.0) @@ -591,7 +589,7 @@ (v1-42 (the-as number (logior #x3f800000 v1-41))) ) (set! (-> self time-to-next-ambient) - (the-as uint (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) + (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) ) ) ) @@ -608,7 +606,7 @@ :enter (behavior () (set! (-> self near-timer) 3000) - (set! (-> self far-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self far-time) (-> *display* base-frame-counter)) (set! (-> self y-offset-desired) 0.0) (none) ) @@ -623,15 +621,16 @@ (when (and *target* (>= 102400.0 (vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans))) ) - (set! (-> self near-timer) - (- (-> self near-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self near-timer) (- (the-as time-frame (-> self near-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (if (<= (-> self near-timer) 0) (go robber-tired) ) - (set! (-> self far-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self far-time) (-> *display* base-frame-counter)) ) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self far-time))) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self far-time)) (seconds 3)) (set! (-> self near-timer) (the-as int (-> self timeout))) ) (none) @@ -658,9 +657,7 @@ (robber-move) (robber-rotate (the-as target #f) 1820.4445) (suspend) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-ambient-time))) - (the-as int (-> self time-to-next-ambient)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self last-ambient-time)) (-> self time-to-next-ambient)) (ja-channel-push! 1 60) (let ((a0-14 (-> self skel root-channel 0))) (set! (-> a0-14 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) @@ -682,7 +679,7 @@ (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set! (-> self last-ambient-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-ambient-time) (-> *display* base-frame-counter)) (let* ((f30-0 300.0) (f28-0 3.0) (f26-0 5.0) @@ -690,7 +687,7 @@ (v1-42 (the-as number (logior #x3f800000 v1-41))) ) (set! (-> self time-to-next-ambient) - (the-as uint (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) + (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) ) ) ) @@ -903,10 +900,10 @@ (robber-find-ground) (set! (-> obj y-offset) (-> obj y-offset-desired)) (let ((f0-14 (res-lump-float arg0 'timeout :default 10.0))) - (set! (-> obj timeout) (the-as uint (the int (* 300.0 f0-14)))) + (set! (-> obj timeout) (the-as time-frame (the int (* 300.0 f0-14)))) ) - (set! (-> obj last-ambient-time) (the-as uint 0)) - (set! (-> obj time-to-next-ambient) (the-as uint 0)) + (set! (-> obj last-ambient-time) 0) + (set! (-> obj time-to-next-ambient) 0) (set! (-> obj speed) 0.0) (let ((v1-42 (-> obj entity extra perm))) (logior! (-> v1-42 status) (entity-perm-status user-set-from-cstage)) diff --git a/goal_src/levels/snow/ice-cube.gc b/goal_src/levels/snow/ice-cube.gc index 779c0ddb6e..15708cab0c 100644 --- a/goal_src/levels/snow/ice-cube.gc +++ b/goal_src/levels/snow/ice-cube.gc @@ -29,7 +29,7 @@ (charge-angle float :offset-assert 440) (ground-y float :offset-assert 444) (cprims-type uint64 :offset-assert 448) - (next-skid-sound-time uint64 :offset-assert 456) + (next-skid-sound-time time-frame :offset-assert 456) (starting-pos vector :inline :offset-assert 464) (target-pt vector :inline :offset-assert 480) ) @@ -79,32 +79,32 @@ :die-anim 7 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 20.0) + :run-travel-speed (meters 20) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 1.0) + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) :notice-nav-radius (meters 1.5) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 35.0) - :stop-chase-distance (meters 45.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 35) + :stop-chase-distance (meters 45) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 10.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 3.0) + :jump-height-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 - :shadow-max-y (meters 1.0) + :shadow-max-y (meters 1) :shadow-min-y (meters -3.5) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -663,7 +663,7 @@ ) ) (vector-! gp-0 (-> obj target-pt) (-> obj collide-info trans)) - (seek-toward-heading-vec! (-> obj collide-info) gp-0 524288.0 30) + (seek-toward-heading-vec! (-> obj collide-info) gp-0 524288.0 (seconds 0.1)) (let ((v0-5 (< (fabs (deg- (quaternion-y-angle (-> obj collide-info quat)) (vector-y-angle gp-0))) 364.0889))) (b! #t cfg-10 :delay (nop!)) (the-as none 0) @@ -1277,7 +1277,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (dummy-58 self) (logior! (-> self nav-enemy-flags) 4) - (set! (-> self next-skid-sound-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self next-skid-sound-time) (-> *display* base-frame-counter)) (if (or (not *target*) (logtest? (-> *target* state-flags) #x80f8) (not (nav-enemy-test-point-near-nav-mesh? (-> *target* control shadow-pos))) @@ -1287,7 +1287,7 @@ (set! (-> self target-speed) (-> self nav-info run-travel-speed)) (set! (-> self acceleration) (-> self nav-info run-acceleration)) (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 turn-time) (-> self nav-info run-turn-time)) (logclear! (-> self nav flags) (nav-control-flags bit8)) (set-root-prim-collide-with! (-> self collide-info) (collide-kind cak-2 cak-3 target crate enemy)) (set! (-> self track-target?) #t) @@ -1378,10 +1378,8 @@ (spawn (-> self part4) gp-3) ) ) - (when (>= (-> *display* base-frame-counter) (the-as int (-> self next-skid-sound-time))) - (set! (-> self next-skid-sound-time) - (the-as uint (+ (-> *display* base-frame-counter) (nav-enemy-rnd-int-range 60 120))) - ) + (when (>= (-> *display* base-frame-counter) (-> self next-skid-sound-time)) + (set! (-> self next-skid-sound-time) (+ (-> *display* base-frame-counter) (nav-enemy-rnd-int-range 60 120))) (sound-play-by-name (static-sound-name "ice-stop") (new-sound-id) @@ -1537,7 +1535,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (cond ((or (not *target*) (< (-> self enemy-info idle-distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) @@ -1613,7 +1611,7 @@ (clear-collide-with-as (-> self collide-info)) (dummy-18 self) (let ((gp-1 (new 'stack 'joint-exploder-tuning 1))) - (set! (-> gp-1 duration) (the-as uint 900)) + (set! (-> gp-1 duration) (seconds 3)) (set! (-> gp-1 gravity) -327680.0) (set! (-> gp-1 fountain-rand-transv-lo quad) (-> (target-pos 0) quad)) (let ((s5-1 (get-process *default-dead-pool* joint-exploder #x4000))) diff --git a/goal_src/levels/snow/snow-ball.gc b/goal_src/levels/snow/snow-ball.gc index 6897c2ae07..f8d0e9c63f 100644 --- a/goal_src/levels/snow/snow-ball.gc +++ b/goal_src/levels/snow/snow-ball.gc @@ -20,8 +20,8 @@ (deftype snow-ball-junction (structure) - ((enter-time int64 :offset-assert 0) - (exit-time int64 :offset-assert 8) + ((enter-time time-frame :offset-assert 0) + (exit-time time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -51,8 +51,8 @@ (delay-til-bounce int32 :offset-assert 204) (rolling-sound-id sound-id :offset-assert 208) (rolling-sound-enabled? symbol :offset-assert 212) - (last-bounce-time int64 :offset-assert 216) - (hit-player-time int64 :offset-assert 224) + (last-bounce-time time-frame :offset-assert 216) + (hit-player-time time-frame :offset-assert 224) (path-info snow-ball-path-info :inline :offset-assert 240) (junctions snow-ball-junction 4 :inline :offset-assert 272) ) @@ -73,7 +73,7 @@ (deftype snow-ball (process) ((child-override (pointer snow-ball-roller) :offset 20) - (state-time int64 :offset-assert 112) + (state-time time-frame :offset-assert 112) (last-path-picked int32 :offset-assert 120) (same-path-picked-count int32 :offset-assert 124) (delay-til-next int32 :offset-assert 128) @@ -413,7 +413,7 @@ (the-as object (when (or (= v1-0 'touch) (= v1-0 'attack)) (when (= (-> arg0 type) target) (do-push-aways! (-> self root-override)) - (when (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) (seconds 0.5)) (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (dummy-22 self *target*) ) diff --git a/goal_src/levels/snow/snow-bumper.gc b/goal_src/levels/snow/snow-bumper.gc index f343293160..4716a4b2cd 100644 --- a/goal_src/levels/snow/snow-bumper.gc +++ b/goal_src/levels/snow/snow-bumper.gc @@ -17,7 +17,7 @@ (base-shove-ry float :offset-assert 180) (max-shove-diff-ry float :offset-assert 184) (part2 sparticle-launch-control :offset-assert 188) - (last-shoved-player-time uint64 :offset-assert 192) + (last-shoved-player-time time-frame :offset-assert 192) ) :heap-base #x60 :method-count-assert 22 @@ -154,7 +154,7 @@ (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))) + (set! (-> obj last-shoved-player-time) (-> *display* base-frame-counter)) ) ) ) @@ -217,7 +217,7 @@ (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) + (if (and (>= (- (-> *display* base-frame-counter) (-> self last-shoved-player-time)) (seconds 0.5)) (>= 20480.0 f30-0) (>= f28-0 -4096.0) (>= 11059.2 f28-0) @@ -281,7 +281,7 @@ ) (stop! (-> self sound)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (suspend) ) (let ((a0-10 (-> self skel root-channel 0))) @@ -392,7 +392,7 @@ (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)) + (set! (-> obj last-shoved-player-time) 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) diff --git a/goal_src/levels/snow/snow-bunny.gc b/goal_src/levels/snow/snow-bunny.gc index c19600905c..f97259b980 100644 --- a/goal_src/levels/snow/snow-bunny.gc +++ b/goal_src/levels/snow/snow-bunny.gc @@ -8,26 +8,26 @@ ;; DECOMP BEGINS (deftype snow-bunny (nav-enemy) - ((patrol-rand-distraction int32 :offset-assert 400) - (base-hop-dist float :offset-assert 404) - (halfway-dist float :offset-assert 408) - (retreat-timeout float :offset-assert 412) - (gnd-popup float :offset-assert 416) - (jump-height-min float :offset-assert 420) - (jump-height-factor float :offset-assert 424) - (jump-anim-start-frame float :offset-assert 428) - (defense uint64 :offset-assert 432) - (retreat-timeout-time int64 :offset-assert 440) - (last-nondangerous-time int64 :offset-assert 448) - (patrol-hop-failed? basic :offset-assert 456) - (should-retreat? basic :offset-assert 460) - (got-jump-event? symbol :offset-assert 464) - (using-jump-event? basic :offset-assert 468) - (jump-anim int8 :offset-assert 472) - (notice-land-anim int8 :offset-assert 473) - (attack-anim int8 :offset-assert 474) - (final-dest vector :inline :offset-assert 480) - (jump-event-dest vector :inline :offset-assert 496) + ((patrol-rand-distraction int32 :offset-assert 400) + (base-hop-dist float :offset-assert 404) + (halfway-dist float :offset-assert 408) + (retreat-timeout float :offset-assert 412) + (gnd-popup float :offset-assert 416) + (jump-height-min float :offset-assert 420) + (jump-height-factor float :offset-assert 424) + (jump-anim-start-frame float :offset-assert 428) + (defense uint64 :offset-assert 432) + (retreat-timeout-time time-frame :offset-assert 440) + (last-nondangerous-time time-frame :offset-assert 448) + (patrol-hop-failed? basic :offset-assert 456) + (should-retreat? basic :offset-assert 460) + (got-jump-event? symbol :offset-assert 464) + (using-jump-event? basic :offset-assert 468) + (jump-anim int8 :offset-assert 472) + (notice-land-anim int8 :offset-assert 473) + (attack-anim int8 :offset-assert 474) + (final-dest vector :inline :offset-assert 480) + (jump-event-dest vector :inline :offset-assert 496) ) :heap-base #x190 :method-count-assert 77 @@ -67,30 +67,30 @@ :die-anim 11 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :shadow-size (meters 2.0) + :shadow-size (meters 2) :notice-nav-radius (meters 1.2) - :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 + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 31.0 :jump-anim-start-frame 11.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.6 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -4.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -4) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -307,7 +307,11 @@ (set! f0-2 40.96) ) (let ((v1-13 (the int (/ f0-2 (* (-> obj nav-info run-travel-speed) (-> *display* seconds-per-frame)))))) - (if (<= (- (- 108 (- (-> *display* base-frame-counter) (-> obj last-nondangerous-time))) v1-13) 0) + (if (<= (- (- (seconds 0.36) (- (-> *display* base-frame-counter) (-> obj last-nondangerous-time))) + (the-as time-frame v1-13) + ) + 0 + ) (return #f) ) ) @@ -430,7 +434,7 @@ (set! (-> self nav flags) (logior (nav-control-flags bit19) (-> self nav flags))) (set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags))) (logior! (-> self nav-enemy-flags) 8) - (set! (-> self state-timeout) 30) + (set! (-> self state-timeout) (seconds 0.1)) (none) ) :trans @@ -487,7 +491,7 @@ ) (while #t (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 756) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 2.52)) (suspend) (let ((a0-6 (-> self skel root-channel 0))) (set! (-> a0-6 param 0) 1.0) @@ -655,7 +659,7 @@ (snow-bunny-initialize-jump (-> self nav target-pos)) (dummy-76 self #t) (set! (-> self rotate-speed) 728177.75) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (none) ) :exit @@ -754,7 +758,7 @@ (when *target* (let ((gp-2 (new 'stack-no-clear 'vector))) (vector-! gp-2 (target-pos 0) (-> self collide-info trans)) - (seek-toward-heading-vec! (-> self collide-info) gp-2 524288.0 30) + (seek-toward-heading-vec! (-> self collide-info) gp-2 524288.0 (seconds 0.1)) ) ) (suspend) @@ -901,7 +905,7 @@ (snow-bunny-initialize-jump (-> self nav target-pos)) (dummy-76 self #t) (set! (-> self rotate-speed) 728177.75) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (none) ) :exit @@ -1184,7 +1188,7 @@ (snow-bunny-initialize-jump (-> self nav target-pos)) (dummy-76 self #t) (set! (-> self rotate-speed) 728177.75) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (none) ) :exit @@ -1292,7 +1296,7 @@ (when *target* (let ((gp-0 (new 'stack-no-clear 'vector))) (vector-! gp-0 (target-pos 0) (-> self collide-info trans)) - (seek-toward-heading-vec! (-> self collide-info) gp-0 524288.0 30) + (seek-toward-heading-vec! (-> self collide-info) gp-0 524288.0 (seconds 0.1)) ) ) (+! (-> self collide-info transv y) (* -546119.7 (-> *display* seconds-per-frame))) diff --git a/goal_src/levels/snow/snow-flutflut-obs.gc b/goal_src/levels/snow/snow-flutflut-obs.gc index efbc251eab..260b4a995c 100644 --- a/goal_src/levels/snow/snow-flutflut-obs.gc +++ b/goal_src/levels/snow/snow-flutflut-obs.gc @@ -49,8 +49,8 @@ (deftype snow-button (process-drawable) ((root-override collide-shape-moving :offset 112) (wiggled? symbol :offset-assert 176) - (timeout int64 :offset-assert 184) - (delay-til-wiggle int64 :offset-assert 192) + (timeout time-frame :offset-assert 184) + (delay-til-wiggle time-frame :offset-assert 192) (prev-button entity-actor :offset-assert 200) (ticker ticky :inline :offset-assert 208) ) @@ -391,7 +391,7 @@ (behavior () (send-to-all-after (-> self link) 'untrigger) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 180) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.6)) (suspend) ) (let ((a0-2 (-> self skel root-channel 0))) @@ -467,8 +467,8 @@ (set! (-> obj link) (new 'process 'actor-link-info obj)) (initialize-skeleton obj *snow-button-sg* '()) (logior! (-> obj skel status) 1) - (set! (-> obj timeout) (the int (* 300.0 (res-lump-float arg0 'timeout :default 10.0)))) - (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) -120)) + (set! (-> obj timeout) (the-as time-frame (the int (* 300.0 (res-lump-float arg0 'timeout :default 10.0))))) + (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) (seconds -0.4))) (if (> (entity-actor-count arg0 'alt-actor) 0) (set! (-> obj prev-button) (entity-actor-lookup arg0 'alt-actor 0)) (set! (-> obj prev-button) #f) diff --git a/goal_src/levels/snow/snow-obs.gc b/goal_src/levels/snow/snow-obs.gc index cabfb8a68a..c97840ffd5 100644 --- a/goal_src/levels/snow/snow-obs.gc +++ b/goal_src/levels/snow/snow-obs.gc @@ -89,7 +89,7 @@ ) ) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 1350) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 4.5)) (suspend) ) ) @@ -514,7 +514,7 @@ (game-task none) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 330) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.1)) (if (-> self play-sound?) (update! (-> self sound)) ) @@ -1494,7 +1494,7 @@ ) (set! (-> gp-1 frame-num) 0.0) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (update! (-> self sound)) (suspend) ) diff --git a/goal_src/levels/snow/snow-ram-boss.gc b/goal_src/levels/snow/snow-ram-boss.gc index f55b978c19..60f791772f 100644 --- a/goal_src/levels/snow/snow-ram-boss.gc +++ b/goal_src/levels/snow/snow-ram-boss.gc @@ -15,7 +15,7 @@ (launched? symbol :offset-assert 416) (growth float :offset-assert 420) (charge-sound-id sound-id :offset-assert 424) - (launch-time uint64 :offset-assert 432) + (launch-time time-frame :offset-assert 432) (facing-dir vector :inline :offset-assert 448) ) :heap-base #x160 @@ -40,8 +40,8 @@ (proj-stoked basic :offset-assert 424) (proj-status uint64 :offset-assert 432) (part2 sparticle-launch-control :offset-assert 440) - (proj-last-thrown-time uint64 :offset-assert 448) - (nav-enemy-patrol-timeout uint64 :offset-assert 456) + (proj-last-thrown-time time-frame :offset-assert 448) + (nav-enemy-patrol-timeout time-frame :offset-assert 456) (proj-launch-vec vector :inline :offset-assert 464) (local-throw-point vector :inline :offset-assert 480) (shield-jmod joint-mod-set-local :offset-assert 496) @@ -93,31 +93,31 @@ :die-anim 15 :neck-joint 6 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 2.0) + :attack-shove-back (meters 2) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 18.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 58.0) - :stop-chase-distance (meters 58.0) - :frustration-time #x2328 + :shadow-size (meters 2) + :notice-nav-radius (meters 18) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 58) + :stop-chase-distance (meters 58) + :frustration-time (seconds 30) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -146,31 +146,31 @@ :die-anim 15 :neck-joint 6 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 2.0) + :attack-shove-back (meters 2) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 18.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 58.0) - :stop-chase-distance (meters 58.0) - :frustration-time #x2328 + :shadow-size (meters 2) + :notice-nav-radius (meters 18) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 58) + :stop-chase-distance (meters 58) + :frustration-time (seconds 30) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -594,8 +594,8 @@ (set! (-> obj max-turn) 11832.889) (set! (-> obj tween) 0.02) (set! (-> obj attack-mode) 'snow-ram-proj) - (set! (-> obj launch-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj timeout) (the-as uint 1200)) + (set! (-> obj launch-time) (-> *display* base-frame-counter)) + (set! (-> obj timeout) (seconds 4)) (set! (-> obj sound-id) (sound-play-by-name (static-sound-name "ramboss-track") (new-sound-id) 1024 0 0 1 #t)) (let ((v1-12 (-> obj parent-override))) (set! (-> v1-12 0 proj-stoked) #t) @@ -707,7 +707,7 @@ (set! (-> self launched?) #t) (set! (-> self growth) 1.0) (logior! (-> self root-override root-prim prim-core action) (collide-action solid)) - (set! (-> self launch-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self launch-time) (-> *display* base-frame-counter)) (vector-float*! (-> self root-override transv) (-> self parent-override 0 proj-launch-vec) 40960.0) (set! (-> self target quad) (-> (target-pos 0) quad)) (set! (-> self target y) (+ 4915.2 (-> self target y))) @@ -1048,14 +1048,14 @@ ) ) ((= (-> arg3 param 0) 'die) - (let* ((v1-73 (- (-> *display* base-frame-counter) (the-as int (-> (the-as ram-boss v1-66) proj-status)))) - (v1-74 (- 1200 v1-73)) + (let* ((v1-73 (- (-> *display* base-frame-counter) (-> (the-as ram-boss-proj v1-66) launch-time))) + (v1-74 (the-as int (- (seconds 4) v1-73))) ) (cond - ((< 1200 v1-74) + ((< (seconds 4) (the-as time-frame v1-74)) (set! v1-74 1200) ) - ((< v1-74 0) + ((< (the-as time-frame v1-74) 0) (set! v1-74 0) ) ) @@ -1216,10 +1216,10 @@ (set! (-> self dead?) #f) (set! (-> self proj-status) (the-as uint 0)) (set! (-> self proj-stoked) #f) - (set! (-> self proj-last-thrown-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self proj-last-thrown-time) (-> *display* base-frame-counter)) (set-vector! (-> self local-throw-point) 10456.269 9961.882 1510.6049 1.0) (set! (-> self frustration) 0) - (set! (-> self nav-enemy-patrol-timeout) (the-as uint 300)) + (set! (-> self nav-enemy-patrol-timeout) (seconds 1)) (initialize-collision self) (set! (-> self entity) (-> arg1 entity)) (TODO-RENAME-48 self) @@ -1305,7 +1305,7 @@ (defmethod set-jump-height-factor! ram-boss ((obj ram-boss) (arg0 int)) (cond ((zero? (-> obj proj-status)) - (when (and *target* (>= (- (-> *display* base-frame-counter) (the-as int (-> obj proj-last-thrown-time))) 600)) + (when (and *target* (>= (- (-> *display* base-frame-counter) (-> obj proj-last-thrown-time)) (seconds 2))) (when arg0 (set! (-> obj proj-stoked) #t) (let ((s5-0 (new 'stack-no-clear 'vector))) @@ -1476,7 +1476,7 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (vector-! gp-0 (target-pos 0) (-> self collide-info trans)) (set! (-> gp-0 y) 0.0) - (seek-toward-heading-vec! (-> self collide-info) gp-0 182044.44 3) + (seek-toward-heading-vec! (-> self collide-info) gp-0 182044.44 (seconds 0.01)) ) (suspend) (let ((a0-7 (-> self skel root-channel 0))) @@ -1600,8 +1600,8 @@ :enter (behavior () ((-> (method-of-type nav-enemy nav-enemy-patrol) enter)) - (set! (-> self state-timeout) (the-as int (-> self nav-enemy-patrol-timeout))) - (set! (-> self nav-enemy-patrol-timeout) (the-as uint 300)) + (set! (-> self state-timeout) (-> self nav-enemy-patrol-timeout)) + (set! (-> self nav-enemy-patrol-timeout) (seconds 1)) (ja-channel-push! 1 90) (none) ) @@ -1649,7 +1649,7 @@ ) (cond ((logtest? (nav-control-flags bit17) (-> self nav flags)) - (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 1)) (go-virtual nav-enemy-patrol) ) ) @@ -1714,7 +1714,7 @@ (behavior () (set-jump-height-factor! self - (the-as int (>= (- (-> *display* base-frame-counter) (-> self state-time)) 225)) + (the-as int (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.75))) ) (if (not *target*) (go-virtual nav-enemy-patrol) @@ -1757,7 +1757,7 @@ ) (when (>= (-> self frustration) 256) (set! (-> self frustration) 0) - (set! (-> self nav-enemy-patrol-timeout) (the-as uint (rand-vu-int-range 600 1500))) + (set! (-> self nav-enemy-patrol-timeout) (rand-vu-int-range (seconds 2) (seconds 5))) (go-virtual nav-enemy-patrol) ) ) @@ -1765,7 +1765,7 @@ ) (when (and (= (-> self proj-status) 2) (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) ) (let ((gp-2 (new 'stack-no-clear 'vector)) (s5-2 (new 'stack-no-clear 'vector)) @@ -2068,7 +2068,7 @@ (set! gp-0 (-> gp-0 0 brother)) ) ) - (set! (-> self proj-last-thrown-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self proj-last-thrown-time) (-> *display* base-frame-counter)) (none) ) :trans diff --git a/goal_src/levels/snow/target-ice.gc b/goal_src/levels/snow/target-ice.gc index 676c3fd6e0..fbcc690741 100644 --- a/goal_src/levels/snow/target-ice.gc +++ b/goal_src/levels/snow/target-ice.gc @@ -27,11 +27,7 @@ (remove-exit) (go target-ice-walk) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (remove-exit) (go target-duck-stance) ) @@ -351,19 +347,13 @@ ) (pad-buttons l1 r1) ) - (and (>= (- (-> *display* base-frame-counter) (the-as int (-> *TARGET-bank* wheel-timeout))) - (-> self control unknown-dword30) - ) + (and (>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* wheel-timeout)) (-> self control unknown-dword30)) (and (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) (can-wheel?)) ) ) (go target-wheel) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (target-effect-exit) (remove-exit) (go target-duck-stance) diff --git a/goal_src/levels/snow/yeti.gc b/goal_src/levels/snow/yeti.gc index 6ab1d699ee..83d317ce1a 100644 --- a/goal_src/levels/snow/yeti.gc +++ b/goal_src/levels/snow/yeti.gc @@ -72,32 +72,32 @@ :die-anim 9 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t @@ -230,7 +230,7 @@ (move-to-ground (-> self collide-info) 40960.0 40960.0 #t (collide-kind background)) ) (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) - (set! (-> self state-timeout) 300) + (set! (-> self state-timeout) (seconds 1)) (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))) @@ -512,7 +512,7 @@ :virtual #t :code (behavior () - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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)) @@ -613,7 +613,7 @@ :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) diff --git a/goal_src/levels/sunken/bully.gc b/goal_src/levels/sunken/bully.gc index d6fdc50e9d..ed96bb4ab0 100644 --- a/goal_src/levels/sunken/bully.gc +++ b/goal_src/levels/sunken/bully.gc @@ -36,10 +36,10 @@ (speed-u float :offset-assert 196) (spin-vel float :offset-assert 200) (travel-speed float :offset-assert 204) - (reaction-delay uint64 :offset-assert 208) - (start-spin-time uint64 :offset-assert 216) - (slow-down uint64 :offset-assert 224) - (hit-player-time uint64 :offset-assert 232) + (reaction-delay time-frame :offset-assert 208) + (start-spin-time time-frame :offset-assert 216) + (slow-down time-frame :offset-assert 224) + (hit-player-time time-frame :offset-assert 232) (neck joint-mod :offset-assert 240) ) :heap-base #x90 @@ -379,7 +379,7 @@ (set! (-> self hit-player?) #t) (set! (-> self bounced?) #t) (set! (-> self bounce-volume) 100) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-override) 2 (collide-offense no-offense)) ) ) @@ -431,7 +431,7 @@ (defbehavior bully-post bully () (when (and (-> self hit-player?) (or (not *target*) (and (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self hit-player-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) (seconds 0.05)) ) ) ) @@ -522,7 +522,7 @@ :enter (behavior ((arg0 symbol)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self reaction-delay) (the-as uint (rand-vu-int-range 0 105))) + (set! (-> self reaction-delay) (rand-vu-int-range 0 (seconds 0.35))) (set! (-> self travel-speed) 0.0) (shut-down! (-> self neck)) (let ((v1-5 (-> self draw shadow-ctrl))) @@ -545,7 +545,7 @@ (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self reaction-delay))) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self reaction-delay)) ) (start-hint-timer (game-text-id sunken-bully-dive-hint)) (go bully-notice) @@ -659,7 +659,7 @@ (when *target* (let ((gp-3 (new 'stack-no-clear 'vector))) (vector-! gp-3 (target-pos 0) (-> self root-override trans)) - (seek-toward-heading-vec! (-> self root-override) gp-3 524288.0 30) + (seek-toward-heading-vec! (-> self root-override) gp-3 524288.0 (seconds 0.1)) ) (set! (-> self facing-ry) (quaternion-y-angle (-> self root-override quat))) ) @@ -695,8 +695,8 @@ :enter (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self start-spin-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self slow-down) (the-as uint (rand-vu-int-range 1200 2400))) + (set! (-> self start-spin-time) (-> *display* base-frame-counter)) + (set! (-> self slow-down) (rand-vu-int-range (seconds 4) (seconds 8))) (set! (-> self speed-u) 0.2) (set! (-> self bounced?) #f) (let ((gp-0 (new 'stack-no-clear 'vector))) @@ -723,9 +723,7 @@ (set-target! (-> self neck) (target-pos 5)) ) (cond - ((>= (- (-> *display* base-frame-counter) (the-as int (-> self start-spin-time))) - (the-as int (-> self slow-down)) - ) + ((>= (- (-> *display* base-frame-counter) (-> self start-spin-time)) (-> self slow-down)) (set! (-> self speed-u) (seek (-> self speed-u) 0.0 (* 0.5555556 (-> *display* seconds-per-frame)))) (if (= (-> self speed-u) 0.0) (go bully-stop-spinning) @@ -847,7 +845,7 @@ :enter (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self reaction-delay) (the-as uint (rand-vu-int-range 600 900))) + (set! (-> self reaction-delay) (rand-vu-int-range (seconds 2) (seconds 3))) (set! (-> self travel-speed) 0.0) (set! (-> self bounced?) #f) (none) @@ -872,7 +870,7 @@ (local-vars (v1-17 symbol) (v1-35 symbol)) (let ((gp-0 2)) (ja-channel-push! 1 60) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self reaction-delay))) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self reaction-delay)) (cond ((>= gp-0 0) (+! gp-0 -1) diff --git a/goal_src/levels/sunken/double-lurker.gc b/goal_src/levels/sunken/double-lurker.gc index 7dd054edfc..9df9e1d679 100644 --- a/goal_src/levels/sunken/double-lurker.gc +++ b/goal_src/levels/sunken/double-lurker.gc @@ -84,32 +84,32 @@ :die-anim 17 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 3.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 3) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -138,32 +138,32 @@ :die-anim 17 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 720.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) :walk-travel-speed (meters 3.8) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 4.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 4) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -192,32 +192,32 @@ :die-anim 17 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 720.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) :walk-travel-speed (meters 3.8) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 4.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 4) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/goal_src/levels/sunken/helix-water.gc b/goal_src/levels/sunken/helix-water.gc index 823bb27fc9..88901ab2d3 100644 --- a/goal_src/levels/sunken/helix-water.gc +++ b/goal_src/levels/sunken/helix-water.gc @@ -368,7 +368,7 @@ ) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5)) (suspend) ) (level-hint-spawn @@ -405,11 +405,11 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 375) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.25)) (suspend) ) (sound-play-by-name (static-sound-name "maindoor") (new-sound-id) 1024 0 0 1 #t) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 570) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.9)) (suspend) ) (let ((a1-13 (new 'stack-no-clear 'event-message-block))) @@ -427,7 +427,7 @@ ) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1050) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3.5)) (suspend) ) (let ((a1-14 (new 'stack-no-clear 'event-message-block))) @@ -452,10 +452,10 @@ *entity-pool* (game-task none) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (suspend) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (send-event *target* 'play-anim 'shock-out) (send-event *target* 'neck 1.0 (-> self my-door extra trans)) (suspend) diff --git a/goal_src/levels/sunken/puffer.gc b/goal_src/levels/sunken/puffer.gc index cb7f9fdad0..83771d4c8e 100644 --- a/goal_src/levels/sunken/puffer.gc +++ b/goal_src/levels/sunken/puffer.gc @@ -33,11 +33,11 @@ (look-mean? symbol :offset-assert 232) (cprims-type uint64 :offset-assert 240) (neck joint-mod :offset-assert 248) - (hit-player-time uint64 :offset-assert 256) - (reaction-delay uint64 :offset-assert 264) - (picked-point-time uint64 :offset-assert 272) - (pick-new-point-delay uint64 :offset-assert 280) - (last-on-screen-time uint64 :offset-assert 288) + (hit-player-time time-frame :offset-assert 256) + (reaction-delay time-frame :offset-assert 264) + (picked-point-time time-frame :offset-assert 272) + (pick-new-point-delay time-frame :offset-assert 280) + (last-on-screen-time time-frame :offset-assert 288) (buddy process-drawable :offset-assert 296) (nice-look lod-set :inline :offset-assert 300) (mean-look lod-set :inline :offset-assert 336) @@ -129,7 +129,7 @@ ) (when (send-event-function arg0 a1-9) (set! (-> self hit-player?) #t) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-override) 2 (collide-offense no-offense)) ) ) @@ -142,7 +142,7 @@ (defbehavior puffer-post puffer () (when (and (-> self hit-player?) (or (not *target*) (and (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self hit-player-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) (seconds 0.05)) ) ) ) @@ -589,7 +589,7 @@ ) ) (logtest? (-> self draw status) (draw-status drwf03)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) ) (go puffer-patrol) ) @@ -609,13 +609,13 @@ (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) (set! (-> self attacking?) #f) - (set! (-> self reaction-delay) (the-as uint (rand-vu-int-range 30 105))) + (set! (-> self reaction-delay) (rand-vu-int-range (seconds 0.1) (seconds 0.35))) (if (not (dummy-23 self #f)) (go puffer-idle) ) - (set! (-> self picked-point-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self pick-new-point-delay) (the-as uint (rand-vu-int-range 900 3000))) - (set! (-> self last-on-screen-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self picked-point-time) (-> *display* base-frame-counter)) + (set! (-> self pick-new-point-delay) (rand-vu-int-range (seconds 3) (seconds 10))) + (set! (-> self last-on-screen-time) (-> *display* base-frame-counter)) (none) ) :trans @@ -625,39 +625,37 @@ ) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) ) (go puffer-idle) ) (cond ((logtest? (-> self draw status) (draw-status drwf03)) - (set! (-> self last-on-screen-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-on-screen-time) (-> *display* base-frame-counter)) ) (else - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-on-screen-time))) 2400) + (if (>= (- (-> *display* base-frame-counter) (-> self last-on-screen-time)) (seconds 8)) (go puffer-idle) ) ) ) (when (dummy-22 self) (when (dummy-23 self #t) - (set! (-> self picked-point-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self pick-new-point-delay) (the-as uint (rand-vu-int-range 900 3000))) + (set! (-> self picked-point-time) (-> *display* base-frame-counter)) + (set! (-> self pick-new-point-delay) (rand-vu-int-range (seconds 3) (seconds 10))) ) ) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self reaction-delay))) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self reaction-delay)) (dummy-25 self (-> self notice-dist)) ) (go puffer-attack) ) (when (or (< (vector-vector-xz-distance (-> self root-override trans) (-> self dest-pos)) 8192.0) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self picked-point-time))) - (the-as int (-> self pick-new-point-delay)) - ) + (>= (- (-> *display* base-frame-counter) (-> self picked-point-time)) (-> self pick-new-point-delay)) ) (when (dummy-23 self #f) - (set! (-> self picked-point-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self pick-new-point-delay) (the-as uint (rand-vu-int-range 900 3000))) + (set! (-> self picked-point-time) (-> *display* base-frame-counter)) + (set! (-> self pick-new-point-delay) (rand-vu-int-range (seconds 3) (seconds 10))) ) ) (dummy-20 self (-> self dest-pos)) diff --git a/goal_src/levels/sunken/qbert-plat.gc b/goal_src/levels/sunken/qbert-plat.gc index cc16eefdfa..23387b71b9 100644 --- a/goal_src/levels/sunken/qbert-plat.gc +++ b/goal_src/levels/sunken/qbert-plat.gc @@ -57,24 +57,24 @@ (define *qbert-plat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 1.5 - :max-buoyancy-depth (meters 1.0) + :max-buoyancy-depth (meters 1) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 4 :mass 4.0 - :inertial-tensor-x (meters 4.0) - :inertial-tensor-y (meters 4.0) - :inertial-tensor-z (meters 4.0) - :idle-distance (meters 70.0) + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 4) + :inertial-tensor-z (meters 4) + :idle-distance (meters 70) :platform #t :sound-name #f ) @@ -662,7 +662,7 @@ (-> s5-0 ppointer) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 420) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.4)) (suspend) ) ) @@ -686,7 +686,7 @@ (-> s5-1 ppointer) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) ) diff --git a/goal_src/levels/sunken/shover.gc b/goal_src/levels/sunken/shover.gc index 0541103656..cd96b1077d 100644 --- a/goal_src/levels/sunken/shover.gc +++ b/goal_src/levels/sunken/shover.gc @@ -55,7 +55,7 @@ ) (cond ((or (= (-> *target* control unknown-surface00 mode) 'air) - (>= (+ (-> *display* base-frame-counter) -60) (-> *target* control unknown-dword11)) + (>= (+ (-> *display* base-frame-counter) (seconds -0.2)) (-> *target* control unknown-dword11)) (< 0.75 (-> *target* control poly-normal y)) ) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) diff --git a/goal_src/levels/sunken/square-platform.gc b/goal_src/levels/sunken/square-platform.gc index d68731bc8f..761589f0d3 100644 --- a/goal_src/levels/sunken/square-platform.gc +++ b/goal_src/levels/sunken/square-platform.gc @@ -15,7 +15,7 @@ (pos-u float :offset-assert 232) (water-entity entity-actor :offset-assert 236) (splash-counter int32 :offset-assert 240) - (start-splash-time uint64 :offset-assert 248) + (start-splash-time time-frame :offset-assert 248) (part2 sparticle-launch-control :offset-assert 256) (part3 sparticle-launch-control :offset-assert 260) (part4 sparticle-launch-control :offset-assert 264) @@ -56,15 +56,15 @@ (deftype square-platform-master (process-drawable) - ((button-id int32 :offset-assert 176) - (plat-id int32 :offset-assert 180) - (plat-mask uint32 :offset-assert 184) - (plat-id-dir int32 :offset-assert 188) - (wiggled? symbol :offset-assert 192) - (timeout int64 :offset-assert 200) - (last-plat-activated-time int64 :offset-assert 208) - (delay-til-wiggle int64 :offset-assert 216) - (ticker ticky :inline :offset-assert 224) + ((button-id int32 :offset-assert 176) + (plat-id int32 :offset-assert 180) + (plat-mask uint32 :offset-assert 184) + (plat-id-dir int32 :offset-assert 188) + (wiggled? symbol :offset-assert 192) + (timeout time-frame :offset-assert 200) + (last-plat-activated-time time-frame :offset-assert 208) + (delay-til-wiggle time-frame :offset-assert 216) + (ticker ticky :inline :offset-assert 224) ) :heap-base #x90 :method-count-assert 20 @@ -215,13 +215,13 @@ (set! v0-3 (cond (arg0 (if (>= (-> s4-0 y) f0-2) - (set! (-> obj start-splash-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj start-splash-time) (-> *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))) + (set! (-> obj start-splash-time) (-> *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)) @@ -311,7 +311,7 @@ ) :enter (behavior () - (set! (-> self start-splash-time) (the-as uint 0)) + (set! (-> self start-splash-time) 0) (set! (-> self splash-counter) 0) 0 (none) @@ -393,7 +393,7 @@ ) :enter (behavior () - (set! (-> self start-splash-time) (the-as uint 0)) + (set! (-> self start-splash-time) 0) (set! (-> self splash-counter) 0) 0 (none) @@ -681,7 +681,7 @@ (send-to-all (-> self link) 'bounce) ) ) - (when (>= (- (-> *display* base-frame-counter) (-> self last-plat-activated-time)) 90) + (when (>= (- (-> *display* base-frame-counter) (-> self last-plat-activated-time)) (seconds 0.3)) (set! (-> self last-plat-activated-time) (-> *display* base-frame-counter)) (let ((v1-20 (-> self plat-id)) (a0-5 (-> self plat-id-dir)) @@ -725,8 +725,10 @@ (set! (-> obj plat-id) -1) (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) - (set! (-> obj timeout) (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 10.0)))) - (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) -120)) + (set! (-> obj timeout) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 10.0)))) + ) + (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) (seconds -0.4))) (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))) (go square-platform-master-idle) diff --git a/goal_src/levels/sunken/sun-exit-chamber.gc b/goal_src/levels/sunken/sun-exit-chamber.gc index 0629711bea..340a0e8dda 100644 --- a/goal_src/levels/sunken/sun-exit-chamber.gc +++ b/goal_src/levels/sunken/sun-exit-chamber.gc @@ -464,7 +464,7 @@ (while #t (cond ((zero? (get-reminder (get-task-control (game-task sunken-room)) 0)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 20)) (level-hint-spawn (game-text-id sunken-blue-eco-charger-all-hint) "sksp0133" @@ -825,7 +825,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 750) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2.5)) (suspend) ) (send-event (ppointer->process (-> self door)) 'trigger) @@ -947,7 +947,7 @@ (joint-control-channel-group! a0-13 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) (until (ja-done? 0) - (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 225) (-> self door)) + (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.75)) (-> self door)) (set! gp-1 #t) (send-event (ppointer->process (-> self door)) 'untrigger) ) @@ -1046,7 +1046,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self wave-scale) (seek (-> self wave-scale) 1.0 0.0016666667)) (dummy-20 self (-> self wave-scale)) (suspend) @@ -1055,7 +1055,7 @@ (send-event (ppointer->process (-> self door)) 'trigger) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 750) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2.5)) (set! (-> self wave-scale) (seek (-> self wave-scale) 1.0 0.0016666667)) (dummy-20 self (-> self wave-scale)) (suspend) @@ -1222,11 +1222,11 @@ (joint-control-channel-group! a0-5 (the-as art-joint-anim (-> self draw art-group data 7)) num-func-seek!) ) (until (ja-done? 0) - (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 75) (-> self door)) + (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) (-> self door)) (set! gp-1 #t) (send-event (ppointer->process (-> self door)) 'untrigger) ) - (when (+ (-> *display* base-frame-counter) -30) + (when (+ (-> *display* base-frame-counter) (seconds -0.1)) (let ((a0-9 (new 'stack-no-clear 'vector))) (set! (-> a0-9 quad) (-> self last-pos quad)) (set! (-> a0-9 y) (+ 64102.4 (-> a0-9 y))) @@ -1298,7 +1298,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (suspend) ) (set-continue! *game-info* "sunkenb-start") diff --git a/goal_src/levels/sunken/sun-iris-door.gc b/goal_src/levels/sunken/sun-iris-door.gc index 15317f700b..ae4615be97 100644 --- a/goal_src/levels/sunken/sun-iris-door.gc +++ b/goal_src/levels/sunken/sun-iris-door.gc @@ -232,7 +232,7 @@ (case arg2 (('trigger) (let ((v0-0 (the-as object (-> *display* base-frame-counter)))) - (set! (-> self state-time) (the-as int v0-0)) + (set! (-> self state-time) (the-as time-frame v0-0)) v0-0 ) ) diff --git a/goal_src/levels/sunken/sunken-fish.gc b/goal_src/levels/sunken/sunken-fish.gc index ac497f8602..2832a8d382 100644 --- a/goal_src/levels/sunken/sunken-fish.gc +++ b/goal_src/levels/sunken/sunken-fish.gc @@ -8,20 +8,20 @@ ;; DECOMP BEGINS (deftype sunkenfisha (process-drawable) - ((path-u float :offset-assert 176) - (path-speed float :offset-assert 180) - (path-speed-seek-speed float :offset-assert 184) - (targ-path-speed float :offset-assert 188) - (path-normal-speed-lo float :offset-assert 192) - (path-normal-speed-hi float :offset-assert 196) - (path-dir float :offset-assert 200) - (change-path-dir-time uint64 :offset-assert 208) - (local-path-offset vector :inline :offset-assert 224) - (targ-local-path-offset vector :inline :offset-assert 240) - (local-path-offset-dir vector :inline :offset-assert 256) - (max-local-path-offset vector :inline :offset-assert 272) - (facing-rot vector :inline :offset-assert 288) - (path-trans-offset vector :inline :offset-assert 304) + ((path-u float :offset-assert 176) + (path-speed float :offset-assert 180) + (path-speed-seek-speed float :offset-assert 184) + (targ-path-speed float :offset-assert 188) + (path-normal-speed-lo float :offset-assert 192) + (path-normal-speed-hi float :offset-assert 196) + (path-dir float :offset-assert 200) + (change-path-dir-time time-frame :offset-assert 208) + (local-path-offset vector :inline :offset-assert 224) + (targ-local-path-offset vector :inline :offset-assert 240) + (local-path-offset-dir vector :inline :offset-assert 256) + (max-local-path-offset vector :inline :offset-assert 272) + (facing-rot vector :inline :offset-assert 288) + (path-trans-offset vector :inline :offset-assert 304) ) :heap-base #xd0 :method-count-assert 28 @@ -162,7 +162,7 @@ (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))) + (+ (-> *display* base-frame-counter) (rand-vu-int-range (seconds 5) (seconds 18))) ) (set! (-> obj targ-local-path-offset y) (* 0.5 (+ (-> obj targ-local-path-offset y) (-> obj local-path-offset y))) @@ -198,7 +198,7 @@ (vf2 :class vf) ) (init-vf0-vector) - (if (>= (-> *display* base-frame-counter) (the-as int (-> self change-path-dir-time))) + (if (>= (-> *display* base-frame-counter) (-> self change-path-dir-time)) (TODO-RENAME-20 self) ) (TODO-RENAME-24 self) @@ -313,7 +313,7 @@ (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))) + (+ (-> *display* base-frame-counter) (rand-vu-int-range (seconds 5) (seconds 18))) ) (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)) diff --git a/goal_src/levels/sunken/sunken-obs.gc b/goal_src/levels/sunken/sunken-obs.gc index 9a07674212..f736369537 100644 --- a/goal_src/levels/sunken/sunken-obs.gc +++ b/goal_src/levels/sunken/sunken-obs.gc @@ -219,7 +219,7 @@ (set! (-> v1-45 draw?) #t) (set! (-> v1-45 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (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) @@ -237,7 +237,7 @@ (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set-blackout-frames 150) + (set-blackout-frames (seconds 0.5)) (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))) @@ -261,7 +261,7 @@ ) ) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) ) ((= v1-0 1) (let ((a0-18 (-> self skel root-channel 0))) @@ -285,7 +285,7 @@ (set! (-> v1-116 draw?) #t) (set! (-> v1-116 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (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) @@ -303,7 +303,7 @@ (joint-control-channel-group-eval! a0-25 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (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))) @@ -333,7 +333,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) ) @@ -394,7 +394,7 @@ 1.3 ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (suspend) ) ) diff --git a/goal_src/levels/sunken/sunken-pipegame.gc b/goal_src/levels/sunken/sunken-pipegame.gc index 887a31e0f0..4fb587d031 100644 --- a/goal_src/levels/sunken/sunken-pipegame.gc +++ b/goal_src/levels/sunken/sunken-pipegame.gc @@ -17,9 +17,9 @@ (deftype sunken-pipegame-prize (structure) - ((puzzle-delay int64 :offset-assert 0) - (pipe-travel-time-to-far int64 :offset-assert 8) - (pipe-travel-time-to-jar int64 :offset-assert 16) + ((puzzle-delay time-frame :offset-assert 0) + (pipe-travel-time-to-far time-frame :offset-assert 8) + (pipe-travel-time-to-jar time-frame :offset-assert 16) (actor-handle handle :offset-assert 24) (jar-pos vector :inline :offset-assert 32) (far-pos vector :inline :offset-assert 48) @@ -666,7 +666,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((f30-0 0.0)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (let ((s5-3 (-> self prize (-> self challenge)))) (spawn (-> s5-3 sucked-up-part) (-> s5-3 sucked-up-jar-part-pos)) (spawn (-> s5-3 blown-out-part) (-> s5-3 blown-out-far-part-pos)) @@ -768,7 +768,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (sleep (-> self ticker) (-> self prize (-> self challenge) puzzle-delay)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (completed? (-> self ticker)) (suspend) ) @@ -788,7 +788,7 @@ (set! (-> self abort-audio-if-beaten?) #t) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((f30-2 0.0)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (let ((gp-2 (-> self prize (-> self challenge)))) (spawn (-> gp-2 sucked-up-part) (-> gp-2 sucked-up-far-part-pos)) (spawn (-> gp-2 blown-out-part) (-> gp-2 blown-out-jar-part-pos)) @@ -888,7 +888,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5)) (suspend) ) (ambient-hint-spawn "st-lose" (the-as vector #f) *entity-pool* 'stinger) @@ -1050,9 +1050,9 @@ (let ((v1-30 s2-0)) (cond ((zero? v1-30) - (set! (-> s0-0 puzzle-delay) 7500) - (set! (-> s0-0 pipe-travel-time-to-far) 2550) - (set! (-> s0-0 pipe-travel-time-to-jar) 750) + (set! (-> s0-0 puzzle-delay) (seconds 25)) + (set! (-> s0-0 pipe-travel-time-to-far) (seconds 8.5)) + (set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5)) (set-vector! s4-0 -30720.0 1146.88 5120.0 1.0) (set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 448) obj)) (set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 451) obj)) @@ -1072,9 +1072,9 @@ ) ) ((= v1-30 1) - (set! (-> s0-0 puzzle-delay) 4500) - (set! (-> s0-0 pipe-travel-time-to-far) 1650) - (set! (-> s0-0 pipe-travel-time-to-jar) 750) + (set! (-> s0-0 puzzle-delay) (seconds 15)) + (set! (-> s0-0 pipe-travel-time-to-far) (seconds 5.5)) + (set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5)) (set-vector! s4-0 0.0 1146.88 5120.0 1.0) (set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 449) obj)) (set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 452) obj)) @@ -1096,9 +1096,9 @@ ) ) ((= v1-30 2) - (set! (-> s0-0 puzzle-delay) 4500) - (set! (-> s0-0 pipe-travel-time-to-far) 1350) - (set! (-> s0-0 pipe-travel-time-to-jar) 750) + (set! (-> s0-0 puzzle-delay) (seconds 15)) + (set! (-> s0-0 pipe-travel-time-to-far) (seconds 4.5)) + (set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5)) (set-vector! s4-0 30720.0 1146.88 5120.0 1.0) (set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 450) obj)) (set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 453) obj)) diff --git a/goal_src/levels/sunken/target-tube.gc b/goal_src/levels/sunken/target-tube.gc index 2e8e6897d8..f811774880 100644 --- a/goal_src/levels/sunken/target-tube.gc +++ b/goal_src/levels/sunken/target-tube.gc @@ -121,22 +121,22 @@ ) (deftype tube-info (basic) - ((entity basic :offset-assert 4) - (tube handle :offset-assert 8) - (downhill vector :inline :offset-assert 16) - (centertube vector :inline :offset-assert 32) - (downtube vector :inline :offset-assert 48) - (sidetube vector :inline :offset-assert 64) - (foretube vector :inline :offset-assert 80) - (old-transv vector :inline :offset-assert 96) - (mod-x float :offset-assert 112) - (mod-y float :offset-assert 116) - (start-time uint64 :offset-assert 120) - (turn-anim-targ float :offset-assert 128) - (turn-anim-frame float :offset-assert 132) - (turn-anim-vel float :offset-assert 136) - (tube-sound-id sound-id :offset-assert 140) - (tube-sound-vol float :offset-assert 144) + ((entity basic :offset-assert 4) + (tube handle :offset-assert 8) + (downhill vector :inline :offset-assert 16) + (centertube vector :inline :offset-assert 32) + (downtube vector :inline :offset-assert 48) + (sidetube vector :inline :offset-assert 64) + (foretube vector :inline :offset-assert 80) + (old-transv vector :inline :offset-assert 96) + (mod-x float :offset-assert 112) + (mod-y float :offset-assert 116) + (start-time time-frame :offset-assert 120) + (turn-anim-targ float :offset-assert 128) + (turn-anim-frame float :offset-assert 132) + (turn-anim-vel float :offset-assert 136) + (tube-sound-id sound-id :offset-assert 140) + (tube-sound-vol float :offset-assert 144) ) :method-count-assert 9 :size-assert #x94 @@ -508,7 +508,7 @@ (set! (-> self tube entity) (-> a0-4 entity)) ) ) - (set! (-> self tube start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self tube start-time) (-> *display* base-frame-counter)) (set! (-> self tube tube-sound-id) (new-sound-id)) (set! (-> self tube tube-sound-vol) 0.0) (target-collide-set! 'tube 0.0) @@ -691,12 +691,7 @@ (if (logtest? (-> self control status) 1) (go target-tube) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (set! (-> self control unknown-float122) (seek (-> self control unknown-float122) @@ -930,7 +925,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-40 (suspend) - (set! v1-40 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) (not (movie?)))) + (set! v1-40 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (not (movie?)))) ) (go target-tube) (none) diff --git a/goal_src/levels/sunken/wedge-plats.gc b/goal_src/levels/sunken/wedge-plats.gc index eb82ef8659..b0e5645deb 100644 --- a/goal_src/levels/sunken/wedge-plats.gc +++ b/goal_src/levels/sunken/wedge-plats.gc @@ -203,7 +203,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (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)) @@ -406,7 +406,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (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)) diff --git a/goal_src/levels/swamp/billy.gc b/goal_src/levels/swamp/billy.gc index e3eed8713a..88dd168328 100644 --- a/goal_src/levels/swamp/billy.gc +++ b/goal_src/levels/swamp/billy.gc @@ -19,7 +19,7 @@ (passed-last-stage symbol :offset-assert 404) (spawn-rats symbol :offset-assert 408) (current-wave int32 :offset-assert 412) - (wave-start-time uint64 :offset-assert 416) + (wave-start-time time-frame :offset-assert 416) (num-snacks int32 :offset-assert 424) (num-rats int32 :offset-assert 428) (max-rats int32 :offset-assert 432) @@ -235,7 +235,7 @@ (defstate billy-rat-eat (billy-rat) :trans (behavior () - (seek-to-point-toward-point! (-> self collide-info) (-> self destination) 131072.0 3) + (seek-to-point-toward-point! (-> self collide-info) (-> self destination) 131072.0 (seconds 0.01)) (none) ) :code @@ -376,7 +376,7 @@ (behavior () (set! (-> self speed-scale) (-> self billy 0 rat-speed)) (if (or (logtest? (nav-control-flags bit19) (-> self nav flags)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self chase-rest-time))) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self chase-rest-time)) ) (go-virtual nav-enemy-victory) ) @@ -745,27 +745,27 @@ (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-5 2) (set! (-> self max-rats) 8) (set! (-> self rat-speed) 1.2) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-5 4) (set! (-> self max-rats) 10) (set! (-> self rat-speed) 1.35) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 7500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 25)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -779,27 +779,27 @@ (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-30 2) (set! (-> self max-rats) 7) (set! (-> self rat-speed) 1.2) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-30 4) (set! (-> self max-rats) 10) (set! (-> self rat-speed) 1.3) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6600) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 22)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -813,27 +813,27 @@ (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-55 2) (set! (-> self max-rats) 7) (set! (-> self rat-speed) 1.1) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 5400) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 18)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-55 4) (set! (-> self max-rats) 9) (set! (-> self rat-speed) 1.25) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -847,27 +847,27 @@ (set! (-> self rat-speed) 0.9) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-80 2) (set! (-> self max-rats) 6) (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 5400) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 18)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-80 4) (set! (-> self max-rats) 8) (set! (-> self rat-speed) 1.1) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -889,13 +889,13 @@ (set! (-> self passed-last-stage) #t) ) ((begin (set! (-> self spawn-rats) #f) (zero? (-> self num-rats))) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 900) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 3)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) (else - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -1057,7 +1057,7 @@ (ja-channel-set! 0) (clear-collide-with-as (-> self root-override)) (init! (-> self query) (the-as string #f) 40 150 25 #t (lookup-text! *common-text* (game-text-id quit) #f)) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) (set! (-> self num-snacks) 0) (set! (-> self num-rats) 0) (set! (-> self current-wave) 0) @@ -1176,7 +1176,7 @@ ) (defmethod TODO-RENAME-43 billy ((obj billy)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f30-0 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/swamp/kermit.gc b/goal_src/levels/swamp/kermit.gc index ac037da1f7..f7e68e8478 100644 --- a/goal_src/levels/swamp/kermit.gc +++ b/goal_src/levels/swamp/kermit.gc @@ -588,7 +588,7 @@ ) :code (behavior () - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (sound-play-by-name (static-sound-name "kermit-loop") (-> self sound-id) @@ -970,7 +970,7 @@ nav-enemy-default-event-handler ) (vector-xz-normalize! (-> self collide-info transv) f0-5) ) - (seek-toward-heading-vec! (-> self collide-info) (-> self rotate-dir) (-> self rotate-speed) 15) + (seek-toward-heading-vec! (-> self collide-info) (-> self rotate-dir) (-> self rotate-speed) (seconds 0.05)) (vector-v++! (-> self collide-info transv) (compute-acc-due-to-gravity (-> self collide-info) (new-stack-vector0) 0.0) @@ -1068,7 +1068,7 @@ nav-enemy-default-event-handler (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) ) (go kermit-idle) ) @@ -1192,9 +1192,9 @@ nav-enemy-default-event-handler :trans (behavior () (when (not (-> self airborne)) - (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (and (logtest? (nav-control-flags bit19) (-> self nav flags)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) ) ) (go kermit-chase) @@ -1276,7 +1276,7 @@ nav-enemy-default-event-handler ) ) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (go kermit-give-up) ) ) @@ -1488,7 +1488,7 @@ nav-enemy-default-event-handler ) :post (behavior () - (seek-to-point-toward-point! (-> self collide-info) (target-pos 0) (-> self rotate-speed) 15) + (seek-to-point-toward-point! (-> self collide-info) (target-pos 0) (-> self rotate-speed) (seconds 0.05)) (kermit-simple-post) (none) ) @@ -1518,7 +1518,7 @@ nav-enemy-default-event-handler (kermit-set-nav-mesh-target (-> self collide-info trans)) (kermit-set-rotate-dir-to-player) (when (not (-> self airborne)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 750) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2.5)) (kill-and-free-particles (-> self charging-part)) (set! (-> self charged-up) #t) (go kermit-chase) @@ -1593,31 +1593,31 @@ nav-enemy-default-event-handler :die-anim 11 :neck-joint 8 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 10000.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.05) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 10000.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.05) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 10.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 10) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #f diff --git a/goal_src/levels/swamp/swamp-bat.gc b/goal_src/levels/swamp/swamp-bat.gc index 1d6167f958..e40de7cde1 100644 --- a/goal_src/levels/swamp/swamp-bat.gc +++ b/goal_src/levels/swamp/swamp-bat.gc @@ -289,7 +289,7 @@ swamp-bat-slave-event-handler ) (while #t (let ((s4-0 (- (-> *display* base-frame-counter) (-> self state-time)))) - (if (>= s4-0 90) + (if (>= s4-0 (seconds 0.3)) (go swamp-bat-slave-swoop) ) (let ((f0-1 (* 0.011111111 (the float s4-0)))) @@ -590,7 +590,7 @@ swamp-bat-slave-event-handler (deactivate self) ) (while #t - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) *target* (>= (-> self fact-override idle-distance) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) @@ -642,7 +642,7 @@ swamp-bat-slave-event-handler (set! (-> self state-time) (-> *display* base-frame-counter)) (while #t (swamp-bat-update-path) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self state-time) (-> *display* base-frame-counter)) (if (not (swamp-bat-launch-slave)) (go swamp-bat-idle) diff --git a/goal_src/levels/swamp/swamp-obs.gc b/goal_src/levels/swamp/swamp-obs.gc index 1d4818a770..e9ed6cc2f9 100644 --- a/goal_src/levels/swamp/swamp-obs.gc +++ b/goal_src/levels/swamp/swamp-obs.gc @@ -830,25 +830,25 @@ (define *tar-plat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 1.5 - :max-buoyancy-depth (meters 2.0) + :max-buoyancy-depth (meters 2) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 60.0) + :gravity (meters 80) + :player-weight (meters 60) :player-bonk-factor 0.5 :player-dive-factor 1.0 - :player-force-distance (meters 2.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 2) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.9 :angular-damping 0.9 :control-point-count 4 :mass 1.0 - :inertial-tensor-x (meters 6.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 6.0) - :cm-joint-y (meters -2.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 6) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 6) + :cm-joint-y (meters -2) + :idle-distance (meters 50) :platform #t :sound-name "tar-plat" ) @@ -1037,7 +1037,7 @@ :code (behavior () (suspend) - (process-drawable-delay-player 300) + (process-drawable-delay-player (seconds 1)) (let* ((gp-0 (get-process *default-dead-pool* pov-camera #x4000)) (gp-1 (ppointer->handle diff --git a/goal_src/levels/swamp/swamp-rat-nest.gc b/goal_src/levels/swamp/swamp-rat-nest.gc index 1fcfe0c6f6..87125b9d40 100644 --- a/goal_src/levels/swamp/swamp-rat-nest.gc +++ b/goal_src/levels/swamp/swamp-rat-nest.gc @@ -612,7 +612,7 @@ (defensive-rat-count int8 :offset-assert 187) (spawn-period float :offset-assert 188) (spawn-period-scale float :offset-assert 192) - (test-interval uint64 :offset-assert 200) + (test-interval time-frame :offset-assert 200) (player-attack-id int32 :offset-assert 208) ) :heap-base #x70 @@ -889,7 +889,7 @@ (-> gp-0 ppointer) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (suspend) ) (ja-channel-set! 0) @@ -1099,9 +1099,9 @@ swamp-rat-nest-default-event-handler :trans (behavior () (swamp-rat-nest-check-dummy) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self test-interval))) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self test-interval)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self test-interval) (the-as uint 60)) + (set! (-> self test-interval) (seconds 0.2)) (let ((v1-6 0)) (let ((a0-2 (the-as (pointer process-tree) (-> self child-process)))) (while a0-2 @@ -1229,7 +1229,7 @@ swamp-rat-nest-default-event-handler (set! (-> obj damaged) #f) (set! (-> obj spawn-period) (* 1200.0 (rand-vu-float-range 0.9 1.1))) (set! (-> obj spawn-period-scale) (+ 1.0 (* 2.0 (get-health-percent-lost *game-info* #f)))) - (set! (-> obj test-interval) (the-as uint (rand-vu-int-range 30 60))) + (set! (-> obj test-interval) (rand-vu-int-range (seconds 0.1) (seconds 0.2))) (go swamp-rat-nest-idle) (none) ) diff --git a/goal_src/levels/swamp/swamp-rat.gc b/goal_src/levels/swamp/swamp-rat.gc index 0ec0861754..c691e60c73 100644 --- a/goal_src/levels/swamp/swamp-rat.gc +++ b/goal_src/levels/swamp/swamp-rat.gc @@ -11,17 +11,17 @@ ;; DECOMP BEGINS (deftype swamp-rat (nav-enemy) - ((up-vector vector :inline :offset-assert 400) - (state-float float :offset-assert 416) - (state-vector vector :inline :offset-assert 432) - (_hack uint64 :offset-assert 448) - (wiggle-time uint64 :offset-assert 456) - (wiggle-angle float :offset-assert 464) - (delta-wiggle-angle float :offset-assert 468) - (wiggle-factor float :offset-assert 472) - (min-height float :offset-assert 476) - (chase-rest-time uint64 :offset-assert 480) - (target-nav-time uint64 :offset-assert 488) + ((up-vector vector :inline :offset-assert 400) + (state-float float :offset-assert 416) + (state-vector vector :inline :offset-assert 432) + (_hack uint64 :offset-assert 448) + (wiggle-time time-frame :offset-assert 456) + (wiggle-angle float :offset-assert 464) + (delta-wiggle-angle float :offset-assert 468) + (wiggle-factor float :offset-assert 472) + (min-height float :offset-assert 476) + (chase-rest-time time-frame :offset-assert 480) + (target-nav-time time-frame :offset-assert 488) ) :heap-base #x180 :method-count-assert 76 @@ -238,7 +238,7 @@ 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))) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self chase-rest-time)) (go-virtual nav-enemy-victory) ) ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) @@ -246,10 +246,10 @@ swamp-rat-default-event-handler ) :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 target-nav-time) (-> *display* base-frame-counter)) + (set! (-> self wiggle-time) (+ (-> *display* base-frame-counter) (seconds -10))) (set! (-> self wiggle-angle) 0.0) - (set! (-> self chase-rest-time) (the-as uint (rand-vu-int-range 300 1200))) + (set! (-> self chase-rest-time) (rand-vu-int-range (seconds 1) (seconds 4))) (ja-channel-push! 1 51) (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! @@ -260,8 +260,8 @@ swamp-rat-default-event-handler (set! (-> gp-0 frame-num) 0.0) ) (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))) + (when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) (seconds 1)) + (set! (-> self wiggle-time) (-> *display* base-frame-counter)) (swamp-rat-update-wiggle-params) ) (suspend) @@ -295,7 +295,7 @@ swamp-rat-default-event-handler :code (behavior () (set! (-> self rotate-speed) 1456355.5) - (set! (-> self turn-time) 22) + (set! (-> self turn-time) (seconds 0.07333333)) (let ((f30-0 (rand-vu-float-range 0.8 1.2))) (while #t (logior! (-> self nav-enemy-flags) 16) @@ -466,7 +466,7 @@ swamp-rat-default-event-handler ) (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) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) ) ) 0 @@ -526,32 +526,32 @@ swamp-rat-default-event-handler :taunt-anim 10 :die-anim 11 :neck-joint 7 - :run-travel-speed (meters 7.0) + :run-travel-speed (meters 7) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.07333333) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 3) + :frustration-time (seconds 1.5) :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-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -600,8 +600,8 @@ swamp-rat-default-event-handler (set! (-> obj wiggle-angle) 0.0) (set! (-> obj delta-wiggle-angle) 910.2222) (set! (-> obj wiggle-factor) 1.5) - (set! (-> obj reaction-time) (rand-vu-int-range 30 240)) - (set! (-> obj chase-rest-time) (the-as uint 300)) + (set! (-> obj reaction-time) (rand-vu-int-range (seconds 0.1) (seconds 0.8))) + (set! (-> obj chase-rest-time) (seconds 1)) (set! (-> obj water) (new 'process 'water-control obj 7 0.0 8192.0 2048.0)) (set! (-> obj water flags) (the-as uint 2)) (set! (-> obj water height) (res-lump-float (-> obj entity) 'water-height)) diff --git a/goal_src/levels/title/title-obs.gc b/goal_src/levels/title/title-obs.gc index 845e28dbba..e45ad314bc 100644 --- a/goal_src/levels/title/title-obs.gc +++ b/goal_src/levels/title/title-obs.gc @@ -245,7 +245,7 @@ :code (behavior () (while (!= (file-status *art-control* (-> self next-anim name) 0) 'active) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (suspend) ) (set! (-> *setting-control* current bg-a) 1.0) @@ -535,7 +535,7 @@ (while #t (when (and (none-reserved? *art-control*) (not (paused?))) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 30) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 0.1)) (set! *camera-look-through-other* 2) (suspend) ) @@ -574,7 +574,7 @@ :exit (behavior () ((-> (method-of-type logo startup) exit)) - (set-blackout-frames 10) + (set-blackout-frames (seconds 0.033333335)) (none) ) :trans @@ -588,7 +588,7 @@ ) (when (and (= (-> *setting-control* current bg-a) 1.0) (and (member (level-status *level* 'village1) '(active loaded)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (let ((gp-2 (level-get *level* 'village1))) (when gp-2 (load-state-want-levels 'title 'village1) @@ -615,7 +615,7 @@ :code (behavior () (while (!= (file-status *art-control* (-> self next-anim name) 0) 'active) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (suspend) ) (set! (-> *setting-control* current bg-a) 1.0) @@ -707,7 +707,7 @@ ) (defbehavior logo-init-by-other logo ((arg0 entity) (arg1 vector) (arg2 symbol)) - (stack-size-set! (-> self main-thread) 1024) ;; increased from 512 + (stack-size-set! (-> self main-thread) 512) (logclear! (-> self mask) (process-mask progress)) (set! (-> self entity) arg0) (set! (-> self root) (new 'process 'trsqv)) @@ -834,12 +834,12 @@ ) (else (while (!= (file-status *art-control* "ndi-intro" 0) 'active) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (suspend) ) (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 75) - (set-blackout-frames 15) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.25)) + (set-blackout-frames (seconds 0.05)) (suspend) ) ) @@ -850,7 +850,7 @@ (mc-get-slot-info 0 s5-2) (when (or (zero? (-> s5-2 known)) (handle->process (the-as int gp-0))) (if (not (handle->process (the-as int gp-0))) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) ) (suspend) (goto cfg-8) @@ -879,7 +879,7 @@ (suspend) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 3) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.01)) (suspend) ) ) diff --git a/goal_src/levels/training/training-obs.gc b/goal_src/levels/training/training-obs.gc index 07a7d79cc8..e8b67ba835 100644 --- a/goal_src/levels/training/training-obs.gc +++ b/goal_src/levels/training/training-obs.gc @@ -54,10 +54,10 @@ ) (deftype training-cam (process) - ((root trsq :offset-assert 112) - (range meters :offset-assert 116) - (index int32 :offset-assert 120) - (state-time uint64 :offset-assert 128) + ((root trsq :offset-assert 112) + (range meters :offset-assert 116) + (index int32 :offset-assert 120) + (state-time time-frame :offset-assert 128) ) :heap-base #x20 :method-count-assert 15 @@ -97,7 +97,7 @@ ) (suspend) ) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (process-grab? *target*) (process-entity-status! self (entity-perm-status bit-3) #t) (until (not (or (-> *setting-control* current talking) (or (-> *setting-control* current spooling) @@ -125,7 +125,7 @@ (suspend) ) ) - (while (< (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) 300) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (clear-pending-settings-from-process *setting-control* self 'movie) @@ -311,7 +311,7 @@ (game-task none) ) (let ((gp-8 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-8) 9000) + (until (>= (- (-> *display* base-frame-counter) gp-8) (seconds 30)) (suspend) ) ) @@ -389,24 +389,24 @@ (define *tra-pontoon-constants* (new 'static 'rigid-body-platform-constants :drag-factor 4.0 :buoyancy-factor 3.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.98 :angular-damping 0.98 :control-point-count 4 :mass 2.0 :inertial-tensor-x (meters 2.5) - :inertial-tensor-y (meters 2.0) + :inertial-tensor-y (meters 2) :inertial-tensor-z (meters 3.2) - :idle-distance (meters 50.0) + :idle-distance (meters 50) :platform #t :sound-name "pontoonten" ) @@ -953,7 +953,7 @@ (sound-play-by-name (static-sound-name "break-dummy") (new-sound-id) 1024 0 0 1 #t) (ja-channel-set! 0) (let ((s5-2 (new 'stack 'joint-exploder-tuning 1))) - (set! (-> s5-2 duration) (the-as uint 450)) + (set! (-> s5-2 duration) (seconds 1.5)) (set! (-> s5-2 gravity) -327680.0) (set! (-> s5-2 fountain-rand-transv-hi x) 32768.0) (set! (-> s5-2 fountain-rand-transv-hi y) 81920.0) @@ -1162,7 +1162,7 @@ (sound-play-by-name (static-sound-name "break-dummy") (new-sound-id) 1024 0 0 1 #t) (ja-channel-set! 0) (let ((s5-2 (new 'stack 'joint-exploder-tuning 1))) - (set! (-> s5-2 duration) (the-as uint 450)) + (set! (-> s5-2 duration) (seconds 1.5)) (set! (-> s5-2 fountain-rand-transv-hi x) 32768.0) (set! (-> s5-2 fountain-rand-transv-hi y) 81920.0) (set! (-> s5-2 fountain-rand-transv-hi z) 40960.0) diff --git a/goal_src/levels/village1/assistant.gc b/goal_src/levels/village1/assistant.gc index c8761bb6c9..81e60a65dc 100644 --- a/goal_src/levels/village1/assistant.gc +++ b/goal_src/levels/village1/assistant.gc @@ -182,7 +182,7 @@ ) (defmethod TODO-RENAME-43 assistant ((obj assistant)) - (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj))) + (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj))) (when s5-0 (let* ((v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-3 (the-as number (logior #x3f800000 v1-2))) diff --git a/goal_src/levels/village1/explorer.gc b/goal_src/levels/village1/explorer.gc index b572d3dc07..b3ac3023a6 100644 --- a/goal_src/levels/village1/explorer.gc +++ b/goal_src/levels/village1/explorer.gc @@ -147,7 +147,7 @@ ) (defmethod TODO-RENAME-43 explorer ((obj explorer)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) @@ -257,7 +257,7 @@ (v1-68 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-69 (the-as number (logior #x3f800000 v1-68))) ) - (< (- s5-0 (the int (* f30-1 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-69))))))) gp-1) + (< (- s5-0 (the-as time-frame (the int (* f30-1 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-69)))))))) gp-1) ) (suspend) ) @@ -291,7 +291,7 @@ (v1-104 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-105 (the-as number (logior #x3f800000 v1-104))) ) - (< (- s5-1 (the int (* f30-2 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-105))))))) gp-2) + (< (- s5-1 (the-as time-frame (the int (* f30-2 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-105)))))))) gp-2) ) (suspend) ) @@ -359,7 +359,7 @@ (v1-164 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-165 (the-as number (logior #x3f800000 v1-164))) ) - (< (- s5-2 (the int (* f30-3 (+ f28-2 (* f26-2 (+ -1.0 (the-as float v1-165))))))) gp-3) + (< (- s5-2 (the-as time-frame (the int (* f30-3 (+ f28-2 (* f26-2 (+ -1.0 (the-as float v1-165)))))))) gp-3) ) (suspend) ) @@ -446,7 +446,7 @@ (v1-237 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-238 (the-as number (logior #x3f800000 v1-237))) ) - (< (- s5-3 (the int (* f30-4 (+ f28-3 (* f26-3 (+ -1.0 (the-as float v1-238))))))) gp-4) + (< (- s5-3 (the-as time-frame (the int (* f30-4 (+ f28-3 (* f26-3 (+ -1.0 (the-as float v1-238)))))))) gp-4) ) (suspend) ) @@ -476,7 +476,7 @@ (v1-268 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-269 (the-as number (logior #x3f800000 v1-268))) ) - (< (- s5-4 (the int (* f30-5 (+ f28-4 (* f26-4 (+ -1.0 (the-as float v1-269))))))) gp-5) + (< (- s5-4 (the-as time-frame (the int (* f30-5 (+ f28-4 (* f26-4 (+ -1.0 (the-as float v1-269)))))))) gp-5) ) (suspend) ) @@ -523,7 +523,7 @@ (v1-301 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-302 (the-as number (logior #x3f800000 v1-301))) ) - (< (- s5-5 (the int (* f30-6 (+ f28-5 (* f26-5 (+ -1.0 (the-as float v1-302))))))) gp-6) + (< (- s5-5 (the-as time-frame (the int (* f30-6 (+ f28-5 (* f26-5 (+ -1.0 (the-as float v1-302)))))))) gp-6) ) (suspend) ) diff --git a/goal_src/levels/village1/farmer.gc b/goal_src/levels/village1/farmer.gc index 50b842b664..b3b68dad10 100644 --- a/goal_src/levels/village1/farmer.gc +++ b/goal_src/levels/village1/farmer.gc @@ -83,7 +83,7 @@ ) (defmethod TODO-RENAME-43 farmer ((obj farmer)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/village1/fishermans-boat.gc b/goal_src/levels/village1/fishermans-boat.gc index 64d2e8fead..7ee4d36afc 100644 --- a/goal_src/levels/village1/fishermans-boat.gc +++ b/goal_src/levels/village1/fishermans-boat.gc @@ -12,26 +12,26 @@ (define *fishermans-boat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 1.5 - :max-buoyancy-depth (meters 1.0) + :max-buoyancy-depth (meters 1) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 40.0) + :gravity (meters 80) + :player-weight (meters 40) :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) + :player-force-distance (meters 10) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :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) + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 10) + :inertial-tensor-z (meters 15) + :cm-joint-y (meters 3) + :cm-joint-z (meters 1) + :idle-distance (meters 50) :platform #t :sound-name #f ) @@ -248,7 +248,7 @@ (dest-circle vector :inline :offset-assert 80) (target-point vector :inline :offset-assert 96) (sample-dir vector :inline :offset-assert 112) - (sample-time uint64 :offset-assert 128) + (sample-time time-frame :offset-assert 128) (sample-index int32 :offset-assert 136) ) :method-count-assert 17 @@ -419,7 +419,7 @@ (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)))))) + (let* ((f30-0 (* 0.0033333334 (the float (- (-> *display* base-frame-counter) (-> 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)) @@ -434,7 +434,7 @@ ) (else (set! (-> obj sample-index) arg2) - (set! (-> obj sample-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj sample-time) (-> *display* base-frame-counter)) (set! (-> obj sample-dir quad) (-> s3-0 quad)) ) ) @@ -868,13 +868,13 @@ (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) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (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)) + (when (and (hud-hidden?) (can-grab-display? 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)) ) @@ -1299,7 +1299,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (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)) @@ -1311,7 +1311,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) s3-0) (seconds 1)) (fishermans-boat-set-throttle-by-speed f30-0) (suspend) (suspend) @@ -1586,7 +1586,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1)) (suspend) ) ) diff --git a/goal_src/levels/village1/sage.gc b/goal_src/levels/village1/sage.gc index 886cc7c9bd..1a46c7570e 100644 --- a/goal_src/levels/village1/sage.gc +++ b/goal_src/levels/village1/sage.gc @@ -445,7 +445,7 @@ ) (defmethod TODO-RENAME-43 sage ((obj sage)) - (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj))) + (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj))) (when s5-0 (let* ((v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-3 (the-as number (logior #x3f800000 v1-2))) diff --git a/goal_src/levels/village1/sequence-a-village1.gc b/goal_src/levels/village1/sequence-a-village1.gc index 8fbce775fd..098bced966 100644 --- a/goal_src/levels/village1/sequence-a-village1.gc +++ b/goal_src/levels/village1/sequence-a-village1.gc @@ -327,7 +327,7 @@ ) ((-> (method-of-type process-taskable play-anim) exit)) (let ((gp-0 (entity-by-name "sequenceB-1"))) - (set-blackout-frames 6000) + (set-blackout-frames (seconds 20)) (send-event *camera* 'clear-entity) (entity-birth-no-kill gp-0) (send-event @@ -402,7 +402,7 @@ ) (defun start-sequence-a () - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (let ((gp-0 (get-process *default-dead-pool* sequenceA-village1 #x4000))) (when gp-0 (let ((t9-2 (method-of-type sequenceA-village1 activate))) diff --git a/goal_src/levels/village1/village-obs-VI1.gc b/goal_src/levels/village1/village-obs-VI1.gc index 54ddc1d6e1..db37b64f02 100644 --- a/goal_src/levels/village1/village-obs-VI1.gc +++ b/goal_src/levels/village1/village-obs-VI1.gc @@ -744,7 +744,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (if (or (not *target*) (< 204800.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) ) @@ -757,7 +757,7 @@ (behavior () (set! (-> self target-speed) 4096.0) (set! (-> self rotate-speed) 12743.111) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (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 2))) @@ -796,30 +796,30 @@ :die-anim -1 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 1.0) + :run-travel-speed (meters 1) :run-rotate-speed (degrees 70.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.5) - :walk-travel-speed (meters 1.0) + :walk-travel-speed (meters 1) :walk-rotate-speed (degrees 70.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 1.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -910,7 +910,7 @@ (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self state-time) (-> *display* base-frame-counter)) (if (and (and *target* (>= 204800.0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))) (< (process-drawable-child-count) (-> self child-count)) diff --git a/goal_src/levels/village1/yakow.gc b/goal_src/levels/village1/yakow.gc index d66413dd4b..04ace81c0a 100644 --- a/goal_src/levels/village1/yakow.gc +++ b/goal_src/levels/village1/yakow.gc @@ -37,31 +37,31 @@ ) (deftype yakow-bank (basic) - ((walk-cycle-frame-count float :offset-assert 4) - (run-cycle-frame-count float :offset-assert 8) - (walk-speed meters :offset-assert 12) - (run-speed meters :offset-assert 16) - (walk-anim-speed float :offset-assert 20) - (run-anim-speed float :offset-assert 24) - (walk-away-dist meters :offset-assert 28) - (run-away-dist meters :offset-assert 32) - (walk-rotate-speed float :offset-assert 36) - (run-rotate-speed float :offset-assert 40) - (walk-turn-time uint64 :offset-assert 48) - (run-turn-time uint64 :offset-assert 56) - (max-walk-speed float :offset-assert 64) - (min-run-speed float :offset-assert 68) - (walk-run-blend-rate float :offset-assert 72) - (walk-turn-blend-rate float :offset-assert 76) - (max-run-speed float :offset-assert 80) - (acceleration meters :offset-assert 84) - (default-patrol-time uint64 :offset-assert 88) - (default-idle-distance meters :offset-assert 96) - (safe-distance meters :offset-assert 100) - (min-run-anim-speed float :offset-assert 104) - (max-run-anim-speed float :offset-assert 108) - (min-walk-anim-speed float :offset-assert 112) - (speed-boost-impulse meters :offset-assert 116) + ((walk-cycle-frame-count float :offset-assert 4) + (run-cycle-frame-count float :offset-assert 8) + (walk-speed meters :offset-assert 12) + (run-speed meters :offset-assert 16) + (walk-anim-speed float :offset-assert 20) + (run-anim-speed float :offset-assert 24) + (walk-away-dist meters :offset-assert 28) + (run-away-dist meters :offset-assert 32) + (walk-rotate-speed float :offset-assert 36) + (run-rotate-speed float :offset-assert 40) + (walk-turn-time time-frame :offset-assert 48) + (run-turn-time time-frame :offset-assert 56) + (max-walk-speed float :offset-assert 64) + (min-run-speed float :offset-assert 68) + (walk-run-blend-rate float :offset-assert 72) + (walk-turn-blend-rate float :offset-assert 76) + (max-run-speed float :offset-assert 80) + (acceleration meters :offset-assert 84) + (default-patrol-time time-frame :offset-assert 88) + (default-idle-distance meters :offset-assert 96) + (safe-distance meters :offset-assert 100) + (min-run-anim-speed float :offset-assert 104) + (max-run-anim-speed float :offset-assert 108) + (min-walk-anim-speed float :offset-assert 112) + (speed-boost-impulse meters :offset-assert 116) ) :method-count-assert 9 :size-assert #x78 @@ -73,28 +73,28 @@ :walk-cycle-frame-count 16.0 :run-cycle-frame-count 16.0 :walk-speed (meters 2.13) - :run-speed (meters 6.0) + :run-speed (meters 6) :walk-anim-speed 1.0 :run-anim-speed 2.0 - :walk-away-dist (meters 10.0) - :run-away-dist (meters 6.0) + :walk-away-dist (meters 10) + :run-away-dist (meters 6) :walk-rotate-speed 131072.0 :run-rotate-speed 131072.0 - :walk-turn-time #x96 - :run-turn-time #x3c + :walk-turn-time (seconds 0.5) + :run-turn-time (seconds 0.2) :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) + :acceleration (meters 3) + :default-patrol-time (seconds 1) + :default-idle-distance (meters 10) + :safe-distance (meters 20) :min-run-anim-speed 0.5 :max-run-anim-speed 1.5 :min-walk-anim-speed 0.5 - :speed-boost-impulse (meters 4.0) + :speed-boost-impulse (meters 4) ) ) @@ -108,7 +108,7 @@ (travel-speed meters :offset-assert 192) (final-speed meters :offset-assert 196) (rotate-speed float :offset-assert 200) - (turn-time uint64 :offset-assert 208) + (turn-time time-frame :offset-assert 208) (vulnerable basic :offset-assert 216) (grazing basic :offset-assert 220) (push-velocity vector :inline :offset-assert 224) @@ -259,7 +259,7 @@ yakow-default-event-handler (-> self root-override) (-> self nav travel) (-> self rotate-speed) - (the-as int (-> self turn-time)) + (-> 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))))) @@ -373,7 +373,7 @@ yakow-default-event-handler ) (set! (-> s5-0 frame-num) 0.0) ) - (while (or (< (- (-> *display* base-frame-counter) gp-0) 60) (< (-> self final-speed) 409.6)) + (while (or (< (- (-> *display* base-frame-counter) gp-0) (seconds 0.2)) (< (-> self final-speed) 409.6)) (suspend) (let ((a0-6 (-> self skel root-channel 0))) (set! (-> a0-6 param 0) 1.0) @@ -524,9 +524,7 @@ yakow-default-event-handler ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) - (the-as int (-> *YAKOW-bank* default-patrol-time)) - ) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *YAKOW-bank* default-patrol-time)) (and *target* (>= (-> self fact-override idle-distance) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) ) @@ -628,9 +626,7 @@ yakow-default-event-handler ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) - (the-as int (-> *YAKOW-bank* default-patrol-time)) - ) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *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)) @@ -640,7 +636,7 @@ yakow-default-event-handler ) (go yakow-notice) ) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (when (or (logtest? (nav-control-flags bit19) (-> self nav flags)) (< (vector-vector-xz-distance (-> self root-override trans) (-> self nav destination-pos)) 4096.0) ) @@ -706,7 +702,7 @@ yakow-default-event-handler ) (ja-channel-push! 1 22) ) - (seek-toward-yaw-angle! (-> self root-override) (-> self dest-rot) 16384.0 150) + (seek-toward-yaw-angle! (-> self root-override) (-> self dest-rot) 16384.0 (seconds 0.5)) (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) @@ -873,7 +869,7 @@ yakow-default-event-handler ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (set! (-> self travel-speed) (seek (-> self travel-speed) (-> *YAKOW-bank* run-speed) diff --git a/goal_src/levels/village2/assistant-village2.gc b/goal_src/levels/village2/assistant-village2.gc index c8a2dc280c..d4909e0f4d 100644 --- a/goal_src/levels/village2/assistant-village2.gc +++ b/goal_src/levels/village2/assistant-village2.gc @@ -493,7 +493,7 @@ ) (defmethod TODO-RENAME-43 assistant-bluehut ((obj assistant-bluehut)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f30-0 (+ -1.0 (the-as float v1-4))) @@ -582,7 +582,7 @@ (v1-55 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-56 (the-as number (logior #x3f800000 v1-55))) ) - (< (- s5-1 (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-56))))))) gp-1) + (< (- s5-1 (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-56)))))))) gp-1) ) (suspend) ) @@ -1594,7 +1594,7 @@ (not (movie?)) (not (level-hint-displayed?)) (not (and *cheat-mode* (cpad-hold? 0 l3))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 3000) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) ) ) (hide-hud) diff --git a/goal_src/levels/village2/flutflut-bluehut.gc b/goal_src/levels/village2/flutflut-bluehut.gc index d6ce846c50..8b29d5555f 100644 --- a/goal_src/levels/village2/flutflut-bluehut.gc +++ b/goal_src/levels/village2/flutflut-bluehut.gc @@ -108,7 +108,7 @@ ) ) (let ((s5-0 (-> *display* base-frame-counter))) - (while (< (+ (-> *display* base-frame-counter) -150) s5-0) + (while (< (+ (-> *display* base-frame-counter) (seconds -0.5)) s5-0) (suspend) ) ) @@ -147,7 +147,7 @@ ) ) (let ((s5-1 (-> *display* base-frame-counter))) - (while (< (+ (-> *display* base-frame-counter) -150) s5-1) + (while (< (+ (-> *display* base-frame-counter) (seconds -0.5)) s5-1) (suspend) ) ) diff --git a/goal_src/levels/village2/gambler.gc b/goal_src/levels/village2/gambler.gc index df5631ea81..254a16873a 100644 --- a/goal_src/levels/village2/gambler.gc +++ b/goal_src/levels/village2/gambler.gc @@ -127,7 +127,7 @@ ) (defmethod TODO-RENAME-43 gambler ((obj gambler)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 61440.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 61440.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/village2/geologist.gc b/goal_src/levels/village2/geologist.gc index e0be881137..f6696f3a09 100644 --- a/goal_src/levels/village2/geologist.gc +++ b/goal_src/levels/village2/geologist.gc @@ -119,7 +119,7 @@ ) (defmethod TODO-RENAME-43 geologist ((obj geologist)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/village2/sage-bluehut.gc b/goal_src/levels/village2/sage-bluehut.gc index 16b4221522..7b28f54c2b 100644 --- a/goal_src/levels/village2/sage-bluehut.gc +++ b/goal_src/levels/village2/sage-bluehut.gc @@ -248,7 +248,7 @@ ) (defmethod TODO-RENAME-43 sage-bluehut ((obj sage-bluehut)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/village2/swamp-blimp.gc b/goal_src/levels/village2/swamp-blimp.gc index d1d87a009f..dc49b67433 100644 --- a/goal_src/levels/village2/swamp-blimp.gc +++ b/goal_src/levels/village2/swamp-blimp.gc @@ -340,8 +340,9 @@ ) (defmethod update-timer! swamp-rope-rand-float ((obj swamp-rope-rand-float)) - (set! (-> obj timer) - (- (-> obj timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> obj timer) (- (the-as time-frame (-> obj timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (when (<= (-> obj timer) 0) (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) @@ -422,8 +423,9 @@ ) (defmethod update-timer! swamp-blimp-rand-vector ((obj swamp-blimp-rand-vector)) - (set! (-> obj timer) - (- (-> obj timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> obj timer) (- (the-as time-frame (-> obj timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (when (<= (-> obj timer) 0) (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) @@ -692,7 +694,7 @@ ) (set! (-> *camera-other-root* quad) (-> self root-override trans quad)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 180) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.6)) (set! *camera-look-through-other* 2) (suspend) ) @@ -767,7 +769,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (set! *camera-look-through-other* 2) (suspend) ) @@ -779,12 +781,12 @@ ) (set! (-> *camera-other-root* quad) (-> self root-override trans quad)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (set! *camera-look-through-other* 2) (suspend) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (set! *camera-look-through-other* 2) (let ((gp-2 (new 'stack-no-clear 'vector)) (a0-58 (-> self blimp extra process)) @@ -1297,7 +1299,7 @@ (v1-5 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-6 (the-as number (logior #x3f800000 v1-5))) ) - (set! (-> self state-time) (the int (* f30-1 (+ -1.0 (the-as float v1-6))))) + (set! (-> self state-time) (the-as time-frame (the int (* f30-1 (+ -1.0 (the-as float v1-6)))))) ) (ja-channel-push! 1 150) (while #t @@ -1684,24 +1686,27 @@ ) (while #t (when (< 300 (-> self arm-timer)) - (set! (-> self arm-timer) - (- (-> self arm-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self arm-timer) (- (the-as time-frame (-> self arm-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (if (>= 300 (-> self arm-timer)) (+! (-> self pos-oscillator target y) (* 16384.0 (-> *display* time-adjust-ratio))) ) ) (when (< 240 (-> self arm-timer)) - (set! (-> self arm-timer) - (- (-> self arm-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self arm-timer) (- (the-as time-frame (-> self arm-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (if (>= 150 (-> self arm-timer)) (set! (-> self scale-oscillator target) 0.2) ) ) (when (> (-> self arm-timer) 0) - (set! (-> self arm-timer) - (- (-> self arm-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self arm-timer) (- (the-as time-frame (-> self arm-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (when (<= (-> self arm-timer) 0) (set! (-> self scale-oscillator target) -0.2) diff --git a/goal_src/levels/village2/village2-obs.gc b/goal_src/levels/village2/village2-obs.gc index c47d64e892..2e602a2366 100644 --- a/goal_src/levels/village2/village2-obs.gc +++ b/goal_src/levels/village2/village2-obs.gc @@ -243,24 +243,24 @@ (define *pontoonfive-constants* (new 'static 'rigid-body-platform-constants :drag-factor 4.0 :buoyancy-factor 3.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.98 :angular-damping 0.98 :control-point-count 4 :mass 2.0 :inertial-tensor-x (meters 2.5) - :inertial-tensor-y (meters 2.0) + :inertial-tensor-y (meters 2) :inertial-tensor-z (meters 3.2) - :idle-distance (meters 90.0) + :idle-distance (meters 90) :platform #t :sound-name "pontoonten" ) @@ -269,24 +269,24 @@ (define *pontoonten-constants* (new 'static 'rigid-body-platform-constants :drag-factor 4.0 :buoyancy-factor 3.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.98 :angular-damping 0.95 :control-point-count 4 :mass 4.0 - :inertial-tensor-x (meters 5.0) - :inertial-tensor-y (meters 2.0) + :inertial-tensor-x (meters 5) + :inertial-tensor-y (meters 2) :inertial-tensor-z (meters 3.2) - :idle-distance (meters 90.0) + :idle-distance (meters 90) :platform #t :sound-name "pontoonten" ) @@ -664,7 +664,7 @@ (cond ((handle->process (-> self tracker)) (let ((v1-6 (-> (the-as (pointer part-tracker) (-> self tracker process)) 0))) - (set! (-> v1-6 start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> v1-6 start-time) (-> *display* base-frame-counter)) (set! v0-1 (-> v1-6 root trans)) ) (set! (-> (the-as vector v0-1) quad) (-> gp-0 quad)) @@ -865,7 +865,7 @@ ) ((handle->process (-> self tracker)) (set! (-> (the-as (pointer part-tracker) (-> self tracker process)) 0 start-time) - (the-as uint (-> *display* base-frame-counter)) + (-> *display* base-frame-counter) ) ) (else @@ -1702,7 +1702,7 @@ ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 50) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.16666667)) (suspend) ) ) @@ -1722,7 +1722,7 @@ ) ) (let ((gp-5 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-5) 50) + (until (>= (- (-> *display* base-frame-counter) gp-5) (seconds 0.16666667)) (suspend) ) ) diff --git a/goal_src/levels/village2/warrior.gc b/goal_src/levels/village2/warrior.gc index 81e5ad38f8..975839de84 100644 --- a/goal_src/levels/village2/warrior.gc +++ b/goal_src/levels/village2/warrior.gc @@ -161,7 +161,7 @@ ) (defmethod TODO-RENAME-43 warrior ((obj warrior)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 600 61440.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 2) 61440.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/village3/assistant-village3.gc b/goal_src/levels/village3/assistant-village3.gc index 828ece0ee4..010d487671 100644 --- a/goal_src/levels/village3/assistant-village3.gc +++ b/goal_src/levels/village3/assistant-village3.gc @@ -94,7 +94,7 @@ ) (defmethod TODO-RENAME-43 assistant-villagec ((obj assistant-villagec)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) @@ -176,7 +176,7 @@ (v1-31 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-32 (the-as number (logior #x3f800000 v1-31))) ) - (< (- s5-0 (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-32))))))) gp-0) + (< (- s5-0 (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-32)))))))) gp-0) ) (suspend) ) @@ -213,7 +213,7 @@ (v1-56 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-57 (the-as number (logior #x3f800000 v1-56))) ) - (< (- s5-1 (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-57))))))) gp-3) + (< (- s5-1 (the-as time-frame (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-57)))))))) gp-3) ) (suspend) ) diff --git a/goal_src/levels/village3/miners.gc b/goal_src/levels/village3/miners.gc index bed4cf185c..c85a90a068 100644 --- a/goal_src/levels/village3/miners.gc +++ b/goal_src/levels/village3/miners.gc @@ -503,7 +503,7 @@ ) (defmethod TODO-RENAME-43 minershort ((obj minershort)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/village3/sage-village3.gc b/goal_src/levels/village3/sage-village3.gc index 7bf8cc0893..11b6a544b7 100644 --- a/goal_src/levels/village3/sage-village3.gc +++ b/goal_src/levels/village3/sage-village3.gc @@ -224,7 +224,7 @@ ) (defmethod TODO-RENAME-43 sage-villagec ((obj sage-villagec)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/goal_src/levels/village3/village3-obs.gc b/goal_src/levels/village3/village3-obs.gc index d2089f767f..d72ad79564 100644 --- a/goal_src/levels/village3/village3-obs.gc +++ b/goal_src/levels/village3/village3-obs.gc @@ -162,7 +162,7 @@ ) (not (movie?)) (not (level-hint-displayed?)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (file-status *art-control* (-> self anim name) 0) ) ) diff --git a/goal_src/levels/village_common/villagep-obs.gc b/goal_src/levels/village_common/villagep-obs.gc index 85e44fe5e6..5a4eaae70f 100644 --- a/goal_src/levels/village_common/villagep-obs.gc +++ b/goal_src/levels/village_common/villagep-obs.gc @@ -44,7 +44,7 @@ (vector-reset! (-> self control transv)) (move-to-point! (-> self control) (-> self control unknown-vector102)) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 300) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1)) (suspend) ) ) @@ -149,7 +149,7 @@ (level-hint-surpress!) (kill-current-level-hint '() '(sidekick voicebox) 'exit) (when (and (hud-hidden?) - (can-grab-display? (the-as process-taskable self)) + (can-grab-display? self) (cond ((or (= (-> *target* next-state name) 'target-warp-in) (= (-> *target* next-state name) 'target-warp-out)) (set! (-> self state-time) (-> *display* base-frame-counter)) @@ -159,7 +159,7 @@ #t ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (if (and (cpad-pressed? 0 circle) (process-grab? *target*)) (go-virtual active) @@ -256,7 +256,7 @@ :trans (behavior () (when (or (and (cpad-pressed? 0 triangle) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (process-release? *target*) ) (not *target*) @@ -319,11 +319,11 @@ (set! s5-0 #f) (set! s2-0 0) ) - (can-grab-display? (the-as process-taskable self)) + (can-grab-display? self) (hide-hud) (let ((s1-2 (get-continue-by-name *game-info* (-> *warp-info* gp-0)))) (lookup-level-info (-> s1-2 level)) - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) (cpad-pressed? 0 circle)) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (cpad-pressed? 0 circle)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons circle)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle)) (go-virtual use gp-0 (the-as level s1-2)) @@ -711,7 +711,7 @@ ) ) ) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) #x4650) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 60)) (case (-> self entity extra perm task) (((game-task training-door)) (when (and (task-complete? *game-info* (game-task training-door)) @@ -839,7 +839,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) #x4650) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 60)) (case (-> self entity extra perm task) (((game-task training-door)) (when (not (task-closed? (game-task beach-ecorocks) (task-status need-introduction))) @@ -920,10 +920,10 @@ ) (deftype village-cam (process) - ((root-override trsq :offset-assert 112) - (range meters :offset-assert 116) - (index int32 :offset-assert 120) - (state-time uint64 :offset-assert 128) + ((root-override trsq :offset-assert 112) + (range meters :offset-assert 116) + (index int32 :offset-assert 120) + (state-time time-frame :offset-assert 128) ) :heap-base #x20 :method-count-assert 15 @@ -1012,7 +1012,7 @@ ) (suspend) ) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (process-grab? *target*) (process-entity-status! self (entity-perm-status bit-3) #t) (kill-current-level-hint '(ambient) '() 'exit) @@ -1043,7 +1043,7 @@ ) (suspend) ) - (while (< (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) 300) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (kill-current-level-hint '() '() 'die) @@ -1222,7 +1222,7 @@ (when (= (-> a0-70 user-uint8 0) 1) (clear-pending-settings-from-process *setting-control* self 'allow-progress) (let ((gp-3 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-3) #x15f90) + (until (>= (- (-> *display* base-frame-counter) gp-3) (seconds 300)) (suspend) ) ) diff --git a/goalc/compiler/Compiler.cpp b/goalc/compiler/Compiler.cpp index bad1535937..766456f0c6 100644 --- a/goalc/compiler/Compiler.cpp +++ b/goalc/compiler/Compiler.cpp @@ -457,7 +457,7 @@ void Compiler::typecheck(const goos::Object& form, const TypeSpec& actual, const std::string& error_message) { (void)form; - if (!m_ts.typecheck_and_throw(expected, actual, error_message, false, false)) { + if (!m_ts.typecheck_and_throw(expected, actual, error_message, false, false, true)) { throw_compiler_error(form, "Typecheck failed. For {}, got a \"{}\" when expecting a \"{}\"", error_message, actual.print(), expected.print()); } diff --git a/test/decompiler/reference/engine/ambient/ambient_REF.gc b/test/decompiler/reference/engine/ambient/ambient_REF.gc index cae1e74dbf..43c84e3d78 100644 --- a/test/decompiler/reference/engine/ambient/ambient_REF.gc +++ b/test/decompiler/reference/engine/ambient/ambient_REF.gc @@ -225,7 +225,10 @@ ;; definition for function can-grab-display? (defun can-grab-display? ((arg0 process)) (let ((v1-2 (handle->process (-> *game-info* display-text-handle)))) - (when (and (or (not v1-2) (= v1-2 arg0) (>= (- (-> *display* base-frame-counter) (-> *game-info* display-text-time)) 30)) + (when (and (or (not v1-2) + (= v1-2 arg0) + (>= (- (-> *display* base-frame-counter) (-> *game-info* display-text-time)) (seconds 0.1)) + ) (and *target* (!= (-> *target* next-state name) 'target-look-around) (zero? (logand (-> *target* state-flags) #x8008)) @@ -416,7 +419,7 @@ ;; definition for method 15 of type level-hint (defmethod appeared-for-long-enough? level-hint ((obj level-hint)) - (and (!= (-> obj next-state name) 'level-hint-sidekick) (< 1500 (-> obj total-time))) + (and (!= (-> obj next-state name) 'level-hint-sidekick) (< (seconds 5) (-> obj total-time))) ) ;; failed to figure out what this is: @@ -451,7 +454,7 @@ ) ) (else - (while (>= 2400 (-> self total-time)) + (while (>= (seconds 8) (-> self total-time)) (hide-bottom-hud) (suspend) (cond @@ -468,7 +471,7 @@ ) (else (+! (-> self total-off-time) (- (-> *display* base-frame-counter) (-> self last-time))) - (if (or (< 1800 (-> self total-time)) (< 3000 (-> self total-off-time))) + (if (or (< (seconds 6) (-> self total-time)) (< (seconds 10) (-> self total-off-time))) (go level-hint-exit) ) ) @@ -540,7 +543,7 @@ (let ((s5-2 (s5-1 (s4-1 *temp-string*) (new-sound-id) 1024 0 0 1 #t))) (set! (-> self sound-id) s5-2) (let ((s4-3 (-> *display* base-frame-counter))) - (while (and (!= (current-str-id) s5-2) (< (- (-> *display* base-frame-counter) s4-3) 1500)) + (while (and (!= (current-str-id) s5-2) (< (- (-> *display* base-frame-counter) s4-3) (seconds 5))) (suspend) ) ) @@ -607,7 +610,7 @@ ) ) (let ((s5-2 (-> *display* base-frame-counter))) - (while (and (!= (current-str-id) (-> self sound-id)) (< (- (-> *display* base-frame-counter) s5-2) 1500)) + (while (and (!= (current-str-id) (-> self sound-id)) (< (- (-> *display* base-frame-counter) s5-2) (seconds 5))) (suspend) ) ) @@ -638,7 +641,7 @@ (behavior ((arg0 string) (arg1 string)) (clear-pending-settings-from-process *setting-control* self 'hint) (let ((s4-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s4-0) 300) + (until (>= (- (-> *display* base-frame-counter) s4-0) (seconds 1)) (when (and *debug-segment* (not (paused?)) (not (str-is-playing?)) (bottom-hud-hidden?)) (let ((s3-0 (new 'stack 'font-context *font-default-matrix* 56 160 0.0 (font-color default) (font-flags shadow kerning)) @@ -760,7 +763,7 @@ (let* ((s5-0 (-> arg0 ambient)) (s4-0 (-> s5-0 ambient-data user-uint64 0)) ) - (when (>= (-> *display* base-frame-counter) (the-as int s4-0)) + (when (>= (-> *display* base-frame-counter) (the-as time-frame s4-0)) (let ((v1-5 (res-lump-data s5-0 'cycle-speed pointer))) (set! (-> s5-0 ambient-data user-uint64 0) (the-as uint (+ (-> *display* base-frame-counter) diff --git a/test/decompiler/reference/engine/ambient/mood_REF.gc b/test/decompiler/reference/engine/ambient/mood_REF.gc index ce235daee8..7d11ecc976 100644 --- a/test/decompiler/reference/engine/ambient/mood_REF.gc +++ b/test/decompiler/reference/engine/ambient/mood_REF.gc @@ -479,21 +479,21 @@ ;; definition for function update-mood-flames ;; INFO: Return type mismatch number vs none. (defun update-mood-flames ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 int) (arg4 float) (arg5 float) (arg6 float)) - (let* ((s5-0 (&-> arg0 state arg3)) - (s4-0 (+ (-> s5-0 0) arg1)) - (a0-1 (-> s5-0 1)) - (v1-2 (-> s5-0 2)) - (s0-0 (-> s5-0 3)) + (let* ((s5-0 (the-as flames-state (&-> arg0 state arg3))) + (s4-0 (+ (-> s5-0 index) arg1)) + (a0-1 (-> s5-0 time)) + (v1-2 (-> s5-0 length)) + (s0-0 (-> s5-0 height)) ) (dotimes (a3-1 arg2) (set! (-> arg0 times (+ arg1 a3-1) w) arg4) ) (cond ((>= a0-1 v1-2) - (set! (-> s5-0 0) (the-as uint (the int (rand-vu-float-range 0.0 (+ -0.01 (the float arg2)))))) - (set! (-> s5-0 1) (the-as uint 0)) - (set! (-> s5-0 2) (the-as uint (the int (* (rand-vu-float-range 7.0 15.0) arg6)))) - (set! (-> s5-0 3) (the-as uint (the int (rand-vu-float-range 0.0 255.0)))) + (set! (-> s5-0 index) (the-as uint (the int (rand-vu-float-range 0.0 (+ -0.01 (the float arg2)))))) + (set! (-> s5-0 time) (the-as uint 0)) + (set! (-> s5-0 length) (the-as uint (the int (* (rand-vu-float-range 7.0 15.0) arg6)))) + (set! (-> s5-0 height) (the-as uint (the int (rand-vu-float-range 0.0 255.0)))) (set! (-> arg0 times s4-0 w) arg4) ) (else @@ -501,7 +501,7 @@ (set! (-> arg0 times s4-0 w) (+ (* (the float s0-0) f0-13 arg5) arg4)) ) (if (not (paused?)) - (+! (-> s5-0 1) 1) + (+! (-> s5-0 time) 1) ) ) ) @@ -1021,12 +1021,12 @@ ;; definition for function update-mood-lava ;; INFO: Return type mismatch float vs none. (defun update-mood-lava ((arg0 mood-context) (arg1 int) (arg2 int) (arg3 symbol)) - (let* ((s4-0 (&-> arg0 state arg2)) - (s1-0 (-> s4-0 16)) - (s2-0 (-> s4-0 17)) + (let* ((s4-0 (the-as lava-state (&-> arg0 state arg2))) + (s1-0 (-> s4-0 time)) + (s2-0 (-> s4-0 last-index)) ) (when (not (paused?)) - (set! (-> s4-0 16) (+ s1-0 4)) + (set! (-> s4-0 time) (+ s1-0 4)) (set! *lava-time* (+ *lava-time* (rand-vu-float-range 64.0 2048.0))) ) (let ((s0-0 (-> arg0 light-group 0 dir2)) @@ -1040,15 +1040,13 @@ (f30-2 (* 0.015625 (the float (logand s1-0 63)))) ) (when (!= s0-1 s2-0) - (set! (-> (the-as (pointer float) (+ (* s0-1 4) (the-as uint s4-0)))) - (the float (the int (rand-vu-float-range 128.0 255.0))) - ) - (set! (-> s4-0 17) s0-1) + (set! (-> s4-0 scale s0-1) (the float (the int (rand-vu-float-range 128.0 255.0)))) + (set! (-> s4-0 last-index) s0-1) ) (when arg3 (let* ((v1-14 (logand (+ s0-1 -1) 3)) - (f1-11 (* 0.0078125 (-> (the-as (pointer float) (+ (* s0-1 4) (the-as uint s4-0)))))) - (f0-11 (* 0.0078125 (-> (the-as (pointer float) (+ (* v1-14 4) (the-as uint s4-0)))))) + (f1-11 (* 0.0078125 (-> s4-0 scale s0-1))) + (f0-11 (* 0.0078125 (-> s4-0 scale v1-14))) ) (set! (-> arg0 times (+ arg1 s0-1) w) (* f30-2 f1-11)) (set! (-> arg0 times (+ arg1 v1-14) w) (* (- 1.0 f30-2) f0-11)) @@ -1060,6 +1058,7 @@ ) ;; definition for function update-mood-caustics +;; INFO: Return type mismatch float vs none. (defun update-mood-caustics ((arg0 mood-context) (arg1 int) (arg2 int)) (let* ((a2-1 (-> arg0 state arg2)) (v1-2 (logand (shr a2-1 3) 3)) @@ -1069,8 +1068,8 @@ (set! (-> arg0 times (+ arg1 a2-4) w) (- 1.0 f0-1)) ) (set! (-> arg0 times (+ arg1 v1-2) w) f0-1) - f0-1 ) + (none) ) ;; definition for function update-mood-default @@ -1510,6 +1509,7 @@ ) ;; definition for function update-mood-jungleb-blue +;; INFO: Return type mismatch vector vs none. (defun update-mood-jungleb-blue ((arg0 mood-context) (arg1 float) (arg2 int)) (update-mood-light arg0 5 0 1 0.875 0.25 20.0 32) (+! (-> arg0 state 1) 1) @@ -1543,13 +1543,8 @@ (+ 0.35 (* 0.375 (-> arg0 times 5 w))) 1.0 ) - (let ((v0-1 (-> arg0 mood-lights-table data 0 shadow))) - (set! (-> v0-1 x) 0.0) - (set! (-> v0-1 y) -1.0) - (set! (-> v0-1 z) 0.0) - (set! (-> v0-1 w) 0.0) - v0-1 - ) + (set-vector! (-> arg0 mood-lights-table data 0 shadow) 0.0 -1.0 0.0 0.0) + (none) ) ;; definition for function update-mood-jungleb @@ -2266,9 +2261,9 @@ (update-mood-palette arg0 arg1 arg2) (when *time-of-day-effects* (update-mood-flames arg0 4 3 0 0.45 0.001953125 1.0) - (let ((s5-1 (the-as object (-> arg0 state)))) + (let ((s5-1 (the-as snow-states (-> arg0 state)))) (let ((v1-3 (get-reminder (get-task-control (game-task snow-eggtop)) 4)) - (s4-1 (-> (the-as (pointer uint8) s5-1) 6)) + (s4-1 (-> s5-1 one-shot)) ) (cond ((and (= v1-3 2) (nonzero? s4-1)) @@ -2277,7 +2272,7 @@ (set! (-> arg0 times 7 w) (* 0.033333335 (the float s4-1))) ) (if (not (paused?)) - (set! (-> (the-as (pointer uint8) s5-1) 6) (+ s4-1 -1)) + (set! (-> s5-1 one-shot) (+ s4-1 -1)) ) ) ((and (nonzero? v1-3) (!= s4-1 180)) @@ -2294,7 +2289,7 @@ ) ) ) - (let ((f30-0 (-> (the-as vector s5-1) z))) + (let ((f30-0 (-> s5-1 interp))) (when (not (paused?)) (let ((f0-4 (if *weather-off* (+ 0.1 f30-0) @@ -2304,7 +2299,7 @@ ) (set! f30-0 (fmax 0.0 (fmin 1.0 f0-4))) ) - (set! (-> (the-as vector s5-1) z) f30-0) + (set! (-> s5-1 interp) f30-0) ) (vector4-lerp! (-> arg0 current-sun env-color) @@ -2416,14 +2411,14 @@ (f30-0 (fmax 0.0 (fmin 1.0 f1-18))) ) (vector-lerp! s2-0 a1-9 a2-8 f30-0) - (let ((s0-2 (the-as structure (-> arg0 state)))) + (let ((s0-2 (the-as village3-states (-> arg0 state)))) (when (not (paused?)) - (set! (-> (the-as (array int8) s0-2) 20) (the int (+ 4.0 arg1))) - (+! (-> (the-as (array float) s0-2) 4) (rand-vu-float-range 64.0 2048.0)) + (set! (-> s0-2 time) (the-as uint (the int (+ 4.0 arg1)))) + (+! (-> s0-2 lava-time) (rand-vu-float-range 64.0 2048.0)) ) (-> arg0 mood-lights-table data 7) (let* ((s1-1 (-> arg0 light-group 0 dir2)) - (f1-21 (+ 0.875 (* 0.125 (sin (-> (the-as (array float) s0-2) 4))))) + (f1-21 (+ 0.875 (* 0.125 (sin (-> s0-2 lava-time))))) (f0-66 (* 3.52 f1-21)) ) (set-vector! (-> s1-1 direction) 0.0 -1.0 0.0 0.0) @@ -2431,9 +2426,9 @@ (set! (-> s1-1 levels x) (* f1-21 (- 1.0 f30-0))) (set! (-> s1-1 levels y) (* f0-66 (- 1.0 f30-0))) ) - (let ((f30-1 (* 0.015625 (the float (logand (-> (the-as (array uint8) s0-2) 20) 63))))) - (set! (-> (the-as matrix s0-2) vector 0 y) (the float (the int (rand-vu-float-range 128.0 255.0)))) - (set! (-> arg0 times 7 w) (* f30-1 (-> (the-as matrix s0-2) vector 0 y))) + (let ((f30-1 (* 0.015625 (the float (logand (-> s0-2 time) 63))))) + (set! (-> s0-2 scale) (the float (the int (rand-vu-float-range 128.0 255.0)))) + (set! (-> arg0 times 7 w) (* f30-1 (-> s0-2 scale))) ) ) ) @@ -2629,9 +2624,9 @@ (let* ((f1-2 (* 0.0000048828124 (+ -409600.0 f30-0))) (f30-1 (fmax 0.0 (fmin 1.0 f1-2))) ) - (let ((s4-1 (the-as (pointer number) (-> arg0 state)))) + (let ((s4-1 (the-as ogre-states (-> arg0 state)))) (if (not (paused?)) - (+! (-> (the-as (pointer float) s4-1) 5) (rand-vu-float-range 64.0 2048.0)) + (+! (-> s4-1 lava-time) (rand-vu-float-range 64.0 2048.0)) ) (if (not (movie?)) (update-mood-lightning arg0 2 2 18 4 0.5 #f) @@ -2639,14 +2634,14 @@ (cond ((or (nonzero? *lightning-time2*) (movie?)) (if (not (paused?)) - (set! (-> (the-as (pointer float) s4-1) 6) (+ 0.2 (-> (the-as (pointer float) s4-1) 6))) + (set! (-> s4-1 lava-fade) (+ 0.2 (-> s4-1 lava-fade))) ) - (if (< 1.0 (-> (the-as (pointer float) s4-1) 6)) - (set! (-> (the-as (pointer float) s4-1) 6) 1.0) + (if (< 1.0 (-> s4-1 lava-fade)) + (set! (-> s4-1 lava-fade) 1.0) ) - (let* ((f28-1 (-> (the-as (pointer float) s4-1) 6)) + (let* ((f28-1 (-> s4-1 lava-fade)) (s5-1 (-> arg0 light-group 0 dir2)) - (f1-6 (+ 0.875 (* 0.125 (sin (-> (the-as (pointer float) s4-1) 5))))) + (f1-6 (+ 0.875 (* 0.125 (sin (-> s4-1 lava-time))))) (f0-17 (* 3.52 f1-6)) ) (set-vector! (-> s5-1 direction) 0.0 -1.0 0.0 0.0) @@ -2656,7 +2651,7 @@ ) ) (else - (set! (-> (the-as (pointer float) s4-1) 6) 0.0) + (set! (-> s4-1 lava-fade) 0.0) ) ) ) @@ -2795,8 +2790,8 @@ ;; definition of type finalboss-states (deftype finalboss-states (structure) - ((start-time uint64 :offset-assert 0) - (secret-time uint64 :offset-assert 8) + ((start-time time-frame :offset-assert 0) + (secret-time time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -2816,12 +2811,12 @@ (clear-mood-times arg0) (set! (-> arg0 light-group 0 dir2 levels x) 0.0) (set! (-> *finalboss2-mood* light-group 0 dir2 levels x) 0.0) - (let ((s4-0 (the-as (pointer integer) (-> arg0 state)))) + (let ((s4-0 (the-as finalboss-states (-> arg0 state)))) (cond ((or (logtest? (get-reminder (get-task-control (game-task finalboss-movies)) 0) 1) (not *time-of-day-effects*)) (when (and *target* (= (-> *target* next-state name) 'target-continue)) - (set! (-> (the-as (pointer int64) s4-0) 0) (+ (-> *display* base-frame-counter) -10000)) - (set! (-> (the-as (pointer int64) s4-0) 1) (+ (-> *display* base-frame-counter) -10000)) + (set! (-> s4-0 start-time) (+ (-> *display* base-frame-counter) (seconds -33.333332))) + (set! (-> s4-0 secret-time) (+ (-> *display* base-frame-counter) (seconds -33.333332))) ) (update-mood-fog arg0 arg1) (update-mood-sky-texture arg0 arg1) @@ -2867,9 +2862,7 @@ ) (cond ((logtest? (get-reminder (get-task-control (game-task finalboss-movies)) 0) 2) - (let* ((f1-14 - (* 0.00055555557 (the float (- (-> *display* base-frame-counter) (-> (the-as (pointer int64) s4-0) 1)))) - ) + (let* ((f1-14 (* 0.00055555557 (the float (- (-> *display* base-frame-counter) (-> s4-0 secret-time))))) (f0-15 (fmax 0.0 (fmin 1.0 f1-14))) (a0-21 (-> arg0 light-group)) ) @@ -2906,12 +2899,10 @@ ) ) (else - (set! (-> (the-as (pointer int64) s4-0) 1) (-> *display* base-frame-counter)) + (set! (-> s4-0 secret-time) (-> *display* base-frame-counter)) ) ) - (let* ((f1-36 - (* 0.00019607843 (the float (- (-> *display* base-frame-counter) (-> (the-as (pointer int64) s4-0) 0)))) - ) + (let* ((f1-36 (* 0.00019607843 (the float (- (-> *display* base-frame-counter) (-> s4-0 start-time))))) (f1-38 (fmax 0.0 (fmin 1.0 f1-36))) (f0-32 (fmax 0.0 (fmin 1.0 f1-38))) ) @@ -2939,7 +2930,7 @@ (set! (-> *time-of-day-proc* 0 minute) 0) (set! (-> *time-of-day-proc* 0 second) 0) (set! (-> *time-of-day-proc* 0 frame) 0) - (set! (-> (the-as (pointer int64) s4-0) 0) (-> *display* base-frame-counter)) + (set! (-> s4-0 start-time) (-> *display* base-frame-counter)) (dotimes (v1-72 8) (set! (-> arg0 sky-times v1-72) 0.0) ) diff --git a/test/decompiler/reference/engine/ambient/weather-part_REF.gc b/test/decompiler/reference/engine/ambient/weather-part_REF.gc index 8381b4ef2a..af1feb1f3b 100644 --- a/test/decompiler/reference/engine/ambient/weather-part_REF.gc +++ b/test/decompiler/reference/engine/ambient/weather-part_REF.gc @@ -587,7 +587,7 @@ ;; definition for function cam-master-effect ;; INFO: Return type mismatch int vs none. (defbehavior cam-master-effect camera-master () - (when (< (+ (-> *display* base-frame-counter) -3000) (the-as int (-> self water-drip-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -10)) (-> self water-drip-time)) (set! (-> *part-id-table* 21 init-specs 1 initial-valuef) (-> self water-drip-mult)) (set! (-> *part-id-table* 18 init-specs 1 initial-valuef) (* 0.9 (-> self water-drip-mult))) (set! (-> *part-id-table* 22 init-specs 11 initial-valuef) (* -2.7306666 (-> self water-drip-speed))) diff --git a/test/decompiler/reference/engine/camera/cam-layout_REF.gc b/test/decompiler/reference/engine/camera/cam-layout_REF.gc index e1765252e5..e0ac1e29d2 100644 --- a/test/decompiler/reference/engine/camera/cam-layout_REF.gc +++ b/test/decompiler/reference/engine/camera/cam-layout_REF.gc @@ -955,7 +955,7 @@ (vector-reset! arg0) (vector-reset! arg1) (cond - ((logtest? (-> *cpad-list* cpads arg2 button0-abs 0) (pad-buttons l3)) + ((cpad-hold? arg2 l3) (set! (-> arg0 z) (- (-> arg0 z) (analog-input (the-as int (-> *cpad-list* cpads arg2 rightx)) (-> (new 'static 'array float 1 128.0) 0) @@ -994,7 +994,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg2 button0-abs 0) (pad-buttons r1)) + (if (cpad-hold? arg2 r1) (set! (-> arg1 y) (+ 0.5 (analog-input (the-as int (-> *cpad-list* cpads arg2 abutton 9)) @@ -1009,7 +1009,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg2 button0-abs 0) (pad-buttons l1)) + (if (cpad-hold? arg2 l1) (set! (-> arg1 y) (- (-> arg1 y) (+ 0.5 (analog-input (the-as int (-> *cpad-list* cpads arg2 abutton 8)) (-> (new 'static 'array float 1 0.0) 0) diff --git a/test/decompiler/reference/engine/camera/cam-master_REF.gc b/test/decompiler/reference/engine/camera/cam-master_REF.gc index a472f6c4bf..33ca6c3939 100644 --- a/test/decompiler/reference/engine/camera/cam-master_REF.gc +++ b/test/decompiler/reference/engine/camera/cam-master_REF.gc @@ -85,17 +85,18 @@ (set! (-> self string-max target z) (-> self stringMaxLength)) (set! (-> self string-push-z) (fmax (-> self string-min value z) (-> *CAMERA-bank* default-string-push-z))) (cond - ((>= (- (-> *display* base-frame-counter) (if *target* - (-> *target* neck notice-time) - 0 - ) + ((>= (- (-> *display* base-frame-counter) (the-as time-frame (if *target* + (the-as int (-> *target* neck notice-time)) + 0 + ) + ) ) - (the-as int (-> *CAMERA-bank* attack-timeout)) + (-> *CAMERA-bank* attack-timeout) ) (set! (-> self being-attacked) #f) ) (else - (set! (-> self attack-start) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self attack-start) (-> *display* base-frame-counter)) (set! (-> self being-attacked) #t) (when (and (zero? (logand (-> self master-options) 64)) (or (!= (-> last-try-to-look-at-data horz) 0.0) (!= (-> last-try-to-look-at-data vert) 0.0)) @@ -313,18 +314,19 @@ (return (the-as symbol #f)) ) (cond - ((>= (- (-> *display* base-frame-counter) (if *target* - (-> *target* neck notice-time) - 0 - ) + ((>= (- (-> *display* base-frame-counter) (the-as time-frame (if *target* + (the-as int (-> *target* neck notice-time)) + 0 + ) + ) ) - (the-as int (-> *CAMERA-bank* attack-timeout)) + (-> *CAMERA-bank* attack-timeout) ) (set! (-> self being-attacked) #f) ) (else (if (not (-> self being-attacked)) - (set! (-> self attack-start) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self attack-start) (-> *display* base-frame-counter)) ) (set! (-> self being-attacked) #t) (when (and (zero? (logand (-> self master-options) 64)) @@ -1055,7 +1057,7 @@ ) ) (set! (-> self water-drip) (create-launch-control group-rain-screend-drop self)) - (set! (-> self water-drip-time) (the-as uint -18000)) + (set! (-> self water-drip-time) (seconds -60)) (go cam-master-active) 0 (none) diff --git a/test/decompiler/reference/engine/camera/cam-states-dbg_REF.gc b/test/decompiler/reference/engine/camera/cam-states-dbg_REF.gc index 12e7e367b8..6a6dc69db5 100644 --- a/test/decompiler/reference/engine/camera/cam-states-dbg_REF.gc +++ b/test/decompiler/reference/engine/camera/cam-states-dbg_REF.gc @@ -57,7 +57,7 @@ (f0-0 (analog-input (the-as int (-> *cpad-list* cpads 0 righty)) 128.0 48.0 110.0 -1.0)) ) (cond - ((logtest? (-> *cpad-list* cpads (-> *CAMERA-bank* joypad) button0-abs 0) (pad-buttons r2)) + ((cpad-hold? (-> *CAMERA-bank* joypad) r2) (set! (-> s5-0 y) (- (-> s5-0 y) (* 0.2 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f26-0)))) (set! (-> s5-0 x) (- (-> s5-0 x) (* 0.2 (-> *CAM_POINT_WATCH-bank* rot-speed) (- f0-0)))) (+! (-> gp-0 x) (* 0.2 (-> *CAM_POINT_WATCH-bank* speed) f28-0)) @@ -120,7 +120,7 @@ (defun cam-free-floating-input ((arg0 vector) (arg1 vector) (arg2 symbol) (arg3 int)) (when (and (!= *master-mode* 'menu) (not *cam-layout*)) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons x)) + (if (cpad-hold? arg3 x) (set! (-> arg0 x) (- (-> arg0 x) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 6)) @@ -135,7 +135,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons triangle)) + (if (cpad-hold? arg3 triangle) (+! (-> arg0 x) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 4)) 0.0 @@ -148,7 +148,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons square)) + (if (cpad-hold? arg3 square) (+! (-> arg0 y) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 7)) 0.0 @@ -161,7 +161,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons circle)) + (if (cpad-hold? arg3 circle) (set! (-> arg0 y) (- (-> arg0 y) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 5)) @@ -178,7 +178,7 @@ ) (when arg2 (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l2)) + (if (cpad-hold? arg3 l2) (+! (-> arg0 z) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 10)) 0.0 @@ -191,7 +191,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r2)) + (if (cpad-hold? arg3 r2) (set! (-> arg0 z) (- (-> arg0 z) (+ (-> *CAM_FREE-bank* rot-speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 11)) @@ -211,9 +211,9 @@ ) ((not *camera-read-analog*) ) - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r2)) + ((cpad-hold? arg3 r2) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r1)) + (if (cpad-hold? arg3 r1) (+! (-> arg1 y) (+ (* 0.2 (-> *CAM_FREE-bank* speed)) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 9)) 0.0 @@ -226,7 +226,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l1)) + (if (cpad-hold? arg3 l1) (set! (-> arg1 y) (- (-> arg1 y) (+ (* 0.2 (-> *CAM_FREE-bank* speed)) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 8)) @@ -243,7 +243,7 @@ ) (else (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r1)) + (if (cpad-hold? arg3 r1) (+! (-> arg1 y) (+ (-> *CAM_FREE-bank* speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 9)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed)) @@ -252,7 +252,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l1)) + (if (cpad-hold? arg3 l1) (set! (-> arg1 y) (- (-> arg1 y) (+ (-> *CAM_FREE-bank* speed) @@ -266,7 +266,7 @@ ) (when (and (!= *master-mode* 'menu) (not *cam-layout*)) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons left)) + (if (cpad-hold? arg3 left) (+! (-> arg1 x) (+ (-> *CAM_FREE-bank* speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 1)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed)) @@ -275,7 +275,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons right)) + (if (cpad-hold? arg3 right) (set! (-> arg1 x) (- (-> arg1 x) (+ (-> *CAM_FREE-bank* speed) @@ -286,7 +286,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons up)) + (if (cpad-hold? arg3 up) (+! (-> arg1 z) (+ (-> *CAM_FREE-bank* speed) (analog-input (the-as int (-> *cpad-list* cpads arg3 abutton 2)) 0.0 32.0 230.0 (-> *CAM_FREE-bank* speed)) @@ -295,7 +295,7 @@ ) ) (when *camera-read-buttons* - (if (logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons down)) + (if (cpad-hold? arg3 down) (set! (-> arg1 z) (- (-> arg1 z) (+ (-> *CAM_FREE-bank* speed) @@ -325,9 +325,9 @@ ) ) (cond - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons r2)) + ((cpad-hold? arg3 r2) (cond - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l2)) + ((cpad-hold? arg3 l2) (set! (-> arg0 y) (- (-> arg0 y) (* 0.5 (-> *CAM_FREE-bank* rot-speed) (- f24-0)))) (set! (-> arg0 x) (- (-> arg0 x) (* 0.5 (-> *CAM_FREE-bank* rot-speed) (- f26-0)))) ) @@ -339,7 +339,7 @@ (+! (-> arg1 x) (* 0.2 (-> *CAM_FREE-bank* speed) f28-14)) (+! (-> arg1 z) (* 0.2 (-> *CAM_FREE-bank* speed) f30-14)) ) - ((logtest? (-> *cpad-list* cpads arg3 button0-abs 0) (pad-buttons l2)) + ((cpad-hold? arg3 l2) (+! (-> arg1 x) (* f28-14 (-> *CAM_FREE-bank* speed))) (+! (-> arg1 y) (* f26-0 (-> *CAM_FREE-bank* speed))) (+! (-> arg1 z) (* f30-14 (-> *CAM_FREE-bank* speed))) diff --git a/test/decompiler/reference/engine/camera/cam-states_REF.gc b/test/decompiler/reference/engine/camera/cam-states_REF.gc index 3958d1271b..7d405dab19 100644 --- a/test/decompiler/reference/engine/camera/cam-states_REF.gc +++ b/test/decompiler/reference/engine/camera/cam-states_REF.gc @@ -934,7 +934,7 @@ ) :code (behavior () - (let ((gp-0 (new 'stack-no-clear 'matrix)) + (let ((gp-0 (new 'stack-no-clear 'cam-vector-seeker)) (f30-0 (-> self velocity y)) ) (let ((s4-0 (new 'stack-no-clear 'vector)) @@ -944,30 +944,24 @@ (set! (-> s4-0 y) 0.0) (set! (-> s5-0 quad) (-> self velocity quad)) (set! (-> s5-0 y) 0.0) - ((method-of-type cam-vector-seeker init!) - (the-as cam-vector-seeker gp-0) - s4-0 - (the-as float 81.92) - (fmax 819.2 (vector-length s5-0)) - (the-as float 0.75) - ) - (set! (-> gp-0 vector 2 quad) (-> s5-0 quad)) + (init! gp-0 s4-0 (the-as float 81.92) (fmax 819.2 (vector-length s5-0)) (the-as float 0.75)) + (set! (-> gp-0 vel quad) (-> s5-0 quad)) ) (while #t (when (not (paused?)) - (set! (-> gp-0 vector 0 x) (-> (target-pos 0) x)) - (set! (-> gp-0 vector 0 z) (-> (target-pos 0) z)) - ((method-of-type cam-vector-seeker update!) (the-as cam-vector-seeker gp-0) (the-as vector #f)) - (when (< 819.2 (-> gp-0 vector 3 y)) - (set! (-> gp-0 vector 3 y) (* 0.9 (-> gp-0 vector 3 y))) - (if (< (-> gp-0 vector 3 y) 819.2) - (set! (-> gp-0 vector 3 y) 819.2) + (set! (-> gp-0 target x) (-> (target-pos 0) x)) + (set! (-> gp-0 target z) (-> (target-pos 0) z)) + (update! gp-0 (the-as vector #f)) + (when (< 819.2 (-> gp-0 max-vel)) + (set! (-> gp-0 max-vel) (* 0.9 (-> gp-0 max-vel))) + (if (< (-> gp-0 max-vel) 819.2) + (set! (-> gp-0 max-vel) 819.2) ) ) (set! f30-0 (* 0.9 f30-0)) (+! (-> self trans y) f30-0) - (set! (-> self trans x) (-> gp-0 vector 1 x)) - (set! (-> self trans z) (-> gp-0 vector 1 z)) + (set! (-> self trans x) (-> gp-0 value x)) + (set! (-> self trans z) (-> gp-0 value z)) ) (suspend) ) @@ -1314,10 +1308,7 @@ ) ;; definition for symbol *CAM_STRING-bank*, type cam-string-bank -(define - *CAM_STRING-bank* - (new 'static 'cam-string-bank :los-coll-rad (meters 1.0) :los-coll-rad2 (meters 0.5)) - ) +(define *CAM_STRING-bank* (new 'static 'cam-string-bank :los-coll-rad (meters 1) :los-coll-rad2 (meters 0.5))) ;; definition for function cam-string-find-position-rel! ;; Used lq/sq @@ -2400,7 +2391,7 @@ ) (let ((s4-0 (new 'stack-no-clear 'vector)) (s5-1 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'matrix)) ) 0.0 (vector-flatten! s4-0 (the-as vector (&-> gp-0 found-boundary)) (-> *camera* local-down)) @@ -2413,9 +2404,9 @@ ) ) ) - (matrix-from-two-vectors-max-angle-partial! (the-as matrix s3-0) s5-1 s4-0 f0-12 (the-as float 0.5)) + (matrix-from-two-vectors-max-angle-partial! s3-0 s5-1 s4-0 f0-12 (the-as float 0.5)) ) - (vector-matrix*! (-> self view-flat) (-> self view-flat) (the-as matrix s3-0)) + (vector-matrix*! (-> self view-flat) (-> self view-flat) s3-0) ) (vector-normalize! (-> self view-flat) f30-0) ) @@ -2453,7 +2444,7 @@ (set! f28-0 (* 0.05 (-> self phony-joystick-y))) ) (if (and (-> *camera* being-attacked) - (< (- (-> *display* base-frame-counter) (the-as int (-> *camera* attack-start))) 75) + (< (- (-> *display* base-frame-counter) (-> *camera* attack-start)) (seconds 0.25)) ) (set! f28-0 0.05) ) @@ -3127,13 +3118,10 @@ ) ;; definition for symbol *CAM_STICK-bank*, type cam-stick-bank -(define *CAM_STICK-bank* (new 'static 'cam-stick-bank - :max-z (meters 30.0) - :min-z (meters 5.0) - :max-y (meters 15.0) - :min-y (meters 2.0) - ) - ) +(define + *CAM_STICK-bank* + (new 'static 'cam-stick-bank :max-z (meters 30) :min-z (meters 5) :max-y (meters 15) :min-y (meters 2)) + ) ;; definition for function cam-stick-code ;; Used lq/sq @@ -3379,7 +3367,7 @@ ;; definition for symbol *CAM_BIKE-bank*, type cam-bike-bank (define *CAM_BIKE-bank* - (new 'static 'cam-bike-bank :max-z (meters 6.0) :min-z (meters 10.0) :max-y (meters 3.0) :min-y (meters 5.0)) + (new 'static 'cam-bike-bank :max-z (meters 6) :min-z (meters 10) :max-y (meters 3) :min-y (meters 5)) ) ;; definition for function cam-calc-bike-follow! diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 120010a2b1..9e4ca5b985 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -3,16 +3,16 @@ ;; definition of type camera-bank (deftype camera-bank (basic) - ((collide-move-rad float :offset-assert 4) - (joypad uint32 :offset-assert 8) - (min-detectable-velocity float :offset-assert 12) - (attack-timeout seconds :offset-assert 16) - (default-string-max-y meters :offset-assert 24) - (default-string-min-y meters :offset-assert 28) - (default-string-max-z meters :offset-assert 32) - (default-string-min-z meters :offset-assert 36) - (default-string-push-z meters :offset-assert 40) - (default-tilt-adjust degrees :offset-assert 44) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout time-frame :offset-assert 16) + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust degrees :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 @@ -40,11 +40,11 @@ :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-y (meters 3) + :default-string-min-y (meters 1) :default-string-max-z (meters 12.5) - :default-string-min-z (meters 5.0) - :default-string-push-z (meters 10.0) + :default-string-min-z (meters 5) + :default-string-push-z (meters 10) :default-tilt-adjust (degrees -6.5000005) ) ) @@ -600,7 +600,7 @@ (pov-handle handle :offset-assert 336) (pov-bone int32 :offset-assert 344) (being-attacked symbol :offset-assert 348) - (attack-start uint64 :offset-assert 352) + (attack-start time-frame :offset-assert 352) (on-ground symbol :offset-assert 360) (under-water int32 :offset-assert 364) (on-pole symbol :offset-assert 368) @@ -625,7 +625,7 @@ (outro-t float :offset-assert 2372) (outro-t-step float :offset-assert 2376) (outro-exit-value float :offset-assert 2380) - (water-drip-time uint64 :offset-assert 2384) + (water-drip-time time-frame :offset-assert 2384) (water-drip sparticle-launch-control :offset-assert 2392) (water-drip-mult float :offset-assert 2396) (water-drip-speed float :offset-assert 2400) diff --git a/test/decompiler/reference/engine/camera/math-camera_REF.gc b/test/decompiler/reference/engine/camera/math-camera_REF.gc index 7288dfaff5..85292b9d5b 100644 --- a/test/decompiler/reference/engine/camera/math-camera_REF.gc +++ b/test/decompiler/reference/engine/camera/math-camera_REF.gc @@ -251,10 +251,10 @@ (defun move-target-from-pad ((trans transform) (pad-idx int)) (let ((local-trans (new-stack-vector0))) (set! (-> local-trans x) (cond - ((logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons circle)) + ((cpad-hold? pad-idx circle) -80.0 ) - ((logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons square)) + ((cpad-hold? pad-idx square) 80.0 ) (else @@ -264,10 +264,10 @@ ) (set! (-> local-trans y) 0.0) (set! (-> local-trans z) (cond - ((logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons down)) + ((cpad-hold? pad-idx down) -80.0 ) - ((logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons up)) + ((cpad-hold? pad-idx up) 80.0 ) (else @@ -286,22 +286,22 @@ (vector+! (-> trans trans) (-> trans trans) local-trans) ) (set! (-> trans trans w) 1.0) - (if (logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons r1)) + (if (cpad-hold? pad-idx r1) (set! (-> trans trans y) (+ 80.0 (-> trans trans y))) ) - (if (logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons r2)) + (if (cpad-hold? pad-idx r2) (set! (-> trans trans y) (+ -80.0 (-> trans trans y))) ) - (if (logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons x)) + (if (cpad-hold? pad-idx x) (set! (-> trans rot x) (+ 546.13336 (-> trans rot x))) ) - (if (logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons triangle)) + (if (cpad-hold? pad-idx triangle) (set! (-> trans rot x) (+ -546.13336 (-> trans rot x))) ) - (if (logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons left)) + (if (cpad-hold? pad-idx left) (set! (-> trans rot y) (+ 546.13336 (-> trans rot y))) ) - (if (logtest? (-> *cpad-list* cpads pad-idx button0-abs 0) (pad-buttons right)) + (if (cpad-hold? pad-idx right) (set! (-> trans rot y) (+ -546.13336 (-> trans rot y))) ) trans diff --git a/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc b/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc index ee0040227d..dd6e8cb97a 100644 --- a/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc @@ -5,7 +5,7 @@ (deftype pov-camera (process-drawable) ((cspace-array cspace-array :offset 112) (flags int32 :offset-assert 176) - (debounce-start-time uint64 :offset-assert 184) + (debounce-start-time time-frame :offset-assert 184) (notify-handle handle :offset-assert 192) (anim-name string :offset-assert 200) (command-list pair :offset-assert 204) diff --git a/test/decompiler/reference/engine/camera/pov-camera_REF.gc b/test/decompiler/reference/engine/camera/pov-camera_REF.gc index 6bd197b578..934b4f1ce2 100644 --- a/test/decompiler/reference/engine/camera/pov-camera_REF.gc +++ b/test/decompiler/reference/engine/camera/pov-camera_REF.gc @@ -3,7 +3,7 @@ ;; definition for method 25 of type pov-camera (defmethod TODO-RENAME-25 pov-camera ((obj pov-camera)) - (when (or (and (>= (- (-> *display* base-frame-counter) (the-as int (-> obj debounce-start-time))) 60) + (when (or (and (>= (- (-> *display* base-frame-counter) (-> obj debounce-start-time)) (seconds 0.2)) (cpad-pressed? 0 triangle) ) (logtest? (-> obj flags) 2) @@ -132,7 +132,7 @@ ) :enter (behavior () - (set! (-> self debounce-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self debounce-start-time) (-> *display* base-frame-counter)) (if (= (-> self anim-name type) string) (backup-load-state-and-set-cmds *load-state* (-> self command-list)) ) @@ -221,7 +221,7 @@ ) :code (behavior () - (set-blackout-frames 10) + (set-blackout-frames (seconds 0.033333335)) (suspend) (suspend) (go-virtual pov-camera-done-playing) @@ -273,7 +273,7 @@ (set! (-> self notify-handle) (process->handle arg4)) (set! (-> self notify-handle) (the-as handle #f)) ) - (set! (-> self debounce-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self debounce-start-time) (-> *display* base-frame-counter)) (logclear! (-> self mask) (process-mask actor-pause movie enemy platform projectile)) (set! (-> self root) (new 'process 'trsqv)) (set! (-> self root trans quad) (-> arg0 quad)) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index c5356e6f5e..746affb00c 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -454,7 +454,7 @@ ;; definition of type collide-shape-moving (deftype collide-shape-moving (collide-shape) - ((rider-time uint64 :offset-assert 184) + ((rider-time time-frame :offset-assert 184) (rider-last-move vector :inline :offset-assert 192) (trans-old vector 3 :inline :offset-assert 208) (poly-pat pat-surface :offset-assert 256) diff --git a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc index 6f2bf57785..cd0ac9f788 100644 --- a/test/decompiler/reference/engine/collide/collide-target-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-target-h_REF.gc @@ -9,7 +9,7 @@ (transv-out vector :inline :offset-assert 48) (local-normal vector :inline :offset-assert 64) (surface-normal vector :inline :offset-assert 80) - (time int64 :offset-assert 96) + (time time-frame :offset-assert 96) (status uint64 :offset-assert 104) (pat pat-surface :offset-assert 112) (reaction-flag uint32 :offset-assert 116) @@ -89,15 +89,15 @@ (unknown-vector53 vector :inline :offset 1232) (last-known-safe-ground vector :inline :offset 1248) (unknown-vector55 vector :inline :offset 1264) - (unknown-dword10 int64 :offset 1280) - (unknown-dword11 int64 :offset 1288) + (unknown-dword10 time-frame :offset 1280) + (unknown-dword11 time-frame :offset 1288) (unknown-float60 float :offset 1300) (unknown-float61 float :offset 1304) (unknown-float62 float :offset 1308) (unknown-float63 float :offset 1312) (unknown-float64 float :offset 1316) - (unknown-dword20 int64 :offset 1320) - (unknown-dword21 int64 :offset 1328) + (unknown-dword20 time-frame :offset 1320) + (unknown-dword21 time-frame :offset 1328) (unknown-dword-coverage int64 :offset 1336) (unknown-float-coverage-0 float :offset 1344) (unknown-float-coverage-1 float :offset 1348) @@ -121,13 +121,13 @@ (unknown-sphere01 collide-shape-prim-sphere :offset 1636) (unknown-sphere02 collide-shape-prim-sphere :offset 1640) (unknown-int50 int32 :offset 1656) - (unknown-dword30 int64 :offset 1664) - (unknown-dword31 int64 :offset 1672) - (unknown-dword32 int64 :offset 1680) - (unknown-dword33 int64 :offset 1688) - (unknown-dword34 int64 :offset 1696) - (unknown-dword35 int64 :offset 1704) - (unknown-dword36 int64 :offset 1712) + (unknown-dword30 time-frame :offset 1664) + (unknown-dword31 time-frame :offset 1672) + (unknown-dword32 time-frame :offset 1680) + (unknown-dword33 time-frame :offset 1688) + (unknown-dword34 time-frame :offset 1696) + (unknown-dword35 time-frame :offset 1704) + (unknown-dword36 time-frame :offset 1712) (unknown-float80 float :offset 1724) (unknown-float81 float :offset 1728) (unknown-float82 float :offset 1732) @@ -146,8 +146,8 @@ (unknown-float110 float :offset 2120) (unknown-vector100 vector :inline :offset 2128) (unknown-vector101 vector :inline :offset 2144) - (unknown-dword40 int64 :offset 2160) - (unknown-dword41 int64 :offset 2168) + (unknown-dword40 time-frame :offset 2160) + (unknown-dword41 time-frame :offset 2168) (unknown-handle10 handle :offset 2176) (unknown-uint20 uint32 :offset 2184) (unknown-spoolanim00 spool-anim :offset 2184) @@ -182,13 +182,13 @@ (history-length int16 :offset 2490) (history-data collide-history 128 :inline :offset-assert 2496) (unknown-float140 float :offset 18944) - (unknown-dword70 int64 :offset 18952) + (unknown-dword70 time-frame :offset 18952) (unknown-int40 int32 :offset 18880) - (unknown-dword80 int64 :offset 18888) - (unknown-dword81 int64 :offset 18896) + (unknown-dword80 time-frame :offset 18888) + (unknown-dword81 time-frame :offset 18896) (unknown-float130 float :offset 18904) (unknown-float131 float :offset 18908) - (unknown-dword82 int64 :offset 18912) + (unknown-dword82 time-frame :offset 18912) (unknown-vector120 vector :inline :offset 18928) (unknown-float150 float :offset 18944) (unknown-vector121 vector :inline :offset 18960) diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc index d81e807a2a..eb0cf8f803 100644 --- a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc @@ -59,9 +59,9 @@ (trans vector :offset-assert 120) (sound-id sound-id :offset-assert 124) (mode symbol :offset-assert 128) - (total-time int64 :offset-assert 136) - (total-off-time int64 :offset-assert 144) - (last-time int64 :offset-assert 152) + (total-time time-frame :offset-assert 136) + (total-off-time time-frame :offset-assert 144) + (last-time time-frame :offset-assert 152) (voicebox handle :offset-assert 160) ) :heap-base #x40 diff --git a/test/decompiler/reference/engine/draw/drawable_REF.gc b/test/decompiler/reference/engine/draw/drawable_REF.gc index 208f564ad8..0103f68786 100644 --- a/test/decompiler/reference/engine/draw/drawable_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable_REF.gc @@ -1625,7 +1625,7 @@ (and (logtest? (-> *cpad-list* cpads 0 valid) 128) (= *master-mode* 'game) (>= (-> *display* base-frame-counter) (-> *game-info* blackout-time)) - (< #x49764 (-> *display* real-frame-counter)) + (< (seconds 1003) (-> *display* real-frame-counter)) ) (and (cpad-pressed? 0 r2) (paused?)) *pause-lock* @@ -1645,7 +1645,9 @@ ;; definition for function display-sync (defun display-sync ((disp display)) (sync-path 0 0) - (set! (-> disp frames (-> disp on-screen) frame run-time) (timer-count (the-as timer-bank #x10000800))) + (set! (-> disp frames (-> disp on-screen) frame run-time) + (the-as int (timer-count (the-as timer-bank #x10000800))) + ) (let ((frame-idx (-> disp on-screen)) (syncv-result (syncv 0)) ) diff --git a/test/decompiler/reference/engine/draw/process-drawable_REF.gc b/test/decompiler/reference/engine/draw/process-drawable_REF.gc index e5739234ac..96e6dc51d8 100644 --- a/test/decompiler/reference/engine/draw/process-drawable_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable_REF.gc @@ -1094,7 +1094,7 @@ ) ;; definition for function process-drawable-delay-player -(defbehavior process-drawable-delay-player process-drawable ((arg0 int)) +(defbehavior process-drawable-delay-player process-drawable ((arg0 time-frame)) (while (and *target* (logtest? (-> *target* control unknown-surface00 flags) 2048) (zero? (logand (-> *target* control status) 1)) diff --git a/test/decompiler/reference/engine/engine/connect_REF.gc b/test/decompiler/reference/engine/engine/connect_REF.gc index 570bc0557f..5cae71d49d 100644 --- a/test/decompiler/reference/engine/engine/connect_REF.gc +++ b/test/decompiler/reference/engine/engine/connect_REF.gc @@ -63,7 +63,7 @@ ((name basic :offset-assert 4) (length int16 :offset-assert 8) (allocated-length int16 :offset-assert 10) - (engine-time int64 :offset-assert 16) + (engine-time time-frame :offset-assert 16) (alive-list connectable :inline :offset-assert 32) (alive-list-end connectable :inline :offset-assert 48) (dead-list connectable :inline :offset-assert 64) diff --git a/test/decompiler/reference/engine/entity/entity_REF.gc b/test/decompiler/reference/engine/entity/entity_REF.gc index 93775139f9..aad655f26a 100644 --- a/test/decompiler/reference/engine/entity/entity_REF.gc +++ b/test/decompiler/reference/engine/entity/entity_REF.gc @@ -1632,13 +1632,7 @@ ) (when (not (paused?)) (let ((s5-1 (-> *display* frames (-> *display* last-screen) frame run-time))) - (let ((f0-5 - (fmax - 327680.0 - (fmin (+ 327680.0 (* 204.8 (the float (- 7000 (the-as int s5-1))))) (-> *ACTOR-bank* birth-dist)) - ) - ) - ) + (let ((f0-5 (fmax 327680.0 (fmin (+ 327680.0 (* 204.8 (the float (- 7000 s5-1)))) (-> *ACTOR-bank* birth-dist))))) (set! (-> *ACTOR-bank* pause-dist) (seek (-> *ACTOR-bank* pause-dist) f0-5 (* 81920.0 (-> *display* seconds-per-frame))) ) diff --git a/test/decompiler/reference/engine/game/collectables-part_REF.gc b/test/decompiler/reference/engine/game/collectables-part_REF.gc index 71531058f5..27045dbdf7 100644 --- a/test/decompiler/reference/engine/game/collectables-part_REF.gc +++ b/test/decompiler/reference/engine/game/collectables-part_REF.gc @@ -53,7 +53,7 @@ (-> arg0 root trans) (-> arg0 offset) a2-0 - (* 0.006666667 (the float (- (-> *display* base-frame-counter) (the-as int (-> arg0 start-time))))) + (* 0.006666667 (the float (- (-> *display* base-frame-counter) (-> arg0 start-time)))) ) ) ) diff --git a/test/decompiler/reference/engine/game/collectables_REF.gc b/test/decompiler/reference/engine/game/collectables_REF.gc index c3ae062ed9..6896ede7cc 100644 --- a/test/decompiler/reference/engine/game/collectables_REF.gc +++ b/test/decompiler/reference/engine/game/collectables_REF.gc @@ -15,9 +15,9 @@ (extra-trans vector :inline :offset-assert 224) (jump-pos vector :inline :offset-assert 240) (flags collectable-flags :offset-assert 256) - (birth-time int64 :offset-assert 264) - (collect-timeout int64 :offset-assert 272) - (fadeout-timeout int64 :offset-assert 280) + (birth-time time-frame :offset-assert 264) + (collect-timeout time-frame :offset-assert 272) + (fadeout-timeout time-frame :offset-assert 280) (bob-offset int64 :offset-assert 288) (bob-amount float :offset-assert 296) (pickup-handle handle :offset-assert 304) @@ -29,7 +29,7 @@ :flag-assert #x1600d0013c (:methods (initialize (_type_) _type_ 20) - (initialize-params (_type_ int float) none 21) + (initialize-params (_type_ time-frame float) none 21) ) (:states (hud-collecting handle) @@ -62,7 +62,7 @@ ;; definition for method 21 of type collectable ;; INFO: Return type mismatch collectable vs none. ;; Used lq/sq -(defmethod initialize-params collectable ((obj collectable) (arg0 int) (arg1 float)) +(defmethod initialize-params collectable ((obj collectable) (arg0 time-frame) (arg1 float)) (logclear! (-> obj mask) (process-mask crate enemy platform ambient)) (set! (-> obj mask) (logior (process-mask collectable) (-> obj mask))) (set! (-> obj flags) (collectable-flags can-collect ignore-blue)) @@ -89,7 +89,7 @@ (logior! (-> obj flags) (collectable-flags fade)) (set! (-> obj fadeout-timeout) arg0) ) - (set! (-> obj collect-timeout) 99) + (set! (-> obj collect-timeout) (seconds 0.33)) (set! (-> obj birth-time) (-> *display* base-frame-counter)) (set! (-> obj base quad) (-> obj root-override trans quad)) (set! (-> obj old-base quad) (-> obj root-override trans quad)) @@ -110,11 +110,11 @@ ((eco-effect sparticle-launch-group :offset-assert 316) (collect-effect sparticle-launch-group :offset-assert 320) (collect-effect2 sparticle-launch-group :offset-assert 324) - (collect-effect-time seconds :offset-assert 328) - (respawn-delay int64 :offset-assert 336) + (collect-effect-time time-frame :offset-assert 328) + (respawn-delay time-frame :offset-assert 336) (sound-name sound-spec :offset-assert 344) (target handle :offset-assert 352) - (suck-time int64 :offset-assert 360) + (suck-time time-frame :offset-assert 360) (suck-y-offset float :offset-assert 368) (speed vector :inline :offset-assert 384) (movie-pos-index int32 :offset-assert 400) @@ -198,7 +198,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 56)) (set! (-> obj collect-effect) (-> *part-group-id-table* 68)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 57)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -213,7 +213,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 48)) (set! (-> obj collect-effect) (-> *part-group-id-table* 69)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 49)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -228,7 +228,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 42)) (set! (-> obj collect-effect) (-> *part-group-id-table* 67)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 43)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -243,7 +243,7 @@ (set! (-> obj eco-effect) (-> *part-group-id-table* 58)) (set! (-> obj collect-effect) (-> *part-group-id-table* 66)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 61)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) (set! (-> obj sound-name) (new 'static 'sound-spec :mask #x80 :num 1.0 @@ -257,7 +257,7 @@ (((pickup-type eco-pill)) (set! (-> obj eco-effect) (-> *part-group-id-table* 59)) (set! (-> obj collect-effect2) (-> *part-group-id-table* 60)) - (set! (-> obj collect-effect-time) 150) + (set! (-> obj collect-effect-time) (seconds 0.5)) ) ) (set! (-> obj part) (create-launch-control (-> obj eco-effect) obj)) @@ -291,15 +291,16 @@ (((pickup-type eco-blue) (pickup-type eco-yellow) (pickup-type eco-red)) (initialize-params self - (if (and arg2 (logtest? (-> arg2 options) (fact-options fade))) - (-> arg2 fade-time) - 0 - ) + (the-as time-frame (if (and arg2 (logtest? (-> arg2 options) (fact-options fade))) + (the-as int (-> arg2 fade-time)) + 0 + ) + ) (the-as float 1024.0) ) ) (else - (initialize-params self 4500 (the-as float 1024.0)) + (initialize-params self (seconds 15) (the-as float 1024.0)) ) ) (update-transforms! (-> self root-override)) @@ -491,7 +492,7 @@ (the-as float -2.2755556) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (let ((f0-2 (the float (- (-> *display* base-frame-counter) (-> self state-time))))) (eval-position! gp-1 f0-2 (-> self root-override trans)) ) @@ -595,9 +596,9 @@ ) ((= arg2 'fade) (logior! (-> self flags) (collectable-flags fade)) - (set! (-> self fadeout-timeout) 30) + (set! (-> self fadeout-timeout) (seconds 0.1)) (set! v0-3 (the-as none (-> *display* base-frame-counter))) - (set! (-> self birth-time) (the-as int v0-3)) + (set! (-> self birth-time) (the-as time-frame v0-3)) v0-3 ) ) @@ -668,7 +669,10 @@ (when (and (logtest? (-> self flags) (collectable-flags fade)) (>= (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self fadeout-timeout)) ) - (let ((v1-10 (- 300 (- (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self fadeout-timeout))))) + (let ((v1-10 + (- (seconds 1) (- (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self fadeout-timeout))) + ) + ) (cond ((< v1-10 0) (process-entity-status! self (entity-perm-status dead) #t) @@ -935,7 +939,7 @@ (-> arg0 root trans) (-> arg0 offset) a2-0 - (/ (the float (- (-> *display* base-frame-counter) (the-as int (-> arg0 start-time)))) + (/ (the float (- (-> *display* base-frame-counter) (-> arg0 start-time))) (the float (-> (the-as eco-collectable s5-0) collect-effect-time)) ) ) @@ -1472,7 +1476,7 @@ (quaternion-identity! (-> self root-override quat)) (vector-identity! (-> self root-override scale)) (set! (-> self root-override transv quad) (-> arg1 quad)) - (initialize-params self 4500 (the-as float 1024.0)) + (initialize-params self (seconds 15) (the-as float 1024.0)) (update-transforms! (-> self root-override)) (set! (-> self event-hook) (-> (method-of-object self wait) event)) (go-virtual wait) @@ -1494,7 +1498,7 @@ (quaternion-identity! (-> self root-override quat)) (vector-identity! (-> self root-override scale)) (set! (-> self root-override transv quad) (-> arg1 quad)) - (initialize-params self 4500 (the-as float 0.0)) + (initialize-params self (seconds 15) (the-as float 0.0)) (logior! (-> self flags) (collectable-flags ignore-blue)) (update-transforms! (-> self root-override)) (set! (-> self event-hook) (-> (method-of-object self wait) event)) @@ -2655,7 +2659,7 @@ (initialize obj) (process-drawable-from-entity! obj (the-as entity-actor (-> obj entity))) (initialize-params obj 0 (the-as float 1024.0)) - (set! (-> obj collect-timeout) 600) + (set! (-> obj collect-timeout) (seconds 2)) (update-transforms! (-> obj root-override)) (update-trans! (-> obj sound) (-> obj root-override trans)) (if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete))) @@ -3131,7 +3135,7 @@ (show-particles symbol :offset-assert 176) (collect-effect sparticle-launch-group :offset-assert 180) (collect-effect2 sparticle-launch-group :offset-assert 184) - (collect-effect-time uint64 :offset-assert 192) + (collect-effect-time time-frame :offset-assert 192) (blocker entity-actor :offset-assert 200) (block-func (function vent symbol) :offset-assert 204) (pickup-handle handle :offset-assert 208) diff --git a/test/decompiler/reference/engine/game/crates_REF.gc b/test/decompiler/reference/engine/game/crates_REF.gc index 4cfcf181d8..3fb0bdb7f0 100644 --- a/test/decompiler/reference/engine/game/crates_REF.gc +++ b/test/decompiler/reference/engine/game/crates_REF.gc @@ -966,7 +966,7 @@ ) (when (not arg0) (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 12) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.04)) (suspend) ) ) @@ -991,7 +991,7 @@ (lerp-scale 1.0 0.0 (vector-vector-distance (-> self root-override trans) (target-pos 0)) 8192.0 40960.0) ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 f0-0)) 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 f0-0)) (seconds 0.3)) ) (let ((s5-7 (get-process *default-dead-pool* touch-tracker #x4000))) (when s5-7 @@ -1088,7 +1088,7 @@ (process-entity-status! self (entity-perm-status dead) #t) (process-entity-status! self (entity-perm-status complete) #t) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 1500) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 5)) (suspend) ) ) @@ -1497,7 +1497,7 @@ (when (and (and *target* (>= 327680.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5)) (rand-vu-percent? 0.03) ) (spawn (-> self part) (-> self root-override trans)) diff --git a/test/decompiler/reference/engine/game/effect-control_REF.gc b/test/decompiler/reference/engine/game/effect-control_REF.gc index 01293cfc42..fe4f41490e 100644 --- a/test/decompiler/reference/engine/game/effect-control_REF.gc +++ b/test/decompiler/reference/engine/game/effect-control_REF.gc @@ -516,10 +516,10 @@ ) (let ((a2-29 (-> *display* frames (-> *display* last-screen) frame run-time))) (cond - ((< 9000 (the-as int a2-29)) + ((< 9000 a2-29) (set! a1-42 (* a1-42 4)) ) - ((< 7000 (the-as int a2-29)) + ((< 7000 a2-29) (set! a1-42 (* a1-42 2)) ) ) @@ -601,7 +601,7 @@ (set! s1-0 (sound-name-with-material 'flut-land arg4 "")) ) (('effect-land-poof) - (when (< (the-as int a0-4) 9000) + (when (< a0-4 9000) (let* ((a0-13 obj) (t9-8 (method-of-object a0-13 dummy-10)) (v1-15 (-> arg4 material)) @@ -668,7 +668,7 @@ ) ) (('effect-run-poof) - (when (< (the-as int a0-4) 9000) + (when (< a0-4 9000) (let* ((a0-14 obj) (t9-9 (method-of-object a0-14 dummy-10)) (v1-20 (-> arg4 material)) @@ -800,7 +800,7 @@ ) ) (('effect-just-poof) - (when (< (the-as int a0-4) 9000) + (when (< a0-4 9000) (let* ((a0-16 obj) (t9-11 (method-of-object a0-16 dummy-10)) (v1-29 (-> arg4 material)) diff --git a/test/decompiler/reference/engine/game/fact-h_REF.gc b/test/decompiler/reference/engine/game/fact-h_REF.gc index 60c2d5ff1a..635c3ba0ce 100644 --- a/test/decompiler/reference/engine/game/fact-h_REF.gc +++ b/test/decompiler/reference/engine/game/fact-h_REF.gc @@ -59,7 +59,7 @@ :health-small-inc 1.0 :buzzer-max-default 7.0 :buzzer-single-inc 1.0 - :suck-bounce-dist (meters 18.0) + :suck-bounce-dist (meters 18) :suck-suck-dist (meters 7.5) ) ) @@ -110,7 +110,7 @@ (pickup-amount float :offset-assert 12) (pickup-spawn-amount float :offset-assert 16) (options fact-options :offset-assert 24) - (fade-time int64 :offset-assert 32) + (fade-time time-frame :offset-assert 32) ) :method-count-assert 12 :size-assert #x28 @@ -137,23 +137,23 @@ ;; definition of type fact-info-target (deftype fact-info-target (fact-info) - ((eco-type int32 :offset-assert 40) - (eco-level float :offset-assert 44) - (eco-pickup-time uint64 :offset-assert 48) - (eco-timeout seconds :offset-assert 56) - (health float :offset-assert 64) - (health-max float :offset-assert 68) - (buzzer float :offset-assert 72) - (buzzer-max float :offset-assert 76) - (eco-pill float :offset-assert 80) - (eco-pill-max float :offset-assert 84) - (health-pickup-time uint64 :offset-assert 88) - (eco-source handle :offset-assert 96) - (eco-source-time uint64 :offset-assert 104) - (money-pickup-time uint64 :offset-assert 112) - (buzzer-pickup-time uint64 :offset-assert 120) - (fuel-cell-pickup-time uint64 :offset-assert 128) - (eco-pill-pickup-time uint64 :offset-assert 136) + ((eco-type pickup-type :offset-assert 40) + (eco-level float :offset-assert 44) + (eco-pickup-time time-frame :offset-assert 48) + (eco-timeout seconds :offset-assert 56) + (health float :offset-assert 64) + (health-max float :offset-assert 68) + (buzzer float :offset-assert 72) + (buzzer-max float :offset-assert 76) + (eco-pill float :offset-assert 80) + (eco-pill-max float :offset-assert 84) + (health-pickup-time time-frame :offset-assert 88) + (eco-source handle :offset-assert 96) + (eco-source-time time-frame :offset-assert 104) + (money-pickup-time time-frame :offset-assert 112) + (buzzer-pickup-time time-frame :offset-assert 120) + (fuel-cell-pickup-time time-frame :offset-assert 128) + (eco-pill-pickup-time time-frame :offset-assert 136) ) :method-count-assert 12 :size-assert #x90 @@ -268,7 +268,7 @@ ) (set! (-> obj options) (res-lump-value ent 'options fact-options)) (if (logtest? (fact-options fade respawn) (-> obj options)) - (set! (-> obj fade-time) (the int (* 300.0 (res-lump-float ent 'timeout)))) + (set! (-> obj fade-time) (the-as time-frame (the int (* 300.0 (res-lump-float ent 'timeout))))) ) ) (label cfg-10) diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index a68828ea5b..4504bfb0bd 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -17,7 +17,7 @@ (water water-control :offset-assert 156) (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) - (state-time int64 :offset-assert 168) + (state-time time-frame :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 @@ -124,21 +124,21 @@ ;; definition of type attack-info (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 time-frame :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 diff --git a/test/decompiler/reference/engine/game/game-info-h_REF.gc b/test/decompiler/reference/engine/game/game-info-h_REF.gc index cc5166b3ce..cd4c57a192 100644 --- a/test/decompiler/reference/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-info-h_REF.gc @@ -177,18 +177,18 @@ (total-deaths int32 :offset-assert 156) (continue-deaths int32 :offset-assert 160) (fuel-cell-deaths int32 :offset-assert 164) - (game-start-time int64 :offset-assert 168) - (continue-time int64 :offset-assert 176) - (death-time int64 :offset-assert 184) - (hit-time int64 :offset-assert 192) - (fuel-cell-pickup-time int64 :offset-assert 200) - (fuel-cell-time (array int64) :offset-assert 208) - (enter-level-time (array int64) :offset-assert 212) - (in-level-time (array int64) :offset-assert 216) - (blackout-time int64 :offset-assert 224) - (letterbox-time int64 :offset-assert 232) - (hint-play-time int64 :offset-assert 240) - (display-text-time int64 :offset-assert 248) + (game-start-time time-frame :offset-assert 168) + (continue-time time-frame :offset-assert 176) + (death-time time-frame :offset-assert 184) + (hit-time time-frame :offset-assert 192) + (fuel-cell-pickup-time time-frame :offset-assert 200) + (fuel-cell-time (array time-frame) :offset-assert 208) + (enter-level-time (array time-frame) :offset-assert 212) + (in-level-time (array time-frame) :offset-assert 216) + (blackout-time time-frame :offset-assert 224) + (letterbox-time time-frame :offset-assert 232) + (hint-play-time time-frame :offset-assert 240) + (display-text-time time-frame :offset-assert 248) (display-text-handle handle :offset-assert 256) (death-movie-tick int32 :offset-assert 264) (want-auto-save symbol :offset-assert 268) @@ -280,12 +280,13 @@ ) ;; failed to figure out what this is: -(set! gp-0 (when (or (not *game-info*) (zero? *game-info*)) - (set! gp-0 (new 'static 'game-info :mode 'debug :current-continue #f)) - (set! (-> gp-0 fuel-cell-time) (the-as (array int64) (new 'global 'boxed-array uint64 116))) - (set! (-> gp-0 enter-level-time) (the-as (array int64) (new 'global 'boxed-array uint64 32))) - (set! (-> gp-0 in-level-time) (the-as (array int64) (new 'global 'boxed-array uint64 32))) - (set! *game-info* gp-0) - gp-0 - ) +(set! gp-0 + (when (or (not *game-info*) (zero? *game-info*)) + (set! gp-0 (new 'static 'game-info :mode 'debug :current-continue #f)) + (set! (-> gp-0 fuel-cell-time) (the-as (array time-frame) (new 'global 'boxed-array uint64 116))) + (set! (-> gp-0 enter-level-time) (the-as (array time-frame) (new 'global 'boxed-array uint64 32))) + (set! (-> gp-0 in-level-time) (the-as (array time-frame) (new 'global 'boxed-array uint64 32))) + (set! *game-info* gp-0) + gp-0 + ) ) diff --git a/test/decompiler/reference/engine/game/game-info_REF.gc b/test/decompiler/reference/engine/game/game-info_REF.gc index c7ecd813ea..a5746a74b6 100644 --- a/test/decompiler/reference/engine/game/game-info_REF.gc +++ b/test/decompiler/reference/engine/game/game-info_REF.gc @@ -248,7 +248,7 @@ (set! (-> *level* border?) #f) (set! (-> *setting-control* default border-mode) #f) (set! *spawn-actors* #f) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (send-event *target* 'reset) (let ((s3-1 (get-process *4k-dead-pool* process #x4000))) (when s3-1 @@ -422,12 +422,12 @@ (when (or (not arg0) (= arg0 'eco)) (set! (-> obj eco-timeout) 0) (set! (-> obj eco-level) 0.0) - (set! (-> obj eco-pickup-time) (the-as uint (-> *display* game-frame-counter))) + (set! (-> obj eco-pickup-time) (-> *display* game-frame-counter)) ) (when (or (not arg0) (= arg0 'health)) (set! (-> obj health-max) (-> *FACT-bank* health-max-default)) (set! (-> obj health) (-> obj health-max)) - (set! (-> obj health-pickup-time) (the-as uint -30000)) + (set! (-> obj health-pickup-time) (seconds -100)) ) (when (or (not arg0) (= arg0 'buzzer)) (set! (-> obj buzzer-max) (-> *FACT-bank* buzzer-max-default)) @@ -448,13 +448,13 @@ ((>= amount 0.0) (when (< 0.0 amount) (if (or (!= (handle->process source-handle) (handle->process (-> obj eco-source))) - (>= (- (-> *display* base-frame-counter) (the-as int (-> obj eco-source-time))) 150) + (>= (- (-> *display* base-frame-counter) (-> obj eco-source-time)) (seconds 0.5)) ) (sound-play-by-name (static-sound-name "get-green-eco") (new-sound-id) 1024 0 0 1 #t) ) (when (handle->process source-handle) (set! (-> obj eco-source) source-handle) - (set! (-> obj eco-source-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj eco-source-time) (-> *display* base-frame-counter)) ) ) (if (= (-> obj health) (-> obj health-max)) @@ -465,7 +465,7 @@ (process->handle (-> obj process)) ) ) - (set! (-> obj health-pickup-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj health-pickup-time) (-> *display* base-frame-counter)) (set! (-> obj health) (seek (-> obj health) (-> obj health-max) amount)) ) (else @@ -490,7 +490,7 @@ ) (((pickup-type eco-pill)) (when (>= amount 0.0) - (set! (-> obj eco-pill-pickup-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj eco-pill-pickup-time) (-> *display* base-frame-counter)) (set! (-> obj eco-pill) (seek (-> obj eco-pill) (-> obj eco-pill-max) amount)) (when (and (>= (-> obj eco-pill) (-> *FACT-bank* eco-pill-max-default)) (< (-> obj health) (-> obj health-max))) (set! (-> obj eco-pill) (- (-> obj eco-pill) (-> *FACT-bank* eco-pill-max-default))) @@ -506,10 +506,10 @@ ) (((pickup-type money)) (when (< 0.0 amount) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> obj money-pickup-time))) 15) + (if (>= (- (-> *display* base-frame-counter) (-> obj money-pickup-time)) (seconds 0.05)) (sound-play-by-name (static-sound-name "money-pickup") (new-sound-id) 1024 0 0 1 #t) ) - (set! (-> obj money-pickup-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj money-pickup-time) (-> *display* base-frame-counter)) ) (adjust (-> (the-as target (-> obj process)) game) 'money amount source-handle) ) @@ -519,7 +519,7 @@ (>= (the-as uint 1) (the-as uint s4-2)) ) ) - (set! (-> obj fuel-cell-pickup-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj fuel-cell-pickup-time) (-> *display* base-frame-counter)) ) ) (adjust (-> (the-as target (-> obj process)) game) 'fuel-cell amount source-handle) @@ -527,7 +527,7 @@ (((pickup-type buzzer)) (let ((buzz-count (adjust (-> (the-as target (-> obj process)) game) 'buzzer amount source-handle))) (if (!= buzz-count (-> obj buzzer)) - (set! (-> obj buzzer-pickup-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj buzzer-pickup-time) (-> *display* base-frame-counter)) ) (set! (-> obj buzzer) buzz-count) ) @@ -547,36 +547,39 @@ (set! (-> obj eco-timeout) 0) 0 ) - (set! (-> obj eco-type) (the-as int kind)) + (set! (-> obj eco-type) kind) (let ((eco-lev (-> obj eco-level))) (set! (-> obj eco-level) 1.0) (when (and (= eco-lev 0.0) (< 0.0 (-> obj eco-level))) - (set! (-> obj eco-pickup-time) (the-as uint (-> *display* game-frame-counter))) + (set! (-> obj eco-pickup-time) (-> *display* game-frame-counter)) (send-event (-> obj process) 'reset-collide) ) (set! (-> obj eco-timeout) - (min - (the-as int (+ (-> obj eco-timeout) (* (the-as int (-> *FACT-bank* eco-single-timeout)) (the int amount)))) - (the-as int (+ (-> *FACT-bank* eco-full-timeout) - (- (-> *display* game-frame-counter) (the-as int (-> obj eco-pickup-time))) - ) - ) + (the-as + seconds + (min + (the-as int (+ (-> obj eco-timeout) (* (the-as int (-> *FACT-bank* eco-single-timeout)) (the int amount)))) + (the-as + int + (+ (-> *FACT-bank* eco-full-timeout) (- (-> *display* game-frame-counter) (-> obj eco-pickup-time))) + ) + ) ) ) - (if (>= (the-as int (- (-> obj eco-timeout) - (the-as uint (- (-> *display* game-frame-counter) (the-as int (-> obj eco-pickup-time)))) - ) - ) + (if (>= (the-as + int + (- (-> obj eco-timeout) (the-as uint (- (-> *display* game-frame-counter) (-> obj eco-pickup-time)))) + ) (the-as int (-> *FACT-bank* eco-full-timeout)) ) (set! (-> obj eco-level) 2.0) ) (when (not (and (= (handle->process source-handle) (handle->process (-> obj eco-source))) - (< (- (-> *display* base-frame-counter) (the-as int (-> obj eco-source-time))) 150) + (< (- (-> *display* base-frame-counter) (-> obj eco-source-time)) (seconds 0.5)) ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 60) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 17 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2)) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 17 (seconds 0.2)) (case kind (((pickup-type eco-blue)) (sound-play-by-name (static-sound-name "get-blue-eco") (new-sound-id) 1024 0 0 1 #t) @@ -593,7 +596,7 @@ ) ) (set! (-> obj eco-source) source-handle) - (set! (-> obj eco-source-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj eco-source-time) (-> *display* base-frame-counter)) (when (= kind (pickup-type eco-blue)) (when (= eco-lev 0.0) (let ((s5-1 (-> obj process))) @@ -632,7 +635,7 @@ s4-4 (lambda ((arg0 process-drawable)) (let ((s5-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-0) 180) + (until (>= (- (-> *display* base-frame-counter) s5-0) (seconds 0.6)) (send-event arg0 'effect 'eco-blue) (suspend) ) diff --git a/test/decompiler/reference/engine/game/game-save_REF.gc b/test/decompiler/reference/engine/game/game-save_REF.gc index 87868a612c..b46f74a558 100644 --- a/test/decompiler/reference/engine/game/game-save_REF.gc +++ b/test/decompiler/reference/engine/game/game-save_REF.gc @@ -891,7 +891,7 @@ (case (-> data elt-type) (((game-save-elt base-time)) (let ((old-base-frame (-> *display* base-frame-counter))) - (set! (-> *display* base-frame-counter) (the-as int (-> data user-uint64))) + (set! (-> *display* base-frame-counter) (the-as time-frame (-> data user-uint64))) (set! (-> *display* old-base-frame-counter) (+ (-> *display* base-frame-counter) -1)) (let ((frame-counter-diff (- (-> *display* base-frame-counter) old-base-frame))) (if (nonzero? (-> obj blackout-time)) @@ -911,15 +911,15 @@ (buzz-stop! 0) ) (((game-save-elt game-time)) - (set! (-> *display* game-frame-counter) (the-as int (-> data user-uint64))) + (set! (-> *display* game-frame-counter) (the-as time-frame (-> data user-uint64))) (set! (-> *display* old-game-frame-counter) (+ (-> *display* game-frame-counter) -1)) ) (((game-save-elt real-time)) - (set! (-> *display* real-frame-counter) (the-as int (-> data user-uint64))) + (set! (-> *display* real-frame-counter) (the-as time-frame (-> data user-uint64))) (set! (-> *display* old-real-frame-counter) (+ (-> *display* real-frame-counter) -1)) ) (((game-save-elt integral-time)) - (set! (-> *display* integral-frame-counter) (the-as int (-> data user-uint64))) + (set! (-> *display* integral-frame-counter) (the-as time-frame (-> data user-uint64))) (set! (-> *display* old-integral-frame-counter) (+ (-> *display* integral-frame-counter) -1)) ) (((game-save-elt continue)) @@ -1001,10 +1001,10 @@ (let ((v1-65 (&+ (the-as pointer data) 16))) (dotimes (a0-99 (-> data elt-count)) (set! (-> obj hint-control a0-99 start-time) - (the-as int (-> (the-as (pointer uint64) (&+ v1-65 (* (* a0-99 4) 8))))) + (the-as time-frame (-> (the-as (pointer uint64) (&+ v1-65 (* (* a0-99 4) 8))))) ) (set! (-> obj hint-control a0-99 last-time-called) - (the-as int (-> (the-as (pointer uint64) (&+ v1-65 (* (+ (* a0-99 4) 1) 8))))) + (the-as time-frame (-> (the-as (pointer uint64) (&+ v1-65 (* (+ (* a0-99 4) 1) 8))))) ) (set! (-> obj hint-control a0-99 num-attempts) (-> (the-as (pointer int8) (&+ (the-as (pointer uint8) v1-65) (+ (* a0-99 32) 16)))) @@ -1033,19 +1033,19 @@ (set! (-> obj fuel-cell-deaths) (the-as int (-> data user-uint64))) ) (((game-save-elt game-start-time)) - (set! (-> obj game-start-time) (the-as int (-> data user-uint64))) + (set! (-> obj game-start-time) (the-as time-frame (-> data user-uint64))) ) (((game-save-elt continue-time)) - (set! (-> obj continue-time) (the-as int (-> data user-uint64))) + (set! (-> obj continue-time) (the-as time-frame (-> data user-uint64))) ) (((game-save-elt death-time)) - (set! (-> obj death-time) (the-as int (-> data user-uint64))) + (set! (-> obj death-time) (the-as time-frame (-> data user-uint64))) ) (((game-save-elt hit-time)) - (set! (-> obj hit-time) (the-as int (-> data user-uint64))) + (set! (-> obj hit-time) (the-as time-frame (-> data user-uint64))) ) (((game-save-elt fuel-cell-pickup-time)) - (set! (-> obj fuel-cell-pickup-time) (the-as int (-> data user-uint64))) + (set! (-> obj fuel-cell-pickup-time) (the-as time-frame (-> data user-uint64))) ) (((game-save-elt deaths-per-level)) (let ((v1-79 (min 32 (-> data elt-count)))) @@ -1058,7 +1058,7 @@ (let ((v1-83 (min 32 (-> data elt-count)))) (dotimes (a0-126 v1-83) (set! (-> obj enter-level-time a0-126) - (the-as int (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-126 8))))) + (the-as time-frame (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-126 8))))) ) ) ) @@ -1067,7 +1067,7 @@ (let ((v1-87 (min 32 (-> data elt-count)))) (dotimes (a0-130 v1-87) (set! (-> obj in-level-time a0-130) - (the-as int (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-130 8))))) + (the-as time-frame (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-130 8))))) ) ) ) @@ -1076,7 +1076,7 @@ (let ((v1-92 (min 32 (-> data elt-count)))) (dotimes (a0-133 v1-92) (set! (-> obj fuel-cell-time a0-133) - (the-as int (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-133 8))))) + (the-as time-frame (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-133 8))))) ) ) ) @@ -1198,7 +1198,7 @@ (save game-save :offset-assert 136) (info mc-slot-info :inline :offset-assert 140) (notify handle :offset-assert 440) - (state-time int64 :offset-assert 448) + (state-time time-frame :offset-assert 448) (part sparticle-launch-control :offset-assert 456) ) :heap-base #x160 @@ -1389,7 +1389,7 @@ auto-save-post (set! (-> self state-time) (-> *display* real-frame-counter)) (let ((a0-1 (reserve-alloc *art-control*))) (while (not a0-1) - (if (>= (- (-> *display* real-frame-counter) (-> self state-time)) #x4650) + (if (>= (- (-> *display* real-frame-counter) (-> self state-time)) (seconds 60)) (go-virtual error (mc-status-code no-memory)) ) (suspend) @@ -1841,7 +1841,7 @@ auto-save-post (('auto-save 'error) (set! (-> self state-time) (-> *display* real-frame-counter)) (set! (-> *game-info* auto-save-status) arg0) - (while (< (- (-> *display* real-frame-counter) (-> self state-time)) 60) + (while (< (- (-> *display* real-frame-counter) (-> self state-time)) (seconds 0.2)) (if (not (progress-allowed?)) (set! (-> self state-time) (-> *display* real-frame-counter)) ) @@ -1884,7 +1884,7 @@ auto-save-post (when (= (-> *game-info* auto-save-count) 1) (set! (-> self event-hook) (-> (method-of-object self error) event)) (set! (-> self state-time) (-> *display* real-frame-counter)) - (while (< (- (-> *display* real-frame-counter) (-> self state-time)) 60) + (while (< (- (-> *display* real-frame-counter) (-> self state-time)) (seconds 0.2)) (if (not (progress-allowed?)) (set! (-> self state-time) (-> *display* real-frame-counter)) ) 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 de579568ca..a07c3ccbbb 100644 --- a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc @@ -89,12 +89,12 @@ (target handle :offset-assert 120) (callback (function part-tracker vector) :offset-assert 128) (linger-callback (function part-tracker vector) :offset-assert 132) - (duration uint64 :offset-assert 136) - (linger-duration uint64 :offset-assert 144) - (start-time uint64 :offset-assert 152) + (duration time-frame :offset-assert 136) + (linger-duration time-frame :offset-assert 144) + (start-time time-frame :offset-assert 152) (offset vector :inline :offset-assert 160) (userdata uint64 :offset-assert 176) - (user-time int64 2 :offset-assert 184) + (user-time time-frame 2 :offset-assert 184) (user-vector vector 2 :inline :offset-assert 208) (user-handle uint32 2 :offset-assert 240) ) @@ -141,7 +141,7 @@ (pov-target handle :offset-assert 160) (work-process handle :offset-assert 168) (anim-process handle :offset-assert 176) - (start-time int64 :offset-assert 184) + (start-time time-frame :offset-assert 184) (callback basic :offset-assert 192) (userdata basic :offset-assert 196) (message basic :offset-assert 200) @@ -194,7 +194,7 @@ ;; definition of type touch-tracker (deftype touch-tracker (process-drawable) ((root-override collide-shape-moving :offset 112) - (duration uint64 :offset-assert 176) + (duration time-frame :offset-assert 176) (target handle :offset-assert 184) (event symbol :offset-assert 192) (run-function (function object) :offset-assert 196) diff --git a/test/decompiler/reference/engine/game/generic-obs_REF.gc b/test/decompiler/reference/engine/game/generic-obs_REF.gc index a5fddff1c9..31edb3625f 100644 --- a/test/decompiler/reference/engine/game/generic-obs_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs_REF.gc @@ -125,7 +125,7 @@ (suspend) ) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 150) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.5)) (suspend) ) ) @@ -692,8 +692,8 @@ (defstate part-tracker-process (part-tracker) :code (behavior () - (set! (-> self start-time) (the-as uint (-> *display* base-frame-counter))) - (while (< (- (-> *display* base-frame-counter) (the-as int (-> self start-time))) (the-as int (-> self duration))) + (set! (-> self start-time) (-> *display* base-frame-counter)) + (while (< (- (-> *display* base-frame-counter) (-> self start-time)) (-> self duration)) (let ((gp-0 (handle->process (-> self target)))) (when gp-0 (if (and gp-0 (type-type? (-> gp-0 type) process-drawable) (nonzero? (-> (the-as process-drawable gp-0) root))) @@ -710,7 +710,7 @@ (suspend) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) (the-as int (-> self linger-duration))) + (until (>= (- (-> *display* base-frame-counter) gp-2) (-> self linger-duration)) (if (-> self linger-callback) ((-> self linger-callback) self) ) @@ -731,7 +731,7 @@ ;; INFO: Return type mismatch object vs none. ;; Used lq/sq (defbehavior part-tracker-init part-tracker ((arg0 sparticle-launch-group) - (arg1 int) + (arg1 time-frame) (arg2 (function part-tracker none)) (arg3 (pointer process-drawable)) (arg4 process) @@ -751,12 +751,12 @@ arg1 ) (else - (the-as int (-> arg0 duration)) + (the-as time-frame (-> arg0 duration)) ) ) ) - (set! (-> self duration) (the-as uint arg1)) - (set! (-> self linger-duration) (-> arg0 linger-duration)) + (set! (-> self duration) (the-as time-frame arg1)) + (set! (-> self linger-duration) (the-as time-frame (-> arg0 linger-duration))) (set! (-> self part) (create-launch-control arg0 self)) (go part-tracker-process) (none) @@ -1595,7 +1595,7 @@ (spring-height meters :offset-assert 176) (camera state :offset-assert 180) (active-distance float :offset-assert 184) - (seek-time uint64 :offset-assert 192) + (seek-time time-frame :offset-assert 192) (dest vector :inline :offset-assert 208) (sound-id sound-id :offset-assert 224) ) @@ -1959,7 +1959,7 @@ (when (not (paused?)) (vector--float*! (-> self trans) (-> *camera* tpos-curr) (-> *camera* local-down) 28672.0) (send-event *camera* 'teleport) - (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) 300)) + (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1))) (send-event *camera* 'change-state *camera-base-mode* 150) ) ) @@ -2067,7 +2067,7 @@ (set! (-> self trans x) (-> *camera* tpos-curr x)) (set! (-> self trans z) (-> *camera* tpos-curr z)) (vector+! (-> self trans) (-> self trans) (-> self view-flat)) - (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) 300)) + (if (and (-> *camera* on-ground) (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1))) (send-event *camera* 'change-state *camera-base-mode* 150) ) ) @@ -2211,7 +2211,7 @@ (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) ) ) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) ) (send-event *target* 'launch (-> self spring-height) (-> self camera) (-> self dest) (-> self seek-time)) ) @@ -2285,7 +2285,7 @@ (let ((v1-29 (res-lump-struct arg0 'alt-vector vector))) (when v1-29 (set-vector! (-> obj dest) (-> v1-29 x) (-> v1-29 y) (-> v1-29 z) 1.0) - (set! (-> obj seek-time) (the-as uint (the int (* 300.0 (-> v1-29 w))))) + (set! (-> obj seek-time) (the-as time-frame (the int (* 300.0 (-> v1-29 w))))) ) ) (set! (-> obj sound-id) (new-sound-id)) @@ -2347,7 +2347,7 @@ (let ((v1-34 (res-lump-struct (-> self entity) 'alt-vector vector))) (when v1-34 (set-vector! (-> self dest) (-> v1-34 x) (-> v1-34 y) (-> v1-34 z) 1.0) - (set! (-> self seek-time) (the-as uint (the int (* 300.0 (-> v1-34 w))))) + (set! (-> self seek-time) (the-as time-frame (the int (* 300.0 (-> v1-34 w))))) ) ) (set! (-> self sound-id) (new-sound-id)) @@ -2511,7 +2511,7 @@ ;; definition for function touch-tracker-init ;; INFO: Return type mismatch object vs none. ;; Used lq/sq -(defbehavior touch-tracker-init touch-tracker ((arg0 vector) (arg1 float) (arg2 uint)) +(defbehavior touch-tracker-init touch-tracker ((arg0 vector) (arg1 float) (arg2 time-frame)) (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) @@ -2538,7 +2538,7 @@ (set! (-> self run-function) (lambda :behavior touch-tracker () - (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self duration))) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (-> self duration)) ) ) (set! (-> self event-hook) (-> touch-tracker-idle event)) diff --git a/test/decompiler/reference/engine/game/main-h_REF.gc b/test/decompiler/reference/engine/game/main-h_REF.gc index 5ca3c8ba0c..0731bc02e7 100644 --- a/test/decompiler/reference/engine/game/main-h_REF.gc +++ b/test/decompiler/reference/engine/game/main-h_REF.gc @@ -285,8 +285,8 @@ ;; definition of type frame-stats (deftype frame-stats (structure) - ((field-time int64 2 :offset-assert 0) - (field int32 :offset-assert 16) + ((field-time time-frame 2 :offset-assert 0) + (field int32 :offset-assert 16) ) :method-count-assert 9 :size-assert #x14 diff --git a/test/decompiler/reference/engine/game/main_REF.gc b/test/decompiler/reference/engine/game/main_REF.gc index 4c30cb4bd0..9b63b6757a 100644 --- a/test/decompiler/reference/engine/game/main_REF.gc +++ b/test/decompiler/reference/engine/game/main_REF.gc @@ -2,11 +2,10 @@ (in-package goal) ;; definition for function set-letterbox-frames -(defun set-letterbox-frames ((arg0 int)) - (let ((v0-0 (+ (-> *display* base-frame-counter) arg0))) - (set! (-> *game-info* letterbox-time) v0-0) - v0-0 - ) +;; INFO: Return type mismatch time-frame vs none. +(defun set-letterbox-frames ((arg0 time-frame)) + (set! (-> *game-info* letterbox-time) (+ (-> *display* base-frame-counter) arg0)) + (none) ) ;; definition for function letterbox @@ -36,19 +35,15 @@ ) ;; definition for function set-blackout-frames -(defun set-blackout-frames ((arg0 int)) - (local-vars (v0-0 int)) - (cond - ((zero? arg0) - (set! v0-0 (-> *display* base-frame-counter)) - (set! (-> *game-info* blackout-time) v0-0) - ) - (else - (set! v0-0 (max (-> *game-info* blackout-time) (+ (-> *display* base-frame-counter) arg0))) - (set! (-> *game-info* blackout-time) v0-0) +;; INFO: Return type mismatch time-frame vs none. +(defun set-blackout-frames ((arg0 time-frame)) + (if (zero? arg0) + (set! (-> *game-info* blackout-time) (-> *display* base-frame-counter)) + (set! (-> *game-info* blackout-time) + (max (-> *game-info* blackout-time) (+ (-> *display* base-frame-counter) arg0)) + ) ) - ) - v0-0 + (none) ) ;; definition for function blackout @@ -917,25 +912,27 @@ (let ((t9-28 (method-of-type process activate))) (t9-28 game-end-proc *default-pool* 'process (the-as pointer #x70004000)) ) - (run-next-time-in-process game-end-proc (lambda :behavior process - () - (set-blackout-frames #x7530) - (set! (-> *setting-control* default allow-pause) #f) - (set! (-> *setting-control* default allow-progress) #f) - (copy-settings-from-target! *setting-control*) - (set! (-> *setting-control* default sfx-volume) 0.0) - (set! (-> *setting-control* default music-volume) 0.0) - (set! (-> *setting-control* default dialog-volume) 0.0) - (set! (-> *setting-control* default ambient-volume) 0.0) - (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 30) - (suspend) - ) - ) - (kernel-shutdown) - (none) - ) - ) + (run-next-time-in-process + game-end-proc + (lambda :behavior process + () + (set-blackout-frames (seconds 100)) + (set! (-> *setting-control* default allow-pause) #f) + (set! (-> *setting-control* default allow-progress) #f) + (copy-settings-from-target! *setting-control*) + (set! (-> *setting-control* default sfx-volume) 0.0) + (set! (-> *setting-control* default music-volume) 0.0) + (set! (-> *setting-control* default dialog-volume) 0.0) + (set! (-> *setting-control* default ambient-volume) 0.0) + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.1)) + (suspend) + ) + ) + (kernel-shutdown) + (none) + ) + ) (-> game-end-proc ppointer) ) (set! *master-exit* #t) diff --git a/test/decompiler/reference/engine/game/powerups_REF.gc b/test/decompiler/reference/engine/game/powerups_REF.gc index 9a73ab26a3..7d4e00372f 100644 --- a/test/decompiler/reference/engine/game/powerups_REF.gc +++ b/test/decompiler/reference/engine/game/powerups_REF.gc @@ -4,7 +4,13 @@ ;; definition for function cloud-track ;; INFO: Return type mismatch symbol vs none. ;; Used lq/sq -(defbehavior cloud-track process ((arg0 process-tree) (arg1 process-tree) (arg2 (function vector none)) (arg3 int) (arg4 int) (arg5 int)) +(defbehavior cloud-track process ((arg0 process-tree) + (arg1 process-tree) + (arg2 (function vector none)) + (arg3 time-frame) + (arg4 time-frame) + (arg5 time-frame) + ) (change-parent self arg0) (let ((s1-1 (process->handle arg0)) (s2-1 (process->handle arg1)) @@ -590,7 +596,7 @@ (cond ((and (= (-> self control ground-pat material) (pat-material ice)) (and (>= (-> self control unknown-float01) 204.8) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 15) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.05)) ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 74)))) @@ -683,8 +689,8 @@ (set! (-> a0-33 settings shadow-dir z) (-> v1-67 z)) ) (when (and (!= (-> self fact-info-target eco-level) 0.0) - (>= (- (-> *display* game-frame-counter) (the-as int (-> self fact-info-target eco-pickup-time))) - (the-as int (-> self fact-info-target eco-timeout)) + (>= (- (-> *display* game-frame-counter) (-> self fact-info-target eco-pickup-time)) + (the-as time-frame (-> self fact-info-target eco-timeout)) ) ) (set! (-> self fact-info-target eco-level) 0.0) @@ -701,10 +707,9 @@ (lerp-scale 0.0 1.0 - (the float - (- (-> self fact-info-target eco-timeout) - (the-as uint (- (-> *display* game-frame-counter) (the-as int (-> self fact-info-target eco-pickup-time)))) - ) + (the float (- (-> self fact-info-target eco-timeout) + (the-as uint (- (-> *display* game-frame-counter) (-> self fact-info-target eco-pickup-time))) + ) ) 0.0 900.0 @@ -712,7 +717,7 @@ ) ) (case (-> self fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (change-sound! (-> self sound) (static-sound-name "yel-eco-jak")) (let ((s4-0 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) (sp-launch-particles-var @@ -741,7 +746,7 @@ ) ) ) - ((2) + (((pickup-type eco-red)) (target-danger-set! (-> self control unknown-symbol30) #t) (update-transforms! (-> self control)) (let ((a1-23 (new 'stack-no-clear 'touching-shapes-entry))) @@ -779,7 +784,7 @@ ) ) ) - ((3) + (((pickup-type eco-blue)) (change-sound! (-> self sound) (static-sound-name "blue-eco-jak")) (let ((v1-150 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) (cond @@ -835,9 +840,9 @@ 1.0 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1)) ) - ((4) + (((pickup-type eco-green)) (change-sound! (-> self sound) (static-sound-name "green-eco-jak")) (let ((s4-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) (sp-launch-particles-var diff --git a/test/decompiler/reference/engine/game/projectiles-h_REF.gc b/test/decompiler/reference/engine/game/projectiles-h_REF.gc index 4c7833e414..8b58045d72 100644 --- a/test/decompiler/reference/engine/game/projectiles-h_REF.gc +++ b/test/decompiler/reference/engine/game/projectiles-h_REF.gc @@ -10,7 +10,7 @@ (parent-base vector :inline :offset-assert 224) (parent-quat vector :inline :offset-assert 240) (base-vector vector :inline :offset-assert 256) - (timeout uint64 :offset-assert 272) + (timeout time-frame :offset-assert 272) (options uint64 :offset-assert 280) (last-target handle :offset-assert 288) (notify-handle handle :offset-assert 296) diff --git a/test/decompiler/reference/engine/game/projectiles_REF.gc b/test/decompiler/reference/engine/game/projectiles_REF.gc index c1cc0042c0..a076ab7c46 100644 --- a/test/decompiler/reference/engine/game/projectiles_REF.gc +++ b/test/decompiler/reference/engine/game/projectiles_REF.gc @@ -5,7 +5,7 @@ (deftype search-info (structure) ((point vector :inline :offset-assert 0) (best-point vector :inline :offset-assert 16) - (match-handle uint64 :offset-assert 32) + (match-handle handle :offset-assert 32) (match projectile :offset-assert 40) (best float :offset-assert 44) (radius float :offset-assert 48) @@ -730,7 +730,7 @@ :code (behavior () (let ((gp-0 #f)) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self timeout))) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (-> self timeout)) (let ((s5-0 (the int (-> *display* time-ratio)))) (set-time-ratios *display* 1.0) (countdown (s4-0 s5-0) @@ -966,7 +966,7 @@ (set! (-> self max-turn) 18204.445) (set! (-> self tween) 1.0) (set! (-> self last-target) arg4) - (set! (-> self timeout) (the-as uint 1200)) + (set! (-> self timeout) (seconds 4)) (set! (-> self options) arg3) (set! (-> self notify-handle) (the-as handle #f)) (countdown (v1-4 16) @@ -1007,7 +1007,7 @@ ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defmethod dummy-27 projectile-yellow ((obj projectile-yellow)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1)) (set! (-> obj attack-mode) 'eco-yellow) (set! (-> obj mode) 1) (set! (-> obj max-speed) (vector-length (-> obj root-override transv))) @@ -1112,8 +1112,8 @@ (set! (-> *part-id-table* 353 init-specs 16 random-rangef) (the-as float 300)) (cond ((logtest? (-> obj options) 32) - (when (>= (- (-> *display* base-frame-counter) (-> obj state-time)) 15) - (when (< (- (-> *display* base-frame-counter) (-> obj state-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> obj state-time)) (seconds 0.05)) + (when (< (- (-> *display* base-frame-counter) (-> obj state-time)) (seconds 0.5)) (set! (-> *part-id-table* 353 init-specs 16 initial-valuef) (the-as float 0)) (set! (-> *part-id-table* 353 init-specs 16 random-rangef) (the-as float 0)) 0 @@ -1233,7 +1233,7 @@ ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defmethod dummy-27 projectile-blue ((obj projectile-blue)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1)) (sound-play-by-name (static-sound-name "blue-eco-on") (new-sound-id) 1024 0 0 1 #t) (set! (-> obj mode) 2) (set! (-> obj max-speed) (-> *TARGET-bank* yellow-projectile-speed)) diff --git a/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc b/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc index f83d664590..7fd05175ad 100644 --- a/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc @@ -3,14 +3,14 @@ ;; definition of type level-hint-control (deftype level-hint-control (structure) - ((delay-before-playing uint64 :offset-assert 0) - (id uint32 :offset-assert 8) - (num-attempts-before-playing int8 :offset-assert 12) - (num-success-before-killing int8 :offset-assert 13) - (num-attempts int8 :offset-assert 14) - (num-success int8 :offset-assert 15) - (start-time int64 :offset-assert 16) - (last-time-called int64 :offset-assert 24) + ((delay-before-playing time-frame :offset-assert 0) + (id game-text-id :offset-assert 8) + (num-attempts-before-playing int8 :offset-assert 12) + (num-success-before-killing int8 :offset-assert 13) + (num-attempts int8 :offset-assert 14) + (num-success int8 :offset-assert 15) + (start-time time-frame :offset-assert 16) + (last-time-called time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -33,8 +33,8 @@ ;; definition of type task-hint-control (deftype task-hint-control (structure) - ((task game-task :offset-assert 0) - (delay int64 :offset-assert 8) + ((task game-task :offset-assert 0) + (delay time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 diff --git a/test/decompiler/reference/engine/game/task/hint-control_REF.gc b/test/decompiler/reference/engine/game/task/hint-control_REF.gc index b0089abe45..627ee656cf 100644 --- a/test/decompiler/reference/engine/game/task/hint-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control_REF.gc @@ -2,95 +2,166 @@ (in-package goal) ;; failed to figure out what this is: -(set! (-> *game-info* hint-control) - (the-as - (array level-hint-control) - (new - 'static - 'boxed-array - :type level-hint-control :length 25 :allocated-length 25 - (new 'static 'level-hint-control :id #x917 :num-attempts-before-playing 1 :num-success-before-killing 3) - (new 'static 'level-hint-control :id #x90a :num-attempts-before-playing 3 :num-success-before-killing -1) - (new 'static 'level-hint-control :id #x284 :num-attempts-before-playing 3 :num-success-before-killing 3) - (new 'static 'level-hint-control :id #x285 :num-attempts-before-playing 1 :num-success-before-killing 1) - (new 'static 'level-hint-control :id #x251 :num-attempts-before-playing 1 :num-success-before-killing 1) - (new 'static 'level-hint-control :id #x2af :num-attempts-before-playing 1 :num-success-before-killing 1) - (new 'static 'level-hint-control - :delay-before-playing #x384 - :id #x239 - :num-attempts-before-playing 1 - :num-success-before-killing 1 - ) - (new 'static 'level-hint-control - :delay-before-playing #x5dc - :id #x29d - :num-attempts-before-playing 1 - :num-success-before-killing -1 - ) - (new 'static 'level-hint-control - :delay-before-playing #x384 - :id #x25b - :num-attempts-before-playing 1 - :num-success-before-killing -1 - ) - (new 'static 'level-hint-control :id #x2a4 :num-attempts-before-playing 3 :num-success-before-killing 1) - (new 'static 'level-hint-control - :delay-before-playing #x384 - :id #x2aa - :num-attempts-before-playing 1 - :num-success-before-killing 1 - ) - (new 'static 'level-hint-control - :delay-before-playing #x5dc - :id #x33a - :num-attempts-before-playing 1 - :num-success-before-killing 1 - ) - (new 'static 'level-hint-control - :delay-before-playing #x1194 - :id #x34b - :num-attempts-before-playing 3 - :num-success-before-killing 2 - ) - (new 'static 'level-hint-control - :delay-before-playing #x4650 - :id #x34a - :num-attempts-before-playing 3 - :num-success-before-killing -1 - ) - (new 'static 'level-hint-control :id #x34d :num-attempts-before-playing 3 :num-success-before-killing -1) - (new 'static 'level-hint-control :id #x345 :num-attempts-before-playing 3 :num-success-before-killing 2) - (new 'static 'level-hint-control :id #x352 :num-attempts-before-playing 1 :num-success-before-killing 1) - (new 'static 'level-hint-control - :delay-before-playing #x2328 - :id #x347 - :num-attempts-before-playing 3 - :num-success-before-killing 1 - ) - (new 'static 'level-hint-control :id #x34e :num-attempts-before-playing 3 :num-success-before-killing -1) - (new 'static 'level-hint-control :id #x444 :num-attempts-before-playing 5 :num-success-before-killing -1) - (new 'static 'level-hint-control - :delay-before-playing #x384 - :id #x438 - :num-attempts-before-playing 1 - :num-success-before-killing -1 - ) - (new 'static 'level-hint-control :id #x433 :num-attempts-before-playing 4 :num-success-before-killing -1) - (new 'static 'level-hint-control :id #x70d :num-attempts-before-playing 1 :num-success-before-killing 2) - (new 'static 'level-hint-control - :delay-before-playing #x5dc - :id #x806 - :num-attempts-before-playing 1 - :num-success-before-killing 1 - ) - (new 'static 'level-hint-control - :delay-before-playing #x5dc - :id #x809 - :num-attempts-before-playing 1 - :num-success-before-killing 1 - ) - ) - ) +(set! (-> *game-info* hint-control) (new + 'static + 'boxed-array + :type level-hint-control :length 25 :allocated-length 25 + (new 'static 'level-hint-control + :id + (game-text-id sage-voicebox-hint-crate-iron) + :num-attempts-before-playing 1 + :num-success-before-killing 3 + ) + (new 'static 'level-hint-control + :id + (game-text-id training-more-eco-more-time) + :num-attempts-before-playing 3 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :id + (game-text-id sidekick-speech-hint-crate-iron) + :num-attempts-before-playing 3 + :num-success-before-killing 3 + ) + (new 'static 'level-hint-control + :id + (game-text-id sidekick-speech-hint-crate-steel) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :id + (game-text-id sidekick-hint-orb-cache-top) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :id + (game-text-id beach-grottopole-increment) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 3) + :id (game-text-id beach-eco-rock-increment) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 5) + :id + (game-text-id jungle-mirrors-break-the-mirror-jak) + :num-attempts-before-playing 1 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 3) + :id + (game-text-id jungle-precursorbridge-hint) + :num-attempts-before-playing 1 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :id + (game-text-id misty-teetertotter-bonk-dax-tutorial) + :num-attempts-before-playing 3 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 3) + :id (game-text-id misty-bone-bridge-hint) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 5) + :id (game-text-id rolling-dark-plants-hint) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 15) + :id (game-text-id sunken-bully-dive-hint) + :num-attempts-before-playing 3 + :num-success-before-killing 2 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 60) + :id (game-text-id sunken-qbert-plat-hint) + :num-attempts-before-playing 3 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :id + (game-text-id sunken-blue-eco-charger-all-hint) + :num-attempts-before-playing 3 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :id + (game-text-id sunken-blue-eco-charger-hint) + :num-attempts-before-playing 3 + :num-success-before-killing 2 + ) + (new 'static 'level-hint-control + :id + (game-text-id swamp-tethers-advice-hint) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 30) + :id + (game-text-id sunken-double-lurker-hint) + :num-attempts-before-playing 3 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :id + (game-text-id sunken-take-it-easy-hot-pipes) + :num-attempts-before-playing 3 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :id (game-text-id ram-boss-red-eco-hint) + :num-attempts-before-playing 5 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 3) + :id + (game-text-id darkcave-light-crystal-hint) + :num-attempts-before-playing 1 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :id + (game-text-id daxter-maybe-you-can-shoot-better-goggles) + :num-attempts-before-playing 4 + :num-success-before-killing -1 + ) + (new 'static 'level-hint-control + :id + (game-text-id lavatube-shoot-the-spheres) + :num-attempts-before-playing 1 + :num-success-before-killing 2 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 5) + :id + (game-text-id citadel-break-generator-hint) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + (new 'static 'level-hint-control + :delay-before-playing (seconds 5) + :id + (game-text-id citadel-break-generators-reminder) + :num-attempts-before-playing 1 + :num-success-before-killing 1 + ) + ) ) ;; failed to figure out what this is: @@ -105,9 +176,9 @@ 'static 'boxed-array :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task (game-task training-gimmie) :delay #x2bf20) - (new 'static 'task-hint-control :task (game-task training-door) :delay #x57e40) - (new 'static 'task-hint-control :task (game-task training-climb) :delay #x83d60) + (new 'static 'task-hint-control :task (game-task training-gimmie) :delay (seconds 600)) + (new 'static 'task-hint-control :task (game-task training-door) :delay (seconds 1200)) + (new 'static 'task-hint-control :task (game-task training-climb) :delay (seconds 1800)) ) ) (new 'static 'task-hint-control-group) @@ -117,9 +188,9 @@ 'static 'boxed-array :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task (game-task beach-gimmie) :delay #x41eb0) - (new 'static 'task-hint-control :task (game-task beach-sentinel) :delay #x83d60) - (new 'static 'task-hint-control :task (game-task beach-cannon) :delay #xc5c10) + (new 'static 'task-hint-control :task (game-task beach-gimmie) :delay (seconds 900)) + (new 'static 'task-hint-control :task (game-task beach-sentinel) :delay (seconds 1800)) + (new 'static 'task-hint-control :task (game-task beach-cannon) :delay (seconds 2700)) ) ) (new 'static 'task-hint-control-group @@ -128,8 +199,8 @@ 'static 'boxed-array :type task-hint-control :length 2 :allocated-length 2 - (new 'static 'task-hint-control :task (game-task jungle-plant) :delay #x57e40) - (new 'static 'task-hint-control :task (game-task jungle-canyon-end) :delay #xafc80) + (new 'static 'task-hint-control :task (game-task jungle-plant) :delay (seconds 1200)) + (new 'static 'task-hint-control :task (game-task jungle-canyon-end) :delay (seconds 2400)) ) ) (new 'static 'task-hint-control-group @@ -138,10 +209,10 @@ 'static 'boxed-array :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task (game-task misty-boat) :delay #x57e40) - (new 'static 'task-hint-control :task (game-task misty-warehouse) :delay #x83d60) - (new 'static 'task-hint-control :task (game-task misty-bike-jump) :delay #xafc80) - (new 'static 'task-hint-control :task (game-task misty-eco-challenge) :delay #xdbba0) + (new 'static 'task-hint-control :task (game-task misty-boat) :delay (seconds 1200)) + (new 'static 'task-hint-control :task (game-task misty-warehouse) :delay (seconds 1800)) + (new 'static 'task-hint-control :task (game-task misty-bike-jump) :delay (seconds 2400)) + (new 'static 'task-hint-control :task (game-task misty-eco-challenge) :delay (seconds 3000)) ) ) (new 'static 'task-hint-control-group) @@ -152,9 +223,9 @@ 'static 'boxed-array :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task (game-task sunken-spinning-room) :delay #x57e40) - (new 'static 'task-hint-control :task (game-task sunken-sharks) :delay #x83d60) - (new 'static 'task-hint-control :task (game-task sunken-slide) :delay #xafc80) + (new 'static 'task-hint-control :task (game-task sunken-spinning-room) :delay (seconds 1200)) + (new 'static 'task-hint-control :task (game-task sunken-sharks) :delay (seconds 1800)) + (new 'static 'task-hint-control :task (game-task sunken-slide) :delay (seconds 2400)) ) ) (new 'static 'task-hint-control-group @@ -163,7 +234,7 @@ 'static 'boxed-array :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task (game-task swamp-battle) :delay #xafc80) + (new 'static 'task-hint-control :task (game-task swamp-battle) :delay (seconds 2400)) ) ) (new 'static 'task-hint-control-group @@ -172,7 +243,7 @@ 'static 'boxed-array :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task (game-task rolling-lake) :delay #xafc80) + (new 'static 'task-hint-control :task (game-task rolling-lake) :delay (seconds 2400)) ) ) (new 'static 'task-hint-control-group @@ -181,7 +252,7 @@ 'static 'boxed-array :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task (game-task ogre-secret) :delay #x107ac0) + (new 'static 'task-hint-control :task (game-task ogre-secret) :delay (seconds 3600)) ) ) (new 'static 'task-hint-control-group @@ -190,7 +261,7 @@ 'static 'boxed-array :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task (game-task village3-extra1) :delay #x107ac0) + (new 'static 'task-hint-control :task (game-task village3-extra1) :delay (seconds 3600)) ) ) (new 'static 'task-hint-control-group @@ -199,10 +270,10 @@ 'static 'boxed-array :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task (game-task snow-bumpers) :delay #x57e40) - (new 'static 'task-hint-control :task (game-task snow-cage) :delay #x83d60) - (new 'static 'task-hint-control :task (game-task snow-ball) :delay #xafc80) - (new 'static 'task-hint-control :task (game-task snow-bunnies) :delay #xdbba0) + (new 'static 'task-hint-control :task (game-task snow-bumpers) :delay (seconds 1200)) + (new 'static 'task-hint-control :task (game-task snow-cage) :delay (seconds 1800)) + (new 'static 'task-hint-control :task (game-task snow-ball) :delay (seconds 2400)) + (new 'static 'task-hint-control :task (game-task snow-bunnies) :delay (seconds 3000)) ) ) (new 'static 'task-hint-control-group @@ -211,10 +282,10 @@ 'static 'boxed-array :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task (game-task cave-dark-climb) :delay #x57e40) - (new 'static 'task-hint-control :task (game-task cave-robot-climb) :delay #x83d60) - (new 'static 'task-hint-control :task (game-task cave-swing-poles) :delay #xafc80) - (new 'static 'task-hint-control :task (game-task cave-platforms) :delay #xdbba0) + (new 'static 'task-hint-control :task (game-task cave-dark-climb) :delay (seconds 1200)) + (new 'static 'task-hint-control :task (game-task cave-robot-climb) :delay (seconds 1800)) + (new 'static 'task-hint-control :task (game-task cave-swing-poles) :delay (seconds 2400)) + (new 'static 'task-hint-control :task (game-task cave-platforms) :delay (seconds 3000)) ) ) (new 'static 'task-hint-control-group) @@ -280,7 +351,7 @@ (set! v1-0 (appeared-for-long-enough? (the-as level-hint (ppointer->process *hint-semaphore*)))) 0 ) - (when (and v1-0 (< (- (-> *display* base-frame-counter) (-> *game-info* hint-play-time)) 30)) + (when (and v1-0 (< (- (-> *display* base-frame-counter) (-> *game-info* hint-play-time)) (seconds 0.1))) (set! v1-0 #f) 0 ) @@ -306,13 +377,13 @@ (a0-24 (- (-> *display* base-frame-counter) (-> *game-info* hint-control v1-16 last-time-called))) (v1-21 #t) ) - (if (and (= (-> gp-1 num-attempts-before-playing) 1) (< a0-24 30)) + (if (and (= (-> gp-1 num-attempts-before-playing) 1) (< a0-24 (seconds 0.1))) (+! (-> gp-1 start-time) a0-24) ) (cond ((and (!= (-> gp-1 num-attempts-before-playing) 1) (nonzero? (-> gp-1 last-time-called)) - (< (- (-> *display* base-frame-counter) (-> gp-1 last-time-called)) 150) + (< (- (-> *display* base-frame-counter) (-> gp-1 last-time-called)) (seconds 0.5)) ) (set! (-> gp-1 last-time-called) (-> *display* base-frame-counter)) #f @@ -320,7 +391,7 @@ (else (set! (-> gp-1 last-time-called) (-> *display* base-frame-counter)) (when (nonzero? (-> gp-1 delay-before-playing)) - (if (< (-> gp-1 start-time) (the-as int (-> gp-1 delay-before-playing))) + (if (< (-> gp-1 start-time) (-> gp-1 delay-before-playing)) (set! v1-21 #f) ) 0 diff --git a/test/decompiler/reference/engine/game/task/process-taskable_REF.gc b/test/decompiler/reference/engine/game/task/process-taskable_REF.gc index 70617eb568..8db0d28d5c 100644 --- a/test/decompiler/reference/engine/game/task/process-taskable_REF.gc +++ b/test/decompiler/reference/engine/game/task/process-taskable_REF.gc @@ -386,7 +386,7 @@ ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (or (not *target*) (< 20480.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) ) @@ -452,7 +452,7 @@ (if (nonzero? *camera-look-through-other*) (set! *camera-look-through-other* 2) ) - (set-letterbox-frames 5) + (set-letterbox-frames (seconds 0.016666668)) (draw-npc-shadow self) (none) ) @@ -852,7 +852,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (process-entity-status! self (entity-perm-status bit-3) #f) ) (if (or (-> self been-kicked) (should-display? self)) @@ -894,7 +894,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (process-entity-status! self (entity-perm-status bit-3) #f) ) (cond @@ -1074,7 +1074,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (logior! (-> self mask) (process-mask actor-pause)) (process-entity-status! self (entity-perm-status bit-3) #f) ) @@ -1082,7 +1082,7 @@ ((not *target*) ) ((not (-> self will-talk)) - (if (>= (- (-> *display* game-frame-counter) (-> self last-talk)) 3000) + (if (>= (- (-> *display* game-frame-counter) (-> self last-talk)) (seconds 10)) (set! (-> self will-talk) #t) ) ) @@ -1271,7 +1271,7 @@ ) ;; definition for method 10 of type ambient-control -(defmethod TODO-RENAME-10 ambient-control ((obj ambient-control) (arg0 vector) (arg1 int) (arg2 float) (arg3 process-drawable)) +(defmethod TODO-RENAME-10 ambient-control ((obj ambient-control) (arg0 vector) (arg1 time-frame) (arg2 float) (arg3 process-drawable)) (when (< (- (-> *display* game-frame-counter) (-> obj last-ambient-time)) arg1) (set! arg0 (the-as vector #f)) (goto cfg-6) @@ -1442,7 +1442,7 @@ (let ((a0-25 (-> self hand process 0))) (when (or (-> self die?) (and (not (-> self survive-anim-end?)) (ja-anim-done? a0-25))) (let ((gp-1 (-> *display* base-frame-counter))) - (while (and (< (- (-> *display* base-frame-counter) gp-1) #x4650) + (while (and (< (- (-> *display* base-frame-counter) gp-1) (seconds 60)) (or (and (-> self entity) (not (is-object-visible? (-> self entity extra level) (-> self entity extra vis-id)))) (< 81920.0 (vector-vector-distance (camera-pos) (-> *math-camera* trans))) ) diff --git a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc index 8b9604500e..dc2aac826a 100644 --- a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc @@ -64,9 +64,9 @@ ;; definition of type ambient-control (deftype ambient-control (structure) - ((last-ambient-time int64 :offset-assert 0) - (last-ambient string :offset-assert 8) - (last-ambient-id sound-id :offset-assert 12) + ((last-ambient-time time-frame :offset-assert 0) + (last-ambient string :offset-assert 8) + (last-ambient-id sound-id :offset-assert 12) ) :pack-me :method-count-assert 12 @@ -74,7 +74,7 @@ :flag-assert #xc00000010 (:methods (dummy-9 (_type_) none 9) - (TODO-RENAME-10 (_type_ vector int float process-drawable) vector 10) + (TODO-RENAME-10 (_type_ vector time-frame float process-drawable) vector 10) (play-ambient (_type_ string symbol vector) symbol 11) ) ) @@ -102,7 +102,7 @@ (camera handle :offset-assert 288) (will-talk symbol :offset-assert 296) (talk-message game-text-id :offset-assert 300) - (last-talk int64 :offset-assert 304) + (last-talk time-frame :offset-assert 304) (bounce-away symbol :offset-assert 312) (ambient ambient-control :inline :offset-assert 320) (center-joint-index int32 :offset-assert 336) diff --git a/test/decompiler/reference/engine/game/voicebox_REF.gc b/test/decompiler/reference/engine/game/voicebox_REF.gc index 646e0b3630..4c6761c4f8 100644 --- a/test/decompiler/reference/engine/game/voicebox_REF.gc +++ b/test/decompiler/reference/engine/game/voicebox_REF.gc @@ -216,11 +216,12 @@ (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) - ) - ) + (while (and (< (-> self blend) 0.9999) + (not (and (not (handle->process (-> self hint))) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) + (-> *setting-control* current hint) + ) + ) ) (update! (-> self seeker) 0.0) (set! (-> self blend) (-> self seeker value)) diff --git a/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc b/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc index 68e84e556c..d64741fd9c 100644 --- a/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc @@ -88,7 +88,7 @@ (bucket-group (inline-array dma-bucket) :offset 44) (buffer dma-buffer 11 :offset 4) (profile-bar profile-bar 2 :offset 48) - (run-time uint64 :offset 56) + (run-time int64 :offset 56) ) :method-count-assert 9 :size-assert #x40 @@ -166,22 +166,22 @@ (last-screen int32 :offset-assert 564) (frames virtual-frame 6 :inline :offset-assert 568) (bg-clear-color rgba 4 :offset-assert 760) - (real-frame-counter int64 :offset-assert 776) - (base-frame-counter int64 :offset-assert 784) - (game-frame-counter int64 :offset-assert 792) - (integral-frame-counter int64 :offset-assert 800) - (real-integral-frame-counter int64 :offset-assert 808) - (actual-frame-counter int64 :offset-assert 816) - (real-actual-frame-counter int64 :offset-assert 824) - (part-frame-counter int64 :offset-assert 832) - (old-real-frame-counter int64 :offset-assert 840) - (old-base-frame-counter int64 :offset-assert 848) - (old-game-frame-counter int64 :offset-assert 856) - (old-integral-frame-counter int64 :offset-assert 864) - (old-real-integral-frame-counter int64 :offset-assert 872) - (old-actual-frame-counter int64 :offset-assert 880) - (old-real-actual-frame-counter int64 :offset-assert 888) - (old-part-frame-counter int64 :offset-assert 896) + (real-frame-counter time-frame :offset-assert 776) + (base-frame-counter time-frame :offset-assert 784) + (game-frame-counter time-frame :offset-assert 792) + (integral-frame-counter time-frame :offset-assert 800) + (real-integral-frame-counter time-frame :offset-assert 808) + (actual-frame-counter time-frame :offset-assert 816) + (real-actual-frame-counter time-frame :offset-assert 824) + (part-frame-counter time-frame :offset-assert 832) + (old-real-frame-counter time-frame :offset-assert 840) + (old-base-frame-counter time-frame :offset-assert 848) + (old-game-frame-counter time-frame :offset-assert 856) + (old-integral-frame-counter time-frame :offset-assert 864) + (old-real-integral-frame-counter time-frame :offset-assert 872) + (old-actual-frame-counter time-frame :offset-assert 880) + (old-real-actual-frame-counter time-frame :offset-assert 888) + (old-part-frame-counter time-frame :offset-assert 896) (time-ratio float :offset-assert 904) (seconds-per-frame float :offset-assert 908) (frames-per-second float :offset-assert 912) diff --git a/test/decompiler/reference/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/engine/gfx/hw/display_REF.gc index 44d0d4c1f4..e8a6b0f684 100644 --- a/test/decompiler/reference/engine/gfx/hw/display_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display_REF.gc @@ -137,12 +137,12 @@ ) (set-draw-env (-> disp draw0) psm w h ztest zpsm 384) (set-draw-env (-> disp draw1) psm w h ztest zpsm 320) - (set! (-> disp base-frame-counter) #x493e0) - (set! (-> disp game-frame-counter) #x493e0) - (set! (-> disp real-frame-counter) #x493e0) - (set! (-> disp part-frame-counter) #x493e0) - (set! (-> disp integral-frame-counter) #x493e0) - (set! (-> disp real-integral-frame-counter) #x493e0) + (set! (-> disp base-frame-counter) (seconds 1000)) + (set! (-> disp game-frame-counter) (seconds 1000)) + (set! (-> disp real-frame-counter) (seconds 1000)) + (set! (-> disp part-frame-counter) (seconds 1000)) + (set! (-> disp integral-frame-counter) (seconds 1000)) + (set! (-> disp real-integral-frame-counter) (seconds 1000)) (set! (-> disp old-base-frame-counter) (+ (-> disp base-frame-counter) -1)) (set! (-> disp old-game-frame-counter) (+ (-> disp game-frame-counter) -1)) (set! (-> disp old-real-frame-counter) (+ (-> disp real-frame-counter) -1)) @@ -323,11 +323,11 @@ (+! block-idx 1) ) ) - (when (or (< 75 (- (-> *display* real-frame-counter) (the-as int (-> obj cache-time)))) + (when (or (< (seconds 0.25) (- (-> *display* real-frame-counter) (-> obj cache-time))) (>= end-time (the-as int (-> worst-time-cache (/ bar-pos 10)))) ) (set! (-> worst-time-cache (/ bar-pos 10)) (the-as uint end-time)) - (set! (-> obj cache-time) (the-as uint (-> *display* real-frame-counter))) + (set! (-> obj cache-time) (-> *display* real-frame-counter)) ) (cond (*profile-ticks* diff --git a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc index d4c530cba4..5fd6e2d09e 100644 --- a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc @@ -8,11 +8,11 @@ (joint-index int32 :offset-assert 12) (top-y-offset float :offset-assert 16) (ripple-size meters :offset-assert 20) - (enter-water-time uint64 :offset-assert 24) - (wade-time uint64 :offset-assert 32) - (on-water-time uint64 :offset-assert 40) - (enter-swim-time uint64 :offset-assert 48) - (swim-time uint64 :offset-assert 56) + (enter-water-time time-frame :offset-assert 24) + (wade-time time-frame :offset-assert 32) + (on-water-time time-frame :offset-assert 40) + (enter-swim-time time-frame :offset-assert 48) + (swim-time time-frame :offset-assert 56) (base-height meters :offset-assert 64) (wade-height meters :offset-assert 68) (swim-height meters :offset-assert 72) @@ -33,7 +33,7 @@ (drip-old-pos vector :inline :offset-assert 240) (drip-joint-index int32 :offset-assert 256) (drip-wetness float :offset-assert 260) - (drip-time uint64 :offset-assert 264) + (drip-time time-frame :offset-assert 264) (drip-speed float :offset-assert 272) (drip-height meters :offset-assert 276) (drip-mult float :offset-assert 280) diff --git a/test/decompiler/reference/engine/gfx/water/water_REF.gc b/test/decompiler/reference/engine/gfx/water/water_REF.gc index b7e566e67c..4a86b17439 100644 --- a/test/decompiler/reference/engine/gfx/water/water_REF.gc +++ b/test/decompiler/reference/engine/gfx/water/water_REF.gc @@ -787,7 +787,7 @@ (>= (-> obj height) (-> obj bottom 0 y)) ) (if (logtest? (-> (the-as collide-shape-moving (-> obj process root)) status) 1024) - (set! (-> obj on-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj on-water-time) (-> *display* base-frame-counter)) ) (set! (-> obj drip-wetness) 1.0) (set! (-> obj drip-height) (fmax (- (-> obj surface-height) (-> obj bottom 0 y)) (-> obj drip-height))) @@ -868,13 +868,7 @@ ) (set! (-> *part-id-table* 110 init-specs 16 initial-valuef) (-> obj surface-height)) (set! (-> *part-id-table* 110 init-specs 1 initial-valuef) - (+ (lerp-scale - 12.0 - 0.4 - (the float (- (-> *display* base-frame-counter) (the-as int (-> obj enter-water-time)))) - 0.0 - 600.0 - ) + (+ (lerp-scale 12.0 0.4 (the float (- (-> *display* base-frame-counter) (-> obj enter-water-time))) 0.0 600.0) (* 0.00012207031 (vector-xz-length (-> obj process root transv))) ) ) @@ -908,7 +902,9 @@ ) ) (s4-3 - (and v1-146 (< (- (-> *display* base-frame-counter) (-> (the-as control-info v1-146) unknown-dword11)) 150)) + (and v1-146 + (< (- (-> *display* base-frame-counter) (-> (the-as control-info v1-146) unknown-dword11)) (seconds 0.5)) + ) ) ) (if (and (logtest? (-> obj flags) 16) @@ -928,17 +924,17 @@ ) (or (logtest? s5-0 2048) (< 12288.0 (vector-xz-length (-> obj process root transv))) - (< (+ (-> *display* base-frame-counter) -60) (the-as int (-> obj enter-water-time))) + (< (+ (-> *display* base-frame-counter) (seconds -0.2)) (-> obj enter-water-time)) (>= (+ (- 204.8 (fmin 6144.0 (+ (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset)))) f30-3) (-> obj bottom 0 y) ) ) ) - (set! (-> obj swim-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj swim-time) (-> *display* base-frame-counter)) (send-event (-> obj process) 'swim) (logior! (-> obj flags) 2048) (if (zero? (logand s5-0 2048)) - (set! (-> obj enter-swim-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj enter-swim-time) (-> *display* base-frame-counter)) ) (cond ((and (logtest? (-> obj flags) 16) @@ -970,14 +966,14 @@ ((begin (set! s4-3 (and (logtest? (-> obj flags) 4) (or (not (!= (-> obj bob amp) 0.0)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> obj swim-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> obj swim-time)) (seconds 0.05)) ) (and (>= (- (-> obj height) (-> obj wade-height)) (-> obj bottom 0 y)) s4-3) ) ) s4-3 ) - (set! (-> obj wade-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj wade-time) (-> *display* base-frame-counter)) (send-event (-> obj process) 'wade) (logior! (-> obj flags) 1024) ) @@ -1089,7 +1085,7 @@ 1.0 ) ) - (set! (-> obj drip-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj drip-time) (-> *display* base-frame-counter)) (set! (-> obj flags) (logand -32769 (-> obj flags))) (set! (-> obj drip-wetness) (seek (-> obj drip-wetness) 0.0 (* 0.001 (-> obj drip-speed)))) (set! (-> obj drip-speed) (* 1.05 (-> obj drip-speed))) @@ -1097,7 +1093,9 @@ (set! (-> obj drip-height) 0.0) ) ) - ((>= (- (-> *display* base-frame-counter) (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult)))) + ((>= (- (-> *display* base-frame-counter) + (the-as time-frame (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult)))) + ) (the int (-> obj drip-speed)) ) (let* ((s5-2 (rand-vu-int-range 3 (+ (-> obj process node-list length) -1))) @@ -1226,7 +1224,7 @@ (with-pp (logior! (-> obj flags) 512) (set! (-> obj flags) (logand -65537 (-> obj flags))) - (set! (-> obj enter-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj enter-water-time) (-> *display* base-frame-counter)) (set-vector! (-> obj enter-water-pos) (-> obj bottom 0 x) (-> obj surface-height) (-> obj bottom 0 z) 1.0) (when (and (logtest? (-> obj flags) 32) (logtest? #x800000 (-> obj flags))) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) diff --git a/test/decompiler/reference/engine/level/level-info_REF.gc b/test/decompiler/reference/engine/level/level-info_REF.gc index 5fb26a2b32..e8de665da4 100644 --- a/test/decompiler/reference/engine/level/level-info_REF.gc +++ b/test/decompiler/reference/engine/level/level-info_REF.gc @@ -117,7 +117,7 @@ :bsphere (new 'static 'sphere :x -5079040.0 :z 4055040.0 :w 1024000.0) :buzzer 95 - :bottom-height (meters -114.0) + :bottom-height (meters -114) :run-packages '("common" "villagep") :wait-for-load #f ) @@ -258,7 +258,7 @@ :bsphere (new 'static 'sphere :x -444416.0 :y 133120.0 :z 360448.0 :w 843776.0) :buzzer 75 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -309,7 +309,7 @@ :bsphere (new 'static 'sphere :x -819200.0 :z -1556480.0 :w 1474560.0) :buzzer 20 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -361,7 +361,7 @@ :bsphere (new 'static 'sphere :x 1474560.0 :y 2519040.0 :z -983040.0 :w 2457600.0) :buzzer 7 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -410,7 +410,7 @@ :bsphere (new 'static 'sphere :x 1486848.0 :y -1269760.0 :z -1064960.0 :w 1228800.0) :buzzer 7 - :bottom-height (meters -80.0) + :bottom-height (meters -80) :run-packages '("common" "jungle") :wait-for-load #f ) @@ -598,7 +598,7 @@ :bsphere (new 'static 'sphere :z 4096000.0 :w 1269760.0) :buzzer 28 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #f ) @@ -666,7 +666,7 @@ :bsphere (new 'static 'sphere :x 419840.0 :y 151552.0 :z -3006464.0 :w 2048000.0) :buzzer 68 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -753,7 +753,7 @@ :bsphere (new 'static 'sphere :x 1392640.0 :y 81920.0 :z -6770688.0 :w 696320.0) :buzzer 76 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -857,7 +857,7 @@ :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height (meters -500.0) + :bottom-height (meters -500) :run-packages '("common") :wait-for-load #f ) @@ -925,7 +925,7 @@ :bsphere (new 'static 'sphere :x 2867200.0 :y -2048000.0 :z -6553600.0 :w 2048000.0) :buzzer 49 - :bottom-height (meters -500.0) + :bottom-height (meters -500) :run-packages '("common" "sunken") :wait-for-load #f ) @@ -1132,7 +1132,7 @@ :bsphere (new 'static 'sphere :x 1986560.0 :z -8417280.0 :w 1003520.0) :buzzer 43 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -1182,7 +1182,7 @@ :bsphere (new 'static 'sphere :x -753664.0 :y 131072.0 :z -6569984.0 :w 974848.0) :buzzer 57 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -1268,7 +1268,7 @@ :bsphere (new 'static 'sphere :x 2334720.0 :y 180224.0 :z -10653696.0 :w 3653632.0) :buzzer 88 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #t ) @@ -1355,7 +1355,7 @@ :bsphere (new 'static 'sphere :x 4571136.0 :y 389120.0 :z -14323712.0 :w 409600.0) :buzzer 77 - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '("common") :wait-for-load #f ) @@ -1550,7 +1550,7 @@ :bsphere (new 'static 'sphere :x 3072000.0 :y 1142784.0 :z -14028800.0 :w 1290240.0) :buzzer 65 - :bottom-height (meters 128.0) + :bottom-height (meters 128) :run-packages '("common") :wait-for-load #f ) @@ -1636,7 +1636,7 @@ :bsphere (new 'static 'sphere :x 4517888.0 :y 114688.0 :z -12484608.0 :w 655360.0) :buzzer 85 - :bottom-height (meters -60.0) + :bottom-height (meters -60) :run-packages '("common") :wait-for-load #f ) @@ -1686,7 +1686,7 @@ :bsphere (new 'static 'sphere :x 3620864.0 :y 266240.0 :z -11935744.0 :w 368640.0) :buzzer 85 - :bottom-height (meters -60.0) + :bottom-height (meters -60) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -1754,7 +1754,7 @@ :bsphere (new 'static 'sphere :x 5529600.0 :y 81920.0 :z -11468800.0 :w 512000.0) :buzzer 85 - :bottom-height (meters -60.0) + :bottom-height (meters -60) :run-packages '("common" "maincave") :wait-for-load #t ) @@ -1858,7 +1858,7 @@ :bsphere (new 'static 'sphere :x 8806400.0 :y 131072.0 :z -15564800.0 :w 3174400.0) :buzzer 90 - :bottom-height (meters -70.0) + :bottom-height (meters -70) :run-packages '("common") :wait-for-load #t ) @@ -2071,7 +2071,7 @@ :bsphere (new 'static 'sphere :x 11436032.0 :y -462848.0 :z -19750912.0 :w 1228800.0) :buzzer 91 - :bottom-height (meters -114.0) + :bottom-height (meters -114) :run-packages '("common") :wait-for-load #t ) @@ -2142,7 +2142,7 @@ :bsphere (new 'static 'sphere :x 11837440.0 :y 2129920.0 :z -19578880.0 :w 778240.0) :buzzer 91 - :bottom-height (meters -114.0) + :bottom-height (meters -114) :run-packages '("common") :wait-for-load #f ) @@ -2169,7 +2169,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height (meters -10000000.0) + :bottom-height (meters -10000000) :run-packages '("common") :wait-for-load #f ) @@ -2217,7 +2217,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere) - :bottom-height (meters -10000000.0) + :bottom-height (meters -10000000) :run-packages '("common") :wait-for-load #f ) @@ -2267,7 +2267,7 @@ :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :x -40960.0 :z 40960.0 :w 1126400.0) - :bottom-height (meters -10000000.0) + :bottom-height (meters -10000000) :run-packages '("common") :wait-for-load #f ) @@ -2316,7 +2316,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height (meters -10000000.0) + :bottom-height (meters -10000000) :run-packages '() :wait-for-load #t ) @@ -2343,7 +2343,7 @@ :alt-load-commands '() :bsp-mask #xffffffffffffffff :bsphere (new 'static 'sphere :w 167772160000.0) - :bottom-height (meters -20.0) + :bottom-height (meters -20) :run-packages '() :wait-for-load #t ) diff --git a/test/decompiler/reference/engine/level/level_REF.gc b/test/decompiler/reference/engine/level/level_REF.gc index e07dd1b075..6c6f26dc23 100644 --- a/test/decompiler/reference/engine/level/level_REF.gc +++ b/test/decompiler/reference/engine/level/level_REF.gc @@ -532,7 +532,7 @@ (+! (-> level-login-state pos) 1) (goto cfg-1) ) - (let ((v1-39 (- (the-as uint current-login-pos) (the-as uint (-> level-drawable-trees length))))) + (let ((v1-39 (- (the-as uint current-login-pos) (-> level-drawable-trees length)))) (when (< (the-as int v1-39) (-> loaded-level art-group art-group-array length)) (let ((s2-2 (-> loaded-level art-group art-group-array v1-39))) (login s2-2) @@ -1221,7 +1221,7 @@ (set! (-> *time-of-day-proc* 0 time-ratio) 300.0) (set! (-> *time-of-day-proc* 0 hour) 7) ) - (set-blackout-frames 6) + (set-blackout-frames (seconds 0.02)) (when (not *dproc*) (reset! *load-state*) (let ((s4-1 (level-get-for-use *level* s5-0 'active))) @@ -1229,7 +1229,7 @@ (load-state-want-display-level s5-0 'display) (load-state-want-vis (-> (lookup-level-info s5-0) nickname)) (while (and s4-1 (or (= (-> s4-1 status) 'loading) (= (-> s4-1 status) 'loading-bt) (= (-> s4-1 status) 'login))) - (set-blackout-frames 6) + (set-blackout-frames (seconds 0.02)) (load-continue s4-1) ) ) diff --git a/test/decompiler/reference/engine/level/load-boundary_REF.gc b/test/decompiler/reference/engine/level/load-boundary_REF.gc index 6fb38ce310..a9f919ca12 100644 --- a/test/decompiler/reference/engine/level/load-boundary_REF.gc +++ b/test/decompiler/reference/engine/level/load-boundary_REF.gc @@ -2075,7 +2075,7 @@ (clear-pending-settings-from-process *setting-control* pp (the-as symbol (command-get-param (car gp-0) #f))) ) ((= v1-4 'blackout) - (set-blackout-frames (the int (* 5.0000005 (the float (command-get-int (car gp-0) 0))))) + (set-blackout-frames (the-as time-frame (the int (* 5.0000005 (the float (command-get-int (car gp-0) 0)))))) ) ((= v1-4 'teleport) (set! *teleport* #t) diff --git a/test/decompiler/reference/engine/load/load-dgo_REF.gc b/test/decompiler/reference/engine/load/load-dgo_REF.gc index bd2e2a46ca..115679c4fa 100644 --- a/test/decompiler/reference/engine/load/load-dgo_REF.gc +++ b/test/decompiler/reference/engine/load/load-dgo_REF.gc @@ -212,8 +212,8 @@ (none) ) -;; definition for symbol *dgo-time*, type int -(define *dgo-time* 0) +;; definition for symbol *dgo-time*, type time-frame +(define *dgo-time* (the-as time-frame 0)) ;; definition for function dgo-load-begin ;; Used lq/sq diff --git a/test/decompiler/reference/engine/load/loader_REF.gc b/test/decompiler/reference/engine/load/loader_REF.gc index 7c8c0a4e76..b98bce1319 100644 --- a/test/decompiler/reference/engine/load/loader_REF.gc +++ b/test/decompiler/reference/engine/load/loader_REF.gc @@ -868,7 +868,7 @@ (new 'static 'handle :process v1-46 :pid (-> (the-as process (-> v1-46 0)) pid)) ) ) - (set! sv-48 (-> *display* base-frame-counter)) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) (while (< spool-part (-> arg0 parts)) (spool-push *art-control* (-> arg0 name) spool-part self -20.0) (update *art-control* #f) @@ -927,13 +927,13 @@ (f28-0 (+ sv-24 (/ (the float (+ (-> s2-4 data 0 length) -1)) f30-0))) ) (set! sv-72 (current-str-pos spool-sound)) - (set! sv-40 (-> *display* base-frame-counter)) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) (until (>= (the float v0-39) f28-0) (if (= (-> self skel root-channel 0) (-> self skel channel)) (logior! (-> self skel status) 32) ) (if (or (arg3 self) - (and (<= sv-72 0) (>= (- (-> *display* base-frame-counter) sv-40) 1200)) + (and (<= sv-72 0) (>= (- (-> *display* base-frame-counter) sv-40) (seconds 4))) (and (< 300 sv-56) (<= sv-72 0)) ) (goto cfg-88) @@ -947,14 +947,14 @@ (cond ((and (< sv-32 sv-72) (= (current-str-id) spool-sound)) (set! sv-56 (+ sv-56 (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) - (set! sv-40 (-> *display* base-frame-counter)) + (set! sv-40 (the-as int (-> *display* base-frame-counter))) ) (else 0 ) ) (set! sv-32 sv-72) - (set! sv-48 (-> *display* base-frame-counter)) + (set! sv-48 (the-as int (-> *display* base-frame-counter))) (suspend) (let ((f0-14 (* (- (the float (current-str-pos spool-sound)) sv-24) f30-0)) (a0-69 (-> self skel root-channel 0)) diff --git a/test/decompiler/reference/engine/math/transformq-h_REF.gc b/test/decompiler/reference/engine/math/transformq-h_REF.gc index 443a1995f0..546d8a71d0 100644 --- a/test/decompiler/reference/engine/math/transformq-h_REF.gc +++ b/test/decompiler/reference/engine/math/transformq-h_REF.gc @@ -47,18 +47,18 @@ (rotv vector :inline :offset-assert 80) (scalev vector :inline :offset-assert 96) (dir-targ quaternion :inline :offset-assert 112) - (angle-change-time int64 :offset-assert 128) + (angle-change-time time-frame :offset-assert 128) (old-y-angle-diff float :offset-assert 136) ) :method-count-assert 28 :size-assert #x8c :flag-assert #x1c0000008c (:methods - (seek-toward-heading-vec! (_type_ vector float int) quaternion 9) + (seek-toward-heading-vec! (_type_ vector float time-frame) quaternion 9) (set-heading-vec! (_type_ vector) quaternion 10) - (seek-to-point-toward-point! (_type_ vector float int) quaternion 11) + (seek-to-point-toward-point! (_type_ vector float time-frame) quaternion 11) (point-toward-point! (_type_ vector) quaternion 12) - (seek-toward-yaw-angle! (_type_ float float int) quaternion 13) + (seek-toward-yaw-angle! (_type_ float float time-frame) quaternion 13) (set-yaw-angle-clear-roll-pitch! (_type_ float) quaternion 14) (set-roll-to-grav! (_type_ float) quaternion 15) (set-roll-to-grav-2! (_type_ float) quaternion 16) diff --git a/test/decompiler/reference/engine/math/transformq_REF.gc b/test/decompiler/reference/engine/math/transformq_REF.gc index 495fe55b51..c84685cb1d 100644 --- a/test/decompiler/reference/engine/math/transformq_REF.gc +++ b/test/decompiler/reference/engine/math/transformq_REF.gc @@ -31,7 +31,7 @@ ) ;; definition for method 9 of type trsqv -(defmethod seek-toward-heading-vec! trsqv ((obj trsqv) (dir vector) (vel float) (frame-count int)) +(defmethod seek-toward-heading-vec! trsqv ((obj trsqv) (dir vector) (vel float) (frame-count time-frame)) (let* ((yaw-error (deg-diff (quaternion-y-angle (-> obj quat)) (vector-y-angle dir))) (yaw-limit (fmin (* vel (-> *display* seconds-per-frame)) (/ (* 5.0 (fabs yaw-error)) (the float frame-count))) @@ -39,20 +39,21 @@ (saturated-yaw (fmax (fmin yaw-error yaw-limit) (- yaw-limit))) ) (let ((old-diff (-> obj old-y-angle-diff))) - (set! saturated-yaw (cond - ((or (= old-diff 0.0) - (and (< 0.0 saturated-yaw) (< 0.0 old-diff)) - (or (and (< saturated-yaw 0.0) (< old-diff 0.0)) - (>= (- (-> *display* base-frame-counter) (-> obj angle-change-time)) 60) - ) - ) - (set! (-> obj angle-change-time) (-> *display* base-frame-counter)) - saturated-yaw - ) - (else - (* 0.000000001 saturated-yaw) - ) - ) + (set! saturated-yaw + (cond + ((or (= old-diff 0.0) + (and (< 0.0 saturated-yaw) (< 0.0 old-diff)) + (or (and (< saturated-yaw 0.0) (< old-diff 0.0)) + (>= (- (-> *display* base-frame-counter) (-> obj angle-change-time)) (seconds 0.2)) + ) + ) + (set! (-> obj angle-change-time) (-> *display* base-frame-counter)) + saturated-yaw + ) + (else + (* 0.000000001 saturated-yaw) + ) + ) ) ) (set! (-> obj old-y-angle-diff) saturated-yaw) @@ -74,7 +75,7 @@ ) ;; definition for method 11 of type trsqv -(defmethod seek-to-point-toward-point! trsqv ((obj trsqv) (arg0 vector) (arg1 float) (arg2 int)) +(defmethod seek-to-point-toward-point! trsqv ((obj trsqv) (arg0 vector) (arg1 float) (arg2 time-frame)) (seek-toward-heading-vec! obj (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj trans)) arg1 arg2) ) @@ -90,7 +91,7 @@ ) ;; definition for method 13 of type trsqv -(defmethod seek-toward-yaw-angle! trsqv ((obj trsqv) (yaw float) (vel float) (frame-count int)) +(defmethod seek-toward-yaw-angle! trsqv ((obj trsqv) (yaw float) (vel float) (frame-count time-frame)) (let ((s3-0 (method-of-object obj seek-toward-heading-vec!)) (s2-0 (new 'stack-no-clear 'vector)) ) diff --git a/test/decompiler/reference/engine/nav/navigate-h_REF.gc b/test/decompiler/reference/engine/nav/navigate-h_REF.gc index d353b08d21..8c8eb2be1a 100644 --- a/test/decompiler/reference/engine/nav/navigate-h_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate-h_REF.gc @@ -361,7 +361,7 @@ (travel vector :inline :offset-assert 144) (target-pos vector :inline :offset-assert 160) (destination-pos vector :inline :offset-assert 176) - (block-time uint64 :offset-assert 192) + (block-time time-frame :offset-assert 192) (block-count float :offset-assert 200) (user-poly nav-poly :offset-assert 204) (nav-cull-radius float :offset-assert 208) diff --git a/test/decompiler/reference/engine/nav/navigate_REF.gc b/test/decompiler/reference/engine/nav/navigate_REF.gc index 536139955f..89fa53b84c 100644 --- a/test/decompiler/reference/engine/nav/navigate_REF.gc +++ b/test/decompiler/reference/engine/nav/navigate_REF.gc @@ -2663,7 +2663,7 @@ (let ((f0-0 (vector-xz-length (-> obj travel)))) (when (and (>= f30-0 f0-0) (< f0-0 204.8)) (set! (-> obj flags) (logior (nav-control-flags bit17) (-> obj flags))) - (set! (-> obj block-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj block-time) (-> *display* base-frame-counter)) (set! (-> obj block-count) (+ 1.0 (-> obj block-count))) (if (-> obj block-event) (send-event (the-as process-tree (-> obj process)) (the-as symbol (-> obj block-event)) obj) diff --git a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc index 134ff63359..17c0139d81 100644 --- a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc +++ b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc @@ -51,13 +51,13 @@ ;; definition for symbol *standard-dynamics*, type dynamics (define *standard-dynamics* (new 'static 'dynamics :name 'standard - :gravity-max (meters 40.0) - :gravity-length (meters 60.0) + :gravity-max (meters 40) + :gravity-length (meters 60) :gravity (new 'static 'vector :y 245760.0 :w 1.0) :gravity-normal (new 'static 'vector :y 1.0 :w 1.0) - :walk-distance (meters 2.0) - :run-distance (meters 5.0) + :walk-distance (meters 2) + :run-distance (meters 5) ) ) diff --git a/test/decompiler/reference/engine/ps2/pad_REF.gc b/test/decompiler/reference/engine/ps2/pad_REF.gc index 7303ffe3e3..3071e8b4a9 100644 --- a/test/decompiler/reference/engine/ps2/pad_REF.gc +++ b/test/decompiler/reference/engine/ps2/pad_REF.gc @@ -50,10 +50,10 @@ (align uint8 6 :offset-assert 88) (direct uint8 6 :offset-assert 94) (buzz-val uint8 2 :offset-assert 100) - (buzz-time int64 2 :offset-assert 104) + (buzz-time time-frame 2 :offset-assert 104) (buzz basic :offset-assert 120) (buzz-act int32 :offset-assert 124) - (change-time int64 :offset-assert 128) + (change-time time-frame :offset-assert 128) ) :method-count-assert 9 :size-assert #x88 @@ -193,7 +193,7 @@ ;; definition for function cpad-set-buzz! ;; INFO: Return type mismatch int vs none. -(defun cpad-set-buzz! ((pad cpad-info) (buzz-idx int) (buzz-amount int) (duration int)) +(defun cpad-set-buzz! ((pad cpad-info) (buzz-idx int) (buzz-amount int) (duration time-frame)) (cond ((zero? buzz-amount) (set! (-> pad buzz-val buzz-idx) (the-as uint 0)) @@ -232,7 +232,7 @@ (cond ((zero? v1-10) (set! (-> pad direct buzz-idx) - (logand (ash (-> pad buzz-val buzz-idx) (- (logand (get-integral-current-time) 7))) 1) + (logand (ash (-> pad buzz-val buzz-idx) (- (the-as int (logand (get-integral-current-time) 7)))) 1) ) ) ((= v1-10 1) diff --git a/test/decompiler/reference/engine/ps2/timer-h_REF.gc b/test/decompiler/reference/engine/ps2/timer-h_REF.gc index a3a3d47e29..76c634759a 100644 --- a/test/decompiler/reference/engine/ps2/timer-h_REF.gc +++ b/test/decompiler/reference/engine/ps2/timer-h_REF.gc @@ -60,9 +60,9 @@ ;; definition of type stopwatch (deftype stopwatch (basic) - ((prev-time-elapsed uint64 :offset-assert 8) - (start-time uint64 :offset-assert 16) - (begin-level int32 :offset-assert 24) + ((prev-time-elapsed time-frame :offset-assert 8) + (start-time time-frame :offset-assert 16) + (begin-level int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c @@ -128,7 +128,7 @@ ;; definition of type profile-bar (deftype profile-bar (basic) ((profile-frame-count int32 :offset-assert 4) - (cache-time uint64 :offset-assert 8) + (cache-time time-frame :offset-assert 8) (data profile-frame 1024 :inline :offset-assert 16) ) :method-count-assert 14 diff --git a/test/decompiler/reference/engine/ps2/timer_REF.gc b/test/decompiler/reference/engine/ps2/timer_REF.gc index 662d41a654..d9f6a43251 100644 --- a/test/decompiler/reference/engine/ps2/timer_REF.gc +++ b/test/decompiler/reference/engine/ps2/timer_REF.gc @@ -61,7 +61,7 @@ ;; definition for function stopwatch-init (defun stopwatch-init ((arg0 stopwatch)) (set! (-> arg0 begin-level) 0) - (set! (-> arg0 prev-time-elapsed) (the-as uint 0)) + (set! (-> arg0 prev-time-elapsed) 0) 0 ) @@ -69,11 +69,11 @@ ;; WARN: Unsupported inline assembly instruction kind - [mfc0 v1, Count] (defun stopwatch-reset ((arg0 stopwatch)) (local-vars (v1-3 int)) - (set! (-> arg0 prev-time-elapsed) (the-as uint 0)) + (set! (-> arg0 prev-time-elapsed) 0) (when (> (-> arg0 begin-level) 0) 0 (.mfc0 v1-3 Count) - (set! (-> arg0 start-time) (the-as uint v1-3)) + (set! (-> arg0 start-time) (the-as time-frame v1-3)) ) 0 ) @@ -86,7 +86,7 @@ (set! (-> arg0 begin-level) 1) 0 (.mfc0 v1-4 Count) - (set! (-> arg0 start-time) (the-as uint v1-4)) + (set! (-> arg0 start-time) (the-as time-frame v1-4)) ) 0 ) @@ -100,7 +100,7 @@ (set! (-> arg0 begin-level) 0) 0 (.mfc0 a1-0 Count) - (+! (-> arg0 prev-time-elapsed) (- a1-0 (the-as int (-> arg0 start-time)))) + (+! (-> arg0 prev-time-elapsed) (- (the-as time-frame a1-0) (-> arg0 start-time))) ) (the-as uint 0) ) @@ -112,7 +112,7 @@ (when (zero? (-> arg0 begin-level)) 0 (.mfc0 v1-3 Count) - (set! (-> arg0 start-time) (the-as uint v1-3)) + (set! (-> arg0 start-time) (the-as time-frame v1-3)) ) (+! (-> arg0 begin-level) 1) 0 @@ -127,12 +127,13 @@ (when (zero? (-> arg0 begin-level)) 0 (.mfc0 a1-0 Count) - (+! (-> arg0 prev-time-elapsed) (- a1-0 (the-as int (-> arg0 start-time)))) + (+! (-> arg0 prev-time-elapsed) (- (the-as time-frame a1-0) (-> arg0 start-time))) ) (the-as uint 0) ) ;; definition for function stopwatch-elapsed-ticks +;; INFO: Return type mismatch time-frame vs uint. ;; WARN: Unsupported inline assembly instruction kind - [mfc0 v1, Count] (defun stopwatch-elapsed-ticks ((arg0 stopwatch)) (local-vars (v1-3 int)) @@ -140,9 +141,9 @@ (when (> (-> arg0 begin-level) 0) 0 (.mfc0 v1-3 Count) - (+! v0-0 (- v1-3 (the-as int (-> arg0 start-time)))) + (+! v0-0 (- (the-as time-frame v1-3) (-> arg0 start-time))) ) - v0-0 + (the-as uint v0-0) ) ) diff --git a/test/decompiler/reference/engine/sound/gsound-h_REF.gc b/test/decompiler/reference/engine/sound/gsound-h_REF.gc index 8bb849bb06..e52aae617e 100644 --- a/test/decompiler/reference/engine/sound/gsound-h_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound-h_REF.gc @@ -688,9 +688,9 @@ (playing-id sound-id :offset-assert 8) (trans vector :inline :offset-assert 16) (name sound-name :offset-assert 32) - (play-time int64 :offset-assert 48) - (time-base int64 :offset-assert 56) - (time-random int64 :offset-assert 64) + (play-time time-frame :offset-assert 48) + (time-base time-frame :offset-assert 56) + (time-random time-frame :offset-assert 64) (volume int32 :offset-assert 72) (pitch int32 :offset-assert 76) (falloff-near int32 :offset-assert 80) diff --git a/test/decompiler/reference/engine/sound/gsound_REF.gc b/test/decompiler/reference/engine/sound/gsound_REF.gc index e6236398b7..cb6acfa28d 100644 --- a/test/decompiler/reference/engine/sound/gsound_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound_REF.gc @@ -697,8 +697,8 @@ ) (cond (sv-48 - (set! (-> obj time-base) (the int (* 300.0 (-> sv-48 0)))) - (set! (-> obj time-random) (the int (* 300.0 (-> sv-48 1)))) + (set! (-> obj time-base) (the-as time-frame (the int (* 300.0 (-> sv-48 0))))) + (set! (-> obj time-random) (the-as time-frame (the int (* 300.0 (-> sv-48 1))))) ) (else (set! (-> obj time-base) -1) @@ -727,7 +727,7 @@ (when (or (< (-> obj time-base) 0) (>= (-> *display* base-frame-counter) (-> obj play-time))) (when (>= (-> obj time-base) 0) (set! (-> obj play-time) - (+ (-> *display* base-frame-counter) (-> obj time-base) (rand-vu-int-count (-> obj time-random))) + (+ (-> *display* base-frame-counter) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) ) (set! (-> obj playing-id) (new-sound-id)) ) @@ -791,7 +791,7 @@ ) ) (set! (-> obj play-time) - (+ (-> *display* base-frame-counter) (-> obj time-base) (rand-vu-int-count (-> obj time-random))) + (+ (-> *display* base-frame-counter) (-> obj time-base) (rand-vu-int-count (the-as int (-> obj time-random)))) ) ) ) diff --git a/test/decompiler/reference/engine/sparticle/sparticle-launcher_REF.gc b/test/decompiler/reference/engine/sparticle/sparticle-launcher_REF.gc index 8e6f630f5c..14bf03565b 100644 --- a/test/decompiler/reference/engine/sparticle/sparticle-launcher_REF.gc +++ b/test/decompiler/reference/engine/sparticle/sparticle-launcher_REF.gc @@ -37,6 +37,7 @@ ) ;; definition for method 3 of type sparticle-launcher +;; INFO: this function exists in multiple non-identical object files ;; INFO: Return type mismatch int vs sparticle-launcher. (defmethod inspect sparticle-launcher ((obj sparticle-launcher)) (format #t "~X: sparticle-launcher~%" obj) @@ -923,7 +924,9 @@ (set! (-> obj local-clock) 0) (set! (-> obj fade) 1.0) (set! (-> obj matrix) 0) - (set! (-> obj last-spawn-frame) (+ (-> *display* real-actual-frame-counter) -2)) + (set! (-> obj last-spawn-frame) + (the-as int (+ (-> *display* real-actual-frame-counter) (seconds -0.006666667))) + ) (set! (-> obj last-spawn-time) 0) (dotimes (s3-0 (-> arg0 length)) (let* ((a0-2 (-> arg0 launcher s3-0)) @@ -1055,7 +1058,7 @@ (set! s5-0 (- s4-0 (logand (the-as int (-> *sp-frame-time* x)) 255))) ) ) - (set! (-> obj last-spawn-frame) (-> *display* real-actual-frame-counter)) + (set! (-> obj last-spawn-frame) (the-as int (-> *display* real-actual-frame-counter))) (set! (-> obj last-spawn-time) s4-0) (when (logtest? (-> obj group flags) (sp-group-flag use-local-clock)) (set! s5-0 (-> obj local-clock)) @@ -1356,7 +1359,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/engine/sparticle/sparticle_REF.gc b/test/decompiler/reference/engine/sparticle/sparticle_REF.gc index b809aeddf9..e98ec04545 100644 --- a/test/decompiler/reference/engine/sparticle/sparticle_REF.gc +++ b/test/decompiler/reference/engine/sparticle/sparticle_REF.gc @@ -161,17 +161,11 @@ ) ;; definition for function sp-get-particle -;; WARN: Unsupported inline assembly instruction kind - [movn t1, t2, t2] ;; WARN: Unsupported inline assembly instruction kind - [movz a2, t3, t2] -;; WARN: Unsupported inline assembly instruction kind - [movn t1, t2, t2] ;; WARN: Unsupported inline assembly instruction kind - [movz a2, t3, t2] -;; WARN: Unsupported inline assembly instruction kind - [movn t1, t2, t2] ;; WARN: Unsupported inline assembly instruction kind - [movz a2, t3, t2] -;; WARN: Unsupported inline assembly instruction kind - [movn t1, t2, t2] ;; WARN: Unsupported inline assembly instruction kind - [movz a2, t3, t2] -;; WARN: Unsupported inline assembly instruction kind - [movn t1, t2, t2] ;; WARN: Unsupported inline assembly instruction kind - [movz a2, t3, t2] -;; WARN: Unsupported inline assembly instruction kind - [movn t3, t1, t1] ;; WARN: Unsupported inline assembly instruction kind - [movz a2, t2, t1] (defun sp-get-particle ((arg0 sparticle-system) (arg1 int) (arg2 sparticle-launch-state)) (local-vars @@ -215,36 +209,36 @@ (let ((t2-4 (shl t1-15 32)) (t3-0 (+ a2-2 32)) ) - (.movn t1-16 t2-4 t2-4 t1-15) + (move-if-not-zero t1-16 t2-4 t2-4 t1-15) (.movz a2-3 t3-0 t2-4 a2-2) ) (let ((t2-5 (shl t1-16 16)) (t3-1 (+ a2-3 16)) ) - (.movn t1-17 t2-5 t2-5 t1-16) + (move-if-not-zero t1-17 t2-5 t2-5 t1-16) (.movz a2-4 t3-1 t2-5 a2-3) ) (let ((t2-6 (* t1-17 256)) (t3-2 (+ a2-4 8)) ) - (.movn t1-18 t2-6 t2-6 t1-17) + (move-if-not-zero t1-18 t2-6 t2-6 t1-17) (.movz a2-5 t3-2 t2-6 a2-4) ) (let ((t2-7 (* t1-18 16)) (t3-3 (+ a2-5 4)) ) - (.movn t1-19 t2-7 t2-7 t1-18) + (move-if-not-zero t1-19 t2-7 t2-7 t1-18) (.movz a2-6 t3-3 t2-7 a2-5) ) (let ((t2-8 (* t1-19 4)) (t3-4 (+ a2-6 2)) ) - (.movn t1-20 t2-8 t2-8 t1-19) + (move-if-not-zero t1-20 t2-8 t2-8 t1-19) (.movz a2-7 t3-4 t2-8 a2-6) (let ((t1-21 (* t1-20 2)) (t2-9 (+ a2-7 1)) ) - (.movn t3-5 t1-21 t1-21 t3-4) + (move-if-not-zero t3-5 t1-21 t1-21 t3-4) (.movz a2-8 t2-9 t1-21 a2-7) ) ) @@ -279,7 +273,7 @@ 0 ) (else - (let ((a2-1 (/ (the-as int (- (the-as uint arg1) (the-as uint (-> arg0 cpuinfo-table 0)))) 144))) + (let ((a2-1 (/ (the-as int (- (the-as uint arg1) (the-as uint (the-as uint (-> arg0 cpuinfo-table 0))))) 144))) (when (or (< a2-1 0) (>= a2-1 (+ (-> arg0 length 0) (-> arg0 length 1)))) (format 0 "Tried to release particle ~D~%" a2-1) (return #f) @@ -735,7 +729,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index 0e4b857469..b01bc96353 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -12,7 +12,7 @@ (trans vector :inline :offset-assert 64) (quat quaternion :inline :offset-assert 80) (scale vector :inline :offset-assert 96) - (notice-time int64 :offset-assert 112) + (notice-time time-frame :offset-assert 112) (flex-blend float :offset-assert 120) (blend float :offset-assert 124) (max-dist meters :offset-assert 128) diff --git a/test/decompiler/reference/engine/target/logic-target_REF.gc b/test/decompiler/reference/engine/target/logic-target_REF.gc index 018e80a936..39df5757ea 100644 --- a/test/decompiler/reference/engine/target/logic-target_REF.gc +++ b/test/decompiler/reference/engine/target/logic-target_REF.gc @@ -5,7 +5,9 @@ ;; Used lq/sq (defbehavior build-conversions target ((arg0 vector)) (surface-mult! (-> self control unknown-surface01) (-> self control unknown-surface00) (-> self control surf)) - (when (and (and (= (-> self fact-info-target eco-type) 3) (>= (-> self fact-info-target eco-level) 1.0)) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-blue)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (or (= (-> self control unknown-surface00 name) 'run) (= (-> self control unknown-surface00 name) 'jump)) ) (set! (-> self control unknown-surface01 target-speed) @@ -574,8 +576,8 @@ (< f0-1 0.0) (< 32768.0 f1-1) (< 0.7 (-> self control unknown-float20)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) 90) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) 90) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) (seconds 0.3)) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) (seconds 0.3)) (logtest? (-> self control status) 1) (and (< 0.7 (-> self control surface-angle)) #t) ) @@ -586,7 +588,7 @@ ;; definition for function target-move-dist ;; Used lq/sq -(defbehavior target-move-dist target ((arg0 int)) +(defbehavior target-move-dist target ((arg0 time-frame)) (let ((s5-0 (new-stack-vector0)) (f30-0 0.0) (gp-0 0) @@ -794,7 +796,7 @@ ) (set! (-> self control unknown-dword70) (-> *display* base-frame-counter)) ) - (if (< (- (-> *display* base-frame-counter) (-> self control unknown-dword70)) 60) + (if (< (- (-> *display* base-frame-counter) (-> self control unknown-dword70)) (seconds 0.2)) (set! f30-4 (+ 204800.0 f30-4)) ) (if (and (zero? (logand (-> self control status) 8)) @@ -924,10 +926,10 @@ (let ((gp-0 (vector-z-quaternion! (new-stack-vector0) (-> self control dir-targ))) (s5-0 (if (and (or (zero? (logand (logior (-> self control status) (-> self control old-status)) 5)) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) 150) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword20)) (seconds 0.5)) (!= (-> self next-state name) 'target-walk) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) 150) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword21)) (seconds 0.5)) (logtest? (-> self control unknown-surface01 flags) 16) (!= (-> self control unknown-float41) 0.0) ) @@ -1053,9 +1055,7 @@ ) ) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons triangle) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) triangle) (zero? (-> self control unknown-int40)) (zero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) ) @@ -1065,7 +1065,7 @@ (logand (-> self control root-prim prim-core action) (collide-action ca-7 ca-8 ca-9 ca-12 ca-13 ca-14)) ) (-> *setting-control* current allow-look-around) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self no-look-around-wait))) 15) + (>= (- (-> *display* base-frame-counter) (-> self no-look-around-wait)) (seconds 0.05)) (not (and (= (-> self control ground-pat material) (pat-material ice)) (< 4096.0 (-> self control unknown-float01)) ) @@ -1075,7 +1075,7 @@ ) ) (when (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) + (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*) (zero? (logand (-> self state-flags) 768)) ) @@ -1126,11 +1126,7 @@ (and (= (-> self next-state name) 'target-walk) (zero? (logand (-> self control status) 1))) ) (< f0-17 0.0) - (or (not - (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (or (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) *pause-lock* ) (and (>= (vector-dot @@ -1148,14 +1144,10 @@ ) ) (let ((v1-146 (-> self current-level))) - (when (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 600) + (when (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 2)) (and v1-146 (< (-> self control trans y) (-> v1-146 info bottom-height)) - (not - (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) (let ((a1-32 (new 'stack-no-clear 'event-message-block))) @@ -1300,14 +1292,14 @@ (set! (-> self control unknown-float110) (vector-length s4-1)) (cond ((and (< 819.2 (-> self control unknown-float110)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) 60) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) (seconds 0.2)) ) (vector-normalize! s4-1 1228.8) (move-by-vector! (-> self control) s4-1) (vector-float*! (-> self control rider-last-move) s4-1 (-> *display* frames-per-second)) - (set! (-> self control rider-time) (the-as uint (-> *display* base-frame-counter))) - (if (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword41)) 150) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) 150) + (set! (-> self control rider-time) (-> *display* base-frame-counter)) + (if (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword41)) (seconds 0.5)) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword40)) (seconds 0.5)) ) (send-event self 'end-mode) ) @@ -1316,7 +1308,7 @@ (let ((a1-6 (new 'stack-no-clear 'vector))) (vector-! a1-6 (-> s5-0 center-hold) (-> self control unknown-vector91)) (vector-float*! (-> self control rider-last-move) s4-1 (-> *display* frames-per-second)) - (set! (-> self control rider-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self control rider-time) (-> *display* base-frame-counter)) (move-to-point! (-> self control) a1-6) ) (set! (-> self control unknown-float110) 0.0) @@ -1354,7 +1346,7 @@ ) (let ((a1-7 (vector-! (new-stack-vector0) (-> gp-0 center-hold) (-> gp-0 center-hold-old)))) (vector-float*! (-> self control rider-last-move) a1-7 (-> *display* frames-per-second)) - (set! (-> self control rider-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self control rider-time) (-> *display* base-frame-counter)) (move-by-vector! (-> self control) a1-7) ) ) diff --git a/test/decompiler/reference/engine/target/target-death_REF.gc b/test/decompiler/reference/engine/target/target-death_REF.gc index ea96148024..393e02fbbd 100644 --- a/test/decompiler/reference/engine/target/target-death_REF.gc +++ b/test/decompiler/reference/engine/target/target-death_REF.gc @@ -193,7 +193,7 @@ (set! *spawn-actors* #t) (set! *teleport* #t) (set! (-> *ACTOR-bank* birth-max) 1000) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (cond ((logtest? (-> arg0 flags) 128) (go target-title) @@ -204,7 +204,7 @@ ((logtest? (-> arg0 flags) 32) (let ((s5-3 (entity-by-name "sage-23"))) (when s5-3 - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill s5-3) (suspend) (send-event @@ -223,7 +223,7 @@ ) (let ((s5-4 (entity-by-name "sage-23"))) (when s5-4 - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill s5-4) (suspend) (set! arg0 (get-continue-by-name *game-info* "village1-hut")) @@ -240,7 +240,7 @@ (go target-demo) ) ((logtest? (-> arg0 flags) 64) - (set-blackout-frames 300) + (set-blackout-frames (seconds 1)) (let ((s5-5 (get-process *default-dead-pool* process #x4000))) (when s5-5 (let ((t9-60 (method-of-type process activate))) @@ -252,7 +252,7 @@ (local-vars (v1-10 basic)) (let ((gp-0 (entity-by-name "sage-23"))) (when gp-0 - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill gp-0) (suspend) (suspend) @@ -265,7 +265,7 @@ ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 600) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 2)) (suspend) ) ) @@ -444,7 +444,7 @@ ) (else (let ((s5-7 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-7) 15) + (until (>= (- (-> *display* base-frame-counter) s5-7) (seconds 0.05)) (suspend) ) ) @@ -619,7 +619,7 @@ ) ((begin (target-timed-invulnerable (-> arg0 invinc-time) self) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 (seconds 0.5)) (let ((v1-13 (-> arg0 angle))) (= v1-13 'up) ) @@ -660,20 +660,14 @@ (when (and (zero? (logand (-> self control root-prim prim-core action) (collide-action ca-9 ca-14))) (not (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health)))) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack-air #f) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -693,13 +687,11 @@ ) ) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> *TARGET-bank* stuck-time))) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) + (the-as time-frame (-> *TARGET-bank* stuck-time)) + ) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -965,9 +957,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) - (when (and (not *pause-lock*) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) + (when (and (not *pause-lock*) (cpad-hold? (-> self control unknown-cpad-info00 number) r2)) (pickup-collectable! (-> self fact-info-target) (pickup-type eco-green) (the-as float 1.0) (the-as handle #f)) (go target-stance) ) @@ -1031,7 +1021,7 @@ (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) (ja-channel-set! 0) (let ((s3-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s3-1) 300) + (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) (suspend) ) ) @@ -1188,43 +1178,6 @@ ;; failed to figure out what this is: (defstate target-death (target) - :event - (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('end-mode) - (let ((v0-0 (the-as object #t))) - (set! (-> self control unknown-uint20) (the-as uint v0-0)) - v0-0 - ) - ) - (('change-mode) - (case (-> arg3 param 0) - (('grab) - #t - ) - ) - ) - (('notify) - (when (type-type? (-> arg0 type) pov-camera) - (case (-> arg3 param 0) - (('die 'abort-request) - (set! (-> self control unknown-uint20) (the-as uint #t)) - (set-blackout-frames 60) - ) - ) - ) - ) - (('get-pickup) - #f - ) - (('touched) - #f - ) - (else - (target-generic-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) :exit (behavior () (set! (-> self state-flags) (logand -32777 (-> self state-flags))) @@ -1267,7 +1220,7 @@ (ja-channel-set! 0) (ja-post) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 300) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 1)) (suspend) ) ) @@ -1341,7 +1294,7 @@ (ja-channel-set! 0) (ja-post) (let ((gp-9 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-9) 600) + (until (>= (- (-> *display* base-frame-counter) gp-9) (seconds 2)) (suspend) ) ) @@ -1399,7 +1352,7 @@ (none) ) ) - (target-falling-anim 30 99) + (target-falling-anim (seconds 0.1) 99) (ja-channel-push! 1 90) (let ((a0-75 (-> self skel root-channel 0))) (set! (-> a0-75 frame-group) (the-as art-joint-anim (-> self draw art-group data 43))) @@ -1408,7 +1361,7 @@ (joint-control-channel-group! a0-75 (the-as art-joint-anim (-> self draw art-group data 43)) num-func-loop!) ) (let ((gp-12 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-12) 240) + (until (>= (- (-> *display* base-frame-counter) gp-12) (seconds 0.8)) (let ((a0-76 (-> self skel root-channel 0))) (set! (-> a0-76 frame-group) (the-as art-joint-anim (-> self draw art-group data 43))) (set! (-> a0-76 param 0) 0.5) diff --git a/test/decompiler/reference/engine/target/target-h_REF.gc b/test/decompiler/reference/engine/target/target-h_REF.gc index 9c3ba1c5aa..150ff9f9a5 100644 --- a/test/decompiler/reference/engine/target/target-h_REF.gc +++ b/test/decompiler/reference/engine/target/target-h_REF.gc @@ -10,7 +10,7 @@ (racer racer-info :offset-assert 180) (game game-info :offset-assert 184) (neck joint-mod :offset-assert 188) - (state-hook-time uint64 :offset-assert 192) + (state-hook-time time-frame :offset-assert 192) (state-hook (function none :behavior target) :offset-assert 200) (cam-user-mode symbol :offset-assert 204) (sidekick (pointer sidekick) :offset-assert 208) @@ -27,8 +27,8 @@ (saved-owner uint64 :offset-assert 528) (alt-neck-pos vector :inline :offset-assert 544) (fp-hud handle :offset-assert 560) - (no-load-wait uint64 :offset-assert 568) - (no-look-around-wait uint64 :offset-assert 576) + (no-load-wait time-frame :offset-assert 568) + (no-look-around-wait time-frame :offset-assert 576) ) :heap-base #x1e0 :method-count-assert 21 diff --git a/test/decompiler/reference/engine/target/target-handler_REF.gc b/test/decompiler/reference/engine/target/target-handler_REF.gc index aee6eff96e..fb5cb5d82f 100644 --- a/test/decompiler/reference/engine/target/target-handler_REF.gc +++ b/test/decompiler/reference/engine/target/target-handler_REF.gc @@ -140,7 +140,7 @@ (rot->dir-targ! (-> self control)) (logior! (-> self control status) 7) (set! v0-0 (the-as none (-> *display* base-frame-counter))) - (set! (-> self control unknown-dword11) (the-as int v0-0)) + (set! (-> self control unknown-dword11) (the-as time-frame v0-0)) v0-0 ) (('reset) @@ -280,12 +280,14 @@ ) ) ((= v1-0 'no-load-wait) - (set! v0-0 (the-as none (+ (-> *display* base-frame-counter) (-> arg3 param 0)))) - (set! (-> self no-load-wait) (the-as uint v0-0)) + (set! v0-0 (the-as none (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0))))) + (set! (-> self no-load-wait) (the-as time-frame v0-0)) v0-0 ) ((= v1-0 'no-look-around) - (set! (-> self no-look-around-wait) (the-as uint (+ (-> *display* base-frame-counter) (-> arg3 param 0)))) + (set! (-> self no-look-around-wait) + (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0))) + ) (if (= (-> self next-state name) 'target-look-around) (send-event self 'end-mode) ) @@ -315,7 +317,7 @@ ) ) (set! (-> s5-0 mask) (the-as uint 2248)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) (go arg3 'shove s5-0) ) ) @@ -339,7 +341,9 @@ ((or (logtest? (-> self state-flags) 112) (and (logtest? (-> arg1 mask) 32) (= (-> arg1 mode) 'darkeco) - (and (and (= (-> self fact-info-target eco-type) 2) (>= (-> self fact-info-target eco-level) 1.0)) + (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (logtest? #x100002 (-> self state-flags)) ) ) @@ -424,7 +428,7 @@ ) self ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 (seconds 0.5)) (sound-play-by-name (static-sound-name "oof") (new-sound-id) 1024 0 0 1 #t) #t ) @@ -533,7 +537,7 @@ #f (static-sound-name "spin-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2)) ) ((= v1-5 'punch) (set! sv-128 @@ -627,7 +631,7 @@ #f (static-sound-name "punch-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((= v1-5 'flip) (dummy-12 @@ -638,7 +642,7 @@ #f (static-sound-name "punch-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.1)) ) ((= v1-5 'uppercut) (set! sv-176 @@ -733,7 +737,7 @@ #f (static-sound-name "uppercut-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((or (= v1-5 'flop) (= v1-5 'flop-down)) (dummy-10 (-> self skel effect) 'group-flop-hit (the-as float -1.0) 23) @@ -746,7 +750,7 @@ #f (static-sound-name "flop-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((= v1-5 'flut-attack) (dummy-12 @@ -757,7 +761,7 @@ #f (static-sound-name "punch-hit") ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.2)) ) ) ) @@ -833,7 +837,7 @@ (or (logtest? (-> self water flags) 512) (logtest? (-> self state-flags) #x830e) (logtest? (-> self control root-prim prim-core action) (collide-action ca-7 ca-8 ca-9 ca-12 ca-13 ca-14)) - (>= (the-as int (-> self no-load-wait)) (-> *display* base-frame-counter)) + (>= (-> self no-load-wait) (-> *display* base-frame-counter)) ) ) ) @@ -1019,7 +1023,7 @@ (zero? (logand (-> self state-flags) #x8008)) ) (set! (-> self control unknown-vector52 quad) (-> self control trans quad)) - (target-timed-invulnerable 30 self) + (target-timed-invulnerable (seconds 0.1) self) (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) ) ) diff --git a/test/decompiler/reference/engine/target/target-part_REF.gc b/test/decompiler/reference/engine/target/target-part_REF.gc index b8599ee4c0..676edd1a22 100644 --- a/test/decompiler/reference/engine/target/target-part_REF.gc +++ b/test/decompiler/reference/engine/target/target-part_REF.gc @@ -2390,7 +2390,7 @@ ;; definition for function process-drawable-burn-effect ;; Used lq/sq -(defbehavior process-drawable-burn-effect target ((arg0 int)) +(defbehavior process-drawable-burn-effect target ((arg0 time-frame)) (sound-play-by-name (static-sound-name "get-burned") (new-sound-id) 1024 0 0 1 #t) (let ((s5-1 (new 'stack 'rgbaf)) (s3-0 (-> *display* base-frame-counter)) diff --git a/test/decompiler/reference/engine/target/target-util_REF.gc b/test/decompiler/reference/engine/target/target-util_REF.gc index c3d00655c3..b33e5c9334 100644 --- a/test/decompiler/reference/engine/target/target-util_REF.gc +++ b/test/decompiler/reference/engine/target/target-util_REF.gc @@ -29,88 +29,88 @@ ;; definition of type target-bank (deftype target-bank (basic) - ((jump-collide-offset meters :offset-assert 4) - (jump-height-min meters :offset-assert 8) - (jump-height-max meters :offset-assert 12) - (double-jump-height-min meters :offset-assert 16) - (double-jump-height-max meters :offset-assert 20) - (flip-jump-height-min meters :offset-assert 24) - (flip-jump-height-max meters :offset-assert 28) - (duck-jump-height-min meters :offset-assert 32) - (duck-jump-height-max meters :offset-assert 36) - (flop-jump-height-min meters :offset-assert 40) - (flop-jump-height-max meters :offset-assert 44) - (attack-jump-height-min meters :offset-assert 48) - (attack-jump-height-max meters :offset-assert 52) - (edge-grab-jump-height-min meters :offset-assert 56) - (edge-grab-jump-height-max meters :offset-assert 60) - (swim-jump-height-min meters :offset-assert 64) - (swim-jump-height-max meters :offset-assert 68) - (tube-jump-height-min meters :offset-assert 72) - (tube-jump-height-max meters :offset-assert 76) - (wheel-duration seconds :offset-assert 80) - (wheel-jump-pre-window seconds :offset-assert 88) - (wheel-jump-post-window seconds :offset-assert 96) - (wheel-timeout seconds :offset-assert 104) - (wheel-speed-min meters :offset-assert 112) - (wheel-speed-inc meters :offset-assert 116) - (wheel-flip-duration seconds :offset-assert 120) - (wheel-flip-height meters :offset-assert 128) - (wheel-flip-dist meters :offset-assert 132) - (wheel-flip-art-height meters :offset-assert 136) - (wheel-flip-art-dist meters :offset-assert 140) - (duck-slide-distance meters :offset-assert 144) - (fall-far meters :offset-assert 148) - (fall-far-inc meters :offset-assert 152) - (attack-timeout seconds :offset-assert 160) - (ground-timeout seconds :offset-assert 168) - (slide-down-timeout seconds :offset-assert 176) - (fall-timeout seconds :offset-assert 184) - (fall-stumble-threshold meters :offset-assert 192) - (yellow-projectile-speed meters :offset-assert 196) - (hit-invulnerable-timeout seconds :offset-assert 200) - (run-cycle-length float :offset-assert 208) - (walk-cycle-dist meters :offset-assert 212) - (walk-up-cycle-dist meters :offset-assert 216) - (walk-down-cycle-dist meters :offset-assert 220) - (walk-side-cycle-dist meters :offset-assert 224) - (run-cycle-dist meters :offset-assert 228) - (run-up-cycle-dist meters :offset-assert 232) - (run-down-cycle-dist meters :offset-assert 236) - (run-side-cycle-dist meters :offset-assert 240) - (run-wall-cycle-dist meters :offset-assert 244) - (duck-walk-cycle-dist meters :offset-assert 248) - (wade-shallow-walk-cycle-dist meters :offset-assert 252) - (wade-deep-walk-cycle-dist meters :offset-assert 256) - (smack-surface-dist meters :offset-assert 260) - (smack-surface-height meters :offset-assert 264) - (min-dive-depth meters :offset-assert 268) - (root-radius meters :offset-assert 272) - (root-offset vector :inline :offset-assert 288) - (body-radius meters :offset-assert 304) - (edge-radius meters :offset-assert 308) - (edge-offset vector :inline :offset-assert 320) - (head-radius meters :offset-assert 336) - (head-height meters :offset-assert 340) - (head-offset vector :inline :offset-assert 352) - (spin-radius meters :offset-assert 368) - (spin-offset vector :inline :offset-assert 384) - (duck-spin-radius meters :offset-assert 400) - (duck-spin-offset vector :inline :offset-assert 416) - (punch-radius meters :offset-assert 432) - (punch-offset vector :inline :offset-assert 448) - (uppercut-radius meters :offset-assert 464) - (uppercut0-offset vector :inline :offset-assert 480) - (uppercut1-offset vector :inline :offset-assert 496) - (flop-radius meters :offset-assert 512) - (flop0-offset vector :inline :offset-assert 528) - (flop1-offset vector :inline :offset-assert 544) - (stuck-time seconds :offset-assert 560) - (stuck-timeout seconds :offset-assert 568) - (stuck-distance meters :offset-assert 576) - (tongue-pull-speed-min float :offset-assert 580) - (tongue-pull-speed-max float :offset-assert 584) - (yellow-attack-timeout seconds :offset-assert 592) + ((jump-collide-offset meters :offset-assert 4) + (jump-height-min meters :offset-assert 8) + (jump-height-max meters :offset-assert 12) + (double-jump-height-min meters :offset-assert 16) + (double-jump-height-max meters :offset-assert 20) + (flip-jump-height-min meters :offset-assert 24) + (flip-jump-height-max meters :offset-assert 28) + (duck-jump-height-min meters :offset-assert 32) + (duck-jump-height-max meters :offset-assert 36) + (flop-jump-height-min meters :offset-assert 40) + (flop-jump-height-max meters :offset-assert 44) + (attack-jump-height-min meters :offset-assert 48) + (attack-jump-height-max meters :offset-assert 52) + (edge-grab-jump-height-min meters :offset-assert 56) + (edge-grab-jump-height-max meters :offset-assert 60) + (swim-jump-height-min meters :offset-assert 64) + (swim-jump-height-max meters :offset-assert 68) + (tube-jump-height-min meters :offset-assert 72) + (tube-jump-height-max meters :offset-assert 76) + (wheel-duration time-frame :offset-assert 80) + (wheel-jump-pre-window time-frame :offset-assert 88) + (wheel-jump-post-window time-frame :offset-assert 96) + (wheel-timeout time-frame :offset-assert 104) + (wheel-speed-min meters :offset-assert 112) + (wheel-speed-inc meters :offset-assert 116) + (wheel-flip-duration time-frame :offset-assert 120) + (wheel-flip-height meters :offset-assert 128) + (wheel-flip-dist meters :offset-assert 132) + (wheel-flip-art-height meters :offset-assert 136) + (wheel-flip-art-dist meters :offset-assert 140) + (duck-slide-distance meters :offset-assert 144) + (fall-far meters :offset-assert 148) + (fall-far-inc meters :offset-assert 152) + (attack-timeout time-frame :offset-assert 160) + (ground-timeout time-frame :offset-assert 168) + (slide-down-timeout time-frame :offset-assert 176) + (fall-timeout time-frame :offset-assert 184) + (fall-stumble-threshold meters :offset-assert 192) + (yellow-projectile-speed meters :offset-assert 196) + (hit-invulnerable-timeout time-frame :offset-assert 200) + (run-cycle-length float :offset-assert 208) + (walk-cycle-dist meters :offset-assert 212) + (walk-up-cycle-dist meters :offset-assert 216) + (walk-down-cycle-dist meters :offset-assert 220) + (walk-side-cycle-dist meters :offset-assert 224) + (run-cycle-dist meters :offset-assert 228) + (run-up-cycle-dist meters :offset-assert 232) + (run-down-cycle-dist meters :offset-assert 236) + (run-side-cycle-dist meters :offset-assert 240) + (run-wall-cycle-dist meters :offset-assert 244) + (duck-walk-cycle-dist meters :offset-assert 248) + (wade-shallow-walk-cycle-dist meters :offset-assert 252) + (wade-deep-walk-cycle-dist meters :offset-assert 256) + (smack-surface-dist meters :offset-assert 260) + (smack-surface-height meters :offset-assert 264) + (min-dive-depth meters :offset-assert 268) + (root-radius meters :offset-assert 272) + (root-offset vector :inline :offset-assert 288) + (body-radius meters :offset-assert 304) + (edge-radius meters :offset-assert 308) + (edge-offset vector :inline :offset-assert 320) + (head-radius meters :offset-assert 336) + (head-height meters :offset-assert 340) + (head-offset vector :inline :offset-assert 352) + (spin-radius meters :offset-assert 368) + (spin-offset vector :inline :offset-assert 384) + (duck-spin-radius meters :offset-assert 400) + (duck-spin-offset vector :inline :offset-assert 416) + (punch-radius meters :offset-assert 432) + (punch-offset vector :inline :offset-assert 448) + (uppercut-radius meters :offset-assert 464) + (uppercut0-offset vector :inline :offset-assert 480) + (uppercut1-offset vector :inline :offset-assert 496) + (flop-radius meters :offset-assert 512) + (flop0-offset vector :inline :offset-assert 528) + (flop1-offset vector :inline :offset-assert 544) + (stuck-time seconds :offset-assert 560) + (stuck-timeout seconds :offset-assert 568) + (stuck-distance meters :offset-assert 576) + (tongue-pull-speed-min float :offset-assert 580) + (tongue-pull-speed-max float :offset-assert 584) + (yellow-attack-timeout time-frame :offset-assert 592) ) :method-count-assert 9 :size-assert #x258 @@ -210,20 +210,20 @@ :jump-collide-offset (meters 0.7) :jump-height-min (meters 1.01) :jump-height-max (meters 3.5) - :double-jump-height-min (meters 1.0) + :double-jump-height-min (meters 1) :double-jump-height-max (meters 2.5) - :flip-jump-height-min (meters 5.0) - :flip-jump-height-max (meters 7.0) - :duck-jump-height-min (meters 5.0) - :duck-jump-height-max (meters 7.0) - :flop-jump-height-min (meters 5.0) - :flop-jump-height-max (meters 7.0) - :attack-jump-height-min (meters 4.0) + :flip-jump-height-min (meters 5) + :flip-jump-height-max (meters 7) + :duck-jump-height-min (meters 5) + :duck-jump-height-max (meters 7) + :flop-jump-height-min (meters 5) + :flop-jump-height-max (meters 7) + :attack-jump-height-min (meters 4) :attack-jump-height-max (meters 5.5) :edge-grab-jump-height-min (meters 1.7) :edge-grab-jump-height-max (meters 1.7) - :swim-jump-height-min (meters 5.0) - :swim-jump-height-max (meters 5.0) + :swim-jump-height-min (meters 5) + :swim-jump-height-max (meters 5) :tube-jump-height-min (meters 1.75) :tube-jump-height-max (meters 2.5) :wheel-duration (seconds 0.5) @@ -237,14 +237,14 @@ :wheel-flip-art-height (meters 3.2969) :wheel-flip-art-dist (meters 12.5) :duck-slide-distance (meters 5.75) - :fall-far (meters 30.0) - :fall-far-inc (meters 20.0) + :fall-far (meters 30) + :fall-far-inc (meters 20) :attack-timeout (seconds 0.3) :ground-timeout (seconds 0.2) :slide-down-timeout (seconds 0.2) :fall-timeout (seconds 1) :fall-stumble-threshold (meters 39.9) - :yellow-projectile-speed (meters 60.0) + :yellow-projectile-speed (meters 60) :hit-invulnerable-timeout (seconds 3) :run-cycle-length 60.0 :walk-cycle-dist (meters 2.8) @@ -252,15 +252,15 @@ :walk-down-cycle-dist (meters 2.8) :walk-side-cycle-dist (meters 2.8) :run-cycle-dist (meters 6.25) - :run-up-cycle-dist (meters 5.0) - :run-down-cycle-dist (meters 5.0) + :run-up-cycle-dist (meters 5) + :run-down-cycle-dist (meters 5) :run-side-cycle-dist (meters 6.25) :run-wall-cycle-dist (meters 2.8) :duck-walk-cycle-dist (meters 3.25) - :wade-shallow-walk-cycle-dist (meters 6.0) - :wade-deep-walk-cycle-dist (meters 6.0) + :wade-shallow-walk-cycle-dist (meters 6) + :wade-deep-walk-cycle-dist (meters 6) :smack-surface-dist (meters 1.25) - :min-dive-depth (meters 2.0) + :min-dive-depth (meters 2) :root-radius (meters 2.2) :root-offset (new 'static 'vector :y 4915.2 :w 1.0) :body-radius (meters 0.7) @@ -276,7 +276,7 @@ :duck-spin-offset (new 'static 'vector :y 4096.0 :w 1.0) :punch-radius (meters 1.3) :punch-offset (new 'static 'vector :y 5324.8 :w 1.0) - :uppercut-radius (meters 1.0) + :uppercut-radius (meters 1) :uppercut0-offset (new 'static 'vector :y 3276.8 :w 1.0) :uppercut1-offset (new 'static 'vector :y 9011.2 :w 1.0) :flop-radius (meters 1.4) @@ -823,7 +823,7 @@ ;; definition for function can-play-stance-amibent? (defbehavior can-play-stance-amibent? target () - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 9000) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 30)) (not (-> *setting-control* current talking)) (not (-> *setting-control* current spooling)) (not (-> *setting-control* current movie)) @@ -836,9 +836,7 @@ ;; definition for function can-jump? (defbehavior can-jump? target ((arg0 symbol)) (and (or (logtest? (-> self control status) 1) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (and (logtest? (-> self control status) 1) (< 0.866 (-> self control surface-angle))) ) (and (zero? (logand (-> self control unknown-surface01 flags) 64)) @@ -869,9 +867,7 @@ ;; INFO: Return type mismatch object vs none. (defbehavior fall-test target () (when (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (let ((v1-15 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -887,9 +883,7 @@ ) ) ) - (when (and (< (- (-> *display* base-frame-counter) (the-as int (-> self control rider-time))) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (when (and (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (-> *TARGET-bank* ground-timeout)) (logtest? (-> self control unknown-surface01 flags) #x4000) ) (+! (-> self control transv x) (-> self control rider-last-move x)) @@ -904,9 +898,7 @@ ;; INFO: Return type mismatch object vs none. (defbehavior slide-down-test target () (if (and (zero? (logand (-> self control status) 129)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (logtest? (-> self control status) 4) (< 0.5 (-> self control surface-angle)) ) @@ -981,7 +973,10 @@ ) (or (and (logtest? (-> self state-flags) 4096) (or (zero? (logand (-> self state-flags) #x4000)) - (not (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0))) + (not (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + ) ) ) (logtest? (-> self control unknown-surface01 flags) 384) @@ -989,18 +984,18 @@ ) #f ) - ((and (or (not arg0) (and (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) - (< (-> self control unknown-float61) 0.7) - ) + ((and (or (not arg0) + (and (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) + (< (-> self control unknown-float61) 0.7) + ) ) (>= (- (-> *display* base-frame-counter) - (the-as int (if (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) - (-> *TARGET-bank* yellow-attack-timeout) - (-> *TARGET-bank* attack-timeout) - ) - ) + (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (-> *TARGET-bank* yellow-attack-timeout) + (-> *TARGET-bank* attack-timeout) + ) ) (-> self control unknown-dword31) ) @@ -1020,9 +1015,7 @@ ((or (logtest? (-> self state-flags) 4096) (logtest? (-> self control unknown-surface01 flags) 640)) #f ) - ((>= (- (-> *display* base-frame-counter) (the-as int (-> *TARGET-bank* attack-timeout))) - (-> self control unknown-dword33) - ) + ((>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* attack-timeout)) (-> self control unknown-dword33)) #t ) (else @@ -1106,10 +1099,10 @@ ;; definition for function target-timed-invulnerable ;; INFO: Return type mismatch int vs none. -(defun target-timed-invulnerable ((arg0 seconds) (arg1 target)) +(defun target-timed-invulnerable ((arg0 time-frame) (arg1 target)) (logior! (-> arg1 state-flags) 32) (set! (-> arg1 control unknown-dword80) (-> *display* base-frame-counter)) - (set! (-> arg1 control unknown-dword81) (the-as int arg0)) + (set! (-> arg1 control unknown-dword81) arg0) (set-collide-kinds (-> arg1 control) 2 (collide-kind target-attack) (collide-kind)) 0 (none) diff --git a/test/decompiler/reference/engine/target/target2_REF.gc b/test/decompiler/reference/engine/target/target2_REF.gc index 42c87283bc..6ecc6c1e45 100644 --- a/test/decompiler/reference/engine/target/target2_REF.gc +++ b/test/decompiler/reference/engine/target/target2_REF.gc @@ -21,7 +21,7 @@ (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) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (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))) @@ -44,7 +44,7 @@ ) ) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 90) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.3)) (suspend) (let ((s5-0 (-> self skel root-channel 0))) (set! (-> s5-0 param 0) (ja-aframe (the-as float 19.0) 0)) @@ -164,9 +164,7 @@ :trans (behavior () (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) - ) + (if (or (cpad-hold? (-> self control unknown-cpad-info00 number) start l1 r1 triangle circle x square) *progress-process* ) (go target-stance) @@ -552,7 +550,7 @@ (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) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as time-frame 21)) (zero? (ja-group-size)) ) ) @@ -657,8 +655,10 @@ ) (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) + (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.5)) (not *pause-lock*) ) (let ((gp-1 (vector-float*! @@ -712,9 +712,7 @@ ) (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) - ) + (when (cpad-pressed? (-> self control unknown-cpad-info00 number) triangle) (logclear! (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons triangle) @@ -841,8 +839,10 @@ ) (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)) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.45)) + (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (not *pause-lock*) ) (let ((gp-1 (vector-float*! @@ -1218,7 +1218,7 @@ (pad-buttons x) ) (zero? (logand (-> self state-flags) 2048)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (set! (-> self control transv quad) (the-as uint128 0)) (cond @@ -1538,7 +1538,7 @@ ) :trans (behavior () - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (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) ) @@ -1784,7 +1784,7 @@ (set! (-> self control transv quad) (the-as uint128 0)) (logclear! (-> self control root-prim prim-core action) (collide-action ca-3 ca-7)) (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) + (when (and (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (seconds 0.2)) (or (logtest? (-> self control unknown-surface01 flags) #x4000) (= (-> self control poly-pat material) (pat-material rotate)) ) @@ -1872,7 +1872,7 @@ (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) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (suspend) @@ -1885,7 +1885,9 @@ (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)) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> 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 @@ -2070,7 +2072,7 @@ ) (set! (-> self control unknown-dword82) (-> *display* base-frame-counter)) (let ((gp-4 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-4) 30) + (until (>= (- (-> *display* base-frame-counter) gp-4) (seconds 0.1)) (suspend) ) ) @@ -2156,15 +2158,13 @@ ) (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) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) 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)) + (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) (go target-yellow-jump-blast) (go target-running-attack) ) @@ -2225,18 +2225,14 @@ (behavior () ((-> self state-hook)) (when (and (zero? (logand (-> self water flags) 1024)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water wade-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> self water wade-time)) (seconds 0.05)) ) (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?) - ) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (go target-duck-stance) ) (if (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) @@ -2253,11 +2249,7 @@ ) (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?) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) 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) @@ -2285,7 +2277,7 @@ (behavior () ((-> self state-hook)) (when (and (zero? (logand (-> self water flags) 1024)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water wade-time))) 30) + (>= (- (-> *display* base-frame-counter) (-> self water wade-time)) (seconds 0.1)) ) (if (logtest? (-> self water flags) 2048) (go target-swim-stance) @@ -2295,11 +2287,7 @@ (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?) - ) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) 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) @@ -2313,11 +2301,7 @@ ) (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?) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) 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) @@ -2540,7 +2524,7 @@ (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) + (when (and (>= (- (-> *display* base-frame-counter) (the-as time-frame gp-6)) (seconds 0.2)) (< (- (-> self water height) (-> self control trans y)) 4096.0) ) (case (the int (ja-aframe-num 0)) @@ -2552,7 +2536,7 @@ 0 (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) ) - (set! gp-6 (-> *display* base-frame-counter)) + (set! gp-6 (the-as int (-> *display* base-frame-counter))) ) ((46 47 48 49) (dummy-13 @@ -2562,7 +2546,7 @@ 0 (vector-float*! (new 'stack-no-clear 'vector) (-> self control transv) 2.5) ) - (set! gp-6 (-> *display* base-frame-counter)) + (set! gp-6 (the-as int (-> *display* base-frame-counter))) ) ) ) @@ -2656,7 +2640,7 @@ (set-zero! (-> self water bob)) ) (when (and (zero? (logand (-> self water flags) 2048)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (if (logtest? (-> self water flags) 1024) (go target-wade-stance) @@ -2671,7 +2655,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water enter-swim-time))) 30) + (>= (- (-> *display* base-frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -2808,7 +2792,7 @@ (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) + (>= (- (-> *display* base-frame-counter) (-> self water swim-time)) (seconds 0.1)) ) (if (logtest? (-> self water flags) 1024) (go target-wade-stance) @@ -2823,7 +2807,7 @@ (pad-buttons x) ) (can-jump? #f) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self water enter-swim-time))) 30) + (>= (- (-> *display* base-frame-counter) (-> self water enter-swim-time)) (seconds 0.1)) ) (go target-swim-jump (-> *TARGET-bank* swim-jump-height-min) (-> *TARGET-bank* swim-jump-height-max)) ) @@ -2965,7 +2949,7 @@ (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 water swim-time) (-> *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) @@ -2990,11 +2974,11 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self water swim-time))) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self water swim-time)) (seconds 0.5)) (go target-stance) ) (cond - ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) + ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) (set! (-> self control unknown-surface00) *dive-mods*) (if (= (-> self next-state name) 'target-swim-down) (target-swim-tilt @@ -3178,7 +3162,7 @@ (-> 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 (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (zero? (logand (-> self state-flags) 2048)) (zero? (logand (-> self water flags) #x6000)) ) @@ -3189,8 +3173,8 @@ (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)) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) + (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) (let ((a1-1 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-1 from) self) @@ -3279,7 +3263,7 @@ (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)) + (if (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (set! f30-0 2.0) ) (TODO-RENAME-9 (-> self align)) @@ -3297,9 +3281,9 @@ ) (label cfg-37) (logior! (-> self water flags) 16) - (set! (-> self water swim-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self water swim-time) (-> *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)) + (set! (-> self water bob start-time) (+ (-> *display* base-frame-counter) (seconds -0.05))) (go target-swim-stance) (none) ) @@ -3318,7 +3302,7 @@ :trans (behavior () (cond - ((< (- (-> *display* base-frame-counter) (-> self state-time)) 150) + ((< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self water flags) (logior #x10000 (-> self water flags))) (set! (-> self control status) (logand -8 (-> self control status))) ) @@ -3434,7 +3418,7 @@ (go target-death 'target-hit-ground-hard) ) (else - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) (ja-channel-push! 1 1) (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! @@ -3523,8 +3507,8 @@ (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)) + ((arg0 vector) (arg1 time-frame) (arg2 float)) + (local-vars (sv-32 time-frame) (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)) diff --git a/test/decompiler/reference/engine/target/target_REF.gc b/test/decompiler/reference/engine/target/target_REF.gc index e05cce63c0..bc685e9c87 100644 --- a/test/decompiler/reference/engine/target/target_REF.gc +++ b/test/decompiler/reference/engine/target/target_REF.gc @@ -2,7 +2,7 @@ (in-package goal) ;; definition for function target-falling-anim -(defbehavior target-falling-anim target ((arg0 int) (arg1 int)) +(defbehavior target-falling-anim target ((arg0 time-frame) (arg1 int)) (let ((v1-2 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -173,12 +173,8 @@ ;; definition for function target-falling-trans ;; INFO: Return type mismatch int vs none. -(defbehavior target-falling-trans target ((arg0 basic) (arg1 cpad-list)) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) +(defbehavior target-falling-trans target ((arg0 basic) (arg1 time-frame)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack-air #f) ) (when (= arg0 'target-eco-powerup) @@ -190,7 +186,7 @@ (pad-buttons x) ) (zero? (logand (-> self water flags) 512)) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (zero? (logand (-> self state-flags) 2048)) ) (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) @@ -199,14 +195,10 @@ (if (logtest? (-> self control status) 1) (go target-hit-ground #f) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) - (>= (the-as int arg1) 0) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int arg1)) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) + (>= arg1 0) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) arg1) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) #t ) @@ -294,9 +286,7 @@ ) ) (set! (-> self event-hook) target-jump-event-handler) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (can-jump? #f) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (can-jump? #f)) (ja-channel-set! 0) (go target-high-jump @@ -610,11 +600,7 @@ (remove-exit) (go target-walk) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (set! (-> self control unknown-float81) 0.0) (remove-exit) (go target-duck-stance) @@ -1059,19 +1045,13 @@ ) (pad-buttons l1 r1) ) - (and (>= (- (-> *display* base-frame-counter) (the-as int (-> *TARGET-bank* wheel-timeout))) - (-> self control unknown-dword30) - ) + (and (>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* wheel-timeout)) (-> self control unknown-dword30)) (and (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) (can-wheel?)) ) ) (go target-wheel) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (target-effect-exit) (remove-exit) (go target-duck-walk) @@ -1106,7 +1086,7 @@ (if (can-hands? #t) (go target-running-attack) ) - (when (and (turn-around?) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 90)) + (when (and (turn-around?) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.3))) (set! (-> self control transv quad) (-> self control unknown-vector-array10 (-> self control unknown-int10) quad) ) @@ -1652,18 +1632,14 @@ ) (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) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack) ) (if (can-hands? #t) (go target-running-attack) ) (if (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 24) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.08)) ) (go target-falling #f) ) @@ -1728,7 +1704,7 @@ :trans (behavior () (when (or (logtest? (-> self control status) 1) - (if (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) + (if (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) #t ) ) @@ -1777,7 +1753,7 @@ (defbehavior init-var-jump target ((arg0 float) (arg1 float) (arg2 vector) (arg3 vector) (arg4 vector)) (set! (-> self control status) (logand -16385 (-> self control status))) (delete-back-vel) - (when (< (- (-> *display* base-frame-counter) (the-as int (-> self control rider-time))) 15) + (when (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (seconds 0.05)) (let ((f0-1 (fmax 0.0 @@ -2306,17 +2282,17 @@ (* 0.003921569 (the float (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) abutton 6))) ) ) - (target-falling-trans #f (the-as cpad-list (if (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 38) - ) - 15 - -1 - ) + (target-falling-trans #f (the-as time-frame (if (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 38) + ) + 15 + -1 + ) ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 12288.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (zero? (logand (-> self water flags) 512)) @@ -2325,13 +2301,11 @@ ) (go target-double-jump (-> *TARGET-bank* double-jump-height-min) (-> *TARGET-bank* double-jump-height-max)) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -2348,12 +2322,7 @@ ) ) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (slide-down-test) (set! (-> self control unknown-float122) (seek @@ -2523,23 +2492,21 @@ target-exit :trans (behavior () - (target-falling-trans #f (the-as cpad-list (if (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 38) - ) - 15 - -1 - ) + (target-falling-trans #f (the-as time-frame (if (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 38) + ) + 15 + -1 + ) ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -2557,12 +2524,7 @@ ) ) (if (!= (-> self state-time) (-> *display* base-frame-counter)) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) ) (set! (-> self control unknown-float122) (seek @@ -2664,14 +2626,14 @@ target-exit :trans (behavior () - (target-falling-trans #f (the-as cpad-list (if (= (if (> (-> self skel active-channels) 0) - (-> self skel root-channel 0 frame-group) - ) - (-> self draw art-group data 38) - ) - 15 - -1 - ) + (target-falling-trans #f (the-as time-frame (if (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 38) + ) + 15 + -1 + ) ) ) (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) @@ -2684,7 +2646,7 @@ (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 73728.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -2701,12 +2663,7 @@ ) ) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (set! (-> self control unknown-float122) (seek (-> self control unknown-float122) @@ -2923,10 +2880,10 @@ (behavior () (target-falling-trans (-> self control unknown-spoolanim00) - (the-as cpad-list (if (= (-> self control unknown-spoolanim00) #f) - 0 - (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) - ) + (the-as time-frame (if (= (-> self control unknown-spoolanim00) #f) + 0 + (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) + ) ) ) (none) @@ -2957,7 +2914,7 @@ (or (= v1-4 (-> self draw art-group data 42)) (= v1-4 (-> self draw art-group data 43))) ) (dummy-10 (-> self skel effect) 'group-blue-hit-ground-effect (-> (new 'static 'array float 1 0.0) 0) -1) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) ) (else (let ((f0-1 (vector-dot @@ -3024,20 +2981,10 @@ (go target-walk) ) ) - (if (and (or (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (not (can-exit-duck?)) - ) - (can-duck?) - ) + (if (and (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (not (can-exit-duck?))) (can-duck?)) (go target-duck-stance) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack) ) (if (can-hands? #t) @@ -3090,11 +3037,11 @@ (joint-control-channel-group! a0-1 (the-as art-joint-anim (-> self draw art-group data 51)) num-func-seek!) ) (until (ja-done? 0) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 74) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) (level-hint-spawn (game-text-id red-eco-tutorial) "sksp0072" @@ -3193,10 +3140,10 @@ ) :enter (behavior () - (if (or (and (= (-> self fact-info-target eco-type) 1) + (if (or (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 450) + (< (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 1.5)) ) (go target-yellow-blast) ) @@ -3231,7 +3178,7 @@ (and (>= (-> self control unknown-float63) 0.7) (zero? (logand (-> self control status) 32))) ) (begin - (set! (-> self control unknown-int21) (-> *display* base-frame-counter)) + (set! (-> self control unknown-int21) (the-as int (-> *display* base-frame-counter))) (set! (-> self control unknown-float81) 0.0) (let ((gp-0 (new-stack-vector0)) (f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -3265,9 +3212,9 @@ target-hit ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (and (< 4096.0 (-> self control unknown-float01)) - (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons square) @@ -3295,11 +3242,11 @@ (-> self control transv) ) ) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) (level-hint-spawn (game-text-id red-eco-tutorial) "sksp0072" @@ -3337,9 +3284,7 @@ (cond ((and (>= (ja-aframe-num 0) 20.0) (and (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (let ((v1-39 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -3374,7 +3319,7 @@ (pad-buttons square) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) ) (if (= (-> self control ground-pat material) (pat-material ice)) (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control unknown-float01)))) @@ -3403,7 +3348,7 @@ (set! (-> a0-44 param 1) (-> self control unknown-surface01 align-speed)) (joint-control-channel-group-eval! a0-44 (the-as art-joint-anim #f) num-func-seek!) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> *run-attack-mods* turnvv) 0.0) ) (if (< 2 gp-2) @@ -3413,9 +3358,7 @@ ) ) (if (and (zero? (logand (-> self control status) 1)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (-> *TARGET-bank* ground-timeout)) - ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (let ((v1-121 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -3541,7 +3484,7 @@ (set-quaternion! (-> self control) (-> self control dir-targ)) (go target-hit-ground #f) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self control dynam gravity-length) (seek (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length) @@ -3549,7 +3492,7 @@ ) ) ) - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (< (vector-dot (-> self control dynam gravity-normal) (-> self control unknown-vector10)) (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) ) @@ -3557,11 +3500,11 @@ (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) ) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 70) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) (level-hint-spawn (game-text-id red-eco-tutorial) "sksp0072" @@ -3614,7 +3557,7 @@ ) (while (not (or (and (< (fabs (/ f0-8 (* 0.0033333334 f1-1))) 150.0) (< f1-1 0.0)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 510) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.7)) ) ) (quaternion-rotate-y! @@ -3755,13 +3698,11 @@ (if (logtest? (-> self control status) 1) (go target-hit-ground #f) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -3780,9 +3721,7 @@ ) ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?) (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -3793,17 +3732,12 @@ ) (go target-attack-air 'uppercut) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) - (when (and (= (-> self fact-info-target eco-type) 2) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) ) (if (and (= (-> self control unknown-symbol30) 'uppercut) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) -8192.0) @@ -3895,7 +3829,7 @@ ) :enter (behavior ((arg0 float) (arg1 float) (arg2 float)) - (if (and (= (-> self fact-info-target eco-type) 1) + (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (go target-yellow-jump-blast) @@ -3948,7 +3882,7 @@ (or (= v1-6 (-> self draw art-group data 64)) (= v1-6 (-> self draw art-group data 66))) ) ) - (when (and (or (< (target-move-dist 30) 1638.4) + (when (and (or (< (target-move-dist (seconds 0.1)) 1638.4) (and (logtest? (-> self control status) 8) (< 0.7 (-> self control poly-angle))) ) (zero? (logand (-> self control status) 32)) @@ -3960,10 +3894,10 @@ ) (when gp-1 (logior! (-> self control status) 1) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5)) (dummy-10 (-> self skel effect) 'group-red-eco-strike-ground (ja-frame-num 0) 0) (let* ((s4-1 (get-process *default-dead-pool* touch-tracker #x4000)) (s5-1 (when s4-1 @@ -3996,7 +3930,7 @@ (go target-flop-hit-ground gp-1) ) ) - (when (and (= (-> self fact-info-target eco-type) 2) + (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) (dummy-10 @@ -4008,7 +3942,7 @@ 17 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) ) (when (and (not (-> self control unknown-symbol30)) (= (if (> (-> self skel active-channels) 0) @@ -4160,13 +4094,10 @@ ) ) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> *TARGET-bank* fall-timeout))) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *TARGET-bank* fall-timeout)) (go target-falling #f) ) - (if (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - (not *pause-lock*) - ) + (if (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*)) (go target-falling #f) ) (suspend) @@ -4204,7 +4135,7 @@ ) ) (target-land-effect) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (set! (-> self control unknown-uint20) (the-as uint arg0)) (set-forward-vel (-> (new 'static 'array float 1 0.0) 0)) @@ -4218,18 +4149,14 @@ :trans (behavior () (when (!= (-> self control unknown-spoolanim00) 'stuck) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) - (can-feet?) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) (go target-attack-air 'flop) ) ) - (when (and (and (= (-> self fact-info-target eco-type) 2) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) (-> (new 'static 'array float 1 1.0) 0)) ) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 75) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) ) (dummy-10 (-> self skel effect) @@ -4240,7 +4167,7 @@ 17 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) ) (let ((v1-33 (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -4319,8 +4246,8 @@ (set! (-> s4-0 frame-num) 0.0) ) (until (ja-done? 0) - (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) - (set! gp-0 (-> *display* base-frame-counter)) + (if (cpad-pressed? (-> self control unknown-cpad-info00 number) x) + (set! gp-0 (the-as int (-> *display* base-frame-counter))) ) (when (and (or (smack-surface? #f) (>= (-> self control unknown-float63) 0.7)) (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) @@ -4337,12 +4264,10 @@ ) ) (if (zero? s5-0) - (set! s5-0 (-> *display* base-frame-counter)) + (set! s5-0 (the-as int (-> *display* base-frame-counter))) ) ) - (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (-> *display* base-frame-counter) ) (TODO-RENAME-9 (-> self align)) @@ -4373,22 +4298,20 @@ (set! f30-0 (* f30-0 (fmin (-> (new 'static 'array float 1 1.0) 0) (-> self control unknown-float140)))) ) ) - (if (and (or (< (- (-> *display* base-frame-counter) gp-0) (the-as int (-> *TARGET-bank* wheel-jump-pre-window))) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (or (< (- (-> *display* base-frame-counter) (the-as time-frame gp-0)) (-> *TARGET-bank* wheel-jump-pre-window)) + (cpad-pressed? (-> self control unknown-cpad-info00 number) x) ) (can-jump? 'target-wheel-flip) ) (go target-wheel-flip (-> *TARGET-bank* wheel-flip-height) (-> *TARGET-bank* wheel-flip-dist)) ) ) - (set! (-> self state-hook-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-hook-time) (-> *display* base-frame-counter)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> *display* base-frame-counter) (the-as int (-> self state-hook-time))) - (the-as int (-> *TARGET-bank* wheel-jump-post-window)) - ) + ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (-> *TARGET-bank* wheel-jump-post-window)) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) ) (else @@ -4429,7 +4352,7 @@ :trans (behavior () (if (and (or (smack-surface? #f) - (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) + (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) ) (!= (-> self state-time) (-> *display* base-frame-counter)) ) @@ -4440,9 +4363,7 @@ target-hit ) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?) (and (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -4507,7 +4428,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (while (zero? (logand (-> self control status) 1)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 3) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.01)) (when (not (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -4562,12 +4483,12 @@ ) ) (target-land-effect) - (set! (-> self state-hook-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-hook-time) (-> *display* base-frame-counter)) (set! (-> self state-hook) (lambda :behavior target () (cond - ((>= (- (-> *display* base-frame-counter) (the-as int (-> self state-hook-time))) 30) + ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (seconds 0.1)) (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) ) (else diff --git a/test/decompiler/reference/engine/ui/hud-classes_REF.gc b/test/decompiler/reference/engine/ui/hud-classes_REF.gc index 136b7b4661..bd0a1d035e 100644 --- a/test/decompiler/reference/engine/ui/hud-classes_REF.gc +++ b/test/decompiler/reference/engine/ui/hud-classes_REF.gc @@ -514,12 +514,12 @@ ;; definition of type hud-money-all (deftype hud-money-all (hud) - ((x-scale float :offset-assert 280) - (y-scale float :offset-assert 284) - (y-pos int32 :offset-assert 288) - (total-orbs int32 :offset-assert 292) - (level-index int32 :offset-assert 296) - (start-time uint64 :offset-assert 304) + ((x-scale float :offset-assert 280) + (y-scale float :offset-assert 284) + (y-pos int32 :offset-assert 288) + (total-orbs int32 :offset-assert 292) + (level-index int32 :offset-assert 296) + (start-time time-frame :offset-assert 304) ) :heap-base #xd0 :method-count-assert 27 @@ -648,9 +648,9 @@ ) ) ) - (if (>= (+ (-> *display* base-frame-counter) -1500) (the-as int (-> obj start-time))) + (if (>= (+ (-> *display* base-frame-counter) (seconds -5)) (-> obj start-time)) (set! (-> obj deactivate-when-hidden) #t) - (TODO-RENAME-16 obj (-> *display* base-frame-counter) 0) + (TODO-RENAME-16 obj (the-as int (-> *display* base-frame-counter)) 0) ) ) 0 @@ -749,7 +749,7 @@ ) ) ) - (set! (-> obj start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj start-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "get-all-orbs") (new-sound-id) 1024 0 0 1 #t) 0 (none) @@ -1897,10 +1897,7 @@ (the-as uint (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) ) @@ -1912,17 +1909,17 @@ (t0-0 128) ) (case (-> *target* fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) - ((2) + (((pickup-type eco-red)) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) - ((4) + (((pickup-type eco-green)) (set! a2-1 0) (set! a3-0 128) (set! t0-0 32) @@ -1946,10 +1943,7 @@ (the-as uint (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) ) @@ -1961,17 +1955,17 @@ (t0-0 128) ) (case (-> *target* fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) - ((2) + (((pickup-type eco-red)) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) - ((4) + (((pickup-type eco-green)) (set! a2-1 0) (set! a3-0 128) (set! t0-0 32) @@ -1995,10 +1989,7 @@ (the-as uint (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) ) @@ -2010,17 +2001,17 @@ (t0-0 128) ) (case (-> *target* fact-info-target eco-type) - ((1) + (((pickup-type eco-yellow)) (set! a2-1 128) (set! a3-0 96) (set! t0-0 0) ) - ((2) + (((pickup-type eco-red)) (set! a2-1 128) (set! a3-0 32) (set! t0-0 0) ) - ((4) + (((pickup-type eco-green)) (set! a2-1 0) (set! a3-0 128) (set! t0-0 32) @@ -2070,10 +2061,7 @@ (the-as int (- (-> *target* fact-info-target eco-timeout) - (the-as - uint - (- (-> *display* game-frame-counter) (the-as int (-> *target* fact-info-target eco-pickup-time))) - ) + (the-as uint (- (-> *display* game-frame-counter) (-> *target* fact-info-target eco-pickup-time))) ) ) (the-as int (-> *target* fact-info-target eco-timeout)) diff --git a/test/decompiler/reference/engine/ui/hud-h_REF.gc b/test/decompiler/reference/engine/ui/hud-h_REF.gc index 7be28dfded..6f5b0892a2 100644 --- a/test/decompiler/reference/engine/ui/hud-h_REF.gc +++ b/test/decompiler/reference/engine/ui/hud-h_REF.gc @@ -54,8 +54,8 @@ ((value int32 :offset-assert 112) (value2 int32 :offset-assert 116) (target-value int32 :offset-assert 120) - (last-increment-time int64 :offset-assert 128) - (last-target-equal-time int64 :offset-assert 136) + (last-increment-time time-frame :offset-assert 128) + (last-target-equal-time time-frame :offset-assert 136) (offset int32 :offset-assert 144) (y-offset int32 :offset-assert 148) (next-y-offset int32 :offset-assert 152) @@ -70,8 +70,8 @@ (disable symbol :offset-assert 188) (force-on-screen symbol :offset-assert 192) (deactivate-when-hidden symbol :offset-assert 196) - (trigger-time uint64 :offset-assert 200) - (last-hide-time uint64 :offset-assert 208) + (trigger-time time-frame :offset-assert 200) + (last-hide-time time-frame :offset-assert 208) (nb-of-icons int32 :offset-assert 216) (icons hud-icon 6 :offset-assert 220) (max-nb-of-particles int32 :offset-assert 244) diff --git a/test/decompiler/reference/engine/ui/hud_REF.gc b/test/decompiler/reference/engine/ui/hud_REF.gc index 4c4caad42c..d25744e0dc 100644 --- a/test/decompiler/reference/engine/ui/hud_REF.gc +++ b/test/decompiler/reference/engine/ui/hud_REF.gc @@ -52,8 +52,8 @@ (when (and (not *progress-process*) (and (!= (-> obj last-hide-time) (-> *display* base-frame-counter)) (not (movie?)) - (>= (- (-> *display* base-frame-counter) (-> *game-info* letterbox-time)) 30) - (>= (- (-> *display* base-frame-counter) (-> *game-info* blackout-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> *game-info* letterbox-time)) (seconds 0.1)) + (>= (- (-> *display* base-frame-counter) (-> *game-info* blackout-time)) (seconds 0.1)) (not (and *target* (logtest? (-> *target* state-flags) 256))) ) ) @@ -69,10 +69,10 @@ ((and (-> obj increment-on-event) (< (-> obj value) arg0) (not (-> obj first-init)) - (< (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) 450) + (< (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) (seconds 1.5)) ) (when (and (!= (-> obj value) (-> obj target-value)) - (>= (- (-> *display* base-frame-counter) (-> obj last-increment-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> obj last-increment-time)) (seconds 0.1)) ) (sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 1 #t) (+! (-> obj value) 1) @@ -80,9 +80,10 @@ ) ) (else - (if (not - (and (not (-> obj first-init)) (>= (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) 450)) - ) + (if (not (and (not (-> obj first-init)) + (>= (- (-> *display* base-frame-counter) (-> obj last-target-equal-time)) (seconds 1.5)) + ) + ) (set! (-> obj value) arg0) ) (set! (-> obj target-value) arg0) @@ -96,7 +97,7 @@ ) (go hud-arriving) ) - (set! (-> obj trigger-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj trigger-time) (-> *display* base-frame-counter)) (set! (-> obj first-init) #f) ) ) @@ -229,12 +230,12 @@ ) (('hide) (set! v0-0 (-> *display* base-frame-counter)) - (set! (-> self last-hide-time) (the-as uint v0-0)) + (set! (-> self last-hide-time) (the-as time-frame v0-0)) v0-0 ) (('hide-quick) (set! v0-0 (-> *display* base-frame-counter)) - (set! (-> self last-hide-time) (the-as uint v0-0)) + (set! (-> self last-hide-time) (the-as time-frame v0-0)) v0-0 ) (('increment) @@ -305,7 +306,7 @@ (local-vars (v0-3 object)) (case arg2 (('hide-quick) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -314,7 +315,7 @@ (go hud-hidden) ) (('hide) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (go hud-leaving 10) ) @@ -370,7 +371,7 @@ (go hud-in) ) (when (movie?) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -397,14 +398,14 @@ (-> hud-arriving event) :code (behavior () - (set! (-> self trigger-time) (the-as uint (-> *display* base-frame-counter))) - (while (and (< (- (-> *display* base-frame-counter) (the-as int (-> self trigger-time))) 600) (not (movie?))) + (set! (-> self trigger-time) (-> *display* base-frame-counter)) + (while (and (< (- (-> *display* base-frame-counter) (-> self trigger-time)) (seconds 2)) (not (movie?))) (set! (-> self offset) 0) (dummy-17 self) (suspend) ) (when (movie?) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -433,7 +434,7 @@ ) (dummy-17 self) (when (movie?) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (set! (-> self force-on-screen) #f) (set! (-> self offset) 128) (dummy-18 self) @@ -469,7 +470,7 @@ (set! (-> self deactivate-when-hidden) #f) (set! (-> self y-offset) 0) (set! (-> self next-y-offset) 0) - (set! (-> self last-hide-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hide-time) (-> *display* base-frame-counter)) (logior! (-> self mask) (process-mask menu)) (logclear! (-> self mask) (process-mask pause progress)) (init-particles! self arg0) diff --git a/test/decompiler/reference/engine/ui/progress-h_REF.gc b/test/decompiler/reference/engine/ui/progress-h_REF.gc index 36a0f0255a..0360733354 100644 --- a/test/decompiler/reference/engine/ui/progress-h_REF.gc +++ b/test/decompiler/reference/engine/ui/progress-h_REF.gc @@ -155,8 +155,8 @@ (total-nb-of-orbs int32 :offset-assert 284) (total-nb-of-buzzers int32 :offset-assert 288) (card-info mc-slot-info :offset-assert 292) - (last-option-index-change int64 :offset-assert 296) - (video-mode-timeout int64 :offset-assert 304) + (last-option-index-change time-frame :offset-assert 296) + (video-mode-timeout time-frame :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) diff --git a/test/decompiler/reference/engine/ui/progress/progress-draw_REF.gc b/test/decompiler/reference/engine/ui/progress/progress-draw_REF.gc index 3a143884b7..081bd9e4dd 100644 --- a/test/decompiler/reference/engine/ui/progress/progress-draw_REF.gc +++ b/test/decompiler/reference/engine/ui/progress/progress-draw_REF.gc @@ -745,7 +745,7 @@ (set! (-> a0-28 color) (font-color blue-white)) ) (cond - ((or (>= 600 (- (-> *display* real-frame-counter) (-> obj last-option-index-change))) + ((or (>= (seconds 2) (- (-> *display* real-frame-counter) (-> obj last-option-index-change))) (or (< (mod (- (-> *display* real-frame-counter) (-> obj last-option-index-change)) 1200) 600) (!= (-> obj option-index) s1-0) (-> obj in-transition) diff --git a/test/decompiler/reference/engine/ui/progress/progress_REF.gc b/test/decompiler/reference/engine/ui/progress/progress_REF.gc index b0849825f1..8d459e890b 100644 --- a/test/decompiler/reference/engine/ui/progress/progress_REF.gc +++ b/test/decompiler/reference/engine/ui/progress/progress_REF.gc @@ -15,7 +15,7 @@ (center-x-backup int32 :offset-assert 52) (center-y-backup int32 :offset-assert 56) (aspect-ratio-backup symbol :offset-assert 60) - (last-slider-sound int64 :offset-assert 64) + (last-slider-sound time-frame :offset-assert 64) ) :method-count-assert 9 :size-assert #x48 @@ -1475,7 +1475,7 @@ ) ) (when v1-34 - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) 1024 0 0 1 #t) ) @@ -1516,7 +1516,7 @@ ) ) (when v1-69 - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) 1024 0 0 1 #t) ) @@ -1536,7 +1536,7 @@ (when (not (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify)))) (set! s4-5 #t) (if (= (-> s5-0 (-> obj option-index) value-to-modify) (&-> *setting-control* current vibration)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) ) ) (set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) #t) @@ -1612,7 +1612,7 @@ (set! f30-0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))) ) ) - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) (the int (* 10.24 f30-0)) 0 0 1 #t) ) @@ -1711,7 +1711,7 @@ (set! f30-1 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))) ) ) - (when (< 90 (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) + (when (< (seconds 0.3) (- (-> *display* real-frame-counter) (-> *progress-state* last-slider-sound))) (set! (-> *progress-state* last-slider-sound) (-> *display* real-frame-counter)) (sound-play-by-name (static-sound-name "slider2001") (new-sound-id) (the int (* 10.24 f30-1)) 0 0 1 #t) ) @@ -2343,7 +2343,7 @@ (draw-options self 190 0 (the-as float 0.82)) ) (((progress-screen pal-now-60hz)) - (when (< 3000 (- (-> *display* real-frame-counter) (-> self video-mode-timeout))) + (when (< (seconds 10) (- (-> *display* real-frame-counter) (-> self video-mode-timeout))) (set! (-> *progress-state* video-mode-choice) 'pal) (set! (-> *setting-control* default video-mode) (-> *progress-state* video-mode-choice)) (set! (-> self next-display-state) (progress-screen invalid)) @@ -2744,7 +2744,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/engine/util/smush-control-h_REF.gc b/test/decompiler/reference/engine/util/smush-control-h_REF.gc index f9c4fa7ff4..a111eddb45 100644 --- a/test/decompiler/reference/engine/util/smush-control-h_REF.gc +++ b/test/decompiler/reference/engine/util/smush-control-h_REF.gc @@ -3,13 +3,13 @@ ;; definition of type smush-control (deftype smush-control (structure) - ((start-time int64 :offset-assert 0) - (period float :offset-assert 8) - (duration float :offset-assert 12) - (amp float :offset-assert 16) - (damp-amp float :offset-assert 20) - (damp-period float :offset-assert 24) - (ticks float :offset-assert 28) + ((start-time time-frame :offset-assert 0) + (period float :offset-assert 8) + (duration float :offset-assert 12) + (amp float :offset-assert 16) + (damp-amp float :offset-assert 20) + (damp-period float :offset-assert 24) + (ticks float :offset-assert 28) ) :pack-me :method-count-assert 15 diff --git a/test/decompiler/reference/engine/util/sync-info-h_REF.gc b/test/decompiler/reference/engine/util/sync-info-h_REF.gc index a45b68c33e..6a1b00d12a 100644 --- a/test/decompiler/reference/engine/util/sync-info-h_REF.gc +++ b/test/decompiler/reference/engine/util/sync-info-h_REF.gc @@ -81,12 +81,12 @@ ;; definition of type delayed-rand-float (deftype delayed-rand-float (structure) - ((min-time int32 :offset-assert 0) - (max-time int32 :offset-assert 4) - (max-val float :offset-assert 8) - (timer int32 :offset-assert 12) - (start-time int64 :offset-assert 16) - (value float :offset-assert 24) + ((min-time int32 :offset-assert 0) + (max-time int32 :offset-assert 4) + (max-val float :offset-assert 8) + (timer int32 :offset-assert 12) + (start-time time-frame :offset-assert 16) + (value float :offset-assert 24) ) :pack-me :method-count-assert 11 @@ -174,13 +174,13 @@ ;; definition of type delayed-rand-vector (deftype delayed-rand-vector (structure) - ((min-time int32 :offset-assert 0) - (max-time int32 :offset-assert 4) - (xz-max float :offset-assert 8) - (y-max float :offset-assert 12) - (timer int32 :offset-assert 16) - (start-time int64 :offset-assert 24) - (value vector :inline :offset-assert 32) + ((min-time int32 :offset-assert 0) + (max-time int32 :offset-assert 4) + (xz-max float :offset-assert 8) + (y-max float :offset-assert 12) + (timer int32 :offset-assert 16) + (start-time time-frame :offset-assert 24) + (value vector :inline :offset-assert 32) ) :method-count-assert 13 :size-assert #x30 diff --git a/test/decompiler/reference/levels/beach/beach-obs_REF.gc b/test/decompiler/reference/levels/beach/beach-obs_REF.gc index b2d6f32fcc..bccace5546 100644 --- a/test/decompiler/reference/levels/beach/beach-obs_REF.gc +++ b/test/decompiler/reference/levels/beach/beach-obs_REF.gc @@ -755,7 +755,7 @@ (apply-all (-> self link) actor-link-subtask-complete-hook (& sv-128)) (when sv-128 (let ((s5-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-2) 150) + (until (>= (- (-> *display* base-frame-counter) s5-2) (seconds 0.5)) (suspend) ) ) @@ -952,7 +952,7 @@ ) :post (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (go flying-rock-idle) ) (ja-post) @@ -1210,10 +1210,10 @@ ;; INFO: Return type mismatch int vs none. ;; WARN: Expression building failed: Function (method 20 flutflutegg) has a return type of none, but the expression builder found a return statement. (defmethod dummy-20 flutflutegg ((obj flutflutegg) (arg0 float) (arg1 float) (arg2 float)) - (if (< (- (-> *display* base-frame-counter) (-> obj last-impulse-time)) 150) + (if (< (- (-> *display* base-frame-counter) (the-as time-frame (-> obj last-impulse-time))) (seconds 0.5)) (return 0) ) - (set! (-> obj last-impulse-time) (-> *display* base-frame-counter)) + (set! (-> obj last-impulse-time) (the-as int (-> *display* base-frame-counter))) (+! (-> obj vel) arg0) (inc-xy-vel! (-> obj wobbler) arg1 arg2) 0 @@ -1271,7 +1271,7 @@ ) :trans (behavior () - (let* ((gp-0 (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) 900 368640.0 self)) + (let* ((gp-0 (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) (seconds 3) 368640.0 self)) (v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-3 (the-as number (logior #x3f800000 v1-2))) (f30-0 (+ -1.0 (the-as float v1-3))) @@ -1307,7 +1307,7 @@ ) ((< (-> gp-0 y) -24576.0) ) - ((< (- (-> *display* base-frame-counter) (-> self ambient last-ambient-time)) 9000) + ((< (- (-> *display* base-frame-counter) (-> self ambient last-ambient-time)) (seconds 30)) ) ((< 0.8 f30-0) (play-ambient (-> self ambient) "BIR-AM07" #f (-> self root-override trans)) @@ -1344,7 +1344,7 @@ (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (the-as object - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (= arg2 'attack) (or (= (-> arg3 param 1) 'punch) (= (-> arg3 param 1) 'spin) (= (-> arg3 param 1) 'spin-air)) (!= (-> self incomming-attack-id) (-> arg3 param 2)) @@ -1422,7 +1422,7 @@ (camera-change-to "camera-135" 0 #f) (camera-look-at (the-as pair (ppointer->process (-> self parent))) (the-as uint 9)) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 1200) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 4)) (suspend) ) ) @@ -1462,7 +1462,7 @@ (quaternion*! (-> self root-override quat) (-> self root-override quat) a2-6) ) (suspend) - (set! v1-25 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (set! v1-25 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (logtest? (-> self root-override status) 1) ) ) @@ -1525,7 +1525,7 @@ ) (let ((gp-2 (-> *display* base-frame-counter))) (while (not (task-closed? (game-task beach-flutflut) (task-status need-reward-speech))) - (if (>= (- (-> *display* base-frame-counter) gp-2) 3000) + (if (>= (- (-> *display* base-frame-counter) gp-2) (seconds 10)) (level-hint-spawn (game-text-id beach-flutflutegg-hint) "sksp0029" diff --git a/test/decompiler/reference/levels/beach/beach-rocks_REF.gc b/test/decompiler/reference/levels/beach/beach-rocks_REF.gc index 59b3e4f7d2..22a8e367d1 100644 --- a/test/decompiler/reference/levels/beach/beach-rocks_REF.gc +++ b/test/decompiler/reference/levels/beach/beach-rocks_REF.gc @@ -248,7 +248,7 @@ (deftype beach-rock (process-drawable) ((root-override collide-shape-moving :offset 112) (trigger basic :offset-assert 176) - (movie-start uint64 :offset-assert 184) + (movie-start time-frame :offset-assert 184) (part-falling sparticle-launch-control :offset-assert 192) (part-landing sparticle-launch-control :offset-assert 196) (prev-frame float :offset-assert 200) @@ -424,7 +424,7 @@ ) ) (close-specific-task! (-> self entity extra perm task) (task-status need-reminder)) - (set! (-> self movie-start) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self movie-start) (-> *display* base-frame-counter)) (spool-push *art-control* "lrocklrg-falling" 0 self -1.0) (ja-play-spooled-anim (new 'static 'spool-anim diff --git a/test/decompiler/reference/levels/beach/bird-lady_REF.gc b/test/decompiler/reference/levels/beach/bird-lady_REF.gc index 43c3365b06..054f35f9fb 100644 --- a/test/decompiler/reference/levels/beach/bird-lady_REF.gc +++ b/test/decompiler/reference/levels/beach/bird-lady_REF.gc @@ -143,7 +143,7 @@ ;; definition for method 43 of type bird-lady (defmethod TODO-RENAME-43 bird-lady ((obj bird-lady)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/beach/lurkercrab_REF.gc b/test/decompiler/reference/levels/beach/lurkercrab_REF.gc index ad6c6e98bd..6c52171b24 100644 --- a/test/decompiler/reference/levels/beach/lurkercrab_REF.gc +++ b/test/decompiler/reference/levels/beach/lurkercrab_REF.gc @@ -243,7 +243,7 @@ nav-enemy-default-event-handler (set! (-> gp-0 frame-num) (ja-aframe 1.0 0)) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 900) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 3)) (suspend) ) ) @@ -267,7 +267,7 @@ nav-enemy-default-event-handler (set! (-> gp-4 frame-num) (ja-aframe 19.0 0)) ) (let ((gp-5 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-5) 300) + (until (>= (- (-> *display* base-frame-counter) gp-5) (seconds 1)) (suspend) ) ) @@ -396,7 +396,7 @@ nav-enemy-default-event-handler (set! (-> gp-1 frame-num) (ja-aframe 1.0 0)) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 600) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 2)) (suspend) ) ) @@ -702,7 +702,7 @@ nav-enemy-default-event-handler (the-as art-joint-anim (-> self draw art-group data (-> self nav-info victory-anim))) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (let ((v1-7 (-> self skel root-channel 0))) (set! (-> v1-7 num-func) num-func-identity) (set! (-> v1-7 frame-num) 0.0) @@ -747,12 +747,12 @@ nav-enemy-default-event-handler ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 75) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.25)) (suspend) ) ) (let ((gp-3 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-3) 30) + (until (>= (- (-> *display* base-frame-counter) gp-3) (seconds 0.1)) (suspend) ) ) @@ -785,31 +785,31 @@ nav-enemy-default-event-handler :die-anim 11 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 5.0) + :run-travel-speed (meters 5) :run-rotate-speed (degrees 999.99994) - :run-acceleration (meters 12.0) + :run-acceleration (meters 12) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 999.99994) - :walk-acceleration (meters 12.0) + :walk-acceleration (meters 12) :walk-turn-time (seconds 0.1) :attack-shove-back (meters 1.2) :attack-shove-up (meters 1.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 1.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 25.0) - :stop-chase-distance (meters 35.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 25) + :stop-chase-distance (meters 35) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 4.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc b/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc index 6b4f45688b..6057850018 100644 --- a/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc +++ b/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc @@ -150,7 +150,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 1456355.5) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) (let ((f30-0 (rand-vu-float-range 0.8 1.2))) (while #t @@ -219,7 +219,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (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 5))) @@ -347,32 +347,32 @@ nav-enemy-default-event-handler :die-anim 11 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 5.0) + :run-travel-speed (meters 5) :run-rotate-speed (degrees 3999.9998) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.15) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 1999.9999) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 1.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 6.0 :jump-anim-start-frame 3.5 :jump-land-anim-end-frame 14.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.5) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/beach/lurkerworm_REF.gc b/test/decompiler/reference/levels/beach/lurkerworm_REF.gc index 7ead6f5444..86c2a8c60e 100644 --- a/test/decompiler/reference/levels/beach/lurkerworm_REF.gc +++ b/test/decompiler/reference/levels/beach/lurkerworm_REF.gc @@ -369,7 +369,7 @@ lurkerworm-default-post-behavior :code (behavior () (while #t - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) *target* (>= 81920.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))) ) @@ -399,7 +399,7 @@ lurkerworm-default-post-behavior (while #t (spawn (-> self part) (-> self root-override trans)) (particle-effect self) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (if (and *target* (>= 81920.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))) (go lurkerworm-rise) (go lurkerworm-idle) diff --git a/test/decompiler/reference/levels/beach/mayor_REF.gc b/test/decompiler/reference/levels/beach/mayor_REF.gc index bff2f04832..2f2d2f2cae 100644 --- a/test/decompiler/reference/levels/beach/mayor_REF.gc +++ b/test/decompiler/reference/levels/beach/mayor_REF.gc @@ -660,7 +660,7 @@ ;; definition for method 43 of type mayor (defmethod TODO-RENAME-43 mayor ((obj mayor)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/beach/pelican_REF.gc b/test/decompiler/reference/levels/beach/pelican_REF.gc index 80d78edfd9..c16d447924 100644 --- a/test/decompiler/reference/levels/beach/pelican_REF.gc +++ b/test/decompiler/reference/levels/beach/pelican_REF.gc @@ -37,7 +37,7 @@ ;; definition for symbol *PELICAN-bank*, type pelican-bank (define *PELICAN-bank* (new 'static 'pelican-bank - :circle-speed (meters 16.0) + :circle-speed (meters 16) :dive-time (seconds 2) :to-nest0-time (seconds 4) :to-nest1-time (seconds 8) @@ -66,7 +66,7 @@ (path-to-nest1 curve-control :offset 248) (path-to-nest2 curve-control :offset 252) (path-cache curve-control :offset-assert 256) - (time-cache uint64 :offset-assert 264) + (time-cache time-frame :offset-assert 264) (path-pos float :offset-assert 272) (path-speed float :offset-assert 276) (path-max float :offset-assert 280) @@ -83,9 +83,9 @@ :flag-assert #x1400f00160 (:states pelican-circle - (pelican-dive path-control curve-control uint) + (pelican-dive path-control curve-control time-frame) (pelican-explode symbol) - (pelican-fly-to-end path-control int) + (pelican-fly-to-end path-control time-frame) pelican-from-nest pelican-spit (pelican-to-nest path-control int) @@ -170,7 +170,7 @@ ) (if arg4 (set-heading-vec-clear-roll-pitch! (-> self root-override) s3-0) - (seek-toward-heading-vec! (-> self root-override) s3-0 arg0 arg1) + (seek-toward-heading-vec! (-> self root-override) s3-0 arg0 (the-as time-frame arg1)) ) ) ) @@ -421,7 +421,7 @@ (logior! (-> v1-24 status) (entity-perm-status user-set-from-cstage)) (set! (-> v1-24 user-int8 0) 2) ) - (go pelican-dive (-> self path-dive0) (-> self path-to-nest0) (the-as uint (-> *PELICAN-bank* to-nest0-time))) + (go pelican-dive (-> self path-dive0) (-> self path-to-nest0) (-> *PELICAN-bank* to-nest0-time)) ) (none) ) @@ -456,7 +456,7 @@ ) ) :enter - (behavior ((arg0 path-control) (arg1 curve-control) (arg2 uint)) + (behavior ((arg0 path-control) (arg1 curve-control) (arg2 time-frame)) (init! (-> self query) (the-as string #f) 40 150 25 #t (the-as string #f)) (set! (-> self state-object) #f) (set! (-> self state-time) (-> *display* base-frame-counter)) @@ -492,7 +492,7 @@ :trans (behavior () (if (not (handle->process (-> self fuel-cell))) - (go pelican-fly-to-end (-> self path-to-nest2) (the-as int (-> *PELICAN-bank* run-away-time))) + (go pelican-fly-to-end (-> self path-to-nest2) (-> *PELICAN-bank* run-away-time)) ) (pelican-path-update 364088.88 30 0.0 0.0 #t) (set! (-> self path-pos) @@ -504,7 +504,7 @@ (none) ) :code - (behavior ((arg0 path-control) (arg1 curve-control) (arg2 uint)) + (behavior ((arg0 path-control) (arg1 curve-control) (arg2 time-frame)) (ja-channel-push! 1 60) (let ((gp-0 (-> self skel root-channel 0))) (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 7))) @@ -709,7 +709,7 @@ (move-to-point! (-> self root-override) gp-0) ) (do-push-aways! (-> self root-override)) - (seek-toward-heading-vec! (-> self root-override) (-> self path-vector) 131072.0 300) + (seek-toward-heading-vec! (-> self root-override) (-> self path-vector) 131072.0 (seconds 1)) (spool-push *art-control* "pelican-spit-ext" 0 self -99.0) (none) ) @@ -987,7 +987,7 @@ (seek (-> self path-pos) (-> self path-max) (* (-> self path-speed) (-> *display* seconds-per-frame))) ) (if (= (-> self path-pos) (-> self path-max)) - (go pelican-dive (-> self path-dive1) (-> self path-to-nest1) (the-as uint (-> *PELICAN-bank* to-nest1-time))) + (go pelican-dive (-> self path-dive1) (-> self path-to-nest1) (-> *PELICAN-bank* to-nest1-time)) ) (none) ) @@ -1006,7 +1006,7 @@ ;; failed to figure out what this is: (defstate pelican-fly-to-end (pelican) :enter - (behavior ((arg0 path-control) (arg1 int)) + (behavior ((arg0 path-control) (arg1 time-frame)) (process-entity-status! self (entity-perm-status complete) #t) (let ((v1-2 (-> self entity extra perm))) (logior! (-> v1-2 status) (entity-perm-status user-set-from-cstage)) @@ -1048,7 +1048,7 @@ (none) ) :code - (behavior ((arg0 path-control) (arg1 int)) + (behavior ((arg0 path-control) (arg1 time-frame)) (pelican-fly (the-as (function pelican int) (lambda () 1)) (lambda ((arg0 pelican)) (if (and (>= (-> arg0 path-pos) 4.0) (>= 6.0 (-> arg0 path-pos))) diff --git a/test/decompiler/reference/levels/beach/sculptor_REF.gc b/test/decompiler/reference/levels/beach/sculptor_REF.gc index 450857cff2..d2ad116d38 100644 --- a/test/decompiler/reference/levels/beach/sculptor_REF.gc +++ b/test/decompiler/reference/levels/beach/sculptor_REF.gc @@ -213,7 +213,7 @@ ;; definition for method 43 of type sculptor (defmethod TODO-RENAME-43 sculptor ((obj sculptor)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/beach/seagull_REF.gc b/test/decompiler/reference/levels/beach/seagull_REF.gc index 186c955767..e630b56128 100644 --- a/test/decompiler/reference/levels/beach/seagull_REF.gc +++ b/test/decompiler/reference/levels/beach/seagull_REF.gc @@ -45,7 +45,7 @@ (scared int32 :offset-assert 204) (temp-heading float :offset-assert 208) (temp-heading-time int32 :offset-assert 212) - (part-time uint64 :offset-assert 216) + (part-time time-frame :offset-assert 216) (thrust float :offset-assert 224) (teleport symbol :offset-assert 228) ) @@ -105,10 +105,10 @@ (birds-at-waterfall int32 :offset-assert 416) (target vector :inline :offset-assert 432) (targetnum int32 :offset-assert 448) - (alert-time uint64 :offset-assert 456) + (alert-time time-frame :offset-assert 456) (teleport-frames int32 :offset-assert 464) (cam-tracker uint64 :offset-assert 472) - (state-time uint64 :offset-assert 480) + (state-time time-frame :offset-assert 480) (squall ambient-sound :offset-assert 488) (max-lift float :offset-assert 492) ) @@ -711,7 +711,7 @@ (defstate seagull-takeoff (seagull) :trans (behavior () - (when (< (+ (-> *display* base-frame-counter) -600) (the-as int (-> self part-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -2)) (-> self part-time)) (-> self part) (-> self root-override root-prim prim-core) ) @@ -719,7 +719,7 @@ ) :code (behavior () - (set! (-> self part-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self part-time) (-> *display* base-frame-counter)) (let ((gp-0 (-> self skel root-channel 0))) (set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 9))) (set! (-> gp-0 param 0) (ja-aframe 4.0 0)) @@ -783,7 +783,7 @@ (defstate seagull-flying (seagull) :trans (behavior () - (when (< (+ (-> *display* base-frame-counter) -600) (the-as int (-> self part-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -2)) (-> self part-time)) (-> self part) (-> self root-override root-prim prim-core) ) @@ -991,7 +991,7 @@ (defstate seagull-soaring (seagull) :trans (behavior () - (when (< (+ (-> *display* base-frame-counter) -600) (the-as int (-> self part-time))) + (when (< (+ (-> *display* base-frame-counter) (seconds -2)) (-> self part-time)) (-> self part) (-> self root-override root-prim prim-core) ) @@ -1125,7 +1125,7 @@ (go seagull-flying) ) (when (< (-> self root-override trans y) 204800.0) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (let* ((f30-1 0.99) (v1-67 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-68 (the-as number (logior #x3f800000 v1-67))) @@ -1409,9 +1409,9 @@ ) ;; definition for method 15 of type seagullflock -;; INFO: Return type mismatch int vs none. +;; INFO: Return type mismatch time-frame vs none. (defmethod play-hint seagullflock ((obj seagullflock) (arg0 int)) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> obj alert-time))) 1500) + (when (>= (- (-> *display* base-frame-counter) (-> obj alert-time)) (seconds 5)) (eval-path-curve-div! (-> obj path) (-> obj target) (the float (-> obj targetnum)) 'interp) (let ((f0-2 4096.0) (v1-6 (-> obj targetnum)) @@ -1486,7 +1486,7 @@ (set! (-> obj teleport-frames) 1500) ) (sound-play-by-name (static-sound-name "seagull-takeoff") (new-sound-id) 1024 0 0 1 #t) - (set! (-> obj alert-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj alert-time) (-> *display* base-frame-counter)) ) (none) ) @@ -1510,7 +1510,7 @@ (t9-1 (function process-tree event-message-block object)) ) (aybabtu 2) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (-> self link next) (until (t9-1 a0-2 a1-0) (suspend) @@ -1526,7 +1526,7 @@ ) ) ) - (until (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) (-> self teleport-frames)) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self teleport-frames)) (suspend) ) (close-specific-task! (game-task beach-seagull) (task-status need-reminder)) @@ -1534,7 +1534,7 @@ (set! (-> self bird v1-13 0 teleport) #t) ) (let ((gp-0 (-> self link next))) - (set-blackout-frames 600) + (set-blackout-frames (seconds 2)) (suspend) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-6 from) self) diff --git a/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc b/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc index ca5e93021f..e085ea8cde 100644 --- a/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc +++ b/test/decompiler/reference/levels/citadel/citadel-obs_REF.gc @@ -1819,7 +1819,7 @@ ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (while (< (- (-> *display* base-frame-counter) gp-1) 150) + (while (< (- (-> *display* base-frame-counter) gp-1) (seconds 0.5)) (if (movie?) (set! gp-1 (-> *display* base-frame-counter)) ) diff --git a/test/decompiler/reference/levels/citadel/citadel-sages_REF.gc b/test/decompiler/reference/levels/citadel/citadel-sages_REF.gc index 1a71026ede..5afe879239 100644 --- a/test/decompiler/reference/levels/citadel/citadel-sages_REF.gc +++ b/test/decompiler/reference/levels/citadel/citadel-sages_REF.gc @@ -663,7 +663,7 @@ (if (-> obj beam-on) (return #f) ) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-7 (the-as number (logior #x3f800000 v1-6))) (f0-2 (+ -1.0 (the-as float v1-7))) @@ -799,7 +799,7 @@ (if (-> obj beam-on) (return #f) ) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-7 (the-as number (logior #x3f800000 v1-6))) (f0-2 (+ -1.0 (the-as float v1-7))) @@ -930,7 +930,7 @@ (if (-> obj beam-on) (return #f) ) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-6 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-7 (the-as number (logior #x3f800000 v1-6))) (f0-2 (+ -1.0 (the-as float v1-7))) @@ -1286,7 +1286,7 @@ ) (cond ((= (-> self which-movie) 1) - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) ) ((= (-> self which-movie) 2) (start 'play (get-continue-by-name *game-info* "citadel-elevator")) diff --git a/test/decompiler/reference/levels/citadel/citb-bunny_REF.gc b/test/decompiler/reference/levels/citadel/citb-bunny_REF.gc index fc4e3cfde2..0a72302986 100644 --- a/test/decompiler/reference/levels/citadel/citb-bunny_REF.gc +++ b/test/decompiler/reference/levels/citadel/citb-bunny_REF.gc @@ -44,30 +44,30 @@ :die-anim 9 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :shadow-size (meters 2.0) + :shadow-size (meters 2) :notice-nav-radius (meters 1.2) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 130.0) - :stop-chase-distance (meters 150.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 130) + :stop-chase-distance (meters 150) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 31.0 :jump-anim-start-frame 11.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.6 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) :shadow-min-y (meters -3.5) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t 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 136e428bbe..8a53010de8 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 @@ -53,8 +53,8 @@ (spin-angle float :offset-assert 192) (spin-speed float :offset-assert 196) (interp float :offset-assert 200) - (duration int64 :offset-assert 208) - (delay int64 :offset-assert 216) + (duration time-frame :offset-assert 208) + (delay time-frame :offset-assert 216) (color int8 :offset-assert 224) ) :heap-base #x80 @@ -358,7 +358,7 @@ ;; definition for function drop-plat-init-by-other ;; INFO: Return type mismatch object vs none. ;; Used lq/sq -(defbehavior drop-plat-init-by-other drop-plat ((arg0 vector) (arg1 int) (arg2 int) (arg3 int)) +(defbehavior drop-plat-init-by-other drop-plat ((arg0 vector) (arg1 time-frame) (arg2 time-frame) (arg3 int)) (set! (-> self color) arg3) (set! (-> self delay) arg1) (set! (-> self duration) arg2) @@ -405,8 +405,8 @@ (x-spacing float :offset-assert 256) (z-spacing float :offset-assert 260) (idle-distance float :offset-assert 264) - (duration int64 :offset-assert 272) - (drop-time int64 :offset-assert 280) + (duration time-frame :offset-assert 272) + (drop-time time-frame :offset-assert 280) ) :heap-base #xb0 :method-count-assert 20 @@ -479,28 +479,34 @@ (set! sv-64 (the int (* 150.0 (rand-vu)))) (set! sv-48 (get-process *default-dead-pool* drop-plat #x4000)) (set! (-> self child-array data s1-0) - (ppointer->handle - (when sv-48 - (let ((t9-6 (method-of-type drop-plat activate))) - (t9-6 (the-as drop-plat sv-48) self 'drop-plat (the-as pointer #x70004000)) - ) - (let ((t9-7 run-function-in-process) - (a0-8 sv-48) - (a1-5 drop-plat-init-by-other) - (a2-4 gp-0) - (t0-0 (-> self duration)) - ) - ((the-as (function process function vector int int int none) t9-7) a0-8 a1-5 a2-4 sv-64 t0-0 s0-0) - ) - (-> sv-48 ppointer) - ) - ) + (ppointer->handle (when sv-48 + (let ((t9-6 (method-of-type drop-plat activate))) + (t9-6 (the-as drop-plat sv-48) self 'drop-plat (the-as pointer #x70004000)) + ) + (let ((t9-7 run-function-in-process) + (a0-8 sv-48) + (a1-5 drop-plat-init-by-other) + (a2-4 gp-0) + (t0-0 (-> self duration)) + ) + ((the-as (function process function vector int int int none) t9-7) + a0-8 + a1-5 + a2-4 + sv-64 + (the-as int t0-0) + s0-0 + ) + ) + (-> sv-48 ppointer) + ) + ) ) ) ) ) (let ((s2-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s2-1) 36) + (until (>= (- (-> *display* base-frame-counter) s2-1) (seconds 0.12)) (suspend) ) ) @@ -570,7 +576,7 @@ (let ((v1-0 arg2)) (the-as object (cond ((= v1-0 'player-stepped) - (when (>= (- (-> *display* base-frame-counter) (-> self drop-time)) 60) + (when (>= (- (-> *display* base-frame-counter) (-> self drop-time)) (seconds 0.2)) (set! (-> self drop-time) (-> *display* base-frame-counter)) (citb-drop-plat-drop-children (the-as int (-> arg3 param 0))) ) @@ -587,7 +593,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (citb-drop-plat-spawn-children) (while #t - (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (+ (-> self duration) 600)) + (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (+ (-> self duration) (seconds 2))) (or (not *target*) (< (-> self idle-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans))) ) @@ -624,7 +630,7 @@ (set! (-> obj x-spacing) 16384.0) (set! (-> obj z-spacing) 16384.0) (set! (-> obj idle-distance) (+ 40960.0 (* 0.5 (the float (-> obj z-count)) (-> obj z-spacing)))) - (set! (-> obj duration) (the int (* 300.0 (+ 2.0 (the float (-> obj z-count)))))) + (set! (-> obj duration) (the-as time-frame (the int (* 300.0 (+ 2.0 (the float (-> obj z-count))))))) (let ((f0-7 (res-lump-float arg0 'rotoffset))) (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-7) ) diff --git a/test/decompiler/reference/levels/citadel/citb-plat_REF.gc b/test/decompiler/reference/levels/citadel/citb-plat_REF.gc index 67064b588b..69424c59e9 100644 --- a/test/decompiler/reference/levels/citadel/citb-plat_REF.gc +++ b/test/decompiler/reference/levels/citadel/citb-plat_REF.gc @@ -329,10 +329,10 @@ ;; definition of type citb-stair-plat (deftype citb-stair-plat (citb-base-plat) - ((idle-height float :offset-assert 180) - (rise-height float :offset-assert 184) - (delay uint64 :offset-assert 192) - (rise symbol :offset-assert 200) + ((idle-height float :offset-assert 180) + (rise-height float :offset-assert 184) + (delay time-frame :offset-assert 192) + (rise symbol :offset-assert 200) ) :heap-base #x60 :method-count-assert 25 @@ -379,7 +379,7 @@ (logclear! (-> self draw status) (draw-status drwf01)) (set-vector! (-> self draw color-mult) 0.0 0.0 0.0 1.0) (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self delay))) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (-> self delay)) (ja-post) (suspend) ) @@ -432,7 +432,9 @@ (set! (-> obj idle-height) (+ -409600.0 (-> obj rise-height))) (set! (-> obj root-override trans y) (-> obj idle-height)) (set! (-> obj rise) #f) - (set! (-> obj delay) (the-as uint (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0))))) + (set! (-> obj delay) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0)))) + ) (let ((f0-7 1.5)) (set-vector! (-> obj root-override scale) f0-7 f0-7 f0-7 1.0) (set! (-> obj root-override root-prim local-sphere w) @@ -462,24 +464,24 @@ (define *citb-chain-plat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 5 :mass 2.0 - :inertial-tensor-x (meters 10.0) - :inertial-tensor-y (meters 5.0) - :inertial-tensor-z (meters 10.0) - :idle-distance (meters 70.0) + :inertial-tensor-x (meters 10) + :inertial-tensor-y (meters 5) + :inertial-tensor-z (meters 10) + :idle-distance (meters 70) :platform #t :sound-name "blue-eco-on" ) @@ -560,7 +562,7 @@ :virtual #t :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (if (and (and *target* (>= (-> self info idle-distance) (vector-vector-distance (-> self root-overlay trans) (-> *target* control trans)) @@ -610,7 +612,7 @@ ) (send-event *target* 'query 'powerup 3) ) - (when (< (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (when (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (if (rand-vu-percent? 0.05) (spawn-projectile-blue *target*) ) @@ -655,7 +657,7 @@ (set! (-> gp-0 quad) (-> self root-overlay trans quad)) (quaternion-copy! s5-0 (-> self root-overlay quat)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 75) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) (let ((f30-0 (* 0.013333334 (the float (- (-> *display* base-frame-counter) (-> self state-time)))))) (quaternion-slerp! (-> self root-overlay quat) s5-0 (-> self orig-quat) f30-0) (vector-lerp! (-> self root-overlay trans) gp-0 (-> self orig-trans) f30-0) diff --git a/test/decompiler/reference/levels/common/babak_REF.gc b/test/decompiler/reference/levels/common/babak_REF.gc index a0dda2df8e..8485afa64b 100644 --- a/test/decompiler/reference/levels/common/babak_REF.gc +++ b/test/decompiler/reference/levels/common/babak_REF.gc @@ -143,7 +143,7 @@ :virtual #t :code (behavior () - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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)) @@ -245,7 +245,7 @@ :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) @@ -356,33 +356,33 @@ :die-anim 12 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :proximity-notice-distance (meters 20) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/common/basebutton_REF.gc b/test/decompiler/reference/levels/common/basebutton_REF.gc index fea2778ce2..f861ca53af 100644 --- a/test/decompiler/reference/levels/common/basebutton_REF.gc +++ b/test/decompiler/reference/levels/common/basebutton_REF.gc @@ -597,13 +597,13 @@ (else (load-state-want-levels (-> self level) (-> arg1 load-name)) (while (or (not (member (level-status *level* (-> arg1 load-name)) '(loaded active))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) ) (suspend) ) ) ) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (start 'play (get-continue-by-name *game-info* (-> *warp-info* arg0))) (logior! (-> self mask) (process-mask sleep)) (suspend) @@ -748,7 +748,7 @@ (set! (-> gp-2 y) 0.0) (send-event *target* 'sidekick #f) (when (and (or (< (vector-dot gp-2 (-> self control transv)) 0.0) (-> self control unknown-spoolanim00)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) ) (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (-> *display* seconds-per-frame))) (set! (-> self control transv x) (* 0.95 (-> self control transv x))) diff --git a/test/decompiler/reference/levels/common/battlecontroller_REF.gc b/test/decompiler/reference/levels/common/battlecontroller_REF.gc index 469cb0d3ba..019ddbc45b 100644 --- a/test/decompiler/reference/levels/common/battlecontroller_REF.gc +++ b/test/decompiler/reference/levels/common/battlecontroller_REF.gc @@ -29,12 +29,12 @@ ;; definition of type battlecontroller-creature-type (deftype battlecontroller-creature-type (structure) - ((type2 type :offset-assert 0) - (percent float :offset-assert 4) - (pickup-percent float :offset-assert 8) - (pickup-type int32 :offset-assert 12) - (max-pickup-count int8 :offset-assert 16) - (pickup-count int8 :offset-assert 17) + ((type2 type :offset-assert 0) + (percent float :offset-assert 4) + (pickup-percent float :offset-assert 8) + (pickup-type pickup-type :offset-assert 12) + (max-pickup-count int8 :offset-assert 16) + (pickup-count int8 :offset-assert 17) ) :allow-misaligned :method-count-assert 9 @@ -65,7 +65,7 @@ (spawner-count int8 :offset-assert 203) (creature-type-count int8 :offset-assert 204) (spawner-array battlecontroller-spawner 8 :inline :offset-assert 208) - (spawn-period uint64 :offset-assert 464) + (spawn-period time-frame :offset-assert 464) (path-spawn path-control :offset-assert 472) (creature-type-array battlecontroller-creature-type 4 :inline :offset-assert 476) (final-pickup-type pickup-type :offset-assert 604) @@ -236,7 +236,7 @@ battlecontroller-default-event-handler ;; definition for function battlecontroller-spawn-creature ;; INFO: Return type mismatch int vs handle. (defbehavior battlecontroller-spawn-creature battlecontroller ((arg0 vector) (arg1 vector)) - (local-vars (v1-25 int)) + (local-vars (v1-25 pickup-type)) (let ((f0-0 (rand-vu)) (v1-0 0) ) @@ -276,14 +276,14 @@ battlecontroller-default-event-handler (set! v1-25 (-> s5-0 pickup-type)) ) (else - (set! v1-25 (the-as int (-> self fact pickup-type))) + (set! v1-25 (-> self fact pickup-type)) ) ) - (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-type) (the-as pickup-type v1-25)) + (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-type) v1-25) (cond - ((= v1-25 7) + ((= v1-25 (pickup-type eco-pill)) ) - ((zero? v1-25) + ((= v1-25 (pickup-type none)) (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-amount) 0.0) (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-spawn-amount) 0.0) ) @@ -291,7 +291,7 @@ battlecontroller-default-event-handler (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-amount) 1.0) (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info pickup-spawn-amount) 0.0) (logior! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info options) (fact-options fade)) - (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info fade-time) 1200) + (set! (-> (the-as (pointer nav-enemy) gp-0) 0 enemy-info fade-time) (seconds 4)) ) ) ) @@ -476,7 +476,7 @@ battlecontroller-default-event-handler (battlecontroller-fill-all-spawners) ) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (when (and *target* (>= (-> self activate-distance) (vector-vector-distance (-> self root trans) (-> *target* control trans))) @@ -552,7 +552,7 @@ battlecontroller-default-event-handler (set! (-> self state-time) (-> *display* base-frame-counter)) (battlecontroller-camera-on) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((gp-0 0)) (let ((v1-8 (-> self child))) @@ -568,7 +568,7 @@ battlecontroller-default-event-handler ) (when (< gp-0 (-> self target-count)) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) (the-as int (-> self spawn-period))) + (until (>= (- (-> *display* base-frame-counter) gp-1) (-> self spawn-period)) (suspend) ) ) @@ -790,7 +790,7 @@ battlecontroller-default-event-handler ) ) (set! (-> obj spawn-period) - (the-as uint (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 0.1)))) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 0.1)))) ) (set! (-> obj target-count) 10) (set! (-> obj max-spawn-count) 100) @@ -857,7 +857,7 @@ battlecontroller-default-event-handler (let ((a1-34 (-> obj creature-type-array a0-34))) (set! (-> a1-34 pickup-count) 0) (if s5-4 - (set! (-> a1-34 pickup-type) (-> (the-as (pointer int32) (&+ s5-4 (* a0-34 4))))) + (set! (-> a1-34 pickup-type) (the-as pickup-type (-> (the-as (pointer int32) (&+ s5-4 (* a0-34 4)))))) ) (if s4-3 (set! (-> a1-34 max-pickup-count) (-> (the-as (pointer int32) (&+ s4-3 (* a0-34 4))))) diff --git a/test/decompiler/reference/levels/common/joint-exploder_REF.gc b/test/decompiler/reference/levels/common/joint-exploder_REF.gc index 51de6cfa8c..7c6c98e622 100644 --- a/test/decompiler/reference/levels/common/joint-exploder_REF.gc +++ b/test/decompiler/reference/levels/common/joint-exploder_REF.gc @@ -3,17 +3,17 @@ ;; definition of type joint-exploder-tuning (deftype joint-exploder-tuning (structure) - ((explosion uint64 :offset-assert 0) - (duration uint64 :offset-assert 8) - (gravity float :offset-assert 16) - (rot-speed float :offset-assert 20) - (fountain-rand-transv-lo vector :inline :offset-assert 32) - (fountain-rand-transv-hi vector :inline :offset-assert 48) - (away-from-focal-pt vector :inline :offset 32) - (away-from-rand-transv-xz-lo float :offset 48) - (away-from-rand-transv-xz-hi float :offset 52) - (away-from-rand-transv-y-lo float :offset 56) - (away-from-rand-transv-y-hi float :offset 60) + ((explosion uint64 :offset-assert 0) + (duration time-frame :offset-assert 8) + (gravity float :offset-assert 16) + (rot-speed float :offset-assert 20) + (fountain-rand-transv-lo vector :inline :offset-assert 32) + (fountain-rand-transv-hi vector :inline :offset-assert 48) + (away-from-focal-pt vector :inline :offset 32) + (away-from-rand-transv-xz-lo float :offset 48) + (away-from-rand-transv-xz-hi float :offset 52) + (away-from-rand-transv-y-lo float :offset 56) + (away-from-rand-transv-y-hi float :offset 60) ) :method-count-assert 9 :size-assert #x40 @@ -609,7 +609,7 @@ :code (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self tuning duration))) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self tuning duration)) (suspend) (let ((a0-0 (-> self skel root-channel 0))) (set! (-> a0-0 param 0) 1.0) @@ -774,7 +774,7 @@ (-> type-to-make size) (let ((v0-0 (the-as joint-exploder-tuning (t9-0 allocation v1-1)))) (set! (-> v0-0 explosion) (the-as uint arg0)) - (set! (-> v0-0 duration) (the-as uint 600)) + (set! (-> v0-0 duration) (seconds 2)) (set! (-> v0-0 gravity) -286720.0) (set! (-> v0-0 rot-speed) 8.4) (cond diff --git a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc index 0bb16addce..a86789d0b5 100644 --- a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc @@ -3,57 +3,57 @@ ;; definition of type nav-enemy-info (deftype nav-enemy-info (basic) - ((idle-anim int32 :offset-assert 4) - (walk-anim int32 :offset-assert 8) - (turn-anim int32 :offset-assert 12) - (notice-anim int32 :offset-assert 16) - (run-anim int32 :offset-assert 20) - (jump-anim int32 :offset-assert 24) - (jump-land-anim int32 :offset-assert 28) - (victory-anim int32 :offset-assert 32) - (taunt-anim int32 :offset-assert 36) - (die-anim int32 :offset-assert 40) - (neck-joint int32 :offset-assert 44) - (player-look-at-joint int32 :offset-assert 48) - (run-travel-speed meters :offset-assert 52) - (run-rotate-speed degrees :offset-assert 56) - (run-acceleration meters :offset-assert 60) - (run-turn-time seconds :offset-assert 64) - (walk-travel-speed meters :offset-assert 72) - (walk-rotate-speed degrees :offset-assert 76) - (walk-acceleration meters :offset-assert 80) - (walk-turn-time seconds :offset-assert 88) - (attack-shove-back meters :offset-assert 96) - (attack-shove-up meters :offset-assert 100) - (shadow-size meters :offset-assert 104) - (notice-nav-radius meters :offset-assert 108) - (nav-nearest-y-threshold meters :offset-assert 112) - (notice-distance meters :offset-assert 116) - (proximity-notice-distance meters :offset-assert 120) - (stop-chase-distance meters :offset-assert 124) - (frustration-distance meters :offset-assert 128) - (frustration-time uint64 :offset-assert 136) - (die-anim-hold-frame float :offset-assert 144) - (jump-anim-start-frame float :offset-assert 148) - (jump-land-anim-end-frame float :offset-assert 152) - (jump-height-min meters :offset-assert 156) - (jump-height-factor float :offset-assert 160) - (jump-start-anim-speed float :offset-assert 164) - (shadow-max-y meters :offset-assert 168) - (shadow-min-y meters :offset-assert 172) - (shadow-locus-dist meters :offset-assert 176) - (use-align symbol :offset-assert 180) - (draw-shadow symbol :offset-assert 184) - (move-to-ground symbol :offset-assert 188) - (hover-if-no-ground symbol :offset-assert 192) - (use-momentum symbol :offset-assert 196) - (use-flee symbol :offset-assert 200) - (use-proximity-notice symbol :offset-assert 204) - (use-jump-blocked symbol :offset-assert 208) - (use-jump-patrol symbol :offset-assert 212) - (gnd-collide-with uint64 :offset-assert 216) - (debug-draw-neck symbol :offset-assert 224) - (debug-draw-jump symbol :offset-assert 228) + ((idle-anim int32 :offset-assert 4) + (walk-anim int32 :offset-assert 8) + (turn-anim int32 :offset-assert 12) + (notice-anim int32 :offset-assert 16) + (run-anim int32 :offset-assert 20) + (jump-anim int32 :offset-assert 24) + (jump-land-anim int32 :offset-assert 28) + (victory-anim int32 :offset-assert 32) + (taunt-anim int32 :offset-assert 36) + (die-anim int32 :offset-assert 40) + (neck-joint int32 :offset-assert 44) + (player-look-at-joint int32 :offset-assert 48) + (run-travel-speed meters :offset-assert 52) + (run-rotate-speed degrees :offset-assert 56) + (run-acceleration meters :offset-assert 60) + (run-turn-time seconds :offset-assert 64) + (walk-travel-speed meters :offset-assert 72) + (walk-rotate-speed degrees :offset-assert 76) + (walk-acceleration meters :offset-assert 80) + (walk-turn-time seconds :offset-assert 88) + (attack-shove-back meters :offset-assert 96) + (attack-shove-up meters :offset-assert 100) + (shadow-size meters :offset-assert 104) + (notice-nav-radius meters :offset-assert 108) + (nav-nearest-y-threshold meters :offset-assert 112) + (notice-distance meters :offset-assert 116) + (proximity-notice-distance meters :offset-assert 120) + (stop-chase-distance meters :offset-assert 124) + (frustration-distance meters :offset-assert 128) + (frustration-time time-frame :offset-assert 136) + (die-anim-hold-frame float :offset-assert 144) + (jump-anim-start-frame float :offset-assert 148) + (jump-land-anim-end-frame float :offset-assert 152) + (jump-height-min meters :offset-assert 156) + (jump-height-factor float :offset-assert 160) + (jump-start-anim-speed float :offset-assert 164) + (shadow-max-y meters :offset-assert 168) + (shadow-min-y meters :offset-assert 172) + (shadow-locus-dist meters :offset-assert 176) + (use-align symbol :offset-assert 180) + (draw-shadow symbol :offset-assert 184) + (move-to-ground symbol :offset-assert 188) + (hover-if-no-ground symbol :offset-assert 192) + (use-momentum symbol :offset-assert 196) + (use-flee symbol :offset-assert 200) + (use-proximity-notice symbol :offset-assert 204) + (use-jump-blocked symbol :offset-assert 208) + (use-jump-patrol symbol :offset-assert 212) + (gnd-collide-with uint64 :offset-assert 216) + (debug-draw-neck symbol :offset-assert 224) + (debug-draw-jump symbol :offset-assert 228) ) :method-count-assert 9 :size-assert #xe8 @@ -126,21 +126,21 @@ (frustration-point vector :inline :offset-assert 208) (jump-dest vector :inline :offset-assert 224) (jump-trajectory trajectory :inline :offset-assert 240) - (jump-time int64 :offset-assert 280) + (jump-time time-frame :offset-assert 280) (nav-info nav-enemy-info :offset-assert 288) (target-speed float :offset-assert 292) (momentum-speed float :offset-assert 296) (acceleration float :offset-assert 300) (rotate-speed float :offset-assert 304) - (turn-time int64 :offset-assert 312) - (frustration-time int64 :offset-assert 320) + (turn-time time-frame :offset-assert 312) + (frustration-time time-frame :offset-assert 320) (speed-scale float :offset-assert 328) (neck joint-mod :offset-assert 332) - (reaction-time int64 :offset-assert 336) - (notice-time int64 :offset-assert 344) - (state-timeout int64 :offset-assert 352) - (free-time int64 :offset-assert 360) - (touch-time int64 :offset-assert 368) + (reaction-time time-frame :offset-assert 336) + (notice-time time-frame :offset-assert 344) + (state-timeout time-frame :offset-assert 352) + (free-time time-frame :offset-assert 360) + (touch-time time-frame :offset-assert 368) (nav-enemy-flags uint32 :offset-assert 376) (incomming-attack-id handle :offset-assert 384) (jump-return-state (state process) :offset-assert 392) diff --git a/test/decompiler/reference/levels/common/nav-enemy_REF.gc b/test/decompiler/reference/levels/common/nav-enemy_REF.gc index bb6fe256c4..99a5a7c31d 100644 --- a/test/decompiler/reference/levels/common/nav-enemy_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy_REF.gc @@ -81,7 +81,7 @@ (defmethod common-post nav-enemy ((obj nav-enemy)) (when (and (logtest? (-> obj nav-enemy-flags) 256) (or (not *target*) (and (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (-> obj touch-time)) 15) + (>= (- (-> *display* base-frame-counter) (-> obj touch-time)) (seconds 0.05)) ) ) ) @@ -777,7 +777,9 @@ nav-enemy-default-event-handler (set! (-> a0-8 param 0) 0.75) (joint-control-channel-group-eval! a0-8 (the-as art-joint-anim #f) num-func-loop!) ) - (set! v1-16 (or (>= (- (-> *display* base-frame-counter) s4-0) 3000) (nav-enemy-facing-direction? arg0 arg1))) + (set! v1-16 + (or (>= (- (-> *display* base-frame-counter) s4-0) (seconds 10)) (nav-enemy-facing-direction? arg0 arg1)) + ) ) ) (forward-up->quaternion (-> self collide-info quat) arg0 *y-vector*) @@ -837,7 +839,7 @@ nav-enemy-default-event-handler ) ) (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) - (set! (-> self state-timeout) 300) + (set! (-> self state-timeout) (seconds 1)) (none) ) :trans @@ -897,11 +899,11 @@ nav-enemy-default-event-handler ) (set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags))) (logior! (-> self nav-enemy-flags) 8) - (set! (-> self state-timeout) 300) + (set! (-> self state-timeout) (seconds 1)) (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) (set! (-> self acceleration) (-> self nav-info walk-acceleration)) (set! (-> self rotate-speed) (-> self nav-info walk-rotate-speed)) - (set! (-> self turn-time) (the-as int (-> self nav-info walk-turn-time))) + (set! (-> self turn-time) (-> self nav-info walk-turn-time)) (none) ) :exit @@ -911,7 +913,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self state-timeout)) (if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) (draw-status drwf03))) (set! (-> self free-time) (-> *display* base-frame-counter)) @@ -920,7 +922,7 @@ nav-enemy-default-event-handler (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) ) ) - (>= (- (-> *display* base-frame-counter) (-> self free-time)) 600) + (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 2)) ) (go-virtual nav-enemy-idle) ) @@ -1102,7 +1104,7 @@ nav-enemy-default-event-handler ) (dummy-11 (-> self nav) (-> self nav target-pos)) (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 turn-time) (-> self nav-info run-turn-time)) (none) ) :code @@ -1298,7 +1300,7 @@ nav-enemy-default-event-handler (set! (-> self target-speed) (-> self nav-info run-travel-speed)) (set! (-> self acceleration) (-> self nav-info run-acceleration)) (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 turn-time) (-> self nav-info run-turn-time)) (nav-enemy-reset-frustration) (none) ) @@ -1330,7 +1332,7 @@ nav-enemy-default-event-handler ) (cond ((logtest? (nav-control-flags bit17) (-> self nav flags)) - (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 1)) (go-virtual nav-enemy-patrol) ) ) @@ -1383,17 +1385,17 @@ nav-enemy-default-event-handler (if (< f30-0 40960.0) (go-virtual nav-enemy-stare) ) - (set! (-> self state-timeout) gp-1) + (set! (-> self state-timeout) (the-as time-frame gp-1)) ) (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) (set! (-> self acceleration) (-> self nav-info walk-acceleration)) (set! (-> self rotate-speed) (-> self nav-info walk-rotate-speed)) - (set! (-> self turn-time) (the-as int (-> self nav-info walk-turn-time))) + (set! (-> self turn-time) (-> self nav-info walk-turn-time)) (none) ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (if (logtest? (-> *target* state-flags) 128) (go-virtual nav-enemy-patrol) ) @@ -1453,11 +1455,14 @@ nav-enemy-default-event-handler (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) (let ((f0-0 (vector-vector-distance (-> self collide-info trans) (target-pos 0)))) (set! (-> self state-timeout) - (the int (+ (lerp-scale 3000.0 0.0 f0-0 12288.0 122880.0) (nav-enemy-rnd-float-range 0.0 900.0))) + (the-as + time-frame + (the int (+ (lerp-scale 3000.0 0.0 f0-0 12288.0 122880.0) (nav-enemy-rnd-float-range 0.0 900.0))) + ) ) ) (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 turn-time) (-> self nav-info run-turn-time)) (set! (-> self collide-info transv quad) (-> *null-vector* quad)) (none) ) @@ -1468,7 +1473,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (if (logtest? (-> *target* state-flags) 128) (go-virtual nav-enemy-patrol) ) @@ -1536,7 +1541,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (if (TODO-RENAME-46 self (-> self nav-info notice-distance)) (go-virtual nav-enemy-chase) ) @@ -2027,7 +2032,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (logtest? (nav-control-flags bit19) (-> self nav flags)) ) (go-virtual nav-enemy-chase) @@ -2059,7 +2064,7 @@ nav-enemy-default-event-handler ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (go (-> self jump-return-state)) ) (none) @@ -2242,7 +2247,7 @@ nav-enemy-default-event-handler (set! (-> obj enemy-info) (new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc)) ) - (set! (-> obj reaction-time) (nav-enemy-rnd-int-range 30 240)) + (set! (-> obj reaction-time) (nav-enemy-rnd-int-range (seconds 0.1) (seconds 0.8))) (set! (-> obj speed-scale) 1.0) (logior! (-> obj nav-enemy-flags) 4216) 0 @@ -2253,7 +2258,7 @@ nav-enemy-default-event-handler (defmethod TODO-RENAME-49 nav-enemy ((obj nav-enemy) (arg0 nav-enemy-info)) (set! (-> obj nav-info) arg0) (set! (-> obj rotate-speed) (-> obj nav-info walk-rotate-speed)) - (set! (-> obj turn-time) (the-as int (-> obj nav-info walk-turn-time))) + (set! (-> obj turn-time) (-> obj nav-info walk-turn-time)) (when (and (!= (-> obj nav-info neck-joint) -1) (zero? (-> obj neck))) (set! (-> obj neck) (new 'process 'joint-mod (joint-mod-handler-mode flex-blend) obj (-> obj nav-info neck-joint)) diff --git a/test/decompiler/reference/levels/common/plat-button_REF.gc b/test/decompiler/reference/levels/common/plat-button_REF.gc index a4bb89fa14..47be8289ef 100644 --- a/test/decompiler/reference/levels/common/plat-button_REF.gc +++ b/test/decompiler/reference/levels/common/plat-button_REF.gc @@ -273,7 +273,7 @@ ) (rider-trans) (when (-> self go-back-if-lost-player?) - (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (not (and (logtest? (-> *target* control unknown-surface00 flags) 2048) (zero? (logand (-> *target* control status) 1)) ) @@ -353,7 +353,7 @@ ) (rider-trans) (when (-> self go-back-if-lost-player?) - (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (when (or (not *target*) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (not (and (logtest? (-> *target* control unknown-surface00 flags) 2048) (zero? (logand (-> *target* control status) 1)) ) diff --git a/test/decompiler/reference/levels/common/rigid-body_REF.gc b/test/decompiler/reference/levels/common/rigid-body_REF.gc index 15fde1dbbd..8210e1089e 100644 --- a/test/decompiler/reference/levels/common/rigid-body_REF.gc +++ b/test/decompiler/reference/levels/common/rigid-body_REF.gc @@ -254,31 +254,31 @@ ;; definition of type rigid-body-platform-constants (deftype rigid-body-platform-constants (structure) - ((drag-factor float :offset-assert 0) - (buoyancy-factor float :offset-assert 4) - (max-buoyancy-depth meters :offset-assert 8) - (gravity-factor float :offset-assert 12) - (gravity meters :offset-assert 16) - (player-weight meters :offset-assert 20) - (player-bonk-factor float :offset-assert 24) - (player-dive-factor float :offset-assert 28) - (player-force-distance meters :offset-assert 32) - (player-force-clamp meters :offset-assert 36) - (player-force-timeout uint64 :offset-assert 40) - (explosion-force meters :offset-assert 48) - (linear-damping float :offset-assert 52) - (angular-damping float :offset-assert 56) - (control-point-count int32 :offset-assert 60) - (mass float :offset-assert 64) - (inertial-tensor-x meters :offset-assert 68) - (inertial-tensor-y meters :offset-assert 72) - (inertial-tensor-z meters :offset-assert 76) - (cm-joint-x meters :offset-assert 80) - (cm-joint-y meters :offset-assert 84) - (cm-joint-z meters :offset-assert 88) - (idle-distance meters :offset-assert 92) - (platform symbol :offset-assert 96) - (sound-name string :offset-assert 100) + ((drag-factor float :offset-assert 0) + (buoyancy-factor float :offset-assert 4) + (max-buoyancy-depth meters :offset-assert 8) + (gravity-factor float :offset-assert 12) + (gravity meters :offset-assert 16) + (player-weight meters :offset-assert 20) + (player-bonk-factor float :offset-assert 24) + (player-dive-factor float :offset-assert 28) + (player-force-distance meters :offset-assert 32) + (player-force-clamp meters :offset-assert 36) + (player-force-timeout time-frame :offset-assert 40) + (explosion-force meters :offset-assert 48) + (linear-damping float :offset-assert 52) + (angular-damping float :offset-assert 56) + (control-point-count int32 :offset-assert 60) + (mass float :offset-assert 64) + (inertial-tensor-x meters :offset-assert 68) + (inertial-tensor-y meters :offset-assert 72) + (inertial-tensor-z meters :offset-assert 76) + (cm-joint-x meters :offset-assert 80) + (cm-joint-y meters :offset-assert 84) + (cm-joint-z meters :offset-assert 88) + (idle-distance meters :offset-assert 92) + (platform symbol :offset-assert 96) + (sound-name string :offset-assert 100) ) :method-count-assert 9 :size-assert #x68 @@ -350,7 +350,7 @@ (sim-time-remaining float :offset-assert 688) (float-height-offset float :offset-assert 692) (player-attack-id int32 :offset-assert 696) - (player-bonk-timeout int64 :offset-assert 704) + (player-bonk-timeout time-frame :offset-assert 704) (water-anim water-anim :offset-assert 712) (player-contact basic :offset-assert 716) (player-impulse collide-shape-prim-mesh :offset-assert 720) @@ -574,9 +574,7 @@ (defbehavior rigid-body-platform-event-handler rigid-body-platform ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 (('bonk) - (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) - (the-as int (-> self info player-force-timeout)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) (-> self info player-force-timeout)) (set! (-> self player-bonk-timeout) (-> *display* base-frame-counter)) (let* ((s5-0 arg0) (v1-7 (if (and (nonzero? s5-0) (type-type? (-> s5-0 type) process-drawable)) @@ -609,9 +607,7 @@ (set! (-> self player-attack-id) (the-as int v1-16)) (cond ((= (-> arg3 param 1) 'flop) - (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) - (the-as int (-> self info player-force-timeout)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self player-bonk-timeout)) (-> self info player-force-timeout)) (set! (-> self player-bonk-timeout) (-> *display* base-frame-counter)) (let* ((gp-1 arg0) (v1-24 (if (and (nonzero? gp-1) (type-type? (-> gp-1 type) process-drawable)) @@ -839,22 +835,22 @@ :buoyancy-factor 1.5 :max-buoyancy-depth (meters 1.5) :gravity-factor 1.0 - :gravity (meters 10.0) + :gravity (meters 10) :player-weight (meters 6.6) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 1 :mass 2.0 - :inertial-tensor-x (meters 3.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 3.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 3) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 3) + :idle-distance (meters 50) :platform #t :sound-name #f ) diff --git a/test/decompiler/reference/levels/common/ropebridge_REF.gc b/test/decompiler/reference/levels/common/ropebridge_REF.gc index cabfcd00ce..e94eafd5ba 100644 --- a/test/decompiler/reference/levels/common/ropebridge_REF.gc +++ b/test/decompiler/reference/levels/common/ropebridge_REF.gc @@ -514,9 +514,9 @@ ((root-override collide-shape :offset 112) (subtype uint64 :offset-assert 176) (subtype-name string :offset-assert 184) - (agitated-time-stamp uint64 :offset-assert 192) - (bonk-time-stamp uint64 :offset-assert 200) - (attack-flop-time-stamp uint64 :offset-assert 208) + (agitated-time-stamp time-frame :offset-assert 192) + (bonk-time-stamp time-frame :offset-assert 200) + (attack-flop-time-stamp time-frame :offset-assert 208) (player-attack-id uint64 :offset-assert 216) (sleep-dist float :offset-assert 224) (do-physics? basic :offset-assert 228) @@ -628,8 +628,8 @@ (let ((f0-0 -1.0)) (cond ((= arg2 'bonk) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self bonk-time-stamp))) 60) - (set! (-> self bonk-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (when (>= (- (-> *display* base-frame-counter) (-> self bonk-time-stamp)) (seconds 0.2)) + (set! (-> self bonk-time-stamp) (-> *display* base-frame-counter)) (set! f0-0 (the-as float (-> arg3 param 1))) (if (>= f0-0 (-> self tuning rider-bonk-max)) (set! f0-0 (-> self tuning rider-bonk-max)) @@ -640,7 +640,7 @@ (let ((v1-17 (-> arg3 param 2))) (when (!= v1-17 (-> self player-attack-id)) (set! (-> self player-attack-id) v1-17) - (set! (-> self attack-flop-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self attack-flop-time-stamp) (-> *display* base-frame-counter)) (set! f0-0 (* 1.1 (-> self tuning rider-bonk-max))) ) ) @@ -649,7 +649,7 @@ (the-as object (when (and (>= f0-0 (-> self tuning rider-bonk-min)) (-> arg3 param 0)) - (set! (-> self agitated-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self agitated-time-stamp) (-> *display* base-frame-counter)) (let* ((f30-0 (/ (* (- f0-0 (-> self tuning rider-bonk-min)) (-> self tuning rider-bonk-force)) (- (-> self tuning rider-bonk-max) (-> self tuning rider-bonk-min)) ) @@ -764,7 +764,7 @@ (set-vel-from-rider obj (+ s2-1 1) s3-0 1) ) ) - (set! (-> obj agitated-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj agitated-time-stamp) (-> *display* base-frame-counter)) ) ) ) @@ -1067,7 +1067,7 @@ ;; definition for method 12 of type ropebridge (defmethod run-logic? ropebridge ((obj ropebridge)) (or (zero? (logand (-> obj mask) (process-mask actor-pause))) - (< (- (-> *display* base-frame-counter) (the-as int (-> obj agitated-time-stamp))) 1500) + (< (- (-> *display* base-frame-counter) (-> obj agitated-time-stamp)) (seconds 5)) (or (>= (-> obj sleep-dist) (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))) @@ -1120,9 +1120,9 @@ ) ) (set! (-> obj tuning) (-> *ropebridge-tunings* (the-as int (-> obj subtype)))) - (set! (-> obj agitated-time-stamp) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj bonk-time-stamp) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj attack-flop-time-stamp) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj agitated-time-stamp) (-> *display* base-frame-counter)) + (set! (-> obj bonk-time-stamp) (-> *display* base-frame-counter)) + (set! (-> obj attack-flop-time-stamp) (-> *display* base-frame-counter)) (set-vector! (-> obj extra-trans) 0.0 0.0 (- (* 0.5 (-> obj tuning bridge-end-to-end-len))) 1.0) (set! (-> obj do-physics?) #t) (let ((a0-13 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) @@ -1151,7 +1151,3 @@ (go ropebridge-idle) (none) ) - - - - diff --git a/test/decompiler/reference/levels/common/sharkey_REF.gc b/test/decompiler/reference/levels/common/sharkey_REF.gc index 47d7fee132..5b868073d9 100644 --- a/test/decompiler/reference/levels/common/sharkey_REF.gc +++ b/test/decompiler/reference/levels/common/sharkey_REF.gc @@ -30,21 +30,21 @@ ;; definition of type sharkey (deftype sharkey (nav-enemy) - ((dir vector :inline :offset-assert 400) - (spawn-point vector :inline :offset-assert 416) - (scale float :offset-assert 432) - (anim-speed float :offset-assert 436) - (y-max meters :offset-assert 440) - (y-min meters :offset-assert 444) - (attack-time float :offset-assert 448) - (player-water-time uint64 :offset-assert 456) - (player-in-water basic :offset-assert 464) - (last-y float :offset-assert 468) - (spawn-distance meters :offset-assert 472) - (chase-speed meters :offset-assert 476) - (y-speed meters :offset-assert 480) - (sound-id sound-id :offset-assert 484) - (enable-patrol basic :offset-assert 488) + ((dir vector :inline :offset-assert 400) + (spawn-point vector :inline :offset-assert 416) + (scale float :offset-assert 432) + (anim-speed float :offset-assert 436) + (y-max meters :offset-assert 440) + (y-min meters :offset-assert 444) + (attack-time float :offset-assert 448) + (player-water-time time-frame :offset-assert 456) + (player-in-water basic :offset-assert 464) + (last-y float :offset-assert 468) + (spawn-distance meters :offset-assert 472) + (chase-speed meters :offset-assert 476) + (y-speed meters :offset-assert 480) + (sound-id sound-id :offset-assert 484) + (enable-patrol basic :offset-assert 488) ) :heap-base #x180 :method-count-assert 76 @@ -312,7 +312,7 @@ nav-enemy-default-event-handler ) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self notice-time)) 3000) + (if (>= (- (-> *display* base-frame-counter) (-> self notice-time)) (seconds 10)) (set! (-> self nav-enemy-flags) (logand -2 (-> self nav-enemy-flags))) ) ) @@ -505,7 +505,7 @@ nav-enemy-default-event-handler (f28-0 (-> self collide-info transv y)) (f26-0 (-> self collide-info trans y)) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (let ((gp-1 (-> self skel root-channel 0))) (set! (-> gp-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 3))) (set! (-> gp-1 param 0) @@ -594,7 +594,7 @@ nav-enemy-default-event-handler (when (logtest? (-> *target* control status) 2) (set! (-> self player-in-water) (logtest? (-> *target* control status) 1024)) (if (-> self player-in-water) - (set! (-> self player-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self player-water-time) (-> *display* base-frame-counter)) ) ) (if (and *target* (>= 8192.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)))) @@ -610,7 +610,7 @@ nav-enemy-default-event-handler ) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 3)) (go-virtual nav-enemy-patrol) ) ) @@ -626,7 +626,7 @@ nav-enemy-default-event-handler ) :code (behavior () - (set! (-> self player-water-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self player-water-time) (-> *display* base-frame-counter)) (ja-channel-push! 1 51) (sound-play-by-name (static-sound-name "bigshark-idle") (new-sound-id) 1024 0 0 1 #t) (while #t @@ -829,31 +829,31 @@ nav-enemy-default-event-handler :die-anim 2 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 12.0) + :run-travel-speed (meters 12) :run-rotate-speed (degrees 1999.9999) - :run-acceleration (meters 6.0) + :run-acceleration (meters 6) :run-turn-time (seconds 0.5) - :walk-travel-speed (meters 6.0) + :walk-travel-speed (meters 6) :walk-rotate-speed (degrees 1999.9999) - :walk-acceleration (meters 6.0) + :walk-acceleration (meters 6) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 1.0) + :attack-shove-back (meters 1) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 3.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 500.0) - :stop-chase-distance (meters 510.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :shadow-size (meters 2) + :notice-nav-radius (meters 3) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 500) + :stop-chase-distance (meters 510) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #f @@ -907,7 +907,9 @@ nav-enemy-default-event-handler (set! (-> obj collide-info trans y) (-> obj y-min)) (set! (-> obj anim-speed) 1.0) (set-vector! (-> obj collide-info scale) (-> obj scale) (-> obj scale) (-> obj scale) 1.0) - (set! (-> obj reaction-time) (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0)))) + (set! (-> obj reaction-time) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'delay :default 1.0)))) + ) (set! (-> obj spawn-distance) (res-lump-float (-> obj entity) 'distance :default 122880.0)) (set! (-> obj chase-speed) (res-lump-float (-> obj entity) 'speed :default 49152.0)) (set! (-> obj y-speed) (-> obj chase-speed)) diff --git a/test/decompiler/reference/levels/common/ticky_REF.gc b/test/decompiler/reference/levels/common/ticky_REF.gc index 2ea205dccc..afeb1a65f0 100644 --- a/test/decompiler/reference/levels/common/ticky_REF.gc +++ b/test/decompiler/reference/levels/common/ticky_REF.gc @@ -3,17 +3,17 @@ ;; definition of type ticky (deftype ticky (structure) - ((delay-til-ramp int64 :offset-assert 0) - (delay-til-timeout int64 :offset-assert 8) - (starting-time int64 :offset-assert 16) - (last-tick-time int64 :offset-assert 24) + ((delay-til-ramp time-frame :offset-assert 0) + (delay-til-timeout time-frame :offset-assert 8) + (starting-time time-frame :offset-assert 16) + (last-tick-time time-frame :offset-assert 24) ) :method-count-assert 12 :size-assert #x20 :flag-assert #xc00000020 (:methods - (sleep (_type_ int) none 9) - (reached-delay? (_type_ int) symbol 10) + (sleep (_type_ time-frame) none 9) + (reached-delay? (_type_ time-frame) symbol 10) (completed? (_type_) symbol 11) ) ) @@ -30,10 +30,10 @@ ;; definition for method 9 of type ticky ;; INFO: Return type mismatch int vs none. -(defmethod sleep ticky ((obj ticky) (arg0 int)) +(defmethod sleep ticky ((obj ticky) (arg0 time-frame)) (set! (-> obj starting-time) (-> *display* base-frame-counter)) (set! (-> obj delay-til-timeout) arg0) - (set! (-> obj delay-til-ramp) (max 0 (+ arg0 -1200))) + (set! (-> obj delay-til-ramp) (max 0 (+ arg0 (seconds -4)))) (set! (-> obj last-tick-time) 0) 0 (none) @@ -68,6 +68,6 @@ ) ;; definition for method 10 of type ticky -(defmethod reached-delay? ticky ((obj ticky) (arg0 int)) +(defmethod reached-delay? ticky ((obj ticky) (arg0 time-frame)) (>= (- (-> *display* base-frame-counter) (-> obj starting-time)) arg0) ) diff --git a/test/decompiler/reference/levels/darkcave/darkcave-obs_REF.gc b/test/decompiler/reference/levels/darkcave/darkcave-obs_REF.gc index b42c6b5f16..77f60f3a27 100644 --- a/test/decompiler/reference/levels/darkcave/darkcave-obs_REF.gc +++ b/test/decompiler/reference/levels/darkcave/darkcave-obs_REF.gc @@ -9,11 +9,11 @@ (glow-u float :offset-assert 184) (glow-wf-period int32 :offset-assert 188) (glow-wf-offset int32 :offset-assert 192) - (prev-compute-glow-time int64 :offset-assert 200) - (start-fade-time int64 :offset-assert 208) - (end-fade-time int64 :offset-assert 216) - (activated-time int64 :offset-assert 224) - (last-updated-user-lighting int64 :offset-assert 232) + (prev-compute-glow-time time-frame :offset-assert 200) + (start-fade-time time-frame :offset-assert 208) + (end-fade-time time-frame :offset-assert 216) + (activated-time time-frame :offset-assert 224) + (last-updated-user-lighting time-frame :offset-assert 232) (player-attack-id uint64 :offset-assert 240) (on-color-mult vector :inline :offset-assert 256) (on-color-emissive vector :inline :offset-assert 272) @@ -92,13 +92,13 @@ (f30-1 (* 0.1 (cos (* 65536.0 f0-2)))) ) (cond - ((>= 20 gp-1) + ((>= (seconds 0.06666667) gp-1) (let ((v1-11 (* 0.05 (the float gp-1)))) (fmax 0.0 (fmin 2.0 (+ (* 2.0 v1-11) (* v1-11 f30-1)))) ) ) - ((>= 180 gp-1) - (let ((a2-0 (* 0.00625 (the float (+ gp-1 -20))))) + ((>= (seconds 0.6) gp-1) + (let ((a2-0 (* 0.00625 (the float (+ gp-1 (seconds -0.06666667)))))) (fmin 2.0 (+ (lerp 2.0 1.0 a2-0) f30-1)) ) ) @@ -275,7 +275,9 @@ (if (-> obj is-master?) (logclear! (-> obj mask) (process-mask actor-pause)) ) - (set! (-> obj start-fade-time) (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 8.0)))) + (set! (-> obj start-fade-time) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 8.0)))) + ) (process-drawable-from-entity! obj arg0) (initialize-skeleton obj *cavecrystal-sg* '()) (nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f)) diff --git a/test/decompiler/reference/levels/demo/static-screen_REF.gc b/test/decompiler/reference/levels/demo/static-screen_REF.gc index 815896e802..2e8ad27cd0 100644 --- a/test/decompiler/reference/levels/demo/static-screen_REF.gc +++ b/test/decompiler/reference/levels/demo/static-screen_REF.gc @@ -4,14 +4,14 @@ ;; definition of type static-screen (deftype static-screen (process) ((part sparticle-launch-control 1 :offset-assert 112) - (state-time uint64 :offset-assert 120) + (state-time time-frame :offset-assert 120) ) :heap-base #x10 :method-count-assert 15 :size-assert #x80 :flag-assert #xf00100080 (:methods - (idle (int int symbol) _type_ :state 14) + (idle (int time-frame symbol) _type_ :state 14) ) ) @@ -119,7 +119,7 @@ (defstate idle (static-screen) :virtual #t :enter - (behavior ((arg0 int) (arg1 int) (arg2 symbol)) + (behavior ((arg0 int) (arg1 time-frame) (arg2 symbol)) (set! (-> *setting-control* current bg-a) 1.0) (set! (-> *setting-control* default bg-a) 0.0) (push-setting! *setting-control* self 'common-page 'set 0.0 (ash 1 (+ arg0 1))) @@ -133,18 +133,17 @@ (none) ) :code - (behavior ((arg0 int) (arg1 int) (arg2 symbol)) + (behavior ((arg0 int) (arg1 time-frame) (arg2 symbol)) (local-vars (v1-6 symbol)) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-6 (suspend) - (set! v1-6 - (or (and (> arg1 0) (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) arg1)) - (and arg2 - (>= (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) 300) - (cpad-pressed? 0 select start triangle circle x square) + (set! v1-6 (or (and (> arg1 0) (>= (- (-> *display* base-frame-counter) (-> self state-time)) arg1)) + (and arg2 + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) + (cpad-pressed? 0 select start triangle circle x square) + ) ) - ) ) ) (set! (-> *setting-control* default bg-a) 1.0) @@ -160,7 +159,7 @@ ;; definition for function static-screen-init-by-other ;; INFO: Return type mismatch int vs none. -(defbehavior static-screen-init-by-other static-screen ((arg0 int) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 symbol)) +(defbehavior static-screen-init-by-other static-screen ((arg0 int) (arg1 int) (arg2 int) (arg3 int) (arg4 time-frame) (arg5 symbol)) (let ((s3-0 (lookup-part-group-by-name "group-part-screen1"))) (when (and s3-0 (nonzero? s3-0) (type-type? (-> s3-0 type) sparticle-launch-group)) (set! (-> *part-id-table* 2966 init-specs 0 initial-valuef) (the-as float arg1)) @@ -187,7 +186,3 @@ (-> sv-16 ppointer) ) ) - - - - diff --git a/test/decompiler/reference/levels/finalboss/final-door_REF.gc b/test/decompiler/reference/levels/finalboss/final-door_REF.gc index 78f1982573..2f1d4e0bf3 100644 --- a/test/decompiler/reference/levels/finalboss/final-door_REF.gc +++ b/test/decompiler/reference/levels/finalboss/final-door_REF.gc @@ -333,7 +333,7 @@ (set! (-> self base y) (-> self jump-pos y)) (setup-from-to-duration! gp-1 (-> self root-override trans) (-> self jump-pos) 300.0 -2.2755556) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (let ((f0-2 (the float (- (-> *display* base-frame-counter) (-> self state-time))))) (eval-position! gp-1 f0-2 (-> self root-override trans)) ) @@ -450,7 +450,7 @@ ) :trans (behavior () - (set-letterbox-frames 5) + (set-letterbox-frames (seconds 0.016666668)) (none) ) :code @@ -501,7 +501,7 @@ ) ) (let ((s1-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s1-1) 30) + (until (>= (- (-> *display* base-frame-counter) s1-1) (seconds 0.1)) (suspend) ) ) @@ -523,14 +523,14 @@ ) ) (let ((s1-3 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s1-3) 30) + (until (>= (- (-> *display* base-frame-counter) s1-3) (seconds 0.1)) (suspend) ) ) ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 600) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 2)) (suspend) ) ) 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 0b9c4d0deb..20a1a69133 100644 --- a/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc +++ b/test/decompiler/reference/levels/finalboss/green-eco-lurker_REF.gc @@ -85,32 +85,32 @@ :die-anim 6 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 360.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 360.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.0) + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) :notice-nav-radius (meters 2.5) - :nav-nearest-y-threshold (meters 400.0) - :notice-distance (meters 300.0) - :stop-chase-distance (meters 400.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :nav-nearest-y-threshold (meters 400) + :notice-distance (meters 300) + :stop-chase-distance (meters 400) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.5) :shadow-min-y (meters -1.75) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -986,7 +986,7 @@ (when (< (-> self num-alive) 3) (when (nonzero? (-> self num-spawned)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/finalboss/light-eco_REF.gc b/test/decompiler/reference/levels/finalboss/light-eco_REF.gc index cfc4142daa..c51503b2a1 100644 --- a/test/decompiler/reference/levels/finalboss/light-eco_REF.gc +++ b/test/decompiler/reference/levels/finalboss/light-eco_REF.gc @@ -6,8 +6,8 @@ ((root-override collide-shape :offset 112) (angle-bit int32 :offset-assert 176) (ground-y float :offset-assert 180) - (falling-start-time int64 :offset-assert 184) - (last-update-time int64 :offset-assert 192) + (falling-start-time time-frame :offset-assert 184) + (last-update-time time-frame :offset-assert 192) (rot vector :inline :offset-assert 208) (rotv vector :inline :offset-assert 224) (traj trajectory :inline :offset-assert 240) @@ -49,8 +49,8 @@ (angle-mask int64 :offset-assert 184) (delay-til-spawn int32 :offset-assert 192) (part2 sparticle-launch-control :offset-assert 196) - (last-update-time int64 :offset-assert 200) - (last-spawned-time int64 :offset-assert 208) + (last-update-time time-frame :offset-assert 200) + (last-spawned-time time-frame :offset-assert 208) ) :heap-base #x70 :method-count-assert 22 @@ -585,7 +585,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (go light-eco-child-die) ) (common-trans self) @@ -614,7 +614,7 @@ (clear-collide-with-as (-> self root-override)) (logior! (-> self draw status) (draw-status drwf01)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (suspend) ) (none) diff --git a/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc index fbd193b911..5725e6bdfc 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-h_REF.gc @@ -46,8 +46,8 @@ (desired-loc vector :inline :offset-assert 240) (old-loc vector :inline :offset-assert 256) (loc-t float :offset-assert 272) - (loc-t-start int64 :offset-assert 280) - (loc-t-duration int64 :offset-assert 288) + (loc-t-start time-frame :offset-assert 280) + (loc-t-duration time-frame :offset-assert 288) (hits-to-go int32 :offset-assert 296) (took-hit symbol :offset-assert 300) (children-spawned int32 :offset-assert 304) diff --git a/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc index 5dd573317d..2a76a248de 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-misc_REF.gc @@ -259,7 +259,7 @@ (cond ((handle->process (-> self particles gp-0 tracker)) (set! (-> (the-as part-tracker (-> self particles gp-0 tracker process 0)) start-time) - (the-as uint (-> *display* base-frame-counter)) + (-> *display* base-frame-counter) ) ) ((-> self particles gp-0 kind) diff --git a/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc index 9dc2f5bdfe..054eb19cd6 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss-weapon_REF.gc @@ -262,10 +262,10 @@ ;; definition of type darkecobomb (deftype darkecobomb (arcing-shot) - ((flight-time int64 :offset-assert 224) - (countdown-time float :offset-assert 232) - (anim-speed float :offset-assert 236) - (next-tick float :offset-assert 240) + ((flight-time time-frame :offset-assert 224) + (countdown-time float :offset-assert 232) + (anim-speed float :offset-assert 236) + (next-tick float :offset-assert 240) ) :heap-base #x90 :method-count-assert 20 @@ -335,7 +335,7 @@ (send-event (ppointer->process (-> self parent)) 'bomb-going) (send-event *camera* 'change-to-entity-by-name "camera-402") (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (suspend) ) (send-event *camera* 'force-blend 0) @@ -512,7 +512,7 @@ :trans (behavior () (darkecobomb-explode-if-player-high-enough) - (if (>= (- (-> *display* game-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 0.5)) (go darkecobomb-countdown) ) (none) @@ -618,7 +618,7 @@ ;; definition for function darkecobomb-init-by-other ;; INFO: Return type mismatch object vs none. ;; Used lq/sq -(defbehavior darkecobomb-init-by-other darkecobomb ((arg0 vector) (arg1 vector) (arg2 float) (arg3 int) (arg4 float)) +(defbehavior darkecobomb-init-by-other darkecobomb ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame) (arg4 float)) (let ((s1-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s1-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s1-0 reaction) default-collision-reaction) @@ -665,7 +665,7 @@ ;; definition of type greenshot (deftype greenshot (arcing-shot) - ((flight-time int64 :offset-assert 224) + ((flight-time time-frame :offset-assert 224) ) :heap-base #x80 :method-count-assert 20 @@ -760,7 +760,7 @@ ;; definition for function greenshot-init-by-other ;; INFO: Return type mismatch object vs none. ;; Used lq/sq -(defbehavior greenshot-init-by-other greenshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 int)) +(defbehavior greenshot-init-by-other greenshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame)) (let ((s2-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s2-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s2-0 reaction) default-collision-reaction) @@ -791,8 +791,8 @@ ;; definition of type redshot (deftype redshot (arcing-shot) - ((flight-time int64 :offset-assert 224) - (stall-time int64 :offset-assert 232) + ((flight-time time-frame :offset-assert 224) + (stall-time time-frame :offset-assert 232) (ring torus :inline :offset-assert 240) (rotation-offset int64 :offset-assert 280) (part-track handle :offset-assert 288) @@ -871,7 +871,8 @@ ) ;; definition for function redshot-trans -(defbehavior redshot-trans redshot ((arg0 int)) +;; INFO: Return type mismatch object vs none. +(defbehavior redshot-trans redshot ((arg0 time-frame)) (let ((s5-0 (new 'stack-no-clear 'matrix))) 0.0 (matrix-rotate-yx! @@ -884,6 +885,7 @@ (if (< (* 0.006666667 (the float (min 150 arg0))) 1.0) (spawn (-> self part) (-> self root-override trans)) ) + (none) ) ;; failed to figure out what this is: @@ -950,12 +952,15 @@ ) ) (let ((f0-3 - (fmin 1.0 (* 0.006666667 (the float (- 600 (- (-> *display* game-frame-counter) (-> self state-time)))))) + (fmin + 1.0 + (* 0.006666667 (the float (- (seconds 2) (- (-> *display* game-frame-counter) (-> self state-time))))) + ) ) ) (set-vector! (-> self draw color-mult) f0-3 f0-3 f0-3 0.75) ) - (when (>= (- (-> *display* game-frame-counter) (-> self state-time)) 600) + (when (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 2)) (send-event (ppointer->process (-> self parent)) 'missed-jak) (deactivate self) ) @@ -1025,7 +1030,7 @@ ) :trans (behavior () - (redshot-trans 1500) + (redshot-trans (seconds 5)) (arcing-shot-calculate (-> self root-override trans) (/ (the float (- (-> *display* game-frame-counter) (-> self state-time))) (the float (-> self flight-time))) @@ -1050,7 +1055,7 @@ ;; definition for function redshot-init-by-other ;; INFO: Return type mismatch object vs none. ;; Used lq/sq -(defbehavior redshot-init-by-other redshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 uint) (arg4 uint) (arg5 uint)) +(defbehavior redshot-init-by-other redshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame) (arg4 time-frame) (arg5 int)) (local-vars (sv-16 collide-shape-prim-sphere)) (let ((s0-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s0-0 dynam) (copy *standard-dynamics* 'process)) @@ -1074,9 +1079,9 @@ (initialize-skeleton self *redring-sg* '()) (logclear! (-> self mask) (process-mask actor-pause)) (arcing-shot-setup arg0 arg1 arg2) - (set! (-> self flight-time) (the-as int arg3)) - (set! (-> self stall-time) (the-as int arg4)) - (set! (-> self rotation-offset) (the-as int arg5)) + (set! (-> self flight-time) arg3) + (set! (-> self stall-time) arg4) + (set! (-> self rotation-offset) arg5) (set! (-> self part) (create-launch-control (-> *part-group-id-table* 647) self)) (set! (-> self shot-particle) (create-launch-control (-> *part-group-id-table* 665) self)) (set! (-> self test-particle) (create-launch-control (-> *part-group-id-table* 679) self)) @@ -1101,7 +1106,7 @@ ;; definition of type yellowshot (deftype yellowshot (arcing-shot) - ((flight-time int64 :offset-assert 224) + ((flight-time time-frame :offset-assert 224) ) :heap-base #x80 :method-count-assert 20 @@ -1176,7 +1181,7 @@ ;; definition for function yellowshot-init-by-other ;; INFO: Return type mismatch object vs none. ;; Used lq/sq -(defbehavior yellowshot-init-by-other yellowshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 uint)) +(defbehavior yellowshot-init-by-other yellowshot ((arg0 vector) (arg1 vector) (arg2 float) (arg3 time-frame)) (let ((s2-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s2-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s2-0 reaction) default-collision-reaction) @@ -1199,7 +1204,7 @@ (initialize-skeleton self *redring-sg* '()) (logior! (-> self draw status) (draw-status drwf01)) (arcing-shot-setup arg0 arg1 arg2) - (set! (-> self flight-time) (the-as int arg3)) + (set! (-> self flight-time) arg3) (set! (-> self part) (create-launch-control (-> *part-group-id-table* 652) self)) (go yellowshot-idle) (none) diff --git a/test/decompiler/reference/levels/finalboss/robotboss_REF.gc b/test/decompiler/reference/levels/finalboss/robotboss_REF.gc index d8f18975ea..e947fdc507 100644 --- a/test/decompiler/reference/levels/finalboss/robotboss_REF.gc +++ b/test/decompiler/reference/levels/finalboss/robotboss_REF.gc @@ -95,7 +95,7 @@ (hide-hud-quick) (set! *camera-look-through-other* 2) (when (< (-> self valid-frames) 2) - (set-blackout-frames 10) + (set-blackout-frames (seconds 0.033333335)) (+! (-> self valid-frames) 1) ) ) @@ -861,7 +861,7 @@ (defstate robotboss-daxter-sacrifice-movie (robotboss) :code (behavior () - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (entity-birth-no-kill (-> self alts 5)) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) self) @@ -906,7 +906,9 @@ :trans (behavior () (spool-push *art-control* "green-sagecage-daxter-sacrifice" 0 self (the-as float -1.0)) - (when (and (< (-> self children-spawned) 1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 285)) + (when (and (< (-> self children-spawned) 1) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.95)) + ) (+! (-> self children-spawned) 1) (let ((gp-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 quad) (-> self entity extra trans quad)) @@ -1108,7 +1110,7 @@ (set-vector! (-> self desired-loc) 16384.0 -81920.0 716800.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 1200) + (set! (-> self loc-t-duration) (seconds 4)) (set! (-> self desired-pool-y) -16384.0) (play-ambient (-> self ambient) "GOL-AM01" #t (the-as vector #f)) (none) @@ -1746,7 +1748,7 @@ (set-vector! (-> self desired-loc) 13653.333 77824.0 491520.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -18432.0) (none) ) @@ -2018,7 +2020,7 @@ (set-vector! (-> self desired-loc) 0.0 -81920.0 716800.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -20480.0) (none) ) @@ -2126,9 +2128,9 @@ ;; definition of type redshot-launch-info (deftype redshot-launch-info (structure) - ((dest vector :inline :offset-assert 0) - (flight-time int64 :offset-assert 16) - (stall-time int64 :offset-assert 24) + ((dest vector :inline :offset-assert 0) + (flight-time time-frame :offset-assert 16) + (stall-time time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -2206,16 +2208,20 @@ (v1-27 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-28 (the-as number (logior #x3f800000 v1-27))) ) - (set! (-> arg0 info s3-0 flight-time) (+ (the int (* f30-2 (+ -1.0 (the-as float v1-28)))) 180)) + (set! (-> arg0 info s3-0 flight-time) + (the-as time-frame (+ (the int (* f30-2 (+ -1.0 (the-as float v1-28)))) 180)) + ) ) - (let* ((s1-3 (max 150 (- s2-0 (-> arg0 info s3-0 flight-time)))) + (let* ((s1-3 (max 150 (- (the-as time-frame s2-0) (-> arg0 info s3-0 flight-time)))) (f30-3 60.0) (v1-38 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-39 (the-as number (logior #x3f800000 v1-38))) ) - (set! (-> arg0 info s3-0 stall-time) (+ (the int (* f30-3 (+ -1.0 (the-as float v1-39)))) 300 s1-3)) + (set! (-> arg0 info s3-0 stall-time) + (the-as time-frame (+ (the int (* f30-3 (+ -1.0 (the-as float v1-39)))) 300 s1-3)) + ) ) - (set! s2-0 (+ (-> arg0 info s3-0 flight-time) (-> arg0 info s3-0 stall-time))) + (set! s2-0 (the-as int (+ (-> arg0 info s3-0 flight-time) (-> arg0 info s3-0 stall-time)))) ) (vector-float*! s5-0 s5-0 0.16666667) (vector-! s5-0 (-> self entity extra trans) s5-0) @@ -2231,7 +2237,7 @@ ;; WARN: Stack slot load at 64 mismatch: defined as size 4, got size 16 ;; Used lq/sq (defbehavior robotboss-redshot robotboss ((arg0 redshot-launch-info) (arg1 symbol)) - (local-vars (sv-32 redshot-launch-info) (sv-48 vector) (sv-64 float) (sv-80 int) (sv-96 int)) + (local-vars (sv-32 redshot-launch-info) (sv-48 vector) (sv-64 float) (sv-80 time-frame) (sv-96 time-frame)) (set! sv-32 arg0) (let ((s5-0 arg1)) (+! (-> self children-spawned) 1) @@ -2753,7 +2759,7 @@ (set-vector! (-> self desired-loc) 8192.0 -40960.0 327680.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -22528.0) (set-setting! *setting-control* self 'sound-flava #f (the-as float 40.0) 48) (none) @@ -3011,7 +3017,7 @@ (set-vector! (-> self desired-loc) 16384.0 -81920.0 716800.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -24576.0) (play-ambient (-> self ambient) "MAI-AM01" #t (the-as vector #f)) (none) @@ -3305,14 +3311,18 @@ (behavior () (robotboss-always-trans robotboss-green-dark-bomb) (cond - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 120) (< (-> self children-spawned) 1)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 0.4)) + (< (-> self children-spawned) 1) + ) (robotboss-greenshot (new 'static 'vector) (the-as float 24576.0) 600 #t) (ja-channel-push! 1 60) (let ((v1-9 (-> self skel root-channel 0))) (set! (-> v1-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 360) (< (-> self children-spawned) 3)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 1.2)) + (< (-> self children-spawned) 3) + ) (robotboss-greenshot (new 'static 'vector :x 8192.0) (the-as float 16384.0) 600 #t) (robotboss-greenshot (new 'static 'vector :z 8192.0) (the-as float 32768.0) 660 #f) (ja-channel-push! 1 60) @@ -3320,7 +3330,9 @@ (set! (-> v1-20 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 780) (< (-> self children-spawned) 6)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 2.6)) + (< (-> self children-spawned) 6) + ) (robotboss-greenshot (new 'static 'vector :z 12288.0) (the-as float 20480.0) 600 #t) (robotboss-greenshot (new 'static 'vector :x 8192.0) (the-as float 8192.0) 660 #f) (robotboss-greenshot (new 'static 'vector) (the-as float 36864.0) 720 #f) @@ -3329,14 +3341,18 @@ (set! (-> v1-32 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 1200) (< (-> self children-spawned) 7)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 4)) + (< (-> self children-spawned) 7) + ) (robotboss-greenshot (new 'static 'vector) (the-as float 24576.0) 600 #t) (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 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 1650) (< (-> self children-spawned) 9)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 5.5)) + (< (-> self children-spawned) 9) + ) (robotboss-greenshot (new 'static 'vector) (the-as float 12288.0) 600 #t) (robotboss-greenshot (new 'static 'vector :x 4096.0 :z 12288.0) (the-as float 32768.0) 600 #f) (ja-channel-push! 1 60) @@ -3344,7 +3360,9 @@ (set! (-> v1-53 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) ) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 2400) (< (-> self children-spawned) 10)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 8)) + (< (-> self children-spawned) 10) + ) (+! (-> self children-spawned) 1) (let ((gp-0 (get-process *default-dead-pool* green-eco-lurker-gen #x4000))) (when gp-0 @@ -3365,10 +3383,12 @@ (set-vector! (-> self desired-loc) 24576.0 0.0 655360.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -26624.0) ) - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 2460) (< (-> self children-spawned) 11)) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 8.2)) + (< (-> self children-spawned) 11) + ) (+! (-> self children-spawned) 1) (robotboss-yellow-eco-on) ) @@ -3459,7 +3479,7 @@ (set-vector! (-> self desired-loc) 24576.0 0.0 245760.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -26624.0) (play-ambient (-> self ambient) "GOL-AM01" #t (the-as vector #f)) (set-setting! *setting-control* self 'sound-flava #f (the-as float 40.0) 47) @@ -3733,7 +3753,7 @@ (set-vector! (-> self desired-loc) 16384.0 -118784.0 614400.0 1.0) (set! (-> self loc-t) 0.0) (set! (-> self loc-t-start) (-> *display* game-frame-counter)) - (set! (-> self loc-t-duration) 900) + (set! (-> self loc-t-duration) (seconds 3)) (set! (-> self desired-pool-y) -28672.0) (none) ) @@ -3862,7 +3882,7 @@ ) ) (cond - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 120) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 0.4)) (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -3911,7 +3931,7 @@ ) ) (cond - ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) 420) + ((and (>= (- (-> *display* game-frame-counter) (-> self state-time)) (seconds 1.4)) (not (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) ) @@ -4198,7 +4218,7 @@ ) (robotboss-blue-beam 8 #t) (robotboss-blue-beam 9 #f) - (when (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) 3000 (the-as float 327680.0) self) + (when (TODO-RENAME-10 (-> self ambient) (new 'stack-no-clear 'vector) (seconds 10) (the-as float 327680.0) self) (let* ((v1-73 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-74 (the-as number (logior #x3f800000 v1-73))) (f0-2 (+ -1.0 (the-as float v1-74))) 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 ec1936fb4c..3b7beeeee4 100644 --- a/test/decompiler/reference/levels/finalboss/sage-finalboss-FIN_REF.gc +++ b/test/decompiler/reference/levels/finalboss/sage-finalboss-FIN_REF.gc @@ -39,11 +39,11 @@ ;; definition of type plat-eco-finalboss (deftype plat-eco-finalboss (plat-eco) - ((force-dest float :offset-assert 360) - (targ-dest float :offset-assert 364) - (dest float :offset-assert 368) - (speed float :offset-assert 372) - (touch-time int64 :offset-assert 376) + ((force-dest float :offset-assert 360) + (targ-dest float :offset-assert 364) + (dest float :offset-assert 368) + (speed float :offset-assert 372) + (touch-time time-frame :offset-assert 376) ) :heap-base #x110 :method-count-assert 33 @@ -100,7 +100,7 @@ ) ) (('ridden 'edge-grabbed) - (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) 600) + (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 2)) (set! (-> self targ-dest) (cond ((= (-> self path-pos) 0.0) (set! (-> self force-dest) -1.0) @@ -144,7 +144,7 @@ (let ((s5-0 (eval-path-curve! (-> self path) (new 'stack-no-clear 'vector) 0.0 'interp)) (gp-0 (eval-path-curve! (-> self path) (new 'stack-no-clear 'vector) 1.0 'interp)) ) - (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 3)) (set! (-> self targ-dest) -1.0) ) (set! (-> self dest) @@ -883,7 +883,7 @@ ((= (current-status (-> self tasks)) (task-status invalid)) ) (else - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) ) ) (dotimes (v1-84 9) @@ -1081,7 +1081,7 @@ (local-vars (s5-0 symbol)) (set! (-> self credits-played) #t) (set-blackout-frames 0) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (clear-pending-settings-from-process *setting-control* self 'sfx-volume) (clear-pending-settings-from-process *setting-control* self 'ambient-volume) (set-setting! *setting-control* self 'allow-pause #f 0.0 0) @@ -1128,9 +1128,9 @@ (clear-pending-settings-from-process *setting-control* self 'process-mask) (clear-pending-settings-from-process *setting-control* self 'music) (copy-settings-from-target! *setting-control*) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 15) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 0.05)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc index 62abf1aa36..ecbedaa3be 100644 --- a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc +++ b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc @@ -97,7 +97,7 @@ (not (movie?)) (not (level-hint-displayed?)) (not (and *cheat-mode* (cpad-hold? 0 l3))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 3000) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) ) ) (hide-hud) diff --git a/test/decompiler/reference/levels/flut_common/flutflut_REF.gc b/test/decompiler/reference/levels/flut_common/flutflut_REF.gc index d49493f811..4931fd5905 100644 --- a/test/decompiler/reference/levels/flut_common/flutflut_REF.gc +++ b/test/decompiler/reference/levels/flut_common/flutflut_REF.gc @@ -17,7 +17,7 @@ (path-data path-control 2 :offset-assert 208) (path-target path-control :offset 208) (path-flut path-control :offset 212) - (touch-time uint64 :offset-assert 216) + (touch-time time-frame :offset-assert 216) ) :pack-me :heap-base #x70 @@ -112,7 +112,7 @@ ) ) ((or (= v1-0 'touch) (= v1-0 'attack)) - (set! (-> self touch-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self touch-time) (-> *display* base-frame-counter)) #f ) ) @@ -161,7 +161,7 @@ ) (if (and *target* (logtest? (-> *target* control root-prim prim-core action) (collide-action ca-14)) - (< (- (-> *display* base-frame-counter) (the-as int (-> self touch-time))) 15) + (< (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 0.05)) ) (go-virtual pickup (method-of-object self idle)) ) @@ -321,7 +321,7 @@ (suspend) ) (let ((s5-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-0) 300) + (until (>= (- (-> *display* base-frame-counter) s5-0) (seconds 1)) (flutflut-effect) (suspend) ) diff --git a/test/decompiler/reference/levels/flut_common/target-flut_REF.gc b/test/decompiler/reference/levels/flut_common/target-flut_REF.gc index 15a39428dd..4774dba64c 100644 --- a/test/decompiler/reference/levels/flut_common/target-flut_REF.gc +++ b/test/decompiler/reference/levels/flut_common/target-flut_REF.gc @@ -29,12 +29,12 @@ ;; definition of type flut-bank (deftype flut-bank (basic) - ((jump-height-min meters :offset-assert 4) - (jump-height-max meters :offset-assert 8) - (double-jump-height-min meters :offset-assert 12) - (double-jump-height-max meters :offset-assert 16) - (air-attack-speed meters :offset-assert 20) - (ground-timeout int64 :offset-assert 24) + ((jump-height-min meters :offset-assert 4) + (jump-height-max meters :offset-assert 8) + (double-jump-height-min meters :offset-assert 12) + (double-jump-height-max meters :offset-assert 16) + (air-attack-speed meters :offset-assert 20) + (ground-timeout time-frame :offset-assert 24) ) :method-count-assert 9 :size-assert #x20 @@ -55,12 +55,12 @@ ;; definition for symbol *FLUT-bank*, type flut-bank (define *FLUT-bank* (new 'static 'flut-bank - :jump-height-min (meters 5.0) - :jump-height-max (meters 7.0) - :double-jump-height-min (meters 1.0) - :double-jump-height-max (meters 2.0) - :air-attack-speed (meters 20.0) - :ground-timeout #x96 + :jump-height-min (meters 5) + :jump-height-max (meters 7) + :double-jump-height-min (meters 1) + :double-jump-height-max (meters 2) + :air-attack-speed (meters 20) + :ground-timeout (seconds 0.5) ) ) @@ -1019,10 +1019,10 @@ (let ((f0-22 (ja-aframe-num 0))) (cond ((and (>= (-> self skel effect last-frame-num) 20.0) (< f0-22 20.0)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 120) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 (seconds 0.4)) ) ((and (< (-> self skel effect last-frame-num) 12.0) (>= f0-22 12.0)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 120) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 51 (seconds 0.4)) ) ) ) @@ -1102,7 +1102,7 @@ (if (logtest? (-> self control status) 1) (go target-flut-hit-ground) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) (pad-buttons x)) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 40960.0) (and (zero? (logand (-> self water flags) 512)) (zero? (logand (-> self state-flags) 2048)) @@ -1111,13 +1111,11 @@ ) (go target-flut-double-jump (-> *FLUT-bank* double-jump-height-min) (-> *FLUT-bank* double-jump-height-max)) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons square) - ) + (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 61440.0) (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) @@ -1125,13 +1123,9 @@ ) (go target-flut-air-attack (-> *FLUT-bank* air-attack-speed)) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -1141,12 +1135,7 @@ 'stuck (go target-flut-hit-ground) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (set! (-> self control unknown-float122) (seek (-> self control unknown-float122) @@ -1301,7 +1290,7 @@ (and (zero? (logand (-> self state-flags) 4096)) (zero? (logand (-> self control unknown-surface01 flags) 384)) (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as int (-> *TARGET-bank* stuck-timeout)) + (the-as time-frame (-> *TARGET-bank* stuck-timeout)) ) (< 4096.0 (target-height-above-ground)) ) @@ -1309,12 +1298,7 @@ (go target-flut-air-attack (-> *FLUT-bank* air-attack-speed)) ) (if (!= (-> self state-time) (-> *display* base-frame-counter)) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) ) (if (= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -1345,7 +1329,7 @@ (joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 149)) num-func-seek!) ) (until (ja-done? 0) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 (seconds 0.1)) (suspend) (let ((a0-4 (-> self skel root-channel 0))) (set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1))) @@ -1365,7 +1349,7 @@ (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 149)) num-func-seek!) ) (until (ja-done? 0) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 (seconds 0.1)) (suspend) (let ((a0-10 (-> self skel root-channel 0))) (set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1))) @@ -1376,7 +1360,7 @@ ) (while (< (-> (new 'static 'array float 1 8192.0) 0) (target-height-above-ground)) (suspend) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 3 (seconds 0.1)) (let ((a0-13 (-> self skel root-channel 0))) (set! (-> a0-13 param 0) 1.0) (joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-loop!) @@ -1455,7 +1439,7 @@ (behavior () (target-land-effect) (if (< 40960.0 (-> self control ground-impact-vel)) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 60) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.2)) ) (set! (-> self control unknown-dword31) 0) (set! (-> self control unknown-dword33) 0) @@ -1529,15 +1513,11 @@ :trans (behavior () (when (or (logtest? (-> self control status) 1) - (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) (-> *TARGET-bank* stuck-distance)) + (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) ) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -1683,8 +1663,10 @@ (set! (-> *run-attack-mods* turnvv) 655360.0) (target-start-attack) (target-danger-set! 'flut-attack #f) - (when (and (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 75) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.25)) ) (let ((gp-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control quat))) (s5-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 32))) @@ -1734,7 +1716,7 @@ (and (>= (-> self control unknown-float63) 0.7) (zero? (logand (-> self control status) 32))) ) (begin - (set! (-> self control unknown-int21) (-> *display* base-frame-counter)) + (set! (-> self control unknown-int21) (the-as int (-> *display* base-frame-counter))) (set! (-> self control unknown-float81) 0.0) (let ((gp-0 (new-stack-vector0)) (f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) @@ -1864,10 +1846,10 @@ (set! (-> a0-36 param 1) (-> self control unknown-surface01 align-speed)) (joint-control-channel-group-eval! a0-36 (the-as art-joint-anim #f) num-func-seek!) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! (-> *flut-run-attack-mods* turnvv) 0.0) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (set! f30-0 (* f30-0 (the-as float (fmin 1.0 (the-as float (-> self control unknown-float140)))))) ) ) @@ -2013,13 +1995,9 @@ (remove-exit) (go target-flut-air-attack-hit-ground) ) - (when (if (and (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) 4096.0) - (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) - (not - (and *cheat-mode* - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) 4096.0) + (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) + (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) #t @@ -2093,7 +2071,7 @@ :enter (behavior () (target-land-effect) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 120) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.4)) (set! (-> self control unknown-dword31) 0) (set! (-> self control unknown-dword33) 0) (set! (-> self control unknown-surface00) *flut-air-attack-mods*) @@ -2195,9 +2173,7 @@ :trans (behavior () (when (= *cheat-mode* 'debug) - (when (and (not *pause-lock*) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) + (when (and (not *pause-lock*) (cpad-hold? (-> self control unknown-cpad-info00 number) r2)) (pickup-collectable! (-> self fact-info-target) (pickup-type eco-green) (the-as float 1.0) (the-as handle #f)) (go target-flut-stance) ) @@ -2260,7 +2236,7 @@ (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) (ja-channel-set! 0) (let ((s3-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s3-1) 300) + (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) (suspend) ) ) @@ -2419,7 +2395,7 @@ ) ) (let ((gp-4 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-4) 300) + (until (>= (- (-> *display* base-frame-counter) gp-4) (seconds 1)) (target-flut-falling-anim-trans) (vector-seek! (-> self draw color-mult) *zero-vector* (-> *display* seconds-per-frame)) (let ((s5-2 (new-stack-vector0)) @@ -2484,7 +2460,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-104 (suspend) - (set! v1-104 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) (not (movie?)))) + (set! v1-104 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (not (movie?)))) ) (go target-flut-stance) (none) @@ -2575,7 +2551,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.006666667 (the float (+ (- (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.006666667 (the float (+ (- (the-as int (-> self state-time))) (-> *display* base-frame-counter)))) + ) ) ) ) @@ -2708,7 +2687,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.0044444446 (the float (+ (- -150 (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.0044444446 (the float (+ (- (seconds -0.5) (-> self state-time)) (-> *display* base-frame-counter)))) + ) ) ) ) diff --git a/test/decompiler/reference/levels/intro/evilbro_REF.gc b/test/decompiler/reference/levels/intro/evilbro_REF.gc index 64714b0a72..08fbbf57ae 100644 --- a/test/decompiler/reference/levels/intro/evilbro_REF.gc +++ b/test/decompiler/reference/levels/intro/evilbro_REF.gc @@ -99,7 +99,7 @@ (v1-29 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-30 (the-as number (logior #x3f800000 v1-29))) ) - (< (- s5-0 (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-30))))))) gp-0) + (< (- s5-0 (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-30)))))))) gp-0) ) (suspend) ) @@ -136,7 +136,7 @@ (v1-54 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-55 (the-as number (logior #x3f800000 v1-54))) ) - (< (- s5-1 (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-55))))))) gp-3) + (< (- s5-1 (the-as time-frame (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-55)))))))) gp-3) ) (suspend) ) diff --git a/test/decompiler/reference/levels/jungle/bouncer_REF.gc b/test/decompiler/reference/levels/jungle/bouncer_REF.gc index 149c806b1f..8be4b45375 100644 --- a/test/decompiler/reference/levels/jungle/bouncer_REF.gc +++ b/test/decompiler/reference/levels/jungle/bouncer_REF.gc @@ -110,7 +110,7 @@ (set! (-> self smush) 0.0) (while #t (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + ((>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (let ((a0-1 (-> self skel root-channel 0))) (set! (-> a0-1 param 0) 0.0) (set! (-> a0-1 param 1) 0.1) @@ -147,7 +147,7 @@ (defstate bouncer-fire (springbox) :code (behavior () - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) (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) diff --git a/test/decompiler/reference/levels/jungle/darkvine_REF.gc b/test/decompiler/reference/levels/jungle/darkvine_REF.gc index 43ed6bf589..635dbb3722 100644 --- a/test/decompiler/reference/levels/jungle/darkvine_REF.gc +++ b/test/decompiler/reference/levels/jungle/darkvine_REF.gc @@ -9,7 +9,7 @@ (dangerous symbol :offset-assert 184) (vulnerable symbol :offset-assert 188) (hit-player symbol :offset-assert 192) - (touch-time uint64 :offset-assert 200) + (touch-time time-frame :offset-assert 200) (player-attack-id int32 :offset-assert 208) ) :heap-base #x70 @@ -209,7 +209,7 @@ ) (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) + (seek-toward-yaw-angle! (-> self root-override) f30-0 32768.0 (seconds 0.5)) ) (suspend) (let ((a0-7 (-> self skel root-channel 0))) @@ -230,7 +230,7 @@ :post (behavior () (when (and (-> self hit-player) - (or (not *target*) (>= (- (-> *display* base-frame-counter) (the-as int (-> self touch-time))) 15)) + (or (not *target*) (>= (- (-> *display* base-frame-counter) (-> self touch-time)) (seconds 0.05))) ) (set-collide-offense (-> self root-override) 2 (collide-offense indestructible)) (set! (-> self hit-player) #f) @@ -286,7 +286,7 @@ ) (ja-channel-set! 0) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 600) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 2)) (suspend) ) ) @@ -309,7 +309,7 @@ ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 150) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.5)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc b/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc index ad50038ebd..d9d7b5ca42 100644 --- a/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc +++ b/test/decompiler/reference/levels/jungle/fisher-JUN_REF.gc @@ -179,15 +179,15 @@ ;; definition of type fisher-params (deftype fisher-params (structure) - ((timeout seconds :offset-assert 0) - (vel float :offset-assert 8) - (swing-min seconds :offset-assert 16) - (swing-max seconds :offset-assert 24) - (period seconds :offset-assert 32) - (fish-vel float :offset-assert 40) - (bad-percent float :offset-assert 44) - (deadly-percent float :offset-assert 48) - (powerup-percent float :offset-assert 52) + ((timeout time-frame :offset-assert 0) + (vel float :offset-assert 8) + (swing-min time-frame :offset-assert 16) + (swing-max time-frame :offset-assert 24) + (period time-frame :offset-assert 32) + (fish-vel float :offset-assert 40) + (bad-percent float :offset-assert 44) + (deadly-percent float :offset-assert 48) + (powerup-percent float :offset-assert 52) ) :allow-misaligned :method-count-assert 9 @@ -742,7 +742,7 @@ ) (new 'static 'fisher-params :timeout (seconds 2)) (new 'static 'fisher-params - :timeout (seconds 31535998.0) + :timeout (seconds 31535998) :vel 1.6 :swing-min (seconds 0.5) :swing-max (seconds 2) @@ -765,19 +765,19 @@ (paddle-vel float :offset-assert 436) (spawner float :offset-assert 440) (spawner-last float :offset-assert 444) - (spawn-time int64 :offset-assert 448) - (turn-time int64 :offset-assert 456) - (swing-time int64 :offset-assert 464) - (block-time int64 :offset-assert 472) + (spawn-time time-frame :offset-assert 448) + (turn-time time-frame :offset-assert 456) + (swing-time time-frame :offset-assert 464) + (block-time time-frame :offset-assert 472) (block int32 :offset-assert 480) (caught int32 :offset-assert 484) (missed int32 :offset-assert 488) (difficulty int32 :offset-assert 492) - (start-time int64 :offset-assert 496) - (ambient-big-one int64 :offset-assert 504) - (ambient-steady int64 :offset-assert 512) - (ambient-sagging int64 :offset-assert 520) - (ambient-almost int64 :offset-assert 528) + (start-time time-frame :offset-assert 496) + (ambient-big-one time-frame :offset-assert 504) + (ambient-steady time-frame :offset-assert 512) + (ambient-sagging time-frame :offset-assert 520) + (ambient-almost time-frame :offset-assert 528) (cheat-temp int32 :offset-assert 536) (hard symbol :offset-assert 540) (training symbol :offset-assert 544) @@ -978,7 +978,7 @@ (+! (-> 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)) - (seek-toward-heading-vec! (-> self root) (-> self dir) 291271.12 60) + (seek-toward-heading-vec! (-> self root) (-> self dir) 291271.12 (seconds 0.2)) (let ((f30-1 (+ 16384.0 (y-angle (-> self root)))) (gp-0 (new-stack-vector0)) ) @@ -1498,7 +1498,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.1)) (suspend) ) ) @@ -1582,7 +1582,7 @@ ) ;; definition for function fisher-spawn-ambient -;; INFO: Return type mismatch int vs none. +;; INFO: Return type mismatch time-frame vs none. (defbehavior fisher-spawn-ambient fisher () (let* ((v1-1 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-2 (the-as number (logior #x3f800000 v1-1))) @@ -1590,7 +1590,7 @@ ) (cond ((and (< 0.3 f0-2) (< (+ (-> *FISHER-bank* max-caught) -30) (-> self caught))) - (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-almost)) 3000) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-almost)) (seconds 10)) (play-ambient (-> self ambient) "FIS-TA11" #t (-> self root-override trans)) ) (set! (-> self ambient-almost) (-> *display* base-frame-counter)) @@ -1599,14 +1599,14 @@ ((< 0.125 f0-2) ) ((< 0.1 f0-2) - (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-steady)) 3000) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-steady)) (seconds 10)) (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) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-sagging)) (seconds 10)) (play-ambient (-> self ambient) "FIS-TA07" #t (-> self root-override trans)) ) (set! (-> self ambient-sagging) (-> *display* base-frame-counter)) @@ -1620,7 +1620,7 @@ ;; definition for function fisher-game-update ;; INFO: Return type mismatch int vs 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)) (-> self params timeout)) (set! (-> self block-time) (-> *display* base-frame-counter)) (+! (-> self block) 1) (mem-copy! @@ -1637,7 +1637,7 @@ (set! (-> self params vel) (- (-> self params vel))) ) (+! (-> self spawner) (* (-> self params vel) (-> *display* seconds-per-frame))) - (if (= (-> self params swing-min) #x1869f) + (if (= (-> self params swing-min) (seconds 333.33)) (set! (-> self spawner) (* 0.01 (the float (-> self params swing-max)))) ) (cond @@ -1651,12 +1651,12 @@ ) ) (when (and (nonzero? (-> self params period)) - (>= (- (-> *display* base-frame-counter) (-> self spawn-time)) (the-as int (-> self params period))) + (>= (- (-> *display* base-frame-counter) (-> self spawn-time)) (-> 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) + (if (and (>= (- (-> *display* base-frame-counter) (-> self ambient-big-one)) (seconds 30)) (play-ambient (-> self ambient) "FIS-TA03" #t (-> self root-override trans)) ) (set! (-> self ambient-big-one) (-> *display* base-frame-counter)) @@ -1845,7 +1845,7 @@ :virtual #t :trans (behavior () - (set-blackout-frames 5) + (set-blackout-frames (seconds 0.016666668)) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-0 from) self) (set! (-> a1-0 num-params) 2) @@ -1882,7 +1882,7 @@ (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) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 1) 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))) @@ -1895,7 +1895,7 @@ ) ) (else - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 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))) diff --git a/test/decompiler/reference/levels/jungle/hopper_REF.gc b/test/decompiler/reference/levels/jungle/hopper_REF.gc index 05ecd95a9a..c9a34325aa 100644 --- a/test/decompiler/reference/levels/jungle/hopper_REF.gc +++ b/test/decompiler/reference/levels/jungle/hopper_REF.gc @@ -256,7 +256,7 @@ nav-enemy-default-event-handler ) (set! (-> gp-0 frame-num) 0.0) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (suspend) (let ((a0-21 (-> self skel root-channel 0))) (set! (-> a0-21 param 0) 1.0) @@ -377,7 +377,7 @@ nav-enemy-default-event-handler ) (set! (-> gp-0 frame-num) 0.0) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (suspend) (let ((a0-21 (-> self skel root-channel 0))) (set! (-> a0-21 param 0) 1.0) @@ -422,32 +422,32 @@ nav-enemy-default-event-handler :die-anim 11 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 10.0) + :run-travel-speed (meters 10) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 6.0) + :walk-travel-speed (meters 6) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 1.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 3.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 3.0) + :jump-height-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc b/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc index b185cf1d78..8877fb8452 100644 --- a/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc +++ b/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc @@ -72,7 +72,7 @@ (send-event *target* 'reset-height) ) ) - (if (and (>= (-> self path-pos) 0.2) (< (- (-> *display* base-frame-counter) (-> self state-time)) 60)) + (if (and (>= (-> self path-pos) 0.2) (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2))) (load-commands-set! *level* (load-command-get-index *level* 'jungle 0)) ) (none) @@ -112,7 +112,7 @@ (t9-0) ) ) - (if (and (< (-> self path-pos) 0.8) (< (- (-> *display* base-frame-counter) (-> self state-time)) 60)) + (if (and (< (-> self path-pos) 0.8) (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2))) (load-commands-set! *level* (load-command-get-index *level* 'jungle 1)) ) (none) diff --git a/test/decompiler/reference/levels/jungle/jungle-mirrors_REF.gc b/test/decompiler/reference/levels/jungle/jungle-mirrors_REF.gc index 1347c4fb7a..044238d051 100644 --- a/test/decompiler/reference/levels/jungle/jungle-mirrors_REF.gc +++ b/test/decompiler/reference/levels/jungle/jungle-mirrors_REF.gc @@ -552,7 +552,7 @@ (old-camera-matrix matrix :inline :offset-assert 272) (reflector (pointer reflector) :offset-assert 336) (gauge-rot degrees :offset-assert 340) - (lock-time uint64 :offset-assert 344) + (lock-time time-frame :offset-assert 344) (aligned? symbol :offset-assert 352) (raised? symbol :offset-assert 356) (player-touching-grips? symbol :offset-assert 360) @@ -1699,7 +1699,7 @@ ) :code (behavior () - (set! (-> self lock-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self lock-time) (-> *display* base-frame-counter)) (link-to-next-and-prev-actor (-> self link)) (periscope-find-next) (let ((a1-0 (new 'stack-no-clear 'event-message-block))) @@ -1807,11 +1807,11 @@ (suspend) (while #t (if (not (-> self aligned?)) - (set! (-> self lock-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self lock-time) (-> *display* base-frame-counter)) ) (periscope-crosshair) (when (or (cpad-pressed? 0 triangle x) - (and (-> self aligned?) (>= (- (-> *display* base-frame-counter) (the-as int (-> self lock-time))) 900)) + (and (-> self aligned?) (>= (- (-> *display* base-frame-counter) (-> self lock-time)) (seconds 3))) ) (sound-stop (-> self sound-id)) (if (periscope-test-task-complete?) @@ -2255,7 +2255,7 @@ (send-event (ppointer->process v1-11) 'anim-mode 'play1) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 150) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.5)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/jungle/junglefish_REF.gc b/test/decompiler/reference/levels/jungle/junglefish_REF.gc index 85acd7d7de..db0883cbf0 100644 --- a/test/decompiler/reference/levels/jungle/junglefish_REF.gc +++ b/test/decompiler/reference/levels/jungle/junglefish_REF.gc @@ -360,29 +360,29 @@ nav-enemy-default-event-handler :player-look-at-joint 5 :run-travel-speed (meters 5.5) :run-rotate-speed (degrees 720.0) - :run-acceleration (meters 6.0) + :run-acceleration (meters 6) :run-turn-time (seconds 0.15) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 6.0) + :walk-acceleration (meters 6) :walk-turn-time (seconds 0.15) - :attack-shove-back (meters 1.0) + :attack-shove-back (meters 1) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 1.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 25.0) - :stop-chase-distance (meters 35.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 25) + :stop-chase-distance (meters 35) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #f diff --git a/test/decompiler/reference/levels/jungle/junglesnake_REF.gc b/test/decompiler/reference/levels/jungle/junglesnake_REF.gc index 67ec9a9c53..77d263fe2a 100644 --- a/test/decompiler/reference/levels/jungle/junglesnake_REF.gc +++ b/test/decompiler/reference/levels/jungle/junglesnake_REF.gc @@ -87,7 +87,7 @@ ;; definition of type junglesnake (deftype junglesnake (process-drawable) ((root-override collide-shape :offset 112) - (state-time2 int64 :offset-assert 176) + (state-time2 time-frame :offset-assert 176) (hit-player symbol :offset 184) (is-lethal? symbol :offset-assert 188) (refractory-delay int32 :offset-assert 192) diff --git a/test/decompiler/reference/levels/jungleb/aphid_REF.gc b/test/decompiler/reference/levels/jungleb/aphid_REF.gc index 9153be40fa..4fbaa44517 100644 --- a/test/decompiler/reference/levels/jungleb/aphid_REF.gc +++ b/test/decompiler/reference/levels/jungleb/aphid_REF.gc @@ -175,7 +175,7 @@ :virtual #t :code (behavior () - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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)) @@ -263,7 +263,7 @@ :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) @@ -336,32 +336,32 @@ :die-anim 11 :neck-joint 10 :player-look-at-joint 5 - :run-travel-speed (meters 5.0) + :run-travel-speed (meters 5) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 24.0 :jump-anim-start-frame 10.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) :shadow-min-y (meters -0.25) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc b/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc index 12a8a9bfab..4798954d11 100644 --- a/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc +++ b/test/decompiler/reference/levels/jungleb/jungleb-obs_REF.gc @@ -4,7 +4,7 @@ ;; definition of type eggtop (deftype eggtop (process-drawable) ((root-override collide-shape-moving :offset 112) - (cam-tracker uint64 :offset-assert 176) + (cam-tracker handle :offset-assert 176) (sound-id sound-id :offset-assert 184) ) :heap-base #x50 @@ -281,54 +281,51 @@ ) (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) + (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) (seconds 1)) + (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) (seconds 3)) + (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) diff --git a/test/decompiler/reference/levels/jungleb/plant-boss_REF.gc b/test/decompiler/reference/levels/jungleb/plant-boss_REF.gc index eae90531d7..8a88427cc9 100644 --- a/test/decompiler/reference/levels/jungleb/plant-boss_REF.gc +++ b/test/decompiler/reference/levels/jungleb/plant-boss_REF.gc @@ -17,7 +17,7 @@ (cam-tracker handle :offset-assert 240) (want-aphid-count int32 :offset-assert 248) (aphid-count int32 :offset-assert 252) - (aphid-spawn-time int64 :offset-assert 256) + (aphid-spawn-time time-frame :offset-assert 256) (interp float :offset-assert 264) (try int32 :offset-assert 268) (camera handle :offset-assert 272) @@ -133,7 +133,7 @@ ((root-override collide-shape-moving :offset 112) (side int32 :offset-assert 176) (state-object symbol :offset-assert 180) - (state-time-frame int64 :offset-assert 184) + (state-time-frame time-frame :offset-assert 184) ) :heap-base #x50 :method-count-assert 20 @@ -872,7 +872,7 @@ (behavior ((arg0 symbol)) (when (not arg0) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 1200) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 4)) (+! (-> self root-override trans z) (* -4096.0 (-> *display* seconds-per-frame))) (suspend) ) @@ -1186,8 +1186,8 @@ (case arg2 (('kill) (set! (-> self state-object) #t) - (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (-> arg3 param 0))))) - (set! (-> self state-time-frame) (the-as int v0-0)) + (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0)))))) + (set! (-> self state-time-frame) (the-as time-frame v0-0)) v0-0 ) ) @@ -1248,8 +1248,8 @@ (case arg2 (('kill) (set! (-> self state-object) #t) - (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (-> arg3 param 0))))) - (set! (-> self state-time-frame) (the-as int v0-0)) + (let ((v0-0 (the-as object (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0)))))) + (set! (-> self state-time-frame) (the-as time-frame v0-0)) v0-0 ) ) @@ -1544,7 +1544,7 @@ ) (camera-change-to "camera-222" 600 #f) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 600) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 2)) (suspend) ) ) @@ -1869,7 +1869,7 @@ ) ) ) - ((>= (- (-> *display* base-frame-counter) (-> self aphid-spawn-time)) 420) + ((>= (- (-> *display* base-frame-counter) (-> self aphid-spawn-time)) (seconds 1.4)) (let ((gp-1 (get-process *default-dead-pool* aphid #x4000))) (when (when gp-1 (let ((t9-5 (method-of-type aphid activate))) @@ -2642,7 +2642,7 @@ ) ) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 1500) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 5)) (transform-post) (do-push-aways! (-> self root-override)) (suspend) diff --git a/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc b/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc index d0a612b79f..8ee6a066d8 100644 --- a/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc +++ b/test/decompiler/reference/levels/lavatube/assistant-lavatube_REF.gc @@ -81,7 +81,7 @@ (not (movie?)) (not (level-hint-displayed?)) (not (and *cheat-mode* (cpad-hold? 0 l3))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 3000) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) ) ) (hide-hud) diff --git a/test/decompiler/reference/levels/lavatube/lavatube-energy_REF.gc b/test/decompiler/reference/levels/lavatube/lavatube-energy_REF.gc index 1a4c4b3dfa..6ff897e6a8 100644 --- a/test/decompiler/reference/levels/lavatube/lavatube-energy_REF.gc +++ b/test/decompiler/reference/levels/lavatube/lavatube-energy_REF.gc @@ -520,6 +520,38 @@ (defstate energydoor-opened (energydoor) :event energydoor-open-handler + :trans + (behavior () + (let ((f30-0 (energydoor-player-dist))) + (cond + ((< f30-0 -450560.0) + (go energydoor-closing) + ) + ((and (not (task-closed? (-> self entity extra perm task) (task-status need-resolution))) + (< 61440.0 f30-0) + (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) 'open?) + (let ((t9-3 send-event-function) + (v1-7 (-> self alt-actor)) + ) + (not (t9-3 + (if v1-7 + (-> v1-7 extra process) + ) + a1-1 + ) + ) + ) + ) + ) + (go energydoor-closing) + ) + ) + ) + (none) + ) :code (behavior () (let ((v1-2 (-> self skel root-channel 0))) diff --git a/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc b/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc index 1256614b4d..1b0b63cd0e 100644 --- a/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc +++ b/test/decompiler/reference/levels/lavatube/lavatube-obs_REF.gc @@ -514,7 +514,7 @@ (deftype darkecobarrel-base (process-drawable) ((root-override collide-shape-moving :offset 112) (speed float :offset-assert 176) - (sync uint64 :offset-assert 184) + (sync time-frame :offset-assert 184) ) :heap-base #x50 :method-count-assert 20 @@ -534,7 +534,7 @@ ;; definition of type darkecobarrel-mover (deftype darkecobarrel-mover (darkecobarrel-base) - ((start-time uint64 :offset-assert 192) + ((start-time time-frame :offset-assert 192) (hits int32 :offset-assert 200) (leak darkecobarrel-leak 1 :inline :offset-assert 208) (y-offset bouncing-float :inline :offset-assert 240) @@ -619,7 +619,7 @@ ) ;; definition for function darkecobarrel-base-pos -(defbehavior darkecobarrel-base-pos darkecobarrel-base ((arg0 int)) +(defbehavior darkecobarrel-base-pos darkecobarrel-base ((arg0 time-frame)) (if (< 0.0 (-> self speed)) (* (-> self speed) (the float (- (darkecobarrel-base-time) arg0))) (+ 1.0 (* (-> self speed) (the float (- (darkecobarrel-base-time) arg0)))) @@ -646,7 +646,7 @@ ;; INFO: Return type mismatch uint vs none. ;; Used lq/sq (defbehavior darkecobarrel-mover-pos darkecobarrel-mover () - (let ((f30-0 (darkecobarrel-base-pos (the-as int (-> self start-time))))) + (let ((f30-0 (darkecobarrel-base-pos (-> self start-time)))) (if (darkecobarrel-base-done? f30-0) (deactivate self) ) @@ -710,7 +710,7 @@ ) (suspend) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (dummy-18 self) @@ -836,7 +836,7 @@ ;; definition for function darkecobarrel-mover-init-by-other ;; INFO: Return type mismatch object vs none. -(defbehavior darkecobarrel-mover-init-by-other darkecobarrel-mover ((arg0 res-lump) (arg1 float) (arg2 uint) (arg3 uint)) +(defbehavior darkecobarrel-mover-init-by-other darkecobarrel-mover ((arg0 res-lump) (arg1 float) (arg2 time-frame) (arg3 time-frame)) (let ((s2-0 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) (set! (-> s2-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s2-0 reaction) default-collision-reaction) @@ -926,7 +926,7 @@ darkecobarrel-mover-init-by-other (-> self entity) (-> self speed) - (- (darkecobarrel-base-time) gp-2) + (- (darkecobarrel-base-time) (the-as time-frame gp-2)) (-> self sync) ) (-> s5-0 ppointer) @@ -990,19 +990,20 @@ (local-vars (sv-16 res-tag)) (set! (-> obj root-override) (the-as collide-shape-moving (new 'process 'trsqv))) (darkecobarrel-base-init arg0) - (set! (-> obj sound) (new - 'process - 'ambient-sound - (new 'static 'sound-spec - :mask #x80 - :num 1.0 - :group #x1 - :sound-name (static-sound-name "lav-dark-eco") - :volume #x400 - :fo-max 30 - ) - (-> obj root-override trans) - ) + (set! (-> obj sound) + (new + 'process + 'ambient-sound + (new 'static 'sound-spec + :mask #x80 + :num 1.0 + :group #x1 + :sound-name (static-sound-name "lav-dark-eco") + :volume #x400 + :fo-max 30 + ) + (-> obj root-override trans) + ) ) (logior! (-> obj draw status) (draw-status drwf01)) (set! (-> obj speed) (/ 300.0 (res-lump-float (-> obj entity) 'speed :default 61440.0))) @@ -1031,7 +1032,9 @@ (dotimes (v1-19 (+ (-> obj spawn-array length) -1)) (+! (-> obj spawn-array (+ v1-19 1)) (-> obj spawn-array v1-19)) ) - (set! (-> obj sync) (the-as uint (the int (* (fabs (-> obj speed)) (res-lump-float (-> obj entity) 'sync))))) + (set! (-> obj sync) + (the-as time-frame (the int (* (fabs (-> obj speed)) (res-lump-float (-> obj entity) 'sync)))) + ) (set! (-> obj speed) (/ 1.0 (* (-> obj speed) (path-distance (-> obj path))))) (let ((s5-3 (mod (darkecobarrel-base-time) (darkecobarrel-cycle-time)))) (set! (-> obj cur-spawn) 0) @@ -1044,7 +1047,7 @@ (+! s5-3 (-> obj spawn-array (-> obj cur-spawn))) ) (let ((s4-0 (-> obj cur-spawn)) - (s5-4 (- (darkecobarrel-base-time) (- s5-3 (-> obj spawn-array (-> obj cur-spawn))))) + (s5-4 (- (darkecobarrel-base-time) (the-as time-frame (- s5-3 (-> obj spawn-array (-> obj cur-spawn)))))) ) (until (darkecobarrel-base-done? (darkecobarrel-base-pos s5-4)) (let ((s3-0 (get-process *default-dead-pool* darkecobarrel-mover #x4000))) @@ -1056,7 +1059,7 @@ (-> s3-0 ppointer) ) ) - (set! s5-4 (- s5-4 (-> obj spawn-array s4-0))) + (set! s5-4 (- s5-4 (the-as time-frame (-> obj spawn-array s4-0)))) (+! s4-0 -1) (if (< s4-0 0) (set! s4-0 (+ (-> obj spawn-array length) -1)) @@ -1441,7 +1444,7 @@ ) (suspend) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (dummy-18 self) diff --git a/test/decompiler/reference/levels/maincave/baby-spider_REF.gc b/test/decompiler/reference/levels/maincave/baby-spider_REF.gc index 81468d3903..844cf71975 100644 --- a/test/decompiler/reference/levels/maincave/baby-spider_REF.gc +++ b/test/decompiler/reference/levels/maincave/baby-spider_REF.gc @@ -3,21 +3,21 @@ ;; definition of type baby-spider-spawn-params (deftype baby-spider-spawn-params (structure) - ((hatched? symbol :offset-assert 0) - (fast-start? symbol :offset-assert 4) - (hack-move-above-ground? symbol :offset-assert 8) - (die-if-not-visible? symbol :offset-assert 12) - (pickup int32 :offset-assert 16) - (pickup-amount int32 :offset-assert 20) - (event-death symbol :offset-assert 24) - (delay-before-dying-if-not-visible int64 :offset-assert 32) + ((hatched? symbol :offset-assert 0) + (fast-start? symbol :offset-assert 4) + (hack-move-above-ground? symbol :offset-assert 8) + (die-if-not-visible? symbol :offset-assert 12) + (pickup int32 :offset-assert 16) + (pickup-amount int32 :offset-assert 20) + (event-death symbol :offset-assert 24) + (delay-before-dying-if-not-visible time-frame :offset-assert 32) ) :method-count-assert 11 :size-assert #x28 :flag-assert #xb00000028 (:methods - (init! (_type_ symbol symbol symbol symbol int int symbol) int 9) - (set-delay! (_type_ int) int 10) + (init! (_type_ symbol symbol symbol symbol int int symbol) none 9) + (set-delay! (_type_ time-frame) none 10) ) ) @@ -37,22 +37,22 @@ ;; definition of type baby-spider (deftype baby-spider (nav-enemy) - ((die-if-not-visible? symbol :offset-assert 400) - (hack-move-above-ground? symbol :offset-assert 404) - (state-float float :offset-assert 408) - (wiggle-angle float :offset-assert 412) - (delta-wiggle-angle float :offset-assert 416) - (wiggle-factor float :offset-assert 420) - (event-death symbol :offset-assert 424) - (delay-before-dying-if-not-visible int64 :offset-assert 432) - (chase-rest-time int64 :offset-assert 440) - (target-nav-time int64 :offset-assert 448) - (unknown00 basic :offset-assert 456) - (unknown01 basic :offset-assert 460) - (wiggle-time int64 :offset-assert 464) - (last-visible-time int64 :offset-assert 472) - (up-vector vector :inline :offset-assert 480) - (state-vector vector :inline :offset-assert 496) + ((die-if-not-visible? symbol :offset-assert 400) + (hack-move-above-ground? symbol :offset-assert 404) + (state-float float :offset-assert 408) + (wiggle-angle float :offset-assert 412) + (delta-wiggle-angle float :offset-assert 416) + (wiggle-factor float :offset-assert 420) + (event-death symbol :offset-assert 424) + (delay-before-dying-if-not-visible time-frame :offset-assert 432) + (chase-rest-time time-frame :offset-assert 440) + (target-nav-time time-frame :offset-assert 448) + (unknown00 basic :offset-assert 456) + (unknown01 basic :offset-assert 460) + (wiggle-time time-frame :offset-assert 464) + (last-visible-time time-frame :offset-assert 472) + (up-vector vector :inline :offset-assert 480) + (state-vector vector :inline :offset-assert 496) ) :heap-base #x190 :method-count-assert 76 @@ -111,32 +111,32 @@ :taunt-anim 12 :die-anim 13 :neck-joint 18 - :run-travel-speed (meters 7.0) + :run-travel-speed (meters 7) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.07333333) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 3) + :frustration-time (seconds 1.5) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 2.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -165,32 +165,32 @@ :taunt-anim 12 :die-anim 13 :neck-joint 18 - :run-travel-speed (meters 7.0) + :run-travel-speed (meters 7) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.07333333) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 80.0) - :stop-chase-distance (meters 90.0) - :frustration-distance (meters 3.0) - :frustration-time #x1c2 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 80) + :stop-chase-distance (meters 90) + :frustration-distance (meters 3) + :frustration-time (seconds 1.5) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 2.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -207,6 +207,7 @@ ) ;; definition for method 9 of type baby-spider-spawn-params +;; INFO: Return type mismatch int vs none. (defmethod init! baby-spider-spawn-params ((obj baby-spider-spawn-params) (arg0 symbol) (arg1 symbol) @@ -223,16 +224,15 @@ (set! (-> obj pickup) arg4) (set! (-> obj pickup-amount) arg5) (set! (-> obj event-death) arg6) - (let ((v0-0 600)) - (set! (-> obj delay-before-dying-if-not-visible) v0-0) - v0-0 - ) + (set! (-> obj delay-before-dying-if-not-visible) (seconds 2)) + (none) ) ;; definition for method 10 of type baby-spider-spawn-params -(defmethod set-delay! baby-spider-spawn-params ((obj baby-spider-spawn-params) (arg0 int)) +;; INFO: Return type mismatch time-frame vs none. +(defmethod set-delay! baby-spider-spawn-params ((obj baby-spider-spawn-params) (arg0 time-frame)) (set! (-> obj delay-before-dying-if-not-visible) arg0) - arg0 + (none) ) ;; definition for method 44 of type baby-spider @@ -579,9 +579,9 @@ baby-spider-default-event-handler :code (behavior () (set! (-> self target-nav-time) (-> *display* base-frame-counter)) - (set! (-> self wiggle-time) (+ (-> *display* base-frame-counter) -3000)) + (set! (-> self wiggle-time) (+ (-> *display* base-frame-counter) (seconds -10))) (set! (-> self wiggle-angle) 0.0) - (set! (-> self chase-rest-time) (rand-vu-int-range 300 1200)) + (set! (-> self chase-rest-time) (rand-vu-int-range (seconds 1) (seconds 4))) (ja-channel-push! 1 51) (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! @@ -592,7 +592,7 @@ baby-spider-default-event-handler (set! (-> gp-0 frame-num) 0.0) ) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) 300) + (when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) (seconds 1)) (set! (-> self wiggle-time) (-> *display* base-frame-counter)) (dummy-51 self) ) @@ -653,7 +653,7 @@ baby-spider-default-event-handler :code (behavior () (set! (-> self rotate-speed) 1456355.5) - (set! (-> self turn-time) 22) + (set! (-> self turn-time) (seconds 0.07333333)) (let ((f30-0 (rand-vu-float-range 0.8 1.2))) (while #t (logior! (-> self nav-enemy-flags) 16) @@ -917,8 +917,8 @@ baby-spider-default-event-handler (set! (-> obj wiggle-angle) 0.0) (set! (-> obj delta-wiggle-angle) 910.2222) (set! (-> obj wiggle-factor) 1.5) - (set! (-> obj reaction-time) (rand-vu-int-range 30 240)) - (set! (-> obj chase-rest-time) 300) + (set! (-> obj reaction-time) (rand-vu-int-range (seconds 0.1) (seconds 0.8))) + (set! (-> obj chase-rest-time) (seconds 1)) (set! (-> obj up-vector quad) (-> *y-vector* quad)) 0 (none) @@ -968,7 +968,7 @@ baby-spider-default-event-handler ;; INFO: Return type mismatch object vs none. (defmethod init-from-entity! baby-spider ((obj baby-spider) (arg0 entity-actor)) (set! (-> obj die-if-not-visible?) #f) - (set! (-> obj delay-before-dying-if-not-visible) 600) + (set! (-> obj delay-before-dying-if-not-visible) (seconds 2)) (set! (-> obj hack-move-above-ground?) #f) (set! (-> obj event-death) #f) (initialize-collision obj) diff --git a/test/decompiler/reference/levels/maincave/cavecrystal-light_REF.gc b/test/decompiler/reference/levels/maincave/cavecrystal-light_REF.gc index 0f079c4685..36bef615e1 100644 --- a/test/decompiler/reference/levels/maincave/cavecrystal-light_REF.gc +++ b/test/decompiler/reference/levels/maincave/cavecrystal-light_REF.gc @@ -36,7 +36,7 @@ (deftype cavecrystal-light-control (basic) ((active-count int32 :offset-assert 4) (head cavecrystal-light :offset-assert 8) - (last-known-valid-time int64 :offset-assert 16) + (last-known-valid-time time-frame :offset-assert 16) (crystal cavecrystal-light 7 :inline :offset-assert 32) ) :method-count-assert 15 diff --git a/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc b/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc index a26f22f62e..5faead1ab9 100644 --- a/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc +++ b/test/decompiler/reference/levels/maincave/dark-crystal_REF.gc @@ -511,7 +511,7 @@ (set! (-> self draw color-mult quad) (-> self lit-color-mult quad)) (set! (-> self draw color-emissive quad) (-> self lit-color-emissive quad)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (suspend) ) (set! (-> self draw color-mult quad) (-> self unlit-color-mult quad)) @@ -537,7 +537,7 @@ (clear-collide-with-as (-> self root-override)) (let ((gp-0 (new 'stack 'joint-exploder-tuning 0))) (when (-> self underwater?) - (set! (-> gp-0 duration) (the-as uint 1200)) + (set! (-> gp-0 duration) (seconds 4)) (set! (-> gp-0 gravity) -20480.0) (set! (-> gp-0 rot-speed) 4.2) (set-vector! (-> gp-0 fountain-rand-transv-lo) -40960.0 20480.0 -40960.0 1.0) @@ -593,7 +593,7 @@ ) ) (let ((s5-4 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-4) 75) + (until (>= (- (-> *display* base-frame-counter) s5-4) (seconds 0.25)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc b/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc index 1ff8a90842..c8417526b0 100644 --- a/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc +++ b/test/decompiler/reference/levels/maincave/driller-lurker_REF.gc @@ -23,10 +23,10 @@ (neck joint-mod :offset-assert 244) (drill joint-mod :offset-assert 248) (sound2 ambient-sound :offset-assert 252) - (last-update-time uint64 :offset-assert 256) - (last-player-path-u-time uint64 :offset-assert 264) - (started-chasing-time uint64 :offset-assert 272) - (hit-player-time uint64 :offset-assert 280) + (last-update-time time-frame :offset-assert 256) + (last-player-path-u-time time-frame :offset-assert 264) + (started-chasing-time time-frame :offset-assert 272) + (hit-player-time time-frame :offset-assert 280) (player-attack-id uint64 :offset-assert 288) ) :heap-base #xc0 @@ -307,7 +307,7 @@ ) (when (send-event-function arg0 a1-6) (set! (-> self hit-player?) #t) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-overeride) 2 (collide-offense no-offense)) (let ((v1-39 (-> self mode))) (if (or (zero? v1-39) (= v1-39 1) (= v1-39 2)) @@ -356,7 +356,7 @@ ) (when (send-event-function arg0 a1-11) (set! (-> self hit-player?) #t) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-overeride) 2 (collide-offense no-offense)) (let ((v1-62 (-> self mode))) (if (or (zero? v1-62) (= v1-62 1) (= v1-62 2)) @@ -375,7 +375,7 @@ (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)) + (set! (-> obj last-update-time) v1-1) (let* ((f0-0 (-> obj path-speed)) (f1-1 (seek f0-0 (-> obj targ-path-speed) (* 12288.0 (-> *display* seconds-per-frame)))) ) @@ -514,14 +514,14 @@ (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) + (set! f30-3 (if (>= (- (-> *display* base-frame-counter) (-> obj started-chasing-time)) (seconds 2.25)) (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) + (set! f30-3 (if (>= (- (-> *display* base-frame-counter) (-> obj started-chasing-time)) (seconds 5.75)) (seek f30-3 276707.56 (* 372827.03 (-> *display* seconds-per-frame))) (seek f30-3 0.0 (* 600746.7 (-> *display* seconds-per-frame))) ) @@ -556,7 +556,7 @@ ) (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) + (>= (- (-> *display* base-frame-counter) (-> obj hit-player-time)) (seconds 0.05)) ) ) ) @@ -570,7 +570,7 @@ (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)) + (set! (-> obj last-player-path-u-time) v1-1) (cond (*target* (let* ((s5-0 (-> obj path)) @@ -977,7 +977,7 @@ :enter (behavior ((arg0 symbol)) (if arg0 - (set! (-> self started-chasing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self started-chasing-time) (-> *display* base-frame-counter)) ) (set! (-> self mode) (the-as uint 3)) (set! (-> self state-time) (-> *display* base-frame-counter)) @@ -992,7 +992,7 @@ (if (dummy-26 self) (go driller-lurker-patrol) ) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-chasing-time))) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self started-chasing-time)) (seconds 3)) (go driller-lurker-jammed-standing) ) (let* ((gp-0 (-> self path)) @@ -1088,12 +1088,12 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (go driller-lurker-chase #f) ) ) ) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-chasing-time))) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self started-chasing-time)) (seconds 3)) (go driller-lurker-jammed-standing) ) (dummy-20 self #f (the-as target #t)) @@ -1184,7 +1184,7 @@ (joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set! (-> self started-chasing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self started-chasing-time) (-> *display* base-frame-counter)) (cond (*target* (go driller-lurker-chase #f) @@ -1276,13 +1276,13 @@ (local-vars (sv-16 res-tag)) (set! (-> obj hit-player?) #f) (set! (-> obj played-drill-sound?) #f) - (set! (-> obj hit-player-time) (the-as uint 0)) + (set! (-> obj hit-player-time) 0) (set! (-> obj mode) (the-as uint 0)) (set! (-> obj drill-rz) 0.0) (set! (-> obj drill-speed) 72817.78) - (set! (-> obj last-update-time) (the-as uint 0)) - (set! (-> obj last-player-path-u-time) (the-as uint 0)) - (set! (-> obj started-chasing-time) (the-as uint 0)) + (set! (-> obj last-update-time) 0) + (set! (-> obj last-player-path-u-time) 0) + (set! (-> obj started-chasing-time) 0) (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))) diff --git a/test/decompiler/reference/levels/maincave/gnawer_REF.gc b/test/decompiler/reference/levels/maincave/gnawer_REF.gc index e4ee3df2d0..ae07eae9a5 100644 --- a/test/decompiler/reference/levels/maincave/gnawer_REF.gc +++ b/test/decompiler/reference/levels/maincave/gnawer_REF.gc @@ -69,17 +69,17 @@ ;; definition of type gnawer-route (deftype gnawer-route (structure) - ((src-pt-index int32 :offset-assert 0) - (dest-pt-index int32 :offset-assert 4) - (total-travel-time uint64 :offset-assert 8) - (src-ang float :offset-assert 16) - (dest-ang float :offset-assert 20) - (delta-ang float :offset-assert 24) - (surface-dist float :offset-assert 28) - (total-dist float :offset-assert 32) - (src-pt-offset vector :inline :offset-assert 48) - (dest-pt-offset vector :inline :offset-assert 64) - (surface-dir vector :inline :offset-assert 80) + ((src-pt-index int32 :offset-assert 0) + (dest-pt-index int32 :offset-assert 4) + (total-travel-time time-frame :offset-assert 8) + (src-ang float :offset-assert 16) + (dest-ang float :offset-assert 20) + (delta-ang float :offset-assert 24) + (surface-dist float :offset-assert 28) + (total-dist float :offset-assert 32) + (src-pt-offset vector :inline :offset-assert 48) + (dest-pt-offset vector :inline :offset-assert 64) + (surface-dir vector :inline :offset-assert 80) ) :method-count-assert 9 :size-assert #x60 @@ -118,7 +118,7 @@ (anim-speed float :offset-assert 212) (part2 sparticle-launch-control :offset-assert 216) (sound2 ambient-sound :offset-assert 220) - (last-hit-time uint64 :offset-assert 224) + (last-hit-time time-frame :offset-assert 224) (post-trans vector :inline :offset-assert 240) (fall-trans vector :inline :offset-assert 256) (route gnawer-route :inline :offset-assert 272) @@ -658,7 +658,7 @@ ) ) (set! (-> obj route total-travel-time) - (the-as uint (the int (/ (-> obj route total-dist) (* 0.016666668 (-> obj speed))))) + (the-as time-frame (the int (/ (-> obj route total-dist) (* 0.016666668 (-> obj speed))))) ) (none) ) @@ -1300,7 +1300,7 @@ ) ) (else - (if (< (- (-> *display* base-frame-counter) (the-as int (-> self last-hit-time))) 150) + (if (< (- (-> *display* base-frame-counter) (-> self last-hit-time)) (seconds 0.5)) (return #f) ) (let* ((a2-1 (the-as object (-> arg3 param 0))) @@ -1331,7 +1331,7 @@ (logclear! (-> self mask) (process-mask actor-pause)) (set! (-> self route-dist) 0.0) (dummy-24 self) - (set! (-> self last-hit-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-hit-time) (-> *display* base-frame-counter)) (dummy-26 self) (none) ) @@ -1531,7 +1531,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (suspend) ) ) @@ -1744,7 +1744,7 @@ (set! (-> obj show-damage?) #f) (set! (-> obj hit-points) 6) (set! (-> obj speed) 24576.0) - (set! (-> obj last-hit-time) (the-as uint 0)) + (set! (-> obj last-hit-time) 0) (set! (-> obj route-dist) 0.0) (logclear! (-> obj mask) (process-mask attackable)) (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) diff --git a/test/decompiler/reference/levels/maincave/maincave-obs_REF.gc b/test/decompiler/reference/levels/maincave/maincave-obs_REF.gc index 6bd4035fbe..e4e1d403d2 100644 --- a/test/decompiler/reference/levels/maincave/maincave-obs_REF.gc +++ b/test/decompiler/reference/levels/maincave/maincave-obs_REF.gc @@ -612,7 +612,7 @@ (dummy-41 (-> self root-override) s4-0 (-> self shove-up)) (cond ((or (= (-> *target* control unknown-surface00 mode) 'air) - (>= (+ (-> *display* base-frame-counter) -60) (-> *target* control unknown-dword11)) + (>= (+ (-> *display* base-frame-counter) (seconds -0.2)) (-> *target* control unknown-dword11)) (< 0.75 (-> *target* control poly-normal y)) ) (let ((a1-5 (new 'stack-no-clear 'event-message-block))) @@ -657,7 +657,7 @@ (behavior () (let* ((v1-0 (-> self cycle-speed)) (a0-1 (- v1-0 (-> self cycle-pause))) - (gp-0 (mod (+ (-> *display* base-frame-counter) (-> self cycle-offset)) v1-0)) + (gp-0 (mod (+ (-> *display* base-frame-counter) (the-as time-frame (-> self cycle-offset))) v1-0)) ) (cond ((< gp-0 a0-1) @@ -1125,7 +1125,7 @@ (elev-mode uint64 :offset-assert 176) (elev-type int32 :offset-assert 184) (prev-frame-num float :offset-assert 188) - (last-update-bounce-time uint64 :offset-assert 192) + (last-update-bounce-time time-frame :offset-assert 192) (orig-trans vector :inline :offset-assert 208) (sync sync-info :inline :offset-assert 224) (smush smush-control :inline :offset-assert 232) @@ -1200,7 +1200,7 @@ (defmethod TODO-RENAME-20 caveelevator ((obj caveelevator)) (let ((v1-1 (-> *display* base-frame-counter))) (when (!= v1-1 (-> obj last-update-bounce-time)) - (set! (-> obj last-update-bounce-time) (the-as uint v1-1)) + (set! (-> obj last-update-bounce-time) v1-1) (when (!= (-> obj smush amp) 0.0) (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> s5-0 quad) (-> obj orig-trans quad)) @@ -1420,7 +1420,7 @@ (behavior () (cond ((zero? (-> self root-override riders num-riders)) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (go caveelevator-one-way-travel-to-start) ) ) @@ -1548,7 +1548,7 @@ (defmethod init-from-entity! caveelevator ((obj caveelevator) (arg0 entity-actor)) (local-vars (v1-43 int) (sv-16 res-tag)) (set! (-> obj prev-frame-num) 10000.0) - (set! (-> obj last-update-bounce-time) (the-as uint 0)) + (set! (-> obj last-update-bounce-time) 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)) diff --git a/test/decompiler/reference/levels/maincave/mother-spider-egg_REF.gc b/test/decompiler/reference/levels/maincave/mother-spider-egg_REF.gc index 06d8bf8690..7b3dfd2ac1 100644 --- a/test/decompiler/reference/levels/maincave/mother-spider-egg_REF.gc +++ b/test/decompiler/reference/levels/maincave/mother-spider-egg_REF.gc @@ -7,7 +7,7 @@ (root-override collide-shape-moving :offset 112) (anim-speed float :offset-assert 176) (part2 sparticle-launch-control :offset-assert 180) - (falling-start-time uint64 :offset-assert 184) + (falling-start-time time-frame :offset-assert 184) (fall-dest vector :inline :offset-assert 192) (fall-dest-normal vector :inline :offset-assert 208) (broken-look lod-set :inline :offset-assert 224) @@ -245,16 +245,14 @@ ) :enter (behavior () - (set! (-> self falling-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self falling-start-time) (-> *display* base-frame-counter)) (none) ) :trans (behavior () - (let ((f30-0 (fmin - (the float (- (-> *display* base-frame-counter) (the-as int (-> self falling-start-time)))) - (-> self traj time) - ) - ) + (let ((f30-0 + (fmin (the float (- (-> *display* base-frame-counter) (-> self falling-start-time))) (-> self traj time)) + ) ) (let ((f28-0 (/ f30-0 (-> self traj time)))) (eval-position! (-> self traj) f30-0 (-> self root-override trans)) @@ -331,7 +329,7 @@ ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (go mother-spider-egg-hatch) ) (draw-egg-shadow self (-> self shadow-pos) #f) @@ -534,11 +532,9 @@ (defstate mother-spider-egg-die-while-falling (mother-spider-egg) :trans (behavior () - (let ((f0-2 (fmin - (the float (- (-> *display* base-frame-counter) (the-as int (-> self falling-start-time)))) - (-> self traj time) - ) - ) + (let ((f0-2 + (fmin (the float (- (-> *display* base-frame-counter) (-> self falling-start-time))) (-> self traj time)) + ) ) (eval-position! (-> self traj) f0-2 (-> self root-override trans)) ) @@ -622,7 +618,7 @@ (defbehavior mother-spider-egg-init-by-other mother-spider-egg ((arg0 entity) (arg1 vector) (arg2 vector) (arg3 vector)) (set! (-> self entity) arg0) (set! (-> self anim-speed) (rand-vu-float-range 0.8 1.2)) - (set! (-> self falling-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self falling-start-time) (-> *display* base-frame-counter)) (set! (-> self fall-dest quad) (-> arg2 quad)) (set! (-> self fall-dest-normal quad) (-> arg3 quad)) (let ((s4-1 (new 'process 'collide-shape-moving self (collide-list-enum usually-hit-by-player)))) diff --git a/test/decompiler/reference/levels/maincave/mother-spider-h_REF.gc b/test/decompiler/reference/levels/maincave/mother-spider-h_REF.gc index c2187b3629..3ad446cdb4 100644 --- a/test/decompiler/reference/levels/maincave/mother-spider-h_REF.gc +++ b/test/decompiler/reference/levels/maincave/mother-spider-h_REF.gc @@ -137,15 +137,15 @@ (check-z-thresh? symbol :offset-assert 276) (activate-z-thresh float :offset-assert 280) (deactivate-z-thresh float :offset-assert 284) - (spawned-time uint64 :offset-assert 288) - (last-update-time uint64 :offset-assert 296) - (spin-time uint64 :offset-assert 304) - (last-spit-time uint64 :offset-assert 312) - (last-player-in-air-time uint64 :offset-assert 320) - (started-birthing-time uint64 :offset-assert 328) + (spawned-time time-frame :offset-assert 288) + (last-update-time time-frame :offset-assert 296) + (spin-time time-frame :offset-assert 304) + (last-spit-time time-frame :offset-assert 312) + (last-player-in-air-time time-frame :offset-assert 320) + (started-birthing-time time-frame :offset-assert 328) (neck joint-mod :offset-assert 336) (player-attack-id uint64 :offset-assert 344) - (leg-socket-part-time uint64 6 :offset-assert 352) + (leg-socket-part-time time-frame 6 :offset-assert 352) (orient-rot vector :inline :offset-assert 400) (anchor-trans vector :inline :offset-assert 416) (thread-min-trans vector :inline :offset-assert 432) diff --git a/test/decompiler/reference/levels/maincave/mother-spider-proj_REF.gc b/test/decompiler/reference/levels/maincave/mother-spider-proj_REF.gc index e34d098f68..01dd1b9570 100644 --- a/test/decompiler/reference/levels/maincave/mother-spider-proj_REF.gc +++ b/test/decompiler/reference/levels/maincave/mother-spider-proj_REF.gc @@ -359,7 +359,7 @@ (set! (-> obj max-turn) 5916.4443) (set! (-> obj tween) 0.02) (set! (-> obj attack-mode) 'mother-spider-proj) - (set! (-> obj timeout) (the-as uint 1200)) + (set! (-> obj timeout) (seconds 4)) (set! (-> obj target quad) (-> (target-pos 0) quad)) (set! (-> obj target y) (+ 4915.2 (-> obj target y))) (set! (-> obj target-base quad) (-> obj target quad)) diff --git a/test/decompiler/reference/levels/maincave/mother-spider_REF.gc b/test/decompiler/reference/levels/maincave/mother-spider_REF.gc index fcd13a47f0..350e0a0ef7 100644 --- a/test/decompiler/reference/levels/maincave/mother-spider_REF.gc +++ b/test/decompiler/reference/levels/maincave/mother-spider_REF.gc @@ -399,7 +399,7 @@ (defmethod spawn-child mother-spider ((obj mother-spider) (arg0 vector) (arg1 vector) (arg2 symbol)) (let ((s3-0 (new 'stack-no-clear 'baby-spider-spawn-params))) (init! s3-0 arg2 #f #t #f 7 1 'untrigger) - (set-delay! s3-0 2700) + (set-delay! s3-0 (seconds 9)) (let ((s2-0 (get-process *default-dead-pool* baby-spider #x4000))) (when s2-0 (let ((t9-3 (method-of-type baby-spider activate))) @@ -578,7 +578,7 @@ (when arg2 (set! (-> obj hit?) #t) (set! (-> obj spin-vel) 131072.0) - (set! (-> obj spin-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj spin-time) (-> *display* base-frame-counter)) (let ((s4-1 (-> obj damage)) (s3-1 (-> obj root-override root-prim)) ) @@ -586,7 +586,7 @@ (when (< (-> obj damage) 6) (+! (-> obj damage) 1) (logior! (-> obj leg-socket-part-mask) (ash 1 s4-1)) - (set! (-> obj leg-socket-part-time s4-1) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj leg-socket-part-time s4-1) (-> *display* base-frame-counter)) (let ((s1-1 (-> *mother-spider-leg-infos* s4-1))) (let ((s0-0 (new 'stack-no-clear 'vector))) (set! sv-128 (new 'stack-no-clear 'vector)) @@ -626,7 +626,7 @@ (defmethod TODO-RENAME-29 mother-spider ((obj mother-spider) (arg0 symbol) (arg1 symbol)) (let ((v1-1 (-> *display* base-frame-counter))) (when (!= v1-1 (-> obj last-update-time)) - (set! (-> obj last-update-time) (the-as uint v1-1)) + (set! (-> obj last-update-time) v1-1) (TODO-RENAME-23 obj) (let ((f0-1 (fmax 0.0 (- (-> obj dist-from-anchor) (-> obj idle-dist-from-anchor))))) (cond @@ -648,7 +648,7 @@ (dotimes (s3-0 6) (when (logtest? s4-1 1) (cond - ((>= (+ (-> *display* base-frame-counter) -300) (the-as int (-> obj leg-socket-part-time s3-0))) + ((>= (+ (-> *display* base-frame-counter) (seconds -1)) (-> obj leg-socket-part-time s3-0)) (set! (-> obj leg-socket-part-mask) (logxor (-> obj leg-socket-part-mask) (ash 1 s3-0))) ) (else @@ -778,11 +778,9 @@ (vector-reflect! (-> obj swing-vel) (-> obj swing-vel) (the-as vector (&-> s5-1 param 6))) (set! (-> obj swing-vel y) 0.0) (vector-normalize! (-> obj swing-vel) (* 0.5 (vector-length (-> obj swing-vel)))) - (when (and (!= (-> obj spin-vel) 0.0) - (>= (- (-> *display* base-frame-counter) (the-as int (-> obj spin-time))) 150) - ) + (when (and (!= (-> obj spin-vel) 0.0) (>= (- (-> *display* base-frame-counter) (-> obj spin-time)) (seconds 0.5))) (set! (-> obj spin-vel) (* 0.75 (- (-> obj spin-vel)))) - (set! (-> obj spin-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj spin-time) (-> *display* base-frame-counter)) ) ) ) @@ -797,7 +795,7 @@ ) ) (set! (-> obj swing-pos quad) (-> obj swing-base-pos quad)) - (let ((f30-1 (the float (- (-> *display* base-frame-counter) (the-as int (-> obj spawned-time)))))) + (let ((f30-1 (the float (- (-> *display* base-frame-counter) (-> obj spawned-time))))) (+! (-> obj swing-pos x) (* 1024.0 (cos (* 54.613335 f30-1)))) (+! (-> obj swing-pos z) (* 1024.0 (cos (* 81.817726 f30-1)))) ) @@ -1117,7 +1115,7 @@ (go mother-spider-tracking) ) ((= v1-22 2) - (set! (-> self started-birthing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self started-birthing-time) (-> *display* base-frame-counter)) (set! (-> self birthing-counter) (max 0 (- (-> self max-baby-count) (-> self baby-count)))) (go mother-spider-birthing) ) @@ -1137,7 +1135,7 @@ (behavior () (set! (-> self hit?) #f) (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self last-player-in-air-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-player-in-air-time) (-> *display* base-frame-counter)) (none) ) :trans @@ -1170,11 +1168,11 @@ (zero? (logand (-> *target* control status) 1)) ) ) - (set! (-> self last-player-in-air-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-player-in-air-time) (-> *display* base-frame-counter)) ) (when (and *target* - (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spit-time))) 900) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-player-in-air-time))) 18) + (>= (- (-> *display* base-frame-counter) (-> self last-spit-time)) (seconds 3)) + (>= (- (-> *display* base-frame-counter) (-> self last-player-in-air-time)) (seconds 0.06)) (>= (-> self max-spit-xz-dist) (vector-vector-xz-distance (-> self root-override trans) (target-pos 0))) ) (let ((gp-2 (new 'stack-no-clear 'vector)) @@ -1191,7 +1189,7 @@ (go mother-spider-spit) ) (else - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spit-time))) 1500) + (if (>= (- (-> *display* base-frame-counter) (-> self last-spit-time)) (seconds 5)) (go mother-spider-traveling (the-as uint 2)) ) ) @@ -1264,7 +1262,7 @@ (go mother-spider-hit-while-tracking) ) (when (= (-> self spin-vel) 0.0) - (set! (-> self last-spit-time) (the-as uint 0)) + (set! (-> self last-spit-time) 0) (go mother-spider-tracking) ) (TODO-RENAME-29 self #t #t) @@ -1378,7 +1376,7 @@ ) ) (set! gp-0 #t) - (set! (-> self last-spit-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-spit-time) (-> *display* base-frame-counter)) (vector-negate! s5-0 s5-0) (TODO-RENAME-21 self s5-0 49152.0 #f) (when (nonzero? (-> self max-baby-count)) @@ -1428,12 +1426,12 @@ (if (letgo-player? self) (go mother-spider-traveling (the-as uint 0)) ) - (if (and (>= (- (-> *display* base-frame-counter) (the-as int (-> self started-birthing-time))) 1800) + (if (and (>= (- (-> *display* base-frame-counter) (-> self started-birthing-time)) (seconds 6)) (zero? (logand (-> *target* state-flags) #x80f8)) ) (go mother-spider-traveling (the-as uint 1)) ) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 75) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) (> (-> self birthing-counter) 0) (and (>= 49152.0 (- (-> self max-dist-from-anchor) (-> self dist-from-anchor))) (zero? (logand (-> *target* state-flags) #x80f8)) @@ -2045,11 +2043,11 @@ (set! (-> obj thread-speed) 245760.0) (set! (-> obj thread-vel) 0.0) (set! (-> obj hit?) #f) - (set! (-> obj last-update-time) (the-as uint 0)) - (set! (-> obj spawned-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj spin-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj last-spit-time) (the-as uint 0)) - (set! (-> obj started-birthing-time) (the-as uint 0)) + (set! (-> obj last-update-time) 0) + (set! (-> obj spawned-time) (-> *display* base-frame-counter)) + (set! (-> obj spin-time) (-> *display* base-frame-counter)) + (set! (-> obj last-spit-time) 0) + (set! (-> obj started-birthing-time) 0) (set! (-> obj check-z-thresh?) #f) (set! (-> obj activate-z-thresh) 0.0) (set! (-> obj deactivate-z-thresh) 0.0) diff --git a/test/decompiler/reference/levels/misty/babak-with-cannon_REF.gc b/test/decompiler/reference/levels/misty/babak-with-cannon_REF.gc index bd9da3bc97..954b5730e9 100644 --- a/test/decompiler/reference/levels/misty/babak-with-cannon_REF.gc +++ b/test/decompiler/reference/levels/misty/babak-with-cannon_REF.gc @@ -96,9 +96,9 @@ nav-enemy-default-event-handler ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (let ((f30-0 (- (-> (target-pos 0) y) (-> self collide-info trans y)))) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (or (or (not *target*) (< (-> self distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) ) @@ -250,7 +250,7 @@ nav-enemy-default-event-handler (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 turn-time) (-> 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)) @@ -409,7 +409,7 @@ nav-enemy-default-event-handler (and (and *target* (>= (-> self distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) ) ) (go babak-with-cannon-jump-off-cannon) @@ -526,7 +526,3 @@ nav-enemy-default-event-handler (go (method-of-object obj nav-enemy-fuel-cell)) (none) ) - - - - diff --git a/test/decompiler/reference/levels/misty/balloonlurker_REF.gc b/test/decompiler/reference/levels/misty/balloonlurker_REF.gc index d605e50a5d..93eb26048d 100644 --- a/test/decompiler/reference/levels/misty/balloonlurker_REF.gc +++ b/test/decompiler/reference/levels/misty/balloonlurker_REF.gc @@ -266,7 +266,7 @@ ;; definition for symbol *BALLOONLURKER-bank*, type balloonlurker-bank (define *BALLOONLURKER-bank* (new 'static 'balloonlurker-bank - :buoyancy-depth-offset (meters 30.0) + :buoyancy-depth-offset (meters 30) :player-mass 20.0 :rudder-factor 32.0 :max-engine-thrust 409600.0 @@ -283,25 +283,25 @@ (define *balloonlurker-constants* (new 'static 'rigid-body-platform-constants :drag-factor 1.6 :buoyancy-factor 1.2 - :max-buoyancy-depth (meters 15.0) + :max-buoyancy-depth (meters 15) :gravity-factor 1.0 - :gravity (meters 60.0) + :gravity (meters 60) :player-weight (meters 6.6) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 7 :mass 2.0 - :inertial-tensor-x (meters 12.0) - :inertial-tensor-y (meters 12.0) - :inertial-tensor-z (meters 20.0) - :cm-joint-y (meters 9.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 12) + :inertial-tensor-y (meters 12) + :inertial-tensor-z (meters 20) + :cm-joint-y (meters 9) + :idle-distance (meters 50) :platform #f :sound-name #f ) @@ -929,7 +929,7 @@ (when (and sv-16 sv-24) (process-grab? *target*) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 300) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1)) (suspend) ) ) @@ -961,7 +961,7 @@ (set! (-> a0-8 param 0) 1.0) (joint-control-channel-group-eval! a0-8 (the-as art-joint-anim #f) num-func-loop!) ) - (set! v1-27 (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 9000) + (set! v1-27 (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 30)) (< 819200.0 (- (-> self root-overlay trans y) (-> self water-y))) ) ) diff --git a/test/decompiler/reference/levels/misty/bonelurker_REF.gc b/test/decompiler/reference/levels/misty/bonelurker_REF.gc index dd7051e4c9..9c0d936f20 100644 --- a/test/decompiler/reference/levels/misty/bonelurker_REF.gc +++ b/test/decompiler/reference/levels/misty/bonelurker_REF.gc @@ -3,7 +3,7 @@ ;; definition of type bonelurker (deftype bonelurker (nav-enemy) - ((bump-player-time uint64 :offset-assert 400) + ((bump-player-time time-frame :offset-assert 400) ) :heap-base #x130 :method-count-assert 76 @@ -133,7 +133,7 @@ ) (send-event-function arg0 a1-6) ) - (set! (-> obj bump-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj bump-player-time) (-> *display* base-frame-counter)) (set! (-> obj nav-enemy-flags) (logand -65 (-> obj nav-enemy-flags))) 'push ) @@ -150,7 +150,7 @@ (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) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (nav-enemy-set-hit-from-direction arg0) (send-event arg0 'get-attack-count 1) (logclear! (-> self mask) (process-mask actor-pause)) @@ -257,7 +257,7 @@ nav-enemy-default-event-handler (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) + (>= (- (-> *display* base-frame-counter) (-> self bump-player-time)) (seconds 0.5)) ) (logior! (-> self nav-enemy-flags) 64) ) @@ -266,7 +266,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (set! (-> self speed-scale) 1.0) (let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2))) (cond @@ -434,7 +434,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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) @@ -532,7 +532,7 @@ nav-enemy-default-event-handler :code (behavior () (set! (-> self rotate-speed) 524288.0) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) @@ -697,32 +697,32 @@ nav-enemy-default-event-handler :die-anim 14 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 2880.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 5) + :nav-nearest-y-threshold (meters 5) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc b/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc index 4ea198f213..c72e30939b 100644 --- a/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-conveyor_REF.gc @@ -352,7 +352,7 @@ '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) + (seek-toward-heading-vec! (-> self root-override) gp-0 131072.0 (seconds 0.1)) (set! (-> self root-override trans quad) (-> self path-position quad)) (when (= (-> self keg-behavior) 1) (cond @@ -466,7 +466,7 @@ (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) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (go keg-die) ) (let ((v1-23 (-> self root-override trans))) diff --git a/test/decompiler/reference/levels/misty/misty-obs_REF.gc b/test/decompiler/reference/levels/misty/misty-obs_REF.gc index aa425e3261..4cc98ac30a 100644 --- a/test/decompiler/reference/levels/misty/misty-obs_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-obs_REF.gc @@ -1623,7 +1623,7 @@ ) ;; definition for function actor-wait-for-period -(defun actor-wait-for-period ((arg0 int)) +(defun actor-wait-for-period ((arg0 time-frame)) (let ((s5-0 (-> *display* base-frame-counter))) (while (< (- (-> *display* base-frame-counter) s5-0) arg0) (suspend) @@ -1666,11 +1666,11 @@ ) ) (until (ja-done? 0) - (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) s5-1) 45)) + (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.15))) (set! gp-1 #t) (send-to-next-and-prev (-> self link) 'touch) ) - (if (>= (- (-> *display* base-frame-counter) s5-1) 75) + (if (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.25)) (go breakaway-fall) ) (suspend) @@ -1872,25 +1872,25 @@ (define *bone-platform-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 5 :mass 2.0 - :inertial-tensor-x (meters 3.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 3.0) - :cm-joint-y (meters -3.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 3) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 3) + :cm-joint-y (meters -3) + :idle-distance (meters 50) :platform #t :sound-name "mud-plat" ) diff --git a/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc b/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc index 76a16d1794..abd526d122 100644 --- a/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-warehouse_REF.gc @@ -4,7 +4,7 @@ ;; definition of type silostep (deftype silostep (process-drawable) ((anim-limit float :offset-assert 176) - (cam-tracker uint64 :offset-assert 184) + (cam-tracker handle :offset-assert 184) ) :heap-base #x50 :method-count-assert 20 @@ -70,42 +70,41 @@ ) ;; definition for function misty-camera-view -;; INFO: Return type mismatch int vs handle. +;; INFO: Return type mismatch int vs none. (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)) - ) - (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))) - ) - (set! (-> self cam-tracker) (the-as uint v0-3)) - (the-as handle v0-3) + (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 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) (seconds 3)) + (suspend) + ) + ) + (while (not (process-release? (handle->process (-> self grab-target)))) + (suspend) + ) + (camera-change-to (the-as string 'base) 150 #f) + (none) + ) + ) + (-> gp-0 ppointer) + ) + ) + ) ) + (none) ) ;; failed to figure out what this is: @@ -120,7 +119,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 300) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/misty/mistycannon_REF.gc b/test/decompiler/reference/levels/misty/mistycannon_REF.gc index 8425a29a13..0550e7dc7b 100644 --- a/test/decompiler/reference/levels/misty/mistycannon_REF.gc +++ b/test/decompiler/reference/levels/misty/mistycannon_REF.gc @@ -672,7 +672,7 @@ (water-height float :offset-assert 212) (sfx uint32 :offset-assert 216) (part2 sparticle-launch-control :offset-assert 220) - (ground-time uint64 :offset-assert 224) + (ground-time time-frame :offset-assert 224) ) :heap-base #x80 :method-count-assert 21 @@ -841,7 +841,7 @@ (set! (-> self sfx) (the-as uint 0)) 0 ) - (set! (-> self ground-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self ground-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "sack-land") (new-sound-id) @@ -1085,7 +1085,7 @@ (suspend) (clear-collide-with-as (-> self root-override)) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 900) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 3)) (spawn (-> self part2) (-> self root-override trans)) (suspend) ) @@ -1237,7 +1237,7 @@ (front-wheel float :offset-assert 208) (rear-wheel float :offset-assert 212) (last-known-rotation float :offset-assert 216) - (part-timer uint64 :offset-assert 224) + (part-timer time-frame :offset-assert 224) (hellmouth vector :inline :offset-assert 240) (postbindinfo-ok symbol :offset-assert 256) (launch-origin vector :inline :offset-assert 272) @@ -1354,7 +1354,7 @@ ) (sound-play-by-name (static-sound-name "cannon-shot") (new-sound-id) 1024 0 0 1 #t) (set! (-> obj part local-clock) 0) - (set! (-> obj part-timer) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj part-timer) (-> *display* base-frame-counter)) (mistycannon-pick-random-target-point) 0 (none) @@ -1363,7 +1363,7 @@ ;; definition for method 23 of type mistycannon ;; INFO: Return type mismatch int vs none. (defmethod dummy-23 mistycannon ((obj mistycannon)) - (when (< (- (-> *display* base-frame-counter) (the-as int (-> obj part-timer))) 900) + (when (< (- (-> *display* base-frame-counter) (-> obj part-timer)) (seconds 3)) (let ((v1-4 (-> obj rotate))) (set! (-> *part-id-table* 529 init-specs 24 initial-valuef) (the float (sar (shl (the int (+ (-> v1-4 min) (-> v1-4 value))) 48) 48)) @@ -1684,14 +1684,14 @@ ) (mistycannon-find-trajectory gp-0) (when (= (-> gp-0 time) 0.0) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (dummy-22 self 409600.0 2.0 20480.0) (set! (-> self state-time) (-> *display* base-frame-counter)) ) (return #f) ) (when (angle-tracker-seek! (-> self tilt) (-> gp-0 theta)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (dummy-22 self (fmax 163840.0 (fmin 409600.0 (-> gp-0 speed))) (-> gp-0 time) 20480.0) (set! (-> self state-time) (-> *display* base-frame-counter)) ) @@ -1916,10 +1916,12 @@ (suspend) ) ) - (let ((v1-45 (and (cpad-hold? 0 x) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)))) + (let ((v1-45 (and (cpad-hold? 0 x) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1))))) (when (zero? s5-0) (when v1-45 - (set! gp-0 (seekl gp-0 300 (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) + (set! gp-0 + (seekl gp-0 300 (the-as int (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)))) + ) (sound-play-by-name (static-sound-name "cannon-charge") (-> self sound-id) @@ -1998,7 +2000,7 @@ (while #t (suspend) (dummy-23 self) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (go mistycannon-waiting-for-player) ) ) @@ -2112,7 +2114,7 @@ (set! (-> obj accuracy-range) 16384.0) (mistycannon-pick-random-target-point) (set! (-> obj part) (create-launch-control (-> *part-group-id-table* 119) obj)) - (set! (-> obj part-timer) (the-as uint (+ (-> *display* base-frame-counter) -3000))) + (set! (-> obj part-timer) (+ (-> *display* base-frame-counter) (seconds -10))) (set! (-> obj postbindinfo-ok) #f) (let ((v1-79 (-> obj rotate))) (set! (-> obj last-known-rotation) diff --git a/test/decompiler/reference/levels/misty/muse_REF.gc b/test/decompiler/reference/levels/misty/muse_REF.gc index 51c33e7bc9..3558eb1971 100644 --- a/test/decompiler/reference/levels/misty/muse_REF.gc +++ b/test/decompiler/reference/levels/misty/muse_REF.gc @@ -495,7 +495,7 @@ nav-enemy-default-event-handler (set! (-> a1-3 message) 'clone-anim) (set! (-> a1-3 param 0) (the-as uint self)) (when (send-event-function *target* a1-3) - (set-blackout-frames 3000) + (set-blackout-frames (seconds 10)) (let ((gp-1 (res-lump-struct (-> self entity) 'movie-pos vector))) (cond (gp-1 @@ -575,7 +575,7 @@ nav-enemy-default-event-handler (else (send-event *target* 'trans 'restore (-> self old-target-pos)) (set-blackout-frames 0) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) ) ) ) @@ -606,32 +606,32 @@ nav-enemy-default-event-handler :die-anim 3 :neck-joint 6 :player-look-at-joint 5 - :run-travel-speed (meters 10.0) + :run-travel-speed (meters 10) :run-rotate-speed (degrees 999.99994) - :run-acceleration (meters 5.0) + :run-acceleration (meters 5) :run-turn-time (seconds 0.15) - :walk-travel-speed (meters 10.0) + :walk-travel-speed (meters 10) :walk-rotate-speed (degrees 999.99994) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.15) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.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 8.0) - :frustration-time #x4b0 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 6.5 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc b/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc index 44432619b9..0c84ad1c37 100644 --- a/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc +++ b/test/decompiler/reference/levels/misty/quicksandlurker_REF.gc @@ -377,7 +377,7 @@ ) :code (behavior () - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (fill-cache-integrate-and-collide! (-> self root-override) (-> self root-override transv) @@ -444,7 +444,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (dummy-18 self) @@ -581,7 +581,7 @@ ;; definition for function orient-to-face-target (defbehavior orient-to-face-target quicksandlurker () (if *target* - (seek-to-point-toward-point! (-> self root-override) (-> *target* control trans) 65536.0 60) + (seek-to-point-toward-point! (-> self root-override) (-> *target* control trans) 65536.0 (seconds 0.2)) ) ) @@ -1048,7 +1048,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) ) (else - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (go quicksandlurker-popup) ) ) diff --git a/test/decompiler/reference/levels/misty/sidekick-human_REF.gc b/test/decompiler/reference/levels/misty/sidekick-human_REF.gc index 8a90f46347..740289266f 100644 --- a/test/decompiler/reference/levels/misty/sidekick-human_REF.gc +++ b/test/decompiler/reference/levels/misty/sidekick-human_REF.gc @@ -1710,7 +1710,7 @@ ) ((-> (method-of-type process-taskable play-anim) exit)) (let ((gp-1 (entity-by-name "sequenceC-1"))) - (set-blackout-frames 6000) + (set-blackout-frames (seconds 20)) (send-event *camera* 'clear-entity) (entity-birth-no-kill gp-1) (send-event diff --git a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc index 57952be45b..7a23c5a000 100644 --- a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc +++ b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc @@ -403,11 +403,11 @@ (y-offset float :offset-assert 212) (y-offset-desired float :offset-assert 216) (y-vel float :offset-assert 220) - (last-look-time int64 :offset-assert 224) - (time-to-next-look int64 :offset-assert 232) + (last-look-time time-frame :offset-assert 224) + (time-to-next-look time-frame :offset-assert 232) (take-off symbol :offset-assert 240) (race-seconds float :offset-assert 244) - (race-start-time int64 :offset-assert 248) + (race-start-time time-frame :offset-assert 248) (rank int32 :offset-assert 256) (alt-actor entity-actor :offset-assert 260) (alt-trans vector :offset-assert 264) @@ -912,7 +912,7 @@ (v1-41 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-42 (the-as float (logior #x3f800000 v1-41))) ) - (set! (-> self time-to-next-look) (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 v1-42)))))) + (set! (-> self time-to-next-look) (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 v1-42))))))) ) ) ) @@ -1104,7 +1104,7 @@ (run-next-time-in-process gp-2 (lambda :behavior process () (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 30) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 0.1)) (suspend) ) ) @@ -1386,7 +1386,7 @@ (when (and *target* (>= 172032.0 (vector-vector-xz-distance (-> self root trans) (-> *target* control trans)))) (process-grab? *target*) (let ((s5-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-0) 300) + (until (>= (- (-> *display* base-frame-counter) s5-0) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc b/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc index e8991f619b..396d09d8cf 100644 --- a/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc +++ b/test/decompiler/reference/levels/ogre/ogre-obs_REF.gc @@ -541,7 +541,7 @@ ((anchor-point vector :inline :offset-assert 736) (idle-y-offset float :offset-assert 752) (float-y-offset float :offset-assert 756) - (delay uint64 :offset-assert 760) + (delay time-frame :offset-assert 760) (active symbol :offset-assert 768) (triggered entity-actor :offset-assert 772) ) @@ -582,7 +582,7 @@ (let ((v1-0 arg2)) (the-as object (when (= v1-0 'trigger) (set! (-> self triggered) (the-as entity-actor #t)) - (set! (-> self delay) (-> arg3 param 0)) + (set! (-> self delay) (the-as time-frame (-> arg3 param 0))) (let ((v0-0 (-> *display* base-frame-counter))) (set! (-> self state-time) v0-0) v0-0 @@ -606,9 +606,7 @@ ) ) (else - (if (and (-> self triggered) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self delay))) - ) + (if (and (-> self triggered) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self delay))) (set! (-> self active) #t) ) ) @@ -728,24 +726,24 @@ (define *ogre-step-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 4.0) + :max-buoyancy-depth (meters 4) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 0.5 :player-dive-factor 1.0 - :player-force-distance (meters 5.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 100.0) + :player-force-distance (meters 5) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 100) :linear-damping 0.9 :angular-damping 0.9 :control-point-count 6 :mass 2.0 - :inertial-tensor-x (meters 4.0) - :inertial-tensor-y (meters 10.0) - :inertial-tensor-z (meters 4.0) - :idle-distance (meters 150.0) + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 10) + :inertial-tensor-z (meters 4) + :idle-distance (meters 150) :platform #t :sound-name "lava-plat" ) @@ -908,25 +906,25 @@ (define *ogre-isle-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 2.0 - :max-buoyancy-depth (meters 2.0) + :max-buoyancy-depth (meters 2) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 0.5 :player-dive-factor 1.0 - :player-force-distance (meters 2.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 4000.0) + :player-force-distance (meters 2) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 4000) :linear-damping 0.9 :angular-damping 0.9 :control-point-count 6 :mass 2.0 - :inertial-tensor-x (meters 10.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 10.0) - :cm-joint-y (meters 1.0) - :idle-distance (meters 150.0) + :inertial-tensor-x (meters 10) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 10) + :cm-joint-y (meters 1) + :idle-distance (meters 150) :platform #t :sound-name #f ) diff --git a/test/decompiler/reference/levels/ogre/ogreboss_REF.gc b/test/decompiler/reference/levels/ogre/ogreboss_REF.gc index fcbbfe4776..f77d130c55 100644 --- a/test/decompiler/reference/levels/ogre/ogreboss_REF.gc +++ b/test/decompiler/reference/levels/ogre/ogreboss_REF.gc @@ -105,7 +105,7 @@ (trajectory trajectory :inline :offset-assert 176) (src-pos vector :inline :offset-assert 224) (dest-pos vector :inline :offset-assert 240) - (start-time int64 :offset-assert 256) + (start-time time-frame :offset-assert 256) (tumble-quat quaternion :inline :offset-assert 272) (blast-radius float :offset-assert 288) (pickup-type pickup-type :offset-assert 292) @@ -149,7 +149,7 @@ (s5-0 (new 'stack-no-clear 'vector)) (s4-0 (new 'stack-no-clear 'collide-tri-result)) ) - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 1800) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 6)) (let ((f0-1 (the float (- (-> *display* base-frame-counter) (-> self start-time))))) (eval-position! (-> self trajectory) f0-1 gp-0) ) @@ -316,7 +316,7 @@ (t1-0 (let ((s4-1 (new 'stack-no-clear 'vector)) (s3-0 (new 'stack-no-clear 'vector)) - (t2-0 (new 'stack-no-clear 'vector)) + (t2-0 (new 'stack-no-clear 'collide-tri-result)) ) 0.0 (set! (-> s4-1 quad) (-> (the-as target t1-0) control trans quad)) @@ -330,7 +330,7 @@ (the-as float 40.96) (-> self root-override root-prim collide-with) t1-0 - (the-as collide-tri-result t2-0) + t2-0 1 ) ) @@ -378,7 +378,7 @@ (logclear! (-> self mask) (process-mask enemy projectile)) (ogreboss-rock-explosion-effect (the-as basic (-> self root-override trans))) (when (nonzero? (-> self pickup-type)) - (let ((t1-0 (new 'static 'fact-info :options (fact-options fade) :fade-time #x5dc))) + (let ((t1-0 (new 'static 'fact-info :options (fact-options fade) :fade-time (seconds 5)))) (birth-pickup-at-point (-> self root-override trans) (-> self pickup-type) @@ -418,7 +418,7 @@ (deftype ogreboss-missile-init-data (structure) ((src vector :offset-assert 0) (dest vector :offset-assert 4) - (duration int64 :offset-assert 8) + (duration time-frame :offset-assert 8) (xz-speed float :offset-assert 16) (blast-radius float :offset-assert 20) (pickup-type pickup-type :offset-assert 24) @@ -1271,7 +1271,7 @@ (max-hit-count int8 :offset-assert 398) (roll-boulder int8 :offset-assert 399) (try-count uint8 :offset-assert 400) - (hit-time int64 :offset-assert 408) + (hit-time time-frame :offset-assert 408) (grow-time float :offset-assert 416) (lava entity-actor :offset-assert 420) (vulnerable symbol :offset-assert 424) @@ -1396,7 +1396,7 @@ ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 50) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.16666667)) (suspend) ) ) @@ -1416,7 +1416,7 @@ ) ) (let ((gp-5 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-5) 50) + (until (>= (- (-> *display* base-frame-counter) gp-5) (seconds 0.16666667)) (suspend) ) ) @@ -1539,7 +1539,7 @@ :code (behavior () (when (zero? (-> self try-count)) - (process-drawable-delay-player 300) + (process-drawable-delay-player (seconds 1)) (let ((gp-0 (get-process *default-dead-pool* pov-camera #x4000))) (ppointer->handle (when gp-0 (let ((t9-2 (method-of-type pov-camera activate))) @@ -1664,9 +1664,12 @@ (let ((s5-0 (new 'stack-no-clear 'vector))) (set! (-> gp-0 src) (-> self node-list data 52 bone transform vector 3)) (set! (-> gp-0 duration) - (the int - (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ (-> (new 'static 'array float 1 0.5) 0) (-> self difficulty)))) - ) + (the-as + time-frame + (the int + (* 300.0 (+ 1.25 (* -0.25 (-> self level)) (/ (-> (new 'static 'array float 1 0.5) 0) (-> self difficulty)))) + ) + ) ) (set! (-> gp-0 pickup-type) (the-as pickup-type arg0)) (set! (-> gp-0 blast-radius) 32768.0) @@ -1728,7 +1731,7 @@ ;; definition for function ogreboss-submerge ;; INFO: Return type mismatch int vs none. -(defbehavior ogreboss-submerge ogreboss ((arg0 int) (arg1 float)) +(defbehavior ogreboss-submerge ogreboss ((arg0 time-frame) (arg1 float)) (when (not (-> self submerged)) (cond ((= (if (> (-> self skel active-channels) 0) @@ -1896,9 +1899,9 @@ ;; definition for function ogreboss-move-near ;; INFO: Return type mismatch int vs none. ;; Used lq/sq -(defbehavior ogreboss-move-near ogreboss ((arg0 basic) (arg1 float)) +(defbehavior ogreboss-move-near ogreboss ((arg0 time-frame) (arg1 float)) (when (not (-> self at-near-spot)) - (ogreboss-submerge (the-as int arg0) arg1) + (ogreboss-submerge arg0 arg1) (set! (-> self at-near-spot) #t) (set! (-> self root-override trans quad) (-> self near-pos quad)) (ogreboss-emerge arg1) @@ -1910,7 +1913,7 @@ ;; definition for function ogreboss-move-far ;; INFO: Return type mismatch int vs none. ;; Used lq/sq -(defbehavior ogreboss-move-far ogreboss ((arg0 int) (arg1 float)) +(defbehavior ogreboss-move-far ogreboss ((arg0 time-frame) (arg1 float)) (when (-> self at-near-spot) (ogreboss-submerge arg0 arg1) (set! (-> self at-near-spot) #f) @@ -1950,7 +1953,7 @@ (behavior () (if (and (-> self bridge-assembled) (ogreboss-player-inside-range? (the-as float 524288.0)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (go ogreboss-stage2) ) @@ -1960,7 +1963,7 @@ (behavior () (set! (-> self mask) (logior (process-mask enemy) (-> self mask))) (ogreboss-set-stage1-camera) - (ogreboss-move-near (the-as basic 900) (-> (new 'static 'array float 1 1.0) 0)) + (ogreboss-move-near (seconds 3) (-> (new 'static 'array float 1 1.0) 0)) (cond ((= (if (> (-> self skel active-channels) 0) (-> self skel root-channel 0 frame-group) @@ -2099,7 +2102,7 @@ ) ) ) - (ogreboss-move-far 600 (-> (new 'static 'array float 1 1.0) 0)) + (ogreboss-move-far (seconds 2) (-> (new 'static 'array float 1 1.0) 0)) (ja-channel-push! 1 30) (let ((a0-28 (-> self skel root-channel 0))) (set! (-> a0-28 frame-group) (the-as art-joint-anim (-> self draw art-group data 16))) @@ -2344,7 +2347,7 @@ :code (behavior () (ogreboss-set-stage2-camera) - (ogreboss-move-far 30 (-> (new 'static 'array float 1 2.0) 0)) + (ogreboss-move-far (seconds 0.1) (-> (new 'static 'array float 1 2.0) 0)) (let ((f30-0 (* 0.75 (-> self difficulty)))) (let ((gp-0 #f)) (ja-channel-push! 1 60) @@ -2368,7 +2371,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (while (not gp-0) (ogreboss-roll-boulder) - (set! gp-0 (or (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (set! gp-0 (or (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (not (ogreboss-player-inside-range? (the-as float 524288.0))) ) (ogreboss-player-inside-range? (the-as float 409600.0)) @@ -2475,7 +2478,7 @@ ) ) (when (and (not (ogreboss-player-inside-range? (the-as float 409600.0))) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) ) (set! (-> self state-time) (-> *display* base-frame-counter)) (send-event (handle->process (-> self boulder)) 'grow-faster) @@ -2715,7 +2718,7 @@ (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) ) ) - (ogreboss-submerge 300 (-> (new 'static 'array float 1 1.0) 0)) + (ogreboss-submerge (seconds 1) (-> (new 'static 'array float 1 1.0) 0)) (while (handle->process (-> self boulder)) (suspend) ) diff --git a/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc b/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc index 64d1ba85d5..e745113fc9 100644 --- a/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc +++ b/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc @@ -121,7 +121,7 @@ ) ) (and (< 0.0 (vector-dot (-> arg0 ground-poly-normal) arg2)) - (< (- (-> *display* base-frame-counter) (-> arg0 unknown-dword10)) 90) + (< (- (-> *display* base-frame-counter) (-> arg0 unknown-dword10)) (seconds 0.3)) (zero? (logand sv-104 32)) ) ) diff --git a/test/decompiler/reference/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL_REF.gc b/test/decompiler/reference/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL_REF.gc index df8310fcba..aba5398be7 100644 --- a/test/decompiler/reference/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL_REF.gc +++ b/test/decompiler/reference/levels/racer_common/racer-states-FIC-LAV-MIS-OGR-ROL_REF.gc @@ -10,7 +10,7 @@ 'racer ) ((and (= arg2 'get-pickup) (= (-> arg3 param 0) 3)) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer boost-time))) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self racer boost-time)) (seconds 1)) (send-event self 'boost (fmax 1.0 (fmin 2.0 (the-as float (-> arg3 param 1))))) ) ) @@ -52,7 +52,7 @@ (set! (-> self racer boost-sound-id) (sound-play-by-name (static-sound-name "zoom-boost") (new-sound-id) 1024 0 0 1 #t) ) - (set! (-> self racer boost-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer boost-time) (-> *display* base-frame-counter)) (let ((f0-12 (seek (-> self racer boost-level) (-> *RACER-bank* boost-level-max) @@ -210,7 +210,7 @@ (set! (-> self racer bob-mult-trans) 0.0) (set! (-> self racer bob-meta-timer) 0.0) (set! (-> self racer bob-meta-meta-timer) 0.0) - (set! (-> self racer bob-hit-ground-time) (the-as uint 0)) + (set! (-> self racer bob-hit-ground-time) 0) (set! (-> self racer cushion-bob) 0.0) (set! (-> self racer cushion-bob-old) 0.0) (set! (-> self racer hill-value) 0.0) @@ -226,13 +226,13 @@ (set! (-> self racer boost-level) 0.0) (set! (-> self racer boost-target) 0.0) (set! (-> self racer boost-output) 0.0) - (set! (-> self racer boost-time) (the-as uint 0)) - (set! (-> self racer boost-duration) (the-as uint (-> *RACER-bank* boost-duration))) + (set! (-> self racer boost-time) 0) + (set! (-> self racer boost-duration) (-> *RACER-bank* boost-duration)) (set! (-> self racer heat) 0.0) (set! (-> self racer slide-mode) 0) (set! (-> self racer slide-amp) 0.0) - (set! (-> self racer slide-down-time 0) (the-as uint 0)) - (set! (-> self racer slide-down-time 1) (the-as uint 0)) + (set! (-> self racer slide-down-time 0) 0) + (set! (-> self racer slide-down-time 1) 0) (set! (-> self racer slide-interp) 0.0) (set! (-> self racer surface-y) (-> self control trans y)) (let ((s5-0 (-> self entity))) @@ -364,7 +364,7 @@ ) (pad-buttons l1 r1) ) - (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) + (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) (< (vector-dot (-> self control dynam gravity-normal) (vector-! (new 'stack-no-clear 'vector) (-> self control trans) (-> self control shadow-pos)) @@ -386,7 +386,7 @@ ) (if (and (zero? (logand (-> self control status) 1)) (or (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) - (the-as int (* (-> *TARGET-bank* ground-timeout) 2)) + (* (-> *TARGET-bank* ground-timeout) 2) ) (< 75 v1-28) ) @@ -431,7 +431,7 @@ (gp-0 #f) ) (when (and (< (fabs (-> self racer bob-mult-trans)) 0.2) - (and (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer racing-time))) 45) + (and (>= (- (-> *display* base-frame-counter) (-> self racer racing-time)) (seconds 0.15)) (< 16384.0 (-> self control ground-impact-vel)) ) ) @@ -461,8 +461,8 @@ (set! (-> self racer bob-meta-timer) f0-14) ) (set! (-> self racer bob-mult-trans) (lerp-scale 0.2 2.5 (-> self control ground-impact-vel) 20480.0 81920.0)) - (set! (-> self racer bob-hit-ground-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self racer bob-meta-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer bob-hit-ground-time) (-> *display* base-frame-counter)) + (set! (-> self racer bob-meta-time) (-> *display* base-frame-counter)) (cond ((or s5-0 (and (>= (-> self racer bounce) 1) (< (-> self racer bounce) 2))) (+! (-> self racer bounce) 1) @@ -542,11 +542,9 @@ ) ) ) - (while (< (- (-> *display* base-frame-counter) gp-3) 300) + (while (< (- (-> *display* base-frame-counter) gp-3) (seconds 1)) (if (or (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (or (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1 x) - ) + (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1 x) (>= (fabs (-> self racer turn-anim-frame)) 1.0) ) ) @@ -573,9 +571,7 @@ ) ) (while (not (or (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (or (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1 x) - ) + (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1 x) (>= (fabs (-> self racer turn-anim-frame)) 1.0) ) ) @@ -592,7 +588,7 @@ :post (behavior () (if (= (-> self next-state name) 'target-racing) - (set! (-> self racer racing-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer racing-time) (-> *display* base-frame-counter)) ) (target-racing-post) (none) @@ -628,12 +624,10 @@ ) (if (< (-> self racer slide-mode) 0) (set! (-> self racer slide-down-time 0) - (the-as uint (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (-> *display* base-frame-counter) - 0 - ) + (the-as time-frame (if (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) + (the-as int (-> *display* base-frame-counter)) + 0 + ) ) ) ) @@ -655,19 +649,17 @@ ) ) (cond - ((logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons l1 r1) - ) - (set! (-> self racer slide-down-time 0) (the-as uint (-> *display* base-frame-counter))) + ((cpad-pressed? (-> self control unknown-cpad-info00 number) l1 r1) + (set! (-> self racer slide-down-time 0) (-> *display* base-frame-counter)) ) ((zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l1 r1)) ) - (set! (-> self racer slide-down-time 0) (the-as uint 0)) + (set! (-> self racer slide-down-time 0) 0) 0 ) - ((and (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer slide-down-time 0))) - (the-as int (-> *RACER-bank* slide-hold-time)) + ((and (>= (- (-> *display* base-frame-counter) (-> self racer slide-down-time 0)) + (the-as time-frame (-> *RACER-bank* slide-hold-time)) ) (< (-> self racer slide-mode) 0) (or (< (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) leftx) (the-as uint 64)) @@ -680,7 +672,7 @@ 1 ) ) - (set! (-> self racer slide-enter-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer slide-enter-time) (-> *display* base-frame-counter)) (set! (-> self racer slide-amp) 1.0) (set! (-> self racer slide-grip-mult) 0.0) ) @@ -696,7 +688,9 @@ ) ) ) - (if (and (logtest? (-> self control status) 1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)) + (if (and (logtest? (-> self control status) 1) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) + ) (go target-racing) ) (if (or (< (-> self control trans y) (-> self racer hop-start-y)) @@ -709,17 +703,10 @@ (set! (-> self racer hop?) #f) ) (target-racing-smack-check) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (logior! (-> self control root-prim prim-core action) (collide-action ca-15)) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (-> self control transv)) (set! (-> self racer shock-offset) (* 0.8 (-> self racer shock-offset))) (racer-buzz 0.4) (none) @@ -777,7 +764,7 @@ ) (pad-buttons l1 r1) ) - (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 60) + (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.2)) (< (vector-dot (-> self control dynam gravity-normal) (vector-! (new 'stack-no-clear 'vector) (-> self control trans) (-> self control shadow-pos)) @@ -788,17 +775,12 @@ ) (go target-racing-jump 2048.0 5324.8 #t) ) - (if (and (logtest? (-> self control status) 1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30)) + (if (and (logtest? (-> self control status) 1) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) + ) (go target-racing) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (-> self control transv)) (target-racing-smack-check) (racer-buzz 0.4) (none) @@ -866,11 +848,11 @@ :enter (behavior ((arg0 float) (arg1 symbol)) (sound-play-by-name (static-sound-name "smack-surface") (new-sound-id) 1024 0 0 1 #t) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 150) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5)) (set! (-> self racer heavy) arg1) (vector-! (-> self control transv) (-> self control unknown-vector70) (-> self control trans)) (let ((f0-0 (lerp-scale 0.0 -61440.0 arg0 0.0 163840.0))) - (if (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + (if (cpad-hold? (-> self control unknown-cpad-info00 number) x) (set! f0-0 (* 2.0 f0-0)) ) (vector-normalize! (-> self control transv) f0-0) @@ -879,7 +861,7 @@ (set! (-> self racer boost-level) 0.0) (set! (-> self racer boost-target) 0.0) (set! (-> self racer boost-output) 0.0) - (set! (-> self racer boost-time) (the-as uint 0)) + (set! (-> self racer boost-time) 0) 0 (none) ) @@ -953,7 +935,7 @@ ) (target-racing-smack-check) (racer-buzz 0.3) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (logior! (-> self control root-prim prim-core action) (collide-action ca-15)) ) (none) @@ -1010,7 +992,7 @@ (target-timed-invulnerable (-> *TARGET-bank* hit-invulnerable-timeout) self) (when (!= (-> self attack-info mode) 'endlessfall) (dummy-10 (-> self skel effect) 'group-target-hit -1.0 -1) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 90) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) (sound-play-by-name (static-sound-name "oof") (new-sound-id) 1024 0 0 1 #t) ) (set! (-> self game hit-time) (-> *display* base-frame-counter)) @@ -1019,7 +1001,7 @@ (set! (-> self racer boost-level) 0.0) (set! (-> self racer boost-target) 0.0) (set! (-> self racer boost-output) 0.0) - (set! (-> self racer boost-time) (the-as uint 0)) + (set! (-> self racer boost-time) 0) (if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health))) (go target-racing-death (-> self attack-info mode)) ) @@ -1131,7 +1113,7 @@ (let* ((f0-0 (vector-length (-> s5-0 0 control transv))) (f30-0 (fmin 1.0 (* 0.000008138021 f0-0))) ) - (set! (-> gp-0 duration) (the-as uint 1500)) + (set! (-> gp-0 duration) (seconds 5)) (set! (-> gp-0 fountain-rand-transv-hi x) (fmax 24576.0 f0-0)) (set! (-> gp-0 fountain-rand-transv-hi y) (+ 81920.0 f0-0)) (set! (-> gp-0 fountain-rand-transv-hi z) 20480.0) @@ -1253,7 +1235,7 @@ (ja-channel-set! 0) (ja-post) (let ((gp-6 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-6) 600) + (until (>= (- (-> *display* base-frame-counter) gp-6) (seconds 2)) (suspend) ) ) @@ -1280,7 +1262,7 @@ ) ) (let ((gp-9 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-9) 225) + (until (>= (- (-> *display* base-frame-counter) gp-9) (seconds 0.75)) (vector-seek! (-> self draw color-mult) *zero-vector* (* 1.5 (-> *display* seconds-per-frame))) (set-forward-vel (* 0.96 (-> self control unknown-float01))) (let ((s5-3 (new-stack-vector0)) @@ -1315,7 +1297,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-154 (suspend) - (set! v1-154 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (set! v1-154 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (zero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie))) ) ) @@ -1473,7 +1455,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.0044444446 (the float (+ (- -150 (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.0044444446 (the float (+ (- (seconds -0.5) (-> self state-time)) (-> *display* base-frame-counter)))) + ) ) ) ) @@ -1572,7 +1557,7 @@ ) ) (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 150) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.5)) (set! (-> self racer stick-lock) #t) (set-forward-vel (* 0.9 (-> self control unknown-float01))) (set! (-> self racer turn-anim-targ) 0.0) @@ -1714,7 +1699,10 @@ (-> self control unknown-vector103 y) (fmax 0.0 - (fmin 1.0 (* 0.0044444446 (the float (+ (- -150 (-> self state-time)) (-> *display* base-frame-counter))))) + (fmin + 1.0 + (* 0.0044444446 (the float (+ (- (seconds -0.5) (-> self state-time)) (-> *display* base-frame-counter)))) + ) ) ) ) diff --git a/test/decompiler/reference/levels/racer_common/racer_REF.gc b/test/decompiler/reference/levels/racer_common/racer_REF.gc index 2b7ae165b2..b04cbe46bd 100644 --- a/test/decompiler/reference/levels/racer_common/racer_REF.gc +++ b/test/decompiler/reference/levels/racer_common/racer_REF.gc @@ -377,7 +377,7 @@ (suspend) ) (let ((s5-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-0) 300) + (until (>= (- (-> *display* base-frame-counter) s5-0) (seconds 1)) (racer-effect) (suspend) ) diff --git a/test/decompiler/reference/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL_REF.gc b/test/decompiler/reference/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL_REF.gc index 7d5c96ff96..4ba5f33440 100644 --- a/test/decompiler/reference/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL_REF.gc +++ b/test/decompiler/reference/levels/racer_common/target-racer-FIC-LAV-MIS-OGR-ROL_REF.gc @@ -104,7 +104,7 @@ ((or (-> self racer hop?) (= (-> self next-state name) 'target-racing-bounce)) (lerp-scale 81920.0 163840.0 (-> self control unknown-float01) 0.0 (-> self racer transv-max)) ) - ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 180) + ((>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.6)) (lerp-scale 81920.0 122880.0 (-> self control unknown-float01) 0.0 (-> self racer transv-max)) ) (else @@ -269,7 +269,7 @@ ;; INFO: Return type mismatch int vs none. (defbehavior racer-thrust target ((arg0 basic) (arg1 float)) (let ((f0-0 - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (not (-> self racer stick-lock)) (not (-> self racer stick-off)) ) @@ -312,12 +312,14 @@ ) (set! f0-13 (cond - ((and (not (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0))) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons square) - ) + ((and (not + (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + ) + (cpad-hold? (-> self control unknown-cpad-info00 number) square) ) - (if (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + (if (and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (not (-> self racer stick-lock)) (not (-> self racer stick-off)) ) @@ -327,7 +329,7 @@ ) (else (cond - ((and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) + ((and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (not (-> self racer stick-lock)) (not (-> self racer stick-off)) ) @@ -440,7 +442,7 @@ ) ) ) - (if (and (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 60) + (if (and (or (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.2)) (< (-> self racer shock-offset) 0.0) ) (!= (-> self control unknown-surface00 mode) 'air) @@ -539,9 +541,7 @@ (set-twist! (-> self racer front-blade) (the-as float #f) (- (-> self racer front-rot)) (the-as float #f)) (set-twist! (-> self racer bottom-blade) (the-as float #f) (the-as float #f) (- (-> self racer bottom-rot))) (if (and (= *cheat-mode* 'debug) - (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - (not *pause-lock*) - ) + (and (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*)) ) (vector-reset! (-> self control transv)) ) @@ -636,11 +636,11 @@ ) ((or (logtest? (-> self control status) 2) (< 12288.0 (vector-length (-> self control transv)))) (let ((v0-5 (the-as object (-> *display* base-frame-counter)))) - (set! (-> self racer unstuck-time) (the-as int v0-5)) + (set! (-> self racer unstuck-time) (the-as time-frame v0-5)) v0-5 ) ) - ((>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) 1500) + ((>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) (seconds 5)) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) (set! (-> a1-6 from) self) (set! (-> a1-6 num-params) 2) @@ -653,10 +653,10 @@ (send-event-function self a1-6) ) ) - ((and (>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) 900) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer heat-sound-time))) 300) + ((and (>= (- (-> *display* base-frame-counter) (-> self racer unstuck-time)) (seconds 3)) + (>= (- (-> *display* base-frame-counter) (-> self racer heat-sound-time)) (seconds 1)) ) - (set! (-> self racer heat-sound-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer heat-sound-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "warning") (new-sound-id) 1024 0 0 1 #t) ) ) @@ -666,7 +666,7 @@ ;; INFO: Return type mismatch int vs none. (defbehavior racer-buzz target ((arg0 float)) (let ((f1-0 (lerp-scale 0.2 1.0 (-> self control unknown-float01) 0.0 (-> self racer transv-max)))) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 (fmin 1.0 (* arg0 f1-0)))) 15) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 (the int (* 255.0 (fmin 1.0 (* arg0 f1-0)))) (seconds 0.05)) ) 0 (none) @@ -852,11 +852,11 @@ ) ) ) - (when (and (and (= (-> self fact-info-target eco-type) 1) (>= (-> self fact-info-target eco-level) 1.0)) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (pad-buttons circle square) - ) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) 75) + (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) + (>= (-> self fact-info-target eco-level) 1.0) + ) + (cpad-pressed? (-> self control unknown-cpad-info00 number) circle square) + (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 0.25)) (zero? (logand (-> self state-flags) #x8008)) ) (let ((gp-6 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control quat))) @@ -931,7 +931,7 @@ ) ) (let ((v1-189 (- (-> *display* base-frame-counter) (-> self control unknown-dword11)))) - (if (and (>= v1-189 270) (>= 900 v1-189)) + (if (and (>= v1-189 (seconds 0.9)) (>= (seconds 3) v1-189)) (set! (-> self racer heat) (seek (-> self racer heat) 0.0 (* f30-2 (-> *display* seconds-per-frame)))) ) ) @@ -952,8 +952,8 @@ (if (and *cheat-mode* *debug-segment* (cpad-pressed? 0 l2)) (send-event self 'boost 1.0) ) - (let ((v1-218 (- (-> *display* base-frame-counter) (the-as int (-> self racer boost-time))))) - (if (< v1-218 (the-as int (-> self racer boost-duration))) + (let ((v1-218 (- (-> *display* base-frame-counter) (-> self racer boost-time)))) + (if (< v1-218 (-> self racer boost-duration)) (set! (-> self racer boost-curve) (* (-> *RACER-bank* boost-curve-max) (sin (* 32768.0 (/ (the float v1-218) (the float (-> self racer boost-duration))))) @@ -1000,7 +1000,7 @@ ) ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 30) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1)) ) (when (logtest? (-> self control status) 8) (let* ((gp-8 (racer-find-prop-point (new 'stack-no-clear 'vector) (-> self control unknown-vector70))) @@ -1031,7 +1031,7 @@ 1.0 ) ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 51 15) + (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 51 (seconds 0.05)) (sound-play-by-name (sound-name-with-material 'zoom-hit (the-as pat-surface (-> self control unknown-int60)) "") (-> self racer scrape-sound-id) @@ -1044,12 +1044,12 @@ ) (when (and (< (-> self racer heat) (-> *RACER-bank* heat-max)) (and (< (* 0.8 (-> *RACER-bank* heat-max)) (-> self racer heat)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer heat-sound-time))) + (>= (- (-> *display* base-frame-counter) (-> self racer heat-sound-time)) (the int (* 3000.0 (- 1.0 (/ (-> self racer heat) (-> *RACER-bank* heat-max))))) ) ) ) - (set! (-> self racer heat-sound-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self racer heat-sound-time) (-> *display* base-frame-counter)) (sound-play-by-name (static-sound-name "warning") (new-sound-id) 1024 0 0 1 #t) ) (when (rand-vu-percent? (/ (-> self racer heat) (-> *RACER-bank* heat-max))) @@ -1516,8 +1516,8 @@ (if (< 1.5 (-> self racer bob-meta-meta-timer)) (set! (-> self racer bob-meta-meta-timer) (seek (-> self racer bob-meta-meta-timer) 1.0 0.5)) ) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self racer bob-meta-time))) 660) - (set! (-> self racer bob-meta-time) (the-as uint (-> *display* base-frame-counter))) + (when (>= (- (-> *display* base-frame-counter) (-> self racer bob-meta-time)) (seconds 2.2)) + (set! (-> self racer bob-meta-time) (-> *display* base-frame-counter)) (set! (-> self racer bob-meta-meta-timer) (rand-vu-float-range 0.8 1.2)) ) ) @@ -1572,7 +1572,7 @@ (and (= (-> self next-state name) 'target-racing-bounce) (= (-> self racer bounce) 1)) ) (set! (-> self racer speed-rotx) 0.5) - (when (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) + (when (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) (set! (-> self racer hill-rotx) (seek (-> self racer hill-rotx) 0.0 (* 65536.0 (-> *display* seconds-per-frame))) ) @@ -1614,13 +1614,9 @@ ) (cond ((and (logtest? (-> self control status) 8) - (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) 30) - (or (-> self racer stick-lock) (< (target-move-dist (the-as int (-> *TARGET-bank* stuck-time))) 4096.0)) - (not - (and (= *cheat-mode* 'debug) - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons r2)) - ) - ) + (and (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.1)) + (or (-> self racer stick-lock) (< (target-move-dist (-> *TARGET-bank* stuck-time)) 4096.0)) + (not (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) ) ) (cond diff --git a/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc b/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc index 7e3d703e96..266a70db08 100644 --- a/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc +++ b/test/decompiler/reference/levels/racer_common/target-racer-h-FIC-LAV-MIS-OGR-ROL_REF.gc @@ -38,8 +38,8 @@ (bob-mult-rot float :offset-assert 300) (bob-mult-trans float :offset-assert 304) (bob-period float :offset-assert 308) - (bob-meta-time uint64 :offset-assert 312) - (bob-hit-ground-time uint64 :offset-assert 320) + (bob-meta-time time-frame :offset-assert 312) + (bob-hit-ground-time time-frame :offset-assert 320) (cur-rotx degrees :offset-assert 328) (targ-rotx degrees :offset-assert 332) (speed-rotx float :offset-assert 336) @@ -54,16 +54,16 @@ (tail joint-mod :offset-assert 372) (tail-tilt degrees :offset-assert 376) (transv-max meters :offset-assert 380) - (slide-down-time uint64 2 :offset-assert 384) - (slide-enter-time uint64 :offset-assert 400) + (slide-down-time time-frame 2 :offset-assert 384) + (slide-enter-time time-frame :offset-assert 400) (slide-mode int32 :offset-assert 408) (slide-amp float :offset-assert 412) (slide-grip-mult float :offset-assert 416) (slide-shift-x float :offset-assert 420) (slide-interp float :offset-assert 424) (heat float :offset-assert 428) - (boost-time uint64 :offset-assert 432) - (boost-duration uint64 :offset-assert 440) + (boost-time time-frame :offset-assert 432) + (boost-duration time-frame :offset-assert 440) (boost-curve float :offset-assert 448) (boost-level float :offset-assert 452) (boost-target float :offset-assert 456) @@ -82,14 +82,14 @@ (tail-anim-frame float :offset-assert 508) (rudd-anim-vel float :offset-assert 512) (rudd-anim-frame float :offset-assert 516) - (racing-time uint64 :offset-assert 520) + (racing-time time-frame :offset-assert 520) (stick-lock symbol :offset-assert 528) (stick-off symbol :offset-assert 532) (heavy symbol :offset-assert 536) - (unstuck-time int64 :offset-assert 544) + (unstuck-time time-frame :offset-assert 544) (stuck-count int32 :offset-assert 552) (scrape-sound-id sound-id :offset-assert 556) - (heat-sound-time uint64 :offset-assert 560) + (heat-sound-time time-frame :offset-assert 560) ) :method-count-assert 9 :size-assert #x238 @@ -253,11 +253,11 @@ :lavatube-lava-air-heat-inc 4.0 :lavatube-surface-heat-inc 1.0 :lavatube-jump-heat-inc 10.0 - :boost-curve-max (meters 5.0) + :boost-curve-max (meters 5) :boost-level-max (meters 12.5) - :boost-level-inc (meters 2.0) + :boost-level-inc (meters 2) :boost-duration (seconds 2.5) - :yellow-projectile-speed (meters 80.0) + :yellow-projectile-speed (meters 80) ) ) diff --git a/test/decompiler/reference/levels/robocave/cave-trap_REF.gc b/test/decompiler/reference/levels/robocave/cave-trap_REF.gc index fd3fdd2829..6560ed7c7d 100644 --- a/test/decompiler/reference/levels/robocave/cave-trap_REF.gc +++ b/test/decompiler/reference/levels/robocave/cave-trap_REF.gc @@ -6,8 +6,8 @@ ((root-override collide-shape :offset 112) (spider-count int32 :offset-assert 176) (alt-actors (array entity-actor) :offset-assert 180) - (spawn-delay uint64 :offset-assert 184) - (last-spawn-time uint64 :offset-assert 192) + (spawn-delay time-frame :offset-assert 184) + (last-spawn-time time-frame :offset-assert 192) (debug-targ-pos vector :inline :offset-assert 208) ) :heap-base #x70 @@ -39,7 +39,7 @@ ;; definition of type spider-vent (deftype spider-vent (process-drawable) - ((last-spawn-time uint64 :offset-assert 176) + ((last-spawn-time time-frame :offset-assert 176) ) :heap-base #x50 :method-count-assert 20 @@ -66,12 +66,12 @@ (local-vars (v0-0 object)) (case arg2 (('can-spawn?) - (return (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spawn-time))) 300)) + (return (>= (- (-> *display* base-frame-counter) (-> self last-spawn-time)) (seconds 1))) v0-0 ) (('notify-spawned) (set! v0-0 (-> *display* base-frame-counter)) - (set! (-> self last-spawn-time) (the-as uint v0-0)) + (set! (-> self last-spawn-time) (the-as time-frame v0-0)) v0-0 ) ) @@ -88,7 +88,7 @@ ;; definition for method 11 of type spider-vent ;; INFO: Return type mismatch object vs none. (defmethod init-from-entity! spider-vent ((obj spider-vent) (arg0 entity-actor)) - (set! (-> obj last-spawn-time) (the-as uint 0)) + (set! (-> obj last-spawn-time) 0) (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) (go spider-vent-idle) @@ -152,8 +152,8 @@ ;; Used lq/sq (defmethod TODO-RENAME-20 cave-trap ((obj cave-trap)) (with-pp - (set! (-> obj last-spawn-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj spawn-delay) (the-as uint (rand-vu-int-range 30 150))) + (set! (-> obj last-spawn-time) (-> *display* base-frame-counter)) + (set! (-> obj spawn-delay) (rand-vu-int-range (seconds 0.1) (seconds 0.5))) (let ((s5-0 (new 'stack-no-clear 'spawn-baby-spider-work))) (let ((s4-0 (new 'stack-no-clear 'vector))) (dotimes (v1-2 4) @@ -319,7 +319,7 @@ cave-trap-default-event-handler :enter (behavior () - (set! (-> self spawn-delay) (the-as uint 150)) + (set! (-> self spawn-delay) (seconds 0.5)) (none) ) :trans @@ -335,9 +335,7 @@ ) ) (if (and (< (-> self spider-count) 8) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-spawn-time))) - (the-as int (-> self spawn-delay)) - ) + (>= (- (-> *display* base-frame-counter) (-> self last-spawn-time)) (-> self spawn-delay)) ) (TODO-RENAME-20 self) ) @@ -386,8 +384,8 @@ ;; INFO: Return type mismatch object vs none. (defmethod init-from-entity! cave-trap ((obj cave-trap) (arg0 entity-actor)) (set! (-> obj spider-count) 0) - (set! (-> obj spawn-delay) (the-as uint 0)) - (set! (-> obj last-spawn-time) (the-as uint 0)) + (set! (-> obj spawn-delay) 0) + (set! (-> obj last-spawn-time) 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 offense) (collide-offense no-offense)) diff --git a/test/decompiler/reference/levels/rolling/rolling-lightning-mole_REF.gc b/test/decompiler/reference/levels/rolling/rolling-lightning-mole_REF.gc index 9e0f89f203..91005e1b0a 100644 --- a/test/decompiler/reference/levels/rolling/rolling-lightning-mole_REF.gc +++ b/test/decompiler/reference/levels/rolling/rolling-lightning-mole_REF.gc @@ -175,7 +175,7 @@ ;; definition of type fleeing-nav-enemy (deftype fleeing-nav-enemy (nav-enemy) - ((last-reflection-time uint64 :offset-assert 400) + ((last-reflection-time time-frame :offset-assert 400) (run-blend-interp float :offset-assert 408) (desired-travel vector :inline :offset-assert 416) (saved-travel vector :inline :offset-assert 432) @@ -391,9 +391,7 @@ ) ) ) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-reflection-time))) - (-> self flee-info reflection-time) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self last-reflection-time)) (-> self flee-info reflection-time)) (let ((s3-0 (new 'stack-no-clear 'matrix)) (s5-2 (new 'stack-no-clear 'vector)) ) @@ -414,7 +412,7 @@ ) ) (if (fleeing-nav-enemy-clip-travel self (-> self desired-travel)) - (set! (-> self last-reflection-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-reflection-time) (-> *display* base-frame-counter)) ) (fleeing-nav-enemy-adjust-travel self (-> self desired-travel)) (fleeing-nav-enemy-chase-post-func) @@ -774,14 +772,12 @@ (set! (-> gp-0 quad) (-> self debug-vector quad)) (set! (-> self target-speed) (-> self nav-info run-travel-speed)) (format *stdcon* "tgt-speed ~M defmd ~M~%" (-> self target-speed) (-> self flee-info deflection-max-dist)) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-reflection-time))) - (-> self flee-info reflection-time) - ) + (if (>= (- (-> *display* base-frame-counter) (-> self last-reflection-time)) (-> self flee-info reflection-time)) (vector-normalize-copy! (-> self desired-travel) gp-0 (-> self flee-info deflection-max-dist)) ) ) (if (fleeing-nav-enemy-clip-travel self (-> self desired-travel)) - (set! (-> self last-reflection-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-reflection-time) (-> *display* base-frame-counter)) ) (set! (-> self debug-vector quad) (-> self desired-travel quad)) (fleeing-nav-enemy-adjust-travel self (-> self desired-travel)) @@ -1113,31 +1109,31 @@ :die-anim -1 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 30.0) + :run-travel-speed (meters 30) :run-rotate-speed (degrees 3000.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 30.0) + :walk-travel-speed (meters 30) :walk-rotate-speed (degrees 3000.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 2.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 35.0) - :stop-chase-distance (meters 45.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 35) + :stop-chase-distance (meters 45) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -1179,8 +1175,8 @@ (TODO-RENAME-45 obj *lightning-mole-nav-enemy-info*) (logclear! (-> obj nav flags) (nav-control-flags bit5 bit6 bit7)) (set! (-> obj draw origin-joint-index) (the-as uint 3)) - (set! (-> obj reaction-time) 15) - (set! (-> obj last-reflection-time) (the-as uint 0)) + (set! (-> obj reaction-time) (seconds 0.05)) + (set! (-> obj last-reflection-time) 0) (set! (-> obj collide-info pause-adjust-distance) 122880.0) (set! (-> obj link) (new 'process 'actor-link-info obj)) (set! (-> obj alt-actor) (entity-actor-lookup arg0 'alt-actor 0)) @@ -1447,7 +1443,7 @@ ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (not (and *target* (>= 81920.0 (vector-vector-xz-distance (-> self root trans) (-> *target* control trans))))) ) (go peeper-up) @@ -1511,7 +1507,7 @@ (behavior () (logior! (-> self draw status) (draw-status drwf01)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (let* ((f30-0 2.0) @@ -1520,7 +1516,7 @@ ) (countdown (gp-0 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-11)))) 1)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (if (nonzero? (-> self sound)) (update! (-> self sound)) ) @@ -1531,7 +1527,7 @@ (if (nonzero? (-> self sound)) (stop! (-> self sound)) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc b/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc index 999939f64c..4184f845a0 100644 --- a/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc +++ b/test/decompiler/reference/levels/rolling/rolling-obs_REF.gc @@ -982,7 +982,7 @@ ) ;; definition for function seconds->race-time -(defun seconds->race-time ((arg0 race-time) (arg1 int)) +(defun seconds->race-time ((arg0 race-time) (arg1 time-frame)) (let* ((v1-1 (max 0 (min #x2bf1d arg1))) (f0-1 (* 0.0033333334 (the float v1-1))) ) @@ -1044,7 +1044,7 @@ ;; definition for function race-time-read ;; INFO: Return type mismatch int vs symbol. -(defun race-time-read ((arg0 race-time) (arg1 int) (arg2 task-control) (arg3 int)) +(defun race-time-read ((arg0 race-time) (arg1 int) (arg2 task-control) (arg3 time-frame)) (dotimes (s2-0 5) (set! (-> arg0 digit s2-0) (get-reminder arg2 (+ arg1 s2-0))) ) @@ -1626,7 +1626,7 @@ (gorge-start-draw-time #t #t) (suspend) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (set! (-> self timer-pos-offset) (seekl (-> self timer-pos-offset) 100 (the int (* 3.0 (-> *display* time-adjust-ratio)))) ) @@ -1655,7 +1655,7 @@ :code (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (set! (-> self timer-pos-offset) (seekl (-> self timer-pos-offset) 100 (the int (* 5.0 (-> *display* time-adjust-ratio)))) ) @@ -1725,7 +1725,7 @@ (send-event (ppointer->process (-> *hud-parts* fuel-cell)) 'hide) (send-event (ppointer->process (-> *hud-parts* money)) 'disable) (send-event (ppointer->process (-> *hud-parts* money)) 'hide) - (race-time-read (-> self record-time) 1 (-> self tasks) #x34bc) + (race-time-read (-> self record-time) 1 (-> self tasks) (seconds 45)) (let ((gp-0 (get-process *default-dead-pool* rolling-start #x4000))) (set! (-> self end-banner) (ppointer->handle (when gp-0 @@ -1818,7 +1818,7 @@ (-> gp-5 ppointer) ) ) - (sleep (-> self ticker) #x1b7740) + (sleep (-> self ticker) (seconds 6000)) (set-setting! *setting-control* self 'sound-flava #f 40.0 42) (none) ) diff --git a/test/decompiler/reference/levels/rolling/rolling-race-ring_REF.gc b/test/decompiler/reference/levels/rolling/rolling-race-ring_REF.gc index fac6b2b418..5c239a3be5 100644 --- a/test/decompiler/reference/levels/rolling/rolling-race-ring_REF.gc +++ b/test/decompiler/reference/levels/rolling/rolling-race-ring_REF.gc @@ -7,7 +7,7 @@ (face-vec vector :inline :offset-assert 192) (part-track handle :offset-assert 208) (keep-part-track-alive symbol :offset-assert 216) - (timeout uint64 :offset-assert 224) + (timeout time-frame :offset-assert 224) (alt-actor entity-actor :offset-assert 232) (alt-task uint8 :offset-assert 236) (cyl cylinder-flat :inline :offset-assert 240) @@ -848,9 +848,7 @@ (cond ((handle->process (-> self part-track)) (if (-> self keep-part-track-alive) - (set! (-> (the-as part-tracker (-> self part-track process 0)) start-time) - (the-as uint (-> *display* base-frame-counter)) - ) + (set! (-> (the-as part-tracker (-> self part-track process 0)) start-time) (-> *display* base-frame-counter)) ) ) ((= (-> self entity extra perm task) (game-task rolling-ring-chase-2)) @@ -921,7 +919,7 @@ (cond ((first-ring? self) ) - ((>= (- (-> *display* game-frame-counter) (-> self state-time)) (the-as int (-> self timeout))) + ((>= (- (-> *display* game-frame-counter) (-> self state-time)) (-> self timeout)) (level-hint-spawn (game-text-id rolling-ring-hint-be-quick-all) "sksp0121" @@ -1156,7 +1154,7 @@ ) ) (let ((f0-1 (res-lump-float arg0 'timeout))) - (set! (-> obj timeout) (the-as uint (the int (* 300.0 f0-1)))) + (set! (-> obj timeout) (the-as time-frame (the int (* 300.0 f0-1)))) ) (let ((s4-0 (new 'stack-no-clear 'vector))) (cond diff --git a/test/decompiler/reference/levels/rolling/rolling-robber_REF.gc b/test/decompiler/reference/levels/rolling/rolling-robber_REF.gc index 5a03b2d472..1f1625c9df 100644 --- a/test/decompiler/reference/levels/rolling/rolling-robber_REF.gc +++ b/test/decompiler/reference/levels/rolling/rolling-robber_REF.gc @@ -24,7 +24,7 @@ (dotimes (v1-14 (the int (-> *display* time-adjust-ratio))) (set! arg2 (* 0.95 arg2)) ) - (when (and (< (fabs arg2) 13.653334) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450)) + (when (and (< (fabs arg2) 13.653334) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5))) (if *target* (process-release? *target*) ) @@ -51,7 +51,7 @@ (forward-down->inv-matrix *camera-other-matrix* s4-0 (new 'static 'vector :y -1.0 :w 1.0)) ) (set! *camera-look-through-other* 2) - (set-letterbox-frames 10) + (set-letterbox-frames (seconds 0.033333335)) (suspend) (let ((a0-27 (-> self skel root-channel 0))) (set! (-> a0-27 param 0) 0.5) @@ -87,14 +87,14 @@ (tangent vector :inline :offset-assert 208) (run-blend-interp float :offset-assert 224) (near-timer int32 :offset-assert 228) - (far-time uint64 :offset-assert 232) + (far-time time-frame :offset-assert 232) (y-offset float :offset-assert 240) (y-offset-desired float :offset-assert 244) (y-vel float :offset-assert 248) (water-height float :offset-assert 252) - (timeout uint64 :offset-assert 256) - (last-ambient-time uint64 :offset-assert 264) - (time-to-next-ambient uint64 :offset-assert 272) + (timeout time-frame :offset-assert 256) + (last-ambient-time time-frame :offset-assert 264) + (time-to-next-ambient time-frame :offset-assert 272) ) :heap-base #xb0 :method-count-assert 20 @@ -593,9 +593,7 @@ (robber-move) (robber-rotate (the-as target #f) 1820.4445) (suspend) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-ambient-time))) - (the-as int (-> self time-to-next-ambient)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self last-ambient-time)) (-> self time-to-next-ambient)) (ja-channel-push! 1 60) (let ((a0-14 (-> self skel root-channel 0))) (set! (-> a0-14 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) @@ -617,7 +615,7 @@ (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set! (-> self last-ambient-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-ambient-time) (-> *display* base-frame-counter)) (let* ((f30-0 300.0) (f28-0 2.0) (f26-0 2.0) @@ -625,7 +623,7 @@ (v1-42 (the-as number (logior #x3f800000 v1-41))) ) (set! (-> self time-to-next-ambient) - (the-as uint (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) + (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) ) ) ) @@ -643,7 +641,7 @@ :enter (behavior () (set! (-> self near-timer) 3000) - (set! (-> self far-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self far-time) (-> *display* base-frame-counter)) (set! (-> self y-offset-desired) 0.0) (none) ) @@ -658,15 +656,16 @@ (when (and *target* (>= 102400.0 (vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans))) ) - (set! (-> self near-timer) - (- (-> self near-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self near-timer) (- (the-as time-frame (-> self near-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (if (<= (-> self near-timer) 0) (go robber-tired) ) - (set! (-> self far-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self far-time) (-> *display* base-frame-counter)) ) - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self far-time))) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self far-time)) (seconds 3)) (set! (-> self near-timer) (the-as int (-> self timeout))) ) (none) @@ -693,9 +692,7 @@ (robber-move) (robber-rotate (the-as target #f) 1820.4445) (suspend) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-ambient-time))) - (the-as int (-> self time-to-next-ambient)) - ) + (when (>= (- (-> *display* base-frame-counter) (-> self last-ambient-time)) (-> self time-to-next-ambient)) (ja-channel-push! 1 60) (let ((a0-14 (-> self skel root-channel 0))) (set! (-> a0-14 frame-group) (the-as art-joint-anim (-> self draw art-group data 11))) @@ -717,7 +714,7 @@ (joint-control-channel-group-eval! a0-17 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set! (-> self last-ambient-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-ambient-time) (-> *display* base-frame-counter)) (let* ((f30-0 300.0) (f28-0 3.0) (f26-0 5.0) @@ -725,7 +722,7 @@ (v1-42 (the-as number (logior #x3f800000 v1-41))) ) (set! (-> self time-to-next-ambient) - (the-as uint (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) + (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-42))))))) ) ) ) @@ -944,10 +941,10 @@ (robber-find-ground) (set! (-> obj y-offset) (-> obj y-offset-desired)) (let ((f0-14 (res-lump-float arg0 'timeout :default 10.0))) - (set! (-> obj timeout) (the-as uint (the int (* 300.0 f0-14)))) + (set! (-> obj timeout) (the-as time-frame (the int (* 300.0 f0-14)))) ) - (set! (-> obj last-ambient-time) (the-as uint 0)) - (set! (-> obj time-to-next-ambient) (the-as uint 0)) + (set! (-> obj last-ambient-time) 0) + (set! (-> obj time-to-next-ambient) 0) (set! (-> obj speed) 0.0) (let ((v1-42 (-> obj entity extra perm))) (logior! (-> v1-42 status) (entity-perm-status user-set-from-cstage)) diff --git a/test/decompiler/reference/levels/snow/ice-cube_REF.gc b/test/decompiler/reference/levels/snow/ice-cube_REF.gc index 8d5fdac52c..031c950277 100644 --- a/test/decompiler/reference/levels/snow/ice-cube_REF.gc +++ b/test/decompiler/reference/levels/snow/ice-cube_REF.gc @@ -25,7 +25,7 @@ (charge-angle float :offset-assert 440) (ground-y float :offset-assert 444) (cprims-type uint64 :offset-assert 448) - (next-skid-sound-time uint64 :offset-assert 456) + (next-skid-sound-time time-frame :offset-assert 456) (starting-pos vector :inline :offset-assert 464) (target-pt vector :inline :offset-assert 480) ) @@ -100,32 +100,32 @@ :die-anim 7 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 20.0) + :run-travel-speed (meters 20) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 1.0) + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) :notice-nav-radius (meters 1.5) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 35.0) - :stop-chase-distance (meters 45.0) - :frustration-distance (meters 8.0) - :frustration-time #x4b0 + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 35) + :stop-chase-distance (meters 45) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-anim-start-frame 10.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 3.0) + :jump-height-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 - :shadow-max-y (meters 1.0) + :shadow-max-y (meters 1) :shadow-min-y (meters -3.5) - :shadow-locus-dist (meters 150.0) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -716,7 +716,7 @@ ) ) (vector-! gp-0 (-> obj target-pt) (-> obj collide-info trans)) - (seek-toward-heading-vec! (-> obj collide-info) gp-0 524288.0 30) + (seek-toward-heading-vec! (-> obj collide-info) gp-0 524288.0 (seconds 0.1)) (let ((v0-5 (< (fabs (deg- (quaternion-y-angle (-> obj collide-info quat)) (vector-y-angle gp-0))) 364.0889))) (b! #t cfg-10 :delay (nop!)) (the-as none 0) @@ -1348,7 +1348,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (dummy-58 self) (logior! (-> self nav-enemy-flags) 4) - (set! (-> self next-skid-sound-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self next-skid-sound-time) (-> *display* base-frame-counter)) (if (or (not *target*) (logtest? (-> *target* state-flags) #x80f8) (not (nav-enemy-test-point-near-nav-mesh? (-> *target* control shadow-pos))) @@ -1358,7 +1358,7 @@ (set! (-> self target-speed) (-> self nav-info run-travel-speed)) (set! (-> self acceleration) (-> self nav-info run-acceleration)) (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 turn-time) (-> self nav-info run-turn-time)) (logclear! (-> self nav flags) (nav-control-flags bit8)) (set-root-prim-collide-with! (-> self collide-info) (collide-kind cak-2 cak-3 target crate enemy)) (set! (-> self track-target?) #t) @@ -1449,10 +1449,8 @@ (spawn (-> self part4) gp-3) ) ) - (when (>= (-> *display* base-frame-counter) (the-as int (-> self next-skid-sound-time))) - (set! (-> self next-skid-sound-time) - (the-as uint (+ (-> *display* base-frame-counter) (nav-enemy-rnd-int-range 60 120))) - ) + (when (>= (-> *display* base-frame-counter) (-> self next-skid-sound-time)) + (set! (-> self next-skid-sound-time) (+ (-> *display* base-frame-counter) (nav-enemy-rnd-int-range 60 120))) (sound-play-by-name (static-sound-name "ice-stop") (new-sound-id) @@ -1611,7 +1609,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (cond ((or (not *target*) (< (-> self enemy-info idle-distance) (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) @@ -1688,7 +1686,7 @@ (clear-collide-with-as (-> self collide-info)) (dummy-18 self) (let ((gp-1 (new 'stack 'joint-exploder-tuning 1))) - (set! (-> gp-1 duration) (the-as uint 900)) + (set! (-> gp-1 duration) (seconds 3)) (set! (-> gp-1 gravity) -327680.0) (set! (-> gp-1 fountain-rand-transv-lo quad) (-> (target-pos 0) quad)) (let ((s5-1 (get-process *default-dead-pool* joint-exploder #x4000))) @@ -1747,7 +1745,3 @@ (none) ) ) - - - - diff --git a/test/decompiler/reference/levels/snow/snow-ball_REF.gc b/test/decompiler/reference/levels/snow/snow-ball_REF.gc index 2d0d32018c..89f4525f1b 100644 --- a/test/decompiler/reference/levels/snow/snow-ball_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-ball_REF.gc @@ -23,8 +23,8 @@ ;; definition of type snow-ball-junction (deftype snow-ball-junction (structure) - ((enter-time int64 :offset-assert 0) - (exit-time int64 :offset-assert 8) + ((enter-time time-frame :offset-assert 0) + (exit-time time-frame :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -70,8 +70,8 @@ (delay-til-bounce int32 :offset-assert 204) (rolling-sound-id sound-id :offset-assert 208) (rolling-sound-enabled? symbol :offset-assert 212) - (last-bounce-time int64 :offset-assert 216) - (hit-player-time int64 :offset-assert 224) + (last-bounce-time time-frame :offset-assert 216) + (hit-player-time time-frame :offset-assert 224) (path-info snow-ball-path-info :inline :offset-assert 240) (junctions snow-ball-junction 4 :inline :offset-assert 272) ) @@ -114,7 +114,7 @@ ;; definition of type snow-ball (deftype snow-ball (process) ((child-override (pointer snow-ball-roller) :offset 20) - (state-time int64 :offset-assert 112) + (state-time time-frame :offset-assert 112) (last-path-picked int32 :offset-assert 120) (same-path-picked-count int32 :offset-assert 124) (delay-til-next int32 :offset-assert 128) @@ -486,7 +486,7 @@ (the-as object (when (or (= v1-0 'touch) (= v1-0 'attack)) (when (= (-> arg0 type) target) (do-push-aways! (-> self root-override)) - (when (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) (seconds 0.5)) (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (dummy-22 self *target*) ) diff --git a/test/decompiler/reference/levels/snow/snow-bumper_REF.gc b/test/decompiler/reference/levels/snow/snow-bumper_REF.gc index b7a211a7ea..53385dbfd7 100644 --- a/test/decompiler/reference/levels/snow/snow-bumper_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-bumper_REF.gc @@ -7,7 +7,7 @@ (base-shove-ry float :offset-assert 180) (max-shove-diff-ry float :offset-assert 184) (part2 sparticle-launch-control :offset-assert 188) - (last-shoved-player-time uint64 :offset-assert 192) + (last-shoved-player-time time-frame :offset-assert 192) ) :heap-base #x60 :method-count-assert 22 @@ -117,7 +117,7 @@ ) ;; definition for method 21 of type snow-bumper -;; INFO: Return type mismatch int vs none. +;; INFO: Return type mismatch time-frame vs none. ;; Used lq/sq (defmethod shove-player snow-bumper ((obj snow-bumper) (arg0 process-drawable)) (with-pp @@ -164,7 +164,7 @@ (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))) + (set! (-> obj last-shoved-player-time) (-> *display* base-frame-counter)) ) ) ) @@ -229,7 +229,7 @@ (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) + (if (and (>= (- (-> *display* base-frame-counter) (-> self last-shoved-player-time)) (seconds 0.5)) (>= 20480.0 f30-0) (>= f28-0 -4096.0) (>= 11059.2 f28-0) @@ -294,7 +294,7 @@ ) (stop! (-> self sound)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (suspend) ) (let ((a0-10 (-> self skel root-channel 0))) @@ -413,7 +413,7 @@ ;; Used lq/sq (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)) + (set! (-> obj last-shoved-player-time) 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) diff --git a/test/decompiler/reference/levels/snow/snow-bunny_REF.gc b/test/decompiler/reference/levels/snow/snow-bunny_REF.gc index 88e84a3e7a..dc6544ad27 100644 --- a/test/decompiler/reference/levels/snow/snow-bunny_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-bunny_REF.gc @@ -3,26 +3,26 @@ ;; definition of type snow-bunny (deftype snow-bunny (nav-enemy) - ((patrol-rand-distraction int32 :offset-assert 400) - (base-hop-dist float :offset-assert 404) - (halfway-dist float :offset-assert 408) - (retreat-timeout float :offset-assert 412) - (gnd-popup float :offset-assert 416) - (jump-height-min float :offset-assert 420) - (jump-height-factor float :offset-assert 424) - (jump-anim-start-frame float :offset-assert 428) - (defense uint64 :offset-assert 432) - (retreat-timeout-time int64 :offset-assert 440) - (last-nondangerous-time int64 :offset-assert 448) - (patrol-hop-failed? basic :offset-assert 456) - (should-retreat? basic :offset-assert 460) - (got-jump-event? symbol :offset-assert 464) - (using-jump-event? basic :offset-assert 468) - (jump-anim int8 :offset-assert 472) - (notice-land-anim int8 :offset-assert 473) - (attack-anim int8 :offset-assert 474) - (final-dest vector :inline :offset-assert 480) - (jump-event-dest vector :inline :offset-assert 496) + ((patrol-rand-distraction int32 :offset-assert 400) + (base-hop-dist float :offset-assert 404) + (halfway-dist float :offset-assert 408) + (retreat-timeout float :offset-assert 412) + (gnd-popup float :offset-assert 416) + (jump-height-min float :offset-assert 420) + (jump-height-factor float :offset-assert 424) + (jump-anim-start-frame float :offset-assert 428) + (defense uint64 :offset-assert 432) + (retreat-timeout-time time-frame :offset-assert 440) + (last-nondangerous-time time-frame :offset-assert 448) + (patrol-hop-failed? basic :offset-assert 456) + (should-retreat? basic :offset-assert 460) + (got-jump-event? symbol :offset-assert 464) + (using-jump-event? basic :offset-assert 468) + (jump-anim int8 :offset-assert 472) + (notice-land-anim int8 :offset-assert 473) + (attack-anim int8 :offset-assert 474) + (final-dest vector :inline :offset-assert 480) + (jump-event-dest vector :inline :offset-assert 496) ) :heap-base #x190 :method-count-assert 77 @@ -90,30 +90,30 @@ :die-anim 11 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :shadow-size (meters 2.0) + :shadow-size (meters 2) :notice-nav-radius (meters 1.2) - :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 + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 31.0 :jump-anim-start-frame 11.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :jump-height-factor 0.6 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -4.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -4) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -280,7 +280,7 @@ ) ;; definition for method 58 of type snow-bunny -;; INFO: Return type mismatch int vs none. +;; INFO: Return type mismatch time-frame vs none. (defmethod dummy-58 snow-bunny ((obj snow-bunny)) (if (zero? (logand (-> *target* state-flags) 2)) (set! (-> obj last-nondangerous-time) (-> *display* base-frame-counter)) @@ -350,7 +350,11 @@ (set! f0-2 40.96) ) (let ((v1-13 (the int (/ f0-2 (* (-> obj nav-info run-travel-speed) (-> *display* seconds-per-frame)))))) - (if (<= (- (- 108 (- (-> *display* base-frame-counter) (-> obj last-nondangerous-time))) v1-13) 0) + (if (<= (- (- (seconds 0.36) (- (-> *display* base-frame-counter) (-> obj last-nondangerous-time))) + (the-as time-frame v1-13) + ) + 0 + ) (return #f) ) ) @@ -478,7 +482,7 @@ (set! (-> self nav flags) (logior (nav-control-flags bit19) (-> self nav flags))) (set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags))) (logior! (-> self nav-enemy-flags) 8) - (set! (-> self state-timeout) 30) + (set! (-> self state-timeout) (seconds 0.1)) (none) ) :trans @@ -535,7 +539,7 @@ ) (while #t (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 756) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 2.52)) (suspend) (let ((a0-6 (-> self skel root-channel 0))) (set! (-> a0-6 param 0) 1.0) @@ -710,7 +714,7 @@ (snow-bunny-initialize-jump (-> self nav target-pos)) (dummy-76 self #t) (set! (-> self rotate-speed) 728177.75) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (none) ) :exit @@ -810,7 +814,7 @@ (when *target* (let ((gp-2 (new 'stack-no-clear 'vector))) (vector-! gp-2 (target-pos 0) (-> self collide-info trans)) - (seek-toward-heading-vec! (-> self collide-info) gp-2 524288.0 30) + (seek-toward-heading-vec! (-> self collide-info) gp-2 524288.0 (seconds 0.1)) ) ) (suspend) @@ -961,7 +965,7 @@ (snow-bunny-initialize-jump (-> self nav target-pos)) (dummy-76 self #t) (set! (-> self rotate-speed) 728177.75) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (none) ) :exit @@ -1259,7 +1263,7 @@ (snow-bunny-initialize-jump (-> self nav target-pos)) (dummy-76 self #t) (set! (-> self rotate-speed) 728177.75) - (set! (-> self turn-time) 30) + (set! (-> self turn-time) (seconds 0.1)) (none) ) :exit @@ -1369,7 +1373,7 @@ (when *target* (let ((gp-0 (new 'stack-no-clear 'vector))) (vector-! gp-0 (target-pos 0) (-> self collide-info trans)) - (seek-toward-heading-vec! (-> self collide-info) gp-0 524288.0 30) + (seek-toward-heading-vec! (-> self collide-info) gp-0 524288.0 (seconds 0.1)) ) ) (+! (-> self collide-info transv y) (* -546119.7 (-> *display* seconds-per-frame))) @@ -1419,7 +1423,3 @@ :post (the-as (function none :behavior snow-bunny) nav-enemy-simple-post) ) - - - - 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 27fee7a266..fc93603182 100644 --- a/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-flutflut-obs_REF.gc @@ -55,8 +55,8 @@ (deftype snow-button (process-drawable) ((root-override collide-shape-moving :offset 112) (wiggled? symbol :offset-assert 176) - (timeout int64 :offset-assert 184) - (delay-til-wiggle int64 :offset-assert 192) + (timeout time-frame :offset-assert 184) + (delay-til-wiggle time-frame :offset-assert 192) (prev-button entity-actor :offset-assert 200) (ticker ticky :inline :offset-assert 208) ) @@ -425,7 +425,7 @@ (behavior () (send-to-all-after (-> self link) 'untrigger) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 180) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.6)) (suspend) ) (let ((a0-2 (-> self skel root-channel 0))) @@ -503,8 +503,8 @@ (set! (-> obj link) (new 'process 'actor-link-info obj)) (initialize-skeleton obj *snow-button-sg* '()) (logior! (-> obj skel status) 1) - (set! (-> obj timeout) (the int (* 300.0 (res-lump-float arg0 'timeout :default 10.0)))) - (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) -120)) + (set! (-> obj timeout) (the-as time-frame (the int (* 300.0 (res-lump-float arg0 'timeout :default 10.0))))) + (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) (seconds -0.4))) (if (> (entity-actor-count arg0 'alt-actor) 0) (set! (-> obj prev-button) (entity-actor-lookup arg0 'alt-actor 0)) (set! (-> obj prev-button) #f) diff --git a/test/decompiler/reference/levels/snow/snow-obs_REF.gc b/test/decompiler/reference/levels/snow/snow-obs_REF.gc index 7e56f4e97a..47b0b48d43 100644 --- a/test/decompiler/reference/levels/snow/snow-obs_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-obs_REF.gc @@ -95,7 +95,7 @@ ) ) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 1350) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 4.5)) (suspend) ) ) @@ -544,7 +544,7 @@ (game-task none) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 330) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.1)) (if (-> self play-sound?) (update! (-> self sound)) ) @@ -1612,7 +1612,7 @@ ) (set! (-> gp-1 frame-num) 0.0) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (update! (-> self sound)) (suspend) ) diff --git a/test/decompiler/reference/levels/snow/snow-ram-boss_REF.gc b/test/decompiler/reference/levels/snow/snow-ram-boss_REF.gc index 94ff45f6b2..e97439d5dc 100644 --- a/test/decompiler/reference/levels/snow/snow-ram-boss_REF.gc +++ b/test/decompiler/reference/levels/snow/snow-ram-boss_REF.gc @@ -8,7 +8,7 @@ (launched? symbol :offset-assert 416) (growth float :offset-assert 420) (charge-sound-id sound-id :offset-assert 424) - (launch-time uint64 :offset-assert 432) + (launch-time time-frame :offset-assert 432) (facing-dir vector :inline :offset-assert 448) ) :heap-base #x160 @@ -47,8 +47,8 @@ (proj-stoked basic :offset-assert 424) (proj-status uint64 :offset-assert 432) (part2 sparticle-launch-control :offset-assert 440) - (proj-last-thrown-time uint64 :offset-assert 448) - (nav-enemy-patrol-timeout uint64 :offset-assert 456) + (proj-last-thrown-time time-frame :offset-assert 448) + (nav-enemy-patrol-timeout time-frame :offset-assert 456) (proj-launch-vec vector :inline :offset-assert 464) (local-throw-point vector :inline :offset-assert 480) (shield-jmod joint-mod-set-local :offset-assert 496) @@ -123,31 +123,31 @@ :die-anim 15 :neck-joint 6 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 2.0) + :attack-shove-back (meters 2) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 18.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 58.0) - :stop-chase-distance (meters 58.0) - :frustration-time #x2328 + :shadow-size (meters 2) + :notice-nav-radius (meters 18) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 58) + :stop-chase-distance (meters 58) + :frustration-time (seconds 30) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -177,31 +177,31 @@ :die-anim 15 :neck-joint 6 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 4.0) + :walk-travel-speed (meters 4) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 2.0) + :attack-shove-back (meters 2) :attack-shove-up (meters 0.5) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 18.0) - :nav-nearest-y-threshold (meters 10.0) - :notice-distance (meters 58.0) - :stop-chase-distance (meters 58.0) - :frustration-time #x2328 + :shadow-size (meters 2) + :notice-nav-radius (meters 18) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 58) + :stop-chase-distance (meters 58) + :frustration-time (seconds 30) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -647,8 +647,8 @@ (set! (-> obj max-turn) 11832.889) (set! (-> obj tween) 0.02) (set! (-> obj attack-mode) 'snow-ram-proj) - (set! (-> obj launch-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj timeout) (the-as uint 1200)) + (set! (-> obj launch-time) (-> *display* base-frame-counter)) + (set! (-> obj timeout) (seconds 4)) (set! (-> obj sound-id) (sound-play-by-name (static-sound-name "ramboss-track") (new-sound-id) 1024 0 0 1 #t)) (let ((v1-12 (-> obj parent-override))) (set! (-> v1-12 0 proj-stoked) #t) @@ -768,7 +768,7 @@ (set! (-> self launched?) #t) (set! (-> self growth) 1.0) (logior! (-> self root-override root-prim prim-core action) (collide-action solid)) - (set! (-> self launch-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self launch-time) (-> *display* base-frame-counter)) (vector-float*! (-> self root-override transv) (-> self parent-override 0 proj-launch-vec) 40960.0) (set! (-> self target quad) (-> (target-pos 0) quad)) (set! (-> self target y) (+ 4915.2 (-> self target y))) @@ -1118,14 +1118,14 @@ ) ) ((= (-> arg3 param 0) 'die) - (let* ((v1-73 (- (-> *display* base-frame-counter) (the-as int (-> (the-as ram-boss v1-66) proj-status)))) - (v1-74 (- 1200 v1-73)) + (let* ((v1-73 (- (-> *display* base-frame-counter) (-> (the-as ram-boss-proj v1-66) launch-time))) + (v1-74 (the-as int (- (seconds 4) v1-73))) ) (cond - ((< 1200 v1-74) + ((< (seconds 4) (the-as time-frame v1-74)) (set! v1-74 1200) ) - ((< v1-74 0) + ((< (the-as time-frame v1-74) 0) (set! v1-74 0) ) ) @@ -1301,10 +1301,10 @@ (set! (-> self dead?) #f) (set! (-> self proj-status) (the-as uint 0)) (set! (-> self proj-stoked) #f) - (set! (-> self proj-last-thrown-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self proj-last-thrown-time) (-> *display* base-frame-counter)) (set-vector! (-> self local-throw-point) 10456.269 9961.882 1510.6049 1.0) (set! (-> self frustration) 0) - (set! (-> self nav-enemy-patrol-timeout) (the-as uint 300)) + (set! (-> self nav-enemy-patrol-timeout) (seconds 1)) (initialize-collision self) (set! (-> self entity) (-> arg1 entity)) (TODO-RENAME-48 self) @@ -1398,7 +1398,7 @@ (defmethod set-jump-height-factor! ram-boss ((obj ram-boss) (arg0 int)) (cond ((zero? (-> obj proj-status)) - (when (and *target* (>= (- (-> *display* base-frame-counter) (the-as int (-> obj proj-last-thrown-time))) 600)) + (when (and *target* (>= (- (-> *display* base-frame-counter) (-> obj proj-last-thrown-time)) (seconds 2))) (when arg0 (set! (-> obj proj-stoked) #t) (let ((s5-0 (new 'stack-no-clear 'vector))) @@ -1572,7 +1572,7 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (vector-! gp-0 (target-pos 0) (-> self collide-info trans)) (set! (-> gp-0 y) 0.0) - (seek-toward-heading-vec! (-> self collide-info) gp-0 182044.44 3) + (seek-toward-heading-vec! (-> self collide-info) gp-0 182044.44 (seconds 0.01)) ) (suspend) (let ((a0-7 (-> self skel root-channel 0))) @@ -1701,8 +1701,8 @@ :enter (behavior () ((-> (method-of-type nav-enemy nav-enemy-patrol) enter)) - (set! (-> self state-timeout) (the-as int (-> self nav-enemy-patrol-timeout))) - (set! (-> self nav-enemy-patrol-timeout) (the-as uint 300)) + (set! (-> self state-timeout) (-> self nav-enemy-patrol-timeout)) + (set! (-> self nav-enemy-patrol-timeout) (seconds 1)) (ja-channel-push! 1 90) (none) ) @@ -1751,7 +1751,7 @@ ) (cond ((logtest? (nav-control-flags bit17) (-> self nav flags)) - (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300) + (if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 1)) (go-virtual nav-enemy-patrol) ) ) @@ -1819,7 +1819,7 @@ (behavior () (set-jump-height-factor! self - (the-as int (>= (- (-> *display* base-frame-counter) (-> self state-time)) 225)) + (the-as int (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.75))) ) (if (not *target*) (go-virtual nav-enemy-patrol) @@ -1862,7 +1862,7 @@ ) (when (>= (-> self frustration) 256) (set! (-> self frustration) 0) - (set! (-> self nav-enemy-patrol-timeout) (the-as uint (rand-vu-int-range 600 1500))) + (set! (-> self nav-enemy-patrol-timeout) (rand-vu-int-range (seconds 2) (seconds 5))) (go-virtual nav-enemy-patrol) ) ) @@ -1870,7 +1870,7 @@ ) (when (and (= (-> self proj-status) 2) (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) ) (let ((gp-2 (new 'stack-no-clear 'vector)) (s5-2 (new 'stack-no-clear 'vector)) @@ -2178,7 +2178,7 @@ (set! gp-0 (-> gp-0 0 brother)) ) ) - (set! (-> self proj-last-thrown-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self proj-last-thrown-time) (-> *display* base-frame-counter)) (none) ) :trans diff --git a/test/decompiler/reference/levels/snow/target-ice_REF.gc b/test/decompiler/reference/levels/snow/target-ice_REF.gc index 428e197864..a216271e14 100644 --- a/test/decompiler/reference/levels/snow/target-ice_REF.gc +++ b/test/decompiler/reference/levels/snow/target-ice_REF.gc @@ -22,11 +22,7 @@ (remove-exit) (go target-ice-walk) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (remove-exit) (go target-duck-stance) ) @@ -347,19 +343,13 @@ ) (pad-buttons l1 r1) ) - (and (>= (- (-> *display* base-frame-counter) (the-as int (-> *TARGET-bank* wheel-timeout))) - (-> self control unknown-dword30) - ) + (and (>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* wheel-timeout)) (-> self control unknown-dword30)) (and (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) (can-wheel?)) ) ) (go target-wheel) ) - (when (and (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons l1 r1) - ) - (can-duck?) - ) + (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) (target-effect-exit) (remove-exit) (go target-duck-stance) diff --git a/test/decompiler/reference/levels/snow/yeti_REF.gc b/test/decompiler/reference/levels/snow/yeti_REF.gc index 65ab1f24a5..791f9cc3e2 100644 --- a/test/decompiler/reference/levels/snow/yeti_REF.gc +++ b/test/decompiler/reference/levels/snow/yeti_REF.gc @@ -87,32 +87,32 @@ :die-anim 9 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #t :draw-shadow #t :move-to-ground #t @@ -252,7 +252,7 @@ (move-to-ground (-> self collide-info) 40960.0 40960.0 #t (collide-kind background)) ) (set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags))) - (set! (-> self state-timeout) 300) + (set! (-> self state-timeout) (seconds 1)) (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))) @@ -539,7 +539,7 @@ :virtual #t :code (behavior () - (set! (-> self turn-time) 60) + (set! (-> self turn-time) (seconds 0.2)) (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)) @@ -641,7 +641,7 @@ :code (behavior () (set! (-> self rotate-speed) 218453.33) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (ja-channel-push! 1 45) (let ((s4-0 (-> self collide-info)) (s5-0 (target-pos 0)) diff --git a/test/decompiler/reference/levels/sunken/bully_REF.gc b/test/decompiler/reference/levels/sunken/bully_REF.gc index 8d4fe3237d..f72f68ff23 100644 --- a/test/decompiler/reference/levels/sunken/bully_REF.gc +++ b/test/decompiler/reference/levels/sunken/bully_REF.gc @@ -34,10 +34,10 @@ (speed-u float :offset-assert 196) (spin-vel float :offset-assert 200) (travel-speed float :offset-assert 204) - (reaction-delay uint64 :offset-assert 208) - (start-spin-time uint64 :offset-assert 216) - (slow-down uint64 :offset-assert 224) - (hit-player-time uint64 :offset-assert 232) + (reaction-delay time-frame :offset-assert 208) + (start-spin-time time-frame :offset-assert 216) + (slow-down time-frame :offset-assert 224) + (hit-player-time time-frame :offset-assert 232) (neck joint-mod :offset-assert 240) ) :heap-base #x90 @@ -416,7 +416,7 @@ (set! (-> self hit-player?) #t) (set! (-> self bounced?) #t) (set! (-> self bounce-volume) 100) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-override) 2 (collide-offense no-offense)) ) ) @@ -470,7 +470,7 @@ (defbehavior bully-post bully () (when (and (-> self hit-player?) (or (not *target*) (and (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self hit-player-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) (seconds 0.05)) ) ) ) @@ -564,7 +564,7 @@ :enter (behavior ((arg0 symbol)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self reaction-delay) (the-as uint (rand-vu-int-range 0 105))) + (set! (-> self reaction-delay) (rand-vu-int-range 0 (seconds 0.35))) (set! (-> self travel-speed) 0.0) (shut-down! (-> self neck)) (let ((v1-5 (-> self draw shadow-ctrl))) @@ -587,7 +587,7 @@ (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self reaction-delay))) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self reaction-delay)) ) (start-hint-timer (game-text-id sunken-bully-dive-hint)) (go bully-notice) @@ -702,7 +702,7 @@ (when *target* (let ((gp-3 (new 'stack-no-clear 'vector))) (vector-! gp-3 (target-pos 0) (-> self root-override trans)) - (seek-toward-heading-vec! (-> self root-override) gp-3 524288.0 30) + (seek-toward-heading-vec! (-> self root-override) gp-3 524288.0 (seconds 0.1)) ) (set! (-> self facing-ry) (quaternion-y-angle (-> self root-override quat))) ) @@ -739,8 +739,8 @@ :enter (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self start-spin-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self slow-down) (the-as uint (rand-vu-int-range 1200 2400))) + (set! (-> self start-spin-time) (-> *display* base-frame-counter)) + (set! (-> self slow-down) (rand-vu-int-range (seconds 4) (seconds 8))) (set! (-> self speed-u) 0.2) (set! (-> self bounced?) #f) (let ((gp-0 (new 'stack-no-clear 'vector))) @@ -767,9 +767,7 @@ (set-target! (-> self neck) (target-pos 5)) ) (cond - ((>= (- (-> *display* base-frame-counter) (the-as int (-> self start-spin-time))) - (the-as int (-> self slow-down)) - ) + ((>= (- (-> *display* base-frame-counter) (-> self start-spin-time)) (-> self slow-down)) (set! (-> self speed-u) (seek (-> self speed-u) 0.0 (* 0.5555556 (-> *display* seconds-per-frame)))) (if (= (-> self speed-u) 0.0) (go bully-stop-spinning) @@ -892,7 +890,7 @@ :enter (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self reaction-delay) (the-as uint (rand-vu-int-range 600 900))) + (set! (-> self reaction-delay) (rand-vu-int-range (seconds 2) (seconds 3))) (set! (-> self travel-speed) 0.0) (set! (-> self bounced?) #f) (none) @@ -917,7 +915,7 @@ (local-vars (v1-17 symbol) (v1-35 symbol)) (let ((gp-0 2)) (ja-channel-push! 1 60) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self reaction-delay))) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self reaction-delay)) (cond ((>= gp-0 0) (+! gp-0 -1) diff --git a/test/decompiler/reference/levels/sunken/double-lurker_REF.gc b/test/decompiler/reference/levels/sunken/double-lurker_REF.gc index e8050e634e..4b788ba23d 100644 --- a/test/decompiler/reference/levels/sunken/double-lurker_REF.gc +++ b/test/decompiler/reference/levels/sunken/double-lurker_REF.gc @@ -101,32 +101,32 @@ :die-anim 17 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 2880.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 3.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 3) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -156,32 +156,32 @@ :die-anim 17 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 720.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) :walk-travel-speed (meters 3.8) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 4.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 4) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t @@ -211,32 +211,32 @@ :die-anim 17 :neck-joint 5 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 720.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.1) :walk-travel-speed (meters 3.8) :walk-rotate-speed (degrees 720.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 4.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 4) + :notice-nav-radius (meters 2) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :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-min (meters 3) :jump-height-factor 0.5 :jump-start-anim-speed 1.0 :shadow-max-y (meters 0.25) - :shadow-min-y (meters -1.0) - :shadow-locus-dist (meters 150.0) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #t diff --git a/test/decompiler/reference/levels/sunken/helix-water_REF.gc b/test/decompiler/reference/levels/sunken/helix-water_REF.gc index d965397868..c92d3c4c69 100644 --- a/test/decompiler/reference/levels/sunken/helix-water_REF.gc +++ b/test/decompiler/reference/levels/sunken/helix-water_REF.gc @@ -409,7 +409,7 @@ ) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5)) (suspend) ) (level-hint-spawn @@ -446,11 +446,11 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 375) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.25)) (suspend) ) (sound-play-by-name (static-sound-name "maindoor") (new-sound-id) 1024 0 0 1 #t) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 570) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.9)) (suspend) ) (let ((a1-13 (new 'stack-no-clear 'event-message-block))) @@ -468,7 +468,7 @@ ) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1050) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3.5)) (suspend) ) (let ((a1-14 (new 'stack-no-clear 'event-message-block))) @@ -493,10 +493,10 @@ *entity-pool* (game-task none) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (suspend) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (send-event *target* 'play-anim 'shock-out) (send-event *target* 'neck 1.0 (-> self my-door extra trans)) (suspend) diff --git a/test/decompiler/reference/levels/sunken/puffer_REF.gc b/test/decompiler/reference/levels/sunken/puffer_REF.gc index 5465d0631e..fe8ac214f4 100644 --- a/test/decompiler/reference/levels/sunken/puffer_REF.gc +++ b/test/decompiler/reference/levels/sunken/puffer_REF.gc @@ -22,11 +22,11 @@ (look-mean? symbol :offset-assert 232) (cprims-type uint64 :offset-assert 240) (neck joint-mod :offset-assert 248) - (hit-player-time uint64 :offset-assert 256) - (reaction-delay uint64 :offset-assert 264) - (picked-point-time uint64 :offset-assert 272) - (pick-new-point-delay uint64 :offset-assert 280) - (last-on-screen-time uint64 :offset-assert 288) + (hit-player-time time-frame :offset-assert 256) + (reaction-delay time-frame :offset-assert 264) + (picked-point-time time-frame :offset-assert 272) + (pick-new-point-delay time-frame :offset-assert 280) + (last-on-screen-time time-frame :offset-assert 288) (buddy process-drawable :offset-assert 296) (nice-look lod-set :inline :offset-assert 300) (mean-look lod-set :inline :offset-assert 336) @@ -156,7 +156,7 @@ ) (when (send-event-function arg0 a1-9) (set! (-> self hit-player?) #t) - (set! (-> self hit-player-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self hit-player-time) (-> *display* base-frame-counter)) (set-collide-offense (-> self root-override) 2 (collide-offense no-offense)) ) ) @@ -171,7 +171,7 @@ (defbehavior puffer-post puffer () (when (and (-> self hit-player?) (or (not *target*) (and (zero? (logand (-> *target* state-flags) #x80f8)) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self hit-player-time))) 15) + (>= (- (-> *display* base-frame-counter) (-> self hit-player-time)) (seconds 0.05)) ) ) ) @@ -643,7 +643,7 @@ ) ) (logtest? (-> self draw status) (draw-status drwf03)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) ) (go puffer-patrol) ) @@ -664,13 +664,13 @@ (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) (set! (-> self attacking?) #f) - (set! (-> self reaction-delay) (the-as uint (rand-vu-int-range 30 105))) + (set! (-> self reaction-delay) (rand-vu-int-range (seconds 0.1) (seconds 0.35))) (if (not (dummy-23 self #f)) (go puffer-idle) ) - (set! (-> self picked-point-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self pick-new-point-delay) (the-as uint (rand-vu-int-range 900 3000))) - (set! (-> self last-on-screen-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self picked-point-time) (-> *display* base-frame-counter)) + (set! (-> self pick-new-point-delay) (rand-vu-int-range (seconds 3) (seconds 10))) + (set! (-> self last-on-screen-time) (-> *display* base-frame-counter)) (none) ) :trans @@ -680,39 +680,37 @@ ) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) ) (go puffer-idle) ) (cond ((logtest? (-> self draw status) (draw-status drwf03)) - (set! (-> self last-on-screen-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self last-on-screen-time) (-> *display* base-frame-counter)) ) (else - (if (>= (- (-> *display* base-frame-counter) (the-as int (-> self last-on-screen-time))) 2400) + (if (>= (- (-> *display* base-frame-counter) (-> self last-on-screen-time)) (seconds 8)) (go puffer-idle) ) ) ) (when (dummy-22 self) (when (dummy-23 self #t) - (set! (-> self picked-point-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self pick-new-point-delay) (the-as uint (rand-vu-int-range 900 3000))) + (set! (-> self picked-point-time) (-> *display* base-frame-counter)) + (set! (-> self pick-new-point-delay) (rand-vu-int-range (seconds 3) (seconds 10))) ) ) - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self reaction-delay))) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self reaction-delay)) (dummy-25 self (-> self notice-dist)) ) (go puffer-attack) ) (when (or (< (vector-vector-xz-distance (-> self root-override trans) (-> self dest-pos)) 8192.0) - (>= (- (-> *display* base-frame-counter) (the-as int (-> self picked-point-time))) - (the-as int (-> self pick-new-point-delay)) - ) + (>= (- (-> *display* base-frame-counter) (-> self picked-point-time)) (-> self pick-new-point-delay)) ) (when (dummy-23 self #f) - (set! (-> self picked-point-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> self pick-new-point-delay) (the-as uint (rand-vu-int-range 900 3000))) + (set! (-> self picked-point-time) (-> *display* base-frame-counter)) + (set! (-> self pick-new-point-delay) (rand-vu-int-range (seconds 3) (seconds 10))) ) ) (dummy-20 self (-> self dest-pos)) diff --git a/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc b/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc index 116791249b..a423b5a850 100644 --- a/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc +++ b/test/decompiler/reference/levels/sunken/qbert-plat_REF.gc @@ -72,24 +72,24 @@ (define *qbert-plat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 1.5 - :max-buoyancy-depth (meters 1.0) + :max-buoyancy-depth (meters 1) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 1.0 :angular-damping 1.0 :control-point-count 4 :mass 4.0 - :inertial-tensor-x (meters 4.0) - :inertial-tensor-y (meters 4.0) - :inertial-tensor-z (meters 4.0) - :idle-distance (meters 70.0) + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 4) + :inertial-tensor-z (meters 4) + :idle-distance (meters 70) :platform #t :sound-name #f ) @@ -720,7 +720,7 @@ (-> s5-0 ppointer) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 420) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.4)) (suspend) ) ) @@ -744,7 +744,7 @@ (-> s5-1 ppointer) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/sunken/shover_REF.gc b/test/decompiler/reference/levels/sunken/shover_REF.gc index 8a7e957e6e..c12b11e3f8 100644 --- a/test/decompiler/reference/levels/sunken/shover_REF.gc +++ b/test/decompiler/reference/levels/sunken/shover_REF.gc @@ -57,7 +57,7 @@ ) (cond ((or (= (-> *target* control unknown-surface00 mode) 'air) - (>= (+ (-> *display* base-frame-counter) -60) (-> *target* control unknown-dword11)) + (>= (+ (-> *display* base-frame-counter) (seconds -0.2)) (-> *target* control unknown-dword11)) (< 0.75 (-> *target* control poly-normal y)) ) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) diff --git a/test/decompiler/reference/levels/sunken/square-platform_REF.gc b/test/decompiler/reference/levels/sunken/square-platform_REF.gc index 22d7cd8d9d..ec971af4f6 100644 --- a/test/decompiler/reference/levels/sunken/square-platform_REF.gc +++ b/test/decompiler/reference/levels/sunken/square-platform_REF.gc @@ -7,7 +7,7 @@ (pos-u float :offset-assert 232) (water-entity entity-actor :offset-assert 236) (splash-counter int32 :offset-assert 240) - (start-splash-time uint64 :offset-assert 248) + (start-splash-time time-frame :offset-assert 248) (part2 sparticle-launch-control :offset-assert 256) (part3 sparticle-launch-control :offset-assert 260) (part4 sparticle-launch-control :offset-assert 264) @@ -75,15 +75,15 @@ ;; definition of type square-platform-master (deftype square-platform-master (process-drawable) - ((button-id int32 :offset-assert 176) - (plat-id int32 :offset-assert 180) - (plat-mask uint32 :offset-assert 184) - (plat-id-dir int32 :offset-assert 188) - (wiggled? symbol :offset-assert 192) - (timeout int64 :offset-assert 200) - (last-plat-activated-time int64 :offset-assert 208) - (delay-til-wiggle int64 :offset-assert 216) - (ticker ticky :inline :offset-assert 224) + ((button-id int32 :offset-assert 176) + (plat-id int32 :offset-assert 180) + (plat-mask uint32 :offset-assert 184) + (plat-id-dir int32 :offset-assert 188) + (wiggled? symbol :offset-assert 192) + (timeout time-frame :offset-assert 200) + (last-plat-activated-time time-frame :offset-assert 208) + (delay-til-wiggle time-frame :offset-assert 216) + (ticker ticky :inline :offset-assert 224) ) :heap-base #x90 :method-count-assert 20 @@ -261,13 +261,13 @@ (set! v0-3 (cond (arg0 (if (>= (-> s4-0 y) f0-2) - (set! (-> obj start-splash-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj start-splash-time) (-> *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))) + (set! (-> obj start-splash-time) (-> *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)) @@ -359,7 +359,7 @@ ) :enter (behavior () - (set! (-> self start-splash-time) (the-as uint 0)) + (set! (-> self start-splash-time) 0) (set! (-> self splash-counter) 0) 0 (none) @@ -443,7 +443,7 @@ ) :enter (behavior () - (set! (-> self start-splash-time) (the-as uint 0)) + (set! (-> self start-splash-time) 0) (set! (-> self splash-counter) 0) 0 (none) @@ -739,7 +739,7 @@ (send-to-all (-> self link) 'bounce) ) ) - (when (>= (- (-> *display* base-frame-counter) (-> self last-plat-activated-time)) 90) + (when (>= (- (-> *display* base-frame-counter) (-> self last-plat-activated-time)) (seconds 0.3)) (set! (-> self last-plat-activated-time) (-> *display* base-frame-counter)) (let ((v1-20 (-> self plat-id)) (a0-5 (-> self plat-id-dir)) @@ -785,8 +785,10 @@ (set! (-> obj plat-id) -1) (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) - (set! (-> obj timeout) (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 10.0)))) - (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) -120)) + (set! (-> obj timeout) + (the-as time-frame (the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 10.0)))) + ) + (set! (-> obj delay-til-wiggle) (+ (-> obj timeout) (seconds -0.4))) (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))) (go square-platform-master-idle) diff --git a/test/decompiler/reference/levels/sunken/sun-exit-chamber_REF.gc b/test/decompiler/reference/levels/sunken/sun-exit-chamber_REF.gc index a0f3feab9e..a6d80fc608 100644 --- a/test/decompiler/reference/levels/sunken/sun-exit-chamber_REF.gc +++ b/test/decompiler/reference/levels/sunken/sun-exit-chamber_REF.gc @@ -524,7 +524,7 @@ (while #t (cond ((zero? (get-reminder (get-task-control (game-task sunken-room)) 0)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 20)) (level-hint-spawn (game-text-id sunken-blue-eco-charger-all-hint) "sksp0133" @@ -906,7 +906,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 750) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2.5)) (suspend) ) (send-event (ppointer->process (-> self door)) 'trigger) @@ -1030,7 +1030,7 @@ (joint-control-channel-group! a0-13 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!) ) (until (ja-done? 0) - (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 225) (-> self door)) + (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.75)) (-> self door)) (set! gp-1 #t) (send-event (ppointer->process (-> self door)) 'untrigger) ) @@ -1129,7 +1129,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self wave-scale) (seek (-> self wave-scale) 1.0 0.0016666667)) (dummy-20 self (-> self wave-scale)) (suspend) @@ -1138,7 +1138,7 @@ (send-event (ppointer->process (-> self door)) 'trigger) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 750) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2.5)) (set! (-> self wave-scale) (seek (-> self wave-scale) 1.0 0.0016666667)) (dummy-20 self (-> self wave-scale)) (suspend) @@ -1307,11 +1307,11 @@ (joint-control-channel-group! a0-5 (the-as art-joint-anim (-> self draw art-group data 7)) num-func-seek!) ) (until (ja-done? 0) - (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) 75) (-> self door)) + (when (and (not gp-1) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) (-> self door)) (set! gp-1 #t) (send-event (ppointer->process (-> self door)) 'untrigger) ) - (when (+ (-> *display* base-frame-counter) -30) + (when (+ (-> *display* base-frame-counter) (seconds -0.1)) (let ((a0-9 (new 'stack-no-clear 'vector))) (set! (-> a0-9 quad) (-> self last-pos quad)) (set! (-> a0-9 y) (+ 64102.4 (-> a0-9 y))) @@ -1383,7 +1383,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (suspend) ) (set-continue! *game-info* "sunkenb-start") diff --git a/test/decompiler/reference/levels/sunken/sun-iris-door_REF.gc b/test/decompiler/reference/levels/sunken/sun-iris-door_REF.gc index 3ba5216038..e8ffea0591 100644 --- a/test/decompiler/reference/levels/sunken/sun-iris-door_REF.gc +++ b/test/decompiler/reference/levels/sunken/sun-iris-door_REF.gc @@ -250,7 +250,7 @@ (case arg2 (('trigger) (let ((v0-0 (the-as object (-> *display* base-frame-counter)))) - (set! (-> self state-time) (the-as int v0-0)) + (set! (-> self state-time) (the-as time-frame v0-0)) v0-0 ) ) diff --git a/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc b/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc index 4c12c373db..ed6f37fa2f 100644 --- a/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc +++ b/test/decompiler/reference/levels/sunken/sunken-fish_REF.gc @@ -3,20 +3,20 @@ ;; definition of type sunkenfisha (deftype sunkenfisha (process-drawable) - ((path-u float :offset-assert 176) - (path-speed float :offset-assert 180) - (path-speed-seek-speed float :offset-assert 184) - (targ-path-speed float :offset-assert 188) - (path-normal-speed-lo float :offset-assert 192) - (path-normal-speed-hi float :offset-assert 196) - (path-dir float :offset-assert 200) - (change-path-dir-time uint64 :offset-assert 208) - (local-path-offset vector :inline :offset-assert 224) - (targ-local-path-offset vector :inline :offset-assert 240) - (local-path-offset-dir vector :inline :offset-assert 256) - (max-local-path-offset vector :inline :offset-assert 272) - (facing-rot vector :inline :offset-assert 288) - (path-trans-offset vector :inline :offset-assert 304) + ((path-u float :offset-assert 176) + (path-speed float :offset-assert 180) + (path-speed-seek-speed float :offset-assert 184) + (targ-path-speed float :offset-assert 188) + (path-normal-speed-lo float :offset-assert 192) + (path-normal-speed-hi float :offset-assert 196) + (path-dir float :offset-assert 200) + (change-path-dir-time time-frame :offset-assert 208) + (local-path-offset vector :inline :offset-assert 224) + (targ-local-path-offset vector :inline :offset-assert 240) + (local-path-offset-dir vector :inline :offset-assert 256) + (max-local-path-offset vector :inline :offset-assert 272) + (facing-rot vector :inline :offset-assert 288) + (path-trans-offset vector :inline :offset-assert 304) ) :heap-base #xd0 :method-count-assert 28 @@ -189,7 +189,7 @@ (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))) + (+ (-> *display* base-frame-counter) (rand-vu-int-range (seconds 5) (seconds 18))) ) (set! (-> obj targ-local-path-offset y) (* 0.5 (+ (-> obj targ-local-path-offset y) (-> obj local-path-offset y))) @@ -226,7 +226,7 @@ (vf2 :class vf) ) (init-vf0-vector) - (if (>= (-> *display* base-frame-counter) (the-as int (-> self change-path-dir-time))) + (if (>= (-> *display* base-frame-counter) (-> self change-path-dir-time)) (TODO-RENAME-20 self) ) (TODO-RENAME-24 self) @@ -344,7 +344,7 @@ (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))) + (+ (-> *display* base-frame-counter) (rand-vu-int-range (seconds 5) (seconds 18))) ) (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)) diff --git a/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc b/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc index c585ba89cd..597814caef 100644 --- a/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc +++ b/test/decompiler/reference/levels/sunken/sunken-obs_REF.gc @@ -272,7 +272,7 @@ (set! (-> v1-45 draw?) #t) (set! (-> v1-45 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (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) @@ -290,7 +290,7 @@ (joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set-blackout-frames 150) + (set-blackout-frames (seconds 0.5)) (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))) @@ -314,7 +314,7 @@ ) ) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) ) ((= v1-0 1) (let ((a0-18 (-> self skel root-channel 0))) @@ -338,7 +338,7 @@ (set! (-> v1-116 draw?) #t) (set! (-> v1-116 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50)) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (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) @@ -356,7 +356,7 @@ (joint-control-channel-group-eval! a0-25 (the-as art-joint-anim #f) num-func-seek!) ) ) - (set-blackout-frames 30) + (set-blackout-frames (seconds 0.1)) (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))) @@ -386,7 +386,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) ) @@ -447,7 +447,7 @@ 1.3 ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/sunken/sunken-pipegame_REF.gc b/test/decompiler/reference/levels/sunken/sunken-pipegame_REF.gc index b1061f0f27..564b8e5734 100644 --- a/test/decompiler/reference/levels/sunken/sunken-pipegame_REF.gc +++ b/test/decompiler/reference/levels/sunken/sunken-pipegame_REF.gc @@ -20,9 +20,9 @@ ;; definition of type sunken-pipegame-prize (deftype sunken-pipegame-prize (structure) - ((puzzle-delay int64 :offset-assert 0) - (pipe-travel-time-to-far int64 :offset-assert 8) - (pipe-travel-time-to-jar int64 :offset-assert 16) + ((puzzle-delay time-frame :offset-assert 0) + (pipe-travel-time-to-far time-frame :offset-assert 8) + (pipe-travel-time-to-jar time-frame :offset-assert 16) (actor-handle handle :offset-assert 24) (jar-pos vector :inline :offset-assert 32) (far-pos vector :inline :offset-assert 48) @@ -734,7 +734,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((f30-0 0.0)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (let ((s5-3 (-> self prize (-> self challenge)))) (spawn (-> s5-3 sucked-up-part) (-> s5-3 sucked-up-jar-part-pos)) (spawn (-> s5-3 blown-out-part) (-> s5-3 blown-out-far-part-pos)) @@ -836,7 +836,7 @@ ) (set! (-> self state-time) (-> *display* base-frame-counter)) (sleep (-> self ticker) (-> self prize (-> self challenge) puzzle-delay)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (completed? (-> self ticker)) (suspend) ) @@ -856,7 +856,7 @@ (set! (-> self abort-audio-if-beaten?) #t) (set! (-> self state-time) (-> *display* base-frame-counter)) (let ((f30-2 0.0)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2)) (let ((gp-2 (-> self prize (-> self challenge)))) (spawn (-> gp-2 sucked-up-part) (-> gp-2 sucked-up-far-part-pos)) (spawn (-> gp-2 blown-out-part) (-> gp-2 blown-out-jar-part-pos)) @@ -956,7 +956,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5)) (suspend) ) (ambient-hint-spawn "st-lose" (the-as vector #f) *entity-pool* 'stinger) @@ -1128,9 +1128,9 @@ (let ((v1-30 s2-0)) (cond ((zero? v1-30) - (set! (-> s0-0 puzzle-delay) 7500) - (set! (-> s0-0 pipe-travel-time-to-far) 2550) - (set! (-> s0-0 pipe-travel-time-to-jar) 750) + (set! (-> s0-0 puzzle-delay) (seconds 25)) + (set! (-> s0-0 pipe-travel-time-to-far) (seconds 8.5)) + (set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5)) (set-vector! s4-0 -30720.0 1146.88 5120.0 1.0) (set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 448) obj)) (set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 451) obj)) @@ -1150,9 +1150,9 @@ ) ) ((= v1-30 1) - (set! (-> s0-0 puzzle-delay) 4500) - (set! (-> s0-0 pipe-travel-time-to-far) 1650) - (set! (-> s0-0 pipe-travel-time-to-jar) 750) + (set! (-> s0-0 puzzle-delay) (seconds 15)) + (set! (-> s0-0 pipe-travel-time-to-far) (seconds 5.5)) + (set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5)) (set-vector! s4-0 0.0 1146.88 5120.0 1.0) (set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 449) obj)) (set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 452) obj)) @@ -1174,9 +1174,9 @@ ) ) ((= v1-30 2) - (set! (-> s0-0 puzzle-delay) 4500) - (set! (-> s0-0 pipe-travel-time-to-far) 1350) - (set! (-> s0-0 pipe-travel-time-to-jar) 750) + (set! (-> s0-0 puzzle-delay) (seconds 15)) + (set! (-> s0-0 pipe-travel-time-to-far) (seconds 4.5)) + (set! (-> s0-0 pipe-travel-time-to-jar) (seconds 2.5)) (set-vector! s4-0 30720.0 1146.88 5120.0 1.0) (set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 450) obj)) (set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 453) obj)) diff --git a/test/decompiler/reference/levels/sunken/target-tube_REF.gc b/test/decompiler/reference/levels/sunken/target-tube_REF.gc index b03df600c2..85684d67e5 100644 --- a/test/decompiler/reference/levels/sunken/target-tube_REF.gc +++ b/test/decompiler/reference/levels/sunken/target-tube_REF.gc @@ -117,22 +117,22 @@ ;; definition of type tube-info (deftype tube-info (basic) - ((entity basic :offset-assert 4) - (tube handle :offset-assert 8) - (downhill vector :inline :offset-assert 16) - (centertube vector :inline :offset-assert 32) - (downtube vector :inline :offset-assert 48) - (sidetube vector :inline :offset-assert 64) - (foretube vector :inline :offset-assert 80) - (old-transv vector :inline :offset-assert 96) - (mod-x float :offset-assert 112) - (mod-y float :offset-assert 116) - (start-time uint64 :offset-assert 120) - (turn-anim-targ float :offset-assert 128) - (turn-anim-frame float :offset-assert 132) - (turn-anim-vel float :offset-assert 136) - (tube-sound-id sound-id :offset-assert 140) - (tube-sound-vol float :offset-assert 144) + ((entity basic :offset-assert 4) + (tube handle :offset-assert 8) + (downhill vector :inline :offset-assert 16) + (centertube vector :inline :offset-assert 32) + (downtube vector :inline :offset-assert 48) + (sidetube vector :inline :offset-assert 64) + (foretube vector :inline :offset-assert 80) + (old-transv vector :inline :offset-assert 96) + (mod-x float :offset-assert 112) + (mod-y float :offset-assert 116) + (start-time time-frame :offset-assert 120) + (turn-anim-targ float :offset-assert 128) + (turn-anim-frame float :offset-assert 132) + (turn-anim-vel float :offset-assert 136) + (tube-sound-id sound-id :offset-assert 140) + (tube-sound-vol float :offset-assert 144) ) :method-count-assert 9 :size-assert #x94 @@ -539,7 +539,7 @@ (set! (-> self tube entity) (-> a0-4 entity)) ) ) - (set! (-> self tube start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self tube start-time) (-> *display* base-frame-counter)) (set! (-> self tube tube-sound-id) (new-sound-id)) (set! (-> self tube tube-sound-vol) 0.0) (target-collide-set! 'tube 0.0) @@ -726,12 +726,7 @@ (if (logtest? (-> self control status) 1) (go target-tube) ) - (mod-var-jump - #t - #t - (logtest? (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons x)) - (-> self control transv) - ) + (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) (set! (-> self control unknown-float122) (seek (-> self control unknown-float122) @@ -967,7 +962,7 @@ (set! (-> self state-time) (-> *display* base-frame-counter)) (until v1-40 (suspend) - (set! v1-40 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) (not (movie?)))) + (set! v1-40 (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (not (movie?)))) ) (go target-tube) (none) diff --git a/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc b/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc index 00a3867c93..84f200cf61 100644 --- a/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc +++ b/test/decompiler/reference/levels/sunken/wedge-plats_REF.gc @@ -224,7 +224,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (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)) @@ -441,7 +441,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (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)) diff --git a/test/decompiler/reference/levels/swamp/billy_REF.gc b/test/decompiler/reference/levels/swamp/billy_REF.gc index cca9a4bea4..1c3f1ff008 100644 --- a/test/decompiler/reference/levels/swamp/billy_REF.gc +++ b/test/decompiler/reference/levels/swamp/billy_REF.gc @@ -12,7 +12,7 @@ (passed-last-stage symbol :offset-assert 404) (spawn-rats symbol :offset-assert 408) (current-wave int32 :offset-assert 412) - (wave-start-time uint64 :offset-assert 416) + (wave-start-time time-frame :offset-assert 416) (num-snacks int32 :offset-assert 424) (num-rats int32 :offset-assert 428) (max-rats int32 :offset-assert 432) @@ -283,7 +283,7 @@ (defstate billy-rat-eat (billy-rat) :trans (behavior () - (seek-to-point-toward-point! (-> self collide-info) (-> self destination) 131072.0 3) + (seek-to-point-toward-point! (-> self collide-info) (-> self destination) 131072.0 (seconds 0.01)) (none) ) :code @@ -428,7 +428,7 @@ (behavior () (set! (-> self speed-scale) (-> self billy 0 rat-speed)) (if (or (logtest? (nav-control-flags bit19) (-> self nav flags)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self chase-rest-time))) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self chase-rest-time)) ) (go-virtual nav-enemy-victory) ) @@ -796,7 +796,7 @@ ) ;; definition for function billy-game-update-wave -;; INFO: Return type mismatch int vs none. +;; INFO: Return type mismatch time-frame vs none. (defbehavior billy-game-update-wave billy () (let* ((a0-2 (/ (the-as uint (+ (get-reminder (-> self tasks) 0) 1)) (the-as uint 5))) (v1-4 (min 3 (the-as int a0-2))) @@ -810,27 +810,27 @@ (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-5 2) (set! (-> self max-rats) 8) (set! (-> self rat-speed) 1.2) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-5 4) (set! (-> self max-rats) 10) (set! (-> self rat-speed) 1.35) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 7500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 25)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -844,27 +844,27 @@ (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-30 2) (set! (-> self max-rats) 7) (set! (-> self rat-speed) 1.2) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-30 4) (set! (-> self max-rats) 10) (set! (-> self rat-speed) 1.3) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6600) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 22)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -878,27 +878,27 @@ (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-55 2) (set! (-> self max-rats) 7) (set! (-> self rat-speed) 1.1) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 5400) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 18)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-55 4) (set! (-> self max-rats) 9) (set! (-> self rat-speed) 1.25) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -912,27 +912,27 @@ (set! (-> self rat-speed) 0.9) (set! (-> self spawn-rats) #t) (set! (-> self passed-last-stage) #f) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 4500) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 15)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-80 2) (set! (-> self max-rats) 6) (set! (-> self rat-speed) 1.0) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 5400) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 18)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ((= v1-80 4) (set! (-> self max-rats) 8) (set! (-> self rat-speed) 1.1) (set! (-> self spawn-rats) #t) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 6000) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 20)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -956,13 +956,13 @@ (set! (-> self passed-last-stage) #t) ) ((begin (set! (-> self spawn-rats) #f) (zero? (-> self num-rats))) - (when (>= (- (-> *display* base-frame-counter) (the-as int (-> self wave-start-time))) 900) + (when (>= (- (-> *display* base-frame-counter) (-> self wave-start-time)) (seconds 3)) (+! (-> self current-wave) 1) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) (else - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) ) ) ) @@ -1125,7 +1125,7 @@ (ja-channel-set! 0) (clear-collide-with-as (-> self root-override)) (init! (-> self query) (the-as string #f) 40 150 25 #t (lookup-text! *common-text* (game-text-id quit) #f)) - (set! (-> self wave-start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self wave-start-time) (-> *display* base-frame-counter)) (set! (-> self num-snacks) 0) (set! (-> self num-rats) 0) (set! (-> self current-wave) 0) @@ -1246,7 +1246,7 @@ ;; definition for method 43 of type billy (defmethod TODO-RENAME-43 billy ((obj billy)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f30-0 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/swamp/kermit_REF.gc b/test/decompiler/reference/levels/swamp/kermit_REF.gc index 70804ccf0e..d72c309fff 100644 --- a/test/decompiler/reference/levels/swamp/kermit_REF.gc +++ b/test/decompiler/reference/levels/swamp/kermit_REF.gc @@ -634,7 +634,7 @@ ) :code (behavior () - (while (< (- (-> *display* base-frame-counter) (-> self state-time)) 1200) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 4)) (sound-play-by-name (static-sound-name "kermit-loop") (-> self sound-id) @@ -1070,7 +1070,7 @@ nav-enemy-default-event-handler ) (vector-xz-normalize! (-> self collide-info transv) f0-5) ) - (seek-toward-heading-vec! (-> self collide-info) (-> self rotate-dir) (-> self rotate-speed) 15) + (seek-toward-heading-vec! (-> self collide-info) (-> self rotate-dir) (-> self rotate-speed) (seconds 0.05)) (vector-v++! (-> self collide-info transv) (compute-acc-due-to-gravity (-> self collide-info) (new-stack-vector0) 0.0) @@ -1172,7 +1172,7 @@ nav-enemy-default-event-handler (vector-vector-distance (-> self collide-info trans) (-> *target* control trans)) ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) ) (go kermit-idle) ) @@ -1299,9 +1299,9 @@ nav-enemy-default-event-handler :trans (behavior () (when (not (-> self airborne)) - (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (and (logtest? (nav-control-flags bit19) (-> self nav flags)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) ) ) (go kermit-chase) @@ -1384,7 +1384,7 @@ nav-enemy-default-event-handler ) ) ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (go kermit-give-up) ) ) @@ -1598,7 +1598,7 @@ nav-enemy-default-event-handler ) :post (behavior () - (seek-to-point-toward-point! (-> self collide-info) (target-pos 0) (-> self rotate-speed) 15) + (seek-to-point-toward-point! (-> self collide-info) (target-pos 0) (-> self rotate-speed) (seconds 0.05)) (kermit-simple-post) (none) ) @@ -1629,7 +1629,7 @@ nav-enemy-default-event-handler (kermit-set-nav-mesh-target (-> self collide-info trans)) (kermit-set-rotate-dir-to-player) (when (not (-> self airborne)) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 750) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 2.5)) (kill-and-free-particles (-> self charging-part)) (set! (-> self charged-up) #t) (go kermit-chase) @@ -1705,31 +1705,31 @@ nav-enemy-default-event-handler :die-anim 11 :neck-joint 8 :player-look-at-joint 5 - :run-travel-speed (meters 6.0) + :run-travel-speed (meters 6) :run-rotate-speed (degrees 10000.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.05) - :walk-travel-speed (meters 3.0) + :walk-travel-speed (meters 3) :walk-rotate-speed (degrees 10000.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.05) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 2.0) - :notice-nav-radius (meters 10.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 2) + :notice-nav-radius (meters 10) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #t :move-to-ground #f diff --git a/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc b/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc index 16929668fa..4373a53da6 100644 --- a/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-bat_REF.gc @@ -337,7 +337,7 @@ swamp-bat-slave-event-handler ) (while #t (let ((s4-0 (- (-> *display* base-frame-counter) (-> self state-time)))) - (if (>= s4-0 90) + (if (>= s4-0 (seconds 0.3)) (go swamp-bat-slave-swoop) ) (let ((f0-1 (* 0.011111111 (the float s4-0)))) @@ -653,7 +653,7 @@ swamp-bat-slave-event-handler (deactivate self) ) (while #t - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) *target* (>= (-> self fact-override idle-distance) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) @@ -707,7 +707,7 @@ swamp-bat-slave-event-handler (set! (-> self state-time) (-> *display* base-frame-counter)) (while #t (swamp-bat-update-path) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self state-time) (-> *display* base-frame-counter)) (if (not (swamp-bat-launch-slave)) (go swamp-bat-idle) diff --git a/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc b/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc index 83d04b6286..678f8de077 100644 --- a/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-obs_REF.gc @@ -891,25 +891,25 @@ (define *tar-plat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 1.5 - :max-buoyancy-depth (meters 2.0) + :max-buoyancy-depth (meters 2) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 60.0) + :gravity (meters 80) + :player-weight (meters 60) :player-bonk-factor 0.5 :player-dive-factor 1.0 - :player-force-distance (meters 2.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 2) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.9 :angular-damping 0.9 :control-point-count 4 :mass 1.0 - :inertial-tensor-x (meters 6.0) - :inertial-tensor-y (meters 2.0) - :inertial-tensor-z (meters 6.0) - :cm-joint-y (meters -2.0) - :idle-distance (meters 50.0) + :inertial-tensor-x (meters 6) + :inertial-tensor-y (meters 2) + :inertial-tensor-z (meters 6) + :cm-joint-y (meters -2) + :idle-distance (meters 50) :platform #t :sound-name "tar-plat" ) @@ -1168,7 +1168,7 @@ :code (behavior () (suspend) - (process-drawable-delay-player 300) + (process-drawable-delay-player (seconds 1)) (let* ((gp-0 (get-process *default-dead-pool* pov-camera #x4000)) (gp-1 (ppointer->handle 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 a4177c9fdb..23fcd7f047 100644 --- a/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-rat-nest_REF.gc @@ -631,7 +631,7 @@ (defensive-rat-count int8 :offset-assert 187) (spawn-period float :offset-assert 188) (spawn-period-scale float :offset-assert 192) - (test-interval uint64 :offset-assert 200) + (test-interval time-frame :offset-assert 200) (player-attack-id int32 :offset-assert 208) ) :heap-base #x70 @@ -969,7 +969,7 @@ (-> gp-0 ppointer) ) ) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (suspend) ) (ja-channel-set! 0) @@ -1192,9 +1192,9 @@ swamp-rat-nest-default-event-handler :trans (behavior () (swamp-rat-nest-check-dummy) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (the-as int (-> self test-interval))) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self test-interval)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self test-interval) (the-as uint 60)) + (set! (-> self test-interval) (seconds 0.2)) (let ((v1-6 0)) (let ((a0-2 (the-as (pointer process-tree) (-> self child-process)))) (while a0-2 @@ -1327,7 +1327,7 @@ swamp-rat-nest-default-event-handler (set! (-> obj damaged) #f) (set! (-> obj spawn-period) (* 1200.0 (rand-vu-float-range 0.9 1.1))) (set! (-> obj spawn-period-scale) (+ 1.0 (* 2.0 (get-health-percent-lost *game-info* #f)))) - (set! (-> obj test-interval) (the-as uint (rand-vu-int-range 30 60))) + (set! (-> obj test-interval) (rand-vu-int-range (seconds 0.1) (seconds 0.2))) (go swamp-rat-nest-idle) (none) ) diff --git a/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc b/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc index 5c663bd0bd..8809656567 100644 --- a/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc +++ b/test/decompiler/reference/levels/swamp/swamp-rat_REF.gc @@ -3,17 +3,17 @@ ;; definition of type swamp-rat (deftype swamp-rat (nav-enemy) - ((up-vector vector :inline :offset-assert 400) - (state-float float :offset-assert 416) - (state-vector vector :inline :offset-assert 432) - (_hack uint64 :offset-assert 448) - (wiggle-time uint64 :offset-assert 456) - (wiggle-angle float :offset-assert 464) - (delta-wiggle-angle float :offset-assert 468) - (wiggle-factor float :offset-assert 472) - (min-height float :offset-assert 476) - (chase-rest-time uint64 :offset-assert 480) - (target-nav-time uint64 :offset-assert 488) + ((up-vector vector :inline :offset-assert 400) + (state-float float :offset-assert 416) + (state-vector vector :inline :offset-assert 432) + (_hack uint64 :offset-assert 448) + (wiggle-time time-frame :offset-assert 456) + (wiggle-angle float :offset-assert 464) + (delta-wiggle-angle float :offset-assert 468) + (wiggle-factor float :offset-assert 472) + (min-height float :offset-assert 476) + (chase-rest-time time-frame :offset-assert 480) + (target-nav-time time-frame :offset-assert 488) ) :heap-base #x180 :method-count-assert 76 @@ -265,7 +265,7 @@ 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))) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self chase-rest-time)) (go-virtual nav-enemy-victory) ) ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) @@ -273,10 +273,10 @@ swamp-rat-default-event-handler ) :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 target-nav-time) (-> *display* base-frame-counter)) + (set! (-> self wiggle-time) (+ (-> *display* base-frame-counter) (seconds -10))) (set! (-> self wiggle-angle) 0.0) - (set! (-> self chase-rest-time) (the-as uint (rand-vu-int-range 300 1200))) + (set! (-> self chase-rest-time) (rand-vu-int-range (seconds 1) (seconds 4))) (ja-channel-push! 1 51) (let ((gp-0 (-> self skel root-channel 0))) (joint-control-channel-group-eval! @@ -287,8 +287,8 @@ swamp-rat-default-event-handler (set! (-> gp-0 frame-num) 0.0) ) (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))) + (when (>= (- (-> *display* base-frame-counter) (-> self wiggle-time)) (seconds 1)) + (set! (-> self wiggle-time) (-> *display* base-frame-counter)) (swamp-rat-update-wiggle-params) ) (suspend) @@ -324,7 +324,7 @@ swamp-rat-default-event-handler :code (behavior () (set! (-> self rotate-speed) 1456355.5) - (set! (-> self turn-time) 22) + (set! (-> self turn-time) (seconds 0.07333333)) (let ((f30-0 (rand-vu-float-range 0.8 1.2))) (while #t (logior! (-> self nav-enemy-flags) 16) @@ -499,7 +499,7 @@ swamp-rat-default-event-handler ) (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) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) ) ) 0 @@ -560,32 +560,32 @@ swamp-rat-default-event-handler :taunt-anim 10 :die-anim 11 :neck-joint 7 - :run-travel-speed (meters 7.0) + :run-travel-speed (meters 7) :run-rotate-speed (degrees 7999.9995) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.07333333) - :walk-travel-speed (meters 2.0) + :walk-travel-speed (meters 2) :walk-rotate-speed (degrees 7999.9995) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :notice-nav-radius (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 3) + :frustration-time (seconds 1.5) :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-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -639,8 +639,8 @@ swamp-rat-default-event-handler (set! (-> obj wiggle-angle) 0.0) (set! (-> obj delta-wiggle-angle) 910.2222) (set! (-> obj wiggle-factor) 1.5) - (set! (-> obj reaction-time) (rand-vu-int-range 30 240)) - (set! (-> obj chase-rest-time) (the-as uint 300)) + (set! (-> obj reaction-time) (rand-vu-int-range (seconds 0.1) (seconds 0.8))) + (set! (-> obj chase-rest-time) (seconds 1)) (set! (-> obj water) (new 'process 'water-control obj 7 0.0 8192.0 2048.0)) (set! (-> obj water flags) (the-as uint 2)) (set! (-> obj water height) (res-lump-float (-> obj entity) 'water-height)) diff --git a/test/decompiler/reference/levels/title/title-obs_REF.gc b/test/decompiler/reference/levels/title/title-obs_REF.gc index 275d569ac1..6928d04aa3 100644 --- a/test/decompiler/reference/levels/title/title-obs_REF.gc +++ b/test/decompiler/reference/levels/title/title-obs_REF.gc @@ -283,7 +283,7 @@ :code (behavior () (while (!= (file-status *art-control* (-> self next-anim name) 0) 'active) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (suspend) ) (set! (-> *setting-control* current bg-a) 1.0) @@ -575,7 +575,7 @@ (while #t (when (and (none-reserved? *art-control*) (not (paused?))) (let ((gp-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-1) 30) + (until (>= (- (-> *display* base-frame-counter) gp-1) (seconds 0.1)) (set! *camera-look-through-other* 2) (suspend) ) @@ -615,7 +615,7 @@ :exit (behavior () ((-> (method-of-type logo startup) exit)) - (set-blackout-frames 10) + (set-blackout-frames (seconds 0.033333335)) (none) ) :trans @@ -629,7 +629,7 @@ ) (when (and (= (-> *setting-control* current bg-a) 1.0) (and (member (level-status *level* 'village1) '(active loaded)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (let ((gp-2 (level-get *level* 'village1))) (when gp-2 (load-state-want-levels 'title 'village1) @@ -656,7 +656,7 @@ :code (behavior () (while (!= (file-status *art-control* (-> self next-anim name) 0) 'active) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (suspend) ) (set! (-> *setting-control* current bg-a) 1.0) @@ -879,12 +879,12 @@ ) (else (while (!= (file-status *art-control* "ndi-intro" 0) 'active) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) (suspend) ) (let ((s5-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s5-1) 75) - (set-blackout-frames 15) + (until (>= (- (-> *display* base-frame-counter) s5-1) (seconds 0.25)) + (set-blackout-frames (seconds 0.05)) (suspend) ) ) @@ -895,7 +895,7 @@ (mc-get-slot-info 0 s5-2) (when (or (zero? (-> s5-2 known)) (handle->process (the-as int gp-0))) (if (not (handle->process (the-as int gp-0))) - (set-blackout-frames 15) + (set-blackout-frames (seconds 0.05)) ) (suspend) (goto cfg-8) @@ -924,7 +924,7 @@ (suspend) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 3) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.01)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/training/training-obs_REF.gc b/test/decompiler/reference/levels/training/training-obs_REF.gc index a6dd8c72b0..a83a19bfed 100644 --- a/test/decompiler/reference/levels/training/training-obs_REF.gc +++ b/test/decompiler/reference/levels/training/training-obs_REF.gc @@ -61,10 +61,10 @@ ;; definition of type training-cam (deftype training-cam (process) - ((root trsq :offset-assert 112) - (range meters :offset-assert 116) - (index int32 :offset-assert 120) - (state-time uint64 :offset-assert 128) + ((root trsq :offset-assert 112) + (range meters :offset-assert 116) + (index int32 :offset-assert 120) + (state-time time-frame :offset-assert 128) ) :heap-base #x20 :method-count-assert 15 @@ -118,7 +118,7 @@ ) (suspend) ) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (process-grab? *target*) (process-entity-status! self (entity-perm-status bit-3) #t) (until (not (or (-> *setting-control* current talking) (or (-> *setting-control* current spooling) @@ -146,7 +146,7 @@ (suspend) ) ) - (while (< (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) 300) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (clear-pending-settings-from-process *setting-control* self 'movie) @@ -332,7 +332,7 @@ (game-task none) ) (let ((gp-8 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-8) 9000) + (until (>= (- (-> *display* base-frame-counter) gp-8) (seconds 30)) (suspend) ) ) @@ -427,24 +427,24 @@ (define *tra-pontoon-constants* (new 'static 'rigid-body-platform-constants :drag-factor 4.0 :buoyancy-factor 3.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.98 :angular-damping 0.98 :control-point-count 4 :mass 2.0 :inertial-tensor-x (meters 2.5) - :inertial-tensor-y (meters 2.0) + :inertial-tensor-y (meters 2) :inertial-tensor-z (meters 3.2) - :idle-distance (meters 50.0) + :idle-distance (meters 50) :platform #t :sound-name "pontoonten" ) @@ -1046,7 +1046,7 @@ (sound-play-by-name (static-sound-name "break-dummy") (new-sound-id) 1024 0 0 1 #t) (ja-channel-set! 0) (let ((s5-2 (new 'stack 'joint-exploder-tuning 1))) - (set! (-> s5-2 duration) (the-as uint 450)) + (set! (-> s5-2 duration) (seconds 1.5)) (set! (-> s5-2 gravity) -327680.0) (set! (-> s5-2 fountain-rand-transv-hi x) 32768.0) (set! (-> s5-2 fountain-rand-transv-hi y) 81920.0) @@ -1261,7 +1261,7 @@ (sound-play-by-name (static-sound-name "break-dummy") (new-sound-id) 1024 0 0 1 #t) (ja-channel-set! 0) (let ((s5-2 (new 'stack 'joint-exploder-tuning 1))) - (set! (-> s5-2 duration) (the-as uint 450)) + (set! (-> s5-2 duration) (seconds 1.5)) (set! (-> s5-2 fountain-rand-transv-hi x) 32768.0) (set! (-> s5-2 fountain-rand-transv-hi y) 81920.0) (set! (-> s5-2 fountain-rand-transv-hi z) 40960.0) diff --git a/test/decompiler/reference/levels/village1/assistant_REF.gc b/test/decompiler/reference/levels/village1/assistant_REF.gc index 1ee75f81bd..d955ca4a9a 100644 --- a/test/decompiler/reference/levels/village1/assistant_REF.gc +++ b/test/decompiler/reference/levels/village1/assistant_REF.gc @@ -192,7 +192,7 @@ ;; definition for method 43 of type assistant (defmethod TODO-RENAME-43 assistant ((obj assistant)) - (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj))) + (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj))) (when s5-0 (let* ((v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-3 (the-as number (logior #x3f800000 v1-2))) diff --git a/test/decompiler/reference/levels/village1/explorer_REF.gc b/test/decompiler/reference/levels/village1/explorer_REF.gc index e3e98beec2..99dc327123 100644 --- a/test/decompiler/reference/levels/village1/explorer_REF.gc +++ b/test/decompiler/reference/levels/village1/explorer_REF.gc @@ -156,7 +156,7 @@ ;; definition for method 43 of type explorer (defmethod TODO-RENAME-43 explorer ((obj explorer)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) @@ -269,7 +269,7 @@ (v1-68 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-69 (the-as number (logior #x3f800000 v1-68))) ) - (< (- s5-0 (the int (* f30-1 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-69))))))) gp-1) + (< (- s5-0 (the-as time-frame (the int (* f30-1 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-69)))))))) gp-1) ) (suspend) ) @@ -303,7 +303,7 @@ (v1-104 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-105 (the-as number (logior #x3f800000 v1-104))) ) - (< (- s5-1 (the int (* f30-2 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-105))))))) gp-2) + (< (- s5-1 (the-as time-frame (the int (* f30-2 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-105)))))))) gp-2) ) (suspend) ) @@ -371,7 +371,7 @@ (v1-164 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-165 (the-as number (logior #x3f800000 v1-164))) ) - (< (- s5-2 (the int (* f30-3 (+ f28-2 (* f26-2 (+ -1.0 (the-as float v1-165))))))) gp-3) + (< (- s5-2 (the-as time-frame (the int (* f30-3 (+ f28-2 (* f26-2 (+ -1.0 (the-as float v1-165)))))))) gp-3) ) (suspend) ) @@ -458,7 +458,7 @@ (v1-237 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-238 (the-as number (logior #x3f800000 v1-237))) ) - (< (- s5-3 (the int (* f30-4 (+ f28-3 (* f26-3 (+ -1.0 (the-as float v1-238))))))) gp-4) + (< (- s5-3 (the-as time-frame (the int (* f30-4 (+ f28-3 (* f26-3 (+ -1.0 (the-as float v1-238)))))))) gp-4) ) (suspend) ) @@ -488,7 +488,7 @@ (v1-268 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-269 (the-as number (logior #x3f800000 v1-268))) ) - (< (- s5-4 (the int (* f30-5 (+ f28-4 (* f26-4 (+ -1.0 (the-as float v1-269))))))) gp-5) + (< (- s5-4 (the-as time-frame (the int (* f30-5 (+ f28-4 (* f26-4 (+ -1.0 (the-as float v1-269)))))))) gp-5) ) (suspend) ) @@ -535,7 +535,7 @@ (v1-301 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-302 (the-as number (logior #x3f800000 v1-301))) ) - (< (- s5-5 (the int (* f30-6 (+ f28-5 (* f26-5 (+ -1.0 (the-as float v1-302))))))) gp-6) + (< (- s5-5 (the-as time-frame (the int (* f30-6 (+ f28-5 (* f26-5 (+ -1.0 (the-as float v1-302)))))))) gp-6) ) (suspend) ) diff --git a/test/decompiler/reference/levels/village1/farmer_REF.gc b/test/decompiler/reference/levels/village1/farmer_REF.gc index fe6b5be303..324364aa26 100644 --- a/test/decompiler/reference/levels/village1/farmer_REF.gc +++ b/test/decompiler/reference/levels/village1/farmer_REF.gc @@ -89,7 +89,7 @@ ;; definition for method 43 of type farmer (defmethod TODO-RENAME-43 farmer ((obj farmer)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc b/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc index 53593da4d9..1f9234d757 100644 --- a/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc +++ b/test/decompiler/reference/levels/village1/fishermans-boat_REF.gc @@ -5,26 +5,26 @@ (define *fishermans-boat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 1.5 - :max-buoyancy-depth (meters 1.0) + :max-buoyancy-depth (meters 1) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 40.0) + :gravity (meters 80) + :player-weight (meters 40) :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) + :player-force-distance (meters 10) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :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) + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 10) + :inertial-tensor-z (meters 15) + :cm-joint-y (meters 3) + :cm-joint-z (meters 1) + :idle-distance (meters 50) :platform #t :sound-name #f ) @@ -268,7 +268,7 @@ (dest-circle vector :inline :offset-assert 80) (target-point vector :inline :offset-assert 96) (sample-dir vector :inline :offset-assert 112) - (sample-time uint64 :offset-assert 128) + (sample-time time-frame :offset-assert 128) (sample-index int32 :offset-assert 136) ) :method-count-assert 17 @@ -479,7 +479,7 @@ (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)))))) + (let* ((f30-0 (* 0.0033333334 (the float (- (-> *display* base-frame-counter) (-> 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)) @@ -494,7 +494,7 @@ ) (else (set! (-> obj sample-index) arg2) - (set! (-> obj sample-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj sample-time) (-> *display* base-frame-counter)) (set! (-> obj sample-dir quad) (-> s3-0 quad)) ) ) @@ -990,7 +990,7 @@ (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) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (file-status *art-control* (-> self anim name) 0) ) (hide-hud) @@ -1432,7 +1432,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (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)) @@ -1444,7 +1444,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) s3-0) (seconds 1)) (fishermans-boat-set-throttle-by-speed f30-0) (suspend) (suspend) @@ -1731,7 +1731,7 @@ (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) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/village1/sage_REF.gc b/test/decompiler/reference/levels/village1/sage_REF.gc index ef037160e4..15a083f0b1 100644 --- a/test/decompiler/reference/levels/village1/sage_REF.gc +++ b/test/decompiler/reference/levels/village1/sage_REF.gc @@ -454,7 +454,7 @@ ;; definition for method 43 of type sage (defmethod TODO-RENAME-43 sage ((obj sage)) - (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj))) + (let ((s5-0 (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj))) (when s5-0 (let* ((v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-3 (the-as number (logior #x3f800000 v1-2))) diff --git a/test/decompiler/reference/levels/village1/sequence-a-village1_REF.gc b/test/decompiler/reference/levels/village1/sequence-a-village1_REF.gc index 1f1310f6cf..d90a8b35a7 100644 --- a/test/decompiler/reference/levels/village1/sequence-a-village1_REF.gc +++ b/test/decompiler/reference/levels/village1/sequence-a-village1_REF.gc @@ -345,7 +345,7 @@ ) ((-> (method-of-type process-taskable play-anim) exit)) (let ((gp-0 (entity-by-name "sequenceB-1"))) - (set-blackout-frames 6000) + (set-blackout-frames (seconds 20)) (send-event *camera* 'clear-entity) (entity-birth-no-kill gp-0) (send-event @@ -427,7 +427,7 @@ ;; definition for function start-sequence-a ;; INFO: Return type mismatch int vs none. (defun start-sequence-a () - (set-blackout-frames #x7530) + (set-blackout-frames (seconds 100)) (let ((gp-0 (get-process *default-dead-pool* sequenceA-village1 #x4000))) (when gp-0 (let ((t9-2 (method-of-type sequenceA-village1 activate))) 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 64b9165fc7..6abcbe4f47 100644 --- a/test/decompiler/reference/levels/village1/village-obs-VI1_REF.gc +++ b/test/decompiler/reference/levels/village1/village-obs-VI1_REF.gc @@ -832,7 +832,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (if (or (not *target*) (< 204800.0 (vector-vector-distance (-> self collide-info trans) (-> *target* control trans))) ) @@ -845,7 +845,7 @@ (behavior () (set! (-> self target-speed) 4096.0) (set! (-> self rotate-speed) 12743.111) - (set! (-> self turn-time) 150) + (set! (-> self turn-time) (seconds 0.5)) (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 2))) @@ -885,30 +885,30 @@ :die-anim -1 :neck-joint -1 :player-look-at-joint 5 - :run-travel-speed (meters 1.0) + :run-travel-speed (meters 1) :run-rotate-speed (degrees 70.0) - :run-acceleration (meters 1.0) + :run-acceleration (meters 1) :run-turn-time (seconds 0.5) - :walk-travel-speed (meters 1.0) + :walk-travel-speed (meters 1) :walk-rotate-speed (degrees 70.0) - :walk-acceleration (meters 1.0) + :walk-acceleration (meters 1) :walk-turn-time (seconds 0.5) - :attack-shove-back (meters 3.0) - :attack-shove-up (meters 2.0) - :shadow-size (meters 1.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 + :attack-shove-back (meters 3) + :attack-shove-up (meters 2) + :shadow-size (meters 1) + :nav-nearest-y-threshold (meters 10) + :notice-distance (meters 30) + :stop-chase-distance (meters 40) + :frustration-distance (meters 8) + :frustration-time (seconds 4) :die-anim-hold-frame 10000000000.0 :jump-land-anim-end-frame 10000000000.0 - :jump-height-min (meters 1.0) + :jump-height-min (meters 1) :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) + :shadow-max-y (meters 1) + :shadow-min-y (meters -1) + :shadow-locus-dist (meters 150) :use-align #f :draw-shadow #f :move-to-ground #t @@ -1011,7 +1011,7 @@ (behavior () (set! (-> self state-time) (-> *display* base-frame-counter)) (while #t - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) (set! (-> self state-time) (-> *display* base-frame-counter)) (if (and (and *target* (>= 204800.0 (vector-vector-distance (-> self root trans) (-> *target* control trans)))) (< (process-drawable-child-count) (-> self child-count)) diff --git a/test/decompiler/reference/levels/village1/yakow_REF.gc b/test/decompiler/reference/levels/village1/yakow_REF.gc index 00341ec952..e3067936be 100644 --- a/test/decompiler/reference/levels/village1/yakow_REF.gc +++ b/test/decompiler/reference/levels/village1/yakow_REF.gc @@ -33,31 +33,31 @@ ;; definition of type yakow-bank (deftype yakow-bank (basic) - ((walk-cycle-frame-count float :offset-assert 4) - (run-cycle-frame-count float :offset-assert 8) - (walk-speed meters :offset-assert 12) - (run-speed meters :offset-assert 16) - (walk-anim-speed float :offset-assert 20) - (run-anim-speed float :offset-assert 24) - (walk-away-dist meters :offset-assert 28) - (run-away-dist meters :offset-assert 32) - (walk-rotate-speed float :offset-assert 36) - (run-rotate-speed float :offset-assert 40) - (walk-turn-time uint64 :offset-assert 48) - (run-turn-time uint64 :offset-assert 56) - (max-walk-speed float :offset-assert 64) - (min-run-speed float :offset-assert 68) - (walk-run-blend-rate float :offset-assert 72) - (walk-turn-blend-rate float :offset-assert 76) - (max-run-speed float :offset-assert 80) - (acceleration meters :offset-assert 84) - (default-patrol-time uint64 :offset-assert 88) - (default-idle-distance meters :offset-assert 96) - (safe-distance meters :offset-assert 100) - (min-run-anim-speed float :offset-assert 104) - (max-run-anim-speed float :offset-assert 108) - (min-walk-anim-speed float :offset-assert 112) - (speed-boost-impulse meters :offset-assert 116) + ((walk-cycle-frame-count float :offset-assert 4) + (run-cycle-frame-count float :offset-assert 8) + (walk-speed meters :offset-assert 12) + (run-speed meters :offset-assert 16) + (walk-anim-speed float :offset-assert 20) + (run-anim-speed float :offset-assert 24) + (walk-away-dist meters :offset-assert 28) + (run-away-dist meters :offset-assert 32) + (walk-rotate-speed float :offset-assert 36) + (run-rotate-speed float :offset-assert 40) + (walk-turn-time time-frame :offset-assert 48) + (run-turn-time time-frame :offset-assert 56) + (max-walk-speed float :offset-assert 64) + (min-run-speed float :offset-assert 68) + (walk-run-blend-rate float :offset-assert 72) + (walk-turn-blend-rate float :offset-assert 76) + (max-run-speed float :offset-assert 80) + (acceleration meters :offset-assert 84) + (default-patrol-time time-frame :offset-assert 88) + (default-idle-distance meters :offset-assert 96) + (safe-distance meters :offset-assert 100) + (min-run-anim-speed float :offset-assert 104) + (max-run-anim-speed float :offset-assert 108) + (min-walk-anim-speed float :offset-assert 112) + (speed-boost-impulse meters :offset-assert 116) ) :method-count-assert 9 :size-assert #x78 @@ -100,28 +100,28 @@ :walk-cycle-frame-count 16.0 :run-cycle-frame-count 16.0 :walk-speed (meters 2.13) - :run-speed (meters 6.0) + :run-speed (meters 6) :walk-anim-speed 1.0 :run-anim-speed 2.0 - :walk-away-dist (meters 10.0) - :run-away-dist (meters 6.0) + :walk-away-dist (meters 10) + :run-away-dist (meters 6) :walk-rotate-speed 131072.0 :run-rotate-speed 131072.0 - :walk-turn-time #x96 - :run-turn-time #x3c + :walk-turn-time (seconds 0.5) + :run-turn-time (seconds 0.2) :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) + :acceleration (meters 3) + :default-patrol-time (seconds 1) + :default-idle-distance (meters 10) + :safe-distance (meters 20) :min-run-anim-speed 0.5 :max-run-anim-speed 1.5 :min-walk-anim-speed 0.5 - :speed-boost-impulse (meters 4.0) + :speed-boost-impulse (meters 4) ) ) @@ -136,7 +136,7 @@ (travel-speed meters :offset-assert 192) (final-speed meters :offset-assert 196) (rotate-speed float :offset-assert 200) - (turn-time uint64 :offset-assert 208) + (turn-time time-frame :offset-assert 208) (vulnerable basic :offset-assert 216) (grazing basic :offset-assert 220) (push-velocity vector :inline :offset-assert 224) @@ -321,7 +321,7 @@ yakow-default-event-handler (-> self root-override) (-> self nav travel) (-> self rotate-speed) - (the-as int (-> self turn-time)) + (-> 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))))) @@ -439,7 +439,7 @@ yakow-default-event-handler ) (set! (-> s5-0 frame-num) 0.0) ) - (while (or (< (- (-> *display* base-frame-counter) gp-0) 60) (< (-> self final-speed) 409.6)) + (while (or (< (- (-> *display* base-frame-counter) gp-0) (seconds 0.2)) (< (-> self final-speed) 409.6)) (suspend) (let ((a0-6 (-> self skel root-channel 0))) (set! (-> a0-6 param 0) 1.0) @@ -595,9 +595,7 @@ yakow-default-event-handler ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) - (the-as int (-> *YAKOW-bank* default-patrol-time)) - ) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *YAKOW-bank* default-patrol-time)) (and *target* (>= (-> self fact-override idle-distance) (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) ) @@ -701,9 +699,7 @@ yakow-default-event-handler ) :trans (behavior () - (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) - (the-as int (-> *YAKOW-bank* default-patrol-time)) - ) + (if (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *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)) @@ -713,7 +709,7 @@ yakow-default-event-handler ) (go yakow-notice) ) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (when (or (logtest? (nav-control-flags bit19) (-> self nav flags)) (< (vector-vector-xz-distance (-> self root-override trans) (-> self nav destination-pos)) 4096.0) ) @@ -780,7 +776,7 @@ yakow-default-event-handler ) (ja-channel-push! 1 22) ) - (seek-toward-yaw-angle! (-> self root-override) (-> self dest-rot) 16384.0 150) + (seek-toward-yaw-angle! (-> self root-override) (-> self dest-rot) 16384.0 (seconds 0.5)) (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) @@ -950,7 +946,7 @@ yakow-default-event-handler ) :trans (behavior () - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60) + (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.2)) (set! (-> self travel-speed) (seek (-> self travel-speed) (-> *YAKOW-bank* run-speed) diff --git a/test/decompiler/reference/levels/village2/assistant-village2_REF.gc b/test/decompiler/reference/levels/village2/assistant-village2_REF.gc index b723ffe000..b0885b409c 100644 --- a/test/decompiler/reference/levels/village2/assistant-village2_REF.gc +++ b/test/decompiler/reference/levels/village2/assistant-village2_REF.gc @@ -510,7 +510,7 @@ ;; definition for method 43 of type assistant-bluehut (defmethod TODO-RENAME-43 assistant-bluehut ((obj assistant-bluehut)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f30-0 (+ -1.0 (the-as float v1-4))) @@ -600,7 +600,7 @@ (v1-55 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-56 (the-as number (logior #x3f800000 v1-55))) ) - (< (- s5-1 (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-56))))))) gp-1) + (< (- s5-1 (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-56)))))))) gp-1) ) (suspend) ) @@ -1651,7 +1651,7 @@ (not (movie?)) (not (level-hint-displayed?)) (not (and *cheat-mode* (cpad-hold? 0 l3))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) 3000) + (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 10)) ) ) (hide-hud) diff --git a/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc b/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc index 61284d6e6f..4983e0697d 100644 --- a/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc +++ b/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc @@ -116,7 +116,7 @@ ) ) (let ((s5-0 (-> *display* base-frame-counter))) - (while (< (+ (-> *display* base-frame-counter) -150) s5-0) + (while (< (+ (-> *display* base-frame-counter) (seconds -0.5)) s5-0) (suspend) ) ) @@ -155,7 +155,7 @@ ) ) (let ((s5-1 (-> *display* base-frame-counter))) - (while (< (+ (-> *display* base-frame-counter) -150) s5-1) + (while (< (+ (-> *display* base-frame-counter) (seconds -0.5)) s5-1) (suspend) ) ) diff --git a/test/decompiler/reference/levels/village2/gambler_REF.gc b/test/decompiler/reference/levels/village2/gambler_REF.gc index 59df182fdc..0e8a8d19a0 100644 --- a/test/decompiler/reference/levels/village2/gambler_REF.gc +++ b/test/decompiler/reference/levels/village2/gambler_REF.gc @@ -133,7 +133,7 @@ ;; definition for method 43 of type gambler (defmethod TODO-RENAME-43 gambler ((obj gambler)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 61440.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 61440.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/village2/geologist_REF.gc b/test/decompiler/reference/levels/village2/geologist_REF.gc index 506dfbfad2..55c4d58004 100644 --- a/test/decompiler/reference/levels/village2/geologist_REF.gc +++ b/test/decompiler/reference/levels/village2/geologist_REF.gc @@ -125,7 +125,7 @@ ;; definition for method 43 of type geologist (defmethod TODO-RENAME-43 geologist ((obj geologist)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc b/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc index 1637308564..c0c3af5bf4 100644 --- a/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc +++ b/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc @@ -274,7 +274,7 @@ ;; definition for method 43 of type sage-bluehut (defmethod TODO-RENAME-43 sage-bluehut ((obj sage-bluehut)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc b/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc index 10425b3e67..f2d1b7d572 100644 --- a/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc +++ b/test/decompiler/reference/levels/village2/swamp-blimp_REF.gc @@ -376,8 +376,9 @@ ;; definition for method 10 of type swamp-rope-rand-float ;; INFO: Return type mismatch int vs none. (defmethod update-timer! swamp-rope-rand-float ((obj swamp-rope-rand-float)) - (set! (-> obj timer) - (- (-> obj timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> obj timer) (- (the-as time-frame (-> obj timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (when (<= (-> obj timer) 0) (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) @@ -490,8 +491,9 @@ ;; definition for method 10 of type swamp-blimp-rand-vector ;; INFO: Return type mismatch int vs none. (defmethod update-timer! swamp-blimp-rand-vector ((obj swamp-blimp-rand-vector)) - (set! (-> obj timer) - (- (-> obj timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> obj timer) (- (the-as time-frame (-> obj timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (when (<= (-> obj timer) 0) (set! (-> obj timer) (rand-vu-int-range (-> obj min-time) (-> obj max-time))) @@ -856,7 +858,7 @@ ) (set! (-> *camera-other-root* quad) (-> self root-override trans quad)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 180) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.6)) (set! *camera-look-through-other* 2) (suspend) ) @@ -931,7 +933,7 @@ ) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 900) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) (set! *camera-look-through-other* 2) (suspend) ) @@ -943,12 +945,12 @@ ) (set! (-> *camera-other-root* quad) (-> self root-override trans quad)) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (set! *camera-look-through-other* 2) (suspend) ) (set! (-> self state-time) (-> *display* base-frame-counter)) - (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1500) + (until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 5)) (set! *camera-look-through-other* 2) (let ((gp-2 (new 'stack-no-clear 'vector)) (a0-58 (-> self blimp extra process)) @@ -1478,7 +1480,7 @@ (v1-5 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-6 (the-as number (logior #x3f800000 v1-5))) ) - (set! (-> self state-time) (the int (* f30-1 (+ -1.0 (the-as float v1-6))))) + (set! (-> self state-time) (the-as time-frame (the int (* f30-1 (+ -1.0 (the-as float v1-6)))))) ) (ja-channel-push! 1 150) (while #t @@ -1878,24 +1880,27 @@ ) (while #t (when (< 300 (-> self arm-timer)) - (set! (-> self arm-timer) - (- (-> self arm-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self arm-timer) (- (the-as time-frame (-> self arm-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (if (>= 300 (-> self arm-timer)) (+! (-> self pos-oscillator target y) (* 16384.0 (-> *display* time-adjust-ratio))) ) ) (when (< 240 (-> self arm-timer)) - (set! (-> self arm-timer) - (- (-> self arm-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self arm-timer) (- (the-as time-frame (-> self arm-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (if (>= 150 (-> self arm-timer)) (set! (-> self scale-oscillator target) 0.2) ) ) (when (> (-> self arm-timer) 0) - (set! (-> self arm-timer) - (- (-> self arm-timer) (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter))) + (set! (-> self arm-timer) (- (the-as time-frame (-> self arm-timer)) + (- (-> *display* base-frame-counter) (-> *display* old-base-frame-counter)) + ) ) (when (<= (-> self arm-timer) 0) (set! (-> self scale-oscillator target) -0.2) diff --git a/test/decompiler/reference/levels/village2/village2-obs_REF.gc b/test/decompiler/reference/levels/village2/village2-obs_REF.gc index ea853bc453..5583e1fc4e 100644 --- a/test/decompiler/reference/levels/village2/village2-obs_REF.gc +++ b/test/decompiler/reference/levels/village2/village2-obs_REF.gc @@ -271,24 +271,24 @@ (define *pontoonfive-constants* (new 'static 'rigid-body-platform-constants :drag-factor 4.0 :buoyancy-factor 3.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.98 :angular-damping 0.98 :control-point-count 4 :mass 2.0 :inertial-tensor-x (meters 2.5) - :inertial-tensor-y (meters 2.0) + :inertial-tensor-y (meters 2) :inertial-tensor-z (meters 3.2) - :idle-distance (meters 90.0) + :idle-distance (meters 90) :platform #t :sound-name "pontoonten" ) @@ -298,24 +298,24 @@ (define *pontoonten-constants* (new 'static 'rigid-body-platform-constants :drag-factor 4.0 :buoyancy-factor 3.0 - :max-buoyancy-depth (meters 3.0) + :max-buoyancy-depth (meters 3) :gravity-factor 1.0 - :gravity (meters 80.0) - :player-weight (meters 35.0) + :gravity (meters 80) + :player-weight (meters 35) :player-bonk-factor 1.0 :player-dive-factor 1.0 - :player-force-distance (meters 1000.0) - :player-force-clamp (meters 1000000.0) - :player-force-timeout #x1e - :explosion-force (meters 1000.0) + :player-force-distance (meters 1000) + :player-force-clamp (meters 1000000) + :player-force-timeout (seconds 0.1) + :explosion-force (meters 1000) :linear-damping 0.98 :angular-damping 0.95 :control-point-count 4 :mass 4.0 - :inertial-tensor-x (meters 5.0) - :inertial-tensor-y (meters 2.0) + :inertial-tensor-x (meters 5) + :inertial-tensor-y (meters 2) :inertial-tensor-z (meters 3.2) - :idle-distance (meters 90.0) + :idle-distance (meters 90) :platform #t :sound-name "pontoonten" ) @@ -754,7 +754,7 @@ (cond ((handle->process (-> self tracker)) (let ((v1-6 (-> (the-as (pointer part-tracker) (-> self tracker process)) 0))) - (set! (-> v1-6 start-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> v1-6 start-time) (-> *display* base-frame-counter)) (set! v0-1 (-> v1-6 root trans)) ) (set! (-> (the-as vector v0-1) quad) (-> gp-0 quad)) @@ -958,7 +958,7 @@ ) ((handle->process (-> self tracker)) (set! (-> (the-as (pointer part-tracker) (-> self tracker process)) 0 start-time) - (the-as uint (-> *display* base-frame-counter)) + (-> *display* base-frame-counter) ) ) (else @@ -1873,7 +1873,7 @@ ) ) (let ((gp-2 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-2) 50) + (until (>= (- (-> *display* base-frame-counter) gp-2) (seconds 0.16666667)) (suspend) ) ) @@ -1893,7 +1893,7 @@ ) ) (let ((gp-5 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-5) 50) + (until (>= (- (-> *display* base-frame-counter) gp-5) (seconds 0.16666667)) (suspend) ) ) diff --git a/test/decompiler/reference/levels/village2/warrior_REF.gc b/test/decompiler/reference/levels/village2/warrior_REF.gc index 17c5057362..c15debceb1 100644 --- a/test/decompiler/reference/levels/village2/warrior_REF.gc +++ b/test/decompiler/reference/levels/village2/warrior_REF.gc @@ -171,7 +171,7 @@ ;; definition for method 43 of type warrior (defmethod TODO-RENAME-43 warrior ((obj warrior)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 600 61440.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 2) 61440.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/village3/assistant-village3_REF.gc b/test/decompiler/reference/levels/village3/assistant-village3_REF.gc index 5a0ad3a3c8..ad555c1be0 100644 --- a/test/decompiler/reference/levels/village3/assistant-village3_REF.gc +++ b/test/decompiler/reference/levels/village3/assistant-village3_REF.gc @@ -106,7 +106,7 @@ ;; definition for method 43 of type assistant-villagec (defmethod TODO-RENAME-43 assistant-villagec ((obj assistant-villagec)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) @@ -189,7 +189,7 @@ (v1-31 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-32 (the-as number (logior #x3f800000 v1-31))) ) - (< (- s5-0 (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-32))))))) gp-0) + (< (- s5-0 (the-as time-frame (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 (the-as float v1-32)))))))) gp-0) ) (suspend) ) @@ -226,7 +226,7 @@ (v1-56 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-57 (the-as number (logior #x3f800000 v1-56))) ) - (< (- s5-1 (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-57))))))) gp-3) + (< (- s5-1 (the-as time-frame (the int (* f30-1 (+ f28-1 (* f26-1 (+ -1.0 (the-as float v1-57)))))))) gp-3) ) (suspend) ) diff --git a/test/decompiler/reference/levels/village3/miners_REF.gc b/test/decompiler/reference/levels/village3/miners_REF.gc index 8e90b7b895..76f9bf3395 100644 --- a/test/decompiler/reference/levels/village3/miners_REF.gc +++ b/test/decompiler/reference/levels/village3/miners_REF.gc @@ -536,7 +536,7 @@ ;; definition for method 43 of type minershort (defmethod TODO-RENAME-43 minershort ((obj minershort)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/village3/sage-village3_REF.gc b/test/decompiler/reference/levels/village3/sage-village3_REF.gc index 7f60f6347b..26bbc81ef4 100644 --- a/test/decompiler/reference/levels/village3/sage-village3_REF.gc +++ b/test/decompiler/reference/levels/village3/sage-village3_REF.gc @@ -237,7 +237,7 @@ ;; definition for method 43 of type sage-villagec (defmethod TODO-RENAME-43 sage-villagec ((obj sage-villagec)) - (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) 9000 122880.0 obj) + (when (TODO-RENAME-10 (-> obj ambient) (new 'stack-no-clear 'vector) (seconds 30) 122880.0 obj) (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) (v1-4 (the-as number (logior #x3f800000 v1-3))) (f0-2 (+ -1.0 (the-as float v1-4))) diff --git a/test/decompiler/reference/levels/village_common/villagep-obs_REF.gc b/test/decompiler/reference/levels/village_common/villagep-obs_REF.gc index bcf5228799..0757357641 100644 --- a/test/decompiler/reference/levels/village_common/villagep-obs_REF.gc +++ b/test/decompiler/reference/levels/village_common/villagep-obs_REF.gc @@ -70,7 +70,7 @@ (vector-reset! (-> self control transv)) (move-to-point! (-> self control) (-> self control unknown-vector102)) (let ((gp-0 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-0) 300) + (until (>= (- (-> *display* base-frame-counter) gp-0) (seconds 1)) (suspend) ) ) @@ -186,7 +186,7 @@ #t ) ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) ) (if (and (cpad-pressed? 0 circle) (process-grab? *target*)) (go-virtual active) @@ -287,7 +287,7 @@ :trans (behavior () (when (or (and (cpad-pressed? 0 triangle) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 30) + (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) (process-release? *target*) ) (not *target*) @@ -354,7 +354,7 @@ (hide-hud) (let ((s1-2 (get-continue-by-name *game-info* (-> *warp-info* gp-0)))) (lookup-level-info (-> s1-2 level)) - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) 15) (cpad-pressed? 0 circle)) + (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) (cpad-pressed? 0 circle)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons circle)) (logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle)) (go-virtual use gp-0 (the-as level s1-2)) @@ -756,7 +756,7 @@ ) ) ) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) #x4650) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 60)) (case (-> self entity extra perm task) (((game-task training-door)) (when (and (task-complete? *game-info* (game-task training-door)) @@ -885,7 +885,7 @@ ) :trans (behavior () - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) #x4650) + (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 60)) (case (-> self entity extra perm task) (((game-task training-door)) (when (not (task-closed? (game-task beach-ecorocks) (task-status need-introduction))) @@ -969,10 +969,10 @@ ;; definition of type village-cam (deftype village-cam (process) - ((root-override trsq :offset-assert 112) - (range meters :offset-assert 116) - (index int32 :offset-assert 120) - (state-time uint64 :offset-assert 128) + ((root-override trsq :offset-assert 112) + (range meters :offset-assert 116) + (index int32 :offset-assert 120) + (state-time time-frame :offset-assert 128) ) :heap-base #x20 :method-count-assert 15 @@ -1075,7 +1075,7 @@ ) (suspend) ) - (set! (-> self state-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> self state-time) (-> *display* base-frame-counter)) (process-grab? *target*) (process-entity-status! self (entity-perm-status bit-3) #t) (kill-current-level-hint '(ambient) '() 'exit) @@ -1106,7 +1106,7 @@ ) (suspend) ) - (while (< (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) 300) + (while (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1)) (suspend) ) (kill-current-level-hint '() '() 'die) @@ -1285,7 +1285,7 @@ (when (= (-> a0-70 user-uint8 0) 1) (clear-pending-settings-from-process *setting-control* self 'allow-progress) (let ((gp-3 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) gp-3) #x15f90) + (until (>= (- (-> *display* base-frame-counter) gp-3) (seconds 300)) (suspend) ) ) diff --git a/test/offline/config.jsonc b/test/offline/config.jsonc index ffece2b43c..69a37feba1 100644 --- a/test/offline/config.jsonc +++ b/test/offline/config.jsonc @@ -236,8 +236,8 @@ "cam-master-active": [ "event" ], - "energydoor-opened": [ - "trans" // cfg + "target-death": [ + "event" ], "ogreboss-missile-seek": [ "code" // inserts a bad cfg-1 goto